Tensorflow2.0 YOLO篇之提取xml文件信息
数据集介绍
数据集下载地址:
链接:https://pan.baidu.com/s/1ZP9H2ym3Vp4Sda1mNiv9Pw
提取码:5okb
复制这段内容后打开百度网盘手机App,操作更方便哦
这次选择的数据集是甜菜(sugarbeet)和杂草(weed)的数据集

在数据集的xml文件中包含了图片中物体的位置形状(x,y,w,h)和label
其中的一个xml文件
<annotation>
<folder>train</folder>
<filename>X2-10-1.png</filename>
<path /><source>
<database>Unknown</database>
</source>
<size>
<width>512</width>
<height>512</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>weed</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>71</xmin>
<ymin>265</ymin>
<xmax>115</xmax>
<ymax>278</ymax>
</bndbox>
</object>
......
<object>
<name>sugarbeet</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>322</xmin>
<ymin>266</ymin>
<xmax>363</xmax>
<ymax>294</ymax>
</bndbox>
</object>
</annotation>
现在我们要做的工作就是将这些数据储存到numpy数组中去,代码中我尽可能的写了注释,书写这个的是否选择了vscode作为编译工具,以为vscode对于jupyter的支持较好,可以在编写的过程中更加方便的查看每一步的运行结果
同时在编写这一步的时候需要注意的一个点就是每个图片中的物体个数可能不一样,这样我们的boxes的个数就有问题。因为每个图片中的框信息都没有超过5个(上图除外那是我自己画的),所以我们每一张图片都涉及有五个空,不足的就用0来填充
#%%
import tensorflow as tf
import os,glob
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import numpy as np
from tensorflow import keras
# set random seed
tf.random.set_seed(2233)
np.random.seed(2233)
# %%
print(tf.__version__

本文深入解析了使用TensorFlow 2.0进行YOLO算法的实现过程,从数据集介绍到XML文件解析,再到图像预处理及模型训练。详细介绍了如何处理甜菜和杂草的数据集,包括提取图片中的物体位置和类别信息,并将其转化为可用于模型训练的格式。
最低0.47元/天 解锁文章
1827

被折叠的 条评论
为什么被折叠?



