앞에서 picam으로 동영상을 촬영하는 것 까지는 했습니다.
이제 본격적인 얼굴인식을 해보겠습니다.
먼저 opencv-2.3.1을 다운받습니다.
다운받은 파일을 압축을 풀어 폴더 안의 OpenCV-2.3.1/data/harrcascades폴더를
usr/share/opencv/haarcascades로 복사합니다.
이제 새로운 실행파일을 하나 다운로드 합니다.
그리고 cmakelists.txt를 편집기를 통해 수정해줍니다.
- sudo nano CMakeLists.txt
camcv.c 대신 camcv_vid1.cpp 로 바꿔줍니다.
이제 camcv_vid1.cpp를 수정합니다.
1 | sudo nano camcv_vid1.cpp | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Line 59 ---------------------------------------------------------------------------------------------- #include "/home/pi/pierre/libfacerec-0.04/include/facerec.hpp" =>#include "/home/pi/camcv/libfacerec/include/facerec.hpp"로 수정 ---------------------------------------------------------------------------------------------- face recognition API의 경로이다 Line 681 --------------------------------------------------------------------------------------------------- fn_haar = "/usr/share/opencv/haarcascades/lbpcascade_frontalface.xml"; =>fn_haar = "/usr/share/opencv/lbpcascades/lbpcascade_frontalface.xml"; 로 수정 --------------------------------------------------------------------------------------------------- 얼굴인식을 위한 opencv라이브러리 위치및 사용 라이브러리 Line 764 --------------------------------------------------------------------------------------------------- else if (!raspipreview_create(&state.preview_parameters)) =>else if ( (status = raspipreview_create(&state.preview_parameters)) != MMAL_SUCCESS) 로 수정 --------------------------------------------------------------------------------------------------- | cs |
이제 얼굴에 대한 DB가 필요한데 일단은 테스트용으로 아래 파일을 받아주세요.
첨부된 파일을 다운받아 /home/pi/others/에 복사해줍니다.
압축을 풀어보시면 400개의 그림파일과 1개의 txt파일이 있습니다.
csv.txt 파일을 열어보시면
위와 같은 구조인데 ";"를 기준으로 왼쪽은 사진파일명이고, 오른쪽은 ID입니다.
사진과 카메라를 비교해서 이 ID값으로 이름을 가져오게 됩니다.
다시 소스(camcv_vid1.cpp)로 가셔서 Line 65로 가보시면
여기에 ID가 define되어 있습니다.
그리고 Line 661 로 가보시면
모니터로 표시해 줄 이름을 적는 곳이 나옵니다.
아까 다운받은 사진을 보시면 사람마다 10장씩 찍어놓았는데 사진의 수가 많아지면 정확도가
높아집니다만, 실행속도는 저하됩니다.
이제 build를 해보겠습니다.
1 2 | sudo cmake . sudo make | cs |
혹시나 make중 아래의 에러가 발생한다면~
위의 파일을 다운받으신 후 /usr/include/opencv2/contrib/contrib.hpp 파일을 교체해 주세요
이제 빌드한 후 실행하시면 openCV 카메라가 켜집니다.
파일이 많은관계로 시간이 오래걸리니 파일을 몇개만 간추려도 됩니다.
1 | ./camcv others/csv.txt l 5500 | cs |
소스상에서 400장의 사진을 모두 Natacha로 설정해서 Natacha만 400장 있다고 나오는 군요.
만약 id가 뜨지 않는다면 opencv를 실행할 때 파라메터 젤 뒤의 숫자를 좀 줄여주세요.
그럼 인식하는 알고리즘이 좀 더 간단해집니다만, 다른사람으로 인식할 확률도 많습니다.
위와같이 숫자를 너무 줄여버리면 다른사람으로 인식하게 됩니다.
'Projects > OpenCV for RaspberryPi' 카테고리의 다른 글
OpenCV Raspberry Pi2 (JESSIE) 1 - 기본설정하기 (1) | 2016.01.26 |
---|---|
Raspberry openCV 얼굴인식시 GPIO제어(wiringPi 적용) (31) | 2015.09.15 |
Raspberry Pi2 picam에서 openCV 적용하기4 (8) | 2015.04.23 |
Raspberry Pi2 picam에서 openCV 적용하기3 (53) | 2015.04.23 |
Raspberry Pi2 picam에서 openCV 적용하기 2 (24) | 2015.04.23 |