mos4423 が 2025年01月28日15時35分25秒 に編集
コメント無し
タイトルの変更
ハンドサインを用いてのRCカーを制御
ハンドサインを用いてのRCカー制御
本文の変更
## はじめに Spresenseカメラボードと画像認識を用いて、ハンドサインで反応するロボットを制作しました。 以前からハンドジェスチャーでのロボット制御に興味があり、SpresenseはエッジAIとカメラボードを搭載しているため今回挑戦してみました。
## 作成の流れ
//おおまかな流れ(設計手順) + 苦労した点 初めにハンドサインではなく、Bluetoothを使用したスマホからの制御を目標としました。その後Spresenseのカメラボードを使って、4つのハンドサインの認識を可能にしました。そして、それを用いてロボットを制御できるようにしました。
まずカメラボードやSDカード、NNCや推論モデル周辺の確認に取り掛かりました。 ここで苦労した事は、カメラデータのリアルタイム推論に関して詳しく解説した資料があまり無く、またその中でも推論結果の表示に外部ディスプレイを必要とする場合が多く、シリアルモニタへの出力といった例をあまり発見出来なかった点です。 のでこちら(※)を参考に、カメラデータのリアルタイム推論結果をシリアルモニタに出力するプログラムを作成しました。 苦労した点としては、カメラが何を写しているのかが全くわからず、手探りでモデルの推論結果が正しくなる写り方を見つける必要があった点かなと思います。
## 開発環境情報
次にkaggle(※)からハンドジェスチャの学習に必要なデータを集め、グーやチョキ、パー等を用いて学習しました。 がしかし過学習か或いはデータ量が少なかったのか、あまり良い曲線を描いてくれず。いざ推論してみてもそれらしい反応が得られず、悩むことになります。 色々条件を変えていくうちに、距離と色合いをデータセットのそれと合わせると正確な推論をする為、2値化や撮影環境、NNBモデルに問題がありそうと推測。 今回はSpresense側で固定閾値2値化を実装し、更に環境(手の影を作らない、手を逆光で黒色に認識)に依存させる方向で動くことにしました。 上記の通り閾値が必要なのですが、流石に手探りでは時間がかかる為、点字を用いてカメラデータをシリアルモニタに映し、テストを繰り返して特定しました。 また、先の環境セットアップには白背景を映したディスプレイモニタを使用しました。 これにより何とか手の推論が成功、最後にこれらを秋月で見繕ったRCカーと合わせて、モータの出力に分岐させて、完成です。 ## 環境情報・使用部品 ##### 環境情報
|環境|バージョン | |:---:|:---:| |使用PC|MSI Prestige 13 Evo| |OS環境|Windows11| | Arduino IDE | 2.3.4 | |Spresenseボード|v3.2.0|
## 使用部品
##### 使用部品
| 製品名 | 型番 | |:---:|:---:| | Spresenseメインボード | - | | Spresense拡張ボード | - | |Spresenseカメラボード|-| |ラジコンカー|FT-DC-002| |モータドライバ|AE-TB6612-BO| |microSDHC|KLMEA032G| |電池ボックス|BH-321-1B| |バッテリスナップ|BS-ER-150| |ブレッドボード|BB-801| |オスオスジャンパ|BBJ-20| |USBケーブル Aオス-マイクロBオス|2A L0.3m| ## 設計図 ##### ラジコンカー キットを使い組み立てました  ##### モータとモータドライバ、拡張ボードを接続する回路図  ##### 完成図  
## 詳細 ### ラジコンカーの制御 //細かい説明 ### 画像認識 //細かい説明
## 動作 //完成したら動画をのせる
## ソースコード
ソースコードは全てGitHubに記載しました。 .nnbファイルはMNIST用とハンドジェスチャ用があります。 //configに関してプログラムに書いて、またかかれていることを明記 カメラリアルタイム推論(MNIST) カメラ閾値2値化点字シリアルモニタ カメラ閾値2値化用2値推論(ハンドジェスチャ) カメラ閾値2値化用2値推論->モータ出力
## 感想
## 今後の展望
## 反省点・今後の展望
## 参考文献 https://makers-with-myson.blog.ss-blog.jp/2020-02-18