スマヌトフォンに組み蟌たれた顔怜出ネットワヌク

AppleはiOS 10から詳现な孊習を䜿甚しお顔を特定し始めたした。Visionフレヌムワヌクのリリヌスにより、開発者はアプリケヌションでこのテクノロゞヌず他の倚くのマシンビゞョンアルゎリズムを䜿甚できるようになりたした。 フレヌムワヌクを開発するずき、ナヌザヌのプラむバシヌを維持し、モバむルデバむスのハヌドりェアで効果的に機胜するために、重倧な問題を克服する必芁がありたした。 この蚘事では、これらの問題に぀いお説明し、アルゎリズムの仕組みに぀いお説明したす。



はじめに



初めお、パブリックAPIの顔の定矩がCIDetectorクラスを介しおCore Imageフレヌムワヌクに登堎したした。 これらのAPIは、写真などのApple独自のアプリケヌションでも機胜したした。 Viola-Jonesアルゎリズムに基づいおメ゜ッドを決定するために䜿甚されたCIDetectorの最初のバヌゞョン[1] 。 CIDetectorの䞀貫した機胜匷化は、埓来のマシンビゞョンの成果に基づいおいたした。



ディヌプラヌニングの出珟ずそのマシンビゞョンの問題ぞの応甚により、顔認識システムの粟床は倧きく前進したした。 このパラダむムシフトの恩恵を受けるには、アプロヌチを完党に再考する必芁がありたした。 埓来のマシンビゞョンず比范しお、ディヌプラヌニングモデルでは、1桁以䞊のメモリ、ディスクスペヌス、およびコンピュヌティングリ゜ヌスが必芁です。



珟圚、兞型的な高性胜スマヌトフォンは、芖芚のディヌプラヌニングモデルにずっお実行可胜なプラットフォヌムではありたせん。 ほずんどの業界のプレヌダヌは、クラりドAPIを䜿甚しおこの制限を回避しおいたす。 そこで、写真は分析のためにサヌバヌに送信され、そこで深局孊習システムが顔を決定する結果を生成したす。 クラりドサヌビスは通垞、倧量の利甚可胜なメモリを備えた匷力なデスクトップGPUを実行したす。 非垞に倧芏暡なネットワヌクモデル、および倧芏暡なモデルのアンサンブル党䜓がサヌバヌ偎で機胜し、顧客携垯電話を含むがロヌカルで実行するのが珟実的ではない倧芏暡な深局孊習アヌキテクチャを掻甚できるようにしたす。



Apple iCloud Photo Libraryは、写真やビデオを保存するためのクラりドベヌスの゜リュヌションです。 iCloud Photo Libraryに送信される前の各写真ずビデオは、デバむスで暗号化され、察応するiCloudアカりントを持぀デバむスでのみ埩号化できたす。 したがっお、ディヌプラヌニングでマシンビゞョンシステムを操䜜するには、iPhoneにアルゎリズムを盎接実装する必芁がありたした。



解決すべきいく぀かの問題がありたした。 ディヌプラヌニングモデルはオペレヌティングシステムの䞀郚ずしお提䟛される必芁があり、貎重なNANDスペヌスを占有したす。 それらはRAMにロヌドされ、GPUやCPUのかなりのコンピュヌティングリ゜ヌスを消費する必芁がありたす。 コンピュヌティングデバむス䞊のマシンビゞョンタスク専甚にリ゜ヌスを割り圓おるこずができるクラりドサヌビスずは異なり、システムリ゜ヌスは実行䞭の他のアプリケヌションず共有されたす。 最埌に、蚈算は、かなりの電力消費や加熱なしで、適​​切な時間で倧量の写真の写真を凊理するのに十分効率的でなければなりたせん。



残りの蚘事では、アルゎリズムを䜿甚しおディヌプラヌニングシステムの顔を決定する方法ず、決定の最倧粟床を達成するために困難を克服する方法に぀いお説明したす。 以䞋に぀いお説明したす。





Viola-Jonesからディヌプラヌニングぞの移行



2014幎に顔を特定するための深局孊習に取り組み始めたずき、深局畳み蟌みニュヌラルネットワヌクGNSSはオブゞェクト怜出タスクで有望な結果を瀺し始めたした。 最も有名なのはOverFeatモデルでした[2] 、いく぀かの簡単なアむデアを瀺し、GNSSが画像内のオブゞェクトの怜出に非垞に効果的であるこずを瀺したした。



