本人是CV萌新,因为不想用word或者ppt去记笔记,所以在这里就写一些自己阅读论文的笔记以及疑惑了,写的比较随便,大家随便看看,如果有人搜到了欢迎交流指正
论文名称:JCS-Net: Joint Classifification and Super-Resolution Network for Small-Scale Pedestrian Detection in Surveillance Images
小目标检测遇到的困难:目标像素过小,本身具有的特征信息不足,一旦使用卷积,小目标对应的特征图上的像素,会受到原图上背景像素的极大干扰,从而造成识别误差。一个很自然的想法是将图像上的小目标放大成像素更大的目标。如何放大才能使得还原出来的图像显得更加清晰自然,这是一个值得商榷的问题。诚然,我们可以使用机器学习的方法进行手工设置特征,来放大目标,但是这种方法耗时长(而且难,尤其是对我这种萌新)。本文中,作者提出了一种是用super resolution的深度学习网络来进行小目标检测。
下面是网络的整体架构:
HOG和LUV似乎是机器学习用的方法,我不太了解,就权当是一个能够给出特征的特征层吧。
Super-resolution网络负责把小目标通过反卷积(可能是,作者没细说)放大,然后得到一个放大的目标。
下面讲一下JCS-Net网络的训练过程:
1. 对用于检测large-scale目标的网络,如VGG16,进行微调。
2. 使用现有的超分辨技术对JCS-Net进行微调。小尺度的行人是首先由大尺度的行人进行下采样,其次rescaling,最终得到的。
3. JCS-Net的权重用检测目标较大的行人的网络权重,进行初始化。
4. 将JCS-Net和classification网络联合训练。
为了进行联合训练,不妨假设yi代表大尺度行人,xi代表对应的小尺度行人,F(Xi)代表通过自网络重构后得到的大尺度目标,定义如下的损失函数:
这个式子用来保证重构的大尺度图像和原有的大尺度图像差别不过大,通过降低这个损失,使得网络在预测时进行图像重构更加合理。
这个式子用来保证分类的准确性。
最后得到总的损失函数如下:
作者在论文中将设为了0.1,用来进行训练。
接着,作者通过HOG+LUV以及Classification网络提取出的特征作为Multi-stage Cascade AdaBoost的输入(可以了解一下AdaBoost算法,一个分步向前算法,技多不压身嘛),来进行AdaBoost的参数学习。
multi-layer channel features(以下简称MCF)
如同上面的网络架构图所示,L1,L2,L3,L4,L5,L6六层的特征将会作为提取特征输入到Multi-stage Cascade AdaBoost,这些特征称之为multi-layer channel features。
下面是我对test阶段的理解
首先输入一张图片进入L1层(HOG+LUV),很大,上面可能有不少的物体,然后生成滑窗,将可能内含行人的图片块(我猜是如果一个小窗口里被认为有行人,这个网络就把他拎出来)输入进网络中;如果尺寸较小,进入super-resolution网络,如果尺寸较大,直接进入classification网络。这两种情况都会生成MCF(MCF里面不包含有super-resolution网络的层中获得的features),前者称为MCF-J,后者成为MCF-V。然后将MCF输入到AdamBoost中获得结果。(论文中还有一个Subset的训练测试过程,有兴趣的可以读读原文,讲的比较详细虽然我没太看懂)
最后是作者给出的实验结果,就上下图表吧,有时间再去做做总结(学院的课还没上完。。)
这个是super-resolution网络普通的插值重构图像方法,直观的效果对比图。左边是正常的插值重构,右边是super-resolution网络的结果,显然super-resolution效果更好,轮廓更清晰。
作者还做了几个消融实验:
表一来验证神经网络的容量是不是主要因素,MCF-C和MCF-J的网络容量一致,且都比MCF-V的容量大。但是效果上,MCF-J>MCF-C>MCF-V,如果网络容量是主因,那么结果应当是MCF-J=MCF-C>MCF-V。
结论
作者觉得自己的网络相当的nice,不过在行人和背景相似的时候,效果会出现下降。他认为应当去分析大尺度行人和重构背景的dissimilarity,并提出自己会在future work中做这个。
代码我还没找到,要是有人复现了就分享一下呗QAQ