この記事では、顔認証用のワークステーションを構築する上で考慮すべき事項についてご案内します。
ワークステーションは、一般的なPCよりもはるかに高性能なコンピューターです。主に業務用途で使用され、一度に多くの処理を実行することができます。
技術的にいえば、ワークステーションは、ハイエンドのx86 Intel CPU(Core iシリーズまたはXeon)、AMD CPU、NVIDIA GPUなどのハードウェアで構成されています。多くの場合、OSにはLinuxまたはWindowsが使用されます。このような高性能な構成は、単一のワークステーションで複数のビデオ映像に対して同時に顔認証を行うような用途に適しています。
顔認証用のワークステーションは、様々な業界で使用されています。複数のビデオ映像から複数の顔を識別するような用途、例えば施設内のすべてのIPカメラが接続されているセキュリティシステムなどが代表的な使用例です。また多くの場合、ワークステーション上では顔認証以外のアプリケーションも同時に実行する必要があります。ワークステーションがどのように使用されているかを知るために、いくつかの例をご紹介します。
あらゆる施設において、セキュリティは最も重視される事項の一つです。発電所、公共交通機関、商業施設、工場、学校など、個人の安全の確保と、資産の保護が必要とされる施設は数多く存在します。顔認証用のワークステーションは、これらの施設でのセキュリティ用途で大きな役割を果たしています。施設のサーバールームに設置されたワークステーションは、施設全体に設置された多数のセキュリティカメラやスマートデバイスと接続され、顔認証によるセキュリティ管理を実行しています。
例えば、スマートロック、防犯カメラ、セルフサービス端末などのエッジデバイスで検出された顔を、各デバイスに接続されたワークステーションで識別することができます。これらのエッジデバイスよりもはるかに強力な処理能力を持つワークステーション側で顔認証を実行することにより、エッジデバイス側の負荷を大幅に減らすことができます。
クラウドまたはデータセンターにあるサーバーに顔認証を実装して、モバイルアプリやWebアプリ向けにサービスを提供することができます。こういった用途の場合、数千、数万単位のエンドユーザーデバイスから送られてくるデータを処理しなければなりません。
使用例として、顔認証によるログインに対応したモバイルバンキングアプリがあります。ユーザーがアプリにログインする際、デバイス側で顔の特徴点が抽出され、特徴点の情報を暗号化した小容量のファイルが作成されます。このファイルがサーバーに送信され、ユーザーの本人認証が行われます。認証が完了しユーザー本人であると確認されると、ユーザーはアプリを使用して取引を行うことができるようになります。
もう一つの使用例は、Webアプリケーションによる車や自転車、バイクのレンタルサービスです。車を借りようとしているユーザーは、サービスのWebサイトにアクセスして希望の車を選択し、次に情報を手動で入力する代わりに、Webカメラで顔を撮影します。顔の特徴点を抽出し、暗号化されたデータがサーバーに送信され、本人認証が行われます。ユーザーが登録メンバーであり、有効な運転免許証を所持していることが確認されると、予約が完了します。これらの認証プロセスを数秒の間に完了することができます。
ワークステーションの一般的な導入方法として、オンプレミス構築とクラウド構築の2種類があります。それぞれのケースにおいて考慮すべき要素について詳しくご案内します。
セキュリティ用に使用されるワークステーションは、イントラネット(組織内ネットワーク)を介してデバイスに直接接続できるよう、オンプレミスで導入するのが最適です。こういった環境では、建物、工場、キャンパスといった施設で顔認証を実行する数十から数百台のカメラが存在し、それらすべてがワークステーションとの通信を行っています。これらの画像やビデオなどを含む通信をすべてイントラネット内で完結できるため、情報セキュリティの面で有利です。
イントラネットの使用は、情報セキュリティ面に加えて、ワークステーションのパフォーマンス面でもメリットがあります。多くの防犯カメラは1080pビデオの撮影に対応していますが、ビデオストリームの転送には約2~8Mbpsの帯域幅が必要になります。高速なイントラネットは、このような高帯域幅の要件を満たすことが可能です。
適切に設計されたオンプレミスワークステーションは、大量のビデオストリームをリアルタイムでデコードすることができます。この性能は、最も重視すべき要素の1つです。防犯カメラは、ビデオストリームをH.264(AVC)またはH.265(HEVC)コーデックでエンコードして送信します。ワークステーション側ではこれらの圧縮されたビデオストリームをビデオバッファにデコードします。ワークステーションにGPUを追加することで、この膨大なビデオストリームをリアルタイムでデコードすることが可能になります。特にNVIDIAのGPUは、AIアルゴリズムを高速化することで、ビデオストリームのデコードを高速に行うことのできる大変優れたパフォーマンスを備えています。
オンプレミスの代わりに、ワークステーションをクラウドまたはデータセンターに導入することもできます。クラウドへの導入には、パブリッククラウド、プライベートクラウド、またはその2つを組み合わせたハイブリッドという形態が存在します。オンプレミスの導入では社内でホストされるのに対し、クラウドへ導入した場合はサードパーティープロバイダーによってホストされます。このため、クラウドにおけるワークステーションの管理には、エンドユーザー側の労力をあまり必要としません。また、企業は規模に応じて構成を柔軟にスケールアップまたはスケールダウンすることができます。一方で、クラウドにおける情報セキュリティ上のリスクは、オンプレミスと比べ大きくなる可能性があります。企業がデータセンターにスペースを借りて、独自のサーバーまたはワークステーションを設置する場合のリスクは限定的ですが、共有マシン上で仮想的に処理を実行する場合、データが第三者によって管理されるため、意図しない情報流出などのリスクが高まる可能性があります。
サーバーがクラウドに導入される最も一般的な用途として、スマートフォンなどのモバイルデバイスを使用する用途において、顔認証のために画像やビデオが送信される場合などがあります。
もっとも一般的な2つの構成として、ワークステーショングレードとサーバーグレードが存在します。それぞれの詳細についてご案内します。
数十~数百台単位のカメラを使用する代表的なオンプレミスでの導入には、ワークステーショングレードの構成が最適です。
ワークステーション:Intel Core i, Xeon CPU, AMD サーバークラス CPU + NVIDIA Quadro GPU
複数チャンネルの防犯カメラからのビデオストリームに対して、顔認証やその他のAIビジョンアルゴリズムを実行するのに適した構成の例です。SupermicroTMなどのベンダーが、こういった構成のワークステーションを製造しています。これらは通常、1台あたり4つのGPUカードを搭載し、FaceMe®などの最適化された顔認証アルゴリズムを使用した場合、数百のビデオチャンネルを同時に処理することができます。
最適なパフォーマンスを得るためには、Quadro RTX 6000/8000などのQuadro GPUシリーズ、または新たにリリースされたNVIDIA RTX A6000などを使用するのがおすすめです。予算上の制約がある場合は、Quadro RTX 5000などがより手頃なソリューションとなりますが、上位モデルと比べてパフォーマンスはやや劣ります。Quadro RTX 6000と8000は、顔認証においてほぼ同等のパフォーマンスを発揮します。FaceMe®のVHモデルでテストした場合、どちらも1秒あたり340フレームを処理する事が可能です。一方で、Quadro RTX 5000は1秒あたり220フレームを処理できます。最高のパフォーマンスを発揮したのはRTX A6000で、これらのGPUを上回る1秒あたり410フレームの処理を記録しています。
他の選択肢として、RTX 3090などのGeForceシリーズGPUがあります。これらは比較的低コストで高性能を発揮しますが、通常24時間365日の連続稼働をサポートするようには設計されておらず、製品の保証期間も1年間に限られます。こうした理由により、ワークステーションにはQuadro シリーズGPUが適しています。Quadro シリーズGPUカードフレームワークはワークステーション向けに最適化されており、ファンによって温度を自動で制御することができ、スマートオフィスから工場、商業施設まで、様々な施設に容易に導入できる柔軟性を備えています。
ワークステーションをデータセンターまたはクラウドに展開し、数百~数百万単位のデバイスからの顔認証要求を処理できるようにする場合は、サーバーグレードの構成が必要になります。
サーバー:CPU + ファンレスGPU
サーバーグレード構成のワークステーションは通常、温度と湿度が制御されたデータセンターやサーバールームに設置されます。多くのGPUには、重い負荷に対して高いパフォーマンスを維持するための冷却用ファンが搭載されていますが、Tesla V100やT4などのカードは完全にファンレスで、ヒートシンクが使用されています。データセンターやサーバールームの環境では、こういったGPUが適切な温度で動作するよう、良好なエアフローが提供されているので、ファンレスGPUが最適です。
私たちがおすすめするシステムとしては、iEi HTB-200-C236やAdvantech MIC-770システムなどがあります。どちらもファンレスでヒートシンクを使用したNVIDIA T4などに対応するよう、エアフローに配慮して設計されているため、GPUがフル負荷で動作している間も、温度は適切に制御されます。NVIDIA認定サーバーの詳細については、NVIDIAの認定サーバーカタログをご覧ください。
顔認証を実行するために必要なサーバーとGPUの数は、ピーク時に必要な1秒当たりの処理数によって決まってきます。1日のアクティブユーザー数や顔認証の頻度など、判断の元となる情報を十分に考慮する必要があります。FaceMe® のVHモデルを使用したテストでは、GPU温度が適切に制御されたNVIDIA T4を使用して、1秒あたり192フレームの顔認証に対応する事が可能となります。
サーバーに必要とされる処理能力を節約するためには、負荷をサーバーからエッジに移行することをおすすめします。例えば、エッジ側で顔検出を実行し、サーバー側で顔認証を実行することで、サーバー側では顔を含む画像フレームのみを処理するだけで済むので、それだけサーバーの負荷が削減できます。また、顔検出、顔の特徴点の抽出、およびエッジでのなりすまし防止対策を、ハイエンドのスマートフォン(Snapdragonを使用するAndroidデバイスなど)で完全に処理することもできます。この場合、サーバー側で行う必要のある処理は、ローエンドからミドルエンドのスマートフォン(旧型のiPhoneなど)からのものに限られるので、より負荷を減らすことができます。
上記のように、サーバー構成と用途に最適な構成を検討する際は、サーバーとエッジの両方の展開をサポートする顔認証アルゴリズムを選択肢に入れる必要があります。
顔認証 総合ガイド 2022で概説されている通り、GPU(またはVPU)を搭載した高性能ワークステーションまたはPCで動作する、優れた顔認証システムを設計するのは決して簡単ではありません。こういったプラットフォームにおいては、システムバスを介してCPU、GPU、メモリ間で多数のビデオストリームが同時に処理されているため、システムアーキテクチャレベルで適切な実装がなされていない場合、非常に優れた顔認証アルゴリズムであっても動作速度は低下する場合があります。システムアーキテクチャの設計では、CPU、GPU、メモリ間のデータフローを最小限に抑える必要があります。
FaceMe®は最高のパフォーマンスを提供するために、システムアーキテクチャの最適化を重ねてきました。例えば、1台のワークステーションにおいて、FaceMe® はNVIDIA RTX A6000を使用して1秒あたり340~410フレームを処理できます(使用しているFaceMe® 顔認証モデルによって異なります)。これは、GPUごとに25~41のビデオチャンネル(それぞれ毎秒10フレーム)を処理できることを意味しており、非常に優れたパフォーマンスを発揮しています。次の表は、主なGPUにおいて、FaceMe® の最新の顔認証モデルでテストを行った際のパフォーマンスを示しています。
* 画像解像度1080p、1枚の画像に1つの顔を含む。
サーバーとワークステーションで使用される最も一般的なOSは、LinuxとWindowsです。どちらにもそれぞれ長所と短所があるため、どちらが適切かを判断する前に十分に検討する必要があります。最初に確認すべき項目の一つは、使用する予定のアプリケーションまたはSDKです。FaceMe®などの優れた顔認証アルゴリズムはLinuxとWindowsの両方をサポートし、それぞれのOSで同等の機能とパフォーマンスを提供します。これによって、プラットフォームを検討および管理する際の柔軟性が大幅に向上します。それぞれのOSの特徴について詳しくみていきましょう。
Linuxは、サーバーグレード構成で最もよく使用されるOSです。一般的にライセンス料が不要なため、人気を博しています。オープンソースで、信頼性が高く、安定性があり24時間365日連続して運用できます。Linuxは制御と管理も簡単であるため、強くお勧めできる選択肢です。
Linuxのディストリビューションの中では、Ubuntuが最もポピュラーで、DebianとRed Hatがこれに続いています。Ubuntuは、コンテナでアプリケーションプロセスを簡単に管理できるDockerを使用できるため、非常に人気があります。
Windowsは最も一般的なデスクトップOSです。多くの企業のITチームは、LinuxよりもWindowsにはるかに精通しているため、そのような場面ではWindowsを実行するサーバーを選択することをおすすめします。さらに、システムでExchange、Microsoft SQL、Active Directoryなどの他のMicrosoftアプリケーションを使用する必要がある場合は、OSの一貫性を保つことで、サーバー上のすべてのアプリケーションコンポーネントの作成、開発、および保守が容易になります。
顔認証用途に最適なワークステーションを構築する際には、いくつか考慮すべき事項があります。様々な選択肢を評価する場合、最も重要なことは、用途と必要とされるパフォーマンス、およびワークステーションをオンプレミスまたはクラウドのどちらに導入するかを理解することです。
適切な構成のワークステーションを構築できたら、アプリケーションを導入して実際に使用し始める前に、実証実験(POC)を実施することをおすすめします。実証実験によって、本稼働の前に改善する必要がある点を洗い出し、調整することができます。
顔認証の概要、その仕組み、および導入方法については、エッジデバイスによる顔認証をご覧ください.
2022年に顔認証がどのように使用されているかについては、「2022年における顔認証の展望」を参照してください。