묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
pytorch fasterRCNN 커스텀데이터로 학습, 평가 질문
안녕하세요 선생님!선생님 강의해주신 내용 바탕으로 개인 프로젝트를 진행하는 와중에 10일동안 구글링을 통해서도 해결을 못한 문제가 있어 여쭤봅니다..!AI허브(https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100)에서 받은 컨테이너고유번호(BIC)를 FasterRCNN으로 detect하는 코드를 작성중인데, 6천개로 학습시키고 학습시켰던 데이터 일부로 evaluation을 하면 검출을 잘 하는데, 새로운 데이터(학습데이터와 유사한 이미지)로 evaluation을 하면 아무것도 검출을 못하는(빈 텐서만 출력) 현상이 일어납니다. 에폭을 1부터 10까지 해보고 loss가 0.01까지 줄어들며 수렴하는것을 확인했는데도 아무것도 검출을 못하네요.ㅇ모델 : pytorch fasterrcnn_resnet50_fpn(pretrained=True)ㅇ학습과정 * 구글코랩 활용1. AI 허브 json파일을 coco 형식으로 변경(시각화를 통해 정상변경 확인)2. customdataset 정의3. 학습환경 설정 및 학습4. 가중치 저장5. evaluation 환경 설정(pretrained=False) 및 evaluation(가중치 로드)6. pycocotools로 평가지표 출력 구글코랩에서 작성한 코드는 링크로 첨부했습니다.https://colab.research.google.com/drive/1dq4wx7M5GFwLSrz8lcCLIL431Othr94Otrain 모드 모델정의하고, eval모드 모델 정의하는 부분에 뭔가 오류가 있는것 같은데 못 찾겠습니다...ㅜㅜ
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
Fater RCNN 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 덕분에 Detection 잘 배우고 있습니다 Faster RCNN 강의를 듣다가 질문이 있어 글을 남깁니다 1. RPN에서 Imbalancing 문제를 해결하기 위해 256 배치 중 128개 positive 128개 negetive 128개로 하여 학습을 한다고 하였는데 (강의 125페이지), 아무래도 object가 많기 때문에 이 경우에는 마치 positive는 oversampling하고 negetive는 undersampling하는 것과 동일한 개념이라고 이해하면 될까요? 앵커 미니배치를 128이나 64처럼 다른 숫자로 해도 상관 없을까요? 2. Faster RCNN의 최종 구조를 보면 (강의 129 페이지) rufrcnn 의 구조를 모면 RPN과 ROI Pooling에 둘다 Classification loss와 BBox loss가 있는 것을 알 수 있는데 합습할때 다 합치나요? 아니면 개별적으로 학습하나요? 그리고 RPN의 Classification은 object 여부를 학습하고 ROI pooling의 classification은 object 중에 분류를 하는 것으로 이해하였는데 맞는지요? 마지막으로 RPN과 ROI Pooling의 BBox regression은 결국 같은 것인데 두번 들어가는 것인가요? 아니면 RPN에서 select하고 ROI pooling에서는 select된 ROI만 loss를 구하는 것인가요? (ROI pooling에서는 anchor box와 관계없이 학습하나요?) 덕분에 미뤄두었던 detection 공부를 잘하고 있습니다 정말 감사드립니다!!!
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
해당 강의까지 듣고 Faster RCNN에 anchor box에 대한 내용 이해점검과 질문
< 강의를 이해한 내용 > anchor box는 3가지의 사각형 형태, 3가지의 다른 크기로 이루어져 있다. 즉, anchor box는 9개의 다양한 사각형을 이용하여 이미지의 해당 부분의 obj 존재여부를 판단해내는 것이다. anchor box는 원본 이미지에 적용되는 것이 아니라 Feature Map에 적용되는 것이다. Feature Map에 가로 x 세로의 수만큼 anchor box가 생기게 된다. 여기서 anchor box는 총 9가지의 box로 이루어져 있으므로 9개의 depth(차원)이 적용되어 총 생기는 anchor box는 가로 x 세로 x 차원(9) 인 것이다. anchor box는 Feature Map에 생기게 되는데, 학습을 위해 3x3 conv 층을 통과하고, 빠른 학습과 정보 압축을 위해서 1x1 conv 층을 통과한다. 이때 9개의 차원으로 압축되게 되는데, 9개로 압축되는 이유는 anchor box가 3가지의 형태와 3가지의 크기로 총 9개의 box로 이루어져 있기 때문이다. 1x1 conv층을 통해 압축까지 된 Feature Map에 anchor box를 그리게 되면 (가로 x 세로 x 차원)의 수만큼 anchor box가 나오게 되는 것이다. 질문 - 마치 conv층의 필터를 정의하듯, anchor box의 각 box별 모양과 크기를 정해주어야 할텐데 anchor box의 정의는 어느 부분에서 하나요? - Feature Map의 각 9개의 차원별로 각 box가 적용되는 것이 아니라 각 차원별로 모두 9개 다양한 크기의 box가 적용되는 것이 맞나요? - 만약 그렇다면 굳이 압축 차원이 9개여야 할 필요가 있을까요? 1x1 conv층에서 9개의 차원과 anchor box 구성의 box수는 무관한 것으로 느껴집니다.