2021/05/27 THU
model inference가 이상했던 한가지 원인을 알아냈다.
내가 2d backbone network의 pretrained weight만 로드하고, Volumetric Network의 pretrained weight는 로드하지 않았다.
왜인지 strict=True로 하면 없는 state가 너무 많아서 strict=False로 설정하고 load 완료.
이건 단순한 naming 문제로 보이고 strict=False도 문제없음을 확인했다.
1-view single image
4-view single image
왜이럴까...
2021/05/28 FRI
다리가 생겼다.
algebraic_model에 먼저 돌리고 획득한 pred_3d_keypoints를 집어넣으니 잘(?) 되는 듯 하다.
아무래도 모델이 입력으로 받는 3d keypoints의 world coordinate system과
내가 가진 AI hub GT 3d keypoints의 그것이 달라서 그런 듯하다.
앞으로 확인해볼 점은
- x, y, z 좌표값 permutation이 일어났는지
- 3d 좌표값이 m단위인지 mm단위인지
- 2d 좌표값이 pixel인지 normalized인지
- 2d 좌표값이 offset을 빼서 들어가는지 (원점 조정 등)
2021/05/30 SUN
사람이 지름길로 가려고 하면 꼭 헤맨다.
그냥 정도를 밟는 것이 제일 빨리 가는 길이다.
sample을 만들려고 하지 말고 그냥 Custom Datset을 구현을 시작했다.
2021/06/03 THU
3일간 HumanActionMultiviewsDataset을 완성하고 다시 돌렸는데 똑같다. ㅠㅠ... 왜...??
다시 돌려보니 제대로 나왔다!!!
문제는 bbox 좌표값 순서를 잘못바꿔서였음.
놀라울 정도로 멀쩡하게 잘 해결이 되었다.
TODO : 내가 이전에는 왜 틀렸었는지 복기할 것
아래는 공식 깃헙에서 제공하는 시각화 코드를 이용한 시각화.
아래는 이미지에 projection 하지 않은 3d model visualization
왼쪽이 GT, 오른쪽이 pred.
이렇게 보이듯 GT값과 pred값 방향 크기 모두 조금 달라서 tuning이 필요함
다른 각도에서 확인하면 GT의 keypoints는 하나 부족한 16개인데 임시방편으로 정수리와 목 좌표값을 일괄 평균하여 neck/nose point값을 임시로 입력하였다.
2021/06/04 FRI
GT값 교정 완료. 왼쪽이 pred, 오른쪽이 GT
x, y, z축 각각 최적 회전값을 찾았더니
x축 방향으로 1.6라디안 회전시 GT 값과 pred 값 사이의 MPJPE가 0.6036mm로 최소였다.
이로써 논문 재현은 완료!
'개발' 카테고리의 다른 글
2021 인공지능 온라인 경진대회 참가 후기 (0) | 2021.07.16 |
---|---|
인공지능 비트 트레이더 경진대회 참가 기록 (0) | 2021.07.16 |
엑셀VBA 조작하기 - 실시간으로 선택된 행/열 하이라이트하기 (0) | 2021.03.04 |
키움 Open API 개발환경 설정 방법 (Anaconda + VSCode) (0) | 2021.02.12 |
티스토리 메인에 글쓰기버튼 생성하기 (0) | 2021.01.22 |