728x90
안녕하세요 ~
오늘은 파이썬과 OpenCV를 활용해서 얼굴을 인식 기능을 만들어 보겠습니다.
개발 준비물
1. Python
2. OpenCV
3. Sample Image
샘플 이미지 같은 경우는 얼굴을 인식하고 싶은 이미지를 사용하시면 됩니다.
참조 : 필자는 젯브레인사의 파이참이라는 개발 툴을 사용하였습니다.
프로젝트 생성
- 새로운 프로젝트 생성을 하신 다음 프로젝트 명을 정해주시고 생성 버튼을 눌러줍니다.
OpenCV 추가 및 얼굴 인식 기능 구현
이제 OpenCV를 추가해주고 해당 로직을 구현해볼건데요 이 부분은 제가 미리 작성해둔 스틱코드를 이용하여 구현해 보도록 하겠습니다.
import cv2
# haarcascade 불러오기
# - 얼굴과 눈을 찾기위한 미리 학습된 샘플 데이터
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')
# 이미지 불러오기
# '샘플이미지경로': 얼굴을 검출하고싶은 이미지 경로를 작성해주세요
img = cv2.imread('샘플이미지경로')
# 이미지 전처리
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 얼굴 찾기
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
# 눈 찾기
roi_color = img[y:y + h, x:x + w]
roi_gray = gray[y:y + h, x:x + w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex, ey, ew, eh) in eyes:
cv2.rectangle(roi_color, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)
# 결과 출력
cv2.imshow('image', img)
key = cv2.waitKey(0)
cv2.destroyAllWindows()
다음은 스틱코드를 사용하여 불러온 얼굴 감지 소스입니다.
import cv2
소스를 불러왔으면 import cv2 부분에 빨간 줄이 쳐져있을 거예요 opencv 모듈이 추가되지 않아서 인데요. Alt+Enter를 눌러서 Python OpenCV 모듈을 추가해줍니다.
# 이미지 불러오기
# '샘플이미지경로': 얼굴을 검출하고싶은 이미지 경로를 작성해주세요
img = cv2.imread('샘플이미지경로')
# 이미지 불러오기
img = cv2.imread('C:/Users/TFX5470H/Desktop/sample.jpg')
'샘플이미지 경로' 부분에 얼굴을 검출 시키고 싶은 이미지의 경로를 작성해주면 됩니다. 아래는 필자의 샘플 이미지 경로입니다.
테스트
정상적으로 잘 동작하는 것을 확인할 수 있었습니다.
# 이 포스팅에서 사용한 스틱코드
https://stickode.com/detail.html?no=2327
'Python' 카테고리의 다른 글
[Python][Pycharm] 이미지 모자이크 처리 (0) | 2021.09.13 |
---|---|
[Python] 소켓 통신하여 채팅 하기 (12) | 2021.09.11 |
[Python] matplotlib 을 사용하여 원형 차트 그리기 (0) | 2021.09.02 |
[Python] Logging 모듈로 로그 남기기 (0) | 2021.08.26 |
[Python] 네이버 뉴스 크롤링 (requests, bs4) (0) | 2021.08.05 |