yolo3 + python 找出图像中的汉字

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/

<think>好的,用户想找关于用Python在建筑领域复现机器学习项目的教程和资源。首先,我需要回忆一下系统提供的引用内容,看看有没有相关的信息。引用4提到一个毕业设计项目,基于机器学习的建筑工地目标检测识别,用了Python,这可能相关。里面提到了归一化处理,但用户可能需要更具体的资源。 接下来,用户的需求是教程和资源,可能需要分步骤指导。Kaggle(引用1)有很多数据集和教程,虽然引用里没有直接提到建筑领域,但可以建议用户去Kaggle搜索相关数据集,比如“construction site detection”或者“building defect classification”,因为Kaggle有丰富的资源,用户可能找到适用的数据集和代码示例。 另外,引用4中的项目可能涉及目标检测,所以需要推荐计算机视觉相关的库,比如TensorFlow、PyTorch、OpenCV,这些是常用的工具。用户可能需要安装这些库的指导,但问题主要是找资源,所以先列出这些技术栈。 然后,系统设计方面,引用2提到机器学习系统设计,特别是集成学习,但用户的问题可能更多是关于项目复现,所以可能需要提到系统设计的书籍或教程,帮助用户理解整个流程,比如数据采集、模型训练、部署等。 网络爬虫(引用3)可能用于数据收集,如果建筑领域的数据不足,可能需要自己爬取,比如建筑图纸或工地图片。可以建议用户使用Scrapy或BeautifulSoup来采集数据,但需要遵守网站的规则。 综合这些引用,需要整理出几个步骤:寻找数据集、学习相关技术栈、参考开源项目、系统设计、数据采集。然后生成相关问题,可能包括建筑领域的数据集来源、目标检测模型选择、数据不足的处理方法,以及模型部署的注意事项。 需要确保回答结构清晰,分点列出,并且每个建议都尽量结合引用内容,比如引用4的具体处理步骤,引用1的Kaggle资源,引用3的网络爬虫方法。同时,生成的有关问题要围绕用户可能遇到的后续问题,比如如何选择模型、处理数据、优化性能等。 最后检查是否符合系统级指令:使用正确的中文,数学公式用$...$,如果有的话。但这个问题不涉及数学公式,所以可能不需要。确保引用标识正确,比如提到Kaggle时加[^1],系统设计时加[^2],网络爬虫时加[^3],归一化处理时加[^4]。</think>根据您关于建筑领域机器学习项目复现的需求,结合站内资源推荐以下分步解决方案: 1. 基础数据集获取 建议在Kaggle平台搜索建筑相关数据集,如$construction\_site\_object\_detection$、$building\_defect\_classification$等关键词,该平台提供完整的数据集和配套代码案例。例如: ```python # 典型数据加载示例 import pandas as pd dataset = pd.read_csv(&#39;construction_safety.csv&#39;) ``` 2. 核心技术栈选择 - 计算机视觉:TensorFlow Object Detection API 或 PyTorch - 数据处理:OpenCV、PIL(图像预处理) - 可视化:Matplotlib、Seaborn - 归一化处理推荐使用引用[4]中提到的MinMaxScaler方法 3. 项目复现参考路径 (1) 选择开源项目(如引用[4]的建筑工地检测项目) (2) 使用$git clone$克隆代码仓库 (3) 按requirements.txt安装依赖 (4) 通过数据增强解决样本不足问题: $$augmented = ImageDataGenerator(rotation_range=20, zoom_range=0.15)$$ 4. 系统设计方法论 参考《机器学习系统设计》中提到的三要素原则: - 数据划分:建议采用时空分割法(建筑场景特有) - 模型选择:YOLO系列适合实时检测,Mask R-CNN适合精细分割 - 结果组合:多传感器数据融合策略 5. 数据补充方案 当公开数据不足时,可使用网络爬虫技术[^3]采集建筑领域图像,注意遵守robots.txt规则: ```python import scrapy class ConstructionSpider(scrapy.Spider): name = &#39;building_crawler&#39; start_urls = [&#39;http://architectural-database.com&#39;] ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值