22.02.25 [kfood프로젝트] 3탄 음식 detection YOLOv3 lr 0.01 train 결과 inference 확인 + 한글깨짐 해결

2022. 2. 25. 23:11프로젝트/KFood

trainig 0~4 epoch 완료

완료된 opt.yaml 파일

 

그럼 이제 학습된 weight로 inference를 해보자

 

 

python team07_test.py --weights best_0225.pt

엥.. 아무것도 잡히지 않았다..

이번엔 그럼 수정 전 detect.py 파일(detect_1.py로 돌려보았다)

으악,..역시나 아무것도 잡히지 않았다.. 왜지?

 

best_0225.pt - python train.py --img 640 --batch 16 --epochs 5 --data kfood.yaml --weights yolov3.pt --name batch_16_lr_0.01 

 

PR 커브 확인

PR_curve
results.png
val_batch2_pred.jpg
val_batch2_label.jpg

++ 오 뭐가 잡히긴 했다

음식을 detect 하지 못했다.

음..음식이 여러개면 안되는 건가..

 

이 best_0225.pt 모델은 python train.py --img 640 --batch 16 --epochs 5 --data kfood.yaml --weights yolov3.pt --name batch_16_lr_0.01 를 돌려서 얻은 모델이다.

음식이 크게 나온 사진은 잘 잡히는 것 같다.

단 한글이 깨진다..

plots.py

이 부분을 고쳐야 될 것 같다.

general.py

https://m.blog.naver.com/amurorei82/10189119746

 

C#에서의 나라별 정규 표현식 구현

예전코드 string Pattern = @"^[a-zA-Z0-9가-힣ㄱ-ㅎㅏ-ㅣ]*$"; 한글, 숫자, 영어는 커버가 가능했지만 ...

blog.naver.com

 

 

 

general.py is_chinese대신 is_korean으로 수정
plots.py 수정

오 유니코드를 다운받는다. Arial.Unicode.ttf <- 전세계 언어가 다 있는 폰트

오오오!!! 해결!!

오오오오오 한글도 나오고 음식도 나름 잘 잡는다!!

그러나 음식이 여러개인 사진은 못 잡는듯..?

 

관련된 이슈. 어떤 사진들에 대해 no objects are detected issue

https://github.com/ultralytics/yolov3/issues/1648

 

detection result is weird · Issue #1648 · ultralytics/yolov3

Hi, I customized the yaml to be trained for my 4 classes. I firstly record long time video(the camera is hung on the ceiling to monitor the cubic of work place) and then save each frame as image. T...

github.com

 

일단 첫 번째 training 은 이렇게 inference 까지 해보았다! 이제 wandb 보면서 하이퍼파라미터랑 등등 어떻게 해야 최적의 결과가 나올 지 분석해봐야할 것 같다.

 

 

----------------------------------------------------------------------------------------------------------------------------------

새로운 training : lr을 0.001로, 전이학습은 yolov3.pt로 시작.

learning rate를 변경시켜보자 - 우린 데이터셋이 ImageNet보다 훨씬 작으니 1/10배로 0.001로 해보자

아까 학습 완료된 weight 사용? 또는 yolov3.pt 다시한번 사용?

 

음 일단 lr만 바꿔볼 거니까 기존 yolov3.pt를 다시한번 사용하자

python train.py --img 640 --batch 16 --epochs 5 --data kfood.yaml --weights yolov3.pt --name batch_16_lr_0.001

하이퍼파라미터가 0.001로 바뀐 모습

train 결과들이 저장되는 폴더이다. 모델(best, last), confusion matrix, epoch마다 loss 변화 등등