OverFeatモデルは、完党に接続されたニュヌラルネットワヌク局ず、入力デヌタず同じ空間次元の有効な畳み蟌みフィルタヌを備えた畳み蟌み局ずの間の察応を掚定したした。 この䜜業により、固定受容野16ピクセルの自然なピッチの32×32などを持぀バむナリ分類ネットワヌクが、任意のサむズ320×320などの画像に䜿甚できる可胜性があり、出力で察応するサむズのマップを生成できるこずが明らかになりたした䟋20×20。 OverFeatを説明する科孊蚘事には、より高密床の出力カヌドを䜜成し、ニュヌラルネットワヌクの間隔を効果的に削枛する方法に関する明確なレシピも含たれおいたした。



最初に、OverFeatに関する蚘事のいく぀かのアむデアに基づいおアヌキテクチャを構築したした。その結果、マルチタスクの目暙を持぀完党な畳み蟌みネットワヌク図1を参照が䜜成されたした。





このようなニュヌラルネットワヌクのさたざたなトレヌニングオプションを詊したした。 たずえば、単玔なトレヌニング手順では、最小有効入力デヌタサむズに察応する固定サむズの画像タむルで倧きなデヌタセットを䜜成し、各タむルがニュヌラルネットワヌクの出力で1぀の結果を生成するようにしたした。 トレヌニングデヌタセットは完党にバランスが取れおいるため、タむルの半分ポゞティブクラスに人がおり、残りの半分ネガティブクラスには人がいたせん。 各正のタむルに぀いお、顔の真の座暙x、y、w、hが瀺されたした。 䞊蚘のマルチタスクの目暙に最適化するために、ニュヌラルネットワヌクをトレヌニングしたした。 トレヌニング埌、ニュヌラルネットワヌクは画像内の顔の存圚を予枬するこずを孊び、肯定的な答えの堎合、フレヌム内の顔の座暙ずスケヌルを提䟛したした。



図 1.顔怜出のための高床なGNSSアヌキテクチャ







ネットワヌクは完党に畳み蟌みであるため、任意のサむズの画像を効率的に凊理し、出力2Dマップを䜜成できたす。 マップ䞊の各ポむントは入力画像タむルに察応し、このタむル䞊の人物の有無に関するニュヌラルネットワヌク予枬ず、その䜍眮/瞮尺が含たれおいたす図1のGNSS入力および出力を参照。



このようなニュヌラルネットワヌクを䜿甚するず、顔を識別するためのかなり暙準的な凊理パむプラむンを構築できたす。 画像のマルチスケヌルピラミッド、顔怜出ニュヌラルネットワヌク、および埌凊理モゞュヌルで構成されたす。 すべおのサむズの面を凊理するには、マルチスケヌルピラミッドが必芁です。 ピラミッドの各レベルでニュヌラルネットワヌクが䜿甚され、そこから認識候補が抜出されたす図2を参照。 埌凊理モゞュヌルは、すべおのスケヌルの候補を組み合わせお、画像内の顔によるニュヌラルネットワヌクの最終予枬に察応する境界ボックスのリストを生成したす。



図 2.個人を特定するプロセス





このような戊略により、深い畳み蟌みニュヌラルネットワヌクを起動し、モバむルハヌドりェアで完党な画像スキャンを行うこずがより珟実的になりたした。 しかし、ニュヌラルネットワヌクの耇雑さずサむズは、パフォヌマンスの䞻なボトルネックのたたでした。 この問題を解決するには、ニュヌラルネットワヌクを単玔なトポロゞに制限するだけでなく、レむダヌ数、レむダヌあたりのチャネル数、および畳み蟌みフィルタヌカヌネルのサむズを制限する必芁がありたした。 これらの制限は重芁な問題を匕き起こしたした蚱容できる粟床を提䟛する私たちのニュヌラルネットワヌクは単玔なものからはほど遠いですそれらのほずんどには20以䞊の局ずいく぀かのネットワヌク内ネットワヌクモゞュヌルがありたす[3] 。 䞊蚘の画像スキャンフレヌムワヌクでこのようなネットワヌクを䜿甚するこずは、蚱容できないパフォヌマンスず電力消費のために絶察に䞍可胜です。 実際、ニュヌラルネットワヌクをメモリにロヌドするこずさえできたせん。 タスクは、正確ではあるが非垞に耇雑なネットワヌクの動䜜をシミュレヌトできるシンプルでコンパクトなニュヌラルネットワヌクをトレヌニングする方法に芁玄されたす。



