2017-09-12 10 views
-1

우선 여기 내 github link for the question입니다. 내가 파이썬을 사용하여 얼굴 비교 기능을 수행하고자하는OpenCV 및 Keras를 사용한 얼굴 비교 (인식 또는 감지가 아님)?

:

그리고 여기 내 질문이다. 그리고 OpenCV를 사용하여 얼굴을 성공적으로 (?) 인식 할 수 있습니다. 자, 어떻게 비교합니까?

일반 기계 학습 방법에서, 내가 특정 사람에 대해 많은 데이터를 수집하고 CNN을 사용하여 마무리해야

은 내가 이해하는 것은 이것이다.

그러나 이미지가 2 개인 경우 어떻게 비교합니까? 분류 또는 클러스터링 (KNN 사용)과 관련하여 생각해야합니까?

모든 도움을 주셔서 대단히 감사합니다.

답변

2

예를 들어 가장 많이 인용 된 논문 FaceNet에서 제안되었고 OpenFace (사전 교육을받은 사람들)에서 구현 된 얼굴 삽입 개념을 사용할 수 있습니다.

일반적인 아이디어 : 일부 전처리 된 얼굴 (정면, 잘린 ...)을 취해 특성이있는 더 낮은 차원으로 포함 시키십시오. 비슷한면의 입력은 출력에서 ​​유클리드 거리가 짧아야합니다.

귀하의 경우 : CNN을 사용하여 얼굴을 축소 된 공간 (일반적으로 크기 128의 벡터)에 매핑하고 유클리드 공간에서와 같이 거리를 계산하십시오. 당연히 당신은 또한 얼굴을 모은다. 그러나 그것은 당신의 일이 아니다.

일반적인 생각 외에 여기 좋은 점 :

이 표현하는 깊은 신경 네트워크를 사용 (또는 삽입) A의 얼굴 : openface 사용 준비가 좋은 구현이며 또한 홈페이지의 아이디어를 설명 128 차원 단위 hypersphere.

퍼가기는 모든 사람의 얼굴을 대표하는 표현입니다. 다른 얼굴 표현과 달리,이 포함은 두 얼굴끼리의 간격이 멀어지면 얼굴이 동일한 사람이 아닐 가능성이 크다는 좋은 속성을 갖습니다.

이 특성은 클러스터링, 유사성 감지 및 분류 작업을 유클리드 거리가 기능간에 의미가없는 다른 얼굴 인식 기술보다 쉽게 ​​만듭니다.

그들은 비교 데모도 here입니다.

1

얼굴에 대한 유사성 측정 항목을 알아야합니다. 그것은 다른 사람을 구별하기 좋은 특징을 추출하는 것을 허용 할 것이다. 그러면 그들 사이에 차이점 (거리)을 찾을 수 있습니다. 예를 들어 자세한 내용은 here을 참조하십시오. kNN 등은 유사한 얼굴 그룹을 찾는 데 유용하지만 이전에 추출 된 피처를 사용해야합니다.