일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Multi-viewRegistration
- Kinect
- numpy
- LearnGitBranching
- SensorFusion
- CVPR2020
- CONCATENATE
- MirrorSegmentation
- PaperReview
- DepthEstimation
- LayoutEstimation
- 다단
- pytorch
- Deeplearning
- RGBD
- Python
- Omnidirectional
- unsupervised learning
- OmniSLAM
- vstack
- MirrorDiscrimination
- 3d vision
- deep learning
- tensorboard
- git
- hstack
- RuntimeError
- ComputerVision
- IndoorReconstruction
- ICCV2019
- Today
- Total
let me graduate
[PR #1] Where Is My Mirror? - Xin et al. 본문
석사논문 주제로 Object detection에서 거울 반사에 의한 FP를 해결하고자 하였음.
고려한 방법들중에 당연히 DL을 이용하여 거울 영역을 segmentation하면 어떨까 라는 생각이 들었었지만 찾아보니 거울이 포함된 dataset이 없었고, 혼자서 충분한 데이터를 모을 여력도 없었기에 다른 방법을 이용해 시도함.
그런데 곧 있을 ICCV 2019 논문중에 정확히 같은것을 푼 논문을 발견함. arxiv에 있어서 리뷰 해보기로 했음.
Project Page : https://mhaiyang.github.io/ICCV2019_MirrorNet/index
Abstract
거울은 일상 생활에서 모든곳에 있지만 현재 CV system은 거울을 고려하지 않음. 그렇기 때문에 거울 안에 있는 content에 의해서 혼란을 겪을 수 있음.
거울에 의한 이미지를 아닌것과 구분하는것은 non-trivial. 둘은 서로 매우 비슷하기 때문에.
이 논문은 computational approach로 거울 segmentation을 해결한 첫번째 작업물임.
저자는 (1) large scale mirror dataset을 만들었고, 그것을 공개할 예정임. (2) 거울 segmentation을 위한 MirrorNet을 제시함. 이 네트워크는 semantical, low-level color/texture discontinuity를 모델링함으로써 거울을 구분함. (3) 제안한 방식을 큰 스케일로 시험함.
Introduction
Abstract와 전반적으로 같은 내용.
사람은 대체로 거울 경계에서 content discontinuity를 인지함으로써 어떤 content가 거울안에 있는지, 아닌지 구분함.
그래서 직관적인 솔루션은 low-level feature를 적용하여 거울 boundary를 알아내는 것이지만, 만약 물체가 거울 앞에 일부 나타나 있다면 적용할 수 없다. (low-level feature를 사용하여 어떻게 거울을 알아낸다는 것인지 정확한 설명이 나와있지 않음. 그래서 왜 거울을 가리면 안된다는건지는 모르겠다.)
거울 반사는 low-level color/texture 변화 뿐만 아니라 high-level semantic 변화 또한 포함한다. 이 논문에서는 이러한 Contextual contrasted information을 이용한다.
다시, 두가지 방법으로 문제를 해결했는데, (1) 다양한 일상 장면에서 찍은 4,018장의 거울을 포함한 이미지, 직접 annotate한 거울 mask로 이루어진 dataset 구축 (2) contextual constrasted feature 추출을 포함하는 네트워크 제안 (3) 시험
Related Work
- Sementic Segmentation
주어진 이미지에 대해 per-pixel prediction을 수행.
최신의 semantic segmentation은 주로 multi-scale context aggregation을 이용하여 discriminative feature를 구별함
그러나 거울 segmentation은 거울에 반사된 물체 또한 원래 물체도 실제 물체인것처럼 segmentation되기 때문에 적용불가
이 논문에서는 거울, 비거울 영역 두개로 binary classification 문제로 바꾸어 진행함 - Instance Segmentation
동시에 인식, localize, segment 하는 것. 같은 카테고리의 물체들도 각각 구분하면서.
최신의 detection based instance segmentation은 object detection을 확장시켰다. (Faster-RCNN)
Mask RCNN은 instance segmentation mask를 예측하기위한 추가의 branch를 사용
Sementic segmentation과 마찬가지로, 거울 반사영역과 바깥 영역을 구분하지 못함. 거울 안의 물체도 원래 물체로 인식함 - Salient Object Detection (SOD)
가장 눈에 띄는 (Conspicuous) 물체를 알아내는 것.
전통적인 SOD는 low-level hand-crafted feature를 이용했지만 DL 기반 SOD는 bottom-up, top-down saliency inference 등을 고려함
그러나 거울에 반사된 content는 아마 salient하지 않음 (may or may not be salient)
Salient하더라도 일부만 salient할 것임
기존의 SOD 방식은 마찬가지로 거울영역을 segmente 하지 못함 - Shadow detection
이미지에서 그림자를 검출/제거하는 방법
일반적으로 그림자/비그림자 영역의 intensity contrast를 검출하는 방식을 기반으로 함.
반면에 거울에 의해 반사된 영역은 바깥 영역과 비슷한 intensity를 가짐. - Mirror detection in the 3D community
전까지 3D 커뮤니티에서는 거울을 segmentation하려는 시도가 두 번 있었음.- (Matterport3D) 유저가 iPad로 스캐닝할 때 수동으로 거울을 segment하는 방식
- (Whlan et al) 거울에 hardware tag를 붙여놓고 스캐너가 이를 인지하는 방식
tag에 의해 거울의 존재가 인식되면 variation-based segmentation method를 사용하여 거울을 segment 하였다.
depth discontinuity, intensity variance등을 이용
Method 1 - Mirror Segmentation Dataset
First large-scale mirror dataset을 만들었다.
스마트폰으로 촬영한 후 Labelme(https://github.com/wkentaro/labelme)을 사용해 직접 라벨링함.
거울의 종류를 고려하여 촬영 - cosmetic dressing, decorative, bathroom, road mirror 등
daily life scene을 다양하게 촬영 - bedroom, living room, office, garden, street, parking lot 등
3677의 실내 이미지, 341개의 실외 이미지 - 실내 장면에 집중하기 위함
실외 이미지는 더 다양한 거울 모양과 시나리오가 있기 때문에 실내에 more focus
training, test 데이터셋을 fair하게 나눔 - 같은 거울이 둘 다에 들어가지 않도록
결과적으로 3063개의 training, 955개의 text 이미지 생성
Dataset analysis
-
Mirror area distribution
이미지 전체에서 거울이 차지하는 비율
(0.0,0.1] : 작은 거울로 쉽게 clutter됨
[0.5, 0.95] : 카메라와 가깝게 위치함. 물체가 거울을 종종 가림
[0.95, 1.0] : 데이터셋에 추가 안함. 이정도 비율은 contextual 정보를 구별해내기에 충분하지 않음. 사람에게조차 -
Mirror shape distribution
타원, 직사각형 같은 대표적인 거울 모양뿐 아니라 물체에 의해 일부 가림에 의해 더 irregular해질 수 있음 -
Mirror location distribution
거울은 주로 사람의 시야 높이 부근에 있기 때문에 거울 위치를 평균내어보면 약간 위에 위치함. -
Color contrast distribution
거울 안과 밖의 global color contrast를 분석하였음. 거울 content가 salient해서 쉽게 검출되는지 아닌지 확인해보기 위해.
X^2 distance를 이용하여 contrast를 측정하였음.
DUT-OMRON, SBU shadow dataset들에 비해 contrast가 가장 작다 -> 기존 SOD등으로는 해결하기 힘들겠다, more challenging 이슈이다.
Method 2 - Proposed Network
사람은 거울을 구분할 때, 일반적으로 content discontinuity를 살핀다. low-level color/texture 변화 뿐만 아니라 high-level sementic 정보까지.
우리는 거울, 비거울 영역의 constrast를 이용하기로 했음.
Contextual Contrasted Feature Extraction (CCFE) block 를 제안 : multi-scale contextual constrasted feature를 추출
CCFE block을 쌓아서 CCFE module을 만드는데, 이것은 long-range contextual contrasted information을 계층적을 aggregate.
- Overview
제안하는 MirrorNet은 single image를 입력으로 받아 feature extraction network (FEN)으로 multi-level feature를 추출한다.
가장 깊은 feature (full of sementics)가 CCFE 모듈로 들어가 contextual contrasted feature를 학습한다.
Coarsest mirror map(맨 아래의 mirror map; 가장 거친?)을 가지고 contrast가 나타나는 영역을 dividing boundary를 검출함으로써 거울 위치를 알아냄
이 Mirror map은 비거울 영역이 next-upper FEN feature을 거쳐 나온 feature noise를 억제하는 attention map으로서 동작한다. (무슨 말인지?) - 좀 더 깊은 feature (high level)에서 실시한 segmentation이 더 low-level feature에서 실시하는 segmentation을 돕는다. 디테일한 feature noise를 무시하게 만듦으로써
그렇게 함으로써 next-upper 레이어가 후보 거울영역을 구분하는 feature들을 학습하는데 집중하도록 한다.
이렇게 아래로 위로 올라가면 점진적으로 다양한 scale의 contextual contrasted 정보를 이용할 수 있음 (coarse-tofine manner)
- Contextual Contrasted Feature Extraction
1. CCFE block
local region과 주변부의 contextual contrasted feature를 학습함.
$F$ : input features, $f_{local}$ : local convolution with 3x3 kernel with dilation rate 1, $f_{context}$ : context convolution with 3x3 kernel with dilation rate x
추가적으로, 거울 반사 바로 주변에 실제 물체에 의해 발생하는 ambiguity를 해결하기 위해 multi-scale로 구축함. (by considering non-local contextual contrast)
그러기 위해 dilation rate x를 2, 4, 8, 16 로 설정하여 long-range spatial contextual contrast가 얻어지도록 함.
이 multi-scale feature들을 attention module에 넣어서 영역을 나누는 feature map을 생성함
2. CCFE module
화면 내 거울이 크게되면 거울 내에서 또 high contrast가 발생하므로 under segmentation이 발생함
이를 해결하기 위해global image context가 고려되어야 한다.
CCFE block을 cascading(연속적으로 엮음)으로써 깊은 layer가 더 큰 receptive field를 갖게 만들어서 global image context가 검출되도록 하였다.
여기에 attention module을 붙여서 연속한 multi-level feature 중에 거울영역을 구분하는 feature를 선별하도록 학습함.
3. Discussion
[Henghui Ding, Xudong Jiang, Bing Shuai, Ai Qun Liu, and Gang Wang. Context contrasted feature and gated multi- scale aggregation for scene segmentation. In CVPR, 2018.]로부터 Context Contrast Local (CCL) block 영감을 얻었지만 기여점이 존재함.
- CCL block은 작은 물체를 검출했지만 CCFE block은 거울 영역을 분리함
- 또한 attention module이 거울 영역에서 feature respose를 강화하고, 비거울 영역에서 feature noise를 억제함 (attention 쓴게 다르다~)
- CCL block은 한가지 스케일의 contrast를 찾지만 우리는 multi-scale feature contrast로 확장했다. (다양한 크기의 거울을 찾을 수 있다)
- 게다가, 다양한 FEN에서 나온 feature들을 넣어서 사용함으로써 deeper layer에서는 rich semantical contrasted context를, upper layer에서는 low-level contrasted contexts를 얻을 수 있었다.
- Loss Function
Per-pixel cross entropy는 semantic segmentation, SOD에서 널리 쓰이지만, 작은 물체에는 sensitive하지 않다. 큰 물체에 의해 영향을 크게 받는다.
lovasz-hinge loss를 사용하였다. [Maxim Berman, Amal Rannen Triki, and Matthew Blaschko. The lovsz-softmax loss: A tractable surrogate for the op- timization of the intersection-over-union measure in neural networks. In CVPR, 2018.]
이 loss는 scale invariance한 IoU의 성질을 보존하는 non-diffentiable IoU 대용임 -> 무슨 말이지?
Upper-deeper layer 모두에서 loss를 이용함
- Implementation Details
PyTorch로 구현, 이미지를 384X384로 리사이즈, random flipping으로 autmentation, FEN으로는 pretrained ResNeXt101 사용, 남은 부분은 randomly initialized, SGD optimizer 사용, momentum 0.9, weight decay 5*10^-4, Batch size 10, learning rate 0.001 and decayed by poly strategy with poser of 0.9, 160 epochs, S=4 in loss, ws는 경험적으로 1로 설정, NVIDIA Titan V로 12h to converge.
Experiments
생략 - 추후 추가 예정
Conclusion and Future Work
- 최초의 large scale mirror dataset 구축함
- Multi-scale contextual contrasts를 이용한 거울 감지 network 제시
- 제시한 MSD dataset과 ADE20K dataset에서 제시한 네트워크를 검증. 인터넷에서 가져온 challenging image 로도 검증
-
Limitation
- 일상 장면에서 거울 검출 목표로 실시했고, 야외 데이터는 많이 없다.
- Contextual contrast가 부족한 extreme case에서는 동작하지 않음.
일상 장면에서 거울 검출 목표로 실시함
야외에서는 고층 건물의 유리 외벽등에 의한 거울 반사가 존재할 수 있음. 미래에는 이런것들도 다뤄볼 예정. 자율주행, drone navigation에 도움을 줄 것