著者注: 携帯電話で、人の顔に特殊効果を加えるアプリを見たことがあるかもしれません。これらのアプリは、自撮り動画にかわいくて面白いオブジェクトを追加します。さらに面白いアプリの中には、表情を検出して対応するオブジェクトを自動的に選択するものもあります。この記事では、ディープラーニングを使用した表情検出の方法を紹介し、従来の検出方法についても簡単に紹介します。 以前は、目、鼻、口などの顔とその特徴を検出し、その形状から表情を抽出することさえ非常に困難でしたが、現在では、このタスクはディープラーニングによって「魔法のように」解決され、賢い若者なら誰でも数時間で実行できます。 Leifeng.com AI Technology Review がまとめたジョージア工科大学の学生 Peter Skvarenina 氏の記事では、この実装方法について紹介します。 「伝統的な」アプローチ(CLM) あなたも私と同じように顔のトラッキング (この記事の場合、ウェブカメラを介して人の顔の動きをアニメキャラクターに同期させる) を行う必要があると仮定すると、これまでこのタスクに最適なアルゴリズムは Cambridge Face Tracker または OpenFace に基づく Local Constraint Model (CLM) であることが分かるでしょう。この方法では、検出タスクを、形状ベクトル特徴 (ASM) の検出、画像テンプレートのプディング (AAM)、および検出の最適化のための事前トレーニング済み線形 SVM の使用という複数のステップに分解します。 まず、キーポイントを大まかに推定し、次に部分的な顔情報を含む事前学習済み画像を使用して SVM 処理を行い、同時にキーポイントの位置を修正します。発生するエラーが要件を下回るまで、このプロセスを数回繰り返します。さらに、この方法では、Viola-Jones 検出器 (Haar カスケード) などを使用して、画像上の顔の位置が推定されていることを前提としていることにも留意する必要があります。しかし、この方法は非常に複雑で、高校生が簡単に実行できるものではありません。全体的な構造は次のとおりです。 ディープラーニング 記事の冒頭で述べた目標、つまりティーンエイジャーが顔検出を行えるようにするために、ディープラーニングの手法を紹介します。ここでは、非常に単純な畳み込みニューラル ネットワーク (CNN) を使用して、顔が含まれる画像から顔の重要な部分を検出します。これを実行するには、まずトレーニング データベースが必要です。ここでは、Kaggle が提供する 15 個のキー ポイントを含む Face Part Recognition Challenge のデータベース、または 76 個のキー ポイント (すごい!) を含むより複雑なデータベース MUCT を使用できます。 明らかに、質の高い画像トレーニング データベースは不可欠です。ここでは、卒業するためにこれらの画像に注釈を付けるために時間と労力を「犠牲にして」くれた「かわいそうな」学部生たちに敬意を表します。そのおかげで、私たちはこれらの興味深い実験を実施することができます。 Kaggle データベースに基づくバロック様式の顔と主要なポイントは次のようになります。 このデータベースは、グレースケールの 96 x 96 解像度の画像で構成されており、各目に 5 ポイント、鼻と口に 5 ポイントを含む 15 個のキー ポイントがあります。 どの画像でも、まず、Haar カスケード アーキテクチャに基づく前述の Viola-Jones 検出器を使用して顔を見つける必要があります (この実装をよく見ると、CNN の概念に似ていることがわかります)。さらに一歩進んで、完全畳み込みネットワーク (FCN) を使用して、画像セグメンテーションに深度予測を使用することもできます。 使用する方法に関係なく、OpenCV を使用すると簡単です。
上記のコード行を使用すると、画像内の顔をフレームに収めることができます。 次に、返された顔ボックスごとに、対応するサブ画像を抽出し、グレースケール画像にサイズを変更して、96 * 96 に変換します。新しく生成された画像データは、完成した CNN ネットワークの入力になります。 CNN アーキテクチャでは、最も一般的な 5*5 畳み込み層 (実際には 3 つの層で、それぞれに 24、36、48 個の ReLU があります) が使用され、その後に 2 つの 3*3 畳み込み層 (それぞれに 64 個の ReLU があります) が続き、最後に 3 つの完全接続層 (500、90、30 個のユニットを含む) が続きます。過剰適合を回避するために最大プーリングが使用され、平滑化パラメータの数を減らすためにグローバル平均プーリングが使用されます。このアーキテクチャの最終的な出力は 30 個の浮動小数点数であり、これは 15 個のキー ポイントのそれぞれの x、y 座標値に対応します。 Keras の実装プロセスは次のとおりです。
損失関数と精度メトリックとして、ルート平均二乗伝播 (rmsprop) 最適化と平均二乗誤差 (MSE) を選択することもできます。入力画像に対してバッチ正規化とグローバル平均ポーリングを使用し、HE 正規重み初期化を行うだけで、80%~90% の検証精度が得られ、30 回のトレーニング エポックでエラー < 0.001 を達成できます。
キーポイントの位置を予測するには、次のコマンドを実行するだけです。
OK! これで、顔の特徴を検出する方法がわかりました。 念のため、予測は 15 組の (x, y) 座標であり、次の画像で視覚化できます。 上記の操作でもニーズを満たせない場合は、次の手順を実行することもできます。
まだ簡単すぎると思うなら、3D 処理を学ぶことをお勧めします。Facebook と NVIDIA が顔認識と追跡を実行する方法を参考にすることができます。 さらに、学んだことを活用して、新しくてエキサイティングなこと(ずっとやりたかったけどやり方がわからなかったこと)を行うことができます。
さて、これで独自のビデオチャット フィルターを作成する方法がわかりました。楽しいフィルターを作ってみましょう。 |
<<: 人間が理解できる音声を合成するために、機械はどのような「ディープラーニング」を行っているのでしょうか?
>>: IEEEの論文では、画像強調を実現するための放射状変換を提案している
COVID-19 により、企業はデジタル変革の取り組みを数か月、場合によっては数年も加速させるようプ...
最近、GPT モデルは NLP の分野で大きな成功を収めています。 GPT モデルは、まず大規模なデ...
AIが再び国家の議題に!教育部は、「国務院による新世代人工知能発展計画の公布に関する通知」を実施し...
ロシアメディアは、中国の人工知能(AI)産業の急速な発展を背景に、米シンクタンクのブルッキングス研究...
10月10日、2019 AIIA人工知能開発者会議の記者会見が北京で開催されました。 2019年AI...
人工知能の次なる展開は?先週、有名な組織 CBinsights のアナリストがさまざまな業界を分析し...
先月は、ディープラーニングにおける「Hello World」であるMNIST画像認識を中心に、畳み込...
ディープラーニングとニューラル ネットワークの進歩により、自然言語処理とコンピューター ビジョンに大...
[[286828]] F5、LVS、HAproxy、nginx など、私たちが普段使用している負荷...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
[51CTO.com クイック翻訳] 人工知能は今や魔法の技術と見なされています。人類が直面してい...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
製造業は大きなデジタル変革を遂げています。従来のモデルはインダストリー 4.0 へと進化しています。...