向AI转型的程序员都关注了这个号👇👇👇python
人工智能大数据与深度学习 公众号:datayx程序员
1.车牌定位
咱们能够经过图像分割算法对一张输入图片进行分割,分割后的图形实际上是对原图中的区域进行的分类标注,例如这里咱们能够将原图标注为2类,一类就是车牌区域,还有一类就是无关的背景区域。说到标注图形就不得不说labelme了,咱们能够在cmd界面经过命令 pip install labelme 进行labelme库的安装,安装结束在cmd界面输入labelme便可打开lablem软件的标注界面以下:面试
3. 准备好上述一切就能够开始标注了,点击软件左侧的 这是画任意多边形的按钮,鼠标左键点击进行标注,最后双击鼠标左键会锁定标注区域,出现以下图界面,第一次标注需输入名称,后续标注就自动显示了,点击ok后标注的线条变为红色,同时json文件夹也会相应保存和pic名字对应的json文件:flask
4. 所有标注结束后,使用以下代码将json数据提取出来并保存到train_image和train_label文件夹中,u-net部分的数据集我一共标注了1200多张,最终效果很棒,达到了定位的效果。浏览器
标注好的u-net训练图片就准备好了,分别在train_image和train_label文件夹中,一并放在unet_datasets文件夹内,以下图所示:
微信
接下来是u-net模型搭建和训练,使用tensorflow的keras实现,贴一下我训练u-net用的代码:网络
代码 ,模型 获取方式
关注微信公众号 datayx 而后回复 unet 便可获取。
AI项目体验地址 https://loveai.tech
2.车牌矫正
训练u-net获得unet.h5
u-net分割和cv2矫正的代码
上述代码关键部分是要获取车牌四边形的四个顶点,一开始只使用cont中坐标到外接矩形四个端点的距离,发现对于倾斜度很高的车牌效果可能不佳,见下图,能够观察到,计算获得的4个黄色坐标中,左右有2个黄色点并不处在四边形的顶点位置,这样矫正效果大打折扣,同时也会影响后续的识别效果
发现上述问题后,我又想了个方法就是加入了上述的point_to_line_distance函数,即还计算坐标点到上下两条边的距离,并添加了权重,通过调整权重设置为0.975倍的点线距离,0.025点到端点距离时总体效果较佳,最终矫正效果以下图:
阅读过本文的人还看了如下文章:
基于40万表格数据集TableBank,用MaskRCNN作表格检测
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch天然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest作特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
机大数据技术与机器学习工程
搜索公众号添加: datanlp
长按图片,识别二维码
本文分享自微信公众号 - 机器学习AI算法工程(datayx)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。