ubuntu系统 detectron2训练自己的数据库

@ detectron2训练自己的数据库

注册自己的数据集

detectron2官网地址 https://github.com/facebookresearch/detectron2。安装及环境配置参考官方文档或者其他博客,此处不在赘述,主要描述训练自己数据集的过程。本文使用的数据集为visdrone2018,在训练数据集之前需要将数据集转换为coco格式的json数据集。

方法1

from detectron2.data.datasets import register_coco_instances

register_coco_instances('self_coco_train', {
   
   }, 
                        'instances_train2017.json', #json文件路径
                       'train2017'#图片路径)
register_coco_instances('self_coco_val', {
   
   }, 
                        'instances_val2017.json', #json文件路径
                       'val2017'#图片路径)

方法2

from detectron2.data import DatasetCatalog, MetadataCatalog
from detectron2.data.datasets.coco import load_coco_json

DatasetCatalog.register("self_coco_train", lambda: load_coco_json(TRAIN_JSON, TRAIN_PATH, "self_coco_train"))
MetadataCatalog.get("self_coco_train").set(thing_classes=["pos", "neg"],
                                                    json_file=TRAIN_JSON,
                                                    image_root=TRAIN_PATH)
DatasetCatalog.register("self_coco_val", lambda: load_coco_json(VAL_JSON, VAL_PATH, "self_coco_val"))
MetadataCatalog.get("self_coco_val").set(thing_classes=["pos", "neg"],
                                                json_file=VAL_JSON,
                                                image_root=VAL_PATH)

获取数据的元数据

coco_val_metadata = MetadataCatalog.get("self_coco_val")
dataset_dicts = DatasetCatalog.get("self_coco_val")
coco_val_metadata

数据可视化,确定数据载入无问题

import random

for d in random.sample(dataset_dicts, 3):
    img = cv2.imread(d["file_name"])
    visualizer = Visualizer(img[:, :, ::-1], metadata=coco_val_metadata, scale=0.5)
    vis = visualizer.draw_dataset_dict(d)
    cv2.imshow(vis.get_image()[:, :, ::-1])
    cv2.waitKey(0)

完整代码

根据官方的tools/train_net.py 修改

#-*- coding:utf-8 -*-
import os
import cv2
import logging
from collections import OrderedDict

import detectron2.utils.comm as comm
from detectron2.utils.visualizer import Visualizer
from detectron2.checkp
### 安装 Detectron2 的环境准备 为了在 Ubuntu 上成功安装和使用 Detectron2,需先配置好 Python 和 CUDA 环境。推荐通过 Anaconda 来管理依赖项以及创建虚拟环境来隔离项目所需的库文件。 #### 创建并激活 Conda 虚拟环境 ```bash conda create -n detectron2 python=3.8 -y conda activate detectron2 ``` #### 安装 PyTorch 及其工具包 对于特定版本的 PyTorch 和 TorchVision 库,可以依据目标硬件支持情况选择合适的组合: ```bash conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=10.2 -c pytorch -y [^3] ``` 此命令会自动下载并安装指定版本的 PyTorch、TorchVision 以及其他必要的组件到当前活跃环境中去。 ### 安装 Detectron2 完成上述准备工作之后,可以通过 pip 工具直接从 GitHub 获取最新版的 Detectron2 并进行本地安装: ```bash pip install git+https://github.com/facebookresearch/detectron2.git ``` 如果遇到任何关于 CUDNN 或者其他 GPU 驱动程序的问题,则可能需要手动调整这些驱动至兼容版本[^1]。 ### 使用 Detectron2 进行推理测试 一旦安装完毕,就可以利用预训练模型来进行简单的对象检测任务了。下面是一个基本的例子展示如何加载图像数据并通过已有的 Faster R-CNN 模型执行预测操作: ```python import cv2 from detectron2 import model_zoo from detectron2.engine import DefaultPredictor from detectron2.config import get_cfg cfg = get_cfg() cfg.MODEL.DEVICE = "cpu" # 如果没有GPU的话设置成CPU模式 cfg.merge_from_file(model_zoo.get_config_file("COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml")) cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml") predictor = DefaultPredictor(cfg) im = cv2.imread("./input.jpg") # 替换成自己的图片路径 outputs = predictor(im) print(outputs["instances"].pred_classes) # 打印识别出来的类别编号 print(outputs["instances"].pred_boxes) # 打印边界框坐标信息 ``` 当尝试终止正在运行中的 demo 程序时遇到了困难,比如 `Ctrl+C` 失效的情况,这可能是由于某些后台进程未被正确处理所致[^4]。此时建议查看是否有残留的任务占用资源,并考虑重启终端或重新启动计算机以恢复正常状态。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值