본문 바로가기
Drawing (AI)/DeepLearning

Building Distance Estimation

by 생각하는 이상훈 2024. 8. 14.
728x90

Depth estimation

건물과 같이 거리가 멀고 거대한 물체까지의 거리를 estimation하는 모델은 없기에 기존에 있는 Depth estimation기법에 조금 손을 봐서 결과를 내보고자 했다.

우선 내가 사용한 Depth estimation모델은 intel에서 2021년쯤 발표한 Vision Transformers for Dense Prediction(DPT) 논문이 제시한 모델이다.

도로 주행중 촬영된 이미지를 대신하기 위해 구글맵에서 제공하는 streetview를 이용했다.

https://github.com/isl-org/DPT

 

GitHub - isl-org/DPT: Dense Prediction Transformers

Dense Prediction Transformers. Contribute to isl-org/DPT development by creating an account on GitHub.

github.com

dpt_hybrid-midas-501f0c75.pt 이 pretrained weight와 위의 코드를 이용해서 monodepth estimation을 진행하였다.

1번 예시

 

2번 예시

 

Depth Map을 꾀나 잘 estimate 해내는 것을 볼 수 있으나 Depth Map이 정확한 거리는 알려줄 수 없으니 여기서 reference 삼을 수 있는 지점을 찾아서 거리로 환산을 해야했다.


Conversion to Absolute distance

100% 정확할 수는 없지만 도로 주행중 사용할 기술이라는 점에서 나는 그럴싸한 refernece  point를 찾아냈다.

 

Reference point: [(max x)/2, (max y)/8] => 1.7 => 1.7^3 = 4.9

abs_distances = |(max_depth – depth) * (ref_dist / (ref_depth- max_depth))|^3

 

위의 식을 말로 풀어보자면 우선 depth map이 예측한 깊이는 위 경우들과 같이 아주 멀리있는 건물까지의 depth를 예측하기 위한 모델이 아니어서 너무 가깝게 예측을 하는 경향이 있었다. 따라서 전체적으로 멀어질 수록 더 멀어지도록 말들기 위해 거리의 3승을 취해줬다. 또한 reference point는 가로기준으로는 정중앙, 세로 기준으로는 밑에서부터 1/8 지점으로 잡고 해당 위치까지의 거리가 5미터라고 잡은 것이다. 이렇게 한 이유는 바로 앞의 도로면 바닥까지의 거리는 대부분의 경우 비슷할 것이기 때문이다. 다만 카메라의 각도, 해상도 비율에 따라서 문제가 생길 수 있을 거라고 생각한다. 이를 adaptive하게 수정할 수 있는 시스템을 만든다면 유의미할 것 같다.

결과는 아래와 같이 아주 괜찮게 나왔다.

 

첫번째 예시

 

 

 

두번째 예시


 

728x90