提交 7b5343a3 编写于 作者: L LaraStuStu

Create 3_[语义分割]任务数据标注.md

上级 3d2e96c9
## 3 使用LabelMe标注「语义分割」任务数据
语义分割中常用的数据集是CityScape和COCO,此小节主要讲述CityScape数据集在LabelMe上标注的使用,有关COCO部分请参考 2.3 小节中有关Mask RCNN部分。
### 3.1 准备工作
* **3.1.1** 对收集的图像划分为训练、验证(非必须)、测试三个部分的数据集,分别存放于对应的文件夹中
* **3.1.2** 创建与图像文件夹相对应的文件夹,用于存储标注的json文件
* **3.1.3** 点击”Open Dir“按钮,选择需要标注的图像所在的文件夹打开,则”File List“对话框中会显示所有图像所对应的绝对路径
### 3.2 标注
* **3.2.1** 点击右侧的“Create Polygons”以打点的方式圈出目标的轮廓,并在弹出的对话框中写明对应label(当label已存在时点击即可),具体如下提所示:
<div align=center><img width="800" height="450" src="./pics/detection5.png"/></div>
当框标注错误时,可点击右侧的“Edit Polygons”再点击标注框,通过拖拉进行修改,也可再点击“Delete Polygon”进行删除。
* **3.2.2** 点击右侧”Save“,将标注结果保存到***3.1.1***中创建的文件夹中
## 3.3 对LabelMe标注数据的转换
语义分割中常用的数据集是CityScape和COCO,此小节主要讲述CityScape数据集的转换,有关COCO部分请参考 2.4 小节。由于LabelMe标注的数据与CityScape数据集所需的格式不一致,所以需要将LabelMe数据集转换为CityScape数据集格式。
CityScape的数据目录结构如下:
```
data/mydataset/
|-- gtFine
|-- test
|-- train
|-- val
|-- leftImg8bit
|-- test
|-- train
|-- val
```
其中,`gtFine`用于存放json文件,`leftImg8bit`用于存放图像文件。
针对训练、验证(非必须)、测试三个部分的数据集,分别在命令行中执行下述命令进行转换:
```cmd
# 进入Anaconda环境后,安装下述python包
# 安装numpy
pip install numpy
# 转换
cd ./DataAnnotation
python ./labelme2cityscape.py \
--json_input_dir ~/Users/json/ \
--output_dir ~/Users/cityscape/ \
# --json_input_dir:LabelMe所标注文件的文件夹路径
# --output_dir:最终转换的文件的存放路径
```
转换后的标注文件为每张图像对应一个.json文件,将训练、验证(非必须)、测试的转换结果分别放入gtFine的train/val/test中,同时将各个文件夹下json文件所对应的图像文件分别放入leftImg8bit的train/val/test中。转换后的.json文件的格式如下所示:
```
{
"imgHeight": int,
"imgWidth": int,
"objects": [
{
"label": str,
"polygon": [
[
int,
int
],
[
int,
int
],
...
]
...
}
]
}
```
相关标签含义:
|标签|备注|
|-----|-----|
|objects| 目标信息的列表|
|label| 目标类别|
|polygon| 目标坐标的列表,有多边形点的所有坐标组成|
|imageHeight| 图像高度|
|imageWidth| 图像宽度|
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册