前言
本文主要用于记录我在使用python做图像识别语义分割训练集的过程,由于在这一过程中踩坑排除BUG过多,因此也希望想做这部分内容的同学们可以少走些弯路。
本文是python语义分割与街景识别第三篇,关于数据集准备的内容。
一、自己制作数据集
自己做数据集的方法其实非常简单,可以使用labelme软件,将每张图片手动框选并填色标记,这里不使用这种方法,因为在建筑或城市尺度下的训练集数量需要很大才可以达到不错的精度,一般不会自行准备数据集,故省略,可以自行寻找labelme教程
二、使用现有数据集训练
2.1 数据集选择
这里使用的是cityscapes已经标注好的训练集,训练集就是一堆精确到像素按分类人工填色标记的图片集
Cityscapes Dataset – Semantic Understanding of Urban Street Scenes
选择“download”注册账号(最好使用学校教务邮箱)并下载相应数据集,笔者下载了前三个数据集
2.2 下载官方处理脚本
地址:https://github.com/mcordts/cityscapesScripts
将2.1中的图片集放在cityscapesScripts文件夹下待后续操作
这里对下载下来的数据集做简单说明:以gtCourse为例,里面有这三个文件夹(不同数据集有可能不太一样)
第一个文件夹中的图片用于训练,第二个文件夹用于额外训练(有些数据集这个文件夹是test),第三个文件夹中图片用于验证(validation)
打开第一个train文件夹,里面都是不同城市的名字文件夹,比如第一个是亚琛
里面是一堆这样的文件
填过色的图片和一个对应的json文件。json文件中有标记和像素信息,要训练的本质是这堆信息,填色图片只是最后呈现给人看的结果
2.3 准备数据集
新建一个文件夹名为dataset,将其准备为下面的样子
annotations中放入填好色的图片,images中放入对应的原图,perdict中放入需要测试的其他街道图片
说明:其实不论是cityscapes下载的包里还是paddleseg中都有自动生成以上文件的自动化脚本,但是由于版本和包的问题,生成结果会有不同,因此这里照顾不会代码的同学,说明一下每个文件都是什么,方便手动做这些文件。
labels.txt内容如下,包括所有需要识别的类别标签和“背景”,这部分内容可由训练框架自带代码生成,有配置文件可以修改
_background_
road
sidewalk
car
sky
terrain
building
vegetation
pole
traffic sign
static
bicycle
person
license plate
rider
ego vehicle
out of roi
ground
traffic light
dynamic
wall
cargroup
fence
bicyclegroup
motorcycle
parking
bus
persongroup
bridge
trailer
train(训练集)、validation(验证集)、test(测试集)三者数量占比一般为6:2:2
train.txt内容如下
images\\12.png annotations\\12.png
images\\10.png annotations\\10.png
images\\6.png annotations\\6.png
images\\13.png annotations\\13.png
images\\14.png annotations\\14.png
images\\8.png annotations\\8.png
images\\1.png annotations\\1.png
images\\4.png annotations\\4.png
images\\0.png annotations\\0.png
images\\9.png annotations\\9.png
validation.txt内容如下
images\\7.png annotations\\7.png
images\\3.png annotations\\3.png
images\\5.png annotations\\5.png
test.txt内容如下
images\\15.png annotations\\15.png
images\\11.png annotations\\11.png
images\\2.png annotations\\2.png
这部分文件可由框架自带代码生成,也可手动填写。文章来源:https://www.toymoban.com/news/detail-707417.html
到此数据集准备工作完成,下一步就是代码运行。 文章来源地址https://www.toymoban.com/news/detail-707417.html
到了这里,关于Python语义分割与街景识别(3):数据集准备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!