デュアルハンドバーチャルマウスと視覚化システム
概要
「Dual Hand Virtual Mouse & Visualization」は、PythonをベースにOpenCV、MediaPipe、PyAutoGUIといったライブラリを組み合わせ、Webカメラで捉えた両手のジェスチャーを使ってマウス操作を可能にするインタラクティブなプロジェクトです。手の骨格のランドマークをリアルタイムで抽出し、画面上に手の動きを視覚的に表示しながら、指の動きをカーソル移動に変換。さらに、ピンチ動作による左クリック・右クリック・スクロールも実装し、まるで仮想マウスを操作しているかのような感覚を体験できます。物理デバイスを必要とせず、直感的かつ自然な操作が可能なため、アクセシビリティ向上や新しい入力インターフェースの研究開発に有用です。
リポジトリの統計情報
- スター数: 5
- フォーク数: 0
- ウォッチャー数: 5
- コミット数: 5
- ファイル数: 5
- メインの言語: Python
主な特徴
- 両手の骨格ランドマークをリアルタイムにトラッキングし、画面上に手のスケルトンを表示
- 指の動きをカーソル移動に変換し、物理マウスなしで操作が可能
- ピンチジェスチャーによる左クリック、右クリック、スクロール操作を実装
- 軽量かつ直感的なインターフェースで手の動きを視覚的に確認しながら操作できる
技術的なポイント
本プロジェクトは、Webカメラ映像から両手のジェスチャーを認識し、ユーザーの手の動きをコンピュータのマウス操作にリアルタイムで変換するシステムを構築しています。その中核技術はGoogleのMediaPipe Handsモジュールで、これは21点の手の関節ランドマークを高精度で検出可能です。MediaPipeによる骨格抽出は非常に効率的で、CPU負荷を抑えつつ滑らかなトラッキングを実現しています。
OpenCVはWebカメラからの映像キャプチャと表示に使われ、検出した手の骨格を視覚化するためにランドマーク同士を線で繋いだスケルトン表示をリアルタイムに描画。これによりユーザーは自身の手の動きが正確に認識されているかを即座にフィードバックとして得られます。
PyAutoGUIはOSレベルでのマウス操作を可能にするライブラリで、本リポジトリではMediaPipeで検出した指の位置情報をもとに、画面上のマウスカーソルの移動を制御。さらに、ピンチ(親指と人差し指の接近)動作をトリガーとして左クリックや右クリック、スクロール操作を実装しています。これらのジェスチャーは複数のランドマーク間の距離や角度を測定することで判別され、ユーザーの手の動きを直感的にマウス操作にマッピングしています。
システム全体はPythonで書かれており、リアルタイム処理に最適化。必要なライブラリはrequirements.txtにまとめられているため環境構築も容易です。デュアルハンド(両手)対応である点も特徴で、片手だけでなく両手のジェスチャーを組み合わせた複雑な操作も可能にしています。
このように、メディアパイプによる高精度な手の検出技術と、OpenCVによる映像処理、PyAutoGUIによるOS操作を組み合わせることで、物理的なマウスデバイスを介さずにジェスチャーだけでPC操作を実現。インターフェースの新たな可能性を示すプロジェクトとしても興味深いものです。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: ライセンス情報を記載したファイル
- README.md: プロジェクト概要や使い方を説明するドキュメント
- demo.png: システムの動作イメージを示した画像ファイル
- hand_tracking.py: メインのプログラムファイル。カメラ映像から両手の骨格を検出し、マウス操作に変換するロジックを実装
- requirements.txt: 必要なPythonパッケージ一覧
まとめ
Webカメラで両手の動きを捉え、自然なジェスチャーでマウス操作を可能にする斬新なインターフェース実装。
リポジトリ情報:
- 名前: Dual-Hand-Virtual-Mouse-Visualization-
- 説明: Control your computer’s mouse and more using both hands in real-time with your webcam!
- スター数: 5
- 言語: Python
- URL: https://github.com/NamanGaonkar/Dual-Hand-Virtual-Mouse-Visualization-
- オーナー: NamanGaonkar
- アバター: https://avatars.githubusercontent.com/u/185241591?v=4