首页 > 编程知识 正文

物体识别软件,物体识别算法

时间:2023-05-06 06:56:05 阅读:266346 作者:2635

一、物体识别

图像识别:很重要,是很多算法的基础

图像识别+定位:识别出来是猫,且定位出猫的位置

物体检测:每个图像中含有多物体,检测出有几个个体,并框出来位置

图像分割:不仅仅框出来位置,还有勾勒出来轮廓

很有意义,且能在工业落地。

如何识别+定位(单物体):

已经用多层的卷积神经网络做了分类的问题(右上角),得到了已经训练好的参数。现在要定位矩形框,四个值(x,y,w,h)分别为,(x,y)为左上的坐标,w为宽,h为高,四个数都是连续的值,就变为了一个回归问题。

分类问题是通过FC得到每类的概率,而此时需要得到连续的四个值,所以预测的是 x^,y^,w^,h^ x ^ , y ^ , w ^ , h ^ ,真实的是 x,y,w,h x , y , w , h 。

L2-loss: (x−x^)2+(y−y^)2+(w−w^)2+(h−h^)2 ( x − x ^ ) 2 + ( y − y ^ ) 2 + ( w − w ^ ) 2 + ( h − h ^ ) 2

利用BP+SGD进行训练,得到损失最小的参数。

去掉做分类的积木,在最后一个卷积层之后添加做回归的积木。

为了利用前面训练好的参数,有两种搭积木的方法:

对训练好的参数进行固定,也就是前面的参数不再训练,一路做回归,一路做分类也许对参数也进行学习的话会有更好的回归的结果,也就是将训练好的参数作为初始值,对前面部分的学习率调低,后面新的部分的学习率调高,再进行训练,得到一个新的完整的结构,分类(交叉熵损失)和回归(L2-loss)是分开的。

思路二:

回归效果不太好,能不能提前给一些框来分类。

分别用黑色的框来遍历,左上->右上->左下->右下,分类后会获得在不同位置上判断出来是猫的概率:0.5->0.75->0.6->0.8

所以主体一定是靠近右边的,然后整合。

有四个红框,进行整合。

去掉全连接,改成1x1的卷积,计算共享,只有黄色的部分要计算,没有那么暴力。

二、多目标物体识别

如果图中有2个个体,框每滑到一个位置,判断是不是某个物体,

边缘策略,找到到底哪些位置可能是候选框,先用别的方法找到可能是一个物体的框。

选择性搜索:

自顶向下的搜索,先用像素KNN的方式对周边的点做扩散,得到很细的区域分布,可以再进行扩张,得到不同粒度的图像分割区域。

从上到下的过程:找到框把不同颜色的地方框出来。

对比:

R-CNN

R-CNN 思想:

有一张图,可以从图中选出可能感兴趣的区域(ROI),每个框都经过CNN,得到该框中的特征,取第5个池化层的特征,用SVM做分类,确定是哪一类,利用Bbox回归来对框进行调整。

Bbox regression:告诉你这个框怎么调整一下,可以更贴近物体的形状,也就是框可能太大,可以调小些,也是有参数的,需要训练,是一个独立的部分。

RCNN不是end-to-end的模型,这个ConvNet可以直接拿VGG来用,就是抽取特征。

改进:R-CNN太慢了

2000个图像候选框,每个框的数据都要进行卷积特征抽取,很耗时,所以简化为Fast-rcnn。

Fast-RCNN 思想:

① 将候选框缩减

对原图进行卷积神经网络特征抽取,得到了一个整图的特征图,在结果上抠出来和原来的框对应的位置,也就是将原图上的候选框映射到特征图上,抽取对应位置的特征。

② 将分类器变为神经网络,也就是接全连接层,完成分类和回归

实现:

原始图像3x800x600 -> 得到一个特征图,特征图上的某个点,是由原图的小块图像区域和卷积核卷积得到的,所以,特征图上的不同点,对应原图的不同小块儿。也就是原图的框应该是可以找到特征图对应的框。

问题:圈出来的框的大小是不同的,经过pooling之后也是不同大小的,但是FC的神经元的输入和输出大小是固定的,所以FAST 提出了ROI pooling

FAST RCNN中提出了ROI pooling:对所有的框下采样为相同的维度,之后再接神经元:

Faster-RCNN

找候选图框很麻烦,可以让神经网络自己找图框。

在大图上产出了一些特征图,在中心点找到不同大小的框,用候选框中的东西进行判别,得到n个得分,再进行判别。

NeuralStyle

原始图片+风格图片=>带风格的图

传统网络一直用Cross-entropy 或L2-loss,来评价两幅图在内容是的接近程度,所以作者思考有没有更好的损失函数,使得现在的问题性能有提升。

发现了一个style-loss能够定义两幅图像的风格的差异,所以将L2-loss和style-loss来综合起来来进行融合。

一般情况利用CNN来学习权重w,而图像是x,所以可以固定w去调x使得损失最小。

拿VGG网络,把网络固定住,调图像x,使得损失最小,让内容和猫最接近,让风格和下图更接近,所以定义两个loss,分别为内容的loss和风格的loss。

内容loss:原始图 Fij F i j ,生成图 Pij P i j ,

风格loss:评估了所有特征图(64x64x16)的depth(16)上,每两个特征图上进行了点乘,就有 A1616=16×16 A 16 16 = 16 × 16 个结果,即语法矩阵Gram matrix,对生成的语法矩阵和原始图像的语法矩阵做差值。

将两部分loss合起来, α α 为内容损失的权重, β β 为风格损失的权重, α α 越大,越偏内容,然后最小化损失即可。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。