linux+tensorflow利用faster-RCNN实现目标检测

前段时间过来实习,做的方向是目标识别,因为之前没有接触过相关的研究内容,所以算是小白一个;带我的师兄了解我的情况后,抛给我一个Github的链接,让我学习一下里面的内容,是一个入门的教程,让我按照里面的内容具体实现一下,算是给我的一个小任务了。我按照里面的内容,一点一点的学习,遇到问题先自己网上查,实在解决不了就找师兄帮忙,大概花了一个星期的时间,学习了一下整个东西,也自己找了一些数据进行了实验。因为之前学习的方向不是这个,所以学习期间遇到了很多问题,所以在这里和大家分享一下自己的心得和经验。

一、linux系统的学习

我之前主要做一些的图像算法的经典方法研究,一般在window系统下进行操作,所以就没有学习过linux系统的知识。师兄在公司配置了一台带有GPU的服务器,方便做一些深度学习方法的研究,而且后期的很多工作也是需要和服务器进行交互处理的,所以要求我学习一下linux系统的基础知识。我花了半天时间看了一些linux基础教程,然后就在服务器上实际练练手,毕竟实践出真知啊!

二、环境配置

环境的配置分为两部分:tensorflow和coco api
我要使用tensorflow框架做研究,所以首先要在服务器上安装tensorflow的相关东西。我之前在window系统下也做过一些深度学习的研究,所以对这些东西还是比较熟练的,将简单的按照教程走,一步一步的安装,并没有遇到什么问题。
coco api安装
首先是根据地址下载安装包,然后需要进行protobuf编译工作,在这个过程中我遇到了两个问题;其中一个是使用的protoc版本太低,编译出现错误,下载最新的版本就解决了这个问题。另外一个问题是在编译的过程中出现了” permission denied “的错误,我查了好长时间也没解决问题,然后找师兄帮忙,他看了一下说是 指令没有权限,然后敲了一句” chmod +x protoc“就顺利解决问题了,走之前还说”有问题就问我,不要自己在那瞎想!(我就不说什么了,毕竟菜)“。

之后就是添加环境变量然后进行测试,测试结果如图所示,这就说明我们已经成功安装了Tensorflow Object Detection API
在这里插入图片描述

三、用自己的图像训练分类器和测试

在给出的案列中是使用扑克牌图像做分类任务,我学习了它的过程后,就想自己拿一些图像做训练,也算是检测一下自己的学习情况。
图像目标检测做分类的流程大概为:收集图像数据、对图像做标签、生成训练数据、利用数据训练模型、导出模型并做测试。
1、正常来说,图像数据越多、越丰富,模型的训练效果越好;我收集了170张包含挖掘机的图像,按照4:1的比例分为train和test数据,并且为了简单,我识别的目标只有挖掘机一个类别。
2、然后对所有的图像做标签,用到的工具是labelimg,这是个简单但繁琐的过程,需要良好的耐心去做。我就因为没有特别好的耐心,做了很多的无用功。
3、接下来就是生成训练需要的数据格式,这部分没有特别困难的部分,调用一些函数实现就行,需要注意一下文件的路径问题就行。
4、等图像数据准备好了之后,就可以进行training了,这一般要花费一些时间,因为我使用的数据比较少,所以训练了不到一个小时,模型的loss就挺低了,一般loss低于0.05就可以接受了。模型的训练情况如下图所示,可以看出当训练次数大于10k时候,loss低于0.05并且差不多收敛了。
在这里插入图片描述在这里插入图片描述

四、 模型导出和测试

模型训练好之后,导出到相应文件夹中;接下来就可以使用自己的图像数据进行测试了,我找了5张含有挖掘机的图像进行实验,可以由于训练数据比较少,实验结果并不是特别好,但我主要是学习整个过程,所以也就接受了,实验结果如下图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在测试实验的过程中,遇到了一个问题,每当我测试完一张图像时,再重新测试另一种图像时候,会给内存溢出的报错。通过查找资料,原来是没次测试都会用到GPU资源,这样会把GPU资源占满,需要kill掉之前的任务,释放内存,才能开始新的任务。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值