yolo3 + python 找出图像中的汉字

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010429424/article/details/83238988

yolo3 + python 找出图像中的汉字

源码下载地址
https://github.com/lijialinneu/keras-yolo3-master/

1. 准备环境

(1)windows7 + python环境,安装anaconda3,我装的是python3.6版本
(2)安装tensorflow(cpu版)、keras,直接用pip install 命令下载,或conda install命令
(3)下载keras-yolo、下载VOC2007数据集;保留VOC2007中的每一个文件夹,但是要将文件夹中的所有小文件都删除

可以直接下载源码,里面已经配置好了VOC2007数据集。
地址:https://github.com/lijialinneu/keras-yolo3-master/

2. 准备数据

1、准备了151张含有汉字的图像,将这些图像放在keras-yolo3-master\VOCdevkit\VOC2007\JPEGImages
在这里插入图片描述

2、用LabelImgv1.3.3标记这些图像,标记命名为"chinese",自动生成.xml文件,将这些.xml文件放在keras-yolo3-master\VOCdevkit\VOC2007\Annotations

在这里插入图片描述

在这里插入图片描述

3、生成ImageSets\Main\下的4个文件。运行VOCdevkit\VOC2007\下的test.py,会自动建好这四个文件。
在这里插入图片描述

4、生成keras-yolo3-master\下的test.txt、train.txt、val.txt,运行keras-yolo3-master\voc_annotation.py,会自动生成2007_test.txt、2007_train.txt、2007_val.txt三个文件,接下来需要我们手动去掉每一个文件名的前缀"2007_"

test.py中的内容可参考:
https://blog.csdn.net/Patrick_Lxc/article/details/80615433

也可以查看源码:
https://github.com/lijialinneu/keras-yolo3-master/

在这里插入图片描述

3. 开始训练

1、修改参数配置文件yolo3.cfg,打开yolo3.cfg,搜索"yolo"关键词,能搜到三处包含"yolo"的地方,修改filters、classes、random

classes = 1 # 因为我只检测汉字一类,所以是1
filters = 3 * (5+classe) = 3 * (5 + 1) = 18
random = 0

在这里插入图片描述

2、修改keras-yolo3-master\model_data下coco_classes.txt和voc_classes.txt,里面写的是要识别的类型,我写的是chinese。
在这里插入图片描述

3、运行keras-yolo3-master\train.py进行训练, 几个重要的参数如下:

    batch_size = 10
    val_split = 0.1
    epochs = 100

我使用CPU进行训练,程序跑了一天一夜【哭】,最后的loss在45.5左右,可以看keras-yolo3-master\训练日志.txt
在这里插入图片描述

4. 进行预测

运行keras-yolo3-master\yolo.py,识别的结果会存储到keras-yolo3-master\VOCdevkit\VOC2007\SegmentationClass中,部分结果如下:
在这里插入图片描述
在这里插入图片描述

5. 结果总结

因为训练的次数不多、数据量也很少,虽然识别的准确率不高,但是可以找出一些汉字来了。

参考
https://blog.csdn.net/Patrick_Lxc/article/details/80615433
https://blog.csdn.net/weixin_38264564/article/details/82557678

源码下载地址
https://github.com/lijialinneu/keras-yolo3-master/

展开阅读全文

没有更多推荐了,返回首页