250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Face Detection
- 네인생우습지않다
- Python
- git 업로드
- todolist
- 서울로가자
- UPSERT
- Django
- 공작과개미
- delete
- 훌륭한모국어
- linux명령어
- MySQL
- 나만의주식5법칙
- 비밀번호변경
- 중용
- 클라우드
- 헬레나크로닌
- 옹졸함
- 다산의마지막습관
- 독후감
- Git
- 성선택
- OpenCV
- php
- db
- ChatGPT
- 지방사람이보는서울사람
- 일일투자금액
- 꼭읽어봐야할책
Archives
- Today
- Total
Terry Very Good
[Object Detection] 2. 이미지를 이용한 얼굴/눈인식 본문
728x90
반응형
1. 간단한 이론
Haar-cascade: 영상/이미지에서 오브젝트를 검출위해 사용, 직사각형 영역으로 구성되는 특징을 사용하기 때문에 픽셀을 직접 사용할 때 보다 동작 속도가 빠름
자세한 내용은 https://webnautes.tistory.com/1352 를 참조합시다.
2. 이미지를 이용한 얼굴/눈인식
import cv2
import numpy as np
import os
def detectAndDisplay(frame):
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
frame_gray = cv2.equalizeHist(frame_gray)
#-- Detect faces
faces = face_cascade.detectMultiScale(frame_gray)
for (x,y,w,h) in faces:
center = (x + w//2, y + h//2)
frame = cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 4)
faceROI = frame_gray[y:y+h,x:x+w]
#-- In each face, detect eyes
eyes = eyes_cascade.detectMultiScale(faceROI)
for (x2,y2,w2,h2) in eyes:
eye_center = (x + x2 + w2//2, y + y2 + h2//2)
radius = int(round((w2 + h2)*0.25))
frame = cv2.circle(frame, eye_center, radius, (255, 0, 0 ), 4)
cv2.imshow('Capture - Face detection', frame)
data_root = 'D:/Computer Vision/ai_cv/image/'
cascade_root = 'D:/Computer Vision/ai_cv/haarcascades/'
img = cv2.imread(data_root+"marathon_03.jpg")
#img = cv2.resize(img, dsize=(500, 400), interpolation=cv2.INTER_AREA)
print("width: {} pixels".format(img.shape[1])) # 가로 픽셀의 수
print("height: {} pixels".format(img.shape[0])) # 세로 픽셀의 수
print("channel: {}".format(img.shape[2])) # 채널 수
(height, width) = img.shape[:2]
cv2.imshow("Original Image", img)
face_cascade_name = cascade_root+'haarcascade_frontalface_alt.xml'
eyes_cascade_name = cascade_root+'haarcascade_eye_tree_eyeglasses.xml'
face_cascade = cv2.CascadeClassifier()
eyes_cascade = cv2.CascadeClassifier()
#-- 1. Load the cascades
if not face_cascade.load(cv2.samples.findFile(face_cascade_name)):
print('--(!) Error loading face cascade')
exit(0)
if not eyes_cascade.load(cv2.samples.findFile(eyes_cascade_name)):
print('--(!) Error loading eyes cascade')
exit(0)
detectAndDisplay(img)
cv2.waitKey(0)
cv2.destroyAllWindows()
728x90
반응형
'신기술 습득' 카테고리의 다른 글
PDF에서 스크린샷찍은 것을 아웃룩 메일에 붙여넣는 2가지 방법 (0) | 2023.03.08 |
---|---|
[Cloud 기초]-1 Cloud 이론에 대한 모든 것 (0) | 2022.06.25 |
[Object Detection] 4. 영상을 이용한 얼굴/눈인식 (0) | 2021.09.05 |
[Object Detection] 3. GUI를 활용한 이미지를 이용한 얼굴/눈인식 (0) | 2021.09.05 |
[Object Detection] 1. OpenCV 기초(영상처리) 지식 학습 (0) | 2021.09.03 |