OpenCV를 이용한 얼굴과 눈 인식하기

OpenCV를 이용한 얼굴과 눈 인식하기

1. OpenCV란 무엇인가?

   : Open Source Computer Vision의 약자로 그래픽을 자유자재로 주무를 수 있는 라이브러리이다.

2. Python에서 OpenCV설치

   :pip install opencv-python

    (특정버전을 설치하려면 pip install python-opencv==버전번호)

3. 추가설치가 필요한 것들

   - 시각화하기 위한 라이브러리 설치 : pip install matplotlib

   - 이미지는 숫자의 집합으로 이루어져 있는데 이 형태를 주무르기 위한 틀을 제공하는 numpy 설치 

     : pip install numpy

4. 원하는 대상을 검출하기 위해 Haar알고리즘으로 미리 학습된 xml파일을 다운로드 받는다.

   향후에 실력이 붙으면 자기가 원하는 것을 인식할 수 있는 Haar파일을 만들 수도 있지만 

   지금은 만들어져 있는 파일을 사용하도록 하겠다.

   아래 링크에서 얼굴과 눈을 인식할 수 있는 파일만 다운로드 하겠다. (It's up to you~~)

   - 링크 : https://github.com/opencv/opencv/tree/master/data/haarcascades

     아래의 haarcascase_eye.xml 과 haarcascade_frontalface_default.xml 파일을 오른쪽 클릭 후 다른이름으로 링크 저장해서 

     하단의 예제소스와 같은 폴더상에 저장한다.

 5. 이제 python 코드를 한번 짜볼까?

    파일명은 아무렇게 지으면 되는데 본인은 detectFace.py 로 만들었다.

    혹시 사람몸을 인식하고자 하면 위에서 body 관련된놈을 다운받아서 xml 파일 읽어들이는 부분만 변경하면 되겠지....

## -*- coding: utf-8 -*- # 한글 주석쓸려면 적기

import cv2

font = cv2.FONT_ITALIC

def faceDetect():
eye_detect = False
face_cascade = cv2.CascadeClassifier("./haarcascade_frontalface_default.xml") # 얼굴찾기 haar 파일
eye_cascade = cv2.CascadeClassifier("./haarcascade_eye.xml") # 눈찾기 haar 파일

try:
cam = cv2.VideoCapture(0)
except:
print("camera loading error")
return

while True:
ret, frame = cam.read()
if not ret:
break

if eye_detect:
info = "Eye Detention ON"
else:
info = "Eye Detection OFF"

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,1.3, 5)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

#카메라 영상 왼쪽위에 위에 셋팅된 info 의 내용 출력
cv2.putText(frame, info, (5,15), font, 0.5, (255,0, 255),1)

for(x,y, w,h) in faces:
cv2.rectangle(frame, (x,y), (x+w, y+h), (255,0,0), 2) #사각형 범위
cv2.putText(frame, "Detected Face", (x-5, y-5), font, 0.5, (255,255,0),2) #얼굴찾았다는 메시지
if eye_detect: #눈찾기
roi_gray = gray[y:y+h, x:x+w]
roi_color = frame[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("frame", frame)
k=cv2.waitKey(30)

#실행 중 키보드 i 를 누르면 눈찾기를 on, off한다.
if k == ord('i'):
eye_detect = not eye_detect
if k == 27:
break
cam.release()
cv2.destroyAllWindows()

faceDetect()

위 파일을 실행시키면 아래와 같이 나온다.

(이상하게 나온 인물을 이해해주기 바랍니다. 접니다 ㅋㅋ^^)

만족하셨나요? ~~~~~~~

#Python #얼굴인식 #OpenCV #Face Detect #눈인식

Read more

SAP ABAP 문법 정리 및 각 예제

SAP ABAP 문법 정리 및 각 예제

SAP ABAP 문법 정리: 초보자부터 숙련자도 참고 가능 SAP 시스템은 전 세계 수많은 기업의 핵심 비즈니스 프로세스를 구동하는 강력한 솔루션입니다. 그리고 이 SAP 시스템의 심장부에는 바로 **ABAP(Advanced Business Application Programming)**이라는 독자적인 프로그래밍 언어가 있습니다. ABAP은 단순히 보고서를 생성하는 것을 넘어, 복잡한 비즈니스 로직 구현, 데이터베이스 상호작용, 사용자 인터페이스

[세입자]전세 계약 체크사항

[세입자]전세 계약 체크사항

세입자를 위한 전세 계약 안전장치 및 체크리스트 전세 계약은 세입자에게 큰 금액이 투자되는 중요한 결정입니다. 아래 내용은 계약 전 확인, 계약서 작성, 안전장치, 법적 보호, 입금 시 주의사항까지 통합한 실용 가이드입니다. 1. 계약 전 주택 및 주변 환경 확인 항목체크 포인트증거 확보 방법 건물 외관외벽, 지붕, 창문 파손 여부, 균열,

Image 3
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Image 4
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.