CameraTablet-ウェブカメラを使用してグラフィックタブレットを作成する方法

こんにちは、私の名前はドミトリーです。 ここで、なぜマウスが私に合わないのか、そしてどのように置き換えようとするのかについてお話したいと思います。 私はエンジニア用のCAEプログラムを開発し(機械システムの静力学と力学を計算)、作業時間の3分の1でプロジェクトマネージャーとして働いています。 私は常に10から20のウィンドウを開いており、その間に絶えずジャンプする必要があります。



  1. Visual Studio-実際には、ソフトウェア、通常は3つまたは4つの異なるソリューション
  2. SourceSafe-バージョン管理。
  3. 見通し
  4. Skype
  5. 総司令官-ファイル、ファイル。
  6. Internet-Explorer-ソフトウェアの計画、プロジェクトの進捗状況の監視、doxygenのドキュメントなど
  7. Word、Excel-タスクリスト、会議議事録、プロジェクト要件、クイックチャートなど
  8. PowerPoint-管理のためのプレゼンテーション。
  9. Notepad ++-中間結果、構成などを表示します
  10. 私たちのCAEソフトはテストおよび基本バージョンです。
  11. その他のCAEソフト-テスト用


その結果、毎日さまざまなプログラムを使用する必要があります。 各プログラムには独自のグラフィカルインターフェイスがあります。 そして、各インターフェイスにはまったくショートカットがありません。または、それらは独自のユニークでユニークなものであり、覚えていません。



その結果、私の一日中はマウスとキーボードの間で絶え間なく投げられます:





ある時点で、私の右手は言った:「ごめんなさい、マスター、しかし私にとっては大きすぎる。」 ブラシはほぼ2か月間、最初は弱く、その後はますます傷みました。 その結果、縦型マウスを購入し、Visual Studioでさらにショートカットを学び、Total Commanderに切り替えました。



これで手は傷つきませんが、マウスの問題は残ります。 私はあなたのことは知りませんが、マウスをつかむために左から右へ、そしてキーボードに戻るために右から左へのこの絶え間ない動きは好きではありません。 1981年のコンピューターのマウスは30年以上が経過し、それ以来ほとんど何も変わっていません。



標準的なマウスの代替案はどれも好きではありません:PointStick(ノートパソコンのキーボードの中央にあるピプカ)、タッチパッド、グラフィックタブレット-精度が悪いか、キーボードから手を引く必要があります。



カメラマウスやTobiiアイトラッカーなど、アイトラッキング用のプログラムとハードウェアもあります。 正直なところ、私はTobii Eye Trackerに100ドルを費やしたくはありませんでした。CameraMouseは目の位置をほとんど認識していませんでした(メガネのせいだと思います)。



CameraTablet



その結果、ウェブカメラが常にあるので、私は自分でソフトウェアを書くことにしました。 アイデアは簡単です。キーボードの一部をグラフィックタブレットに変えます。 ショートカットに従って、カメラは人差し指の位置の追跡を開始し、マウスを画面上の適切な場所に移動します。さらにいくつかのショートカット-左右のマウスボタンのエミュレーション。 これがどのように大まかに動作するかのビデオです。







CameraTabletの作り方



この言語でプロトタイプを非常に迅速に開発できると思われるので、私はプログラムをPythonで書くことにしました。 面白いことに、結果として、CameraTabletは非常に小さいことが判明しました。 ほとんどの場合、opencvが画像を認識する方法を理解するのに時間がかかりました。 さらに、マウスをエミュレートするための通常のスクリプトを見つけるために少し手を加える必要がありました。 それ以外の場合、Pythonのライブラリの大規模なおかげで、私は望んでいたことをすべて迅速に行うことができました。 結果として何が必要でしたか:



  1. opencv

    • ビデオの指認識
    • サムネイルファイルを保存
    • カメラキャリブレーション
  2. キーボード-ホットキー処理
  3. TkInter-GUI用の5つのボタン。


私が遭遇した多かれ少なかれ数学的な問題は、指の位置がわかっている場合に画面上のカーソル位置を計算する方法です。 指は非等辺四角形の内側を動き、カーソルは長方形の画面の内側を動きます。 そのため、問題は、任意の四角形を長方形に投影することになります。 最初の試行ではありませんでしたが、かなりうまくいきました。



次は何ですか



現時点では、プログラムは安定して動作しています。 ウィンドウを切り替えてメニュー項目を選択するには、十分な精度があります。



現在利用できないが、私が本当にやりたい機能:



  1. マルチモニターのサポート
  2. MouseDown und MouseUpエミュレーション(テキスト選択に必要)
  3. Linuxサポート


そして、最も難しい瞬間は、最もおいしい仕事の20%が既に行われたときでしたが、私は80%だけを削減したくありません。 それから、私は長い間何かオープンソースをすることを夢見ていたので、すべてをGitHubに置く時だと決めました。 誰かがプロジェクト(テスト、プログラミング、ドキュメント-なんでも)に参加したいと思うなら、とてもうれしいです。 そして、もちろん、人間と機械のインターフェース全般のインターフェースと、特にマウスの代替物に関する考えを聞くのは興味深いでしょう。



All Articles