CV岗位面试题:输入图片尺寸不匹配CNN网络input时候的解决方式?(三种以上)

AI算法与图像处理

共 1548字,需浏览 4分钟

 ·

2021-03-08 16:24

文 | 七月在线
编 | 小七


解析:


    1.  two-fixed方法:直接对输入图片Resize缩放;

    2. one-fixed方法: 固定一边,缩放另一条边;

    3. free方法:去掉FC全连接层加入全局池化层,或者使用卷积层替换全连接层;

网络之所以要输入固定大小的图片,主要是因为网络中存在FC全连接层,而且全连接层的一个缺点是参数量大容易导致过拟合,关于这部分解释说明可以参考第9题“如果最后一个卷积层和第一个全连接层参数量太大怎么办?”
 
卷积层替换全连接层

在经典分类网络,比如LeNet、AlexNet中,在前面的卷积层提取特征之后都串联全连接层来做分类。目前很多网络比如YOLO系列、SSD以及Faster RCNN的RPN,MTCNN中的PNet等都使用卷积层来代替全连接层,一样可以做到目标分类的效果,而且具有以下优点:

1. 更灵活,不需要限定输入图像的分辨率;

2. 更高效,只需要做一次前向计算;

全连接层和卷积层只要设置好了对应的参数,可以在达到相同输入输出的效果,在这个意义上,在数学上可以认为它们是可以相互替换的。

将全连接操作转化成卷积操作,也就是卷积最后一层的feature map 如果使用卷积操作是将每个神经元 Flatten之后dense连接到后面的若干神经元,以AlexNet为例,最后一层为256x7x7,得到后面的4096个神经元,但是如果使用7X7的卷积核对前面的FeatureMap进行继续卷积(padding=0),不也可以得到 4096X1X1的向量吗,如果图片大一些,例如384x384,那没AlexNet最后一层的大小就是256X12X12经过一个7x7的卷积核之后就是4096x6x6了,这时候这6x6=36个神经元就有了位置信息。如下图所示:
                            

卷积替代全连接的优点:

1. 对输入分辨率的限制

如果网络后面有全连接层,而全连接层的输入神经元个数就是固定的,那么反推上层卷积层的输出是固定的,继续反推可知输入网络的图片的分辨率是固定的。例如,LetNet由于由全连接层,输入就只能是28 x 28的。

如果网络中的全连接层都用卷积层替代,网络中只有卷积层,那么网络的输出分辨率是随着输入图片的分辨率而来的,输出图中每一个像素点都对应着输入图片的一个区域(可以用stride,pooling来反算)。

2. 计算效率比较

同样以LeNet来做例子,如果一个图片是280 x 280的分辨率,为了识别图片中所有的数字(为了简单,假设每个数字都是在这个大图划分为10 x 10的网格中),那么为了识别这100个位置数字,那么至少需要做100次前向;而全卷积网络的特点就在于输入和输出都是二维的图像,并且输入和输出具有相对应的空间结构,我们可以将网络的输出看作是一张heat-map,用热度来代表待检测的原图位置出现目标的概率,只做一次前向就可以得到所有位置的分类概率。
浏览 87
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报