이제 4학년에 올라간다 생각하니까 조금 조바심이 난다.
일단 최대한 많이 공부하고 많이 지식을 쌓은 뒤에
석사 올라가서 바로 연구에 몰두할 수 있도록 하는게 목표다.
서둘러야지..
(어느새 연구실 9개월차라니)
CVPR'19
https://ieeexplore.ieee.org/document/8953252
Adapting Object Detectors via Selective Cross-Domain Alignment
State-of-the-art object detectors are usually trained on public datasets. They often face substantial difficulties when applied to a different domain, where the imaging condition differs significantly and the corresponding annotated data are unavailable (o
ieeexplore.ieee.org
(논문 아카이브를 못찾겠다)
(IEEE Xplore 계정이 없으면 구글에 치면 open access로 나온다)
Adapting Object Detectors via Selective Cross-Domain Alignment
이 논문은 단순한 Adversarial 방식은 Classification에서 효과가 있고
Object Detection에서는 한계가 있다고 한다.
그래서 저다들은 "where to look", "how to align"이라는 두가지 초점에서
Domain Adaptation을 진행한다고 한다.
즉 적절한 region을 찾아서 거기서 align을 진행한다는 것이다.
1. Region Mining으로 중요한 local region을 grouping해서
outlier에 대한 저항성을 높였다.
2. Region-level Alignment를 통해 source와 target의 차이를 완화시켰다.
논문의 전체적인 구조는 위와 같다.
일단 source domain은 데이터+레이블, target domain은 데이터
이런 세팅은 기본적으로 가져간다.
간단하게 이 논문은 region patch 기반 선별적 adaptation 논문이다.
기초 아이디어는 feature로 부터 이미지를 reconstruct하는 모듈을 도입하고
target과 soruce의 reconstruct된 patche를 align한다는 것이다.
즉, 중요한 object를 포함하고 있는 local region을 align하는것에 초점을 맞춘다는 뜻이다.
Region Mining은 중요한 object를 커버하는 region을 grouping하고
ROI feature을 reassign하는 region을 얻는 것이다.
Grouping
원래 RPN을 이욯애서 region proposal을 얻으려 했으나 2가지 문제점이 있다고 한다.
1. region의 사이즈가 고정되지 않았다.
2. RPN의 region proposal의 노이즈가 심하다.
이 문제를 해결하기 위해 grouping이라는 것을 도입했다고 한다.
먼저 RPN을 통해 Nreg개의 region proposal을 얻었다고 하면
K-means clustering을 통해 K개의 cluster를 얻었다고 한다.
(중심점을 기준으로)
이렇게 중심점을 통한 clustering을 하면 고정된 사이즈의 region도 얻고
노이즈도 줄일 수 있다고 한다.
위 사진을 보면 (a)가 region proposal인데 clustering을 하면
우측 (b)처럼 붉은색 region을 얻을 수 있다.
Feature Ressignment
위 처럼 RoI feature을 얻었다면 이것을 stacking을 한다.
k번째 region을 표현하는 식이다.
mk는 k번째 cluster을 할당한 region proposal의 수다.
d는 feature의 차원이다.
이를 사용하면 고정된 수의 feature을 얻는데에 사용할 수 있어서
간단한 select-or-copy 전략을 쓰기 쉬워진다.
mk는 하이퍼파라미터다.
Adjusted Region-level Alignment는
adversarial 방식으로 target region을 source distribution로 align하는 것이다.
중요한 점은 이미지 전체가 아니라 region을 align 한다는 것.
Region-Level Adversarial Alignment
먼저 두개의 generator Gs와 Gt을 달아서 진행한다.
이 generator는 클러스터별 feature 표현 Θ 기반 K region을 reconsturct한다.
이때 이것을 두 discriminator Ds와 Dt가 진짜 가짜를 판별한다.
그렇게 Adaversarial loss는 다음과 같다.
위 식을 좀더 standard하게 작성하면 다음과 같다.
P는 클러스터 중심점으로 부터 얻는 region을 나타낸다.
Weighting Estimator Dw
target domain의 bounding box는 ground truth가 없기 때문에,
target의 region proposal은 종종 잘못된 값을 가지고 있다.
(대충 real region 중 35% 45%만이 region으로 선택된다고 한다.)
그래서 저자들은 source domain의 ground-truth bounding box를 resort할 수 있다고 한다.
이것은 target domain의 가이드 라인 참고자료로 유용하다고 한다.
저자들은 target이 source domain과 얼마나 closely하느냐에 따라
target region의 가중지를 추정정하는 wegihting estimator Dw를 도입했다.
이 estimator는 source는 1, target은 0으로 해서 binary cross entropy를 사용한다.
이때 Θ들은 reassignment가 끝난 클러스터의 region을 나타낸다.
Dw 성능이 좋을수록 target이 source와 잘 매칭됐다는 뜻이다.
sigmoid activation func.를 사용해서 이 성능을 target region의 weight로 바꿀 수 있다.
그리고 이것을 평균내어 weighting score Wt를 얻을 수 있다.
이 점수는 다음 사진의 초록색 숫자이다.
숫자가 높을수록 target region이 중요한 object를 잘 포함하고 있고 source patch와
비슷하다는 뜻이다.
이것을 위의 Ladv의 가중치로 적용하면 다음과 같다.
전체적인 학습은 다음과 같다.
F는 Detection model, 여기서는 Faster R-CNN이다.
이 논문은 클러스터를 사용한 조금 특별한 방식의 Alignment를 적용했다.
그리고 GRL이 아닌 GAN을 통한 adversarial alignment를 사용했는데
사실 개인적으로 GRL+discriminator말고 GAN을 사용했을 때의 장점을 모르겠다.
공부가 좀 더 필요할 것 같다.
(근데 다들 GAN의 discriminator만 쓰던데.. 흠)