얼굴 인식은 점점 인기를 얻고 있으며 우리 대부분은 이미 인식도없이 사용하고 있습니다. 간단한 Facebook 태그 제안, Snapchat 필터 또는 고급 공항 보안 감시 등 Face Recognition은 이미 그 마법을 사용했습니다. 중국은 학교에서 얼굴 인식을 사용하여 학생의 출석과 행동을 모니터링하기 시작했습니다. 소매점은 얼굴 인식을 사용하여 고객을 분류하고 사기 이력이있는 사람들을 격리하기 시작했습니다. 훨씬 더 많은 변화가 진행되고 있기 때문에이 기술이 가까운 장래에 모든 곳에서 나타날 것이라는 데는 의심의 여지가 없습니다.
이 튜토리얼에서는 Raspberry Pi의 OpenCV 라이브러리를 사용하여 자체 얼굴 인식 시스템을 구축하는 방법을 배웁니다. 이 시스템을 휴대용 Raspberry Pi에 설치하면 어디서나 설치하여 감시 시스템으로 사용할 수 있다는 장점이 있습니다. 모든 얼굴 인식 시스템과 마찬가지로 튜토리얼에는 두 개의 python 스크립트 가 포함되며, 하나는 특정 사람의 사진 세트를 분석하고 데이터 세트 (YML 파일)를 생성하는 Trainer 프로그램 입니다. 두 번째 프로그램은 Recognizer 프로그램입니다.얼굴을 감지 한 다음이 YML 파일을 사용하여 얼굴을 인식하고 사람 이름을 언급합니다. 여기서 논의 할 두 프로그램은 모두 Raspberry Pi (Linux) 용이지만 Windows 컴퓨터에서도 약간만 변경하면 작동합니다. OpenCV를 시작하기위한 초보자를위한 튜토리얼 시리즈가 이미 있습니다. 여기에서 모든 OpenCV 튜토리얼을 확인할 수 있습니다.
전제 조건
앞에서 말했듯이 OpenCV 라이브러리를 사용하여 얼굴을 감지하고 인식합니다. 따라서이 튜토리얼을 진행하기 전에 Pi에 OpenCV 라이브러리를 설치해야합니다. 또한 2A 어댑터로 Pi에 전원을 공급하고 SSH를 통해 비디오 출력을 얻을 수 없으므로 HDMI 케이블을 통해 디스플레이 모니터에 연결하십시오.
또한 OpenCV가 정확히 어떻게 작동하는지 설명하지 않을 것입니다. 이미지 처리에 관심이 있다면이 OpenCV 기본 사항과 고급 이미지 처리 자습서를 확인하십시오. 이 이미지 분할 자습서에서 윤곽선, 얼룩 감지 등에 대해 배울 수도 있습니다.
OpenCV에서 얼굴 인식이 작동하는 방식
시작하기 전에 얼굴 인식과 얼굴 인식이 서로 다른 두 가지라는 것을 이해하는 것이 중요합니다. 얼굴 감지 에서는 사람의 얼굴 만 감지 됩니다. 소프트웨어는 그 사람이 누구인지 알 수 없습니다. 에서 얼굴 인식 소프트웨어는 단지 얼굴이 검출되지 않을 것뿐만 아니라 사람을 인식합니다. 이제 얼굴 인식을 수행하기 전에 얼굴 인식을 수행해야합니다. OpenCV가 그 문제에 대해 얼굴이나 다른 물체를 정확히 감지하는 방법을 설명하는 것은 불가능합니다. 따라서이 물체 감지 튜토리얼을 따를 수 있는지 알고 싶다면.
웹캠의 비디오 피드는 일련의 긴 정지 이미지가 차례로 업데이트되는 것에 지나지 않습니다. 그리고 이러한 각 이미지는 해당 위치에 서로 다른 값의 픽셀 모음 일뿐입니다. 그렇다면 프로그램은 어떻게 이러한 픽셀에서 얼굴을 감지하고 그 안에있는 사람을 더 인식 할 수 있습니까? 그 뒤에는 많은 알고리즘이 있으며이를 설명하려는 것은이 기사의 범위를 벗어나지 만 OpenCV 라이브러리를 사용하고 있기 때문에 개념을 더 깊이 이해하지 않고도 얼굴 인식을 수행하는 것이 매우 간단합니다.
OpenCV에서 캐스케이드 분류기를 사용한 얼굴 감지
우리가 얼굴을 감지 할 수 있어야 인식하거나 기억할 수 있습니다. 얼굴과 같은 물체를 감지하기 위해 OpenCV는 Classifiers라는 것을 사용합니다. 이러한 분류기는 우리의 경우 얼굴과 같은 특정 개체를 감지하는 데 사용할 수있는 사전 훈련 된 데이터 집합 (XML 파일)입니다. 여기에서 얼굴 인식 분류기에 대해 자세히 알아볼 수 있습니다. 얼굴 감지 외에도 분류기는 코, 눈, 차량 번호판, 미소 등과 같은 다른 물체를 감지 할 수 있습니다. 케이스 분류기 목록은 아래 ZIP 파일에서 다운로드 할 수 있습니다.
Python에서 객체 감지를위한 분류 자
또는 OpenCV를 사용하면 캐스케이드 분류기를 학습하여 이미지의 다른 객체를 감지하는 데 사용할 수있는 고유 한 분류기를 만들 수도 있습니다. 이 튜토리얼에서는 정면 위치에서 얼굴을 감지하는 “haarcascade_frontalface_default.xml” 이라는 분류기를 사용합니다. 우리는 볼 것이다