顔認識を高速化するグレースケール化リサイズ(画面縮小)グレースケール化+リサイズ(画面縮小)まとめ普通に顔認識まずは普通に顔認識を行なっていきます。終了処理cap.release()cv2.destroyAllWindows()かなり速度が遅いので、100カウント分のデータを取ることにします。実際に算出した平均値のデータは、「51.94ms」となりました。second(ミリ秒)」のことです。顔認識を高速化するそれでは顔認識を高速化していきます。顔認識を高速化するポイントは2点あります。グレースケール化まずはグレースケール化です。これはつまり、色の情報を「R・G・B」の3つのチャンネルから「明るさ(0〜255)」のみに変えることです。することにより、処理する情報の量が減って速度向上に繋がります。終了処理cap.release()cv2.destroyAllWindows()こちらの平均値は「50.41ms」となりました。先ほどと比べると、若干速くなりました。リサイズ(画面縮小)次は、画面サイズを縮小して、そもそも(顔認識の)調べる範囲を小さくすることで速度向上を図ります。今回は縦・横それぞれを「\(\displaystyle\frac{1}{2}\)」にします。実際に調べる範囲は「\(\displaystyle\frac{1}{4}\)」となります。終了処理cap.release()cv2.destroyAllWindows()ここで注意する点は、「\(\displaystyle\frac{1}{4}\)」サイズに変換された画面を調べているという点ですつまり実際に顔があったとされる座標は、リサイズされた画面での座標なので、矩形を描画する際に縮小前の座標に戻してあげる必要があります。今回は縦・横をそれぞれ「\(\displaystyle\frac{1}{2}\)」にしたので、2倍にしてあげる必要があります。リサイズで顔認識をした結果、平均値は「28.93ms」と、格段に速くなりました。グレースケール化+リサイズ(画面縮小)最後に、この2点を同時に行なっていきます。終了処理cap.release()cv2.destroyAllWindows()平均値は「26.18ms」となり、リサイズ単体より少し速くなりました。26.18ms以上が今回の測定結果となります。※各環境のパフォーマンスに大きく依存するため、この値に絶対に近くなるとは限りません。LINEIT系だんしをフォローするIT系だんし関連記事Python【OpenCV】ルックアップテーブルを用いた階調変換【Python】この記事では、ルックアップテーブルを用いた画像処理をいくつか紹介していきます。2つの画像はフリー画像ですので、ご自由にダウンロードしてください。今回はこの2つの画像を使用します。上記の画像では、特定の画素とその周りの8つの画素との画素値の差が示されています。上記の微分オペレータと呼ばれるものを、各画素に掛けていき、計算された値を合計し、絶対値をPython【OpenCV】マスク処理を使って、画像を重ね合わせる【Python】マスク処理を行えば、画像を重ね合わせることができます。この2つの画像を重ね合わせます。すると、このように合成されます。これがマスク処理です。様々な画像処理の中に、擬似濃淡変換(以下ディザリング)というものがあります。このディザリングは2値を扱うという特徴があり、「0」と「255」の2つの値しか扱いません。ヒストグラムは、画像内の画素値の度数分布を表したもので、画像の大まかな特徴や偏りを調べるためのものです。コメントをキャンセルメールアドレスが公開されることはありません。R1カテゴリーJavaJavaFXJavaScriptPythonRこのサイトの管理人IT系だんしプログラミングが大好きな人。趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。