• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Ultralytics YOLOv3 질문드립니다.

22.04.02 00:04 작성 조회수 250

0

안녕하세요 선생님, 저는 선생님의 cnn 강의와 컴퓨터 비전 강의를 수강중인 대학원생입니다.
 
다름이 아니라, Ultralytics YOLOv3 에 대해 궁금한 점이 있는데요,
 
제가 연구를 위해 train / validation / test 로 6 : 2 : 2 비율로 데이터셋을 구성했습니다.
 
그런데, 학습을 진행하고 보니, train.py가 학습, test.py가 evaluation, detect.py가 test에 해당하는 것 같았습니다.
 
여기서 제 질문은, 그렇다면 train.py에서는,
 
train, val, test 폴더 경로를 입력하는 .yaml 파일에서 train 폴더경로와 val 폴더경로를 학습에 활용하는 것인가요?
 
소스 코드 자체는 test.py를 validation으로 쓰고, train.py에서는 train과 validation을 어떤 비율로 나누었는지 알려주지 않는 것 같았습니다.
 
(만약 train.py가 .yaml 파일에서 train 폴더경로만 사용하는 거였다면, 제가 학습을 다시 진행해야 해서요 ㅠㅠ)
 
Ultralytics YOLOv3가 정확히 어떤 방식으로 데이터를 분할하고, 학습에 어떻게 활용하는지 자세하게 알려주시면 정말 감사하겠습니다!
 
항상 좋은 강의 진심으로 감사드립니다.
 
 
 
 
 
 

답변 1

답변을 작성해보세요.

1

안녕하십니까, 

 

1. train.py의 train 폴더 경로에 있는 파일로만 학습하고, val 폴더 경로에 있는 파일로는 학습 수행 시 검증만 수행합니다. 검증 데이터의 mAP, Loss를 기반으로 learning rate등을 동적으로 조정합니다. 

2. test.py가 아직도 존재하나요? 예전에는 있었는데, 지금은 detect.py로 통합 된 것 같습니다. 

detect.py는 이미지를 실제로 object detection 하는 역할을 수행합니다.  val.py는 인자로 입력된 데이터 세트에 대해서 mAP등의 성능 검증을 수행하는 역할을 합니다. 

감사합니다.