반응형
[상황]
데이터셋 https://arxiv.org/pdf/2101.01133.pdf
모델 Monocular Depth Estimation Toolbox 사용 (이전 포스팅 참고)
텐서보드로 train loss curve와 image-pred-GT visualization 확인중
GT가 tiff file이고 값의 범위가 넓음
[몇가지 이슈]
- [GT 관련] 양수값으로도 몇백 이상의 큰 값이 있지만 0보다 작은 값이 있다.
- [GT 관련] 빈 값이 많아서 자글자글 -> 실제로는 depth map 차이가 크지만 이미지로 뽑아보면 빈값때문에 어두워 보이는 경향이 있음.
- [학습 관련] 상대적으로 predicted output값이 크게 나오는 경향이 있었다.
- [테스트 관련] depth estimation은 뭔가 evaluation metric 종류가 많고 데이터셋마다 다른 것 같다. 나는 어떻게 구현할지
[디버깅 내역]
- 값 스케일링
max_depth값 지정한 것으로 normalization. 그냥 나눠줬다.
-> 시각적으로 결과가 많이 좋아짐
[다음 단계?]
- 마스크 추가하기 (GT 이슈)
max_depth값보다 크거나, 0보다 작은 값(=너무 큰 양수값이거나 아예 음수값이면)을 마스킹하여 loss 발생시킬때 제외하기 - validation, test 코드 짜기 (정량적 평가 Metric 맞춰서 구현)
- Transfer Learning 시도하기
GT가 없는데 depth estimation을 해야하는 target domain에다가 현재 모델을 가지고 inference 해보기. 과연 결과는?
[여담]
stereo에서 다음단계 3번에 적어놓은대로 그냥 하면 domain transfer 문제가 있다고 하셨다. GAN으로 style transfer하여 이미지를 바꿔도 잘 안먹힌다고 하셨다.
그러면 저 public dataset에서 학습한 모델로 파라미터 init을 한다음, 딥러닝 아닌 고전 알고리즘으로 pseudo GT를 뽑아 얻은 depthmap으로 supervised learning을 하는 게 나을지도.
으악 추가 한줄 알았는데 아니었음
지금 Sigloss 발생시킬때 찍어보니까 원래 depth값(대충 100정도)으로 GT, pred 둘다 나옴
궁금한거: depth scale 조절 해야하나?
- 로스 발생시킬때 원래 log 쓰니까 값이 작은가? -> depth scale 조절을 안하는게 낫나?
- 일단은 스케일 해봐야지. mmseg의 loading.py에 있는거 없애고 데이터로더 구현한거에서 처리하도록 변경했으니까,
일단은 줄여놓고 -> plot하거나할때만 값 키워서 쓰기 - 그러면 sigloss 발생시킬때와 Eval때 valid_mask를 계산하는 과정에서는 원본 스케일 써야하므로 유의
반응형
'AIML 분야 > Depth, Camera Pose, VO, SLAM 등' 카테고리의 다른 글
[Depth Estimation] SCARED Dataset 근황 (2) | 2022.08.19 |
---|---|
[Monocular Depth Estimation] mono toolbox 코드 뜯는 기록 (0) | 2022.08.05 |
[Libelas 파이썬 버전] Depth Estimation 하는데 GT가 없을때 사용하는 툴?! (0) | 2022.07.20 |
[Monocular Depth Estimation] Mono depth Toolbox 사용: AdaBins 돌려보기 (0) | 2022.07.19 |
[Monocular Depth Estimation] AdaBins, BinsFormer, 그리고 KITTI Depth Dataset 셋업 (0) | 2022.07.18 |
댓글