Motivation
该论文的内容是行人实例检测,针对的问题是数据集只有部分数据有标注,其他大部分数据没有标注,即半监督(semi-supervised)学习研究的内容。该论文使用GAN来生成行人实例样本,训练一个行人类别分类器,用该分类器对未标注的图片进行扫描分类,得到未标注图片的伪标注,最后使用有标注的数据和伪标注的数据训练重新训练检测器。
- Semi-supervised.
- 适用情景:部分数据有label,大部分数据没有label。
- 收集和人工标注大量数据需要耗费大量的时间和精力。
- 用GAN生成行人实例。
- 行人实例检测。
Method
论文的方法如下图所示

方法分为几个部分
- Base Detector:使用有标注的数据训练的检测器,是2阶段的检测器,有RPN。RPN网络提取region proposals,映射到原图,裁剪出来,作为其他网络的输入。
- Generator G: 生成器。给定类别y和随机变量z,生成类别为y的样本。
- Class-conditional discriminator Dcon: 用来判读生成的样本和类别y是否匹配。
- Class- specific discriminator Dspe: 用来判读样本是真实样本还是生成样本。
- Post-refinement classifier (PRC): 行人分类器,训练的目的是对未标注的数据进行分类,为未标注的数据赋予伪标注。
Instance synthesis
说明符号的含义
-
(x,y)∼pl: 已标注数据的分布,x表示裁剪出来的小图
-
x∼pu: 未标注数据的分布
-
(z,y)∼ps: 输入到G的先验分布
与G对应的训练公式
θGminladvG+μlfeaMat(1)
其中
ladvG=E(z,y)∼ps[log(1−Dcon(G(z,y),y))]+Ey=y+(z,y)∼ps[log(1−Dspe(G(z,y)))](2)
公式2第1项(2-1)作用是使得生成的样本和类别y越匹配越好。公式2第2项(2-2)作用是使得生成的样本越真实越好。

lfeaMat表示平均特征匹配项
lfeaMat=∥∥∥E(x,y)∼pl[1{y=y+}fC(x)]−E(z,y)∼ps[1{y=y+}fC(G(z,y))]∥∥∥22(3)
公式3第1项(3-1)表示真实样本特征的平均值,特征是指PRC最后一层隐藏层的特征,公式3第2项(3-2)表示生成样本特征的平均值。公式3的目的是使得生成的行人实例匹配征是样本特征的统计值,使得生成样本更加真实,同时有助于PRC的训练。
Optimizing the PRC
PRC分类网络的训练公式如下
θCminladvC+λflfeaMat+λclclaEva(4)
首先,第一项(4-1)是指把伪标注的样本和对应的伪标注输入到Dcon中,由Dcon来判断未标注样本和伪标注是否匹配,目的是使得伪标注尽可能准确。
ladvC=Ex∼pu[p(x∣θC)log(1−Dcon(x,y^)]
其中p(x∣θC)表示PRC预测出来的置信度,y^是伪标注,由p(x∣θC)决定具体的值。
第三项(4-3)是分类损失(分类网络当然要有分类损失),包括3中数据的3个损失项
lclaEva=E(x,y)∼pl[−ylogp(x∣θC)]Ex∼pu[−p(x∣θC)logp(x∣θC)]Ey=y+(z,y)∼pu[−ylogp(G(z,y)∣θC)](6)
公式6第二项(6-2)有些奇怪,用p(x∣θC)代替真实样本y的位置,这样做的目的是使得PRC预测出来的结果分数高的越高,分数低的越低,提高分类器对未标注数据的分类信心。

Adversarial training
GAN的训练过程还包括最大化的过程。
首先看Dcon
maxθDconE(x,y)∼pl[logDcon(x,y)]+21E(z,y)∼ps[log(1−Dcon(G(z,y),y))]+21Ex∼pu[log(1−Dcon(x,y^))](7)
因为有3中数据,所以公式7有3项。
对于另外一个Dspe,它的作用是判断样本是真的还是假的
θDspcmaxEy=y+(x,y)∼pl[logDspc(x)]+Ey=y+(z,y)∼ps[1−Dspc(G(z,y))](8)

Enhancement of the base detector
使用预训练的检测器和PRC去扫描未标注的图片,生成伪标注,然后使用已标注数据和伪标注数据重新训练检测器。
检测器训练时正样本的选择:IoU>0.5,其他的为负样本。
检测器训练单个样本的损失函数
ldet(x,y)=−ylogp(x∣θR)+vr1{y=y+}llocReg(b,b~)(9)
分别是分类损失和bbox的回归损失。
总损失函数
θRminE(x,y)∼pl[ldet(x,y)]+v∗Ey∗=y+(x,y∗)∼pl∗[ldet(x,y∗)]+vcE(x,y∗)∼pl∗,y∗=y+(x,y)∼pl,y=y+orx′∈N(x)[∥p(x∣θR)−p(x′∣θR)∥22](11)
其中y∗表示伪标签,pl∗表示对应的分布。公式11前两项分布代表已标注数据和伪标注数据的损失。
伪标注数据有一个缺点,伪标注的bbox可能不准确,可能只包括gt bbox的一部分。论文提出了公式11第3项。选择一个样本x,在x的领域N(x)内随机选择一个样本x′,对x′的预测结果要和x的预测结果一样,这是(11-3)项的意思。这样做可以保证检测器的分类效果,减少网络受到伪标注数据的坏影响。
Experiments
论文在3个行人检测数据集上进行实验。论文只使用数据集上5%的图片的标注,剩余的95%的图片都当作没有标注的数据。这个数据划分就很夸张了,但是论文的实验效果很好,说明了该方法确实可行。
论文首先看看GAN生成行人实例的效果

可以看到生成的行人实例已经很接近真实样本了。
接着看看行人检测的效果,指标是log-average miss rate,值越小越好。

