[labeling] Yolo_mark로 라벨링
* OpenCV 3.2.0 설치
- 설치 후 환경 변수의 시스템 path 추가
폭력 탐지 모델을 만들기 위해 class를 다음과 같이 나누었다.
1. no_fight (비폭력)
2. fight (폭력)
모아둔 데이터셋의 영상들을 프레임별로 동영상에서 이미지를 뽑아서 라벨링할 것이다.
* 이미지 확장자명: .jpg만 가능
(1) 동영상 프레임 추출하기
ffmpeg를 OS에 맞게 다운받은 후 실행한다. (C:\Program Files\ffmpeg)
- 다음과 같이 환경 변수 Path를 추가해준다.
★ ffmpeg 사용법 (cmd 창에서)
1. 동영상이 있는 경로로 이동
2. 명령어 입력
1) ffmpeg -i [ 동영상 제목.확장자 ] -vf fps=[ 1초당 x 프레임으로 잘라져서 저장됨 ] [ 저장되는 번호의 순서 or 이름 설정 ]%d.jpg
2) ffmpeg -i [ Inner_pocket1.mp4 ] -vf fps=[ 31 ] [ 0 ]%d.jpg
3) ffmpeg -i Inner_pocket1.mp4 -vf fps=31 0%d.jpg ( 최종 코드 예시 )
(2) Yolo_mark로 라벨링하기
1. git clone https://github.com/AlexeyAB/Yolo_mark
1-2. Visual Studio 2015 이용하여 Yolo_mark 빌드
- yolo_mark.sln을 열어 속성 > C/C++ > 일반 > 추가 포함 디렉토리에 다운로드경로\opencv\build\include 추가
- 링커 > 일반 > 추가 라이브러리 디렉터리에 다음과 같이 추가
- 디버깅 > 환경에 다음과 같이 입력
- 만약 dll파일이 없다는 오류가 발생한다면 다운받은 opencv폴더에서 dll을 검색한 후 필요한 dll파일을 복사하여 yolo_mark_master의 x64 -> Release와 Debug 폴더에 붙여넣기를 해줍니다. 그 후 빌드를 하면 x64 -> Release폴더 내에 yolo_mark(Windows 명령어 스크립트(.cmd))파일이 생깁니다.
- Release 모드로 빌드
2. 파일 실행 전 학습시키고자 하는 이미지 파일들을 Release > data > img에 넣기
- obj.names: 우리가 학습시키고 싶은 객체의 레이블 이름을 정해놓을 수 있음.
- obj.data: 분류할 class의 개수 적어주기
- yolo-obj.cfg를 열어 맨 끝의 [region]에서 classes를 찾고, 분류할 개수로 수정한다. (여기에서는 2 class)
: [region]의 윗부분 [convolutional] 의 filters를 5 * (classes+5)에 맞게 설정하기 위해 5*(2+5) = 35.
3. yolo_mark.cmd 실행
* 참고
https://giantpark197cm.tistory.com/167
https://developer-thislee.tistory.com/18?category=818795
https://webnautes.tistory.com/1132
'인공지능' 카테고리의 다른 글
[PBL] Train our own dataset (0) | 2019.10.01 |
---|---|
[PBL] 데이터셋 라벨링 (0) | 2019.10.01 |
Implementation of YOLO v3 object detector in TensorFlow (0) | 2019.08.22 |
Violence Detection 분석 (0) | 2019.08.09 |
Violence Detection 실습 (0) | 2019.08.05 |
댓글