안녕하세요. 운이 좋게도 과학기술정보통신부에서 진행한 AI challenge에서 3위를 수상하였습니다. 해서 이번 포스팅은 그 과정을 공유하고자 합니다.
전체코드는 https://github.com/ies0411/DNA_challenge.git 해당 레포에 전체 공유되어있습니다.
Data Processing
Lidar detector의 대표적인 framework인 openpcdet를 사용하여 챌린지에 임하였습니다. 해당 프레임워크는 gt sampling을 위해서 gt point들을 pkl파일로 따로 관리합니다. 또한 custom dataset은 npy파일로 저장을하고 pkl로 다시 convert하는 과정을 거칩니다. 이 과정은 기존의 openpcdet의 메뉴얼대로 동일하게 진행하였습니다.
Baseline Model
Lidar detector로 여러가지 모델이 존재합니다. baseline 모델로 voxel+point 기반의 pvrcnnplus라는 모델을 baseline model로 선정하였습니다.
Implement Details
Pointcloud Range를 label위치를 참고하여 voxel grid가 모든 label을 커버할수있도록 세팅합니다. 이 외의 부분은 backbone으로 residual block을 설정하는 부분을 추가하여 ablation study를 진행하였지만 오히려 성능이 낮아져(아마 overfit이 더 발생한 것으로 보입니다.) feature point의 개수만 수정(2048 -> 4096)하였습니다.
Augmentation
대회 testset의 point개수를 확인해보니 training set 의 point와 개수가 상이하였습니다. 추측컨데 test set에 더 큰 채널의 lidar data가 추가되어있는것으로 판단하였습니다.
이를 해결하기위해 upsampling과 pointcloud mixup, cutmix augmentation을 진행하였습니다.
Logging
챌린지뿐아니라 ML업무를 수행하다보면 수많은 실험을 깔끔하게 로깅하는게 매우중요합니다. 이번에는 wandb를 사용해서 보다 깔끔하고 직관적으로 ablation study를 수행할 수 있었습니다.
추가적으로 궁금하신 사항은 메일이나 댓글 문의주세요