頭部入力デバイスを作ってみる その6

AprilTagの利用

ここまで既存の製品や技術について調査したところで、何か使えるものは無いかとM5StickV周りのドキュメントを眺めまわしていたところ、AprilTagというタグを認識するライブラリを見つけた。これを使えば、良い入力装置ができそうだ。

AprilTagとは
AprilTagはアメリカ ミシガン大学の AprilTags Visual Fiducial System プロジェクトで開発された ARマーカー。機械学習などではなく、画像処理技術によるアルゴリズムでタグを認識する。
機械学習での物体認識と違い、対象の位置や姿勢も取得でき、高速で精度も高いのが特徴。
もともとはロボティクスのために開発された技術(?)
https://april.eecs.umich.edu/software/apriltag


こういうやつ

ArUcoとの違い
ArUcoじゃダメなの?と思った人は相当鋭いand詳しい人です。。
ArUcoとは、AprilTagに似た、二次元バーコードを認識する技術です。
OpenCVにデフォルトで組み込まれているのでこっちの方が使いやすいのだが、今回はsipeedのMaixpyでのmicropython環境で使えるのがAprilTagだったため、そこと互換性を持つためにAprilTagを選んだ。
PCだけで利用するならArUcoでも別に構わないし、どっちでもいいというのが正直なところ。どちらもBSDライセンスです。
一応ググってみたら以下のような記述がありましたが、どこまで信頼できる内容なのかは分かりません。
https://robotics.stackexchange.com/questions/19901/apriltag-vs-aruco-markers

(以下日本語訳)

Aruco(OpenCVで実装)
長所
セットアップが簡単(すぐに利用できるアルコマーカージェネレーター、opencv&rosの実装など)
誤検出の減少(デフォルトのパラメーターを使用)
短所
新しいバージョンのarucoにはGPLライセンスが付与されているため、opencvは、まだBSDであったときに、arcoの古い実装に行き詰まっています。
中距離から長距離で回転の曖昧さの影響を受けやすい
その他の調整パラメーター
より計算集約的

AprilTag(apriltag_rosに実装されているとおり)
長所
BSDライセンス
チューニングパラメータが少ない
遠距離でもかなりうまく機能します
NASAが使用
より柔軟なマーカー設計(例:必ずしも正方形である必要はないマーカー)
計算量が少ない
短所
セットアップが簡単ではありません(opencv実装AFAIKなし、ros実装のみ、マーカーを取得するための手順がわずかに多い)
誤検出の増加(デフォルトのパラメーターを使用)

利用シーン
AprilTagは、もともとはROSというロボット制御に特化したミドルウェアのパッケージで利用するように開発されている。
利用シーンとしては、壁にタグを張っておいて、カメラで認識したら曲がる、コンテナに貼っておいて認識したら掴む、など。移動ロボットの動画を見ていると結構出てくる。


また、日本国内では、ロボット以外にも、ハチに張り付けて同一個体を追跡したり、
https://www.ieice.org/publications/conference-FIT-DVDs/FIT2016/data/pdf/H-002.pdf
コロナ対策として防護服に着けて個人を認識したりしているようだ。https://prtimes.jp/main/html/rd/p/000000019.000046740.html

M5StickVを使ってAprilTagを検出して、bluetoothかUSBで、HIDClassでマウス操作をシミュレートすれば、装置ができそう。


#いま私にできること #福祉 #Arduino #マウス #自助具 #デバイス #福祉用具

よろしければサポートをお願いいたします。 デバイス、ソフトウェアの資金や、今後の活動へのモチベーションとさせていただきます!