作成者 :(株)クラスキャット セールスインフォメーション
作成日 : 01/19/2019
ClassCat® TF/ONNX Hub とは
「ClassCat® TF/ONNX Hub」はクラスキャットが提供する実用性の高い機械学習モデルのレポジトリです。各モデルは TensorFlow 固有フォーマットと ONNX フォーマットの両者で提供されます。 [ClassCat® ONNX Hub 詳細]
- ONNX (Open Neural Network Exchange) は深層学習モデルのためのオープンなフォーマットで、異なるオープンソースの深層学習フレームワーク間の相互作用を可能にします。
「ClassCat TF/ONNX Hub」で提供されるモデルについてはクラスキャットが検証の上で仕様を公開致しますので、ユーザ企業は希望するモデルを自由に選択することができます。更にユーザ企業のデータセットによる再調整も含めて実運用するために必要なトータルサポートを提供致します。
今回は顔のランドマーク (目印) 検出と顔を 3 次元化する Pix2Face を紹介致します。
顔のランドマーク検出と Pix2Face の紹介
顔検出とは
顔検出 は歩行者検出等の技術と同様に深層学習ブーム以前から研究されてきています。
OpenCV や dlib C++ ライブラリを利用した、顔の bounding box 検出や輪郭検出は数多くの実装例がありましたが、深層学習フレームワークと組み合わせることによってより複雑なモデルが考案・開発されるようになりました。
モデルの発展の方向性は多岐に渡ります。顔の単純なローカリゼーション (位置特定) だけでなく、例えば目鼻の位置も併せて特定したり (顔の造形の再構築が可能であるような) 十分な数のランドマーク (目印) を予測するモデルもあります。
更には Pix2Face と呼ばれる、2 次元の顔画像から 3 次元の顔を構築する試みもされています。
ここでは顔のランドマーク検出と Pix2Face の例を紹介します :
※ 画像は原則として ImageNet の URL を利用しており、元画像の版権は所有者に帰属しています。
ランドマーク検出モデルの基本
dlib と深層学習フレームワークを組み合わせた例の入門としては、PyTorch 1.0 : Getting Started : データロードと処理 が参考になります。
このチュートリアルは本来は PyTorch における DataSet と DataLoader クラスの取り扱いを解説することが目的ですが、顔検出の視点からはランドマーク検出モデルの構築に必要なデータセットをどのように作成して可視化するかが説明されています。
ImageNet の face タグの画像を dlib ポーズ推定 を利用してそのタスクを遂行しています。併せてランドマークの可視化も行なっています。
ランドマーク検出とポーズ推定の可視化
ここではランドーマーク検出とそれをベースにしたポーズ推定を可視化するモデルを紹介します。
次の画像は ImageNet から収集したもので最初の入力画像です :
以下はモデル適用後の画像です。
左側は眼窩 (がんか) から鼻筋、口元、顎のライン上のランドマークを検出しています。
右側はそのランドマークをベースに顔姿勢を可視化したものです。
![]() |
![]() |
続いて 2 枚目の入力画像です :
![]() |
![]() |
複数人数に対してもモデル適用可能です。
![]() |
![]() |
Pix2Face
Pix2Face は簡単に言えば、2 次元の顔の画像から 3 次元の顔を構築する技術です。
ランドマーク・ベースのモデルを超えて様々な方法が試行錯誤されています。
以下は PNCC という手法のみを使用しています (複数の手法を組み合わせることにより精度が向上します) :
![]() |
![]() |
![]() |
![]() |
以上