inflearn logo
知識共有
inflearn logo

ハードウェアなしで始めるフィジカルAIの第一歩:ウェブカメラで手の動きを認識するAIを作る

手の認識サンプルは動かしてみたものの、自分の手の動きをAIに学習させ、実用に耐える成果物に仕上げる道筋が見えず途方に暮れている方へ。開発統括と職業訓練の講師向け研修の経験を生かし、インストールからデータ収集、学習、Web画面の完成まで、ウェブカメラ1台で最後までご案内します。

16名 が受講中です。

難易度 入門

受講期間 無制限

Python
Python
OpenCV
OpenCV
classification
classification
streamlit
streamlit
mediapipe
mediapipe
Python
Python
OpenCV
OpenCV
classification
classification
streamlit
streamlit
mediapipe
mediapipe

受講後に得られること

  • MediaPipe Tasks APIを使って、写真やウェブカメラ映像から手のランドマーク21個を検出し、画面に描画できます。

  • 手の21点から、開閉、移動量、位置などの数値特徴量を抽出する方法を理解します。

  • キーボードでラベルを付けて手の動作データをCSVに収集し、ランダムフォレストで学習して精度を確認できます。

  • 学習したモデルで、ウェブカメラの前での手の動作をリアルタイムに「つかむ」「移動する」「離す」と判定できます。

  • 持ち上げる、移動する、置くという動作が決められた順序どおりに続いたかをOとXで判定するロジックを作成できます。

  • Streamlitでウェブカメラの判定結果を表示するウェブ画面のAI動作監督を自分のコンピューター上で完成させます。

  • 動作を決める際は、まずAIが判別できる動作かどうかを検討し、できない場合は動作定義を見直すための基準を得ます。

Pythonの基礎だけで、ウェブカメラ1台から作る手の動きAI 🧑‍💻

Pythonの基礎文法は学んだけれど、これで何を作れるのだろう?
最近はフィジカルAIが注目されているけれど、まずはロボットを買うべき?
AIのサンプルは試してみたけれど、最後まで動くものを作ったことはないのでは?

こんな悩みがあるなら、まずはノートPCのウェブカメラを起動してみましょう 🤭

手を握ったらつかむ、握ったまま動かしたら運ぶ、手を開いて下ろしたら置く。
AIが私の手の動きを認識し、つかむ・運ぶ・置くの順番どおりに行えたかを〇と✕で判定します。
この成果物「AI動作監督官」を、講義の最後に自分のパソコンで実際に動かしてみます 🙌

ロボットも、深度カメラも、グラフィックカードも使いません。
フィジカルAIのフロントエンドである、カメラで人の動きを読み取り判断する部分を、ウェブカメラ1台で最後まで作ります。
この技術は、工場の作業確認、物流、手話、運動やリハビリのように、人の動きを読み取る場所であればどこでも使えます。

こんな方におすすめです

この講義を受講すべき方(1)

🐍 Pythonの基礎の次に何をすればよいか分からない方

文法は学んだけれどプロジェクトにつなげられなかった方でも、インストールから完成まで一行ずつ追いながら進められます。

この講義を受講すべき方(2)

🤖 物理AIを機材なしで始めたい方

ロボットやセンサーを購入する前に、ノートパソコンのウェブカメラで動作認識から作ってみることができます。

この講義を受講すべき方(3)

🧑‍🏫プロジェクト授業を準備する教師や講師

学生が自分でデータを集め、結果を確認する授業の流れをそのまま取り入れられます。完成したコードも一緒にお渡しします。

受講後には

  • 写真やウェブカメラ映像から手のランドマーク21個を見つけ、画面に描画できるようになります。

  • 手の21個のランドマークを、開閉、移動量、位置といった数値に変換する仕組みがわかります。

  • 自分の手の動作データを直接集め、そのデータでAIを学習させて、精度を確認できます。

  • ウェブカメラの前での手の動きを、リアルタイムで「つかむ・運ぶ・置く」と判定するAIを動かせます。

  • 動作の順序をOとXで判定するWeb画面「AI動作監督官」を完成させます。

  • 新しい動作を決めるときに、AIが見分けられる動作かどうかをまず検討する基準が身につきます。

