このプロジェクトについて
このリポジトリには、完全にブラウザ内で動作する顔検出のリサーチデモとパッケージ化されたウェブアプリケーションの両方が含まれています。すべての推論はTensorFlow.js上のface-api.jsを介してクライアント側で実行され、コンテナは静的ファイルとモデルの重みを配信するのみです。ライブデモはface.jedarden.comにリンクされており、READMEには本リポジトリが外部Gitホストの読み取り専用ミラーである旨が記載されています。
主に2つのディレクトリについて説明されています。1つ目のresearch/face-detection-liteには、顔検出アプローチ(Haarカスケードを用いたViola-Jones、HOG+SVM、CNNベースの検出器)に関するノート、ソース資料のpapers/コレクション、およびウェブカメラに対してface-api.jsを実行する静的ページが含まれています。このページでは、Tiny Face DetectorとSSD MobileNet v1の選択に加え、オプションでランドマーク、表情、年齢/性別モデルを利用可能です。さらに、research/face-detection-proフォルダにはランドマーク検出に関するMarkdown形式のノートが含まれています。リサーチデモは、シンプルなpython3 -m http.serverで起動します。
2つ目のdocker-appは、webpackでビルドされたシングルページアプリケーションであり、nginxによって提供され、2つのモードを備えています。Liteモードでは、requestAnimationFrameによって駆動し、調整可能なしきい値を持つTiny Face Detectorからバウンディングボックスを描画します。Proモードでは、SSD MobileNet v1と68点ランドマークモデルを併用し、face-api.jsの7つの表情クラスによる表情認識、および年齢/性別推定を行い、ランドマーク、輪郭、表情、属性のオーバーレイを表示します。Proモードは負荷が高く、速度が遅いとされています。その他の機能として、複数のカメラが存在する場合のカメラ選択、FPS、メモリ、タイミングを報告する切り替え可能な診断オーバーレイ、および互換性チェックを備えたTensorFlow.js WASMバックエンドのエントリポイントが含まれています。
READMEには、マルチステージDockerfile(Nodeビルダー、nginx:alpineランタイム)、GHCR上のタグ2.0.5向けに圧縮された約80MBのイメージ、nginxの/healthエンドポイントを用いたDocker HEALTHCHECK、およびビルド時に自己署名証明書を使用したポート8443でのHTTPS(/etc/nginx/sslへの証明書マウントによる置換が可能)について記載されています。クイックスタート手順では、ghcr.io/jedarden/face-detection:2.0.5のプル、docker-composeによるソースからの実行、およびポート3000での開発プロファイルについて説明されています。テストについては、Jestによるユニットテストと統合テスト、PuppeteerによるE2Eテスト、Playwrightスペック、およびセキュリティテストファイルが記述されています。
バージョン1.1.0は、npm auditの結果に対応した依存関係の更新であり、セキュリティ移行ガイドへのリンクが添えられています。コミットされたsecurity-audit.jsonは、9つの検出事項に関するある時点のスナップショットとして説明されています。READMEには、ベンチマーク数値はコミットされておらず、フレームレートはホストブラウザのバックエンドに依存し、アプリ内のオーバーレイでリアルタイムに表示されることが記されています。ブラウザの要件は、getUserMediaおよびWebGLまたはWebAssemblyのサポートです。プロジェクト自体のコードはMITライセンスですが、モデルの重みとライブラリはLICENSES/配下の個別のライセンスに従います。また、READMEには、AI支援によるプロンプト駆動の開発プロセスと、フレームワークではなくプレーンなJavaScriptを選択し、ブラウザ側で推論を行うというアーキテクチャ上の決定事項が記録されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.