본문 바로가기
Domain Adaptation/Object Detection

Multi-Source Domain Adaptation for Object Detection 리뷰

by khslab 2022. 8. 5.

이 논문은 Domain Adaptation object detection에서
모델을 학습시킬 때 여러개의 source를 사용하여 학습시키는 논문이다.
사실 옛날에 정말 아무런 지식이 없을 시절 이 논문부터
읽었는데 정말 하나도 이해 못하고 몰랐었던 기억이 난다.. ㅋㅋ

CVPR'2021
https://arxiv.org/abs/2106.15793

Multi-Source Domain Adaptation for Object Detection

To reduce annotation labor associated with object detection, an increasing number of studies focus on transferring the learned knowledge from a labeled source domain to another unlabeled target domain. However, existing methods assume that the labeled data

arxiv.org


이 논문은 Divide-and-Merge Spindle Network (DMSN)이라는 framework를 개발했다.

이 framwork는 먼저 hierarchical feature alignment strategy 전략을 사용하는데,
low-level feature, high-level feature을 각각 따로 alignment 하는 전략이다.
low-level feature은 edge와 blob을 포함하는 특성으로 localization에 좋고
high-level feature은 자세한 objects와 events를 포함한느 특성이라 recognition에 좋다.

그 다음으로 pseudo subnet learning (PSL) 알고리즘을 사용하여 target domain에
더욱 근접하게 파라미터를 최적화 할 수 있도록 한다.
pseudo subnet은 exponetial moving average (EMA) 방식으로 업데이트 된다.
EMA는 평균을 낼 때 최근 정보의 가중치는 높이고 지난 정보의 가중치는 낮춰서 평균을 내는
weight average 방식 중 하나다.

그리고 마지막으로 RPN에 새로운 consistency regularization을 사용하여
모델의 안정성을 높였다.


먼저 domain은 M개의 sorce domain(S)과 1개의 target domain(T)이 있다.
(이 논문에서는 source를 2개 씀)
source domain S는 이미지 x와 bounding box B로 구성되어 있고
target domain T는 이미지 x로만 구성되어 있다.
S = {x, B}, T = {x}


Hierarchical Feature Alignment는 앞서 말한대로 Low→High 순으로 한다.
Low-level feature alignment는
1 x 1 convolutional layer로 구성된 discriminator Dl을 GRL 학습 시키며 진행된다.
먼저 G1로 feature을 먼저 추출하고 그것을 Dl에 넣는데 채널의 차원이 M+1로 줄어들게 된다.
(source(M) + target(1))
이때 G1의 feature H, W는 유지된다.
discriminator는 domain을 구분하는 용도인데, M+1개의 domain을 구분하도록 학습시킨다.
이때 GRL을 통해 반대로 domain을 구분하지 못하게 학습을 시켜
결국 domain-invariant feature을 얻게 된다.

위 식을 통해 source domains의 feature을 alignment하고, sources 간의 gap을 줄인다.

위 식을 통해 target domain에서의 연산을 한다.

위 식은 최종적인 low-level feature alignment Loss다.


High-level feature alignment는
binary discriminator Dh를 GRL 학습 시키며 진행된다.
먼저 G1을 통해 추출된 feature들은 M + 1개의 subnet으로 분리되어 들어간다.
source domain으로 추출된 feature들은 M개의 source subnet으로 자기 domain에 맞게 들어가고,
target domain으로 추출된 feature은 M개의 source subnet과 psuedo subent으로 들어가게 된다.
source subnet이 분리되어 있으므로 G2와 discriminator도 각 subnet 안에 모두 존재하게 된다.
binary discriminator은 source와 target의 domain을 구분하도록 학습시키는데,
GRL을 통해 domain을 구분하지 못하도록 학습을 시킨다.
이때 G2는 source feature Fs = G2(G1(x)), target feature Ft = G2(G1(x))를 추출한다.

위의 식으로 연산이 진행되게 되고,

위를 통해 최종적인 high-level feature alignment Loss가 정해지게 된다.


이제 hierarchical feature alignment를 했으니
Pseudo Subnet Learning (PSL)을 해야 한다.
이 아이디어는 서로다른 source분포의 조합으로 target 분포를 근사화 할 수 있다는 것에서 나왔다.
source subnet을 조합할 때 exponetial moving average (EMA)를 쓰는
dynamic weighting (DW) 전략을 사용한다.

위의 High-level feature alignment부분에서
Dh는 source와 target를 구분하는데 그에 따라 나온 loss인
Lh가 클수록 source와 target이 비슷하다는 뜻이다.

이 loss Lh를 매 트레이닝 step마다 dynamic loss memory bank (LMB)에 저장한다.
이때 t번째 step에 i번째 source의 LMB를 다음과 같이 나타낸다.

(c는 u의 길이이다.)

이때 이 u의 모든 요소 (Lh)를 평균낸 것이 V이다.
이 V는 Lh들을 평균 낸 것이므로, V가 크면 source와 target이 비슷하다고 할 수 있다.
그러므로 이 V를 통해 source와 target의 차이를 측정한다.
t iteration에서 i번째 source와 target의 유사성을 다음과 같이 정의한다.

이 β는 i번째 source subnet의 가중치와 관련이 있다.
따라서 이 β를 통해 pseudo subnet 파라미터 P를 EMA방식으로 업데이트 한다.


이제 Hierarchical Feature Alignment도 하고 PSL도 하였으니
RPN을 Consistency Learning을 하도록 해야 한다.
같은 target이미지로 부터 얻은 각 subent의 region proposals을 일관성이 있도록 학습시키는 것이다.

RPN은 top-N rank의 bounding box를 제공하는데
i번째 source subnet과 target subnet의 region proposal 집합을 다음과 같이 나타낸다.

위 source와 target의 region proposal의 최대 IoU를 다음과 같이 나타낸다.

이때 위에 대응되는 source subnet의 region propsal serial number를 다음과 같이 나타낸다.

따라서 전반적인 consistency loss는 다음과 같다.

여기서 IoU 외에 왜 |n* - n|이 필요한지는 아직 모르겠다.
RPN이 top-N개의 region proposal을 만드는데, 그 순서도 맞추려고 그런가?


최종 loss는 다음과 같다.

Ll과 Lh는 GRL 때문에 adversarial loss 처럼 학습된다는 것을 기억하자.
Ldet는 아무모델의 detection loss다.


이 논문은 domain adaptation에서 source를 여러를 사용하는 논문이다.
먼저 high, low 특성을 분리해서 alignment를 하고
source subnet을 조합해서 pseudo subnet를 만든 뒤,
source subnet의 RPN들을 제어하도록 한다.