用tf-faster-rcnn训练自己制作的车牌号数据集(VOC2007格式)
参考链接:http://ai.baidu.com/forum/topic/show/595975
https://github.com/endernewton/tf-faster-rcnn
https://blog.csdn.net/weixin_42111393/article/details/83383720
1、用爬虫下载网络车牌图片(URL-百度图片搜索)。
# -*- coding:utf-8 -*-
import re
import uuid
import requests
import osclass DownloadImages:def __init__(self, download_max, key_word):self.download_sum = 0self.download_max = download_maxself.key_word = key_wordself.save_path = '../data/plate_number/images/'def start_download(self):self.download_sum = 0gsm = 80str_gsm = str(gsm)pn = 0if not os.path.exists(self.save_path):os.makedirs(self.save_path)while self.download_sum < self.download_max:str_pn = str(self.download_sum)url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&' \'word=' + self.key_word + '&pn=' + str_pn + '&gsm=' + str_gsm + '&ct=&ic=0&lm=-1&width=0&height=0'print (url)result = requests.get(url)self.downloadImages(result.text)print ('下载完成')def downloadImages(self, html):img_urls = re.findall('"objURL":"(.*?)",', html, re.S)print ('找到关键词:' + self.key_word + '的图片,现在开始下载图片...')for img_url in img_urls:print ('正在下载第' + str(self.download_sum + 1) + '张图片,图片地址:' + str(img_url))try:pic = requests.get(img_url, timeout=50)pic_name = self.save_path + '/' + str(uuid.uuid1()) + '.jpg'with open(pic_name, 'wb') as f:f.write(pic.content)self.download_sum += 1if self.download_sum >= self.download_max:breakexcept Exception as e:print ('【错误】当前图片无法下载,%s' % e)continueif __name__ == '__main__':downloadImages = DownloadImages(150, '车牌')downloadImages.start_download()
2、人工删除不是车牌的图片、车牌模糊不清或者有遮挡的图片、车牌号不完整的图片。(车票号格式例子:粤A88888)
3、为了符合VOC数据集,要对图片重命名(其实也不一定非要重命名吧)。(000001.jpg~000100.jpg)
# coding=utf-8
import osdef rename(images_dir):# 获取所有图像images = os.listdir(images_dir)i = 1for image in images:src_name = images_dir + image# 以六位数字命名,符合VOC数据集格式name = '%06d.jpg' % idst_name = images_dir + nameos.rename(src_name,dst_name)i += 1print ('重命名完成')if __name__ == '__main__':# 要重命名的文件所在的路径images_dir = '../data/plate_number/images/'rename(images_dir)
4、标注数据集:
- a.安装LabelImg
- b.Open Dir打开图像所在的文件夹data/plate_number/images/
- c.设置保存文件存放的位置
- d.点击Create RectBox标注车牌的位置,并打上标签plate_number
- e.点击save生成xml标签文件
5、制作与Pascal VOC2007同一格式的数据集(用于目标检测),其余的两个文件SegmentationClass和SegmentationObject直接忽略就可以了,这是用在图像分割的。
6、修改代码:主要是更改n_class类数
- a.lib/datatsets/pascal_voc.py
- b.tools/demo.py 两处修改
- c.lib/datasets/imdb.py
- d.修改训练迭代次数为10000次
7、训练时出现的问题有:
File “/tf-faster-rcnn/tools/…/lib/datasets/imdb.py”, line 108, in append_flipped_images
assert (boxes[:, 2] >= boxes[:, 0]).all()
AssertionError
找到问题的原因,是矩形标注的问题。
解决方法:参考https://blog.csdn.net/10km/article/details/64641322https://blog.csdn.net/
注意:记得删除data目录下的cache文件夹,否则测试时会报错
8、测试结果:map=0.818
用tf-faster-rcnn训练自己制作的车牌号数据集(VOC2007格式)相关推荐
- Faster RCNN 训练中的一些问题及解决办法
今天使用Faster RCNN训练自己的数据的时候,出现了一些因为boost或者是numpy版本不兼容导致的问题,经过各种查资料和求助大神,总算是顺利把网络跑起来了.下面内容都是今天亲测出现的问题并与 ...
- Faster RCNN 训练自己的检测模型
Faster RCNN 训练自己的检测模型 一.准备自己的训练数据 根据pascal VOC 2007的训练数据集基本架构,第一步,当然是要准备自己的训练图片集,本文直接将自己的准备的图片集(.jpg ...
- Faster rcnn 训练coco2017数据报错 RuntimeError: CUDA error: device-side assert triggered
Faster rcnn 训练coco2017数据报错 RuntimeError: CUDA error: device-side assert triggered 使用faster rcnn训练自己的 ...
- 用faster-rcnn训练自己的数据集(VOC2007格式,python版)
用faster-rcnn训练自己的数据集(VOC2007格式,python版) 一. 配置caffe环境 ubunt16.04下caffe环境安装 二. 下载,编译及测试py-faster-rcnn源 ...
- faster r-cnn训练、测试、检测(含批量检测图片)
faster r-cnn(tensorflow版本)训练VOC数据集.测试.检测指南 使用的faster r-cnn代码github地址 https://github.com/endernewton/ ...
- 目标检测simple Faster R-CNN训练自己的数据集
一.复现 刚开始接触目标检测,自己动手复现的第一个开源项目是github上chenyuntc的simple faster rcnn.历经千辛万苦最后貌似因为服务器显卡内存不够,在训练时一直出现一个错误 ...
- Faster RCNN训练自己数据集报错记录及解决
Faster R-CNN源码网址:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5点击打开链接 环境:python3.6 tenso ...
- Faster RCNN训练FLIR红外线数据集
1. Fater RCNN检测网络下载 网络学习视频 [源码地址]https://github.com/bubbliiiing/faster-rcnn-pytorch 2. FLIR 数据集准备 数据 ...
- faster rcnn 训练自己的数据集---踩坑记录!!!
1.下载代码: git clone https://github.com/jwyang/faster-rcnn.pytorch.git 也可以暴力下载<--直接download压缩包--> ...
最新文章
- “深度学习之父”后悔投少了?90后华人学者:我们只卖AI软件
- Python代码规范和命名规范
- C#中FileStream的对比以及使用方法
- Android电商抢购倒计时,Android限时抢购倒计时实现代码
- 对acm icpc 的随笔——01
- EFCore.Sharding(EFCore开源分表框架)
- 17毫秒每帧!实时语义分割与深度估计
- 近一个月来的学习总结(今天的你比昨天的你进步了吗?)
- Windows WMIC 命令使用详解 (附实例)
- 叛乱联机服务器未响应,叛乱沙漠风暴开服注意事项及操作指南经验一览
- 人类简史下载pdf_人类简史 从动物到上帝pdf电子书下载
- erp框架 saas_给大家分享三款生产管理ERP软件
- word高级技能之自动生成图目录/表目录
- matplotlib自定义鼠标光标坐标格式
- spring batch的原则(避免停不下来)
- 【案例二】小明都可以买什么
- python求加速度_【掌控】mpython-加速度-水平仪 - DF创客社区 - 分享创造的喜悦
- DMA+PWM驱动彩色RGB灯
- 复杂正态分布运用——独立正态分布组合概率、二项分布、泊松分布近似正态分布的运用
- win10系统如何打开.swf视频文件,flash palyer无法使用
热门文章
- python网络编程100例_python网络编程
- C++:派生类中的构造函数问题
- Windows安装WSL进行机器学习(windows和Ubuntu同时使用)
- word删除分节符后之前的格式乱了_分页符分节符,你知道多少
- MUI框架 · 异步请求:mui.get()、mui.ajax()、mui.post() 技术罗列
- scss、sass 和 css 的区别
- delphi 提示class tparamlistbox not found_通达信主图K线变色波段提示指标公式
- QQ互联聚合登录中转API程序源码
- KinhDown 2.4.08最新稳定版 百度网盘不限速下载工具
- 腾讯alloyteam团队前端代码规范(记录)