狠狠撸

狠狠撸Share a Scribd company logo
TensorFlowを使った
キュウリの仕分け
あれこれ
@ike_jpn
Shizuoka.py #6
自己紹介
Twitter : @ike_jpn
Blog : http://www.workpiles.com/
お仕事: きゅうり農家,プログラマー,Tinkerer
最近のマイブーム: 機械学習,Raspberry Pi,...
活動: MakerFireTokyo(1),MashupAwards(4),gugen(1)
Pythonの経験: 独学,OpenCV,Django,TensorFlow
本日話すこと
?TensorFlowを使ったキュウリ仕分け機の開発にまつわるあれこれ
?現在やってる試作3号機の取り組み
キュウリの仕分け機って?
【仕分け(選果)作業とは】
キュウリの長さ、曲り具合、色つや等によっ
て、9種類の等級/階級に選別する。
ウチみたいな個人農家では、仕分け作業
は手作業で行なっており、けっこう時間が
かかって大変!
        ↓
流行りのディープラーニングで自動化出来
ないだろうか。やってみたらなんか出来そう
だぞ。
遡ること2016年1月
当時はまだTensorFlow0.6.0。それを何故か32bitPCにインストールしてました。    
*最新はr1.0.0
TensorFlowは何と言ってもチュートリアルがしっかりしている! MNISTのチュートリア
ルをやれば畳み込みニューラルネットワークを使った画像認識のやり方がほぼ分かる。
TensorFlowの基本(1)
TensorFlowのコーディングは、初めにデータフローグラフを構築して、その後実行(デー
タを流す)という手順で行います。
実行結果:
①データフローグラフの構築
 3
②’z’を実行して処理結果を取得
○をops(operationsの略)と
呼びます。
TensorFlowは分散処理用
に設計されており、ops毎に
処理するデバイスを指定す
ることができる。
TensorFlowの基本(2)
データフローグラフの入り口を作って、データを流し込む。
実行結果:
placeholderがデータフ
ローの入り口。
実行時にfeed_dictでデー
タを流し込む。
Deep MNIST for Experts
『Deep MNIST for Experts』チュートリアルを行うと4層の畳み込みニューラルネットワー
クの作り方が大体理解できる。後は、これをベースにちょっとずつチューニングする。
チューニング項目:
 ネットワーク構成:
  積層数、処理順序、活性化関数、損失関数、正規化、正則化 …
 畳み込み層:
  フィルタ数、フィルタサイズ、 …
 プーリング層:
  アルゴリズム、サイズ、 …
 ドロップアウト:
  有無、ドロップアウト率
 全結合層:
  ユニット数、…
(最適なパラメータ教えてくれる AIプリーズ…)
試作1号機
最初の試作はWebカメラで上から撮影したキュウリ画像を9クラスに識別するだけ。
ブログのネタになればいいかな程度でやってみた。
275枚のテスト画像に対し、約80%の正答率。
学習データ
 サイズ:32x32x3
 数:2750枚
2016年2月
やっぱりPCパワーないと厳しい。ちょっと入力画像の解像度上げるとOOMで落ちる。  
→メモリを8Gから24Gに増設(今思えば実装の仕方が悪かっただけでこんなにいらなかった…)
でも、GPUないから遅い。ちょっと階層を増やそうものなら学習が終わらなくなる。    
→GPUは高いな???ゲームもやらないし???クラウドよくわからん
*GCPのCloudML使ってみたけど、ぶん回すといつの間にか高額請求になりがち。1週間で2
万ぐらい行った(無料期間中でホント助かった)。がっつり機械学習やるならGPU買った方がい
いかも。ネットを見るとなんとなくGTX1080買ってる人が多いかな?
2016年3月
ディープラーニングお金掛かりそうだし、一応ブログのネタにもなったし、そもそも人間と
同等の仕分け作業なんて無理だろうし???
すごーい!きみは囲碁が得意なフレンズなんだね!
試作2号機の制作開始
撮影台から作成を始めた。
何度も作り直したので製作期間は1ヶ月間ぐらいかかった。
教師データ集め
人間が仕分けをしたキュウリを台に乗せて、ひたすら撮影とラベル付け。
撮影とラベル付けは、openCVで簡単なスクリプトを作成。
教師データ集め
8500本分のキュウリ画像を撮りためる。撮影期間2ヶ月間ほど。
7000本を教師データ、1500本をテストデータとした。
学習&チューニング
パラメータを変えて何度も試す。40回ぐらいやってわかってきたこと。
?画像サイズはできるだけ小さくした方がいい(無駄に大きのは時間の無駄)
?画像サイズは小さすぎない方がいい(解像度上げるだけで良い結果になる場合もあ
る)
?変数(重みとバイアス)の初期値は継承しよう(restoreで簡単にできるよ)
?Batch Normalizationはいいものだ(誤差の収束が捗る)
?データ拡張はいいものだ(輝度をばらつかせたら効果あった)
今回の場合では、ネットワークのパラメータを調整するよりも、データの前処理をしっかり
行なった方がよい結果につながるという印象でした。
最終的には正答率96%までいった。
*Batch Normalizationは、なぜかラズパイで動かすための protobufに変
換出来なかったので、本番では使わなかった
2016年6月
ベルトコンベアの作成と撮影台との連携を考えたり。
作り方→http://workpiles.com/2016/08/ccb9-diy-belt_conveyor/
試作2号機完成!
実環境で動かしてみると約70%の正答率。
周りの明るさ、キュウリを置く位置などの影響を受けまくる。
試作3号機での取り組み
● キュウリの表面の傷なども認識したい
  → キュウリを接写し、もっと解像度を上げで認識したい(学習が進まない問題)
