当前位置:首页 » 操作系统 » 计算机视觉的算法

计算机视觉的算法

发布时间: 2025-08-14 10:41:56

‘壹’ 计算机视觉——典型的目标检测算法(Fast R-CNN算法)(五)

【嵌牛导读】目标检测在现实中的应用很广泛,我们需要检测数字图像中的物体位置以及类别,它需要我们构建一个模型,模型的输入一张图片,模型的输出需要圈出图片中所有物体的位置以及物体所属的类别。在深度学习浪潮到来之前,目标检测精度的进步十分缓慢,靠传统依靠手工特征的方法来提高精度已是相当困难的事。而ImageNet分类大赛出现的卷积神经网络(CNN)——AlexNet所展现的强大性能,吸引着学者们将CNN迁移到了其他的任务,这也包括着目标检测任务,近年来,出现了很多目标检测算法。

【嵌牛鼻子】计算机视觉

【嵌牛提问】如何理解目标检测算法——Fast R-CNN

【嵌牛正文】

        为克服SPP-Net 存衡基在的问题,2015 年Girshick 等提出基于边界框和多任务损失分类的Fast R-CNN[31]算法。该算法将SPP 层简化,设计出单尺度的ROI Pooling 池化层结构;将整张图像的候选区域采样成固定大小,生成特征图后作SVD分解,通过RoI Pooling层得到Softmax的分类得分和BoundingBox 外接矩形框的窗口回归两个向量;用Softmax 代替SVM 提出多任务损失函数思想,将深度网络和SVM分类两个阶段整合,即将分类问题和边框回归问题进行合并。

算法详解:

Fast R-CNN的流程图如下,网络有两个输入: 图像和对应的region proposal 。其中region proposal由selective search方法得到,没有表示在流程图中。对每个类别都训练一个回归器,且只有非背景的region proposal才需要进行回归。

ROI pooling:ROI Pooling的作用是对不同大小的region proposal,从最后卷积层输出的feature map提取大小固定的feature map。简单讲可以看做是SPPNet的简化版本,因为全连接层的输入需要尺寸大小一样,所以不能直接将不同大小的region proposal映射到feature map作为输出,需要做尺寸变换。在文章中,VGG16网络使用搭中H=W=7的参数,即将一个h*w的region proposal分割成H*W大小的网格,然后知拦山将这个region proposal映射到最后一个卷积层输出的feature map,最后计算每个网格里的最大值作为该网格的输出,所以不管ROI pooling之前的feature map大小是多少,ROI pooling后得到的feature map大小都是H*W。

因此可以看出Fast RCNN主要有3个改进:1、卷积不再是对每个region proposal进行,而是直接对整张图像,这样减少了很多重复计算。原来RCNN是对每个region proposal分别做卷积,因为一张图像中有2000左右的region proposal,肯定相互之间的重叠率很高,因此产生重复计算。2、用ROI pooling进行特征的尺寸变换,因为全连接层的输入要求尺寸大小一样,因此不能直接把region proposal作为输入。3、将regressor放进网络一起训练,每个类别对应一个regressor,同时用softmax代替原来的SVM分类器。

在实际训练中,每个mini-batch包含2张图像和128个region proposal(或者叫ROI),也就是每张图像有64个ROI。然后从这些ROI中挑选约25%的ROI,这些ROI和ground truth的IOU值都大于0.5。另外只采用随机水平翻转的方式增加数据集。

测试的时候则每张图像大约2000个ROI。

损失函数的定义是将分类的loss和回归的loss整合在一起,其中分类采用log loss,即对真实分类(下图中的pu)的概率取负log,而回归的loss和R-CNN基本一样。分类层输出K+1维,表示K个类和1个背景类。

这是回归的loss,其中t^u表示预测的结果,u表示类别。v表示真实的结果,即bounding box regression target。

采用SVD分解改进全连接层。如果是一个普通的分类网络,那么全连接层的计算应该远不及卷积层的计算,但是针对object detection,Fast RCNN在ROI pooling后每个region proposal都要经过几个全连接层,这使得全连接层的计算占网络的计算将近一半,如下图,所以作者采用SVD来简化全连接层的计算。另一篇博客链接讲的R-FCN网络则是对这个全连接层计算优化的新的算法。

稍微总结下训练和测试的结构,如下面两个图,对算法的理解会更清晰。

test结构图在ROI Pooling层是怎么输出的画得比较容易理解。

热点内容
我的世界嗨皮服务器怎么关服了 发布:2025-08-14 16:48:55 浏览:418
怎么可以修改手机配置 发布:2025-08-14 16:44:09 浏览:310
php网页地址 发布:2025-08-14 16:37:57 浏览:558
安卓手机有什么资源 发布:2025-08-14 16:29:19 浏览:405
数列极限的四则运算法则 发布:2025-08-14 16:28:23 浏览:965
互联网文件夹 发布:2025-08-14 15:55:21 浏览:697
python编译为dll 发布:2025-08-14 15:43:40 浏览:792
机变酷卡编程 发布:2025-08-14 15:25:54 浏览:884
ftp乱码上传 发布:2025-08-14 15:25:52 浏览:732
sqlserver2008数据类型 发布:2025-08-14 15:25:03 浏览:721