AppleはいかにしてAIで「写真」アプリを進化させているのか(AI論文解説)

   
↓はてなブックマークで応援お願いします!
このエントリーをはてなブックマークに追加

人物認識の便利さを振り返る

Photos(iOS、iPadOS、macOSアプリ)は、デバイス上で非公開で実行される多くの機械学習アルゴリズムを使用して、画像、Live Photos、ビデオのキュレーションと整理を行っています。ふだん何気なく使用している人も、カテゴリー分類の凄さは実感していることでしょう。

この目標を達成するためのアルゴリズムは、外見で人を認識します。
人物を認識するというタスクは、ドメインが非常に多様であるため困難です。写真に写る人物は、さまざまな大きさ、照明、ポーズ、表情で登場するため、包括的なナレッジグラフが必要になります。これは、子供がシャボン玉で遊ぶシーンや、友人同士でグラスを掲げて乾杯しているところなど、ダイナミックなシーンを撮影する場合に特に当てはまります。

Photos内のコンテンツを整理する課題において、どのような技術が用いられているのでしょうか。Appleの発表を紹介します。

研究者らは、顔と上半身の特徴を抽出することで、人物認識を試みました。

▼論文情報

タイトル:”Recognizing People in Photos Through Private On-Device Machine Learning”

URL:DOI

人物認識のAIモデル

まずは研究におけるミッション・手法・結果をまとめました。

✔️ミッション
Photosアプリ内の写真を自動で整理する。

✔️解決手法
顔と上半身情報に基づいた認識モデルを構築した。

✔️結果
iOS15で実装する、これまでのアプリの精度を上回るモデルを構築した。

ミッションから説明していきます。

(目的)人物認識に基づくPhotosアプリ内の写真の自動整理

Photosは、さまざまな方法でアイデンティティ情報を利用します。図1Aに示すように、ユーザーは画像をスクロールして、画像で認識された人物を表す円をタップし、その人物を含む画像を見ることができます。また、図1Bに示す「人物アルバム」に直接アクセスして画像を閲覧し、画像に正しい人物がタグ付けされていることを確認することもできます。さらに、図1Cに示すように、ユーザーは自分の写真に写っている人物に手動で名前を追加したり、検索バーに人物の名前を入力して相手を探したりすることができます。

図1 Photosにおける人物認識

Photosはまた、ID情報から学習して、デバイス上にプライベートなナレッジグラフを構築します。このナレッジグラフは、重要なグループ、よく行く場所、過去の旅行、イベント、ユーザーが特定の人物の画像を最後に撮影した日など、ユーザーのライブラリの興味深いパターンを特定します。このナレッジグラフは、写真の人気機能である「メモリーズ」を支えています。この機能では、ユーザーのライブラリにあるさまざまなテーマを中心に、魅力的なビデオヴィネットを作成します。メモリーズは、図1Dに示す「Together」のメモリのように、ユーザーの人生において重要な人に基づいた人気のあるテーマを使用します。

(手法)顔と上半身の特徴を用いた人物認識

Appleの研究チームは、顔と上半身を別々に検出し、それぞれの特徴を組み合わせて人物を認識するモデルを構築しました。

画像コレクションからの人物認識
ライブラリでの人物認識は、2つのフェーズで構成されています。1つは、ライブラリの拡張に合わせて、既知の人物のギャラリーを徐々に構築していくフェーズ。2つ目のフェーズは、新しい人の観察結果を、ギャラリー内の既知の個人に割り当てるか、または未知の個人として宣言することです。これら2つのフェーズのアルゴリズムは、人物観察を表す特徴ベクトル(エンベッディングとも呼ばれる)を操作します。

エンベッディングの抽出
まず、画像に写っている人の顔や上半身を検知することから始めます。顔は、被写体がカメラから目をそらしていると、一部が隠れてしまったり、単に映り込んでいなかったりすることがよくあります。このような場合には、画像に写っている人物の上半身も考慮します。上半身は通常、特定のコンテキストの中で衣服のような一定の特徴を示すからです。このような一定の特徴は、一定時間内に撮影された画像間で人物を識別するための強力な手がかりとなります。

