Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/DLLXW/objectDetectionDatasets
目标检测数据集制作:VOC,COCO,YOLO等常用数据集格式的制作和互相转换脚本
https://github.com/DLLXW/objectDetectionDatasets
Last synced: 29 days ago
JSON representation
目标检测数据集制作:VOC,COCO,YOLO等常用数据集格式的制作和互相转换脚本
- Host: GitHub
- URL: https://github.com/DLLXW/objectDetectionDatasets
- Owner: DLLXW
- Created: 2020-09-19T11:29:13.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-10-21T06:21:55.000Z (about 3 years ago)
- Last Synced: 2024-11-12T18:50:42.174Z (30 days ago)
- Language: Python
- Size: 1.25 MB
- Stars: 423
- Watchers: 6
- Forks: 118
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-object-detection-datasets - DLLXW/objectDetectionDatasets
README
# objectDetectionDatasets
目标检测数据集制作:VOC,COCO,YOLO等常用数据集格式的制作和互相转换脚本,demo/目录提供的原始的voc格式的20张原图和对应20个.xml标注.
下面的脚本都可以通过这个demo数据跑通.
## voc_split_trainVal.py
该脚本用于生成voc/目录下的ImageSets/..目录,分割了训练和验证集
## voc_to_coco_V1.py 和 voc_to_coco_V2.py
这两个脚本都是实现从voc的.xml标注格式转换到coco的.json格式,只是有所区别
> - v1版本实现了转换的同时进行训练/验证的分割
> - v2版本包含了segemetation字段(当训练htc等需要分割的任务时候网络需要用到)
## convert_voc_to_yoloV5.py 和 convert_voc_to_yoloV3.py
两个脚本实现的功能几乎相同,灵活取用
> - V5脚本实现将voc格式的数据转化为yoloV5需要的.txt标注文件,运行该脚本,会在voc/目录下生成
worktxt/目录(yolo需要的格式).
> - V3这个脚本除了生成.txt的标注(同上),还会生成一个trianval.txt的索引,以前的yolov3系列用的多一点## coco_split_trainVal.py
该脚本实现coco格式的数据分割出训练集和验证集,同时里面还实现了一个去除背景图的方法(没有标注框的图),可以结合上面的
voc_to_coco_v2.py使用.## make_voc.py(其余各种格式转voc)
前面没有写coco转voc格式的脚本,make_voc.py就提供了一个制作voc格式数据的通用套路(核心代码).
```python
`img = cv2.imread(image_path)
height, width, depth = img.shape
with codecs.open(anno_dir + imgId_frame_name[:-4] + '.xml', 'w', 'utf-8') as xml:
xml.write('\n')
xml.write('\t' + imgId_frame_name + '\n')
xml.write('\t\n')
xml.write('\t\t' + str(width) + '\n')
xml.write('\t\t' + str(height) + '\n')
xml.write('\t\t' + str(depth) + '\n')
xml.write('\t\n')
cnt = 0
for bbox in bboxs:
xmin, ymin, xmax, ymax = bbox
class_name = 'obstacles'
#
xml.write('\t\n')
xml.write('\t\t' + class_name + '\n')
xml.write('\t\t\n')
xml.write('\t\t\t' + str(xmin) + '\n')
xml.write('\t\t\t' + str(ymin) + '\n')
xml.write('\t\t\t' + str(xmax) + '\n')
xml.write('\t\t\t' + str(ymax) + '\n')
xml.write('\t\t\n')
xml.write('\t\n')
cnt += 1
assert cnt > 0
xml.write('')`
```