Apple は本日、夏に開設した Machine Learning Journal ブログに新しい投稿を掲載しました。
「顔検出用のデバイス内ディープ ニューラル ネットワーク」と題された最新のブログ投稿では、Apple のカスタム ビルドの CPU と GPU のパワーを活用して、写真内の顔を認識するというリソースを大量に消費するプロセスを詳細に説明しています。
Appleは、ユーザーのプライバシー保護を強く重視しているため、クラウドのパワーをコンピュータービジョンの計算に利用できないことを認めています。さらに、iCloudフォトライブラリに送信されるすべての写真と動画は、iCloudに送信される前にデバイス上で暗号化され、iCloudアカウントに登録されているデバイスでのみ復号化できます。
ディープラーニング アルゴリズムを iPhone で実行する際に直面した課題の一部は次のとおりです。
ディープラーニングモデルはOSの一部として配布される必要があり、貴重なNANDストレージ容量を消費します。また、RAMへのロードも必要となるため、GPUやCPUでかなりの計算時間を必要とします。クラウドベースのサービスではリソースを視覚処理にのみ割り当てることができますが、デバイス上での計算は、これらのシステムリソースを他の実行中のアプリケーションと共有しながら実行されなければなりません。
最も重要なのは、計算が、電力消費や発熱を大幅に増加させることなく、比較的短時間で大規模なフォトライブラリを処理できるほど効率的である必要があることです。
ヒント: iPhoneやiPadに人の顔を認識させる
これらの課題を克服するために、AppleはBNNSとMetalを活用し、iOSデバイスに搭載されている自社設計のGPUとCPUのパワーを最大限に引き出しています。iOSのメジャーバージョンにアップグレードすると、このデバイス内顔検出機能が実際に機能していることを実感できます。
これにより、通常、iOS はフォトライブラリ全体を再スキャンし、すべての写真に対して顔検出アルゴリズムを最初から実行します。これにより、フォトがライブラリのスキャンを完了するまで、デバイスが過熱したり、速度が低下したりする可能性があります。
AppleはiOS 10で顔検出にディープラーニングを使い始めました。
iOS 11 で新しい Vision フレームワークがリリースされたことにより、開発者はこのテクノロジーと他の多くのコンピューター ビジョン アルゴリズムをアプリで使用できるようになりました。
Appleは、ユーザーのプライバシーを保護し、デバイス上でフレームワークを効率的に実行できるようにするためのVisionフレームワークの開発において「大きな課題」に直面したと述べている。