face_recognition을 이용한 real time 얼굴 인식
2020. 3. 8. 16:31ㆍ3.5기(200104~)/출석체크 팀
2020 3월 8일 출석관리팀
DMC 탐탐
실시간으로 영상을 전송하여 얼굴 인식을 할 수 있는
face_recognition 라이브러리를 이용하여
실제 최영환과 김정민 얼굴의 영상을 인식하여 실습을 진행해 보았습니다.
최영환의 얼굴은 잘 인식되지 않았었는데 영상의 규격의 문제가 있었던것 같습니다.
갤럭시 a50 앞면 카메라를 이용하니 인식이 잘 되었고
출석체크 모델에 적용해볼 예정입니다.
참조 깃허브는 아래와 같습니다.
https://github.com/ageitgey/face_recognition
#opencv 라이브러리 설치, 코랩 이용시 실행할 필요 없음
pip install opencv-python
#face_recognition 라이브러리 설치, 필수적으로 실행
pip install face_recognition
#각종 라이브러리 임포트
%pylab inline
import face_recognition
import cv2
import matplotlib.patches as patches
from IPython.display import clear_output
from matplotlib.pyplot import imshow
import matplotlib.pylab as plt
# Loading video for face detection
#경로는 구글 드라이브에 있는 파일의 경로를 넣어줬다.
video_capture = cv2.VideoCapture("/content/drive/My Drive/Colab Notebooks/ob/young3.mp4")
frame_count = 0
while video_capture.isOpened():
# Grab a single frame of video
ret, frame = video_capture.read()
# Bail out when the video file ends
if not ret:
video_capture.release()
break
# 25 프레임마다 얼굴을 인식하도록 설정했습니다.
frame_count += 1
if frame_count % 25 == 0:
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# Display video frame
title("Input Stream")
plt.imshow(frame)
# Find all the faces and face encodings in the current frame of video
rgb_frame = frame[:, :, ::-1]
face_locations = face_recognition.face_locations(rgb_frame)
# If faces were found, we will mark it on frame with blue dots
for face_location in face_locations:
plt.plot(face_location[1], face_location[0], 'bo')
plt.plot(face_location[1], face_location[2], 'bo')
plt.plot(face_location[3], face_location[2], 'bo')
plt.plot(face_location[3], face_location[0], 'bo')
# Show frame...
plt.show()
# ... and hold it until a new frame appears
clear_output(wait=True)
'ML > 머신러닝' 카테고리의 다른 글
[openCV]얼굴인식 기술을 이용한 화면 잠금해제 (0) | 2020.03.17 |
---|---|
DeepFace 논문 간단 리뷰:Closing the Gap to Human-Level Performance in Face Verificat (0) | 2020.03.10 |
유용한 라이브러리에 대해 정리해보자 (0) | 2020.03.07 |
코랩을 이용한 샴 네트워크 구현 (0) | 2020.03.06 |
샴 네트워크(Siamese Network)와 삼중항 손실 (Triplet loss) (0) | 2020.03.06 |