딥러닝 분석가 가리

LDC: Lightweight Dense CNN for Edge Detection Review 본문

딥러닝 논문 리뷰

LDC: Lightweight Dense CNN for Edge Detection Review

AI가리 2023. 6. 1. 23:55

"LDC: Lightweight Dense CNN for Edge Detection"

Abstract

  Edge detection을 위해 Lightweight Dense Convolutional (LDC) 모델을 제안한다. 제안된 모델은 두가지 SotA 방법을 적용했지만, 이러한 접근 방식과 비교해 4% 미만의 parameter가 필요하다. 제안된 구조는 다른 lightweight model (less than 1M)가 비교했을때 얇은 edge map을 생송하고 높은 ODS 점수에 도달한다. 그리고 heavy model(less than 35M)과 비교했을때 비슷한 결과를 얻는다. 다른 sota 모델과 비교한 정성적, 정량적 결과를 제공한다. 제안된 LDC는 pre-trained weights를 사용하지 않고 strightforward hyper-parameter 세팅을 요구한다.

Introduction

  Edge detection은 여전히 computer vision과 image processing에서 핵심 task로 간주되어진다. 예를들어, 의료영상 분할과 sketch image retrieval에서 사용된다. 지난 수십년 동안 deep learning 기반의 접근법들은 classical learning 부터 non-learning 기반의 접근까지 SotA 결과들을 나타냈다. Deep learning 방법의 빠른 개발로 인해 최근 몇년은 CNN 모델이 image edge detection을 수행하고 있다. 새로운 구조를 설계하거나 새로운 loss function을 도입해 성능이 지속적으로 개선되었다. 이렇듯 상당한 진전이 있었지만, 대부분의 edge detection 모델은 매우 깊은 네트워크로 높은 성능(ODS, OIS, AP)을 나타냈다. 이렇게 깊은 네트워크는 연산량이 많다는 단점이 있다. 유감스럽게도 이러한 edge detection 접근 방법은 실 세계에서 적용하기 힘들다.

  앞에서 언급한 점들을 해결하기 위해 Lightweight Dense CNN (LDC)라는 새로운 lightweight 구조를 제안한다. 제안된 구조는 고주파 정보에 중점을 두어 가치있는 feature를 많이 학습하고 실제 프로그램을 위한 실용적으로 고안되었다. 제안된 구조는 DexiNed를 기반으로 하지만, 성능과 적용 가능성 사이에서 더 나은 균형을 추구하기 위해 더 작은 filter 크기와 소형 모듈이 고려된다. 그래서 제안된 수정의 결과로 DexiNed 보다 50배 작고 대부분의 SotA 방법보다 가벼운 1M 미만의 parameter를 가진 모델을 얻었다.

  제안된 네트워크는 그림 1처럼 기존의 DexiNed 보다 더 선명한 edge-map을 제공한다. BDCN과 비교했을 땐 더 많은 edge를 추출했다. 제안된 구조는 적은 수의 매개변수로 대부분의 edge detection 데이터셋 에서 높은 점수를 도달 했다. 사용한 edge detection 데이터는 edge annotation 부분인 Multice Dataset for Boundary Detection (MDBD), Barcelona Images for Perceptual Edge Detection (BIPED), Berkely Segmentation Dataset (BSDS) 그리고 Reflectance, Illuminace, Normal 그리고 Depth edge를 측정하는 BRIND를 사용한다.

Contribution

  • DexiNed을 기반으로 674K parameter를 가진 Lightweight CNN 구조를 제안
  • Loss function을 수정
  • Parameter 양이 1M 보다 적은데 SotA를 달성
  • Edge detection을 위한 Lightweight CNN의 첫번째 연구

Propsed Approach

