감사합니다 덕분에 프로그램이 만들어 지고 있습니다

미해결질문
서원직 프로필

웹캠을 이용한 얼굴 검출에는 성공하였습니다.

다만 웹캠에서 얼굴을 검출했을때와 못했을때의 상태값을 받아오려고 했는데

방법을 모르겠습니다.

C#을 체계적으로 배운게 없고 블로깅만 통해서 필요한것만 만들다보니 기초가 없네요;;;

pictureBoxIpl1.ImageIpl = Convert.FaceDetection(src);

이 구문을 통해 opencv 클래스의 FaceDetection 에 src 이미지를 전송하여

동그라미 이미지를 리턴값으로 받아오는것까진 이해했고 성공했습니다.

그래서 opencv 클래스에 public static 으로 변수를 정의하고 for 문에서

얼굴 검출이 되었을때 true 값을 받아 웹캠에서 캡쳐한 src 에 얼굴이 있는지 없는지

판별하여 작동하는 프로그램을 제작하려 하는데

이부분에서 너무 오래 막히네요. 도움주실수 있는지 질문 드려 봅니다.

윤대희 프로필
윤대희 2018.11.30

질문하신 내용이 웹캠에서 캡쳐한 얼굴 (별도의 이미지 또는 몇 초 이전의 이미지)가 현재 카메라에 출력되고 있는 이미지상에서 동일한 얼굴이 있는지 여부를 물으시는건가요?

간단하게 구현하신다면, 템플릿 매칭으로 1:1 유사성을 비교하셔도됩니다.

각 얼굴의 좌표를 관심영역으로 만든 뒤, 크기를 같게하여 비교하셔도됩니다.

또는 이진화나 그레이스케일화, 평활하 등을 하여 유사도를 비교하셔도됩니다.

또는, 캡쳐한 얼굴과 현재 프레임의 얼굴에서 특징, 눈과 눈사이의 거리, 입술의 크기, 얼굴의 크기, 코의 위치 등의 간격 비를 계산하셔서 구현하실 수 도 있습니다.

만약 정교한 프로그램을 구현하시길 원하신다면, 이 후 부터는 검출이 아닌 인식의 영역입니다. 머신 러닝이 같이 들어가야하는 작업이 되며, 따로 트레이닝 시킬 얼굴의 데이터가 필요합니다. 최소 1천장 이상의 얼굴 사진이 필요합니다.

방법은 매우 많고 다양하며 복합적으로 적용하셔도 됩니다. 머신러닝이 적용되는것이 가장 높은 정확도를 지닙니다.

머신러닝을 적용하시지 않는다면, SIFT 방식을 추천드립니다.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스