【Raspberry Pi】TensorFlowでターゲット追跡ロボット製作 途中経過

  • URLをコピーしました!

今回は現在製作しているスパイダーロット Picrawlerの途中経過として記事にしたいと思います。

目次

やりたいこと

現在、作成中のプログラムは「ロボットがディープラーニングで検出した物体を自動で追尾する」という動作を実現するためのものです。カメラモジュールからの物体の位置情報を、ロボットのモーションコントロール処理にリアルタイムにフィードバックし、ロボットの次の挙動を決定するというのが目標です。

ロボットについて

使用するロボットはSunFounderのスパイダーロボット、PiCrawlerです。ロボットのコントローラーとしてRaspberry Piを搭載しています。

詳細は以下のページをご覧ください。

Tensor Flowによる物体検出

ディープラーニングを使用した物体検出には、エッジコンピューティング向けのTensor Flow LiteをチューニングされているPINTさんのGitHubリポジトリ、TensorFlow Lite-Binを使用します。

過去に以下の記事でテスト実装しています。

GUIによる制御と物体検出を並列実行する

以前の記事でPythonのmultiprocessingを使ってロボットをコントロールするGUIとOpenCVによるカメラモジュールからの画像取り込みを同時に行うプログラムを作成しました。

このプログラムをさらに改良し、画像処理プロセスでに先ほどのTensorFlow Lite-Binを使った推論処理を組み込んでみました。

実際にプログラムを実行した画面です。

カメラ画像が表示され、時計を検出しています。そして画面中央からの時計のオブジェクトの位置も計算できています。

また、その横にロボットをそうさするためのコントロールパネルも表示されているのが見て頂けると思います。
GUIと画像処理をと制御をRaspberry PiのマルチコアCPUを使って同時実行しています。

このコントロールパネルでロボットを操作することで移動しながらリアルタイムに推論処理ができるようになりました。

まとめ

今回1つのプロセスとしてTensorFlow Liteの推論処理を実行できるようになったことにより、移動しながらの物体検出ができるようになりました。
今後は検出した物体の位置情報をサーボ制御処理にフィードバックできるよう、プログラムを改修していきたいと思います。

また、ラズベリーパイの画像認識についてさらに深く学びたい方にはUdemyの以下の講座がおすすめです。

【初心者向けAI・IoT講座】 ラズベリーパイ(Raspberry Pi)とOpenCVで作る簡単画像認識システム icon



それでは、また次の記事でお会いしましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次