.png)
✅ 핵심내용
dlib 라이브러리 활용
얼굴 인식을 통해 적절한 위치에 스티커를 붙이는 mini-project 를 해보았다.
이번에 사용할 dlib 의 face detector 은 HOG(Histogram of Oriented Gradient) feature를 사용해서 SVM(Support Vector Machine)의 sliding window로 얼굴을 찾는다.
이미지의 한 픽셀이 이를 직접 둘러싸고 있는 픽셀들과 비교해서 얼마나 어두운지 알아내서 어두워지는 방향으로 화살표를 그린다.

하지만 모든 픽셀에 대해 gradients 를 저장하면 너무 자세하다. 따라서 이미지를 각각 16*16 픽셀로 분해해서 각 정사각형에서 gradient 의 주요 방향으로 표현함


위의 방법으로 어떠한 이미지에서도 얼굴을 쉽게 찾을 수 있다.
사진을 비틀어도 눈과 입술이 항상 표준 위치에 올 수 있도록 face landmark estimation 이라는 알고리즘을 사용한다.

모든 얼굴에 존재하는 68개의 랜드마크(landmarks)라 부르는 특정 포인트(턱의 상단, 눈 바깥의 가장자리, 눈썹 안쪽의 가장자리, 등)를 찾아 내는 것이다.
이것을 이용하여 알맞은 위치에 스티커를 붙여보았다.




위의 과정으로 얼굴을 인식하여 적절한 위치에 스티커 이미지를 부착해보았다.
위 과정에 대한 자세한 내용은 아래의 GitHub 링크에 기록하였다.
GitHub Link -> EP03_Face_Recognition_Sticker_Application
추가적으로 어벤져스 등장인물의 이미지를 이용해 다양한 밝기와 다양한 각도 사진에 대해서도 동일한 과정을 진행하였다.
수염 스티커 이미지를 시도 해본 결과 다음과 같은 결과를 얻을 수 있었다.




위 과정에 대한 자세한 내용은 아래의 GitHub 링크에 기록하였다.
GitHub Link -> EP03_Face_Recognition_Cat_Avengers
다양한 이미지들을 통해 얼굴 인식 과정을 경험해보았다.
증명사진과 같은 눈,코,입이 정면으로 확실히 나와있는 이미지의 경우는 아무 문제없이 얼굴 인식이 진행되었고, 해당 얼굴의 특정 위치에 스티커 이미지를 적용하는 기능이 원활히 진행되었다.
하지만 다양한 각도, 밝기, 거리 등의 이미지에서는 얼굴 인식이 잘 안되는 문제가 발생하였다.
또한 해당 얼굴의 특정 위치에 적용되어야할 스티커 이미지가 원본 이미지의 각도가 바뀌면서, 적절하지 않은 위치에 적절하지 않은 각도로 적용되는 문제를 발견하였다.
이를 해결하기위해서는 더 다양한 각도의 얼굴을 찾을 수 있는 모델, 얼굴이 회전하면 적용되어야할 스티커 이미지 또한 같이 회전되어야하는 기능의 필요성을 느꼈다.
이러한 얼굴 인식 모델을 활용하면 실생활에 다양하게 적용할 수 있을 것이다.
간단한 예로, 마스크를 쓴 사람과 쓰지 않은 사람들 구별하여 마스크를 쓰지 않은사람에게 경고음을 들려줄 수 있을 것이다.
더 나아가, 얼굴을 인식하여 이미지와의 유사도를 측정할 수 있다면,
주점에 들어갈때 주민등록증과 본인의 얼굴이 일치하는지를 사람이 일일히 확인해야하는 일을 얼굴 인식 기능을 통해 해당 주민등록증과 얼마나 일치하는지를 자동으로 확인 할 수도 있을 것이다.
정말 잘 정리해 두셨네요! 썸네일 퀄에 감탄했습니다