object detection과 다르게 도로에 레이블을 지정하기 위해 경계 상자를 사용하지 않는다는 차이점이 존재한다.
detection은 카테고리가 어떤 boundary내에서 이루어 진다면 segmentation은 all pixel에 카테고리를 정해준다. sematic segmentation은 같은 클래스의 instance를 구별하지 않는다는 것이고, instance segmentation은 class뿐만 아니라 instance도 구별하는 것이다.
원핫 인코등으로 class via에 대해 출력 채널을 만들어서 segmentation map을 위와 같이 생성한다.
⇒ output으로 각 픽셀 별 어느 class에 속하는지 나타내는 label을 나타낸 segmentation map을 만듭니다.
segmentation은 기본적으로 encoder(downsampling)과 decode(upsampling) 구조를 가진다.
class id : car, person, road와 같은 레이블을 사용하여 이미지의 각 픽셀 단위에서 레이블을 지정하는 작업을 포함한다. 즉, Pixel이 어떤 class에 속하는지에 대해서만 관심이 있습니다.
그렇다면 실차에서 적용하기 위해서 생각을 해보자. 차선을 찾는 것에만 특정 개발팀에서 관심이 존재한다면, semantic segmentation 기술을 채택하면 될 것이다.
일반적으로 RGB image를 입력으로 사용합니다. 그리고 관심 있는 객체를 찾은 객체에 대해 pixel wise classfication을 진행합니다. 객체 당 색상을 다르게 지정해서 구별하기 쉽게 확인할 수 있게 해준다. 보행자 탐지에 관심이 있는 부서는 다음과 같이 해당 기술을 채택해서 instance label이 frame에서 튀어나오면 급정지를 진행시키는 개발도 진행할 수 있을 것이다.
semantic과 instance segmentation기술을 결합해서 이미지의 모든 픽셀에 클래스 레이블과 인스턴스 ID가 할당되는 것으로 확인할 수 있다. 복잡하게 처리해야하는 다른 개발부서에서는 다음과 같이 instance, panoptic segmentation 기술을 접목해야할 것이다.
prediction map을 class별로 평가하는 경우에는 binary classification으로 생각해 pixel 및 channel 별로 평가한다. pixel별 image classification 문제로 평가하는 경우에는 pixel별로 정답 class를 맞추었는지의 여부, 즉 True/False를 구분한다.
출처 : https://www.slideshare.net/SebastianRaschka/nextgen-talk-022015#34
Mask도 일종의 region임을 생각했을 때 segmentation 문제에서는 ground truth와 prediction region 사이의 IoU를 계산한다.!
segmentation을 이용해서 drivable area, instance segmentation, adjacent lane, lane markings가 존재한다.
현재 우리가 구현하고있는 ROS 차에서는 drivable area, lane marking을 이용해서 주행을 하려고 개발 단계에 있다. 단, segmentation을 진행하려면 object detection할 때처럼 CPU를 통해서 하는게 아니라 GPU의 보조가 존재해야한다. 특히 CUDA가 없는 PC에서 돌리려고 할 때 에러 프레임과 함께 작동하기가 어려웠다.
분할 마스크를 어떻게 사용합니까? 결국 카메라 2의 픽셀(100, 100)이 도로라는 정보는 직접적인 도움이 되지 않으므로 이를 3D 또는 이와 유사한 것으로 변환해야 합니다.
출처 : 해당 블로그
CVPR 2022년에 Panoptic BEV라는 기술을 선보였는데, 해당 기술은 Bird-eye View를 사용하는 방법이었다.
Panoptic Bird Eye View 알고리즘( 출처 )
segmentation 기술 소개 : https://www.thinkautonomous.ai/blog/image-segmentation-use-cases/
차량에서 segmentation 적용 : https://www.thinkautonomous.ai/blog/image-segmentation-use-cases/