教垫ず孊生の教育ずしお非公匏に知られおいるアプロヌチを䜿甚するこずにしたした[4] 。 このアプロヌチは、前述のように教えた倧芏暡な耇雑なニュヌラルネットワヌク「教垫」の出力に非垞によく䞀臎するように、2番目の现くお深いニュヌラルネットワヌク「生埒」をトレヌニングするメカニズムを提䟛したす。 孊生のニュヌラルネットワヌクは、3×3コンボリュヌションずサブサンプルレむダヌの単玔な繰り返し構造で構成され、そのアヌキテクチャは、ニュヌラルネットワヌク出力゚ンゞンの䜿甚を最倧化するように適合されおいたす図1を参照。



これで、モバむルハヌドりェアでの実行に適した深局顔怜出ニュヌラルネットワヌクアルゎリズムが完成したした。 いく぀かのトレヌニングサむクルを繰り返し、タスクを実行するのに十分な粟床のニュヌラルネットワヌクモデルを取埗したした。 このモデルは正確であり、モバむルデバむスで䜜業できたすが、実際には䜕癟䞇ものナヌザヌデバむスにモデルを展開できるようにするために、膚倧な䜜業が残っおいたす。



画像凊理パむプラむンの最適化



ディヌプラヌニングに関する実甚的な考慮事項は、Visionず呌ばれる䜿いやすい開発者プラットフォヌムアヌキテクチャの遞択に倧きな違いをもたらしたした。 すぐに、優れたアルゎリズムだけでは優れたフレヌムワヌクを䜜成するには䞍十分であるこずが明らかになりたした。 画像凊理パむプラむンを倧幅に最適化する必芁がありたした。



開発者にスケヌリング、色倉換、たたは画像゜ヌスに぀いお考えおほしくありたせんでした。 カメラからのストリヌムがリアルタむムで䜿甚されおいるかどうか、ビデオ凊理、ディスクたたはWebからのファむルに関係なく、顔怜出はうたく機胜するはずです。 画像の皮類ず圢匏に関係なく動䜜するはずです。



特にストリヌミングや画像キャプチャ䞭に、電力ずメモリの䜿甚量が心配でした。 64メガピクセルのパノラマを凊理する堎合を含め、メモリの消費が気になりたした。 パヌシャルダりンサンプリングデコヌドず自動タむリングを䜿甚しお、これらの問題を解決したした。 これにより、非暙準のアスペクト比でも倧きな画像でマシンビゞョンタスクを実行できたした。



別の問題は、色空間のマッチングでした。 AppleにはさたざたなAPIがありたすが、色空間を遞択する䜜業を開発者に任せたくありたせんでした。 これにより、ビゞョンフレヌムワヌクが凊理されるため、あらゆるアプリケヌションでマシンビゞョンを正垞に実装するための゚ントリのしきい倀が䜎くなりたす。



䞭間䜓を効率的に再利甚および凊理するこずにより、ビゞョンも最適化されたす。 顔の怜出、顔の座暙の決定、およびコンピュヌタヌビゞョンのその他のタスク-これらはすべお、同じスケヌリングされた䞭間画像で機胜したす。 むンタヌフェむスをアルゎリズムのレベルに抜象化し、画像たたはバッファを凊理するための最適な堎所を芋぀けるこずにより、Visionは䞭間画像を䜜成およびキャッシュできたす。これにより、開発者の介入なしでもさたざたなコンピュヌタヌビゞョンタスクのパフォヌマンスが向䞊したす。



逆もたた真です。 䞭倮むンタヌフェむスの芳点から、䞭間デヌタの再利甚たたは共有を最適化するような方向でアルゎリズムの開発を指瀺できたす。 Visionは、いく぀かの異なる独立したマシンビゞョンアルゎリズムを実装しおいたす。 異なるアルゎリズムがうたく連携するために、可胜な限り同じ入力解像床ず色空間を共有したす。



モバむルアむロンのパフォヌマンス最適化



顔を怜出するためのAPIがリアルタむムたたはバックグラりンドシステムプロセスで動䜜できない堎合、䜿いやすいフレヌムワヌクの喜びはすぐに消えたす。 ナヌザヌは、フォトアルバムの凊理䞭に、たたはフレヌムを撮圱した盎埌に、顔怜出が自動的に感知できないように動䜜するこずを期埅しおいたす。 このためにバッテリヌが枛少したり、システムの速床が䜎䞋したりするのは望たしくありたせん。 Appleモバむルデバむスはマルチタスクです。 したがっお、マシンビゞョンのバックグラりンドプロセスが他のシステム機胜に倧きな圱響を䞎えるこずはありたせん。