この講座の特徴

⭐️ コードを打たずに、実行して変更しながら学びます

書き取りや穴埋めはありません。完成したコードを実行してまず結果を確認し、つまずいた行はAIに尋ねて理解し、値や名前を変えて自分のものにしていきます。

✋ AIは手だけを見ます

物体認識は使いません。手のランドマーク21個から抽出した開閉、移動量、位置という3つの手がかりだけで動作を判別します。だから、何ができて何ができないのかが明確です。

旧方式を見分けて排除します

インターネット上の手認識サンプルの多くは、旧方式(mp.solutions)で書かれています。この講義のコードはすべて新方式のMediaPipe Tasks APIを使用しており、バージョンも固定しています。古いコードを探し回る時間を減らせます。

識別可能性チェック

動作をうまく定義しても、AIが見分けられなければ意味がありません。同じ場所で部品を握ってじっとしている「組み立て」と「検査」は、手だけを見ると同じに見えるため、データをさらに集めても区別できません。こうした場合に、動作の定義をどのように修正するかを学びます。

自分の職場で使う名前に変えます

AIが学習する動作は「つかむ」「運ぶ」「置く」のままにして、画面に表示される名前だけを変更します。完成したコードでは「検査」「運搬」「梱包」と表示されますが、「積み込み」「ピッキング」「組み立て」のように自分の職場の言葉に置き換えると、成果物が人によって異なってしまいます。

11_특징_손은점21개

AIは手だけを見ます

手のランドマーク21個から抽出した開閉、移動量、位置という3つの手がかりで動作を判別します。

自分の職場の名称に変えます

AIが学習する動作はそのままにして、画面に表示される名前だけを検査、運搬、梱包のように変えます。

こんな内容を学びます

1⃣ 手が21個の点になるまで、2⃣ 点を数字に、数字をAIに

  1. 環境構築:Python、VS Code、仮想環境、パッケージと手のモデルファイルを実際のインストール画面を見ながら準備します。

  2. 写真の手認識:1枚の写真から手が21個の点に変換される様子を見て、点の座標を読み取ります。

  3. リアルタイムの手の骨格:同じ処理をウェブカメラで絶えず繰り返します。左手と右手の識別や、よく起こるエラーについても取り上げます。

  4. 握る・開く、移動量、位置:指の間の距離、手の中心が移動した量、画面上の位置を数値化します。

  5. 動作の定義:つかむ、運ぶ、置くを定め、識別可能性チェックで確認します。

  6. データ収集:ウェブカメラの前で動作を行い、キーボードの1、2、3でラベルを付けて自分のデータを集めます。

  7. AI学習とリアルタイム判定:ランダムフォレストで学習し、精度を確認した後、ウェブカメラの前での手の動きをリアルタイムで判定します。

3⃣ 順序チェックと完成、4⃣ 付録:手に追従して動くグリッパー

  1. 順序チェック:つかむ、運ぶ、置くの動作が順番どおりに行われたかを〇と×で判定します。

  2. AI動作監督官の完成:Streamlitでウェブカメラ映像と判定結果を同時に表示するウェブ画面を作成します。

付録:顔と身体のランドマークを確認し、自分の手に合わせて動く画面内の2Dグリッパーや、把持信号を1回送るだけで一人で箱を運んで置く自律グリッパーまで動かしてみます。

この講義を作った人

  • IT企業でソリューション開発、PM、新規事業を長年担当してきました。

  • 複数の教育機関でさまざまな講座を教えています。


  • WikiDocsに『クリッククリック!』シリーズ(Excelクローリング、Excelで理解する人工知能、MS Power BI)を書きました。

  • インフランで「[Python 初心者] Flutterで作るChatGPT音声翻訳アプリ」、「コーディングなしで始めるExcelクローリング」の講座を開講しました。

  • YouTubeとTstoryでdatastorydaviチャンネルとブログを運営しています。

  • davi.krサイトを運営しています。

気になる点がありますか?

Q. ロボットや特殊なカメラは本当に必要ありませんか?

