顔検出してみた

動画から顔検出するプログラムを動かしてみてパソコンを検討した

MATLABのサンプルを動かしてみた

matlabの顔検出

MATLABの顔検出をするサンプルがあったので、 それを動かしてみてパソコンがストレスなく動くかを見てみました。

KLTアルゴリズムを使った顔検出のサンプルです。

「KLT アルゴリズムを使用した顔の検出と追跡」・ MathWorks

すでに持っているパソコンは、 以下のスペックです。

CPU:Corei5 1.6GHz
メモリ:8GB
グラフィックス:Intel UHD Graphics620
ストレージ:SSD 500GB

安すぎないけど、高スペックでもない支給されたパソコンで、 プログラミン作業ができるのかが知りたかったわけです。

どんな処理のプログラムか?

流れとしては、 ビデオファイルを読み込んで、 映像の中の顔を検出して、特徴点を算出します。

その特徴点を追尾していき、 顔を追尾するようなプログラムです。

ちなみに、MathWorksの顔検出サンプルは、 640x480のaviファイルを読んでいますが、 実運用ではもう少し大きな映像を読み込むので、1280x720のmp4ファイルを用意しました。

読み込む部分を書き換えました。

単純に、ファイル名を変更しただけです。 MATLABのビデオリーダーは優秀です。


videoReader = VideoReader('myface.mp4');

一フレーム読み込んで、まずは顔を検出します。 検出した顔部分は、黄色で塗りつぶしています。 おっさんの顔なんて見たくないですからね。

matlabの顔検出

次に、検出した顔から、特徴点を検出します。

matlabの顔検出

緑の点が顔の特徴点ですね。 眼鏡つけてるのがわかりますね。

この特徴点を、 2フレーム目以降の画像から追尾して、顔を追跡していきます。

すべてのフレームを追尾していきます。 追尾しながら動画が再生されている感じです。

matlabの顔検出

で、パソコンの処理はどうだったか?

1280x720の30Hzぐらいであれば、 かなり高速に処理してくれます。

なんの問題もないです。 ほぼリアルタイム再生です。

MATLAB速いですね!! 1280x720くらいであれば、GPUが付かなくても実用に耐えられます。

ちなみに、 1920x1080と、2560x1440の映像を顔検出してみましたが・・・。

matlabの顔検出

WEBで探したフリー素材を使いました。 正直、かなり重いです。 少し、カクカクしています。

正直言うと、 1920x1080以上の映像を扱うには、かなり高スペックのパソコンが必要です。

まとめ

1280x720の動画から顔検出して、 その結果を動画表示するくらいであれば、 高スペックのパソコンではなくても問題ありませんでした。

1920x1080以上の映像を処理するのであれば、 かなり高スペックのパソコンが必要です。

Copyright (C) MATLABパソコンのおすすめスペック. All Rights Reserved.