[51CTO.com クイック翻訳] 先週、annyang を使用してマップ インターフェースに音声コマンドを追加しました (https://www.infoworld.com/article/3400658/javascript-tutorial-add-speech-recognition-to-your-web-app.html)。今週は、pico.js を使用してシンプルなヘッド トラッキング機能を追加することで、マルチモーダル インターフェイスをさらに強化します。 pico.js は、実稼働グレードのライブラリというよりは概念実証に近い、シンプルな JavaScript ライブラリですが、私が調査した顔検出ライブラリの中で最もよく機能するようです。
この記事の目的は、ユーザーの頭の位置を地図上に重ねて表示するシンプルな赤い点から始めることです。 図1 まず、ユーザーの顔の位置の更新を取得するために使用できる pico.js 機能をラップするシンプルな React クラスを作成しましょう。
顔が検出された場合は、顔の位置の詳細を含むコンポーネントをレンダリングできます。
pico.js で最初に直面した課題は、それが JavaScript で実装された研究プロジェクトであり、必ずしも最新の JavaScript 標準に準拠した製品レベルのライブラリではなかったことです。とりわけ、これは yarn add picojs を実行できないことを意味します。 pico.js の紹介ではオブジェクト検出について詳しく説明されていますが、API ドキュメントというよりは研究論文のような内容になっています。ただし、実際にコードを使用するには、添付の例で十分です。数時間かけて、添付のサンプルを、コードを最大限に活用できる比較的シンプルな React クラスに組み込みました。 pico.js が最初に行うことは、カスケード モデルを読み込むことです。これには、顔に対して事前トレーニングされたモデルのバイナリ表現を取得するために AJAX 呼び出しが必要です。 (同じライブラリを使用して他の種類のオブジェクトを追跡することもできますが、カスタム モデルをトレーニングするには公式の pico 実装を使用する必要があります。) このモデル読み込みコードを componentDidMount ライフサイクル メソッドに配置できます。わかりやすくするために、サンプル コードをさらに抽象化して、loadFaceFinder という別のメソッドにしました。
顔検出モデルのバイナリ表現を取得して解析し、状態を設定することに加えて、<canvas> コンテキストとコールバック ハンドラーを参照する新しい camvas も作成します。 camvas ライブラリは、ユーザーのウェブカメラからのビデオをキャンバスに読み込み、レンダリングされるフレームごとにハンドラーを呼び出します。 loadFaceFinder の内容は、pico.js が提供する参照プロジェクトのほぼ正確なコピーです。状態からアクセスできるように、モデルの保存場所を変更しました。ブラウザが提供する DOM API を使用する代わりに、 react Ref を通じてキャンバス コンテキストを参照します。 this.processVideo も、リファレンス プロジェクトで提供されているコードとほぼ同じです。いくつかの変更を加えるだけで済みます。モデルがロードされたときにのみコードを実行するため、コード本体全体にチェックを追加します。また、ユーザーが渡すと予想されるコールバック ハンドラーを使用してこの React クラスを作成し、そのハンドラーを定義した後でのみ処理コードを実行するようにしました。
私が行った他の唯一の変更は、顔が見つかったときに実行するアクションです。 pico.js の例ではキャンバス上にいくつかの円を描画しますが、代わりにそのコールバック ハンドラーにデータを渡す必要があります。コールバック ハンドラーがこれらの値を処理しやすくなるように、コードを少し変更してみましょう。
この形式を使用すると、キャプチャされたキャンバス要素内の顔の絶対位置と半径、キャンバス要素内の顔の相対位置、キャンバス要素内の顔の位置を返すことができます。弊社のカスタマイズコースは基本的に完了です。また、最新の構文を使用するために、pico.js と pico バージョンの camvas.js にいくつかの小さな変更を加える必要がありましたが、これらはロジックよりもキーワードに重点を置いたものでした。 これで、カスタム ReactPico クラスをアプリにインポートしてレンダリングし、顔が検出された場合に FaceIndicator クラスを条件付きでレンダリングできるようになりました。私は他の顔検出ライブラリをいくつか使用しましたが、pico.js はフル機能のライブラリではないにもかかわらず、その正確性と使いやすさに驚きました。 元のタイトル: JavaScript チュートリアル: Web アプリに顔検出機能を追加する、著者: Jonathan Freeman [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください] |
<<: 何?ニューラルネットワークは新しい知識も生み出せるのでしょうか?
>>: Zhuiyi Technology AI Lab: ビジネスとテクノロジーの両方を推進し、新しいレベルのインテリジェントなインタラクティブアプリケーションを創造
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
イベント紹介ロイター通信によると、ウクライナ政府省庁は土曜日、クリアビューAIの顔認識技術の使用を開...
編集者注: ディープラーニングの継続的な発展により、音声認識技術は大幅に向上し、人々の日常生活に多く...
[51CTO.com からのオリジナル記事] 先進的なクラウドサービスプロバイダーとして、AWS は...
顔認識技術は、複製不可能、非接触、高速などの利点により、インテリジェントな通過と迅速な本人確認に優れ...
最近の調査によると、企業は生成 AI がリアルタイムのデータ分析を実現する大きな可能性を秘めていると...
[[428031]]先日の建国記念日、ドローンは間違いなく「最もクールな存在」でした。交通の補助、景...
人工知能 (AI) 対応ソリューションの機能からスマート デバイスによるモビリティの向上まで、コネク...
[[343916]]現在、ファッション業界における人工知能(AI)技術の応用範囲は、依然としてプロセ...
メタバースは、信頼できる資産価値とアイデンティティ認証を備えた仮想アクティビティを実行するためのプラ...
最近、ニュージーランド出身のブレンダン・バイクロフトという男がテクノロジー界で大流行を巻き起こしてい...
テクノロジーは前例のない速度で進歩しており、モバイル コンピューティングの将来は変革的な進歩を約束し...
コード補完機能は IDE では非常に一般的です。優れたコード自動補完機能により、作業効率が大幅に向上...