본문 바로가기
🏛 Research/Material & Texture Recognition

[논문 리뷰] Deep Texture Recognition via Exploiting Cross-Layer Statistical Self-Similarity∗†‡

by 뭅즤 2021. 10. 4.
반응형

본 논문은 CVPR2021에 게재된 논문이며 texture recogntion(texture, material datatset) SOTA를 달성한 연구입니다. 

Texture Recognition ?

Texture Recognition은 Image classification 분야의 일부로 object(e.g. 강아지,고양이,사슴,트럭,...etc.)가 아닌 texture(체크무늬, 줄무늬, 페이즐, 밧줄, etc.)를 분류하는 작업입니다. object는 하나의 class가 어느정도의 deformation(object의 세부 class, object를 보는 각도, object의 자세 차이)을 가지지만 유사한 shape을 가지므로 global한 shape정보가 주요한 feature로 사용됩니다. 하지만, texture는 동일한 class이더라도 유사한 shape을 가지지 않을 수 있고 전혀 다른 object에서 동일한 texture 구조가 존재할 수 있습니다. 또한 texture는 일정한 패턴이 어느정도의 가변성을 가지며 반복되는 statistical한 특징을 가지고 있으므로 spatial-orderless한 local 정보가 상대적으로 중요합니다. 

최근 연구에서는 backbone net에서 추출된 feature들을 spatial-invariant한 feature로 인코딩하여 texture 정보를 표현하는 방법들이 많이 소개되었는데, 이는 scale, rotation, global shape 을 포함한 일정수준의 가변성을 가지는 texture의 feature를 class가 동일하다면 feature map에서 아주 가깝게 맵핑되길 바라기 때문입니다. spatial-invariant하지 않은 network라면 동일한 texture이지만 다른 class에서 주로 관측되었던 shape정보가 보이면 오분류할 가능성이 커지기 때문입니다. 하지만 dataset에 따라 real-world에 가까운 이미지 일수록 context 와 같은 global 정보도 중요해질 수 있기 때문에 최근에는 shape 정보(backbone에서 추출되는 GAP된 feature)와 texture 정보를 적절히 밸런스있게 사용하여 texture를 분류하려 합니다. 

 

Texture vs. Material

Recognition 관점에서 material은 texture 보다 상위 개념입니다. Material은 color, texture, reflectance(BRDF), force, sound 등의 다양한 properties를 가지지만 single image visual recognition에서는 material을 분류하기 위해 가장 큰 특성은 texture이기 때문에 texture recognition task에서는 일반적으로 DTD 같은 texture dataset 과  FMD, KTH-TIPS 등의 material dataset을 모두 사용합니다. 

(Texture는 서로 다른 material 이더라도 visual texture가 같으면 같은 texture로 보고 material은 말그대로 동일한 재질끼리 하나의 클래스를 구성합니다.)

 

Introduction

최근 수 년간 CNN은 texture 인식은 위해 사용되고 있지만, 일반적인 FC layer를 사용하는 것은 texture 인식에 적합하지 않습니다. FC layer의 출력은 texture의 가변성의 주요 원인 중 하나인 spatial domain transform에 민감할 수 있기 때문입니다. 결론적으로, CNN-based texture 인식은 spatial transform에 robust한 convolutional feature로부터 distinct description을 생성하는 aggregation module이 필요합니다.

본 논문에서는, texture 인식을 위한 CLASS(Cross-Layer Aggregation of Statistical Self-similarity)라는 새로운 aggregation module을 제안합니다. Network 깊이를 따라 입력 이미지에서 texture의 잘 알려진 속성 중 하나인 statistical self-similarity (SSS)를 전달하는 dynamic 프로세스여러 layer에 걸쳐 CNN feature map을 모델링합니다. CLASS moudle은 cross layer feature의 local differential box-counting dimension의 soft histogram을 사용하여 cross layer SSS를 특성화하여 texture 인식에 활용합니다.

 

- Cross-layer Statistics

