Yuhong Li, Xiaofan Zhang, Deming Chen - University of Illinois at Urbana-Champaign
https://arxiv.org/abs/1802.10062
CSRNet(Congested Scene Recognition)
1) 매우 혼잡한 장면을 이해
2) 정확한 집계 추정을 진행
3) 높은 품질의 density map을 제안
CSRNet의 2가지 요소
1) CNN / 2) dilated CNN
쉽게 훈련 가능하고 당해년도 SOTA 달성
congested scenes analysis의 현재 방법은 crowd distribution의 특성을 표시할 수 있는 density map presenting 방법으로 진화했다.
해당 distribution map은 정확하고 종합적인 정보를 얻도록 도와준다. 그러나 2가지 문제가 있다.
1) prediction manner
2) diversified scene
최근에는 DNN 기반의 방법들이 각광을 받고 있고 이는 높은 정확도를 달성하는 반면 2가지 단점이 있다.
1) 많은 훈련 시간
2) 효율적이지 못한 branch 구조
ex) multi-column CNN : MCNN (2016 CVPR)
MCNN은 단순히 깊고 정규화된 single network보다 성능이 좋지 못하다
Table 1에서 확인할 수 있듯 단순 깊은 CNN 모델 대비 파라미터의 수도 많이 필요하고 성능 또한 좋지 못하다.
본래 MCNN은 유연한 receptive fields를 각 branch별 CNN이 학습함으로써 효과적임을 보이고 싶지만 실제로 Figure 2에서 보이듯 각 branch column은 비슷한 패턴을 학습하고 비슷한 특징을 학습하는 것을 확인할 수 있다.
이에 CNN 기반 density map 생성기를 설꼐하는데 초점을 맞춰 깊은 network인 CSRNet을 제안한다.
초기 10 layer는 VGG16 이후 dilated convolution layer들을 통해 확장된 receptive fields와 더불어 해상도를 잃지 않는 선에서 깊은 특징을 추출한다.
이로써 SOTA 달성
2.1 Detection-based approaches
초기 연구자는 전체 인간 몸을 찾아 저차원의 특징을 추출할 수 있는 detection 기반의 방법들에 집중했다. sliding window 방식을 통한 사람 추출과 그 숫자를 세는 방법이다.
ex) Haar Wavelet, HOG
그러나 이 방식은 성능이 좋지 못하고 객체가 흐릿해져 부분적인 몸 부위를 찾는 방식으로 진화한다.
2.2 Regression-based approaches
2.1 detection 방법은 높은 혼잡도의 장면에서는 부족하기 때문에 regression 기반 접근 법을 통해 발전하고자 했다.
이는 cropped 이미지 패치들로부터 추출된 특징들 사이 관계를 학습하는 방법으로 Fourier analysis와 SIFT etc가 있다.
2.3 Density estimation-based approaches
2.2 regression 방법은 saliency라는 특징을 간과하여 지엽적 영역에서의 부정확한 결과를 초래한다.
이에 따라 local region에서의 특징들과 그 물체 density map 간의 linear mapping을 학습함으로써 문제를 해결한다.
2.4 CNN-based approaches
density map을 예측하기 위한 CNN 기반 접근 방법들 제안
2.5 Limitations of the state-of-the-art approaches
다양한 CNN 기반 방법들이 제안되었고 그 가운데 MCNN이 좋은 성과를 보였지만 4가지 단점들이 존재한다. 이 단점들을 고려하여 본 모델을 제안했다.
a deeper CNN 활용
1) capturing high-level features with larger receptive fields
2) generating high-quality density maps without brutally expanding network complexity.
강력한 transfer learning 능력과 density map generation을 위한 back-end과 concat을 쉽게할 수 있는 유연한 구조 때문에 CSRNet 앞 단에 VGG16을 선택한다.
많은 사례들을 토대로 VGG는 마지막 FNN를 제거하는 것만으로도 도움이 된다는 사실을 알았고 깊은 sliency 정보를 추출하고 output 해상도를 유지하기 위해 이후에 dilated convolution layer를 활용한다.
3.1.1 Dilated convolution
Pooling layer는 invariance를 유지하고, overfitting을 광범위하게 조작하지만 급격한 spatial resolution의 정보를 손실한다.
Decov는 정보 손실이 완화되지만 추가적인 복잡성이나 실행 latency에 있어 적합하지 않다.
이에 따라 segmentation에서 상당한 정확도 향상을 보여온 Dilated conv가 적합한 선택이다.
Dilated cov는 추가적인 parameter나 computation 추가 없이 receptive field를 확장할 수 있다. 이를 통해 multi-scale contextual 정보를 해상도를 유지한채 응집할 수 있다.
Figure 4 첫 번째 행에 해당하는 max_pool - conv - deconv 대비 dilated conv를 활용하는 것이 결과에서 더 detail한 정보를 보유한다.
3.1.2 Network Configuration
앞 단은 VGG-16을 활용하고 뒷단은 dilated conv를 활용한다.
이때 3x3 kernel과 같은 작은 kernel을 사용하는 것이 유용하며 FC layer는 제거하며 앞 10 layer만을 사용한다. 이는 pooling operation에 이ㅡ해 유발된 결과 정확도에 있어 해로운 측면을 억제하기 때문이다.
3.2.1 Ground truth generation
MCNN과 마찬가지로 density map을 생성하기 위해 geometry-adaptive kernel을 사용한다. normalized 1로 된 Gaussian kernel을 사용하여 각 head annotation을 흐릿하게 만듬으로써 구성함.
3.2.2 Data augmentation
9 patch : 4개는 이미지의 4사분면, 5개는 random crop
mirror augmentation을 진행
3.2.3 Training details
첫 10개의 conv layer는 fine-tuned VGG 16 활용
초기 0.01 std를 가지는 Gaussian initialization 초기화.
learning rate가 1e-6인 SGD 활용
Loss는 density map간의 Euclidean distance 차이
N은 이미지 숫자, C는 counting
PSNR과 SSIM을 density map의 질을 평가하는 지표로 활용
CSRNet A : dilation 1
CSRNet B : dilation 2
CSRNet C : dilation 2 & 4
CSRNet D : dilation 4
parameter 숫자는 16.26M으로 모두 동일
dropout은 큰 성능 향상이 없어서 사용하지 않음
결과 : B가 가장 좋게 나옴 -> 이를 기본 구조로 사용 (Table 3 참조)
https://github.com/leeyeehoo/CSRNet-pytorch