はい、ノートパソコンに搭載されたウェブカメラ1台で十分です。ロボットの代わりに、付録では画面内の2Dグリッパーを使います。実際のロボットアームを動かす内容は扱わず、その前段階である動作を読み取り、判断する部分に集中します。

Q. 機械学習を知らなくてもついていけますか?

はい。機械学習、ディープラーニング、OpenCV、MediaPipeを知らなくても大丈夫です。使うときに、その都度説明します。ただし、Pythonの変数、繰り返し文、関数などの基本構文は知っているものとして進めます。

Q. つかむ、運ぶ、置く以外の動作もできますか?

画面に表示される名前は自由に変更できます。AIが学習する動作を新たに決めるには、開閉、移動量、位置のうち、少なくとも1つが異なるかどうかをまず確認する必要があります。その基準については講義で扱います。

Q. コードを自分で書く必要がありますか?

いいえ。実習ごとに完成したコードをお渡しします。実行して結果を確認し、分からない行はChatGPTのようなAIに「この行はどういう意味?」と尋ねながら進めていただければ大丈夫です。

受講前の注意事項

実習環境

  • オペレーティングシステムおよびバージョン(OS):Windows(インストールと実行画面はすべてWindowsを基準にしています)

  • Python: 3.12.1

  • 使用ツール:VS Code、仮想環境(venv)。すべて無料です。パッケージは requirements.txt から一括インストールし、mediapipe は 0.10.35 に固定します。

  • PCスペック:ウェブカメラ内蔵のノートパソコン(またはPCとUSBウェブカメラ)。グラフィックカード(GPU)は必要ありません。

  • ColabやJupyterは使いません。リアルタイムのウェブカメラを使うため、自分のコンピューターで実行します。

学習教材

  • 実習コード18個(.py、完成版)

  • 手・顔・身体モデルファイル(.task)3つと、実習用の手の写真

  • 授業時限ごとの授業ノート

  • 参考リンク集(公式ドキュメント中心)

前提知識および注意事項

  • Pythonの基本文法(変数、条件文、繰り返し文、関数)が分かれば始められます。

  • 講義のナレーションはAI合成音声(イレブンラボ)で作成しています。

  • 講義内のデータ値(正確度など)は、講師が集めた例です。実際に実習すると値は異なります。

  • ご提案やご意見がございましたら、いつでもメッセージをお送りください。

  • 講義動画と学習資料の著作権は知識共有者に帰属します。無断での複製や再配布は禁止されています。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Pythonの基礎文法はわかるものの、動作するAI成果物を最初から最後まで作ったことがない方

  • MediaPipeのサンプルを動かしてみた後、自分の動作を直接収集して学習させる段階に進みたい方

  • ロボットや深度カメラなしで、ノートパソコンのウェブカメラだけを使ってフィジカルAIを始めてみたい方

  • 工場、物流、スポーツなど、人の動作を読み取る仕事をAIで試してみたい実務者

  • 生徒が自らデータを集め、結果を確認するプロジェクト型授業を準備する教師や講師

前提知識、
必要でしょうか?

  • Pythonの変数、条件文、繰り返し文、関数などの基本文法が分かれば大丈夫です。文法を一から教える講義ではありません。

  • 機械学習、ディープラーニング、OpenCV、MediaPipeについて知らなくても大丈夫です。実習で使用する際に、その都度説明します。

  • PythonとVS Codeのインストール、仮想環境の設定については、講義で画面を見ながら案内します。完成したコードをお渡しするので、実行したり値を変更したりしながら学びます。

  • ウェブカメラ付きのWindowsノートパソコンが必要です。ColabやJupyterは使いません。

こんにちは
daviです。

キャリア認証

228

受講生

24

受講レビュー

20

回答

4.8

講座評価

3

講座

実践的なAI分析、ビッグデータ分析、アプリ開発について経験した内容を皆さんと共有したいと思います。

至らぬ点もあるかと思いますが、温かく応援していただければ、より一層励んでまいります。ありがとうございます。

カリキュラム

全体

59件 ∙ (2時間 10分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

daviの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥34,650

30%

¥6,243