赞
踩
本文参考https://blog.csdn.net/Kuo_Jun_Lin/article/details/80428653的方法,通过手机拍摄建立了300张的图片数据库,通过tiny-yolo2训练后,能够准确识别门牌号,效果如下。
一,首先需要收集足够数量的图片数据,一般有三种方法:
1,直接在网下下载数据集
2,通过爬虫转件爬取大量图片
在此提供一个爬虫代码
# 一个用来调用网路资源的包,包含解析网址,设定头档 import urllib.request as urst # 全名为 Regular Expression 正则表达式,用来 “制定规则” 的匹配机制 import re # 一个可以让我们自由方便操纵系统文件与路径的包 import os # 一个全世界电脑通用的数据格式包,可以方便处理 json 文档里面的信息 import json # 一个运算超级快速的数字相关的科学工具,用来处理数字提升效率 import numpy as np # 一个用来对付 Tag 和其里面内容之资料形态的包,可以很方便帮我们把我们需要的信息剥离出来 from bs4 import BeautifulSoup as bs # 建立一个头档,让对方的 server 以为是我们使用浏览器的方式登入他们网站,避免不必要的阻拦 opener = urst.build_opener() hd = ('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:55.0) Gecko/20100101 Firefox/55.0') opener.addheaders = [hd] # 网址如果使用该公司提供的 API,则代入浏览器里面的 URL 位置找到的将不再是网页,而是一个 json 文件 googleSearch = 'https://www.google.com/search?ei=1m7NWePfFYaGmQG51q7IBg&hl=en&q={}\&tbm=isch&ved=0ahUKEwjjovnD7sjWAhUGQyYKHTmrC2kQuT0I7gEoAQ&start={}\&yv=2&vet=10ahUKEwjjovnD7sjWAhUGQyYKHTmrC2kQuT0I7gEoAQ.1m7NWePfFYaGmQG51q7IBg\.i&ijn=1&asearch=ichunk&async=_id:rg_s,_pms:s' baiduSearch = 'http://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word={}' # 定义一个函数,能够让我们输入关键词之后,借由 google 的搜寻回传一组全是图片网址组成的 list def google_get_links(keywords): # 人类的语言使用空格分离,但是在 URL 的规则中,空格要使用 “+” 替代 keywords = keywords.replace(' ', '+') # 把处理好的重组关键词放入到对应的网址位置中,0表示低0页(即可) google_url = googleSearch.format(keywords, 0) # 使用 urllib 包打开重组好的网址,并且 “读” 里面的内容后,赋值于 data 这个自创的 object data = opener.open(google_url).read() # 把被赋值的 data object 转换成 json 格式的 list 信息 page = json.loads(data) # 使用 bs4 的方法过滤 Tag 内容前的预处理,把 object 转换成 bs4 对应的属性 soup = bs(page[1][1], 'lxml', from_encoding='utf-8') # 找出所有名为 ”img” 的标签 img_tags = soup.findAll('img') # 找出 img 标签中国呢备注了 ‘src' 里面的内容,也就是我们要的网址 links = [target.get('src') for target in img_tags] # 最后遍历到一个 list 里面会传给该函数 return links # 定义一个函数,能够让我们输入关键词之后,借由 baidu 的搜寻回传一组全是图片网址组成的 list def baidu_get_links(keywords): keywords = keywords.replace(' ', '+') baidu_url = baiduSearch.format(keywords) data = opener.open(baidu_url).read() soup = bs(data, 'lxml', from_encoding='utf-8') img_tags = soup.findAll('script', {'type': 'text/javascript'}) # 定义一个空的 list 用来承载在回圈中被不断添加的内容 links = [] # 由于这边没有使用 API,所以找出来的东西会很杂乱,需要自行解析,自行找规则 for chaos in img_tags: chaos_str = chaos.string
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。