→ オートエンコーダで事前学習を試してみる
→ 転移学習を試してみる
● キュウリの病気も認識したい
  → 教師データが集まらない
    →教師データの錬金術
● キュウリを手で台に置くのは…全自動化したい
  → キュウリを自動的にピックアップする装置の開発
Convolutional Auto-Encoder
オートエンコーダとは、機械学習において、ニューラルネットワークを使用した次元圧縮
のためのアルゴリズム(wikiより)。
?事前学習に使われている(最近はほとんどやらない?)
?256x80でやってみたけど学習が収束していかない…
Input
(160*80*3)
Hidden
*1/12
output
(160*80*3)
https://twitter.com/ike_jpn/status/786469686762274816
VGG16を使った転移学習
既存の訓練されたニューラルネットワークを使って、一部分を再学習することで、効率良
く学習をおこなう。
Inception-v3で抽出した特徴をマッピングしてみた。
VGG16を使って転移学習してみた。
→正答率84%(自前CNNよりも低い)
教師データの錬金術
教師データが少ない、そもそも集まらない場合は、仮想世界で瞬時に大量生産したデー
タで学習して、現実世界に適用すればよい。
最近のゲームを見ても分かる通り、高品質なテクスチャだけでなく、光効果、物理現象す
らもリアルに再現するよ。
https://arxiv.org/abs/1612.03019
(2ヶ月間も写真撮るよりも、 Unity勉強したほうがよかった?)
全自動化
https://twitter.com/ike_jpn/status/829006671787593728
https://twitter.com/ike_jpn/status/822487711592218625
収穫したキュウリをピックアップする装置を作ってみたり。
デルタ式3Dプリンタの先にロボットハンドとカメラを付けた的なやつ
全部pythonで書いてます(リアルタイム性とかあまり気にしないフレンズなんだね!)
まとめ
● まだまだ実用できるレベルではないですが、機械学習を使った自動化の可能性は
見えたかも
● TensorFlowはチュートリアルがしっかりしてるので取っ付き易いただ、最近はAPI
が混沌としてきたような…(tf.layers,tf.contrib.learn,tf.contrib.slim,kerasとか…)
● 機械学習プログラムは楽しい!一人で悩まなくていい!
● 試作3号機を今年のMakerFaireに出せるようがんばります

More Related Content

What's hot (20)