Photos画像全体を入力とし、検出された顔と上半身のバウンディングボックスを出力するディープニューラルネットワークに依存しています。そして、バウンディングボックスの面積と位置、顔と上半身の領域の交点から、顔のバウンディングボックスと対応する上半身を関連付けます。

画像から得られた顔と上半身の切り抜きは、それぞれを表現する特徴ベクトル(エンベッディング)を抽出するために、2つの独立したディープニューラルネットワークに供給されます。同一人物の異なる切り抜きから抽出されたエンベッディングは互いに近く、別の人物の切り抜きから抽出されたエンベッディングは遠くなります。このように、顔と上半身のバウンディングボックスを検出し、対応する特徴ベクトルを抽出する作業を、写真ライブラリのすべてのアセットで繰り返します。この繰り返しにより、顔と上半身のエンベッディングのコレクションができあがります。

ギャラリーの構築
ギャラリーを教師なし学習で構築するために、Photosはクラスタリング技術を利用して、検出された人物に対応する顔と上半身の特徴ベクトルのグループ(クラスタ)を形成します。これらのクラスタを構築するために、各観測データの顔と上半身のエンベッディングの組み合わせを使用するアルゴリズムから始めます。

上半身の特徴は、その日の服装など一時的な外見に依存するため、時間の経過とともに顔の特徴よりもロバスト性が低くなります。そのため、このファーストパスでは、同じ瞬間の上半身の特徴のみを比較するようにしています。ある瞬間のアセットの中では、人物は同じ服を着ている可能性が高いと考えられます。顔と上半身の特徴を1つのベクトルにまとめる方法や、2つのエンベッディングを連結する方法など、有用な観測結果の組み合わせにアプローチする方法はたくさんあります。
各エンベッディング空間で別々に計算された距離は、次の式で表します。
Dij=min(Fij, α⋅Fij+ β⋅Tij)
ここで、Dijは2つの観測地点間の距離、Fは顔のエンベッディング距離、Tは上半身のエンベッディング距離を表します。

図2 ギャラリー構築の概要

アイデンティティの割り当て
人物認識問題の第二段階は、新しい観察結果をギャラリーに一致させることです。K-means法を用いた特徴表現の学習にヒントを得て、強力なエンコーダーを選択します。具体的には、各クラスタを、単にセントロイドを用いるのではなく、正準的な模範例のセットX0, X1,…, Xcで表現します。ギャラリーは、すべての模範例からなる辞書Dで表現され、D=[X01, X11, …, Xc1, X02, X12, …, Xc2, …, X0K, X1K, … XcK]となります。

このように最近傍分類を一般化することで、各クラスタのサイズが比較的小さい場合や、ギャラリー内の複数のクラスタが同一人物に属する可能性がある場合など、特に2つの領域で精度が向上します。Photosでは、この技術を用いて、写真を撮影する際に人物を素早く識別しています。

不明瞭な顔のフィルタリング
これまで説明してきた処理パイプラインでは、クラスタリングの際に、計算されたすべての顔と上半身のエンベッディングをクラスタに割り当てていました。しかし、すべての観測データが実際の顔や上半身に対応しているわけではなく、また、すべての顔や上半身がモバイルデバイス上で動作するニューラルネットワークでうまく表現できるわけでもありません。そのうち、誤検出や分布外の顔や上半身の検出がギャラリーに現れ始め、認識精度に影響を与えるようになります。この問題に対処するために、顔や上半身のエンベッディングとしてうまく表現されていない観測値をフィルタリングして除外します。

データと補強
モデルの精度を大幅に向上させるには、データの増強が必要です。学習時には、モデルの一般化を向上させるために、多くの変換をランダムに組み合わせて入力画像を補強します。これらの変換には、カラージッターやグレースケール変換などのピクセルレベルの変化、左右反転や歪みなどの構造的変化、ガウスぼかし、ランダムな圧縮アーチファクト、カットアウトの正則化などがあります。学習が進むにつれて、カリキュラム学習のように、変換が徐々に追加されていきます。

