全网使用yolov5分割任务最详细教程!!!

1、前言

        在使用yolov5开展分割任务时,数据预处理过程较为复杂,在此记录一下完整的使用过程。

工程文件夹目录如下图:

全网使用yolov5分割任务最详细教程!!!_第1张图片

 

2、数据预处理

2.1 Labelme格式数据转为COCO格式

       在这部分,首先需要将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,
      

你可能感兴趣的:(YOLO,python,深度学习)