社内ハッカソンに参加し、物件の間取りを判別する画像分類AIの開発に挑戦しました!
目次
はじめに
こんにちは!ニフティライフスタイルでモバイルアプリの開発をしているt-toshasegawです。
先日、ニフティライフスタイルで開催された社内ハッカソンに、t-toshasegaw、SoraY677、sonohaの3名でチームを組み参加したので、その様子についてご紹介させていただきます!
ニフティライフスタイルの社内ハッカソンについて
ハッカソンは、ハック(hack)とマラソン(marathon)を合わせた言葉であり、決められた制限時間内でアイデアの発案から開発、最終的な成果物の発表まで行うものです。既に世の中にはさまざまなハッカソンが存在しており、イベントとして盛り上がりを見せています。
ニフティライフスタイルでもこれを取り入れ、開発メンバーの「学び」に重きをおいた社内ハッカソンを開催しました!業務とは異なる開発メンバーとチームを組んで一緒に学習することによって、新たな気づきとそれによる各人のスキルアップを目的としています。
最終的に開発する物は自由とした上で、毎週金曜日に2時間程度行う開発を10週に渡って行いました。
メンバー紹介
- t-toshasegaw
- 中途入社1年目。
- 普段はニフティ不動産 賃貸版のモバイルアプリ開発を担当。
- SoraY677
- 中途入社2年目。
- 普段はニフティ不動産 サイト版のフロントエンド開発を主に担当。
- sonoha
- 新卒入社5年目。
- 普段はニフティ温泉の開発全般を担当。企画にも携わっています。
見てわかる通り、普段は開発する分野や技術が異なるメンツでチームを組んで、社内ハッカソンでの物作りに挑戦しました!
今回の取り組み
着目した課題
私たちのチームは、ニフティ不動産における情報の正確性の問題に着目しました。
ニフティ不動産は日々膨大なデータを取り扱っています。故に、各物件の情報に異なるものが表記されてしまうケースが稀に発生します。例えば、実際は1LDKであるにも関わらず1DKとなっていたり、コンロが1口しかないにも関わらず2口となっていたり、などです。 こういった事案について、運用の中で発覚したものは都度修正していますが、物件数が膨大であるために、どうしてもカバーしきれないケースが発生することがあるのです。
これに対して、機械学習を活用して判別した物件の画像情報と、元の情報との間に違いがないかを機械的にチェックすることで、ユーザにより正確な情報を届けられると考えました。
開発した成果物
最初、この問題の解決のために「物件画像を分類・解析して物件情報との整合をチェックしてくれる画像解析AI」を開発しようと思いました。しかし、最初からそれを目指すと開発の規模が大きくなってしまいます。
そこで、最初はプロトタイプとして、「間取り(1K, 2LDKなど)を判別してくれる画像分類AI」を作ろうということで話はまとまりました。何より形にすることが大事なので、最初は小さな範囲に絞って挑戦することにしたのです。
最終的に、おおよそ70%の正答率で間取りを正しく判別することのできるAIの開発に成功しました!
チームでの進め方
モデルの選定・周辺の学習
まず、機械学習で物作りをするにあたり、まずはどのモデルが最適であるのかを選ぶことにしました。とは言うものの、私たちのチームは機械学習をほとんど何も知らないところからのスタートで、何から手をつけて良いのかもわからない状態でした。そこで、ChatGPTにまずはざっくりと相談し、モデルの提案をしてもらった上で、それらをチームメンバー全員で調査して選定しました。
最終的には、画像系の機械学習の中でもよく使われているCNN(画像分析によく使われるディープラーニングの応用手法)を用いることにしました。
モデルの開発
モデルをCNNに決めて、その基礎知識を学んだ後、Googleの提供するTensorFlow(あらゆる機械学習が簡単に扱えるようになっているライブラリ)を利用してモデル開発を始めました。親切なことにTensorFlowでは公式のガイドが用意されており、これに従って開発すれば、基本的な機能の実装方法から、判別の精度を上げるためのテクニックまで習得することができます。
今回作成したモデルもこのガイドに従って開発しました。このモデルの概要としては、以下の図のように、入力画像を3層の畳み込み層とプーリング層のフィルタリングによって圧縮していき、最終的には中間層で値を調整したのちに、間取りの判定を出力しています。
開発環境としてはAWSが提供するサービスの一つであるSageMakerのJupyter NoteBookを採用しました。Jupyter NoteBookはPythonをセクションごとに開発・実行できるので、モデルの開発進捗やバグを可視化しやすかったです。
感想
- t-toshasegaw
- 今回、初めて機械学習やPythonに触れました。最初は複雑そうに思えたモデルの開発も、実際に手を動かすことで段階的に理解が深まっていくことが分かりました。機械学習の世界はまだまだ広大なので、今後も継続的に学びを深めていきたいと思います!
- SoraY677
- 過去に少しだけ機械学習のざっくりとした勉強をしたことがあったのですが、今回のハッカソンでより深い知識に触れ、実際に物作りに落とし込むところまでできたので、より実践的な知識を得ることができた気がします!引き続き機械学習の取り組みをしてみたいと思います。
- sonoha
- 初めて機械学習に触れましたが、機械学習といえばPythonと言われる所以が分かった気がします。便利なライブラリと豊富なドキュメントによって、未経験でもある程度動くものが作れるというのが感動でした。実際のサービスにもぜひ活用してみたいと思います。
終わりに
ハッカソンへの参加は、未知の分野への興味を持つきっかけとなり、成長を加速させる非常に良い機会となりました。
ニフティライフスタイルでは今後も継続的に社内ハッカソンを開催予定です。次回以降のハッカソンの様子もTECH BLOGに執筆予定なので是非お楽しみに!
最後までお読み頂きありがとうございました!
掲載内容は、記事執筆時点の情報をもとにしています。