例えば、COVID-19パンデミックに対抗するためのフェイスマスクの普及という具体的な問題に取り組むために、新たに合成マスク補強を設計しました。顔のランドマークを使って、フェイスマスクに対応するリアルな形状を生成しました。そして、入力された顔の上に、推定されたマスク領域内の衣服やその他のテクスチャーからのランダムなサンプルを重ねました。これらの合成マスクにより、モデルは顔の他の領域をより重要視し、マスクがある場合の一般化を向上させますが、マスクのない顔の精度には影響を与えません。

ネットワークの設計
このアーキテクチャを設計する上での主な課題は、デバイス上で効率的に動作し、低レイテンシーでメモリの節約を実現しながら、可能な限り高い精度を実現することです。Appleのチームは、AirFaceで提案された軽量で効率的なモデルにヒントを得て、ディープニューラルネットワークの構造を決定しました。タスクに合わせてブロックを最適化し、ネットワークの深さを大幅に増やしました。

図3に示すように、バックボーンは、特徴マップの次元を減らしてネットワークの深さを増やすために使用する浅いストライドモジュールと、MobileNetv3にヒントを得た複数のボトルネックを含む深いモジュールを交互に配置して構成されており、ブロック間のコンパクトな表現を維持しながら、高次元の特徴空間を内部に提供しています。

図3 ネットワークの概要

各ボトルネックは、軽量のアテンション層を持つ逆残差・線形構造に従っています。これは、チャンネル数を拡大するためにレベルごとの比率を調整したポイントワイズ拡大畳み込みと、それに続く空間的な奥行きワイズ畳み込みで構成されています。この最大の表現に対して、SqueezeとExcitationに着想を得たチャンネルアテンションブロックを適用します。次に、チャンネル数を減らすために、2回目のポイントワイズ縮小畳み込みを投影層として使用し、最後に、チャンネル数が同じであれば、入力と出力を残差接続で接続します。ボトルネックの内部では、非線形活性化とバッチ正規化を使用しています。

モデルの学習
学習の目的は、クラス内のコンパクトさとクラス間の不一致を促進するエンベッディングを得ることです。図4の下の部分はこの概要を示しています。ネットワークを学習する前には、エンベッディングはランダムに分布しています。学習が進むにつれて、同じ人の顔を表すエンベッディングが近づき、別の人の顔を表す埋め込みから離れていきます。この手順は、最先端の認識手法であるArcFaceで説明されているものと同様です。

図4 モデルの学習の概要

(結果)iOSに搭載する高精度のモデルが完成

結果、最大で9割以上の精度で認識を行えるモデルの構築に成功しました。

図5は、トレーニングのさまざまな側面の影響を示しています。各パラメータのセットについて、大規模かつ多様なデータセットの中で最もパフォーマンスの低いサブセットと最もパフォーマンスの高いサブセットでの精度を示しています。最終的な手法は、精度を大幅に向上させるだけでなく、サブグループ間のギャップを埋めるのにも役立つことがわかります。

図5 学習が精度に与える影響

結果の視覚化
この最新の技術は、iOS 15の「Photos」に搭載されており、人物認識が大幅に向上しています。図6に示すように、デバイス上のプライベートな機械学習を使用することで、極端なポーズやアクセサリー、あるいは顔が隠れている人物を正しく認識し、顔と上半身の組み合わせを使用して、顔がまったく見えない人物を照合することができます。これにより、これまで不可能だった状況下でも、自分にとって最も重要な人物を特定することができ、写真体験が大幅に向上します。

図6 Photosの新しいアーキテクチャで認識された人物

研究紹介は以上です。

iOS15に搭載予定のPhotosアプリのシステムについて紹介しました。
新しいモデルにより、さらに快適に写真の整理を行うことができるようになりそうですね。


関連記事


業界/カテゴリー

PAGE TOP