SlideShare a Scribd company logo
1 of 44
Download to read offline
機器學習
應用於蔬果偵測
Kobe Yu
投影片授權聲明
投影片內容採 CC BY-SA-NC 3.0TW(姓名標示-相同方式分享-非商業性 3.0 台灣)。
完整授權內容 : https://creativecommons.org/licenses/by-nc-sa/3.0/tw/
About Me
● 清大資工博士班學生
○ 從系統軟體的角度提升電腦視覺與類神經網路的運算效能。
● 8+軟體開發經驗
○ 電腦視覺/多媒體串流/iOS App開發/攝影機模組驅動與調校。
● 開源專案
○ Farmharvest bot (農場採收機器人) FB: FarmBot Taiwan User Group-FBTUG
○ Agrino (農業感測) http://bit.ly/2MDaAdy
Outline
● 農場採果機器人(FarmHarvestbot)專案簡介
● ML開發流程以蔬果辨識為例
● Demo
● Q&A
FarmBot Taiwan User Group-FBTUG
● 專案緣起
○ 希望藉由開源農業機器的推廣與貢獻,給友善農業一點幫助。
● 社群成員
○ 發起人: 哈爸
○ 成員:~2400 (各領域專家或有興趣的大眾 )
○ 與採果專案有關的幾位成員
■ 志弘大哥 硬體與CNC專家
■ CH大 ML(YOLO) geek
■ Jack AR/VR、電腦視覺專家
■ Eric 埔里小農(一點都不小的小農)
■ Olin Dataset協調人
■ …. 默默協助的伙伴們
FarmHarvestbot
● 農場採果機器人
○ 開源專案
■ 軟體/硬體/機構/資料集
○ Why
■ 農業缺工問題
■ 採收時效性
■ 知識與經驗共享
○ How
■ Core/Support群組
■ 開放討論
FB: FarmBot Taiwan User Group-FBTUG
Doc: https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot-w2FKkhc4ZTlj6knhOK43p
Machine Learning + Computer Vision
● 目標
○ 蔬果辨識與定位
■ 種類
● 小果番茄/小黃瓜/彩椒
■ ML
● 辨識蔬果
■ CV
● 影像前處理:擷取影像+Resize
● 座標位置(x,y,z)
○ 蔬果中心位置
○ 切割點位置
○ 座標轉換
■ 夾具移動向量
Machine Learning + Computer Vision
● 建立自己的YOLO辨識模型 – 以柑橘辨識為例 - CH大大
source https://projectplus.cc/Projects/yolo-201810/
Machine Learning Pipeline
Phase 1.
Problem
Understanding
Phase 3.
Model
Processing
Phase 2.
Data
Processing
Phase 4.
Deploy
Problem Understanding
● 目標
○ 專案目標:蔬果採收機器人
■ NN+Vision:辨識可採收的蔬果位置 (x,y,z) + 座標轉換(camera <-> arm)
■ 即時處理
● 系統架構
○ 軟體 Raspbian + ROS
○ 硬體 RPi
○ 機構 (Arm/Camera/autonomous vehicles)
● 作物種類
○ 小果番茄/彩椒/小黃瓜
○ 採收標準/採收方法
○ 夾具
● 場域
○ 溫室為主,一個溫室基本上只種一種作物
Phase 1 Phase 2 Phase 3 Phase 4
Problem Understanding
● 目標物種
○ 小果番茄 - 玉女番茄
● 場域與栽種方式
○ 溫室 / 掛網式 (走道寬度/目標物件高度)
● USB Camera
○ 解析度 / F0V(影響目標物件在影像中的成像大小 )
● 判斷標準(採收標準/採收方式)
● 運行平台
○ RPi+Intel Movidius NCS
source: https://paper.dropbox.com/doc/FBTUG--ASl58MS7PkuY4SIYoHLxJXHoAg-QdMWCaBBoyudOTNuvhd4c
Phase 1 Phase 2 Phase 3 Phase 4
Data Processing
● 資料特性
● 蒐集照片
● 資料標記
● 資料轉換
Phase 1 Phase 2 Phase 3 Phase 4
Data Processing
● 資料特性
○ 目標物種
■ 小果番茄 - 玉女番茄
○ 標記類別
■ 0_pepper_flower 花朵
■ 1_pepper_young 尚未成熟果實
■ 2_pepper_matured 成熟果實可摘採
■ 3_pepper_covered 成熟果實需撥葉摘採
○ 判斷標準與注意事項(from domain expert)
Phase 1 Phase 2 Phase 3 Phase 4
source https://paper.dropbox.com/doc/FBTUG--ASl58MS7PkuY4SIYoHLxJXHoAg-QdMWCaBBoyudOTNuvhd4c
Data Processing
● 蒐集照片
○ 活動紀錄
■ 基本資訊(人事時地物)
■ 作物資料
■ 相機資料
■ 拍攝方式
source
活動紀錄 https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot--ASkl43eqEeSkI3g~dcTtYHVWAg-XHZpHOCR4Tw6amCxMY0E0
資料蒐集紀錄表https://paper.dropbox.com/doc/JsCHkjEGzSIAvT65J0fc4
Phase 1 Phase 2 Phase 3 Phase 4
Data Processing
● 資料標記
○ 工具
■ ImageLabel (offline)
■ Datatrunk (online)
○ 輸出格式
■ PASCAL VOC Format(XML)
source
https://drive.google.com/file/d/1WfdacRUEJ1HgIlQsimbMVLVe2GlKsKJS/view
https://dataturks.com/projects/kobeyu/FarmHarvestBot-tomato
Phase 1 Phase 2 Phase 3 Phase 4
Pascal VOC format.
<annotation>
<folder>GeneratedData_Train</folder>
<filename>000001.png</filename>
<path>/my/path/GeneratedData_Train/000001.png</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>224</width>
<height>224</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>21</name>
<pose>Frontal</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<occluded>0</occluded>
<bndbox>
<xmin>82</xmin>
<xmax>172</xmax>
<ymin>88</ymin>
<ymax>146</ymax>
</bndbox>
</object>
</annotation>
Phase 1 Phase 2 Phase 3 Phase 4
Data Processing
● 資料轉換
○ VOC to YOLO
○ VOC to tfrecord
■ create_pascal_tf_record.py
source
https://github.com/tensorflow/models/blob/master/research/object_detection/dataset_tools/create_pascal_tf_record.
py
Phase 1 Phase 2 Phase 3 Phase 4
Model Processing
● 定義問題
● 選擇網路架構
● 訓練
● 驗證
Phase 1 Phase 2 Phase 3 Phase 4
Classification/Detection/Segmentation
source https://medium.com/comet-app/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852
Object Detection
● R-CNN
○ Fast R-CNN
○ Faster R-CNN
● YOLO
○ YOLO
● SSD
○ SSD+Mobilenet
Phase 1 Phase 2 Phase 3 Phase 4
Object Detection Dataset
● PASCAL VOC
● MSCOCO
● ImageNet Det
Phase 1 Phase 2 Phase 3 Phase 4
Model Processing
● 選擇網路
○ 準確度 v.s 執行速度
● 回顧Phase1
○ 運行平台
■ RPi + Intel Movidius NCS
○ 實測結果
■ SSD-Mobilenet(5.5 FPS)
■ Tiny-yolo v2(0.7 FPS)
reference
https://github.com/movidius/ncappzoo
https://www.youtube.com/watch?v=llBhBSgoWPs
Phase 1 Phase 2 Phase 3 Phase 4
Model Processing
● 效能指標
○ mAP
○ IoU
Phase 1 Phase 2 Phase 3 Phase 4
source https://github.com/Cartucho/mAP
Mobilenet
● Separate convolutions
○ Depthwise + pointwise convolution
● Multiplier
○ α:Width Multiplier (0.25、0.5、0.75、1)
○ ρ:Resolution Multiplier (128、160、192、224)
source:
https://yinguobing.com/bottlenecks-block-in-mobilenetv2/
https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md
https://arxiv.org/abs/1704.04861
Phase 1 Phase 2 Phase 3 Phase 4
Mobilenet
輸入資料: W_in * H_in * Nch,Kernel Map: k * k * Nk,輸出資料: W_out * H_out * Nk
一般卷積 計算量為 W_in * H_in * Nch* k * k * Nk
Depthwise separable convolution計算量為 (Depthwise convolution計算量+Pointwise convolution計算量)
Depthwise convolution計算量為 W_in * H_in * Nch* k * k
Pointwise convolution計算量為 Nch*Nk * W_in * H_in
source
https://medium.com/@chih.sheng.huang821/%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-mobilenet
-depthwise-separable-convolution-f1ed016b3467
Mobilenet
Million MACs Million Parameters Top-1 Accuracy Top-5 Accuracy
MobileNet_v1_1.0_224 569 4.24 70.9 89.9
MobileNet_v1_1.0_192 418 4.24 70.0 89.2
MobileNet_v1_1.0_160 291 4.24 68.0 87.7
MobileNet_v1_1.0_128 186 4.24 65.2 85.8
MobileNet_v1_0.75_224 317 2.59 68.4 88.2
MobileNet_v1_0.50_224 150 1.34 63.3 84.9
MobileNet_v1_0.25_224 41 0.47 49.8 74.2
MobileNet_v1_1.0_224_quant 569 4.24 70.1 88.9
MobileNet_v1_0.25_128_quant 14 0.47 39.5 64.4
Phase 1 Phase 2 Phase 3 Phase 4
MobilenetV2
● Classification
○ MobilenetV2
● Detection
○ MobileNetV2 + SSDLite
● Segmentation
○ MobileNetV2 + DeepLabV3
source https://ai.googleblog.com/2018/04/mobilenetv2-next-generation-of-on.html
MobilenetV1 v.s MobilenetV2
Model Processing
● Model
○ SSD+Mobilenetv1
○ SSDLite+Mobilenetv2
○ yolo
● Dataset (Image + PASCAL VOC)
○ Farmharvestbot
■ 小果番茄
■ 彩椒
○ MS COCO
Phase 1 Phase 2 Phase 3 Phase 4
Model Training
● Model
○ SSD-Mobilenetv1
● Dataset
○ MS COCO
● Training framework
○ Tensorflow + Tensorflow/Models/research/object_detection
● Script
python object_detection/model_main.py 
--pipeline_config_path=./object_detection/ssd_mobilenetv1/model/ssd_mobilenet_v1_pets.config 
--model_dir=./object_detection/ssd_mobilenetv1/model/ 
--num_train_steps=200000 
--num_eval_steps=8000 
--alsologtostderr 
source https://github.com/kobe0308/models.git (branch develop)
Phase 1 Phase 2 Phase 3 Phase 4
Model Processing
● Model
○ SSD+Mobilenetv1
● Dataset
○ MS COCO
● Training parameters
○ batch size:24
○ steps: 200K
○ classes:20
Phase 1 Phase 2 Phase 3 Phase 4
Model Processing
● Model
○ SSD+Mobilenetv1
● Dataset
○ Farmharvestbot-tomato
● Training parameters
○ batch size:24
○ steps: 200K
○ classes:4
Phase 1 Phase 2 Phase 3 Phase 4
Model Processing
● Model
○ SSD+Mobilenetv1
● Dataset
○ Farmharvestbot-pepper
● Training parameters
○ batch size:24
○ steps: 200K
○ classes:4
Phase 1 Phase 2 Phase 3 Phase 4
Deploy
● Edge compute (compare with client/server)
● Platform(RPi+Neural Compute Stick)
■ SBC(RPi 3 Model B)
● 1.4GHz Quad-Core ARM Cortex-A53 (64Bit)
■ NCS
● Intel Movidus NCS
○ 12 Shave Core(VLIW Arch)
○ 1 TOPs
● Intel Movidus NCS2
○ 16 Shave Core(VLIW Arch)
○ Dedicated Neural Compute Engine
○ 4 TOPs
● Orange Pi AI Stick 2801
○ Matrix Processing Engine
○ 9.3 TOps
source https://qconsf.com/sf2017/system/files/presentation-slides/qconf_presentation.pdf
Phase 1 Phase 2 Phase 3 Phase 4
NN+Vision Pipeline
● Recap problem understanding
○ Realtime!
○ Capture image
■ resolution @30fps
○ Acceleactor
■ NN inference - NCS
■ Image Processing - CPU(Multi-thread + SIMD/ARM compute library)
○ Programming language
■ Python or C++
Image
Preprocess
Capture
Image
NN
Inference
Image
Postprocess
source https://www.anandtech.com/show/7591/answered-by-the-experts-arms-cortex-a53-lead-architect-peter-greenhalgh
Phase 1 Phase 2 Phase 3 Phase 4
Movidius Toolkit
NCSDK
● Compiler (from trained nn to inference engine)
● Checker
● Profiler (profile performance in each nn layer)
● NCSAPI(C++)
source https://qconsf.com/sf2017/system/files/presentation-slides/qconf_presentation.pdf
Phase 1 Phase 2 Phase 3 Phase 4
Movidius Toolkit
● Command
○ mvNCCompile -s <number of shaves> <name of the model>_frozen.pb -in=input
-on=<name of the output node>
● Support training framework
○ Tensorflow
○ Caffe
Phase 1 Phase 2 Phase 3 Phase 4
source https://movidius.github.io/ncsdk/tf_modelzoo.html
Movidius Architecture
● SHAVE core
○ 8 parallel function units
■ predicated execution unit (PEU)
■ branch and repeat unit (BRU)
■ two 64-bit load-store units (LSU0/LSU1)
■ 32-bit integer arithmetic unit (IAU)
■ 32-bit scalar arithmetic unit (SAU)
■ 128-bit vector arithmetic unit(VAU)
■ 128-bit compare move unit (CMU)
source https://en.wikichip.org/wiki/movidius/microarchitectures/shave_v2.0
Phase 1 Phase 2 Phase 3 Phase 4
Single Issue RISC v.s VLIW
source https://slideplayer.com/slide/4896590/
Phase 1 Phase 2 Phase 3 Phase 4
Demo
● Platform
○ RPi3+Intel Movidius NCS
● Model
○ SSD+Mobilenet
● FPS ~5
Phase 1 Phase 2 Phase 3 Phase 4
Robot Arm and Camera Calibration
source https://slideplayer.com/slide/7491989/
TODO...
● 坑坑相連到天邊...
● Join us!
Farmharvestbot
FB: FarmBot Taiwan User Group-FBTUG
Doc: https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot--ASlFVrNQa1XWOCWxktW_~JkgAg-w2FKkhc4ZTlj6knhOK43p
專案成員: https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot--ASkpEA1~UFD9CQDm4hhPaWKMAg-9q9yQmaWjhkgh1EdB4EBc
Q & A

