Py-faster-rcnn配置模型开发环境

来源:互联网 发布:windows xp精简版 编辑:程序博客网 时间:2024/06/01 08:51

Py-faster-rcnn配置模型开发环境

1. 将视频截取为图像

由于深度学习物体识别项目中的一个主要资料来源是拍摄视频,而深度学习框架一般只能对图片数据进行学习,因此有必要使用一些工具将视频资料按照一定帧率提取为图像。

将视频转换成图像的工具很多,这里仅介绍可以在Linux环境下使用的工具。

1.1 视频转换工具

由于mp4格式文件无法被opencv读取,因此要使用软件将mp4转换成avi文件。

可以使用ffmpeg这一工具转换:

首先是安装

$ sudo apt-get install ffmpeg

然后是路径引导至要转换的视频,例如测试视频文件为test.mp4

$ ffmpeg -i test.mp4 -vcodec copy test.avi

就可以将mp4文件转换为avi,放在同一路径下。

1.2 视频按帧提取为图片

可以使用opecv的python接口实现帧提取,可以参考这个教程。

这里需要安装python-opencv,如果已经配置过秸秆焚烧工程开发环境则可以直接使用,具体方法可以参考《深度学习工作环境搭建教程》。

这里推荐一个文本编辑器:Sublime Text
安装方法是 开始->Software Manager->搜索Sublime

然后建一个video2image.py文件:

import cv2vc = cv2.VideoCapture('Test.avi') # 这里决定了读取文件的路径c = 1if vc.isOpened():    rval, frame = vc.read()else:    rval = FalsetimeF = 10 # 这里决定了提取的帧率while rval:    rval, frame = vc.read()    if(c%timeF == 0):        cv2.imwrite('image/' + str(c) + 'jpg', frame)    c = c + 1    cv2.waitKey(1)vc.release()

然后在脚本文件下:

$ mkdir image

执行脚本:

$ python video2image.py

就产生了很多jpg图片(PASCAL VOC 必须使用jpg文件)

2. 图像标注-制作PASCAL VOC数据集

这里介绍了工具labelImg。

安装和使用教程在这里

具体操作方法里面已经说明地很详细了,最后是要产生与图片对应的xml文件,然后制作数据集。

在标注数据集之前,务必先批量修改文件名为VOC2007的格式

4. 制作PASCAL VOC数据集

将图片标注完以后,要建立两个文件夹:1.放置图片的文件夹;2.放置xml文件的文件夹。两个文件夹里的文件名称必须完全一致,并且里面的标签内容也要完全一致(否则监督标签就出错了,训练出来的模型也就没有意义)

[具体的教程请参考这篇文章:VOC2007数据集制作 - Eddy的博客 - 博客频道 - CSDN](./data/VOC2007数据集制作 - Eddy的博客 - 博客频道 - CSDN.pdf)

最后你会制作三个文件:JPEGImages, Annatations, ImageSets

5. py-faster-rcnn训练一个模型并测试

具体方法参考这篇博客

如果遇到报错:

Loaded network /home/ubuntu/py-faster-rcnn/data/faster_rcnn_models/VGG16_faster_rcnn_final.caffemodelF0317 21:26:39.516222 13403 syncedmem.cpp:56] Check failed: error == cudaSuccess (2 vs. 0)  out of memory

参考这篇文章

原理就是降低BATCH_SIZE对显存的消耗。

6. 将模型与工程合并

将输出的ZF_faster_rcnn_Final.caffemodel和faster_rcnn_test.pt拷贝出来,然后使用工程读取,再修改mainwindow.cpp中关于caffeNet的调用函数参数,就可以了。