AI coordinator

人工知能 & ロボティクス

© AI coordinator All rights reserved.

20176/3

簡単にできるOpenCVを使った顔検出

画像からの顔検出は意外と簡単

以前から画像に写っている顔の検出ができたら良いなぁって思っていましたが、そう簡単ではないイメージを持っていました。

ただ、最近になってちょっと調べてみたら、案外簡単にできそうだということが分かったので挑戦してみました。

そしてビックリするほどあっさりできたので、その内容を紹介します。

 

OpenCVを使えばあっさり画像からの顔検出ができますので、興味がある方はぜひやってみてください。

 

テスト環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

opencv3 3.1.0

 

顔検出に挑戦

それでは早速、画像からの顔検出に挑戦したいと思います。

今回使用する画像は以下の画像です。

 

適当にネットから拝借してきた新垣結衣さんの画像を使ってみたいと思います。

ソースコードは本当に少なくてすみます。

OpenCVには初めから顔検出ができるカスケードファイルが準備されています。

顔検出をしたい場合は、「haarcascade_frontalface_alt.xml」を指定しください。(ソースコードの真ん中あたり)

顔と検出した部分を赤枠で囲み、ファイル出力するようにしています。

 

実行はjupyter notebookで実行して頂ければ、入力前の画像と出力画像をjupyter notebook上に表示できるようにしています。

 

それでは早速実行しみましょう。

実行すると以下のような結果が表示されます。

 

しっかりと顔を検出できました。

画像が小さすぎる場合、上記ソースコードそのままでは検出しないことがあります。

その場合は、minSize(100,100)部分の数字を小さくしてください。

これは100ピクセル以下の画像は検出させないという指定になっています。

 

今度は別のカスケードファイルを使ってみましょう。

目を検出するカスケードファイルを使ってみると以下のような画像になりました。

minSize = (10,10)で実行しています。

なんだが目以外の画像も目と検出しているようです。

この辺の精度はあまり高くなさそうですね。

 

いずれにせよ、OpenCVを使用すれば簡単に画像からの物体検出ができるようです。

この技術を使えば色々なことに使用できそうですね。

ぜひお試しあれ。

 


その他の物体検出記事はこちらから

 

それではまた。

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

20176/15

anacondaの使い方メモ

anacondaの使い方 忘れないようにanacondaの使い方を自分用にメモします。 よく使うコマンド anac…

20176/6

大量の画像から顔の部分のみトリミングして保存する方法

OpenCVを使った顔抽出 前回の記事で、OpenCVを使った顔認識を紹介しました。 今回は大量の画像から顔の部分だけをトリミングし…

20173/11

Pepperコントローラー for Python

PythonでPepperコントローラーを作成 Pepperを簡単に動かせるPepper用コントローラーをPythonで作成してみましょう…

20178/8

動体撮影に特化した監視カメラの作成方法

動く物体を検知して写真撮影をする監視カメラ OpenCVを使えば動体撮影に特化した監視カメラを作成することができるのではないかと考え、実装…

20177/22

Pepperのカメラ映像からリアルタイムで物体検出する方法

Pepperのカメラからリアルタイムに物体検出してみる 以前からチャレンジしてみたかったPepperに搭載されているカメラ映像からの物体検…

映像物体検出(SSD_Keras)を簡単に実装する方法 for maxOS

簡単に映像物体検出を試す方法 以前の記事で、ubuntuを使った映像検出を紹介しましたが、OpenCVの環境構築等に結構戸惑ったので、もっ…

20176/5

Pepper SDK pynaoqi-python2.7-2.5.5.5-mac64 パスの通し方 for MAC

Pepper SDK 2.5.5.5 コレグラフの新しいバージョン2.5.5.5に対応したpython SDKのパスの通し方に付いて説明し…

Watson VisualRecognition を Python GUIで使ってみよう

Watson API 「VisualRecognition」をPythonで使ってみよう Watson API「VisualRecogni…

Watson NLCに学習データを投入できるGUIの開発方法

Watson NLCに学習データを投入できる画面をPythonで実装する方法 Watson NLCに学習データを投入できる簡単な画面を開発…

Watosn Speech to Text をPythonで使ってみよう

Watson APIのSpeech to TextをPythonで実装してみましょう WatsonのSpeech to textを使用する…

ページ上部へ戻る