1. Haar Cascade 분류기
OpenCV에서 제공하는 사전 학습된 정면 얼굴 탐지 모델은 2001년에 발표된 Viola-Jones 알고리즘에 기반합니다. 이 알고리즘은 딥러닝 모델에 비해 속도가 매우 빠르고 가벼워 저사양 시스템에서도 실시간으로 작동하는 장점이 있습니다.
Haar Cascade 모델은 미리 정의된 명암 패턴(하르 특징)을 사용해, 빠르고 효율적인 단계별 검사를 통해 얼굴을 찾아내는 방식입니다.
2. 주요 특징
(1) 하르 특징 (Haar-like Features)
이미지의 명암 패턴을 이용해 얼굴의 특징을 찾아냅니다.
예를 들어, 눈 영역은 뺨보다 어둡고, 코의 양옆은 코보다 어둡다는 등의 특징을 사각형 필터로 잡아내는데 수많은 종류의 하르 특징 필터가 이미지 전체를 훑으며 얼굴의 특징과 일치하는 영역을 찾습니다.
(2) 적분 영상 (Integral Image)
수많은 하르 특징을 이미지 전체에 대해 매우 빠르게 계산하기 위한 기술입니다.
이미지의 픽셀 합을 미리 계산해 둠으로써, 특정 영역의 픽셀 합을 단 몇 번의 연산으로 구할 수 있게 하여 계산 속도를 획기적으로 높입니다.
(3) 에이다부스트 (AdaBoost)
수많은 하르 특징 중에서 얼굴을 구별하는 데 가장 효과적인 특징들을 선별하고, 이들을 조합하여 하나의 강력한 얼굴 탐지기를 만드는 알고리즘입니다.
(4) 분류기 폭포 (Cascade of Classifiers)
효율성을 극대화하기 위해 간단하고 빠른 분류기부터 시작하여 여러 단계의 분류기를 폭포처럼 연결합니다.
초기 단계에서 얼굴이 아님이 명확한 영역은 빠르게 탈락시키고, 모든 단계를 통과한 영역만을 최종적으로 얼굴로 판단합니다
이 모델은 haarcascade_frontalface_default.xml 파일에 그 정보가 담겨 있습니다.
공식 저장소는 다음과 같습니다.
https://github.com/opencv/opencv/tree/master/data/haarcascades
opencv/data/haarcascades at master · opencv/opencv
Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.
github.com
3. 딥러닝과의 차이점
구분 | Haar Cascade (전통 머신러닝) | 딥러닝 (CNN 기반) |
특징 추출 | 개발자가 직접 설계한 하르 특징(명암 패턴) 사용 | 인공신경망이 데이터(수많은 이미지)를 스스로 학습하여 특징 추출 |
정확도 | 정면 얼굴, 조명이 좋은 환경에서는 준수한 성능. 하지만 가려짐, 다양한 각도, 표정 변화에 취약 | 가려지거나, 측면이거나, 다양한 조명과 표정에서도 훨씬 높은 탐지 정확도를 보임 |
속도/무게 | 매우 빠르고 가벼움. 저사양 CPU에서도 실시간 처리 가능 | 상대적으로 느리고 무거움. GPU 연산이 권장됨 (최근 경량화 모델도 많아짐) |
데이터 의존성 | 비교적 적은 양의 데이터로도 학습 가능 | 대규모 데이터셋이 필수적 |
이를 이용한 사용 예제는 아래 참고.
https://yongeekd01.tistory.com/223
Openai API를 이용하여 web 검색 하기 + 결과에서 얼굴이 있는 이미지만 저장하기(Web search, Responses API
openai API를 사용해서 web search를 수행할 수 있습니다. API가 워낙에 잘 되어 있어서 몇줄 되지도 않네요. 그냥 그것만 하면 재미 없으니까 후처리를 좀 추가해 보겠습니다. 1. Web Search Tools 이란? opena
yongeekd01.tistory.com
'IT > 개발' 카테고리의 다른 글
Deepface로 얼굴 속성 분석하기 (얼굴, 성별, 나이, 인종, 감정 인식) (0) | 2025.07.17 |
---|---|
구글 mediapipe API를 이용하여 얼굴 인식 및 face landmark 그리기 (0) | 2025.07.16 |
Openai API를 이용하여 web 검색 하기 + 결과에서 얼굴이 있는 이미지만 저장하기(Web search, Responses API, opencv) (0) | 2025.07.16 |
Openai API 가격정책 및 플래그쉽 모델 정보 (Chatgpt) (0) | 2025.07.15 |
vscode에서 streamlit 사용시 break point 사용하기 (launch.json, 디버깅) (0) | 2025.02.14 |