CNN은 이미지의 hierarchical representation을 구축합니다. 한 layer에서 다음 layer로의 feature map은 더 작은 scale에서 더 큰 scale로 texture 구조를 인코딩합니다. scale에 걸친 texture 구조의 evolution rule이 인식에 도움을 줍니다. 그러나 texture feature의 layer간 dynamics를 특성화하는 작업은 non-trivial하며 어떤 statistical quantity를 사용할 것인가에 대한 연구는 거의 없습니다.


- SSS in texture

texture는 서로 다르지만 모순되는 속성이 포함되어 있는 반면에 texture는 statistical staionarity를 갖는 확률적 프로세스로 잘 모델링될 수 있으며 texutre는 이러한 프로세스를 외부 distortion으로 구현됩니다.

statistical staionarity는 texutre 이미지의 각 영역이 특정 통계 측면에서 유사한 값을 갖는다는 것을 의미합니다. 이 속성은 SSS와 직접 관련이 있으며 다른 scale의 패턴은 동일하지 않지만 동일한 statistics로 표현됩니다. 과거 texture 분류에서 SSS를 사용하지만, CNN기반에서 explicit 하게 활용되지는 않았습니다.

 

- Cross-layer SSS

웨이블릿 변환은 이미지의 SSS를 활용하는 좋은 도구입니다. CNN의 hierarchical convolutional feature map은 웨이블릿 영역에서 다중 scale 표현의 일반화로 볼 수 있습니다. 따라서 CNN을 웨이블릿 변환의 counterpart로 취급하면 SSS는 CNN의 feature map을 따라 이미지 domain에서 전달될 가능성이 높습니다.

위의 내용에서 영감을 받아 본 논문에서는 cross-layer SSS를 갖도록 잘 학습된 CNN의 feature map을 모델링하고 이를  aggregation에 활용하기 위해 CLASS module을 구성합니다. 기본 아이디어는 다른 CNN layer에서 추출된 feature map에서 동일한 index의 채널끼리 모아서 DBC dimension을 계산하여 모든 블록에 대한 DBC dimension의 histogram을 descriptor로 사용합니다. DBC dimension은 SSS를 특성화하기 위한 프랙탈 기하학에서 잘 정립된 양입니다.

 

CLASSNet

1) Size Normalization

cross layer feature를 그룹화하기 위해 각 RB에서 추출된 feature들을 1x1 conv와 upsampling을 통해 채널개수와 H,W 를 동일하게 맞춰줍니다.

2) Cross-layer grouping

cross-layer를 위해 feature map의 동일한 index의 channel끼리 합쳐서 grouping 해줍니다.

3) DBC pooling

동일한 channel끼리 합친(동일한 특징을 나타내지만 network depth에 따라 서로 다른 scale을 가진 feautre 들을 합친 것으로 생각, 그렇게 학습되길 바람) feature들을 DBC pooling을 통해 1개의 채널로 만들어 줍니다.

4) Aggregation

 

 

 

* Box-counting

box counting은 이미지에 box 사이즈를 바꿔가며 몇개의 box가 필요한지 카운팅 후 log scale로 맵핑 후 least square regression을 통해 dimension을 계산합니다.

생각해보면 박스사이즈가 클때 카운팅이 동일하다가 박스 사이즈가 작아지면서 카운팅이 많이 증가하는 이미지는 복잡한 이미지이며, 카운팅이 적게 증가하는 이미지는 비교적 단순한 이미지인 것을 알 수 있습니다.

 

DBC dimension 계산 시 유사한 이미지끼리는 dimension이 거의 똑같고, 다른 texture 끼리는 dimension이 차이나는 것을 확인할 수 있습니다.

 

Experiments

대부분의 dataset에서 sota를 갱신하고 tranable parameter는 backbone에 1x1 conv만 추가되기 때문에 parameter 수도 굉장히 작은 것을 확인할 수 있습니다.

abalation study로는 class module과 DBC pooling의 효과를 따로 검증하기 위해 위와 같은 실험을 진행합니다. 

 

반응형