画像解析はやっぱり CUDA ! 顔認証もサクサク!

はじめに
Face01 シリーズは GPU の使用を前提としております。画像解析では Nvidia 製グラフィックカードがデファクトスタンダードとなっています。計算資源が CPU のみの場合、次のような対策をしております。
- Face01 Graphics
引数「frame_skip」を指定することでフレームをスキップして計算量を削減します - Face01 Imager
通常処理の時は HOG を使用し HOG で顔を検出できない場合のみ CNN を用います
これら対策の副作用として「カクつく」、「遅い」などが出てきます。
今回は
- CUDA & AVX 環境
- AVX のみの環境
の両方について比較動画を作りました。
これらは「どちらが優れているか」ではなく、求める形によって対応する環境を作ってくださいね、という事です。
検証環境
- CUDA & AVX 環境
Ubuntu 18.04.4
Python 3.6.9
Linux 4.15.0-66-generic
AMD Ryzen 5 1400
MemTotal 16GB
GeForce GTX 1660ti - AVX 環境
Windows 10 Pro 64bit
Python 3.7.7
Intel Core i5-2520M
MemTotal 4GB
CPU内蔵 Intel HD Graphics 4000
検証結果
検証の様子を動画にまとめました。
(※注意:音が出ます。)
検証まとめ
AVX のみの環境と CUDA を使った環境では動作の滑らかさが全く違うことがみてとれます。
ただしこれは CUDA あるなしとは関係なく、Intel Core i5-2520M の性能の低さも起因しています。
AVX を試した ThinkPad L430 の性能の低さ

エンコード時点で既に CPU 使用率が 100% になっています。(上図赤枠)
2011 年に登場した Core i5-2520M はパスマークで上図のようになっています。
およそ 10 年前の登場ですし元々モバイル用ですから性能は推して知るべし…です。
検証用としてはもう少し新しいモデルを用意できれば良かったと思います。
CUDA & AVX 検証用マシンの性能
こちらもそんなに性能が良いわけではなく、 AMD Ryzen 5 1400 ですのでとりたてて性能が良いわけではありません。


CPU 使用率は上の図から見る限りある程度余裕がある感じです。メモリにも余裕が有ります。GPU 使用率は 20% 前後をキープしていました。
以上です。 最後までお読みいただきありがとうございました。