• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Yolo 모델 성능 개선 문의

20.11.02 13:27 작성 조회수 724

0

안녕하세요. 

yolov3 사용해서 계속 학습 / 성능 개선 시도하고 있습니다. 

1. 이미지 로딩 / 전처리 / filter 수정(?)

2. epoch 증가 / optimizer 변경 / learning rate 조절 

을 해 보려고 하는데, 혹시 조언해 주실 수 있으신가요? (참고할 만한 자료 또는 이게 좋다...등등)

3번째 질문은,,

yolov4, v5도 나오는데 이쪽을 사용해도 좋을까요? 저는 성능도 중요하지만, 시간도 중요합니다...

물론 v4, v5를 사용할 경우엔, 현재 v3로 세팅된 전체 내용이 수정되어야 할지도 모르겠네요. 

마지막으로, 예전에 mAP 구하려고 질문을 남겼었는데요, 

코드를 어찌어찌 조금 수정해서 detection result를 csv로 저장해서 mAP 깃허브의 코드대로 사용가능하도록 각 이미지의 결과 내용을 txt로 변경해서,, mAP 확인하고 있습니다. mAP를 구할 수 있게 되어서 모델 성능 부분을 개선하고자 합니다. 

감사합니다. 

답변 3

·

답변을 작성해보세요.

0

keras yolo3 패키지의 learning rate와 optimzer는 아래에서 확인하실 수 있습니다.

https://github.com/qqwweee/keras-yolo3/blob/master/train.py

optimizer는 Adam을, freeze 모델의 경우 lr=1e-3, unfreeze 시 lr=1e-4 입니다. learning rate callback 으로 ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=3, verbose=1) 가 설정되어 있습니다. 저는 이걸 바꿔 가면서 해봤지만 큰 성능 향상은 없었습니다만, 직접 한번 바꿔가면서 시도해 보시는 것도 좋을 것 같습니다.

0

네 답글 감사합니다. 

여러 방법을 시도 해 본 백데이터가 필요하여,,, 우선 learning rate, optimizer 변경은 시도는 해 보려고요. (결과를 알고 있으니 마음이 한 결 편해졌습니다.) 구글링 해서 몇가지 유명한 것들로 해 보려고 합니다. 혹시 시도해 보셨다는 optimizer 종류나 learning rate 변화 알 수 있을까요? 

그리고 다행히 실시간 적용은 아니어서 알려주신 albumentation을 시도해 보겠습니다. 

감사합니다! 

0

안녕하십니다.

1, 2, 제가 시도 했을 때는 learning rate, optimizer변경 큰 차이없었습니다. 

다만 Data Augmentation을 수행하는 것이 그나마 조금 좋았다는 주변의 평이 있습니다. 

Data Augmentation은 albumentation을 이용했습니다. albumentation에서 bounding box augumentation 기법이 있습니다.  https://albumentations.ai/docs/getting_started/bounding_boxes_augmentation/

아쉽게도 이걸 실시간으로 적용하려면 현재 keras yolo3 package 를 많이 뜯어 고쳐야 합니다.  그게 아니라면 일단 albumentation으로 추가적인 image와 annotations을 xml 로 생성한 뒤에 학습을 재 적용하는 방식을 사용하는 것이 좋습니다.

3, 네. 당연히 사용해도 좋습니다. 단 yolo v5는 tensorflow로 구현된 패키지를 찾기가 어렵습니다.

4. 네, mAP Custom 구현하신다니  좋은 아이디어 입니다.

감사합니다.