技術スタック
顔特徴ベクトルによる短期的な照合を実現する、軽量でシンプルなアーキテクチャ
🔧 バックエンド構成
- 言語: PHP
- 画像アップロード処理
- 特徴ベクトルの生成・保存・類似度照合
- SQLite とのやり取り
- データベース: SQLite
- ベクトルを JSON 形式で保存
- TTL(例:5分)で有効期限を管理
- WALモード / 外部キー制約を有効化
📌 顔埋め込み(Embedding)
- Encoder / Embedder クラス: 画像から特徴ベクトルを生成
- LBP やヒストグラムベース処理による軽量な特徴抽出
- ベクトルは L2 正規化 → コサイン類似度・カイ二乗距離で照合
🔍 照合アルゴリズム
- Matcher クラス:
- 高速なコサイン類似度による照合
- 上位 K 件取得や閾値フィルタの実装可能
- Store クラス:
- ベクトルの追加・削除・TTL 管理
- store_id による多店舗対応設計
💻 フロントエンド
- HTML5 / JavaScript:
- カメラ起動・撮影(getUserMedia)
- 画像送信 → 結果受信 → 状態表示
- UI バッジ(撮影中/照合中/OK/警告)による視覚フィードバック
- localStorage:
- API エンドポイントの保持
- 日替わりセッションIDの管理
✨ 特徴とメリット
- 軽量: 追加ライブラリ最小限の構成
- 匿名性: 顔画像は保存せず、特徴ベクトルのみを短期利用
- 拡張性: 閾値調整や TTL 設定、商用向けのアルゴリズム強化が容易
この技術スタックにより、顔画像を保存しない、軽量かつ匿名性に配慮した顔類似検出を実現しています。