More Related Content

What's hot

新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向FIDO Alliance
 
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...yoshimotot
 
Introduction to WAF and Network Application Security
Introduction to WAF and Network Application SecurityIntroduction to WAF and Network Application Security
Introduction to WAF and Network Application SecurityAlibaba Cloud
 
Active directoryと認証・認可
Active directoryと認証・認可Active directoryと認証・認可
Active directoryと認証・認可Hiroki Kamata
 
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Microsoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation CredentialsMicrosoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation Credentials
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation CredentialsNaohiro Fujie
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれからshigeki_ohtsu
 
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --Jun Kurihara
 
Microsoft Endpoint Manager Tenant Attach のご紹介
Microsoft Endpoint Manager Tenant Attach のご紹介Microsoft Endpoint Manager Tenant Attach のご紹介
Microsoft Endpoint Manager Tenant Attach のご紹介Yutaro Tamai
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
Scalar DL Technical Overview
Scalar DL Technical OverviewScalar DL Technical Overview
Scalar DL Technical OverviewScalar, Inc.
 
Azure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveAzure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveNaohiro Fujie
 
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装Salesforce Developers Japan
 
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送Google Cloud Platform - Japan
 
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送Google Cloud Platform - Japan
 
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える足を地に着け落ち着いて考える
足を地に着け落ち着いて考えるRyuji Tamagawa
 
Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLAAngelo Corsaro
 

