はじめに
オリジナルモデルを使った物体検出を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」フォルダにアップロードして、以下のように解凍します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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を作成します。
1 2 3 4 5 6 |
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でログインしたターミナルから以下のコマンドを入力します。
1 2 |
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回:オリジナルモデルを用いた物体検出
コメント