基于深度学习和图像处理算法的目标检测方法与流程

文档序号:17070577发布日期:2019-03-08 23:17阅读:1676来源:国知局
基于深度学习和图像处理算法的目标检测方法与流程

本发明涉及目标检测方法。本发明属于目标检测领域。



背景技术:

随着计算机技术的发展和计算机视觉原理的广泛应用,利用计算机图像处理技术对目标进行实时跟踪研究越来越热门,对目标进行动态实时跟踪定位在智能生产制造、智能化交通系统、智能监控系统、军事目标检测及医学导航手术中手术器械定位等方面具有广泛的应用价值。

近年来,深度学习基于强大的学习特征表达的能力,在模式识别和计算机视觉领域快速发展,迅速替代了以往基于先验知识的人工构造特征的方式。基于卷积神经网络的深度学习在图像识别、图像检测和图像分割等领域都取得了显著成就。其中的目标检测技术与传统的方法相比在准确率以及速度上有十分大的优势,并且具有较强的鲁棒性,能够适应复杂环境下的许多变化。

但当机械臂应用于小目标的精密作业时,需要对操作目标进行精确的检测和定位,对坐标点的精确度要求高,单纯用深度学习进行检测与定位,小目标位置的确定误差大,精度低。



技术实现要素:

本发明的目的是为了解决现有机械臂应用于小目标的精密作业时,单纯用深度学习进行检测与定位,小目标位置的确定误差大,精度低的问题,而提出基于深度学习和图像处理算法的目标检测方法。

基于深度学习和图像处理算法的目标检测方法具体过程为:

步骤一、建立数据集,根据数据集对ssd网络进行训练,得到最终训练好的ssd网络,使用最终训练好的ssd网络模型对待检测的图像中的插针进行检测,在图像上用预选框把插针所在范围框出;

步骤二、使用大津算法将预选框中的图像内容进行二值化,即分为插针及非插针两部分;

步骤三、通过漫水填充算法,将二值化后的插针部分从图像中分离出来,并计算出插针的位置中点。

本发明的有益效果为:

当机械臂应用于小目标的精密作业时,需要对操作目标进行精确的检测和定位,对坐标点的精确度要求高。单纯用深度学习进行检测与定位,位置的确定误差大,精度低。本发明提出的目标检测方法,首先用深度学习识别目标,再引入大津算法和漫水填充算法,对深度学习的算法结果进行处理。在原先深度学习算法的效率高、鲁棒性的强的基础上,增强了算法的准确度,减小了小目标位置确定的误差,提高了小目标位置确定的精度。在对凹槽中的插针进行准确的检测与定位后,帮助机械臂很好地完成所需的任务。处理的帧数能够达到100帧/秒,准确率达95%以上。

附图说明

图1为本发明数据集图片示意图;

图2为本发明ssd网络的训练loss值曲线图,k为千;

图3为本发明算法流程图;

图4为本发明算法检测效果展示图;

图5为本发明ssd网络架构图;

其中:conv是卷积层,vgg-16throughconv5_3layer为用vgg16的哪些层截取到conv5-3,classifier为分类器,classes为类别个数,image为图像,extrafeaturelayers为额外的特征提取层,non-maximumsuppression为非极大值抑制,detections为检测,perclass为每类,fps为画面每秒传输帧数,map为准确率,fc为全连接层。

具体实施方式

具体实施方式一:本实施方式的基于深度学习和图像处理算法的目标检测方法具体过程为:

为了满足机械臂应用于小目标的精密作业时,对目标位置精确度的较高要求。本专利提出了一种深度学习ssd网络与大津算法、水漫算法两种传统图像处理方法相结合的目标检测方法,帮助机械臂系统精确识和定位别凹槽中的插针,进而很好得完成后续的任务。

该目标检测算法分为三个步骤,首先通过ssd网络对目标进行识别,然后使用大津算法对boundingbox中图像内容进行二值化,最后使用漫水填充算法识别插针的位置,并对插针的位置中点进行计算。具体内容如下:

步骤一、建立数据集,根据数据集对ssd网络进行训练,得到最终训练好的ssd网络,使用最终训练好的ssd网络模型对待检测的图像中的插针进行检测,在图像上用预选框(boundingbox)把插针所在范围框出;

步骤二、大津算法

在计算机视觉和图像处理中,大津二值化法用来自动对基于聚类的图像进行二值化,或者说,将一个灰度图像退化为二值图像。

在ssd模型对图像进行初步检测后,使用大津算法将预选框(boundingbox)中的图像内容进行二值化,即分为插针及非插针两部分;

步骤三、漫水填充算法

所谓漫水填充,简单来说,就是自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色。经常被用来标记或者分离图像的一部分,以便对其进行进一步处理或者分析。

我们通过漫水填充算法,将二值化后的插针部分从图像中分离出来,并计算出插针的位置中点,以帮助机械臂进行后续操作。

