본문 바로가기
SoftWare/OpenCV

Google Colab 에서 Yolov3 학습하기

by 학수씨 2021. 9. 10.

우선 유투브에서 어떤 분께서 동영상으로 강의를 올리신 부분에 대하여 블로그에 정리하여 올립니다.

https://www.youtube.com/watch?v=51fZ2FTau7E&list=PLJlV2dBmsof_6J9EWx-CyvpBz7cyWPwhP&index=1 

출처

우선 앞서 필요한 파일부터 다운로드해야함.

학습파일.zip
0.04MB

 

학습파일의 경우 Colab ipynb 파일과 Yolov3 Config 파일이 있다.

yolo config 파일은 class 개수 및 학습에 대한 설정을 변경해줘야한다.

 

 

https://tzutalin.github.io/labelImg/

 

LabelImg

 

tzutalin.github.io

여기에서 제일 하단

다운로드 해주자.. 이미지 파일을 라벨링 하는 프로그램임

 

 

 

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/

 

Google Colaboratory

 

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 를 실행시켜보자~

 

 

 

 

 

댓글