우선 유투브에서 어떤 분께서 동영상으로 강의를 올리신 부분에 대하여 블로그에 정리하여 올립니다.
https://www.youtube.com/watch?v=51fZ2FTau7E&list=PLJlV2dBmsof_6J9EWx-CyvpBz7cyWPwhP&index=1
우선 앞서 필요한 파일부터 다운로드해야함.
학습파일의 경우 Colab ipynb 파일과 Yolov3 Config 파일이 있다.
yolo config 파일은 class 개수 및 학습에 대한 설정을 변경해줘야한다.
https://tzutalin.github.io/labelImg/
여기에서 제일 하단
다운로드 해주자.. 이미지 파일을 라벨링 하는 프로그램임
https://dl.google.com/drive-file-stream/GoogleDriveSetup.exe
그리고 Google Drive Desktop 프로그램 설치해야함.
이유는 Google Colab 을 사용하여 학습할 계획이라..
==============================================
일단 학습을 개인의 PC에서도 가능하다.. 그렇지만 Colab 을 사용하여 학습하는 이유는
클라우드 상으로 셋팅의 편의를 위해....
이제 가장 제일 먼저 해야할 일은.. Labelling 을 해야하는 일이다.
※ 라벨링을 하기전에 위에서 다운받은 Labelimg 프로그램의 경로에 한글 폴더이름이 들어가면 안됨
일단 Labelimg 프로그램 실행하기전에 Labelimg 경로의 data 폴더에 predefined_classes.txt 안의 내용을 모두 지워야함
Open Dir 을 클릭하여 Labeling 할 이미지가 있는 폴더를 선택
PascalVOC 버튼을 클릭하여 Yolo 로 변경
Crate RectBox 메뉴로 Labeling 시작.. 혹은 단축크 W
라벨링 완료.. Next Images 를 눌러 동일하게 계속 진행
Save 하면 어디다 저장할지 뜨는데 걍 이미지 있는 폴더에 저장.
라벨링의 경우 엄청나게 많은 양의 이미지를 가지고 하는게 좋다..
평균 2000장 이상.. 해야 잘됨.
출력된 파일들.. txt 파일은 해당 class index 와 x y width height 로 구성되어있음.
여기서 classes.txt 파일을 제외한 나머지 jpg 파일과 txt파일을 images.zip 으로 압축한다.
그런다음 아까 다운로드받은 학습파일.zip 의 압축을 풀고
obj.data 파일부터 수정해야한다.
클래수 수량 수정
yolov3_testing.cfg 파일을 수정해야 한다.
max_batches = (class * 2000) + 200
class 는 라벨링한 항목수
steps = (class * 2000) * 0.8, (class * 2000) * 0.9
좌측은 20% 빠지고 우측은 10프로 빠짐
classes 개수를 적어주자 => 여러줄이 있을텐데 전부 변경해줘야함.
filters = (class + 5) * 3
이다음에 이제 [yolo] 를 검색해서 classes의 값을 전부 바꿔줘야함.
다음 [yolo] 바로 위에 있는 [convolutional] 의 filters의 값을 를 전부 바꾸자
그런다음 classes.txt 파일안에 내용을 obj.data 파일 안에 붙여넣기
yolov3 라는 폴더를 만들어주고
그런다음 아까 압축햇던 images.zip 파일 넣어주자
그러고 yolov3 안에 data 폴더를 하나 만들어주고
https://colab.research.google.com/
이제 Colab 에 접속해서 Train_YoloV3.ipynb 파일을 업로드해주자
이제 한줄씩 실행해주면됨.
링크타고 들어가서 인증키 붙여넣기
한줄씩 실행시키면서 에러가 있는지 확인하고~~~~~~ 이제 트레이닝 시작~~
코랩이 잠깐씩 물어본다던데.... F12 눌러서 브라우저 Console 열어주고
function ClickConnect()
{
var buttons = document.querySelectorAll("colab-dialog.yes-no-dialog paper-button#cancel");
buttons.forEach(function(btn) {btn.click();});
console.log("20분마다 자동 재연결");
document.querySelector("#top-toolbar > colab-connect-button").click();
}
setInterval(ClickConnect, 20000 * 60);
를 실행시켜주자.
약 2시간 걸려서 완료함~~~
avg loss 가 0.1 정도로 내려오면 중간에 그만둬도 됨.
=====================================================
이제 학습이 완료되면 weights 파일이 생성된다.. 이제 필요한 파일은
yolov3_training_final.weights
obj.names => 학습파일.zip 에 있던
yolov3_testing.cfg => 학숩파일.zip 에 있던
이제 3개파일을 가지고 C# 에서 불러서 yolov3 를 실행시켜보자~
'SoftWare > OpenCV' 카테고리의 다른 글
Windows10 에서 Darknet YoloV3 학습하기 - 서론 (1) | 2021.09.13 |
---|---|
yolov3 학습된 파일을 C# 에서 사용하기 (1) | 2021.09.11 |
opencv image 접근 방법 및 성능 그리고 병렬처리 (0) | 2015.03.16 |
Android JNI OpenCV 성능 (0) | 2015.02.11 |
opencv 1.x VS opencv 2.x 성능차이 (0) | 2015.02.09 |
댓글