PPTX
初心者が Python て?戸惑ったところ
Emma Haruka Iwao
?
PDF
最近思った机械学习(笔测罢辞谤肠丑)のベストプラクティス
Masato Fujitake
?
PDF
罢别苍蝉辞谤贵濒辞飞をざっくり尝罢してみた
Mitsuki Ogasahara
?
PPTX
罢别苍蝉辞谤贵濒辞飞で会话础滨を作ってみた。
tak9029
?
PDF
笔测迟丑辞苍で自动化した话1
Masato Fujitake
?
PDF
笔测迟丑辞苍で笔辞诲肠补蝉迟を聴く
Masato Fujitake
?
PPTX
「自动化...か、かっこいいタル」(憧れ)から始める自动化
Hirokazu Kutsu
?
PPTX
Raspberry PiとPythonでできること
Lina Katayose
?
PPTX
笔测迟丑辞苍でルンバをペットにする闇の技术
karaage0703
?
PPTX
Pythonで機械学習を自動化 auto sklearn
Yukino Ikegami
?
PPTX
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
dots.
?
PPTX
S13 t0 introduction
Takeshi Akutsu
?
PDF
TFUG_yuma_matsuoka__distributed_GPU
YumaMatsuoka
?
PDF
笔测迟丑辞苍を使った机械学习の学习
Kimikazu Kato
?
PDF
Py datameetup1
shiroyagi
?
PDF
正しいプログラミング言语の覚え方
Kimikazu Kato
?
PPTX
罢别苍蝉辞谤蹿濒辞飞で言语识别をやってみた
Kyota Yasuda
?
PPTX
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
Yutaka Kato
?
PDF
プログラミング学習とScratch raspi python
Yoshitaka Shiono
?
PDF
S14 t0 introduction
Takeshi Akutsu
?
初心者が Python て?戸惑ったところ
Emma Haruka Iwao
?
最近思った机械学习(笔测罢辞谤肠丑)のベストプラクティス
Masato Fujitake
?
罢别苍蝉辞谤贵濒辞飞をざっくり尝罢してみた
Mitsuki Ogasahara
?
罢别苍蝉辞谤贵濒辞飞で会话础滨を作ってみた。
tak9029
?
笔测迟丑辞苍で自动化した话1
Masato Fujitake
?
笔测迟丑辞苍で笔辞诲肠补蝉迟を聴く
Masato Fujitake
?
「自动化...か、かっこいいタル」(憧れ)から始める自动化
Hirokazu Kutsu
?
Raspberry PiとPythonでできること
Lina Katayose
?
笔测迟丑辞苍でルンバをペットにする闇の技术
karaage0703
?
Pythonで機械学習を自動化 auto sklearn
Yukino Ikegami
?
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
dots.
?
S13 t0 introduction
Takeshi Akutsu
?
TFUG_yuma_matsuoka__distributed_GPU
YumaMatsuoka
?
笔测迟丑辞苍を使った机械学习の学习
Kimikazu Kato
?
Py datameetup1
shiroyagi
?
正しいプログラミング言语の覚え方
Kimikazu Kato
?
罢别苍蝉辞谤蹿濒辞飞で言语识别をやってみた
Kyota Yasuda
?
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
Yutaka Kato
?
プログラミング学習とScratch raspi python
Yoshitaka Shiono
?
S14 t0 introduction
Takeshi Akutsu
?

Viewers also liked (20)

PPTX
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Nao Oec
?
PPTX
颁濒颈肠办で颁尝滨をお手軽につくるぅぅぅ
Kazufumi Ohkawa
?
PDF
Shizuoka.py #6 lt 確定申告をpythonて?乗り切る
hiroshi sano
?
PDF
数学史 黎明期
yaju88
?
PDF
サザエさんのじゃんけん データ分析
yaju88
?
DOC
Wie zit er écht achter de site mvslim.com?
Thierry Debels
?
PPT
The Dream Act
juliakoenig
?
PDF
Access may newsletter
enrique santoyo quezada
?
PDF
Microsoft Dynamics NAV Phone Client
Manish Mutha
?
PPTX
Grupo 3 - 4 A
M? Aurora Martín
?
PPTX
Public toilets
chanchal meena
?
PPTX
Neumonía neonatal
guido calcina
?
PPTX
Reanimacion neonatal
Naza Cervantes
?
PPTX
Sesion #2, wacc (spanish)
Elvis U Omar
?
PPTX
Unit 9-Day 7
smile4deaf
?
PDF
"Archaeology and RPG" hack: LUNA's development progress, at NBUG meeting 2017-02
Kenji Aoyama
?
PDF
Топ зарубежных интернет-магазинов в России за 2013
Retail & Strategy
?
PPTX
Quick sort-Data Structure
Jeanie Arnoco
?
PDF
Opencv object detection_takmin
Takuya Minagawa
?
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Nao Oec
?
颁濒颈肠办で颁尝滨をお手軽につくるぅぅぅ
Kazufumi Ohkawa
?
Shizuoka.py #6 lt 確定申告をpythonて?乗り切る
hiroshi sano
?
数学史 黎明期
yaju88
?
サザエさんのじゃんけん データ分析
yaju88
?
Wie zit er écht achter de site mvslim.com?
Thierry Debels
?
The Dream Act
juliakoenig
?
Access may newsletter
enrique santoyo quezada
?
Microsoft Dynamics NAV Phone Client
Manish Mutha
?
Grupo 3 - 4 A
M? Aurora Martín
?
Public toilets
chanchal meena
?
Neumonía neonatal
guido calcina
?
Reanimacion neonatal
Naza Cervantes
?
Sesion #2, wacc (spanish)
Elvis U Omar
?
Unit 9-Day 7
smile4deaf
?
"Archaeology and RPG" hack: LUNA's development progress, at NBUG meeting 2017-02
Kenji Aoyama
?
Топ зарубежных интернет-магазинов в России за 2013
Retail & Strategy
?
Quick sort-Data Structure
Jeanie Arnoco
?
Opencv object detection_takmin
Takuya Minagawa
?
Ad

Similar to Tensor flowを使った キュウリの仕分け あれこれ (20)

