赞
踩
在使用yolov5开展分割任务时,数据预处理过程较为复杂,在此记录一下完整的使用过程。
工程文件夹目录如下图:
在这部分,首先需要将Labelme标注的数据(Json格式数据)转换为COCO格式数据(将所有的Labelme标注的Json数据合并到一个COCO json文件中)。废话不多说,直接上代码labelme2coco.py:
- #!/usr/bin/env python
-
- import argparse
- import collections
- import datetime
- import glob
- import json
- import os
- import os.path as osp
- import sys
- import uuid
-
- import imgviz
- import numpy as np
-
- import labelme
-
- try:
- import pycocotools.mask
- except ImportError:
- print("Please install pycocotools:\n\n pip install pycocotools\n")
- sys.exit(1)
-
-
- def main():
- parser = argparse.ArgumentParser(
- formatter_class=argparse.ArgumentDefaultsHelpFormatter
- )
- # --input_dir为存放labelme标注json文件所在的文件夹
- parser.add_argument("--input_dir",type=str, default="/opt/pycharm2021/workspace/water_seg/yolov5-7.0/dataset/json", help="input annotated directory")
- # --output_dir为输出COCO格式的json文件的文件夹
- parser.add_argument("--output_dir", type=str, default="/opt/pycharm2021/workspace/water_seg/yolov5-7.0/dataset/COCO_JSON", help="output dataset directory")
- # --labels参数为一个txt文本文件,其中包含标注的所有类别,按行分开
- parser.add_argument("--labels", type=str, default="label.txt", help="labels file")
- parser.add_argument(
- "--noviz", help="no visualization", action="store_true"
- )
- args = parser.parse_args()
-
- if osp.exists(args.output_dir):
- print("Output directory already exists:", args.output_dir)
- sys.exit(1)
- os.makedirs(args.output_dir)
- os.makedirs(osp.join(args.output_dir, "JPEGImages"))
- if not args.noviz:
- os.makedirs(osp.join(args.output_dir, "Visualization"))
- print("Creating dataset:", args.output_dir)
-
- now = datetime.datetime.now()
-
- data = dict(
- info=dict(
- description=None,
- url=None,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。