ラズパイのカメラに写った映像をリアルタイムでTensorFlow Liteで推測する | そう備忘録

ラズパイのカメラに写った映像をリアルタイムでTensorFlow Liteで推測する

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

6件のフィードバック

  1. haru より:

    コメント失礼致します。
    本日から画像認識について学習し始めました大学生です。
    こちらの手順アクセラレーターというものを使わなければどのようにコードを書き換えれば良いのでしょうか?手順通りに行うと見たことないエラーでかなり手こずっています…
    とにかく画像認識というものを体験してみたく参考にさせていただきました。よろしくお願いします。

    • souichirou より:

      haruさん こんちは

      このプログラムはアクセラレーターを使用する様に変更しています。
      使用しないのであれば逆に修正をしなければOK(のはず)です。
      ※今、手元に無いので検証はしていません

      つまり21行目に、

      from tflite_runtime.interpreter import load_delegate

      を追加せずに、71行目もコメントアウトはせずに、

      interpreter = Interpreter(args.model,experimental_delegates=[load_delegate('libedgetpu.so.1.0')])

      この行も追加しません。
      experimental_delegates で EdgeTPU(Coral USB Accelerator)を使用する指定をしています。

      • haru より:

        ありがとうございます!
        python3 classify_picamera.py \
        –model /tmp/mobilenet_v1_1.0_224_quant_edgetpu.tflite \ ←edgetpuを消去するのを忘れていました!
        –labels /tmp/labels_mobilenet_quant_v1_224.txt

        こちらはコードを実行しても画面が表示されるわけではないのですか?
        エラーは無くなったのですが画面が表示されないので画像認識できないです。
        何度もすみません。

        • haru より:

          INFO: Initialized TensorFlow Lite runtime.
          mmal: mmal_vc_port_enable: failed to enable port vc.null_sink:in:0(OPQV): ENOSPC
          mmal: mmal_port_enable: failed to enable connected port (vc.null_sink:in:0(OPQV))0xc07f50 (ENOSPC)
          mmal: mmal_connection_enable: output port couldn’t be enabled
          Traceback (most recent call last):
          File “classify_picamera.py”, line 99, in
          main()
          File “classify_picamera.py”, line 77, in main
          with picamera.PiCamera(resolution=(640, 480), framerate=30) as camera:
          File “/usr/lib/python3/dist-packages/picamera/camera.py”, line 433, in __init__
          self._init_preview()
          File “/usr/lib/python3/dist-packages/picamera/camera.py”, line 513, in _init_preview
          self, self._camera.outputs[self.CAMERA_PREVIEW_PORT])
          File “/usr/lib/python3/dist-packages/picamera/renderers.py”, line 558, in __init__
          self.renderer.inputs[0].connect(source).enable()
          File “/usr/lib/python3/dist-packages/picamera/mmalobj.py”, line 2212, in enable
          prefix=”Failed to enable connection”)
          File “/usr/lib/python3/dist-packages/picamera/exc.py”, line 184, in mmal_check
          raise PiCameraMMALError(status, prefix)
          picamera.exc.PiCameraMMALError: Failed to enable connection: Out of resources

          このようなエラーが出ます!

          • souichirou より:

            haruさん

            PiCameraが認識していないようですね。
            記事中の「カメラ関連」の章に、「ラズパイとカメラの接続」と「カメラを有効化」のリンクがありますがリンク先の手順は行いましたか?
            また「カメラを有効化」の後に試し撮りのコマンドがありますが、こちらの結果はいかがでしょうか。
            静止画、動画ともに撮れていますか?

            modelの指定でedgetpuの所はご指摘の通りですね(失念していました)
            Coral USB Acceleratorを使用しないのであれば、edgetpu 無しのmodelを使います。
            プログラムが正常に起動すればカメラに写ったWindowが表示されます(動画の方を見て下さい)

  2. haru より:

    ご指摘ありがとうございます!
    tensorflowを入れてしまっていてtensorflow lite がうまく使えていなかったのが最終的な原因でした!
    親切なご返事本当にありがとうございました!

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。