What's hot (20)

新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向
 
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
 
HSM超入門講座
HSM超入門講座HSM超入門講座
HSM超入門講座
 
Introduction to WAF and Network Application Security
Introduction to WAF and Network Application SecurityIntroduction to WAF and Network Application Security
Introduction to WAF and Network Application Security
 
Active directoryと認証・認可
Active directoryと認証・認可Active directoryと認証・認可
Active directoryと認証・認可
 
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Microsoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation CredentialsMicrosoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation Credentials
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
 
Keycloakの動向
Keycloakの動向Keycloakの動向
Keycloakの動向
 
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ぶ --
 
Microsoft Endpoint Manager Tenant Attach のご紹介
Microsoft Endpoint Manager Tenant Attach のご紹介Microsoft Endpoint Manager Tenant Attach のご紹介
Microsoft Endpoint Manager Tenant Attach のご紹介
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
Scalar DL Technical Overview
Scalar DL Technical OverviewScalar DL Technical Overview
Scalar DL Technical Overview
 
Azure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveAzure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep Dive
 
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
 
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
 
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
 
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみるOracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
 
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
 
Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLA
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 

Similar to 機器學習應用於蔬果辨識

Monitoring of GPU Usage with Tensorflow Models Using Prometheus
Monitoring of GPU Usage with Tensorflow Models Using PrometheusMonitoring of GPU Usage with Tensorflow Models Using Prometheus
Monitoring of GPU Usage with Tensorflow Models Using PrometheusDatabricks
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]Mahmoud Hatem
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON
 
