Raspberry Piで、オリジナルの学習モデルを使った物体検出(オリジナルモデルを用いた物体検出編)[4/4]

開発者向け
スポンサーリンク

はじめに

オリジナルモデルを使った物体検出をRaspberry Piで行うべく、以下を実現しようとしています。

これを実現するために4回に分けて記事を書いてきましたが、今回はいよいよ最終回です。

 第1回:IBM Cloud Annotationsを用いたアノテーション
 第2回:Google Colabを用いたモデルの学習
 第3回:Raspberry Piの環境構築
 第4回:オリジナルモデルを用いた物体検出 ←この記事

第4回:オリジナルモデルを用いた物体検出

前回はRaspberry PiにOSやTensorFlow Liteをインストールし環境構築を行いました。今回は、第2回で学習したオリジナルモデルを用いて、物体検出を行なう方法です。

オリジナルモデルの準備

まずは、第2回で学習したオリジナルモデルをRaspberry Piに格納して準備を行います。

①モデルファイルの解凍

第2回でGoogle ColabからダウンロードしたmyModel.zipをRaspberry Piの「/home/pi/tflite」フォルダにアップロードして、以下のように解凍します。

pi@raspberrypi:~/tflite $ unzip myModel.zip -d myModel
Archive:  myModel.zip
  inflating: myModel/checkpoint      
  inflating: myModel/detect.tflite   
 extracting: myModel/flower_model.zip  
  inflating: myModel/frozen_inference_graph.pb  
  inflating: myModel/labelmap.txt    
  inflating: myModel/model.ckpt.data-00000-of-00001  
  inflating: myModel/model.ckpt.index  
  inflating: myModel/model.ckpt.meta  
  inflating: myModel/pipeline.config  
   creating: myModel/saved_model/
   creating: myModel/saved_model/variables/
  inflating: myModel/saved_model/saved_model.pb  
  inflating: myModel/tflite_graph.pb  
  inflating: myModel/tflite_graph.pbtxt  
pi@raspberrypi:~/tflite $

②label.txtの作成

解凍したモデルにlabelmap.txtが含まれますが、これはJson形式になっており、tfliteでは使えません。そこで、以下のようにラベル名だけを記載した、テキスト形式のlabelmap.txtを作成します。

pi@raspberrypi:~/tflite $ cd myModel
pi@raspberrypi:~/tflite/myModel $ mv labelmap.txt labelmap.txt.org
pi@raspberrypi:~/tflite/myModel $ cat labelmap.txt
Undefined
flower
pi@raspberrypi:~/tflite/myModel $

以上で準備は完了です。

オリジナルモデルを用いた物体検出

それでは、いよいよオリジナルモデルを用いた物体検出をやってみましょう。VNCでログインしたターミナルから以下のコマンドを入力します。

pi@raspberrypi:~/tflite $ python3 TFLite_detection_webcam.py --modeldir=./myModel

すると以下のように、カメラ画像が画面に表示されるので、検出したい物体をカメラの前に持っていきましょう!どうですか?以下の動画のように、物体が検出されるはずです‼️

おわりに

今回は、第2回で学習させたオリジナルモデルを用いて、TensorFlow Liteを用いた物体検出をやってみました。COCOモデルなど学習済みのモデルは非常に有用ですが、検出したい物体が特殊な場合には、オリジナルの学習モデルを作る必要があり、今回の方法が使えると思われます。

Raspberry Piの処理能力は高いとは言えないので、もっと高速に物体検出がやりたい人はGPUが搭載されたJetson nanoなどを使いましょう!

 第1回:IBM Cloud Annotationsを用いたアノテーション
 第2回:Google Colabを用いたモデルの学習
 第3回:Raspberry Piの環境構築
 第4回:オリジナルモデルを用いた物体検出

関連記事

Raspberry Piで最強の防犯カメラを作ってみる(動画記録・配信、動体検知・Line通知、顔検知・顔認証、Alexa搭載)[1/6]
はじめに6ヶ月間の育児休業を取って、育児&家事に専念しているnaka-kazzです。我が家では、防犯のために玄関に防犯カメラを置いています。しかし、この防犯カメラ、スマホアプリを通じて動画を見たり動体検知をすることはできるのですが...
Raspberry PiとNode-redで、リビングに飾れる美しい「スマートホームコントローラ」を作ってみた
うちの子供達はリモコンが大好きで、すぐにどこかに持っていってしまいます。今回はスマートリモコン、Raspberry Pi、Node-redを使って、家中のリモコンを一つにまとめ、家電を一括操作できるスマートホームコントローラを作ってみたいと思います。
Raspberry Pi 4Bで4Kカメラは扱えるか?エンコード性能を徹底検証
Raspberry Pi 4Bで4K動画がどこまで扱えるかの情報がネットに無かったので、実機を使って検証してみました。4KとフルHD動画について、h264、mjpeg、非圧縮の6パターンについて検証しています
Raspberry PiとNode-redで、Hueブリッジ(Zigbee Hub)を作ってみた(スマホ&Alexa操作対応)[1/3]
最近は、スマート電球の「Hue」や「TRADFRI」、Aqaraの温度センサーなど、様々なzigbee機器が出てきています。しかし、これらを使用するにはHueブリッジなどのZigbee Hubの購入が必要で、しかもメーカを跨って相互に接続できません。そこで、Raspberry PiとNode-redを使って、メーカに関係なくZigbee機器を接続できるZigbee Hubを作ってみました。
Raspberry PiにAlexaをインストールしてみる(ウェイクワードエンジン変更・感度調整・systemd設定)
この記事は古くなっています。以下の2023年版の記事を参照ください。やりたいことAmazon Alexaを利用したければ、Amazon Echoを購入するのが手取り早いのですが、Alexaの機能をいろいろカスタ...
Jetson nanoで、オリジナルの学習モデルを使った物体検出[1/5]  〜IBM Cloud Annotationsを使ったアノテーション編〜
オリジナルの学習データを使って、Jetson nanoで物体検出を行う方法を全5回でまとめます。連載の1回目は、学習モデルを作成するための準備として、教師データをIBM Cloud Annotationsを使って作成していきます。
記事が参考になったら、ブログランキングに協力(クリック)して貰えると嬉しいです。

昼間はIT企業に勤めてますが、プライベートでは「育児×家事×IoT」をテーマに家のスマートホーム化に取り組んでいます。Androidアプリも作っているので使って下さい。質問・コメントは、↓のコメント蘭でもFacebookメッセンジャーでもどちらでも大丈夫です。
E-mail:naka.kazz.d@gmail.com

naka-kazzをフォローする
スマートホーム開発者向け
スポンサーリンク
naka-kazzをフォローする
スマートホーム×DIY

コメント