하루에 논문 한편씩, 핵심만 읽고 요약하기 : Paper 04


Paper Link : https://arxiv.org/pdf/2006.00303v1.pdf (CVPR2020)




Image from here




1. Abstract

해당 논문에서는 새로운 super boundary-to-pixel direction (super-BPD)와 super-BPD를 이용한 segmentation 알고리즘을 제안합니다. 구체적으로, 각 픽셀에 대하여 BPD를 정의하며, BPD는 특정 픽셀에서 가장 가까운 경계선으로부터 해당 픽셀을 가리키는 2차원 단위 벡터입니다. 해당 super-BPD를 이용하여 정확하고 효율적인 모델을 만들었습니다.


- Public code : https://github.com/JianqiangWan/Super-BPD






2. Super Boundary-to-Pixel Direction


Super-BPD의 결과를 나타내면 위와 같습니다. (a)는 super-BPD segmentation boundary를 빨간색으로 나타낸 이미지입니다. 여기서 노란색으로 박스친 부분을 더욱 자세히 들여다보면, (b)에서 알 수 있듯이 주변 픽셀이 거의 비슷한 값들을 갖고 있습니다. 하지만 (c)에서 super-BPD의 결과를 보면 robust하게 boundary-to-pixel driection (BPD)를 예측하고 있는 것을 확인할 수 있습니다.




BPD를 조금 더 자세히 살펴보도록 하겠습니다. (a)에서 임의로 하늘색 점 p를 잡았을 때, 빨간색으로 표시된 가장 가까운 경계선이 존재할 것이며 이때 (b)에 표시된 Bp처럼 해당 경계선 위의 점이며 p와 가장 가까운 점이 존재하게 됩니다. 이때 BPD인 Dp는 Bp로부터 p를 가리키는 2차원 단위 벡터(unit vector)로 정의됩니다. 이러한 BPD를 이미지 상의 모든 픽셀에 대하여 구하고 해당 방향을 color-coded로 표현한 결과가 (c)입니다.


BPD인 Dp를 구하는 과정을 수식으로 나타내면 아래와 같습니다.






다음은 super-BPD 과정을 전반적으로 살펴보도록 하겠습니다.


우선 FCN (Fully Convolutional Network)를 이용하여 input image로부터 BPD field를 학습합니다.



이때 사용하는 loss function은 L2-norm distance와 angle distance입니다.




Direction similarity threshold (Algo. 1)을 이용하여

BPDs를 super-BPDs로 묶어준 다음에 root pixels를 추출합니다.


Algo. 1은 아래와 같습니다.



해당 내용은 자세하게 다루지 않을 예정이며

참고로 아래는 논문의 관련 설명입니다.


Precisely, inspired by the algorithms of computing component trees [36, 30, 6], we adopt a parent image P to en- code the relationship between neighboring pixels. Initially, the parent of each pixel p is set to itself, P(p) = p and the set of root pixels R is empty. For each pixel p, we define its next pixel np as the neighboring pixel that is pointed to by Dp. As depicted in Algo. 1 (line 5-9), for each pixel in the raster order, if the angle between its BPD and that of its next pixel np, Dp and Dnp , is smaller than a given threshold θa, we group them together by setting P(p), the parent of p, to np. Otherwise, we insert p into the set of root pixels R. The final parent image P partitions the image into a forest of trees, each of which is rooted at a root pixel in R. We define each tree as a super-BPD. 




위의 그림은 (b)에서 노란색 박스로 되어 있는 부분을 확대한 결과입니다.








3. Image Segmentation with Super-BPD


다음은 super-BPD를 활용하여 최종 목적인 segmentation을 하는 방법에 대한 설명입니다. 우선 super-BPD를 주변의 root pixels와 병합을 통하여 initial segmentation을 얻습니다. 그런 다음, RAG (Region Adjacency Graph)를 만들고 initial segments를 최종 결과에 합쳐주기 위하여 graph partitioning을 적용합니다. 여기서 RAG는 인접한 segments의 root pixels를 이어주는 edges와 root pixels로 구성되어 있습니다.


Super-BPD로부터 initial segmentation을 얻고 RAG를 만든 후 graph partitioning을 진행하는 과정은 아래와 같습니다.




4. Result











5. Conclusion

일반적인 segmentation을 할 때, boundary을 더욱 중요하게 여겨서 성능을 높인 연구로 착각하고 논문을 읽기 시작했는데 논문의 주된 방향과 달랐어서 아쉬웠던 논문입니다. 또한 딥러닝을 사용하기는 했으나 알고리즘적인 내용이 많아서 이런 시도도 있구나 정도로 읽기 좋은 논문이었습니다.