今回は現在製作しているスパイダーロット Picrawlerの途中経過として記事にしたいと思います。
Raspberry Pi(ラズベリーパイ)とは
Raspberry Pi(ラズベリーパイ)はイギリスのラズベリーパイ財団が教育用に開発したボードコンピュータです。
最新のRaspberry Pi 4では、ARMアーキテクチャを採用したBroadcom製の高性能SoC BCM2711を搭載しており、1.5GHzで動作するARM Cortex-A72が4コアとマイコンボードの中では非常に高速な処理能力を持っています。また、ユーザーがアクセス可能な40ピンのGPIOも搭載しており、外部ハードウェアを制御することが可能です。
詳細なスペック等は以下の記事で解説していますので、あわせてご覧ください。
やりたいこと
現在、作成中のプログラムは「ロボットがディープラーニングで検出した物体を自動で追尾する」という動作を実現するためのものです。カメラモジュールからの物体の位置情報を、ロボットのモーションコントロール処理にリアルタイムにフィードバックし、ロボットの次の挙動を決定するというのが目標です。
ロボットについて
使用するロボットは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の以下の講座がおすすめです。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
それでは、また次の記事でお会いしましょう。
\ 機械学習を学びたい人には自宅で学べるUdemyがおすすめ! /
講座単位で購入できます!
コメント