[2022 매카톤] Face Detection+Blur Tutorial
1. 데이터셋 수집(동영상 촬영)
인터넷에 공개된 오픈소스 데이터셋 대부분은 머리 전체를 face로 놓고 데이터셋을 구성하였기 때문에 우리의 목적과 다소 차이가 있다. 따라서 이번 매카톤 프로젝트에서는 한국인의 얼굴 데이터를 직접 동영상 촬영한 뒤 프레임 분할하여 face datset을 구성할 예정이다.
2. video file 프레임 분할
위 블로그에 나와있는대로 VLC Media Player 프로그램을 이용하여 프레임을 분할한다.
3. 데이터 라벨링
https://github.com/tzutalin/labelImg
anaconda에 새로운 가상환경을 만든 뒤, 가상환경을 활성화하고
pip install labelimg
labelimg
위 명령어를 순서대로 입력하여 labelimg를 실행한다.
그 뒤 저장형식을 yolo로 지정한 뒤 목표한 지점을 bounding box를 그려 annotation data를 저장한다.
4. yolov5 custom dataset 학습
https://dohyeon.tistory.com/38?category=1006878
위 블로그에 나온 글을 토대로 앞서 라벨링된 face dataset을 가지고 yolov5 네트워크를 학습시킨다.
결과적으로 weight file 하나를 얻을 수 있다.
5. yolov5 + strongsort model을 이용한 object detection+tracking 모델 구현
https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet
앞서 4번 과정에서 얻은 weight file을 이용하여 yolov5+strongsort model inference를 하여 얼굴영역을 tracking 한다.
6. yolov5의 detection 코드에서 bounding box의 좌표 영역을 parsing하여 roi를 받아오고,
roi영역만 가우시안 블러 처리한 뒤 original image에 다시 그려준다.
7. 끝!
참고
https://pyimagesearch.com/2020/04/06/blur-and-anonymize-faces-with-opencv-and-python/