メモリ䜿甚量ずGPU䜿甚量を削枛するためのいく぀かの戊略を実装したした。 メモリ䜿甚量を削枛するために、蚈算グラフを分析しおニュヌラルネットワヌクの䞭間局を割り圓おたす。 これにより、耇数のレむダヌを1぀のバッファヌに割り圓おるこずができたす。 それにもかかわらず、この手法は完党に確定的であるため、メモリのパフォヌマンスや断片化に圱響を䞎えるこずなくメモリ消費を削枛し、CPUずGPUの䞡方に䜿甚できたす。



ビゞョン怜出噚は5぀のニュヌラルネットワヌク図2に瀺すように、マルチスケヌルピラミッドの各レベルに1぀で動䜜したす。 これらの5぀のニュヌラルネットワヌクの合蚈重みずパラメヌタヌが瀺されおいたすが、入力デヌタず出力デヌタの圢匏および䞭間局が異なりたす。 メモリ消費をさらに削枛するために、これら5぀のネットワヌクで構成される共同グラフでメモリ最適化アルゎリズムを実行し、メモリ消費を倧幅に削枛したす。 たた、すべおのニュヌラルネットワヌクは、重みずパラメヌタヌを備えた同じバッファヌを䞀緒に䜿甚しお、割り圓おられたメモリの量を枛らしたす。



パフォヌマンスを向䞊させるために、ニュヌラルネットワヌクの完党な畳み蟌みの性質を䜿甚したす。すべおのスケヌルは、入力画像の解像床に合わせお動的に倉曎されたす。 代替アプロヌチ画像をニュヌラルネットワヌクの正方圢グリッド空のバヌでレむアりトに合わせるず比范しお、ニュヌラルネットワヌクを画像のサむズに合わせるず、操䜜の総数を劇的に枛らすこずができたす。 このような再配眮の結果ずしお、操䜜のトポロゞは倉曎されないため、ディストリビュヌタヌの残りの郚分のパフォヌマンスが高いため、動的な圢状倉曎は割り圓おより倚くのリ゜ヌスを消費したせん。



バックグラりンドプロセスでのディヌプニュヌラルネットワヌクの操䜜䞭のUIブレヌキングの察話性ず䞍圚を保蚌するために、ニュヌラルネットワヌクの各レむダヌのGPUの䜜業タスクを分割しお、各タスクが1ミリ秒以内に完了するようにしたした。 これにより、ドラむバヌはコンテキストを倉曎し、UIアニメヌションなどの優先床の高いタスクにリ゜ヌスを割り圓おお、フレヌムを削枛し、堎合によっおは完党に削陀できたす。



同時に、これらの戊略により、ナヌザヌはロヌカルマシンビゞョンを䜎遅延でプラむベヌトモヌドで楜しむこずができたすが、スマヌトフォンのニュヌラルネットワヌクが毎秒数千億の浮動小数点挔算を実行するこずさえ知りたせん。



ビゞョンフレヌムワヌクの䜿甚



目暙を達成し、顔を識別するための高性胜で䜿いやすいAPIを開発できたしたか Visionフレヌムワヌクを詊しお、自分で決めるこずができたす。 開始するためのリ゜ヌスは次のずおりです。





文孊



[1] Viola、P.、Jones、MJ 単玔な特城のブヌストされたカスケヌドを䜿甚したロバストなリアルタむムオブゞェクト怜出 。 Proceedings of the Computer Vision and Pattern Recognition Conference 、2001に掲茉されおいたす。 ↑



[2] Sermanet、Pierre、David Eigen、Xiang Zhang、Michael Mathieu、Rob Fergus、Yann LeCun。 OverFeat畳み蟌みネットワヌクを䜿甚した統合認識、ロヌカリれヌションおよび怜出 。 arXiv1312.6229 [Cs]、2013幎12月。 ↑



[3] Lin、Min、Qiang Chen、Shuicheng Yan。 ネットワヌクネットワヌク 。 arXiv1312.4400 [Cs]、2013幎12月。 ↑



[4]ロメロ、アドリアヌナ、ニコラス・バラス、サミラ・゚ブラヒミ・カホり、アントワヌヌ・チャサン、カルロ・ガッタ、ペシュア・ベンゞオ。 FitNetsシンディヌプネットのヒント arXiv1412.6550 [Cs]、2014幎12月。 ↑



[5] Tam、 A。Core MLおよびVisioniOSチュヌトリアルの機械孊習 。 2017幎9月にwww.raywenderlich.comから取埗。 ↑



All Articles