編集履歴一覧に戻る
mos4423のアイコン画像

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| ## 設計図 ##### ラジコンカー キットを使い組み立てました ![キャプションを入力できます](https://camo.elchika.com/605fa6d8c0ed0b36e0cb358ecbc8bf724224bd55/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39636363336631622d633135342d343330312d613735622d3733626136356131346438392f61613933633463652d323039312d346238362d613264622d343232396662363461366539/) ##### モータとモータドライバ、拡張ボードを接続する回路図 ![キャプションを入力できます](https://camo.elchika.com/d4fd5019d62d7c49e7e7dcef9b1ef1f7c33f8fd4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39636363336631622d633135342d343330312d613735622d3733626136356131346438392f30386431353633352d386563362d343935652d386332322d313832363565633039346633/) ##### 完成図 ![キャプションを入力できます](https://camo.elchika.com/b61ed6610d4aaf8dcf682f86fca112d380b667c0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39636363336631622d633135342d343330312d613735622d3733626136356131346438392f34316337333131332d653430662d343232392d383935392d663031643736353830643261/) ![キャプションを入力できます](https://camo.elchika.com/a4d70f964f1e6b022d4fb61fcc4ddf9fa0cf12c4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39636363336631622d633135342d343330312d613735622d3733626136356131346438392f37363539653265342d356263342d343466302d386535622d326634663361376336633838/)

-

## 詳細 ### ラジコンカーの制御 //細かい説明 ### 画像認識 //細かい説明

## 動作 //完成したら動画をのせる

+

## ソースコード

+

ソースコードは全てGitHubに記載しました。 .nnbファイルはMNIST用とハンドジェスチャ用があります。 //configに関してプログラムに書いて、またかかれていることを明記 カメラリアルタイム推論(MNIST) カメラ閾値2値化点字シリアルモニタ カメラ閾値2値化用2値推論(ハンドジェスチャ) カメラ閾値2値化用2値推論->モータ出力

-

## 感想

-

## 今後の展望

+

## 反省点・今後の展望

+

## 参考文献 https://makers-with-myson.blog.ss-blog.jp/2020-02-18