過去のプロジェクト

機械学習とソフトウェア開発のこれまでの取り組みを、技術選定や実装の記録とともに紹介します。

主なプロジェクトに戻る
2025

2025.03 - 2025.05機械学習エンジニア

Transformer による顔ライブネス検知

印刷写真、画面に表示した静止写真、画面で再生した動画による顔の提示攻撃を対象に、CNN + Transformer のライブネス検知モデルを構築。フレームごとの視覚特徴と時系列の関係を組み合わせ、動画のサンプリングから学習、顔分析の推論フローへの統合まで取り組みました。

  • CNN
  • Transformer
  • YOLO
  • PyTorch

対象とする提示攻撃

  • 印刷写真
  • 画面に表示した静止写真
  • 画面で再生した動画

フレームの特徴から、動画全体の判定へ

  1. 動画サンプリング

    系列長とフレーム抽出間隔を設定

  2. CNN 特徴抽出

    各フレームの視覚特徴を抽出

  3. Transformer

    位置エンコーディングと CLS トークンで系列をモデル化

  4. ライブネス判定

    系列の表現を用いて動画単位で判定

モデルの処理を示す図です。リアルタイムの予測結果ではありません。

担当した開発

時系列モデルと動画学習パイプラインを開発し、ライブネス検知、YOLO による検出、顔特徴量、表情認識を一つの推論フローに統合しました。

独自収集サンプルでの評価

自分で撮影した実際の顔の映像と、写真・動画による提示攻撃でテストしました。開発段階の小規模なデモでは、Transformer を用いた時系列モデルは当時のベースラインより誤判定が少ないという観察が得られました。

開発デモにおける定性的な観察であり、標準テストセットの正解率を示すものではありません。

技術記録

課題

一枚のフレームだけでは、本物の顔、印刷写真、画面上の静止写真や再生動画を区別できないことがあります。ライブネス検知には時系列の動きが追加の手がかりになります。

アプローチ

CNN + Transformer モデルを構築しました。CNN がフレームごとの特徴を抽出し、Transformer が動画系列の時系列関係をモデル化します。

実装内容

動画学習パイプラインを実装し、YOLO による検出、顔特徴量、表情認識、ライブネス検知を一つの推論フローに統合しました。

使用技術

PyTorch、CNN と Transformer、検出には YOLO。

  • 一枚の画像ではなくフレーム系列を処理する CNN + Transformer モデルを開発しました。
  • 系列長とフレームの間引き間隔を設定できる動画学習パイプラインを構築しました。
  • CLS トークンと位置エンコーディングを用いて、クリップ全体の情報とフレーム順序をモデル化しました。
  • YOLO による検出、顔特徴量、表情認識、ライブネス検知を一つのパイプラインに統合しました。