저번에는 실시간으로 얼굴 탐지를 하고 탐지된 얼굴들을 모두 모자이크 처리했었다.
이번에는 럭키짱의 강건마 이미지를 사용해 모자이크 처리를 해볼 것이다.
전에 했던 내용은 설명하지 않을 것이니 이해가 안 되는 사람은 이전 글을 참고하도록 하자!
3.1 OpenCV를 이용한 실시간 얼굴 모자이크 처리: https://jinho-study.tistory.com/231
3.1 OpenCV를 이용한 실시간 얼굴 모자이크 처리
저번에는 실시간 얼굴 탐지를 했었다. 이번에는 실시간으로 얼굴 탐지를 하고 탐지된 모든 얼굴 영역을 각각 탐지된 얼굴 이미지를 축소-확대한 이미지로 대체하는 방식으로 모자이크 처리
jinho-study.tistory.com
아래는 전체 코드를 정리한 코드이다.
import numpy as np
import cv2
xml = 'haarcascades/haarcascade_frontalface_default.xml'
face_cascade = cv2.CascadeClassifier(xml)
mosaic_img = cv2.imread('image/mosaic.png') # 럭키짱의 강건마 이미지를 저장
cap = cv2.VideoCapture(0) # 노트북 웹캠을 카메라로 사용
cap.set(3,640) # 너비
cap.set(4,480) # 높이
while(True):
ret, frame = cap.read()
frame = cv2.flip(frame, 1) # 좌우 대칭
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,1.05,5)
print("Number of faces detected: " + str(len(faces)))
if len(faces):
for (x,y,w,h) in faces:
""" 탐지된 얼굴 영역을 강건마 이미지로 바꾸는 코드"""
# 탐지된 얼굴 영역에 맞도록 강건마 이미지의 높이와 너비를 바꿔줌.
t = cv2.resize(mosaic_img, dsize=(h, w), interpolation=cv2.cv2.INTER_LINEAR)
frame[y:y+h, x:x+w] = t # 탐지된 얼굴 영역을 강건마 이미지로 모자이크 처리
""" 사람의 어깨선과 머리선이 강건마 이미지와 딱 맞게 이어지도록 구현한 코드
문제는 나한테만 딱 맞는다... """
# wi, hi = int(w*0.08/2), int(h*0.23/2)
# t = cv2.resize(mosaic_img, dsize=(w+wi*2, h+hi*2), interpolation=cv2.cv2.INTER_LINEAR)
# frame[y-hi:y+h+hi, x-wi:x+w+wi] = t
cv2.imshow('result', frame)
k = cv2.waitKey(30) & 0xff
if k == 27: # Esc 키를 누르면 종료
break
cap.release()
cv2.destroyAllWindows()
모자이크 처리하는 기능을 조금 다르게 2개를 구현했는데 위는 탐지된 얼굴 영역을 강건마 이미지로 바꿔주고,
아래는 사람의 어깨선과 머리선이 강건마 이미지와 딱 맞게 이어지도록 강건만 이미지의 크기를 바꿔줬다.
근데 문제는 나한테만 딱 맞는다...
위의 코드를 실행하면 아래와 같이 실시간으로 탐지된 얼굴이 강건마로 잘 바뀌고 있는 것을 확인할 수 있다.
내 얼굴 기준으로는 말 그대로 기적의 비율을 보여준다.
여러 명 있어도 아주 잘 된다.
kimjinho1/Real-time-specific-object-mosaic-using-deep-learning
딥러닝을 이용한 실시간 특정 객체 모자이크 처리 . Contribute to kimjinho1/Real-time-specific-object-mosaic-using-deep-learning development by creating an account on GitHub.
github.com
'Projects > 얼굴 인식과 모자이크 처리' 카테고리의 다른 글
실시간 얼굴 인식과 모자이크 처리 (12) | 2020.06.20 |
---|---|
0. OpenCV를 이용해 셀카 찍기 (0) | 2020.03.24 |
3.1 OpenCV를 이용한 실시간 얼굴 모자이크 처리 (0) | 2020.03.23 |
2. OpenCV를 이용한 실시간 얼굴 탐지 (0) | 2020.03.23 |
1. OpenCV를 이용한 얼굴 탐지 (0) | 2020.03.23 |