AI(人工知能)に関わる技術、なかでもディープラーニングが急速に発達し、社会のさまざまな領域で実際に利用されるようになりました。その背景のひとつには、AI分野での研究開発に多大な投資を行っている大手IT企業が、その成果の一部をオープンソースとして公開し、世界中のエンジニアが自由に使えるようになったことがあります。
こうしたオープンソースのAI関連ライブラリには、Googleの「TensorFlow」やFacebookの「Torch」といった海外のIT企業のものだけでなく、国内にもPreferred Networksの「Chainer」やソニーの「Neural Network Libraries」などがあります。最近では、関連した情報も数多く手に入るようになりました。
また、これらのライブラリの多くには親切なチュートリアルも用意されており、AIの開発経験がないエンジニアでもさほど手間を掛けることなく取り組めるようになっています。実際にこれらのライブラリを使って、AIによる新しいチャレンジを行うエンジニアも出てきました。
初めてのディープラーニングは想像以上に簡単だった
静岡県湖西市で農業を営む小池誠さんも、そんなエンジニアのひとりです。
大学で情報処理を学んだ後、会社に勤め組み込み系エンジニアとして働いていましたが、仕事に満足できずに退職。実家へ戻り、「農業」と「エンジニア」という二足のわらじを履いています。
「新卒で入社してから7年くらい(会社員を)やっていましたが、年を取っていくと現場から離れマネジメントばかりになって、あまり仕事が楽しくなくなったんです。エンジニアのスペシャリストというキャリアパスのない会社だったので、じゃあ何か新しいことを始めようと思った」
小池さんの家の生産物は、きゅうりです。日々の作業は両親と分担して行っていますが、そのなかでも仕分け作業はすべて小池さんの母親の担当。最盛期には1日で数百キロものきゅうりをひとりで仕分けするため、終日その作業にかかりきりになってしまいます。しかし、きゅうりの等級を判定するのはベテランでなければ難しく、誰でも手伝えるというわけではありません。
そこで小池さんは、ディープラーニングによる画像認識できゅうりの仕分けが可能になれば、母親の負担を減らすことができるのではないかと考えました。ディープラーニングに着目したのは、Google傘下のDeepMindが開発した囲碁AI「AlphaGo」が、世界トッププロのイ・セドル棋士に勝利したというニュース(2016年3月)がきっかけでした。2015年11月に、Googleからディープラーニングのライブラリ「TensorFlow」がオープンソースとして公開されていたので、小池さんも試してみたのです。
TensorFlowにはチュートリアルとして、手書き文字認識のために構成されたニューラルネットワークと、必要な画像データセットが用意されています。そのため、AIの経験がないエンジニアでも、ディープラーニングによる画像認識を簡単に始めることができるようになっています。小池さんも、実際に触ってみて、その手軽さに驚きました。
「画像認識は大変だと思っていたら、とても簡単にできたので本当にびっくりしました。画像認識って、どう判断するのか自分で考えて、二値化したり、ヒストグラムを作ったりしていましたけど、そんなことを考える必要がなくなった。全部AIにお任せです。まるで、もうひとり優秀なプログラマーがいて、一緒に開発しているみたいな感覚です」
TensorFlowによる画像認識の手軽さと精度の高さに驚いた小池さんは、さっそくきゅうりの仕分けができるかどうか、テストに取り組みました。
テスト段階で約8割の正確さを実現したディープラーニング
小池さんの家では、きゅうりを大きさや形などで9つの等級に分けて出荷しています。この等級はあくまでも小池さんの家で考えたもので、農業協同組合や青果市場などが決めたものではありません。ですが、こうして仕分けして出荷することで、等級が上のものは販売金額を高くすることができます。つまり、付加価値を生み出せるので、農家としては必要な作業なのです。
TensorFlowのチュートリアルを終えた小池さんは、次にきゅうりの仕分けの検証に取り掛かりました。32×32ピクセルのきゅうり画像を9つの等級ごとに275枚用意し、ニューラルネットワークに学習させました。構成はTensorFlowに用意されているチュートリアル「Deep MNIST for Experts」、ほぼそのままだったそうです。
学習させたニューラルネットワークに、元のきゅうり画像を判定させたところ、正解率は約80%。この結果は小池さんの予想以上でした。特にチューニングすることなく高い正解率を叩き出したことで、これならすぐに実用化できると考え、仕分け作業機の開発をスタートさせたのです。この時、検証用に組み立てたウェブカメラ+自作スタンド+ノートPCのシステムが、試作1号機です。
続く試作2号機では、学習データセットのきゅうり画像を80×80ピクセルに、数も7,000枚までアップさせたところ、正解率が約95%にまで向上。TensorFlowの動作環境も、ノートPCからRaspberry Piに変えました。また、実際にきゅうりを仕分ける作業も、可動式トレーとベルトコンベアー、スイングアームの組み合わせによって、きゅうりをトレーに載せる作業以外は完全自動化を実現しています。
この試作2号機は、自身のブログで紹介した他、Maker Faire Tokyo 2016にて展示したこともあって、かなりの反響があったそうです。TensorFlowの開発元であるGoogle日本法人の目に止まり、ドイツで開催されたIT関連の展示会「CeBIT 2017」(国際情報通信技術見本市)へ国内採用事例として招待されました。Raspberry PiでTensorFlowを動かしてリアルタイムで画像認識させるという技術に、多くの人から興味を持ってもらえたそうです。
ところが、この2号機、実際にはきゅうりの仕分け作業には利用されませんでした。それというのも、アームでベルトコンベアーからきゅうりを出荷用の箱に落とすため、きゅうりが傷んでしまうことが判明したからです。きゅうりを傷めることなく機械に仕分けさせるためには、メカ部分の開発にかなり時間が掛かる見込みのため、「AIによる完全自動化」というコンセプトはいったん棚上げされました。
実際のきゅうりの選別に導入した試作3号機、その成果は……
小池さんは「人間が行う作業をAIでサポートする」という新しいコンセプトに基づいて、試作3号機の制作に取り掛かりました。3号機では、以下の手順による形式を採用しました。
- 液晶ディスプレイを内蔵したテーブルの上にきゅうりを並べる
- 上部に取り付けられたカメラが撮影する
- Raspberry Piで動作するAIが等級を判別する
- ディスプレイ上のきゅうりが置かれた場所に等級を表示する
テーブルにきゅうりを並べるところと、判別されたきゅうりを出荷箱に仕分けるところは人間が行い、AIは等級を判別し人間にとって分かりやすく表示するという分担作業です。