Tiny ML for spark Fun Edge
Tiny ML for spark Fun EdgeTiny ML for spark Fun Edge
Tiny ML for spark Fun Edge艾鍗科技
 
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?Tom Paseka
 
Yocto and IoT - a retrospective
Yocto and IoT - a retrospectiveYocto and IoT - a retrospective
Yocto and IoT - a retrospectiveOpen-RnD
 
Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96波 董
 
Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96波 董
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightLinaro
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Satoshi Konno
 
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016DataStax
 
Crash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_TizenCrash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_TizenLex Yu
 
Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Matteo Valoriani
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Codemotion
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Codemotion
 
426 lecture 4: AR Developer Tools
426 lecture 4: AR Developer Tools426 lecture 4: AR Developer Tools
426 lecture 4: AR Developer ToolsMark Billinghurst
 
Share the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development BoardShare the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development BoardJian-Hong Pan
 
Molecular Shape Searching on GPUs: A Brave New World
Molecular Shape Searching on GPUs: A Brave New WorldMolecular Shape Searching on GPUs: A Brave New World
Molecular Shape Searching on GPUs: A Brave New WorldCan Ozdoruk
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideLinaro
 

Similar to 機器學習應用於蔬果辨識 (20)

Monitoring of GPU Usage with Tensorflow Models Using Prometheus
Monitoring of GPU Usage with Tensorflow Models Using PrometheusMonitoring of GPU Usage with Tensorflow Models Using Prometheus
Monitoring of GPU Usage with Tensorflow Models Using Prometheus
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
 
