반응형
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 |
Tags
- xcode
- Chrome
- node
- 오블완
- 티스토리챌린지
- vsCode
- 리눅스
- IOS
- 맥
- linux
- localserver
- react
- build
- androidstudio
- VirtualBox
- 센토스
- TensorFlow
- jest
- 개발
- webpack
- ReactNative
- MachineLearning
- 네트워크
- qunit
- MAC
- centos
- PYTHON
- Android
- unittest
Archives
- Today
- Total
로메오의 블로그
[Facial Recognition] 얼굴 인식하기 본문
반응형
[Facial Recognition] 단체사진에서 인원수 알아내기
img/group 폴더에 gates-jobs.jpg 사진을 추가합니다.
$ touch identify.py
import face_recognition
from PIL import Image, ImageDraw
# 빌게이츠 원본 인코딩
bill_image = face_recognition.load_image_file('./img/known/Bill Gates.jpg')
bill_face_encoding = face_recognition.face_encodings(bill_image)[0]
# 스티브잡스 원본 인코딩
steve_image = face_recognition.load_image_file('./img/known/Steve Jobs.jpg')
steve_face_encoding = face_recognition.face_encodings(steve_image)[0]
# 원본 이미지 인코딩
known_face_encodings = [
bill_face_encoding,
steve_face_encoding
]
# 이름 라벨링
known_face_names = [
"Bill Gates",
"Steve Jobs"
]
# 비교대상 이미지 인코딩
test_image = face_recognition.load_image_file('./img/group/gates-jobs.jpg')
face_locations = face_recognition.face_locations(test_image)
face_encodings = face_recognition.face_encodings(test_image, face_locations)
# Pil 포맷으로 변환
pil_image = Image.fromarray(test_image)
# ImageDraw 인스턴스 생성
draw = ImageDraw.Draw(pil_image)
# 테스트 이미지에서 얼굴을 loop
for(top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
name = "Unknown People"
# 테스트 이미지에 얼굴이 있을경우 이름과 index를 저장함
if True in matches:
first_match_index = matches.index(True)
name = known_face_names[first_match_index]
# 얼굴에 box를 그린다.
draw.rectangle(((left, top), (right, bottom)), outline=(0,0,0))
# label을 그린다.
text_width, text_height = draw.textsize(name)
draw.rectangle(((left, bottom - text_height - 10), (right, bottom)), fill=(0,0,0), outline=(0,0,0))
draw.text((left + 6, bottom - text_height - 5), name, fill=(255,255,255,255))
del draw
# 사진 표시
pil_image.show()
$ python3 identify.py
반응형
'Backend > Python & Blockchain' 카테고리의 다른 글
[Python] Selenium으로 Crawling하기 (0) | 2020.02.19 |
---|---|
[Python] Python Crawling 웹 크롤링 (0) | 2020.02.18 |
[Facial Recognition] 얼굴 추출하기 (0) | 2019.07.19 |
[Facial Recognition] 얼굴 비교하기 (0) | 2019.07.19 |
[Facial Recognition] 단체사진에서 인원수 알아내기 (0) | 2019.07.19 |
Comments