반응형
openCV를 활용하여 얼굴을 인식 한 후 표시하는 코드이다.
opencv를 설치할 때 캐스케이드 파일이 자동으로 생성되는 줄 알았는데 안되서 그냥 강제로 넣어주었다.
OpenCV(3.4.1) Error: Assertion failed (!empty()) in detectMultiScale, file /io/opencv/modules/objdetect/src/cascadedetect.cpp, line 1698
Traceback (most recent call last):
File "facedetect.py", line 18, in <module>
minSize=(150,150))
cv2.error: OpenCV(3.4.1) /io/opencv/modules/objdetect/src/cascadedetect.cpp:1698: error: (-215) !empty() in function detectMultiScale
만약 다음과 같은 에러가 떨어진다면 강제로 캐스캐이드 파일을 소스코드를 실행하는 곳에 넣어주도록 하자. (파일로 첨부해놓음)
haarcascade_frontalface_alt.xml
예제 소스이다.
import cv2
import sys
# 이미지 파일
image_file = "./test.jpg"
# 캐스케이드 파일의 경로 지정
cascade_file = "./haarcascade_frontalface_alt.xml"
# 이미지 읽고
image = cv2.imread(image_file)
# 그레이스케일로 변환
image_gs = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 얼굴 인식 특징 파일 읽고
cascade = cv2.CascadeClassifier(cascade_file)
print(image_gs)
# 얼굴 인식 부분
face_list = cascade.detectMultiScale(image_gs,
scaleFactor=1.1,
minNeighbors=1,
minSize=(150,150))
if len(face_list) > 0:
# 인식한 부분 표시
print(face_list)
color = (0, 0, 255)
for face in face_list:
x,y,w,h = face
cv2.rectangle(image, (x,y), (x+w, y+h), color, thickness=8)
# 파일저장
cv2.imwrite("test-output.PNG", image)
else:
print("no face")
다음과 같은 이미지로 예제 코드를 실행했다.
출처 - 캘리포니아 공과대학
얼굴을 인식했다.
참고로 역시 얼굴을 인식하는 정확도는 그렇게 높지 않다. ㅠ_ㅠ
반응형
'Programming > AI' 카테고리의 다른 글
파이썬으로 주식 데이터 크롤링 하기 (0) | 2018.07.29 |
---|---|
ModuleNotFoundError: No module named 'pandas.io.data' 해결 방법 (2) | 2018.07.22 |
[머신러닝/딥러닝] 이미지 검색 - 유사한 이미지 찾기 (3) | 2018.07.08 |
KoNLPy(코넬파이) 설치 및 트위터 형태소 분석기 api 예제 (0) | 2018.07.01 |
[머신러닝/딥러닝] tensorflow + keras + nano 에디터 설치하기 (0) | 2018.07.01 |