具体实施方式二:本实施方式与具体实施方式一不同的是,所述步骤一中建立数据集,根据数据集对ssd网络进行训练,得到最终训练好的ssd网络,使用最终训练好的ssd网络模型对待检测的图像中的插针进行检测,在图像上用预选框(boundingbox)把插针所在范围框出;具体过程为:

步骤一一、采集数据集:

首先将相机安装在机械臂末端,对待识别区域的图像进行采集(采集1万张或2万张待识别区域的图像),构成数据集,并且尽量多的包含不同情形下的图像内容情况,并通过人工手段对数据集的图像进行标注;

步骤一二、对标注完的数据集的图像进行增广:

由于数据量对于深度学习网络的训练及最终的性能有着至关重要的影响,故需要对现有的数据集进行扩充,增加数据量及其多样性。采用添加椒盐噪声,高斯噪声和旋转方式,改变标注完的数据集中图像的hsv空间的曝光度和饱和度等,对数据集的图片进行增广;效果如图1所示。

步骤一三、划分数据集:

将增广后的数据集的图像分为训练集,验证集和测试集,训练集,验证集和测试集各自所占比例分别为8:1:1;

将训练集,验证集和测试集转换为tfrecord格式,提升模型的训练速率;

步骤一四、根据训练集对ssd网络进行训练,得到最终训练好的ssd网络;

步骤一五、使用最终训练好的ssd网络模型对待检测的图像中的插针进行检测,在图像上用预选框(boundingbox)把插针所在范围框出。

其它步骤及参数与具体实施方式一相同。

具体实施方式三:本实施方式与具体实施方式一或二不同的是,所述步骤一四中根据训练集对ssd网络进行训练,得到最终训练好的ssd网络;具体过程为:

步骤一四一、搭建ssd网络架构;

步骤一四二、将训练集和验证集输入到ssd网络中,采用七块1080ti显卡对ssd网络模型进行训练,训练过程中,通过tensorboard实时观察ssd网络模型的训练集损失值和验证集正确率(两个曲线在同一个图上),当训练集损失值收敛且满足ssd网络不出现过拟合时停止训练,得到训练完的ssd网络模型;

tensorboard是tensorflow自带的一个强大的可视化工具;

步骤一四三、采用测试集对训练完的ssd网络模型进行测试,当测试集准确率满足要求时,得到最终训练好的ssd网络模型及该ssd网络模型的参数w,b,否则重复执行步骤一四一和步骤一四三,直至测试集准确率满足要求。

ssd网络模型训练最终收敛时的损失值(loss)如图2所示。

其它步骤及参数与具体实施方式一或二相同。

具体实施方式四:本实施方式与具体实施方式一至三之一不同的是,所述测试集准确率满足要求为测试集准确率达到95%。

其它步骤及参数与具体实施方式一至三之一相同。

具体实施方式五:本实施方式与具体实施方式一至四之一不同的是,所述步骤一四一中搭建ssd网络架构;如图5所示,具体为:

使用tensorflow深度学习框架搭建ssd网络。

ssd网络的输入图像大小是300x300,特征提取部分使用了vgg16的卷积层,并将vgg16的两个全连接层转换成2个卷积层(图中conv6和conv7),之后又接了6个卷积层(conv8_1,conv8_2,conv9_1,conv9_2,conv10_1,conv10_2),得到大小不同的featuremaps(特征图),最后在这些featuremaps上同时进行分类器(softmax)分类和位置回归(ssd:singleshotmultiboxdetector,https://arxiv.org/abs/1512.02325)。

其它步骤及参数与具体实施方式一至四之一相同。

采用以下实施例验证本发明的有益效果:

实施例一:

本实施例具体是按照以下步骤制备的:

构建数据集:

首先将相机安装在机械臂末端,对所要识别区域的图像进行采集,并且尽量多的包含不同情形下的图像内容情况,并通过人工手段对数据集的图片进行标注。

搭建ssd网络架构:

使用tensorflow深度学习框架搭建ssd网络。

数据增广:

使用添加椒盐噪声,高斯噪声,平移,改变hsv空间的曝光度和饱和度等方式对数据集进行增广。

转换数据格式

将数据集转换为tfrecord格式,提升模型的训练速率。

训练ssd网络:

将训练样本输入到ssd网络中,采用七块1080ti显卡对模型进行训练。训练过程中,通过tensorboard实时观察模型的损失值和正确率。当训练集损失值较小且验证集的准确率较高时停止训练,加载训练的模型用测试集进行测试,当有不错的测试结果则可将此训练结果存入计算机硬盘作为最终的训练模型,否则加载停止训练时刻的模型继续进行训练。模型训练最终收敛时的损失值(loss)如图2所示。

编写程序,流程图如图3所示。读取训练好的ssd模型,并在ssd网络预测后,使用大津算法、漫水填充算法处理网络输出的图像。

运行程序,包含训练好的模型以及传统图像处理两部分。读取摄像头采集到的图像,并进行实时的检测与定位,结果如图4所示。处理的帧数能够达到100帧/秒,准确率达95%。

本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1