Tiny ML for spark Fun Edge
Tiny ML for spark Fun EdgeTiny ML for spark Fun Edge
Tiny ML for spark Fun Edge
 
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
 
Yocto and IoT - a retrospective
Yocto and IoT - a retrospectiveYocto and IoT - a retrospective
Yocto and IoT - a retrospective
 
Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96
 
Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96Ubuntu core on bubblegum 96
Ubuntu core on bubblegum 96
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with Coresight
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
 
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
 
Crash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_TizenCrash_Report_Mechanism_In_Tizen
Crash_Report_Mechanism_In_Tizen
 
Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
 
426 lecture 4: AR Developer Tools
426 lecture 4: AR Developer Tools426 lecture 4: AR Developer Tools
426 lecture 4: AR Developer Tools
 
Share the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development BoardShare the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development Board
 
Molecular Shape Searching on GPUs: A Brave New World
Molecular Shape Searching on GPUs: A Brave New WorldMolecular Shape Searching on GPUs: A Brave New World
Molecular Shape Searching on GPUs: A Brave New World
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 

More from Kobe Yu

Neural Network File Format for Inference Framework
Neural Network File Format for Inference FrameworkNeural Network File Format for Inference Framework
Neural Network File Format for Inference FrameworkKobe Yu
 
Tensorflow Lite and ARM Compute Library
Tensorflow Lite and ARM Compute LibraryTensorflow Lite and ARM Compute Library
Tensorflow Lite and ARM Compute LibraryKobe Yu
 
Halide - 2
Halide - 2 Halide - 2
Halide - 2 Kobe Yu
 
Halide - 1
Halide - 1Halide - 1
Halide - 1Kobe Yu
 
社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例
社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例
社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例Kobe Yu
 
FarmHarvestBot 開源授權建議
FarmHarvestBot 開源授權建議FarmHarvestBot 開源授權建議
FarmHarvestBot 開源授權建議Kobe Yu
 
Agrino 應用於農業感測的開源專案
Agrino  應用於農業感測的開源專案Agrino  應用於農業感測的開源專案
Agrino 應用於農業感測的開源專案Kobe Yu
 

More from Kobe Yu (7)

Neural Network File Format for Inference Framework
Neural Network File Format for Inference FrameworkNeural Network File Format for Inference Framework
Neural Network File Format for Inference Framework
 
Tensorflow Lite and ARM Compute Library
Tensorflow Lite and ARM Compute LibraryTensorflow Lite and ARM Compute Library
Tensorflow Lite and ARM Compute Library
 
Halide - 2
Halide - 2 Halide - 2
Halide - 2
 
Halide - 1
Halide - 1Halide - 1
Halide - 1
 
社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例
社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例
社群與企業之開源專案合作經驗分享:以阿龜微氣候天眼通為例
 
FarmHarvestBot 開源授權建議
FarmHarvestBot 開源授權建議FarmHarvestBot 開源授權建議
FarmHarvestBot 開源授權建議
 
Agrino 應用於農業感測的開源專案
Agrino  應用於農業感測的開源專案Agrino  應用於農業感測的開源專案
Agrino 應用於農業感測的開源專案
 

Recently uploaded

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 

