MATLABでWEBカメラから顔検出するサンプルを動かしてパソコンを検討した

MATLABでWEBカメラから顔検出するサンプルを動かしてパソコンを検討した

matlabのリアルタイム顔検出

「MATLABでWEBカメラから顔検出して追尾するのに、どんなパソコンが必要なのか?」

ここでは、MATLABでWEBカメラから画像を取得して顔検出して追尾するサンプルを動かして 一般的なスペックのパソコンでストレスなく動くかを確認しています。

私がMATLABを導入するにあたって、 リアルタイムで画像処理をすることも検討していました。 導入前に今あるパソコンでしっかり動くかどうかを確かめる必要があり、 その時の記録をここで残しています。

ちなみにサンプルを動かしてみたパソコンはこんなスペックです。

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

この試したノートパソコンにはWEBカメラも付いています。 1280x720サイズでビデオストリーミングができます。

というわけで、見ていきたいと思います。

目次

どんなサンプルを動かしてみた?

今回試してみたMATLABのサンプルは、 MathWorks公式サイトにある「ライブビデオ取得を使用した顔の検出と追跡」になります。

「ライブビデオ取得を使用した顔の検出と追跡」・ MathWorks

どんなサンプルか?というと、 WEBカメラから画像を取得してその画像から顔検出して 顔を追跡するプログラムです。

顔の検出は「KLTアルゴリズム」を使って検出します。 検出した顔画像から特徴点を取り出して、 その特徴点を追尾していくというサンプルです。

ちなみにこのサンプルは、 「Computer Vision Toolbox」と WEBカメラを認識するのに「サポートパッケージ」が必要です。

基本的には検出と追尾の二つのモードで動いています。

1つ目は、顔検出をするモードです。

matlabの顔検出

WEBカメラから画像を一枚取得して、 グレースケール画像にしたものから顔検出をしていきます。 特徴点が10個以上検出できるまで顔を探し続けます。

黄色い視覚で囲った部分が顔検出した部分です。

2つ目は、追跡するモードです。

matlabの顔検出

特徴点が10個以上あれば追跡し続けます。 上の画像でいうと、黄緑の無数にある点が特徴点になります。

例えば、顔を検出して追尾していても、 カメラの画面外に一度出たりすると、再度検出モードに入ります。

横を向いたりして、 顔の特徴点が10個未満になったりしても、 検出モードに戻ります。

400フレーム以上処理するか、 カメラがオフになった場合にプログラムが終了します。

このサンプルを動かしていて少し気になったのは、 照明条件で顔認識率がかなり違うことです。

暗めの部屋でWEBカメラ撮影をしていると、 全く顔を認識してくれません。

できれば周りを明るくして、 さらに照明による濃淡をできるだけなくすことで、 認識率を上げてくれます。

リアルタイムで顔検出と追尾をしてどうだったか?

画像のリアルタイム処理をするプログラムなので、 やはり高速に処理できるパソコンが必要だと思い知らされました。

特に「顔を検出するモード」はかなり厳しいです。 顔検出処理をしているときは、パソコンの画面がカクカクした動きになったり、 コマ飛びしたりして映像表示が追いつきません。

一方「追跡モード」の方は、 一般的なパソコンのスペックでもスムーズに処理できています。

カクカクしたり、結果画像の表示が飛んでしまうこともほぼありません。 追尾の処理は比較的軽いのでしょう。

一度顔の検出ができれば、 追尾は特に問題ないですが、再び顔検出に入るとまたカクカクし出す…そんなことを繰り返します。

matlabのWEBカメラからの顔検出

メモリの使用量も6GBを超える時もあり、 MATLAB以外のアプリケーションはすべて閉じておかないといけません。

どんなパソコンがいいか検討してみた

サンプルをじっさいに動かしてみてわかったのは、 やはり「リアルタイムで画像処理を行うにはハイスペックのパソコンが必須」 ということです。

特に顔検出をする処理はCPUの性能がものをいいます。 リアルタイムで画像の描画も行わなければいけないので、 グラフィックスも専用グラフィックスが必須だと感じています。

つまり、必要最低限こんな感じのスペックのパソコンが必須になります。

  • CPU:Core i5以上
  • メモリ:16GB以上
  • ストレージ:SSD 256GB以上
  • グラフィックス:NVIDIA GeForceまたはQuadro [4GB以上]

20万以上の予算があるならば、 ワークステーションがおすすめですね。

CPUはXeonやCorei7だとリアルタイム処理は 安定して行えると考えています。

まとめ

今回のまとめです。

Computer Vision Toolboxを使って リアルタイム画像処理をする場合は、 ハイスペックのパソコンが必須になる。

画像をリアルタイムに高速描画するには、 nVIDIAやAMDなどの専用グラフィックスが必須になる。

CPUの性能がいいほどリアルタイム処理に向いている。 予算があればワークステーションがおすすめ。

という感じです。

最後に・・・

MATLABパソコンを探しているという向けに おすすめのMATLABパソコンも紹介しています。

よければそちらものぞいてみてください。

厳選!おすすめMATLABパソコン10選

関連記事

MATLABの入門サンプルを動かしてパソコンを検討した

MATLABでディープラーニングのサンプルを動かしてパソコンを検討した

MATLABで動画ファイルから顔検出するサンプルを動かしてパソコンを検討した

MATLABで医療CT画像三次元化のサンプルを動かしてパソコンを検討した

MATLABの最適化計算をしてどんなパソコンがいいかを検討した

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