raspberrypi/OpenCVを使って顔認識しました
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2013/01/13からのアクセス回数 &counter;
Debian系のRasbianは豊富なLinuxパッケージを揃えています。...
動画に対して使ってみました。
今回使用したWebカメラは、[[ELECOM Webカメラ 130万画素 マ...
&ref(WebCam.png);
RaspberryPiの良いところは、WebカメラやUSB-Wifiと言った高...
** OpenCVのインストール [#j4798715]
OpenCVのインストールは至って簡単です。
Terminalから以下のコマンドを入力します。
#pre{{
$ sudo apt-get install libopencv-dev
}}
** テスト用のプログラムの作成 [#f3472834]
今回は、詳解OpenCVの2章の例題2を拡張し、顔認識をフレー...
ソースは以下の通りです。
#pre{{
#include "highgui.h"
#include "cv.h"
int main( int argc, char** argv ) {
char* cascade = "/usr/share/opencv/haarcascades/haarc...
double w = 160;
double h = 120;
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = NULL;
if (argc > 1){
capture = cvCreateFileCapture( argv[1] );
}
else {
capture = cvCreateCameraCapture( 0 );
// (2)キャプチャサイズを設定する.
cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_...
cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_...
}
IplImage* frame;
// 正面顔検出器の読み込み
CvHaarClassifierCascade* cvHCC = (CvHaarClassifierCas...
// 検出に必要なメモリストレージを用意する
CvMemStorage* cvMStr = cvCreateMemStorage(0);
// 検出情報を受け取るためのシーケンスを用意する
CvSeq* face;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
// 画像中から検出対象の情報を取得する
face = cvHaarDetectObjects(frame, cvHCC, cvMStr);
for (int i = 0; i < face->total; i++) {
// 検出情報から顔の位置情報を取得
CvRect* faceRect = (CvRect*)cvGetSeqElem(face...
// 取得した顔の位置情報に基づき、矩形描画を行う
cvRectangle(frame,
cvPoint(faceRect->x, faceRect->y),
cvPoint(faceRect->x + faceRect->w...
CV_RGB(255, 0 ,0),
2, CV_AA);
}
cvShowImage( "Example2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
// 用意したメモリストレージを解放
cvReleaseMemStorage(&cvMStr);
// カスケード識別器の解放
cvReleaseHaarClassifierCascade(&cvHCC);
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );
}
}}
Makefileも簡単です。((ysatoさま、methodistさまのご指摘で...
#pre{{
CXX = g++
LDFLAGS = -lopencv_legacy -lopencv_highgui -lopencv_core ...
-lopencv_imgproc -lopencv_calib3d -lopencv_objdetect -L/u...
CPPFLAGS = -g -I/usr/include/opencv -I/usr/include/opencv2
all: facedetect
}}
** 動かしてみる [#lee3dc8a]
以下のコマンドで顔認識(facedetect)を起動します。
#pre{{
$ ./facedetect
}}
以下のような画面にカメラの画像が表示され、顔を認識すると...
&ref(Myface.png);
処理速度的には、1秒間に1〜2コマ程度表示され、タイムラ...
しかし、玄関の人の検出等面白い応用ができると思います。
** コメント [#p704e025]
#vote(おもしろかった[185],そうでもない[7],わかりずらい[44])
皆様のご意見、ご希望をお待ちしております。
- 「詳解OpenCV」 は本ですか?このブログのどこに載っている...
- ysatoさま、オライリーの本です。http://www.oreilly.co.jp...
- Makefile からソースファイル名は facedetect.cpp と推測し...
- Makefile の理解が深まり ./facedetect を入力して動きま...
- ysatoさま、ご報告ありがとうございます。説明に./facedete...
- captureimage.cppはどちらに有りますでしょうか?オライリ...
- methodistさん、すみません。captureimage.cppは別のプロジ...
- お返事ありがとうございます。てっきり、画像の保存にcaptu...
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2013/01/13からのアクセス回数 &counter;
Debian系のRasbianは豊富なLinuxパッケージを揃えています。...
動画に対して使ってみました。
今回使用したWebカメラは、[[ELECOM Webカメラ 130万画素 マ...
&ref(WebCam.png);
RaspberryPiの良いところは、WebカメラやUSB-Wifiと言った高...
** OpenCVのインストール [#j4798715]
OpenCVのインストールは至って簡単です。
Terminalから以下のコマンドを入力します。
#pre{{
$ sudo apt-get install libopencv-dev
}}
** テスト用のプログラムの作成 [#f3472834]
今回は、詳解OpenCVの2章の例題2を拡張し、顔認識をフレー...
ソースは以下の通りです。
#pre{{
#include "highgui.h"
#include "cv.h"
int main( int argc, char** argv ) {
char* cascade = "/usr/share/opencv/haarcascades/haarc...
double w = 160;
double h = 120;
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = NULL;
if (argc > 1){
capture = cvCreateFileCapture( argv[1] );
}
else {
capture = cvCreateCameraCapture( 0 );
// (2)キャプチャサイズを設定する.
cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_...
cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_...
}
IplImage* frame;
// 正面顔検出器の読み込み
CvHaarClassifierCascade* cvHCC = (CvHaarClassifierCas...
// 検出に必要なメモリストレージを用意する
CvMemStorage* cvMStr = cvCreateMemStorage(0);
// 検出情報を受け取るためのシーケンスを用意する
CvSeq* face;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
// 画像中から検出対象の情報を取得する
face = cvHaarDetectObjects(frame, cvHCC, cvMStr);
for (int i = 0; i < face->total; i++) {
// 検出情報から顔の位置情報を取得
CvRect* faceRect = (CvRect*)cvGetSeqElem(face...
// 取得した顔の位置情報に基づき、矩形描画を行う
cvRectangle(frame,
cvPoint(faceRect->x, faceRect->y),
cvPoint(faceRect->x + faceRect->w...
CV_RGB(255, 0 ,0),
2, CV_AA);
}
cvShowImage( "Example2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
// 用意したメモリストレージを解放
cvReleaseMemStorage(&cvMStr);
// カスケード識別器の解放
cvReleaseHaarClassifierCascade(&cvHCC);
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );
}
}}
Makefileも簡単です。((ysatoさま、methodistさまのご指摘で...
#pre{{
CXX = g++
LDFLAGS = -lopencv_legacy -lopencv_highgui -lopencv_core ...
-lopencv_imgproc -lopencv_calib3d -lopencv_objdetect -L/u...
CPPFLAGS = -g -I/usr/include/opencv -I/usr/include/opencv2
all: facedetect
}}
** 動かしてみる [#lee3dc8a]
以下のコマンドで顔認識(facedetect)を起動します。
#pre{{
$ ./facedetect
}}
以下のような画面にカメラの画像が表示され、顔を認識すると...
&ref(Myface.png);
処理速度的には、1秒間に1〜2コマ程度表示され、タイムラ...
しかし、玄関の人の検出等面白い応用ができると思います。
** コメント [#p704e025]
#vote(おもしろかった[185],そうでもない[7],わかりずらい[44])
皆様のご意見、ご希望をお待ちしております。
- 「詳解OpenCV」 は本ですか?このブログのどこに載っている...
- ysatoさま、オライリーの本です。http://www.oreilly.co.jp...
- Makefile からソースファイル名は facedetect.cpp と推測し...
- Makefile の理解が深まり ./facedetect を入力して動きま...
- ysatoさま、ご報告ありがとうございます。説明に./facedete...
- captureimage.cppはどちらに有りますでしょうか?オライリ...
- methodistさん、すみません。captureimage.cppは別のプロジ...
- お返事ありがとうございます。てっきり、画像の保存にcaptu...
#comment_kcaptcha
ページ名:
SmartDoc