小池さんはもともと、自動車部品メーカーのソフトウェアエンジニアだったこともあり、すぐにTensorFlowのチュートリアルを流用する形でシステムを組み上げた。「無料で学べる動画なども充実してきていますし、昔に比べて学びやすい環境が整っていると思います」(小池さん)
厚紙にきゅうりを乗せ、アルミパイプで固定したWebカメラで撮影。その画像を3層の畳み込みニューラルネットワーク(CNN=ディープラーニングにおけるアルゴリズムの一種)で識別するというシンプルなものだ。ソフトウェアがオープンソースであるため、かかったコストはWebカメラを含めても3000円程度。ニューラルネットワークが3層と少ないためGPUも必要なく、ノートPCくらいのスペックでも問題なく動いたという。
教師データには、熟練者が仕分けしたきゅうりの写真を2475枚(選別したい9つのランクで各275枚)集めた。そして275枚の画像でテストしたところ、正答率が80%だった。意外といける――。そう感じた小池さんは、すぐに次なる試作機の開発に着手した。
続く試作機で小池さんが目指したのは、より人間の仕分けに近づけるという点だ。最初の試作機では、撮影するカメラが1台だったのに対し、今回はUSBカメラを3つに増やし、きゅうりを上、下、横から撮影。照明もつけて明るさを一定にするようにした。アルミフレームでアクリル板を固定するなど、装置は大きくなったが「かかった費用は2万円程度だった」と小池さん。
CNNにおける隠れ層も4層に増やしたほか、教師データの解像度を高め、数も増やした。TensorFlowの動作環境もノートPCからRaspberry Piに変えたという。2カ月ほどかけて上、下、横の画像を7000組用意し、1500組の画像でテストを行ったところ、正答率が90%以上にまで向上した。さらに小池さんは、AIが判断したきゅうりを指定の箱まで運ぶベルトコンベアも自作。仕分けの完全自動化を達成したのだ。
しかし、完成した試作機を実際に動かしてみたところ、多くの課題があることが分かった。画像の読み込みに使った解像度では傷や艶といった要素を認識できないほか、周囲の環境が認識に影響を与えてしまい、精度が70%程度にまで落ちてしまった。仕分けから箱詰めまでのスピードもまだまだ足りない。
画像を増やしたことで、収穫時期によって形や太さに偏りがあったことも分かった。熟練した人間であれば、無意識のうちにこうした誤差を踏まえてランク付けを行うが、人工知能ではそうもいかない。そして、何よりベルトコンベアによって、きゅうりにキズがつくことが分かり、現場には導入できないという判断になったという。
Copyright © ITmedia, Inc. All Rights Reserved.