이미지 분할은 이미지 내에서 관심 있는 개체를 정확하게 식별하고 묘사하는 데 중요한 역할을 합니다. 자율주행에서는 도로 표면 분할 문제를 해결하기 위해 컴퓨터 비전 알고리즘이 적용됩니다. 한 가지 유형의 이미지에만 의존할 수 없기 때문에 이 작업은 어렵습니다. 카메라와 LiDAR 모두 장점과 단점이 있습니다. 예를 들어 LiDAR는 정확한 깊이 정보를 제공하지만 일반적으로 희박한 포인트 클라우드를 생성하므로 장면 내의 개체를 정확하게 분할할 수 없습니다. 그리고 투명하거나 반사되는 표면을 마주할 때 왜곡된 구름을 생성할 수 있습니다. 카메라는 깊이를 포착하지 못하지만 물체의 모양, 질감, 색상에 대한 완전한 정보를 제공합니다. 이는 2D 도로 분할 훈련에서 포인트 클라우드와 이미지를 효과적으로 융합하면 각 데이터 도메인의 장점을 활용할 수 있다는 간단한 아이디어로 이어집니다. 문제는 이러한 융합을 위해서는 두 데이터 세트에 대한 노동 집약적인 주석이 필요하다는 것입니다. 그렇다면 도로 분할을 위한 다중 센서 설정의 이점을 누리기 위해 데이터 주석을 보다 효율적으로 만들 수 있습니까?
나는 현재 다음 회사에서 일하고 있습니다.
이 게시물에서는 접근 방식을 단계별로 설명하고 몇 가지 테스트 결과를 보여 드리겠습니다. 우리 작업, 기타 방법 연구 및 테스트 결과에 대해 더 자세히 알고 싶다면 우리 기사를 참조하십시오.
우리 접근 방식의 전체 파이프라인은 포인트 클라우드 도로 주석, 데이터 준비, 마스크 손실 및 분할 모델 자체의 네 가지 주요 부분으로 구성됩니다.
먼저 포인트 클라우드 도메인에서 도로 주석이 포함된 데이터를 얻습니다. 그런 다음 동종 변환과 카메라 매개변수를 사용하여 점을 투영합니다. 그런 다음 투영된 점을 사용하여 무작위 노이즈가 추가된 손실 계산을 위한 도로 지상 진실 마스크를 얻습니다. 카메라의 이미지는 분할 모델에 의해 처리됩니다. 이전 단계의 예측과 마스크는 Masked loss에 활용되므로 희박한 실측 데이터를 사용하여 모델을 훈련할 수 있습니다. 마지막으로 모델 훈련을 마친 후 분할된 도로가 포함된 이미지를 얻습니다. 훈련 절차와 Masked loss를 사용하면 투영된 실제값을 기존 2D 마스크와 혼합할 수 있으므로 데이터 측면에서 접근 방식이 유연해집니다.
이제 각 부분을 자세히 살펴보겠습니다.
1 포인트 클라우드 데이터 주석
훈련 중에 LiDAR 데이터를 사용하려면 포인트 클라우드에 대한 의미론적 분할 주석이 필요합니다. 이는 다음과 같은 오픈 소스 포인트 클라우드 주석 도구를 사용하여 수동으로 수행할 수 있습니다.
2 데이터 준비
획득된 포인트 클라우드는 우리가 필요로 하는 클래스 라벨이 있는 이미지 분할 마스크를 얻기 위해 동종 변환을 사용하여 이미지 평면에 투영됩니다. 우리의 경우에는 도로입니다. 이러한 투영을 위해 우리는 동기화된 카메라 및 LiDAR 프레임을 사용하고 카메라 매개변수와 LiDAR에서 카메라 프레임으로의 변환 매트릭스를 사용합니다. 라이더 프레임 좌표의 균일한 점 x = (x, y, z, 1)ᵀ
이미지 평면의 점 y = (u, v, 1)ᵀ
투영하려면 다음 방정식을 사용합니다.
변환 후에는 도로 클래스와 LiDAR 스캔의 다른 모든 점 모두에 대해 이미지의 점을 픽셀 마스크로 얻습니다. Lidar 지점은 대부분 이미지 하단에 위치하고 이미지 상단에는 잠재적으로 해당 영역에서 부정확한 예측을 초래할 수 있는 지점이 없기 때문에 다른 LiDAR 스캔 지점이 필요합니다. 이 효과를 제거하기 위해 마스크의 위쪽 절반(네거티브 클래스)에 임의의 점을 추가하여 손실을 계산할 점의 분포 균형을 맞춥니다.
3 가면 손실
우리 방법의 중요한 구성 요소는 모델 훈련 중에 마스크된 손실 함수를 적용하는 것입니다. 이 접근 방식은 LiDAR 기반 지상 진실 마스크의 고유한 희박성을 제거합니다. 오류를 계산하기 위해 전체 이미지 마스크를 고려하는 기존 손실 함수와 달리 마스크 손실은 라이더 지점이 존재하는 영역에만 초점을 맞춥니다. 이 목표 손실 계산을 통해 모델의 학습이 관련 지역에 집중되고 LiDAR가 제공하는 정보를 활용하여 도로 분할 정확도가 향상됩니다. 즉, 점 그리드에 대한 예측 오류를 측정하여 모델이 도로 분할을 학습하도록 합니다. 이는 셔터 안경(셔터 쉐이드)을 사용하여 이미지를 보는 것과 비교할 수 있습니다.
각 이미지의 마스크 손실은 다음과 같이 공식화할 수 있습니다.
마스크 손실은 훈련 이미지에 바이너리 마스크를 적용하여 수행됩니다. 이 마스크는 LiDAR 지점이 위치하여 이미지 평면에 투영되는 영역의 윤곽을 나타냅니다. 훈련 단계에서는 마스크 아래에 있는 픽셀에 대해서만 손실이 계산되므로 이미지에서 주석이 없는 큰 부분은 효과적으로 무시됩니다. 이 방법은 훈련 프로세스의 효율성을 향상시킬 뿐만 아니라 LiDAR 데이터의 희박한 특성으로 나타나는 문제를 완화합니다.
4 모델 훈련
마지막 단계에는 생성된 데이터세트에 대한 분할 모델을 교육하는 작업이 포함됩니다. 훈련 프로세스는 모든 분할 모델에 적합할 수 있으며 연구에서는 PSPNet을 사용했습니다. 이 단계에서 모든 것은 데이터의 품질, 수량 및 사용 가능한 컴퓨팅 성능에 따라 달라집니다.
우리는 Perception Waymo Open Dataset 및 KITTI-360 데이터 세트와 같은 오픈 소스 데이터 세트를 포함한 다양한 데이터 세트에 대한 접근 방식을 테스트했습니다. 매번 우리는 세 가지 실험을 수행했습니다. 2D 도로 지상 진실만을 사용하고, 투영된 점만 지상 진실로 사용하고, 이러한 유형의 지상 진실을 혼합했습니다. 그리고 도로 분할(IoU의 %) 결과는 유망해 보입니다.
실험 | KITTI-360 데이터세트로 훈련됨 | Waymo 데이터세트로 훈련됨 |
---|---|---|
2D 전용(기준선) | 92.3 | 96.1 |
투영된 3D만 | 89.6 | 94.7 |
2D + 투영된 3D 혼합 | 92.7 | 96.3 |
이 숫자는 LiDAR 분할만 있고 2D 이미지 주석에 추가 리소스를 소비하고 싶지 않은 경우에도 괜찮다는 것을 의미합니다. 2D 이미지 마스크만 훈련하는 것과 비교하면 품질 저하가 미미할 수 있습니다. 두 센서의 데이터에 주석을 달 수 있는 리소스가 있는 경우 훈련 프로세스 중에 이 두 가지 유형의 주석을 결합하면 측정항목이 늘어납니다.
연구 중에 우리가 관찰한 접근 방식의 전체적인 이점은 다음과 같습니다.