Convolutional neural network architecture

  DexiNed 구조는 두가지 subnet인 Dexi와 USNet를 가지고 있다. Dexi는 6개의 블럭으로 구성되어 각 블럭중 3번째 까지는 두 종류의 skip-connection으로 연결된다. USNet은 Dexi subnet의 입력 이미지와 동일한 크기의 edge map에서 feature map을 upscale 하고 변환하는데 사용되는 조건부 CNN이다. 이 구조는 parameter가 35M이나 된다. Lightweight에 초점을 맞춰 DexiNed를 다음과 같이 수정하는 것을 제안한다.

  • LDC에 DexiNed의 4개의 block만을 사용
  • 일정한 filter size를 사용하는 DexiNed와 달리 LDC는 filter size를 줄여서 사용
  • LDC의 구조는 그림 2와 같음
    • 4개의 중간 edge map 예측을 가지고, 최종 예측은 이를 융합
    • Edge map 융합은 CATS에서 영감을 받고 이를 Context-aware Fusion block 혹은 CoFusion이라 부름
    • 수정된 LDC는 kernel size 64, conv layer 3, normalization 2개 대신 kerenel size 32, conv layer 2, nomalization 1개 사용
  • LDC의 중간 edge map을 형성하기 위해 USNet은 DexiNed와 동일한 구성으로 사용
  • LDC를 훈련시키기 위해 CATS의 손실함수를 조금 수정함

  수정된 LDC는 674K parameter를 가지므로 DexiNed parameter의 2% 정도 이다.

Loss Function

  LDC를 훈련하기 위해 CATS의 손실 함수를 조금 수정한다. LDC가 반환하는 edge map 예측인 Yˆ 는 m×n×p 이고 주어진 RGB 는 m×n×3 이다. 그리고 Yˆ 를 검증하기 위해 GT인 Y와 비교한다. Yˆ_p는 CoFusion 단계에서 예측된 최종 출력을 의미한다. Yˆ _p 출력은 정성적, 정량적 빅 대상으로 간주된다. CATSloss2 는 i 번째 출력 Yˆ 마다 계산되는데 CATSloss2는 tracing (cross-entropy), boundary, texture suppression loss 로 이루어진다. 이에 따른 total loss는 다음과 같다.

α는 각 loss에 곱해지는 가중치 값이다. tracing loss는 i 번째 Yˆ 의 예측인 5개 모두를 합한 값으로 이는 다음과 같이 정의된다.

w는 tracing loss의 가중치, Y_와 Y+는 Y가 주어졌을때 negative와 positive edge smaple이다. Boundary tracing loss는 다음과 같이 정의 된다.

E 는 Y의 edge point, R^e _p는 Yˆ_j의 edge-map patch를 나타내고 이것의 중심은 p이다. R^e _p의 가장자리 점은 D_p로 표시된다. 마지막으로 texture loss는 다음과 같다.

R^t _p는 edge-map patch이고 이것의 중심은 non-edge point p 이다. Eˆ 는 boundary loss에서 사용된 모든 confusino pixel과 edge를 포함한 집합이다.

 

Experiments

Datasets

  • Train : MDBD, BIPED, BRIND
  • Test (Qualitative) : CID, NYUD, CITYSCAPES 

Implementation details

  • Framework : PyTorch, GPU : TITANX 12GB
  • Optimizer : Adam, Weight decay : 0, Batch size : 8
  • Learning rate : 5e-5(epochs 0), 25e-4(epochs 6), 5e-4(epochs 12), 1e-5(epochs 18)
  • Metrics : Optimal Dataset Scale (ODS), Optimal Image Scale (OIS), Average Precision (AP)

Quantitative comparison

  LDC를 다른 lightweight 접근법과 정량적 결과를 비교한다. 비교하는 모델로는 BDCN-B2 (268K), TIN (244K), PiDiNet (710K)가 있다. 비교한 결과는 표 1과 같다. Ep는 epochs로 제안하는 방법의 epochs가 가장 작다.

  제안하는 방법의 가벼움을 증명하기 위해 BSDS500 데이터에서 SotA인 다른 lightweight 모델과 FPS를 비교한다. 그림 3 (a)는 다양한 버전의 LDC와 표1의 모델별 FPS를 측정한 결과이다. i5-10210U CPU에서 측정되었으며, LDC에서 가장 많은 블럭을 사용한 LDC-B6가 표 1의 다른 모델보다 높은 FPS에 도달한다. 그리고 기존의 제안하는 LDC는 4.1FPS를 나타냈다. 그림 3 (b)는 epochs 별 ODS를 나타낸 것이다. 훈련 횟수가 17회 일때 가장 안정적인 학습이 이루어 진다.

Ablation study

  LDC의 block의 갯수 Loss function setting, 그리고 edge-map fusion 방법에 따라 실험한 결과는 표 2와 같다.

Qualitative results

  각 훈련 데이터에 따른 정성적 결과는 그림 4, 5, 6과 같다. 

Conclusion

  • Edge detection을 위한 실용적이고 간단한 CNN 모델을 제시
  • 이 모델은 70만 개 미만의 parameter를 가지고 있으며 edge detection에서 SotA 성능 달성
Comments