COCO格式数据集制作并使用yolact网络训练

前言:本文制作的数据集只有5张,仅供演示使用。

环境搭建请参考前文:

ubuntu18.04环境下的darknet+yolov3搭建及程序演示

本实验平台软硬件环境参数:

  1. gpu:GTX 1060

  2. cpu:intel i7-7700HQ

  3. 内存:16GB

  4. Ubuntu版本:18.04

  5. NVIDIA驱动版本:390.116

  6. python:3.6.8

  7. cuda版本:cuda_9.0.176_384.81_linux

  8. cudnn版本:cudnn-9.0-linux-x64-v7.1

本文使用的标注工具是labelme,来自wkentaro大神。

github:https://github.com/wkentaro/labelme

一 .你可以通过以下步骤对自己的数据集进行训练:(参考至官方文档)

1.为你的数据集创建一个COCO风格的目标检测JSON注释文件。这方面的说明可以参考下面。需要注意的是,我们不使用下列栏目,因此可以省略:

  • info
  • liscense
  • Under imagelicense, flickr_url, coco_url, date_captured
  • categories (我们使用自己的类别格式,见下文)

2.在data/config.py中的dataset_base下为数据集创建definition(有关每个字段的说明,请参阅dataset_base中的注释):

my_custom_dataset = dataset_base.copy({
    'name': 'My Dataset',

    'train_images': 'path_to_training_images',
    'train_info':   'path_to_training_annotation',

    'valid_images': 'path_to_validation_images',
    'valid_info':   'path_to_validation_annotation',

    'has_gt': True,
    'class_names': ('my_class_id_1', 'my_class_id_2', 'my_class_id_3', ...)
})

3.两点注意事项

  • 注释文件中的Class的ID应该从1开始,并按class_names顺序依次增加。如果您的注释文件(如COCO)不是这样,请参见在dataset_base中的label_map 。
  • 如果不想创建验证数据集,请使用相同的图像路径和注释文件进行验证。默认情况下(请参见python train.py--help),train.py将每隔2个时期输出数据集中前5000个图像的mAP。

4.最后,在同一文件中的yolact_base_config中,将'dataset'的值更改为'my_custom_dataset'或您在上面命名config对象的任何内容。然后您可以使用上一节中的任何训练指令。

二.下载并安装Labelme

1.创建虚拟环境:

conda create -n labelme python=3.6

2.进入虚拟环境:

source activate labelme

3.安装pyqt5和labelme:

sudo apt-get install python3-pyqt5 
sudo pip3 install labelme

4.将项目clone至本地:
github链接:https://github.com/wkentaro/labelme

三.创建coco数据集

1.进入lambel文件夹,例如:/home/qrt/Downloads/labelme-master/examples/instance_segmentation 

将需要制成数据集的照片放入data_annotated文件夹里面。

2.进入labelme虚拟环境:

source activate labelme

3.输入labelme打开程序

4.点击左侧菜单的OpenDir打开存放数据图像的文件夹,例如:/home/qrt/Downloads/labelme-master/examples/instance_segmentation/data_annotated

5.依次点击:Edit->Create Polygons,然后绘制目标轮廓并创建标签,然后保存,直至绘制完成所有数据集图像。

5.文件夹里面每张图片生成一个对应的.json文件:

6.修改labels.txt文件

7.运行下面代码

./labelme2coco.py data_annotated data_dataset_coco --labels labels.txt

生成图像和标签两个文件夹

 四.修改yolact代码,训练数据集。

1.打开/media/qrt/data/yolact/yolact-master/data/config.py

 

如上图,修改训练集路径和标签路径。

2.修改数据名称和num_classes。(num_classes=数据集标签类数+1)

 3.训练数据。

参考官方说明:

(1)下载预训练权重放至根目录里的weights文件夹下

  • For Resnet101, download resnet101_reducedfc.pth from here.
  • For Resnet50, download resnet50-19c8e357.pth from here.
  • For Darknet53, download darknet53.pth from here.

(2)在训练过程中按ctrl+c能够保存当前训练权重并保存在weight文件夹里。命名为:<config>_<epoch>_<iter>.pth

(3)训练

使用默认为8的batch size训练:

python train.py --config=yolact_base_config

根据根据实际情况可以适当调节batch size的大小,如果显卡性能低可以减小batch size大小:

python train.py --config=yolact_base_config --batch_size=5

从中断的权重继续训练:

python train.py --config=yolact_base_config --resume=weights/yolact_base_10_32100.pth --start_iter=-1

 帮助:

python train.py --help

4.测试 

在终端进入yolact项目根目录,然后进入创建好的虚拟环境里面。输入:

python eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.3 --top_k=100 --image=my_image.png

最后面是图片的绝对路径。

 

最后,欢迎在评论区交流、讨论。 

  • 8
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 53
    评论
对于制作COCO格式数据集,你需要按照以下步骤进行操作: 1. 数据收集:收集与你任务相关的图像和标注信息。确保图像和标注信息是一一对应的,即每张图像都有相应的标注。 2. 安装COCO API:COCO API是一个用于处理COCO数据集的Python库,你需要先安装它。可以在GitHub上找到COCO API的源代码并按照说明进行安装。 3. 创建JSON文件:使用COCO API提供的函数,创建一个JSON文件来存储数据集的信息。JSON文件包含了图像的路径、尺寸、类别标签等信息。 4. 标注图像:使用标注工具(例如LabelImg、RectLabel等)来为每张图像创建标注。标注通常以矩形框的形式表示,可以包括物体的类别、边界框的坐标等。 5. 将标注信息添加到JSON文件:将每张图像的标注信息添加到之前创建的JSON文件中。确保每个标注都与相应的图像路径对应。 6. 数据集划分:根据需要,可以将数据集划分为训练集、验证集和测试集。可以按照比例划分,也可以手动选择特定的图像作为验证集和测试集。 7. 完善JSON文件:更新JSON文件中的其他信息,例如数据集名称、类别标签等。 8. 数据集检查:使用COCO API提供的函数,检查数据集的完整性和正确性。确保图像和标注信息没有错误或缺失。 9. 数据集使用:将制作好的COCO格式数据集用于训练模型或其他相关任务。 以上是制作COCO格式数据集的基本步骤,你可以根据具体需求和任务进行适当调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 53
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值