Hello Computer Vision

CRF(conditionally random field)에 대해 이해해보기 본문

Segmentation

CRF(conditionally random field)에 대해 이해해보기

지웅쓰 2023. 3. 9. 12:18

이번에 Segmentation에서 중요한 논문 중 하나인 deeplab v1 을 공부하는 도중 CRF에 대한 용어가 나왔는데

잘 이해되지 않아 공부하고 기록하려고 한다. 추가로 unary 가 무엇인지 몰라 찾아보았다.

참조한 내용과 블로그들은 아래에 첨부하였습니다.

 

Unary란?

이거에 대해서 잘 설명해주는 글들이 없었는데 ChatGPT에게 물어보아서 답을 얻었습니다.

"In the context of image segmentation in computer vision, unary refers to a term that describes a type of potential function or cost function that is used to determine the likelihood or probability that a particular pixel or region in an image belongs to a particular class or segment."

segmentation에서는 전체 이미지를 input으로 받고 해당 전체 이미지에 대해서 분류하는 것이 아니라 pixel별로

정확하게 분류하는 것이 중요한데 이에 있어서 pixel마다 어느 클래스로 붙을지에 대한 확률을 나타낸다고 나와있네요.

여기서 첫번째 term 이 unary term이고 2번째가 pairwise term이다.

 

 

CRF란?(Conditionally Random field)

우선 해석을 해보자면 "조건부 무작위 장" 이라는 뜻을 가지고 있다.

통계적 모델링 방법 중 하나로 구조적 예측에 사용된다. 일반적인 분류자가 이웃하는 표본을 고려하지 않고 라벨을 예측한다면

이 방법은 이웃하는 표본들을 고려하여 예측한다고 할 수 있다.

 

CRF가 왜 필요할까?

일단 DeepLab v1 논문에서 나온 이유들을 적어보자면 DCNN 은 invariance 라는 특징을 가지고 있어 classification 문제에 뛰어나지만

정확한 위치를 필요로 하는 segmentation에서는 한계가 있다고 한다.

 

해당 이미지처럼 대략적인 이미지 위치는 알 수 있지만 정확한 pixel단위의 정확도는 조금 떨어진다고 할 수 있다.

그렇기 때문에 이러한 문제점을 해결하기 위해 CRF가 필요하다고 할 수 있다.

 

CRF에도 적용하는 여러 수식이 있지만 DeepLab v1에서 사용된 수식은 다음과 같다.

i, j : i, j번째 pixel 값

여기서는 근처에 어떤 픽셀이 위치해있고, 어떤 색깔인지를 고려하여 가우시안 방법을 채택하였다.

 

지금까지 segmentation에 나오는 CRF에 대해 가볍게 알아보았는데, 틀린 점 있다면 지적해주세요!

 

참조

https://shining-programmer.tistory.com/1

ChatGPT

https://ko.wikipedia.org/wiki/%EC%A1%B0%EA%B1%B4%EB%B6%80_%EB%AC%B4%EC%9E%91%EC%9C%84%EC%9E%A5