이 데모에서는 haar 기능 기반 캐스케이드 분류기를 사용하여 얼굴 감지의 기본 사항을 배우고 OpenCV의 이미지 및 비디오에서 얼굴을 감지하는 방법을 배웁니다. OpenCV에서 Haar Cascade Classifier를 사용하여 얼굴 감지 프로젝트 만들기Haar feature-based cascade classifiers를 사용한 객체 감지는 Paul Viola와 Michael Jones가 사람들에게 제안한 효과적인 객체 감지 방법입니다. Haar 기능 기반 캐스케이드 분류기는 많은 양수 및 음수 이미지에 대해 캐스케이드 기능이 훈련되는 기계 학습 기반 접근 방식입니다. 그렇다면 이러한 긍정적인 이미지와 부정적인 이미지는 무엇일까요? 분류기는 특정 개체에 대한 수백 개의 샘플 보기로 훈련되며, 이는 얼굴이나 자동차 또는 포지티브라고 하는 기타 개체일 수 있습니다. 예를 들어 얼굴을 감지하려면 얼굴이 포함된 이미지 수로 분류기를 훈련시켜야 합니다. 그런 다음 긍정적 인 이미지라고합니다. 다른 경우에 얼굴을 감지하고 이미지에 얼굴이 포함되어 있지 않은 경우 이를 네거티브 이미지라고 합니다. 분류기가 훈련된 후에는 입력 이미지에서 관심 영역에 적용될 수 있습니다. 영역이 개체를 표시할 가능성이 있는 경우 분류기 출력은 1입니다. 그렇지 않으면 0입니다. OpenCV에서 Haar Cascade 감지를 사용하는 방법을 살펴보겠습니다. OpenCV에는 트레이너와 탐지기가 함께 제공됩니다. 시계, 자동차 등과 같은 객체에 대해 분류기를 훈련시키려면 이 분류기를 사용할 수 있습니다. OpenCV GitHub 페이지에서 훈련된 분류자 XML 파일을 찾을 수 있습니다. 이 리포지토리 내에는 훈련된 분류기가 많이 있습니다. 이 강조 표시된 파일을 연 다음 원시 아이콘 버튼을 클릭하여 다운로드하기만 하면 됩니다. 열리면 마우스 오른쪽 버튼을 클릭하여 컴퓨터에 저장할 수 있습니다. 코드 편집기를 열고 분류자를 정의해 보겠습니다. 분류자 경로를 제공할 수 있는
이 분류기는 회색조 이미지와 함께 작동하므로 이미지를 회색조 이미지로 변환해야 합니다. 이미지 변환을 구현하는 것은 정말 쉬울 것입니다.
다음 단계는 이 이미지 내부의 얼굴을 감지하는 것입니다. 이를 위해 첫 번째는 회색조 이미지이고 두 번째 인수는 각 이미지 크기에서 이미지 크기가 얼마나 축소되는지 지정하는 데 사용되는 배율 인수입니다. 다음은 최소 이웃 매개변수로, 각 후보 직사각형에서 이를 유지해야 하는 이웃의 수를 지정합니다.
마지막 단계는 감지한 모든 면을 반복한 다음 직사각형을 그리는 것입니다. 이
좌표를 가져오는 동안 몇 가지 매개변수가 필요합니다. 첫 번째는 이미지이고 두 번째는 다음 두 매개변수는 색상과 두께입니다.
이제 이미지 내부에서 얼굴이 감지된 것을 볼 수 있습니다. 다른 접근 방식이 아니므로 비디오 내에서 얼굴을 감지해 보겠습니다. 이 접근 방식을 모든 프레임에만 적용하면 되므로 이미지를 읽는 대신
프레임을 캡처하려면 이제 위의 모든 코드를 누군가가 q 키를 눌렀을 때 조건을 정의하면 프로그램이
이 비디오에서는 실시간 비디오에서 감지된 얼굴을 볼 수 있습니다. |