基于Detectron2 & AdelaiDet的BlendMask训练 BlendMask环境配置 COCO数据集

基于Detectron2 & AdelaiDet的BlendMask训练 BlendMask环境配置 COCO数据集

博客参考:https://blog.csdn.net/weixin_43796496/article/details/125179243
博客参考:https://blog.csdn.net/weixin_43823854/article/details/108980188

训练的数据为:竞赛数据集
配置环境为:windows环境 pytorch1.10.0 cuda11.3 显卡 GTX 1650S 单卡

一、下载Detectron2

在github搜索BlendMask,出现的界面为AdelaiDet
AdelaiDet是基于Detectron2之上,可以包含多个实例级识别任务的开源工具箱,所以它也可以看作是Detectron2的一个拓展插件。BlendMask也是属于AdelaiDet其中一个任务。

二、配置步骤

1.基础环境配置

在终端中输入

conda create -n detectron2 python=3.8 #创建虚拟环境
conda activate detectron2 #激活虚拟环境

nvcc --sersion #查看cuda版本

详细配置请参考Pytorch环境配置

2.安装Detectron2

按照官方安装步骤进行安装
基本需求
在这里插入图片描述

官方文档
https://github.com/facebookresearch/detectron2/blob/main/INSTALL.md
下载Detectron2相关代码

git clone https://github.com/facebookresearch/detectron2.git   #用git下载代码
python -m pip install -e detectron2                            #安装detectron2

出现问题,参考博客 https://blog.csdn.net/iracer/article/details/125755029

3.安装AdelaiDet

windows下

git clone https://github.com/aim-uofa/AdelaiDet.git
cd AdelaiDet
python setup.py build develop

如果你正在使用docker,一个预构建的映像可以用:

docker pull tianzhi0549/adet:latest

如果torch版本大于1.11.0
会出现以下错误,原因是新版pytorch移除了 THC/THC.h
fatal error: THC/THC.h: No such file or directory
将路径下的 AdelaiDet/adet/layers/csrc/ml_nms/ml_nms.cu 改为以下内容
具体参考:https://github.com/aim-uofa/AdelaiDet/issues/550 & https://github.com/aim-uofa/AdelaiDet/pull/518

// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
#include <ATen/ATen.h>
#include <ATen/cuda/CUDAContext.h>
// #include <THC/THC.h>
#include <ATen/cuda/DeviceUtils.cuh>
#include <ATen/ceil_div.h>
#include <ATen/cuda/ThrustAllocator.h>
#include <vector>
#include <iostream>

int const threadsPerBlock = sizeof(unsigned long long) * 8;

__device__ inline float devIoU(float const * const a, float const * const b) {
   
    if (a[5] != b[5]) {
   
      return 0.0;
  }
    float left = max(a[0], b[0]), right = min(a[2], b[2]);
    float top = max(a[1], b[1]), bottom = min(a[3], b[3]);
    float width = max(right - left + 1, 0.f), height = max(bottom - top + 1, 0.f);
    float interS = width * height;
    float Sa = (a[2] - a[0] + 1) * (a[3] - a[1] + 1);
    float Sb = (b[2] - b[0] + 1) * (b[3] - b[1] + 1);
    return interS / (Sa + Sb - interS);
}

__global__ void ml_nms_kernel(const int n_boxes, const float nms_overlap_thresh,
                              const float *dev_boxes, unsigned long long *dev_mask) {
   
    const int row_start = blockIdx.y;
    const int col_start =
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用BlendMask训练自己的数据集,您需要进行以下步骤: 1. 数据准备:准备您自己的数据集,包括图像和对应的标注。确保标注包含了每个对象的边界框和对应的类别信息。 2. 数据格式转换:将您的数据集转换为BlendMask所需的格式。BlendMask使用COCO数据集格式,其中包含一个JSON文件和图像文件。您可以使用相应的工具或脚本将您的数据集转换成COCO格式。 3. 配置文件:根据您的数据集和训练需求,调整BlendMask配置文件。配置文件包含了训练参数、数据路径、模型结构等信息。您可以根据需要修改这些参数,以便适应您的数据集。 4. 模型训练:使用配置文件和数据集,开始训练BlendMask模型。您可以使用命令行或脚本来启动训练过程。训练过程需要一定的计算资源和时间,您可以根据需要进行调整。 5. 模型评估:在训练完成后,您可以使用测试集对训练得到的模型进行评估。评估指标通常包括准确率、召回率、平均精度等。这些指标可以帮助您了解模型在您的数据集上的性能。 6. 模型使用:训练完成后,您可以使用训练得到的模型来进行目标检测任务。您可以使用模型对新的图像进行推断,获取目标的边界框和类别信息。 请注意,BlendMask是一个复杂的模型,训练和调整可能需要一定的机器学习和计算机视觉知识。您可以参考BlendMask的官方文档或其他资源,以获取更详细的指导和帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值