今回は現在製作しているスパイダーロット Picrawlerの途中経過として記事にしたいと思います。
Raspberry Pi(ラズベリーパイ)とは
Raspberry Pi 5は、Raspberry Pi財団が開発した最新のシングルボードコンピュータで、従来モデルよりも大幅な性能向上を実現しています。
搭載される64ビットクアッドコアプロセッサは、クロック速度が最大2.4GHzに達し、前世代よりも処理速度が格段に向上しました。また、4GBまたは8GBのRAMを選択できるため、教育用途からリソースを必要とするプロジェクトまで幅広く対応可能です。
グラフィックス性能も強化され、4K解像度でのデュアルディスプレイ出力をサポートしています。さらに、新たにPCIeインターフェイスが追加され、外部ストレージや高速デバイスとの接続が容易になりました。Wi-Fi 6やBluetooth 5.2の導入により、無線通信も高速かつ安定。
教育、IoT、AI開発、メディア再生など、多様な用途に対応するRaspberry Pi 5は、初心者から上級者まで幅広いユーザーにとって魅力的な選択肢となっています。
Raspberry Piでできることについては以下の記事で解説していますので、あわせてご覧ください。
やりたいこと
現在、作成中のプログラムは「ロボットがディープラーニングで検出した物体を自動で追尾する」という動作を実現するためのものです。カメラモジュールからの物体の位置情報を、ロボットのモーションコントロール処理にリアルタイムにフィードバックし、ロボットの次の挙動を決定するというのが目標です。
ロボットについて
使用するロボットは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がおすすめ! /
講座単位で購入できます!
コメント