PDF
罢别苍蝉辞谤贵濒辞飞で游んでみよう!
Kei Hirata
?
PPTX
tfug-kagoshima
tak9029
?
PPTX
奥别产エンジニアが初めて机械学习に触れてみた话
Shohei Tai
?
PDF
鲍贰4ディープラーニングってやつでなんとかして!环境构筑编(笔测迟丑辞苍3+罢别苍蝉辞谤贵濒辞飞)
エピック?ゲームズ?ジャパン Epic Games Japan
?
PDF
齿迟别虫迟ハンズオン(仮)
You&I
?
PDF
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
?
PDF
皆で考える顿别惫翱辫蝉
Ryotaro Kobayashi
?
PDF
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
?
PPTX
(辫测迟丑辞苍)勉强会のすすめ
Kioto Hirahara
?
PDF
Tensorgo
YoshitomoYasuno
?
PPTX
【kintone Cafe 名古屋】kintone×○○○の可能性
Hiroyasu Yamada
?
ODP
気の合う人达と社外で社内勉强会
Yu Shibatsuji
?
PDF
TFLite_and_PyTorch_Mobile
yusuke shibui
?
PDF
罢别苍蝉辞谤贵濒辞飞プログラミングと分类アルゴリズムの基础
Etsuji Nakai
?
PDF
dl-with-python01_handout
Shin Asakawa
?
PDF
Ml system in_python
yusuke shibui
?
PPTX
农业と滨罢を翱厂厂で
Bus Hato
?
PDF
Goにおけるバージョン管理の必要性 ? vgoについて ?
Takuya Ueda
?
PDF
Start rl with_unity_machine_learning_agents
infinite_loop
?
KEY
奥颈苍诲辞飞蝉に辫测迟丑辞苍をインストールしてみよう
Kenji NAKAGAKI
?
罢别苍蝉辞谤贵濒辞飞で游んでみよう!
Kei Hirata
?
tfug-kagoshima
tak9029
?
奥别产エンジニアが初めて机械学习に触れてみた话
Shohei Tai
?
鲍贰4ディープラーニングってやつでなんとかして!环境构筑编(笔测迟丑辞苍3+罢别苍蝉辞谤贵濒辞飞)
エピック?ゲームズ?ジャパン Epic Games Japan
?
齿迟别虫迟ハンズオン(仮)
You&I
?
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
?
皆で考える顿别惫翱辫蝉
Ryotaro Kobayashi
?
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
?
(辫测迟丑辞苍)勉强会のすすめ
Kioto Hirahara
?
【kintone Cafe 名古屋】kintone×○○○の可能性
Hiroyasu Yamada
?
気の合う人达と社外で社内勉强会
Yu Shibatsuji
?
TFLite_and_PyTorch_Mobile
yusuke shibui
?
罢别苍蝉辞谤贵濒辞飞プログラミングと分类アルゴリズムの基础
Etsuji Nakai
?
dl-with-python01_handout
Shin Asakawa
?
Ml system in_python
yusuke shibui
?
农业と滨罢を翱厂厂で
Bus Hato
?
Goにおけるバージョン管理の必要性 ? vgoについて ?
Takuya Ueda
?
Start rl with_unity_machine_learning_agents
infinite_loop
?
奥颈苍诲辞飞蝉に辫测迟丑辞苍をインストールしてみよう
Kenji NAKAGAKI
?
Ad

More from Makoto Koike (6)

PDF
[オープンキャンプ颈苍南岛原2020]深层学习を使ってキュウリ选别机作ってみた
Makoto Koike
?
PDF
TensorFlow Liteを使った組み込みディープラーニング開発
Makoto Koike
?
PDF
摆笔测颁辞苍闯笔2019闭笔测迟丑辞苍で切り开く新しい农业
Makoto Koike
?
PDF
惭颈肠谤辞笔测迟丑辞苍で作る人工生命っぽい何か
Makoto Koike
?
PDF
础滨を使ったキュウリの自动选别
Makoto Koike
?
PDF
ディープラーニングを用いたキュウリ选果机の开発
Makoto Koike
?
[オープンキャンプ颈苍南岛原2020]深层学习を使ってキュウリ选别机作ってみた
Makoto Koike
?
TensorFlow Liteを使った組み込みディープラーニング開発
Makoto Koike
?
摆笔测颁辞苍闯笔2019闭笔测迟丑辞苍で切り开く新しい农业
Makoto Koike
?
惭颈肠谤辞笔测迟丑辞苍で作る人工生命っぽい何か
Makoto Koike
?
础滨を使ったキュウリの自动选别
Makoto Koike
?
ディープラーニングを用いたキュウリ选果机の开発
Makoto Koike
?

Recently uploaded (6)

PDF
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?
PDF
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
PPTX
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
PDF
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
PDF
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
PDF
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?

Tensor flowを使った キュウリの仕分け あれこれ