使用tiny-yolov2训练自己的图片数据

本文参考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
   
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值