機器學習應用於蔬果辨識

  • 2. 投影片授權聲明 投影片內容採 CC BY-SA-NC 3.0TW(姓名標示-相同方式分享-非商業性 3.0 台灣)。 完整授權內容 : https://creativecommons.org/licenses/by-nc-sa/3.0/tw/
  • 3. About Me ● 清大資工博士班學生 ○ 從系統軟體的角度提升電腦視覺與類神經網路的運算效能。 ● 8+軟體開發經驗 ○ 電腦視覺/多媒體串流/iOS App開發/攝影機模組驅動與調校。 ● 開源專案 ○ Farmharvest bot (農場採收機器人) FB: FarmBot Taiwan User Group-FBTUG ○ Agrino (農業感測) http://bit.ly/2MDaAdy
  • 5. FarmBot Taiwan User Group-FBTUG ● 專案緣起 ○ 希望藉由開源農業機器的推廣與貢獻,給友善農業一點幫助。 ● 社群成員 ○ 發起人: 哈爸 ○ 成員:~2400 (各領域專家或有興趣的大眾 ) ○ 與採果專案有關的幾位成員 ■ 志弘大哥 硬體與CNC專家 ■ CH大 ML(YOLO) geek ■ Jack AR/VR、電腦視覺專家 ■ Eric 埔里小農(一點都不小的小農) ■ Olin Dataset協調人 ■ …. 默默協助的伙伴們
  • 6. FarmHarvestbot ● 農場採果機器人 ○ 開源專案 ■ 軟體/硬體/機構/資料集 ○ Why ■ 農業缺工問題 ■ 採收時效性 ■ 知識與經驗共享 ○ How ■ Core/Support群組 ■ 開放討論 FB: FarmBot Taiwan User Group-FBTUG Doc: https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot-w2FKkhc4ZTlj6knhOK43p
  • 7. Machine Learning + Computer Vision ● 目標 ○ 蔬果辨識與定位 ■ 種類 ● 小果番茄/小黃瓜/彩椒 ■ ML ● 辨識蔬果 ■ CV ● 影像前處理:擷取影像+Resize ● 座標位置(x,y,z) ○ 蔬果中心位置 ○ 切割點位置 ○ 座標轉換 ■ 夾具移動向量
  • 8. Machine Learning + Computer Vision ● 建立自己的YOLO辨識模型 – 以柑橘辨識為例 - CH大大 source https://projectplus.cc/Projects/yolo-201810/
  • 9. Machine Learning Pipeline Phase 1. Problem Understanding Phase 3. Model Processing Phase 2. Data Processing Phase 4. Deploy
  • 10. Problem Understanding ● 目標 ○ 專案目標:蔬果採收機器人 ■ NN+Vision:辨識可採收的蔬果位置 (x,y,z) + 座標轉換(camera <-> arm) ■ 即時處理 ● 系統架構 ○ 軟體 Raspbian + ROS ○ 硬體 RPi ○ 機構 (Arm/Camera/autonomous vehicles) ● 作物種類 ○ 小果番茄/彩椒/小黃瓜 ○ 採收標準/採收方法 ○ 夾具 ● 場域 ○ 溫室為主,一個溫室基本上只種一種作物 Phase 1 Phase 2 Phase 3 Phase 4
  • 11. Problem Understanding ● 目標物種 ○ 小果番茄 - 玉女番茄 ● 場域與栽種方式 ○ 溫室 / 掛網式 (走道寬度/目標物件高度) ● USB Camera ○ 解析度 / F0V(影響目標物件在影像中的成像大小 ) ● 判斷標準(採收標準/採收方式) ● 運行平台 ○ RPi+Intel Movidius NCS source: https://paper.dropbox.com/doc/FBTUG--ASl58MS7PkuY4SIYoHLxJXHoAg-QdMWCaBBoyudOTNuvhd4c Phase 1 Phase 2 Phase 3 Phase 4
  • 12. Data Processing ● 資料特性 ● 蒐集照片 ● 資料標記 ● 資料轉換 Phase 1 Phase 2 Phase 3 Phase 4
  • 13. Data Processing ● 資料特性 ○ 目標物種 ■ 小果番茄 - 玉女番茄 ○ 標記類別 ■ 0_pepper_flower 花朵 ■ 1_pepper_young 尚未成熟果實 ■ 2_pepper_matured 成熟果實可摘採 ■ 3_pepper_covered 成熟果實需撥葉摘採 ○ 判斷標準與注意事項(from domain expert) Phase 1 Phase 2 Phase 3 Phase 4 source https://paper.dropbox.com/doc/FBTUG--ASl58MS7PkuY4SIYoHLxJXHoAg-QdMWCaBBoyudOTNuvhd4c
  • 14. Data Processing ● 蒐集照片 ○ 活動紀錄 ■ 基本資訊(人事時地物) ■ 作物資料 ■ 相機資料 ■ 拍攝方式 source 活動紀錄 https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot--ASkl43eqEeSkI3g~dcTtYHVWAg-XHZpHOCR4Tw6amCxMY0E0 資料蒐集紀錄表https://paper.dropbox.com/doc/JsCHkjEGzSIAvT65J0fc4 Phase 1 Phase 2 Phase 3 Phase 4
  • 15. Data Processing ● 資料標記 ○ 工具 ■ ImageLabel (offline) ■ Datatrunk (online) ○ 輸出格式 ■ PASCAL VOC Format(XML) source https://drive.google.com/file/d/1WfdacRUEJ1HgIlQsimbMVLVe2GlKsKJS/view https://dataturks.com/projects/kobeyu/FarmHarvestBot-tomato Phase 1 Phase 2 Phase 3 Phase 4
  • 17. Data Processing ● 資料轉換 ○ VOC to YOLO ○ VOC to tfrecord ■ create_pascal_tf_record.py source https://github.com/tensorflow/models/blob/master/research/object_detection/dataset_tools/create_pascal_tf_record. py Phase 1 Phase 2 Phase 3 Phase 4
  • 18. Model Processing ● 定義問題 ● 選擇網路架構 ● 訓練 ● 驗證 Phase 1 Phase 2 Phase 3 Phase 4
  • 20. Object Detection ● R-CNN ○ Fast R-CNN ○ Faster R-CNN ● YOLO ○ YOLO ● SSD ○ SSD+Mobilenet Phase 1 Phase 2 Phase 3 Phase 4
  • 21. Object Detection Dataset ● PASCAL VOC ● MSCOCO ● ImageNet Det Phase 1 Phase 2 Phase 3 Phase 4
  • 22. Model Processing ● 選擇網路 ○ 準確度 v.s 執行速度 ● 回顧Phase1 ○ 運行平台 ■ RPi + Intel Movidius NCS ○ 實測結果 ■ SSD-Mobilenet(5.5 FPS) ■ Tiny-yolo v2(0.7 FPS) reference https://github.com/movidius/ncappzoo https://www.youtube.com/watch?v=llBhBSgoWPs Phase 1 Phase 2 Phase 3 Phase 4
  • 23. Model Processing ● 效能指標 ○ mAP ○ IoU Phase 1 Phase 2 Phase 3 Phase 4 source https://github.com/Cartucho/mAP
  • 24. Mobilenet ● Separate convolutions ○ Depthwise + pointwise convolution ● Multiplier ○ α:Width Multiplier (0.25、0.5、0.75、1) ○ ρ:Resolution Multiplier (128、160、192、224) source: https://yinguobing.com/bottlenecks-block-in-mobilenetv2/ https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md https://arxiv.org/abs/1704.04861 Phase 1 Phase 2 Phase 3 Phase 4
  • 25. Mobilenet 輸入資料: W_in * H_in * Nch,Kernel Map: k * k * Nk,輸出資料: W_out * H_out * Nk 一般卷積 計算量為 W_in * H_in * Nch* k * k * Nk Depthwise separable convolution計算量為 (Depthwise convolution計算量+Pointwise convolution計算量) Depthwise convolution計算量為 W_in * H_in * Nch* k * k Pointwise convolution計算量為 Nch*Nk * W_in * H_in source https://medium.com/@chih.sheng.huang821/%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-mobilenet -depthwise-separable-convolution-f1ed016b3467
  • 26. Mobilenet Million MACs Million Parameters Top-1 Accuracy Top-5 Accuracy MobileNet_v1_1.0_224 569 4.24 70.9 89.9 MobileNet_v1_1.0_192 418 4.24 70.0 89.2 MobileNet_v1_1.0_160 291 4.24 68.0 87.7 MobileNet_v1_1.0_128 186 4.24 65.2 85.8 MobileNet_v1_0.75_224 317 2.59 68.4 88.2 MobileNet_v1_0.50_224 150 1.34 63.3 84.9 MobileNet_v1_0.25_224 41 0.47 49.8 74.2 MobileNet_v1_1.0_224_quant 569 4.24 70.1 88.9 MobileNet_v1_0.25_128_quant 14 0.47 39.5 64.4 Phase 1 Phase 2 Phase 3 Phase 4
  • 27. MobilenetV2 ● Classification ○ MobilenetV2 ● Detection ○ MobileNetV2 + SSDLite ● Segmentation ○ MobileNetV2 + DeepLabV3 source https://ai.googleblog.com/2018/04/mobilenetv2-next-generation-of-on.html
  • 29. Model Processing ● Model ○ SSD+Mobilenetv1 ○ SSDLite+Mobilenetv2 ○ yolo ● Dataset (Image + PASCAL VOC) ○ Farmharvestbot ■ 小果番茄 ■ 彩椒 ○ MS COCO Phase 1 Phase 2 Phase 3 Phase 4
  • 30. Model Training ● Model ○ SSD-Mobilenetv1 ● Dataset ○ MS COCO ● Training framework ○ Tensorflow + Tensorflow/Models/research/object_detection ● Script python object_detection/model_main.py --pipeline_config_path=./object_detection/ssd_mobilenetv1/model/ssd_mobilenet_v1_pets.config --model_dir=./object_detection/ssd_mobilenetv1/model/ --num_train_steps=200000 --num_eval_steps=8000 --alsologtostderr source https://github.com/kobe0308/models.git (branch develop) Phase 1 Phase 2 Phase 3 Phase 4
  • 31. Model Processing ● Model ○ SSD+Mobilenetv1 ● Dataset ○ MS COCO ● Training parameters ○ batch size:24 ○ steps: 200K ○ classes:20 Phase 1 Phase 2 Phase 3 Phase 4
  • 32. Model Processing ● Model ○ SSD+Mobilenetv1 ● Dataset ○ Farmharvestbot-tomato ● Training parameters ○ batch size:24 ○ steps: 200K ○ classes:4 Phase 1 Phase 2 Phase 3 Phase 4
  • 33. Model Processing ● Model ○ SSD+Mobilenetv1 ● Dataset ○ Farmharvestbot-pepper ● Training parameters ○ batch size:24 ○ steps: 200K ○ classes:4 Phase 1 Phase 2 Phase 3 Phase 4
  • 34. Deploy ● Edge compute (compare with client/server) ● Platform(RPi+Neural Compute Stick) ■ SBC(RPi 3 Model B) ● 1.4GHz Quad-Core ARM Cortex-A53 (64Bit) ■ NCS ● Intel Movidus NCS ○ 12 Shave Core(VLIW Arch) ○ 1 TOPs ● Intel Movidus NCS2 ○ 16 Shave Core(VLIW Arch) ○ Dedicated Neural Compute Engine ○ 4 TOPs ● Orange Pi AI Stick 2801 ○ Matrix Processing Engine ○ 9.3 TOps source https://qconsf.com/sf2017/system/files/presentation-slides/qconf_presentation.pdf Phase 1 Phase 2 Phase 3 Phase 4
  • 35. NN+Vision Pipeline ● Recap problem understanding ○ Realtime! ○ Capture image ■ resolution @30fps ○ Acceleactor ■ NN inference - NCS ■ Image Processing - CPU(Multi-thread + SIMD/ARM compute library) ○ Programming language ■ Python or C++ Image Preprocess Capture Image NN Inference Image Postprocess source https://www.anandtech.com/show/7591/answered-by-the-experts-arms-cortex-a53-lead-architect-peter-greenhalgh Phase 1 Phase 2 Phase 3 Phase 4
  • 36. Movidius Toolkit NCSDK ● Compiler (from trained nn to inference engine) ● Checker ● Profiler (profile performance in each nn layer) ● NCSAPI(C++) source https://qconsf.com/sf2017/system/files/presentation-slides/qconf_presentation.pdf Phase 1 Phase 2 Phase 3 Phase 4
  • 37. Movidius Toolkit ● Command ○ mvNCCompile -s <number of shaves> <name of the model>_frozen.pb -in=input -on=<name of the output node> ● Support training framework ○ Tensorflow ○ Caffe Phase 1 Phase 2 Phase 3 Phase 4 source https://movidius.github.io/ncsdk/tf_modelzoo.html
  • 38. Movidius Architecture ● SHAVE core ○ 8 parallel function units ■ predicated execution unit (PEU) ■ branch and repeat unit (BRU) ■ two 64-bit load-store units (LSU0/LSU1) ■ 32-bit integer arithmetic unit (IAU) ■ 32-bit scalar arithmetic unit (SAU) ■ 128-bit vector arithmetic unit(VAU) ■ 128-bit compare move unit (CMU) source https://en.wikichip.org/wiki/movidius/microarchitectures/shave_v2.0 Phase 1 Phase 2 Phase 3 Phase 4
  • 39. Single Issue RISC v.s VLIW source https://slideplayer.com/slide/4896590/ Phase 1 Phase 2 Phase 3 Phase 4
  • 40. Demo ● Platform ○ RPi3+Intel Movidius NCS ● Model ○ SSD+Mobilenet ● FPS ~5 Phase 1 Phase 2 Phase 3 Phase 4
  • 41. Robot Arm and Camera Calibration source https://slideplayer.com/slide/7491989/
  • 43. Farmharvestbot FB: FarmBot Taiwan User Group-FBTUG Doc: https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot--ASlFVrNQa1XWOCWxktW_~JkgAg-w2FKkhc4ZTlj6knhOK43p 專案成員: https://paper.dropbox.com/doc/FBTUG-FarmHarvestBot--ASkpEA1~UFD9CQDm4hhPaWKMAg-9q9yQmaWjhkgh1EdB4EBc
  • 44. Q & A