Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AIを使ったキュウリの自動選別

654 views

Published on

2018/10/10 中部アイティ&Code for MIKAWA

Published in: Technology
  • Be the first to comment

  • Be the first to like this

AIを使ったキュウリの自動選別

  1. 1. AIを使ったキュウリの自動選別 #2018/10/10 中部アイティ x Code for MIKAWAセミナ
  2. 2. Agenda ● AI技術を活用したキュウリ選別機の開発 ● 農業におけるAI技術の活用 ● 誰でも使えるAI技術 2
  3. 3. キュウリ選別機の開発話
  4. 4. ハウス栽培で年間を通してキュウリを栽培・出荷 ○ ほ場面積0.4ha ○ 家族経営(3人+パート2人) 4
  5. 5. 年間出荷量:約63,000Kg (約630,000本) 5
  6. 6. 作物によっては,まだまだ手作業が多い! 機械化されたと言われる近代農業だが・・・ 6
  7. 7. 農業の労働時間 農林水産省:品目別経営統計(2007年)より ・ピーマン ・きゅうり ・トマト ・ミニトマト 果菜類は手間が かかる! 機械化できていな い→大規模化もで きない 10aあたりの労働時間(h) ● 品目別10Aあたりの労働時間 特に細かい作業が多い果菜類は労働時間が多い傾向がある 7
  8. 8. ちなみに,我が家の労働時間 ● 2017年9月〜2018年8月(約1年間)で... 8 8,075時間 8
  9. 9. きゅうり栽培の労働時間 ● きゅうり栽培における作業別の労働時間の割合 農林水産省:品目別経営統計(2007年)より 収穫 39.8% 管理 19.2% 出荷(選別など) 22.1% きゅうり農家の仕事の約1/5は出荷作業に割かれている 出荷作業は頑張ったところで売上が大きく増えるわけではない 9
  10. 10. 生産性の低い作業を減らしたい ● キュウリの品質や収穫量の増加につながらない,選別作業に 使う時間を減らしたい! ● 限られた労働力をもっと有効活用したい! 10 収穫 出荷 管理 その 他 収穫 出荷 管理 その 他 品質を高める管理の作業を増やしたい 労働生産性を高めるための時間割にシフト 10
  11. 11. きゅうりの選別作業とは ● 長さ、太さ、曲がり具合、色などにより、等級・階級を分ける作 業 ● 我が家では9等級に分類 ● 汐見出荷組合(共選)として直接市場に出荷 11
  12. 12. ● 対象は自然物。定量的な選別基準があるわけではない ● 長年の経験(主観)、生産者のこだわり              →習得に時間がかかる ● 毎日同じ基準で分けている=信頼                →作業者間での統一が重要 なかなか難しい選別作業 秀品   B品 秀品   B品 秀品   B品 秀品   B品 特に品質の判断が難しい 今まで熟練農家が行っていた判断と 同等のことをコンピュータにやらせることはできないか? 12
  13. 13. 注目したのはディープ・ラーニング ● 世界的な画像認識コンペ(ILSVRC2012)で圧勝 ○ 中間層が7層のニューラルネットワーク ● 画像認識能力では人間を超えた 人工知能の未来(http://www.soumu.go.jp/main_content/000400435.pdf)より ILSVRC2012 task1: 1000カテゴリの画像を分類するコンペ 人間の目の代わりとなる技術として注目されている 13
  14. 14. 人工知能? ● 汎用型AI(AGI)と特化型AI ● 強いAIと弱いAI 14 汎用型AI (AGI) 親指を立てて溶鉱炉に沈んでい くやつ(ター○ネー○ー) 特化型AI ある特定の問題空間(フレーム)の 中で適した解を見つける https://www.pixiv.net/member_illust.php?mode=medium&illust_id=38224451
  15. 15. 画像認識AI ● ある特定サイズの画像をある特定サイズのクラスに分類する 15 「猫」 「車」 「飛行機」「犬」 「鳥」「鹿」 「蛙」「馬」 「船」「トラック」 縦32x横32x色3=3072次元 10個のクラス=10次元 いい感じの変換をしてくれる
  16. 16. こんなこともできる ● Everybody Dance Now ○ https://arxiv.org/abs/1808.07371
  17. 17. 人工知能(AI) ディープラーニングとは(1) 機械学習 ・大量のデータから規則性やパターンを発見する手法 ニューラルネットワーク ・脳神経系をモデルにしたアルゴリズム ディープ・ラーニング ・多層化により、より良い特徴を自動的に発見 →人間が特徴量を決める必要がない AIブームの震源地 ブレークスルーがあった場所
  18. 18. ディープラーニングとは(2) ● 脳細胞神経(ニューロン)のネットワークを模して作られたアルゴリズム = ニューラル・ネットワーク ● ニューラル・ネットワークを何層も重ねて深くしたものがディープ・ラーニング 入力層 中間層 出力層 入力層 出力層中間層 中間層 中間層 中間層 中間層
  19. 19. なぜ今,ディープラーニングなのか 「機械にデータを解析させ、データに潜む規則性やパターンを発見する手法」 そして、発見した規則性やパターンを基に、分類や予測を行う。 ・Webの発展 ・ECサイト ・SNS ・IoT など ハードウェアの発展 ①大量のデータ ②豊富なマシンパワー パターンが見えて きたぞ! (例:youtubeから1000万枚の画像) (例:16000基のCPU) (例:Googleの猫)
  20. 20. ● 分類 ○ 「過去のデータを元に新たなデータをクラスに分類する」 ● 予測 ○ 「過去のデータから未来の値を予測する」 ● クラスタリング ○ 「入力データを類似する複数のグループに分ける」 ● 次元圧縮(特徴の抽出) ○ 「入力データの特徴量を残してデータ量を削減・復元」 ディープラーニング(機械学習)でできること 教師あり学習 (入力データ+正解データ) 教師なし学習 (入力データのみ) ※一般的な分類で、それ以外(半教師学習、強化学習など)もあります
  21. 21. ● 分類 ○ 「過去のデータを元に新たなデータをクラスに分類する」 ● 予測 ○ 「過去のデータから未来の値を予測する」 ● クラスタリング ○ 「入力データを類似する複数のグループに分ける」 ● 次元圧縮(特徴の抽出) ○ 「入力データの特徴量を残してデータ量を削減・復元」 ディープラーニング(機械学習)でできること 教師あり学習 (入力データ+正解データ) 教師なし学習 (入力データのみ) ※一般的な分類で、それ以外(半教師学習、強化学習など)もあります 今回使うのは「画像の分類」
  22. 22. 教師あり学習のやりかた ● 画像とクラスの紐付けをうまい具合に自動的にやってくれる ● 畳み込みニューラルネットワークの例 W1,1 W1,2 W2,1 W2,2 ・・・ 入力層 中間層 (1層目) 中間層 (2層目) ミクロな特徴 マクロな特徴 0.9 0.2 人:1.0 犬: 0.0 教師データ ・・・ 中間層 (N層目) 出力層 高次元 ベクトル 2次元 ベクトル
  23. 23. つまりキュウリならこう! ● キュウリなら・・・これで等級判断ができる 23 「2L」 「L」 「S」「M」 「B大」「2S」 「B小」「B中」 「C」 縦32x横32x色1=1024次元 9個のクラス=9次元
  24. 24. 試作1号機 ● とにかくキュウリ画像で試してみよう ● 試作1号機誕生 ○ Webカメラをスタンドに固定 ○ 上からキュウリの画像をとる 【ハード】 ・Webカメラ Logicool C270(1,500円) ・アルミのパイプ(数百円) ・結合パーツ(3Dプリンターで印刷。数十円) ・固定用ボルト(数百円) 【ソフト】 ・カメラ制御:OpenCV(オープンソース) ・機械学習:TensorFlow(オープンソース) 制作期間:1週間 制作費:約3000円
  25. 25. ニューラルネットワーク構成 ● 3層の畳み込みニューラルネットワーク 32x32x1 Convolution Pooling Convolution Pooling 9 入力層 隠れ層 出力層 各ラベルの確率 を出力する 畳み込み層1 畳み込み層2 全結合層FC 活性化関数:Relu 最適化関数:Adam
  26. 26. 深層学習はデータが重要!!・・・とはいえ, ● 大量の良質な教師データが必要 ○ 学習データが少ないと過学習 により,実際に使用する環境で は精度がでないという問題があ る とはいえ,初めからコストをかけても・・・ 試作1号機では, ● 2475枚(1クラスにつき275枚) ● 背景に白い厚紙 ● なるべく位置を揃える
  27. 27. 試してみた結果 80%の正答率 教師画像 : 2475枚 ● 思ったよりいい結果だった ● おそらく・・・ ○ 短期間データでの評価であっ たため ○ 置く位置を揃えたため
  28. 28. 可能性が見えた! ● 試作1号機の結果からディープラーニングで選別ができそうな 気がしてきた ● もっと人間の仕分けに近づけたい → カメラの台数を増やしたら精度が上がるかも 熟練農家はいろんな面からキュウ リを判断する 人間の目に近づける
  29. 29. 撮影台の作成 ● キュウリ画像を取得するための台 ● カメラを上、下、横に設置し、キュウリの全面を捉える ● 照明を付けて明るさを一定にする
  30. 30. 教師データ集め ● 作ったキュウリ台で教師データとなる画像を撮影&ラベル付け キュウリ1本につき上、下、横の3枚 の画像を取得
  31. 31. 教師データ集め 集めた画像 : 8500組 解像度:80x80x3 ラベル:10種類 教師画像 : 7000組 テスト用画像 : 1500組 2ヶ月間ほどかかった
  32. 32. ニューラルネットワーク構成 ● 4層の畳み込みニューラルネットワーク 80x80x3 Convolution Pooling Convolution Pooling 10 入力層 隠れ層 出力層 各ラベルの確率 を出力する 畳み込み層1 W:5x5(32) 畳み込み層2 W:5x5(64) 全結合層1 1次元に変換 W:1024 W:512 Dropout 全結合層2 FC FC 0.5 活性化関数:Relu 最適化関数:Adam
  33. 33. 学習結果 91.6%の正答率 ● データを増やした効果 ● カメラを増やした効果 ● 照明を追加した効果 教師画像 : 8500枚
  34. 34. ベルトコンベア作り ● 判断したキュウリを指定の箱まで運ぶベルトコンベアがほしい 部品は3Dプリン ター AruduinoMicro を使って制御
  35. 35. 完成
  36. 36. 試作2号機 36
  37. 37. 試作2号機完成 こんなの使えん! 実用には至らず お蔵入り 37
  38. 38. ユーザーテストでわかったこと ● 仕分け熟練者に見てもらった結果 ○ 遅い ○ ベルトコンベアは傷がつくからダメ←致命的 ○ 判別精度はまぁまぁ ○ 仕分け作業は箱に綺麗に並べて蓋をするまで ○ 総括→おもちゃ 認識部分はいい感触 しかし、まだまだ実用には程遠い! 38
  39. 39. 現場で動かしてみて分かったこと ● 作業場での使用を考えると,毎回画像をアップロードするのは厳しい ○ 気軽にインターネットに繋げない環境 ○ レイテンシの問題→人間並みの判断速度( 500ms程)を目指そうとするときネックになる ○ 通信費が・・・ ● 設置環境による外乱が厳しい ○ 午前中に仕分けをすると認識精度が落ちる 約 90%→約70%ほど ○ 西日が差し込むと使えなくなる ○ 汚れにより精度が落ちる ● 成長時期や季節ごとに作物の出来が異なる ○ 出来始め太め,後半細め ○ 季節によるばらつき ↑使えば汚れてくる ←作業現場はガレージ 農業現場で使うとなると, ● 画像認識系はエッジ側で動かしたい ● 成長時期や季節による果実形状の偏りに対応が必要 ということが分かった 39
  40. 40. 3号機の開発着手 ● 開発コンセプトの変更 ○ 『AIによる自動化』→『AIのサポートによる効率化』 40
  41. 41. テーブル型キュウリ選別システム
  42. 42. システム構成 ● 主な使用ソフトウェア ○ TensorFlow v1.1.0 ○ OpenCV 2.4 ○ Kivy 1.8.0 42
  43. 43. ニューラルネットワーク構成 ● 5層の畳み込みニューラルネットワーク 【前回から変えたところ】 画像に加え、キュウリの長さ、表面 積、太さの数値を入力  →等級判定のキャリブレーション のため SPP[1]  →認識精度向上&画像変形に 対するロバスト性向上 活性化関数にかける前にBatch Normalization[2]で正規化 [1] Kaiming He, et al.”Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition” [2]Sergey loffe, et al.”Batch Normalization: Acceleratiing Deep Network Training by Reducing internal Covarizate Shift” 活性化関数:Relu 最適化関数:Adam
  44. 44. 前回開発を通してわかった課題 ● 季節や成長段階によってキュウリ果実の形に偏りがある ○ 取れ始めのころは全体的に太め、徐々に細長くなる ○ 熟練者作業者は、全体の傾向を見極め等級判断基準を微調整している 長さ 太 さ M L 2L B大 B中 長さ 太 さ M L 2L B大 B中 全体的に等級の分 布が上にズレる 【長さ,太さによるキュウリ等級の分布傾向】 ※長さ,太さによる等級の分布は,経験から線形に変化することがわかっている 通常時 <収穫中期〜> 特定時期 <収穫最初期>
  45. 45. 判定のキャリブレーションの仕組み ● 収穫時期に合わせニューラルネットワークへの入力を調整する ○ 学習時は通常時のデータで行う(標準基準を学習) ○ 運用時は目的の等級になるよう入力画像&数値を調整する ■ 例)収穫初期で通常時なら”B品”だが”M”と判断してほしい→太さを細くす る 学習時 (通常時データで学習) 画像 ニューラル・ ネットワーク 長さ 太さ 表面 積 教師データ 誤差逆伝搬法 判定(運用)時 画像 ニューラル・ ネットワーク 長さ 太さ 表面 積 USB カメラ キャリブレーション値 等級 意図した等級になるよう調整
  46. 46. 教師データ集め 集めた画像 : 36,000枚 解像度:72x24x3 ラベル:9種類 教師画像 : 28,000組 テスト用画像 : 8,000枚 1ヶ月間ほどかかった 46
  47. 47. 画像処理でテーブル上のキュウリを検出 ● マーカー座標検出→射影変換→輪郭抽出→キュウリ画像切り 出し ・背景などキュウリ以外はなるべく減らす ・背景を白く(バックライト)して形がくっきり見えるようにする 47
  48. 48. 学習結果 79.4%の認識率 おそらく、カメラの数を減らした影響 か 91.6%→79.4%に下がった ラズパイでの処理速度を考慮して, 画像解像度を落とした (高解像度であれば約90%を確認) 48
  49. 49. 実際の動作 49
  50. 50. 実務で使うまでになった ● ラズパイだけで,4本を約1 秒ほどで判定 ● 仕分けスピードが1.4倍に なった ● 熟練者のスピードにはまだ 敵わない まぁ,これなら使 えるか?! ● 一応,ボスのOKをもらい実業務で使うようになった 50
  51. 51. 実環境での評価 ● 収穫初期の一番形状が安定しない時期の結果ですが・・・ ○ M,S,2S,B中,B小,Cのキュウリ851本の判定結果 正答率:  73.3% 設置環境による外乱の 影響で正答率は7割ほ どに低下 51
  52. 52. データ数と正答率 学習に使用した画像数 正答率 画像数 :32,000枚 正答率 :77% ・どんどんコスパが 悪くなる・・・ ・品種を変えたらやり 直しのリスク 101 102 103 104 105 52
  53. 53. 開発を通して分かったことと課題 ● 野菜の選別作業に深層学習が有効なことがわかった ○ 選別ルール(=こだわり)を上手く再現 ● 季節変動への対応が必要 ○ 季節変動に併せて判断基準を変えなければならない ○ 新しい環境への対応 ● 教師データをどこまで集めるか ○ 認識精度を維持するには定期的なアップデートが必要 ● 学習済みモデルの評価方法をどうするか ○ テストデータに対する正答率でしか評価できない ○ まれに人間なら間違えないような簡単な判断ミスをする ■ AI+既存技術で改善 53
  54. 54. AI技術の使いどころ ● 完璧(正答率100%)な認識精度を目指すのはそもそも無理 ○ 品質保証できないし・・・ ○ 認識間違いがあることを前提に考える ● 画像処理のプロフェッショナルじゃなくても,ある程度の精度を出せる可能性大 ○ 非専門家こそ活用すべき技術 ○ ただし,範囲を絞って小さく初めることが重要(本来は高コストになりがち) 現状は,多少認識間違えがあったとしても,あったほ うが助かるという場所を見つけると, ディープ・ラーニングをスムーズに導入できそう (もしくは安定した環境を作り,その中だけで使う) 54
  55. 55. AI技術だから出来たこと ● 仕分けノウハウの永続化・再利用 ○ 人間の判断をそのままコンピュータに置き換えることがで きる ○ コンピュータを介してノウハウを保存・伝えることができる ○ 今までの伝承「人→人」,これから「人→AI,AI→人」 55
  56. 56. まとめ ● AI技術を使うことで,仕分け速度を1.4倍にすることができた ● 人間の判断に近づけるためにAI技術は有効 ● 現状のAI技術は「人間の作業をサポートする」という使い方が 適している 56
  57. 57. 農業におけるAI技術の活用 57
  58. 58. AI(アグリ・インフォマティクス)農業 ● AI(アグリ・インフォマティクス)農業とは,最新の情報科学に基づく技術を活用して ,より高度な生産・経営を実現させる農業を目指す 農林水産省:「AI農業の取組について」より
  59. 59. 自動雑草取り機 作物と雑草を見分けて, 雑草だけに除草剤を散布 する. シドニー大学 5959
  60. 60. 自動雑草取り機 60 雑草を判断しピンポイントで除草剤を散布.除草剤量を 1/20に抑え,経費を30%削減. 60
  61. 61. キュウリ果実検出 ● 物体検知アルゴリズムYOLOを基に下記変更を加えたもので実験中 ○ YOLOアルゴリズムからクラス認識部分を削除(不要なため) ○ YOLOアルゴリズムにおいて1セルで検出できる物体数を1に固定(まとめて検出しても問題ないた め) 教師データ予測結果 61
  62. 62. AIでより甘いトマトを作る ● 静岡大学峰野研究室で研究されている「トマトのしおれ検知」 ● 農家の熟練の技をAIが学習 ● AIを利用した上手な水やりで甘いトマトを作る 静岡大学情報学部  峰野研究室 6262
  63. 63. ハウスにセンサを設置 ● ①データを取る→②データの可視化→③分析→④環境制御の自動化 茎径センサ 気温・湿度・散乱光セン サ 葉画像 6363
  64. 64. データを通して植物を知る ● キュウリの茎の太さも1日を通して見ると変化している ● 湿度(飽差)との関連がありそう? 気温 湿度 茎径 6464
  65. 65. データを使って植物博士になる ● 目指す農家=「植物の恵みを社会的価値に変換する人」 65 1日の知見 1日の知見 1日の知見 1日の知見 1日の知見 1日の知見 1日の知見 1日の知見 1日の知見 1日の知見 収量 品質 収量 品質 有機栽培 直販 都市型農業 体験型伝統野菜 超高級 学習 自動化 効率化 今までの篤農家 65
  66. 66. 誰でも使えるAI技術
  67. 67. 「AIの民主化」(=AI技術のコモディティ化) ● 機械学習フレームワークのオープンソース化 ● 音声認識・音声合成・自然言語処理・画像認識などのAPI化 ● 自前データを使ったカスタマイズサービス(クラウドサービス) Youtube - Google Cloud Next 2017
  68. 68. 機械学習ライブラリのオープンソース化 ● 多くの機械学習ライブラリがオープンソース・ソフトウェアとして公開されている 名称 開発元 対応言語 ライセン ス 特徴 TensorFlow Google Python,C++, Go,Java,swift Apache License 2.0 コミュニティが大きい、モバイル端末もサポート、可視 化ツール、分散環境対応、GPU対応、クラウド環境 あり Chainer Preferred Networks Python MIT License 国内ユーザー多い、動的な計算グラフ構築、分散環 境・強化学習用ライブラリもある、GPU対応 Caffe Berkeley University C++,Python BSD-2 アカデミックなコミュニティ、論文実装例や学習済み モデルが多い CNTK Microsoft C++,Python MIT License Windowsでの開発環境構築が楽、複数GPUを効率 的に活用、クラウド環境あり NNabla Sony Python,C++ Apache License 2.0 GUIでノンプログラミング開発。まだユーザー少なく 情報少なめ
  69. 69. テクノロジーの民主化 ● AIに限らず、様々なテクノロジーが無料・低コストで誰でも使える時代 ○ オープンソース・ソフトウェア ■ OS、データベース、Webサーバ、Appサーバ、開発環境、ネット ワーク、CAD、etc… ○ オープンソース・ハードウェア ■ CPU、制御基板、3Dプリンター、ドローン、etc… ○ オープンデータ ■ 科学・環境データ、行政・自治体データ、etc… ○ クラウドが生み出した各種サービスとコストダウン ■ コンピュータリソース、データベース、様々なWebAPI、etc… ○ インターネット電子商取引の発達 ■ 個人と部品メーカーがより近く、世界中から調達可能に ○ 知識、教育 ■ コミュニティ、ブログ、MOOCs、図書館
  70. 70. 私の開発環境 ● キュウリ選果機の場合 OS 機械学習ライブラリ 画像処理ライブラリ IDE 開発環境 制御基板 Arduino RaspberryPi ・ebay,AliExpress ・ミスミNova、モノタロウ... ・秋月電子通商、スイッチサイエン ス… 部品調達 2D/3D CAD 計算機リソース調達 Webアプリ Google Cloud Platform ・3Dプリンター ・FabLab 部品 アプリ基盤 基盤製造サービス ・seeed,elecrow... GPU:約¥100/h 10〜/Lot/数千円
  71. 71. 様々な分野で使えるAI技術(1) 〜工場での不良品検知〜 ● プラスチック成形の不良品検出の効率化 ○ 人の目による外観検査をディープラーニングで効率化 →自分たちで検査装置をDIY.明らかにNGな玉を事前に弾くことで効率化を狙う  羽立工業(株)
  72. 72. 様々な分野で使えるAI技術(2) 〜営農の見える化ーきゅうり価格の予測〜 ● 営農状況の見える化 データの見える化: Google データスタジオ 分析: Google Colaboratory
  73. 73. まずは始めてみよう! ● PCとインターネット環境があればいつでも始められる ○ プログラムできるならGoogle Colab ○ オープンソースやクラウドサービスの活用 ■ Google AutoML(クラウド) ■ Sony NNC(ノンプログラムツール) ○ 情報はインターネット上に大体ある ● データが重要な時代.データを集めましょう. ○ IoTを活用して効率よくデータを集める ○ とはいえノイズだらけのデータでは意味がない(クレンジン グ処理が大変)

×