작성
·
972
0
답변 1
0
안녕하십니까,
오, 이렇게 큰 이미지도 있군요. 제가 이렇게 큰 이미지를 적용해 본적은 없지만,
먼저 23k x 28k 이미지를 500x500 이미지를 잘랐다는 것이 crop 을 이용해서 특정 부분만 도려 내었다는 건가요? 아님 23k x28k 이미지 전체를 resize해서 500x500 이미지로 만들었다는 것인가요?
만약 resize로 23k x 28k 를 500x500 이미지를 줄였다면 Detect할 Object가 상당히 작아져서 Detect가 잘 안될 것 같습니다만(일부 검출이 되었다고 하신걸로 봐서는 crop 등으로 특정 부분만 도려낸것 아닌가 생각해 봅니다)
마찬가지로 원본 이미지 23k x 28k 이미지를 아래 명령어로 학습 시키면 자동으로 이미지를 640x640으로 resize하기 때문에 Detect 할 Object가 너무 작아져서 Detect가 잘 안될 것으로 생각됩니다.
cd /content/yolov3; python train.py --img 640 --batch 8 --epochs 150 --data /content/incredibles/incredibles.yaml --weights yolov3.pt \
28k 정도의 큰 이미지를 감당할 GPU 메모리가 있을지 모르겠습니다.
img는 1280 또는 2560 정도로 설정하시고, batch는 1로, 그리고 epochs는 30 정도로 해서 학습을 시켜 보시지요.
--img 1280 --batch 1 --epochs 30
네 선생님 그럼 500*500으로 잘린 이미지를 train 시에는
cd /content/yolov3; python train.py --img 1280 --batch 1 --epochs 30 --data /content/incredibles/incredibles.yaml --weights yolov3.pt \
다음과 같은 코드를 사용하고,
디텍트 할 때에는, 원본이미지(origin.tif)를 사용해 다음과 같은 코드를 실행해보면 되는걸까요?
아니면, 원본이미지도 특정크기로 자른 뒤 해당 개별이미지마다 디텍트를 실행하면 될까요?
원래 제 의견은 원본 이미지를 학습시 img 1028 을 권장 드린것 입니다만,,, 위에서 적어 주신대로도 한번 학습해 보시기 바랍니다.
그리고 detect시 원본 이미지를 특정 크기로 자르면, 원래 detect하려는 이미지가 원본인데, 목적하시려는 바와 다르지 않을까 싶습니다. detect 시에는 자동으로 detect 하려는 이미지를 학습된 network 크기로 resize합니다.
네 원본이미지를 500*500 크기의 개별 이미지로 크롭하였고, 그 결과 2천개 이상의 개별 .tif 파일이 생성되었습니다.
트레이닝은 크롭된 500*500 크기의 약 60여개의 이미지들(전체 중 일부)에 CVAT을 사용해 200개 이상의 annotation을 설정한 뒤 진행하였습니다.
그리고 test를 위해 사용한 원본이미지(23k * 28k)에 선생님이 써놓아주신 코드를 실행하였습니다.
그러면 말씀대로라면, 테스트 코드 실행 시 640 대신 28k 이상의 값을 입력 후 실행해야 하는건가요?