cascade rcnn 训练自己的数据——(一)转换数据

【mmdetection】使用cascade-rcnn、faster-rcnn训练自定义的coco数据集 开始 这篇文章主要是记录我第一次使用mmdetection工具包里面的cascade-rcnn训练自己模型的经过 训练环境 本次是使用的系统是linux的ubuntu20.04 cuda=10.2 cudnn=7.6.5 anaconda=3(用于创建虚拟环境,后续的训练、测试模型也在这个虚拟环境中) (以上软件安装可以参考其他博客) pytroch=1.5.0 torchvision=0.6.0 cudatoolkit=10.2.89 mmcv-full=1.3.1 mmdetection=v2.11 阅读详情

cascade rcnn 源码有很多值得学习的地方,比如随机裁剪等等的预处理方面。

训练不是用普通的xml那些,还是有自己的读入数据的方式。默认给的是matlab的转换代码。

以下提供的是python代码。

voc_window_file.py

#!/usr/bin/env python
# @File : voc_window_file.py
import os, sys
import xml.etree.ElementTree as ET

reload(sys)
sys.setdefaultencoding('utf-8')

def parse_rec(filename):
    """ Parse a PASCAL VOC xml file """

    tree = ET.parse(filename)
    objects = []

    for pic in tree.findall('size'):
        pic_struct = {}
        pic_struct['width'] = int(pic.find('width').text)
        pic_struct['height'] = int(pic.find('height').text)
        pic_struct['depth'] = int(pic.find('depth').text)
        objects.append(pic_struct)

    for obj in tree.findall('object'):
        obj_struct = {}
        obj_struct['name'] = obj.find('name').text
        # obj_struct['difficult'] = int(obj.find('difficult').text)
        bbox = obj.find('bndbox')
        obj_struct['bbox'] = [int(float(bbox.find('xmin').text)),
                              int(float(bbox.find('ymin').text)),
                              int(float(bbox.find('xmax').text)),
                              int(float(bbox.find('ymax').text))]
        objects.append(obj_struct)
    return objects

def main():

    vocdevkit = '/media/DT_Moyan/Data/VOC/VOCdevkit'
    VOCopts_classes=['aeroplane', 'bicycle', 'bird', 'boat', 'bottle',
                     'bus', 'car', 'cat', 'chair', 'cow', 'diningtable',
                     'dog', 'horse', 'motorbike', 'person', 'pottedplant',
                     'sheep', 'sofa', 'train', 'tvmonitor']
    years = ['2007', '2012']
    split = ['trainval', 'test']
    fileName = 'window_file_voc2007_trainval.txt'
    fid = open(fileName, 'wt')

    # just running
    print ("VOC years: %s" %(years[0]))
    txt_ = os.path.join(vocdevkit, 'VOC' + years[0], 'ImageSets', 'Main' , split[0] + '.txt')
    f = open(txt_); idList = f.readlines() ; f.close()
    print len(idList)

    idCount = 0

    for u in range(len(idList)):
        nm = idList[u].strip() + '.jpg'
        xm = idList[u].strip() + '.xml'
        imgFullName = os.path.join('VOC' + years[0], 'JPEGImages', nm)
        # imgPath = os.path.join(vocdevkit, 'VOC' + years[0], 'JPEGImages', nm)
        xmlPath = os.path.join(vocdevkit, 'VOC' + years[0], 'Annotations', xm)
        nObjs = parse_rec(xmlPath)

        chw1 = nObjs[0]['depth']
        chw2 = nObjs[0]['height']
        chw3 = nObjs[0]['width']
        fid.write('# %d\n' % u)
        fid.write('%s\n' % imgFullName)
        fid.write('%d\n%d\n%d\n' % (chw1, chw2, chw3))
        fid.write('%d\n' % (len(nObjs) - 1))
        for j in range(1, len(nObjs)):

            clsIds = nObjs[j]['name']
            xmin = nObjs[j]['bbox'][0]
            ymin = nObjs[j]['bbox'][1]
            xmax = nObjs[j]['bbox'][2]
            ymax = nObjs[j]['bbox'][3]
            if (xmax <= xmin) | (ymax <= ymin):
                continue
            clsId = VOCopts_classes.index(clsIds) + 1
            t_lines = str(clsId) + ' 0' + ' 0' + ' ' + str(xmin) + ' ' + str(ymin) + ' ' + str(xmax) + ' ' + str(ymax)
            fid.write('%s\n' % t_lines)
            # print t_lines
        fid.write('%d\n' % 0)
        idCount += 1

    fid.close()

if __name__ == "__main__":
    main()

 

基于Cascade-RCNN与HRNet的脊柱异常检测模型优化实践 深度学习在医学影像分析领域展现出强大潜力,特别是在目标检测任务中。Cascade-RCNN作为经典检测框架,通过级联检测头设计有效提升定位精度,而HRNet凭借并行多分辨率特征融合能力,在保持空间细节方面具有独特优势。针对脊柱结构检测这一特殊场景,需要同时解决多尺度特征捕捉、细粒度分类和小目标检测等核心挑战。通过引入特征金字塔增强模块和动态ROI对齐策略,模型在保持较高推理效率的同时,显著提升了椎间盘突出等小目标的检出率。该技术方案在临床脊柱侧弯筛查和椎体滑脱诊断等场景中具有重要应用价值,其工程实践中的渐进 阅读详情

相关推荐

深入解析RPN(区域生成网络):从原理到Faster RCNN的实战应用

本文深入解析了RPN(区域生成网络)的原理及其在Faster RCNN中的实战应用。RPN作为物体检测的里程碑技术,通过锚点机制和双任务学习,显著提升了检测速度和准确率。文章详细拆解了RPN的核心工作原理,并提供了PyTorch实现代码和训练技巧,帮助开发者快速掌握这一关键技术。

weixin_28725407的博客 168

Cascade Mask R-CNN实战——训练自己的数据集

Cascade Mask R-CNN是在Mask R-CNN基础上的改进版本,其精度要高于Mask R-CNN, 本文讲带你如何训练Cascade Mask R-CNN。

guopeiAI 5898

遥感影像实例分割:使用Cascade Mask RCNN训练自定义数据的编程指南

通过这些步骤,您可以根据自己的需求训练和应用遥感影像实例分割模型,从而实现更准确和精细的遥感影像分析。遥感影像实例分割是一项重要的计算机视觉任务,它旨在将遥感影像中的每个像素标记为属于特定目标类别的实例。Cascade Mask RCNN是一种先进的实例分割算法,它结合了目标检测和语义分割的优势,能够准确地识别和分割遥感影像中的目标。经过训练后,我们可以使用训练好的Cascade Mask RCNN模型进行遥感影像实例分割推理。上述代码将加载训练好的模型,对测试遥感影像执行实例分割,并将结果可视化保存。

git_web425的博客 747

Cascade R-CNN训练自己的数据

1. 前言 Cascade RCNN是目标检测非常不错的一种方法,没有过分强调主干网络,而是采用层叠的方式提高IOU阈值来提纯样本,对不同的主干网络都能取得2~4个点的提升。这里使用的是Cascade RCNN example下的vgg-9s-600-rpn-cascade模型,这里的9s代表的是有9个anchor,600代表短边的尺寸,这里记录在使用这个代码训练自己的数据的过程,这里需要的目标检...

m_buddy的博客 8116

faster rcnn训练集标签生成

因为我当时训练的faster rcnn网络需要提取的boundingbox区域大致可以确定,所以下了个批量生成json标签的代码

道路损伤检测必备:RDD2022数据清洗与增强的5个关键步骤

本文详细介绍了道路损伤检测中RDD2022数据集清洗与增强的5个关键步骤。通过深度数据质量审计、跨国家分布分析、面向真实场景的智能增强、以模型表现为导向的数据集划分,以及构建自动化处理流水线,将原始数据转化为高质量训练集,有效提升模型性能。

cola5的博客 510

我的AI之路(48)--用同一自有数据集训练和比较CenterNet、EfficientDet、Cascade-RCNN的实际识别效果

目标检测模型的发布论文一般给出了基于VOC或COCO等数据集的AP和AR等指标值,这个可以作为比较选择模型的一个参考,实际效果怎么样还是得自己动手实验了才知道真实效果是怎么样,最好采用需要在实际项目中应用的自己制作的同一数据集来训练和比较比较直观和有说服力。 近两个月来断断续续用一部分时间使用同一自有数据集(内有1个类别)完成了CenterNet、EfficientDet(b...

XCCCCZ的博客 2256

手把手教你用示波器搞定PCIe 5.0 REFCLK时钟信号测量(附完整参数解读)

本文详细介绍了如何使用示波器进行PCIe 5.0 REFCLK时钟信号测量,包括示波器与探头的选择、关键参数的测量方法及解读,以及实战中的常见问题与解决方案。通过手把手教学和完整参数解读,帮助硬件工程师高效完成时钟信号测量,确保系统稳定性。

weixin_28704565的博客 357

语义分割 HybridTaskCascade 跑通DEMO 训练自己的数据集

火腿肠项目地址 https://github.com/qixuxiang/Hybrid_Task_Cascade 搭建环境 Linux (tested on Ubuntu 16.04 and CentOS 7.2) Python 3.4+ PyTorch 1.0 Cython mmcv>= 0.2.2 首先把Pytorch1.0装好 编译 下载项目文件 确保777权限 不然...

Andrwin的博客 4243

拆解特斯拉Optimus的关节技术:谐波减速器在仿人机器人中的5个精妙设计

本文深度解析特斯拉Optimus仿人机器人关节中的谐波减速器技术,揭示其五大工程突破:微型化材料革命、两万分之一圈精度实现、碳纤维柔轮轻量化、智能运维系统及国产替代方案。重点探讨谐波减速器如何通过创新设计和先进材料实现精准传动,为仿人机器人提供高效可靠的关节动力解决方案。

omega的博客 1072

【IIC通信】Chap.1(I2C)IIC通信原理、IIC读写时序详解

IIC通信以两根连线SDA、SCL实现了完善的全双工同步数据传送, 可以方便地构成多机系统和外围器件扩展系统。

Jie_MSD的博客 2万+

mmdet-3.3.0用自己的数据集训练cascade-rcnn_

12.在配置文件中添加,classes 是你的表情,palette是每个标签对应的颜色,按照如下形式添加到配置文件中,参考/mmdetection/mmdet/datasets/coco.py 里面的内容。8.此时会报错,因为没下载权重文件,可以将这个网址复制到浏览器,即可手动下载权重文件,并在mmdetection 下创建checkpoints,把权重文件放进去。2.用docker构建环境,我是在一台有网无卡的服务器上构建的docker,然后复制到有卡无网的服务器上运行。9.同时会生成一个目录。

m0_64298393的博客 502

解决/usr/lib64/libstdc++.so.6和/lib64/libc.so.6版本过低问题

在CentOS7.0中编译好MySQL5.7.14之后,然后在CentOS6.5中初始化MySQL,执行:/usr/local/mysql/bin/mysqld --version出现如下问题:./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./bin/mysqld)

poxiaonie的博客 2万+

基于Cascade-Mask-RCNN和RegNetX-4GF的果蝇检测与识别系统——COCO数据集训练与优化

摘要:本文提出了一种基于Cascade-Mask-RCNN和RegNetX-4GF的果蝇检测系统,结合COCO数据集进行训练优化。系统采用两阶段训练策略,通过数据增强、模型剪枝和量化技术实现高效检测。评估指标显示,模型在mAP和FPS上表现优异,尤其擅长小目标检测。该系统可应用于农业监测、生物研究等领域,支持实时处理。未来计划扩展至更多昆虫检测并开发移动端应用。文章提供了完整实现细节和预训练模型资源,便于复现和改进。

Faker66363aaa的博客 1076

笔试题-2023-星宸-数字IC设计【纯净题目版】

4 笔试题-2023-星宸-数字IC设计【纯净题目版】

w0shishabi的博客 1171

《网络安全自学教程》- MySQL脱库原理和步骤

MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段

wangyuxiang946的博客 1万+

基于改进CASCADE_RCNN的表格结构检测研究

基于改进CASCADE_RCNN的表格结构检测研究

weixin_43860634的博客 244

基于DynamicHead的YOLOv8四头版本改进:面向复杂场景的多目标检测优化【YOLOv8】

YOLOv8的检测头是通过不同尺度的特征层输出检测结果。这些检测头通常包括三个:用于大物体、中等物体和小物体的检测。然而,这种单一结构可能会在复杂场景下失去针对性和灵活性,特别是当多个目标之间差异较大时。为了进一步提升模型在特定目标上的检测性能,DynamicHead的引入为我们提供了一个多检测头的优化方案。本文提出了一种基于DynamicHead的四头版本YOLOv8改进方案,以解决复杂场景下多目标检测的挑战。通过引入四个独立检测头,分别针对不同目标特征进行优化,实现了更灵活的检测结构。

博客 1717

榴莲树叶病害识别与分类-Cascade RCNN模型优化实现

榴莲树叶病害识别数据集与技术优化 摘要 本文介绍了一个专门针对榴莲树病害识别的图像数据集,包含200张YOLOv8格式标注的图像,涵盖藻斑病、叶枯病、叶斑病和无病害四类。数据经预处理调整为640×640像素,分为训练集、验证集和测试集。文章重点阐述了基于Cascade RCNN模型的优化方法,包括特征金字塔网络(FPN)实现和多阶段检测器级联结构,通过损失函数优化增强小目标检测能力,有效解决榴莲树叶病害斑点大小差异大的识别难题。该研究为农业病害自动监测提供了技术支持。

qunshankeji的博客 986

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Two-stage目标检测里程碑算法之RCNN、SPP Net、Fast RCNN、Faster RCNN、FPN等

  在前面的博客中我基于三篇目标检测综述,描述了对视觉目标检测的整体认知,包括发展历程 、算法流程、传统检测算法到深度学习算法的技术难点、评价指标和数据集。本篇博客将逐步按照RCNN→SPP Net→Fast RCNN→Faster RCNN→FPN→Mask RCNN→Cascade RCNN的顺序,依次整理two-stage目标检测算法的改进点。这些two-stage的目标检测方法主要通过一个卷积神经网络来完成目标检测过程,在训练网络时,分为两个部分,第一部分是需要使用启发式方法(selective s

迷路的咸鱼的博客 2790

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

deepsort+Cascade_RCnn行人追踪详细设计文档

DeepSort,MOT20,多目标追踪,Cascade_RCNN

MrGong123的博客 4924

〖MMDetection〗解析文件:configs/cascade_rcnn/cascade-mask-rcnn_r50_fpn_1x_coco.py

mmdetection源码解析

sinat_39783664的博客 968

手部姿态识别与数字手势分类:Cascade RCNN_R101_FPN模型在COCO数据集上的实践与优化_3

本文介绍了基于Cascade RCNN_R101_FPN模型的手部姿态识别与数字手势分类方法。模型采用ResNet-101骨干网络提取特征,结合特征金字塔网络(FPN)处理多尺度特征,通过级联检测器逐步提高精度。在COCO数据集上的实验表明,该方法相比基线模型AP提升9.7%,OKS@0.75提升12.9%。消融实验验证了各组件的重要性,FPN结构贡献最大。该技术可应用于人机交互、智能家居等领域,通过手势实现自然直观的设备控制。未来研究可进一步优化模型效率,提升在复杂场景下的鲁棒性。

2501_94219177的博客 1097

基于MMDet的cascade MASKRCNN 入门

场景需要训练一个分割模型,参考这个场景大多数人的选择,决定用mmdet的maskrcnn,再进阶到cascade maskrcnn。实例分割Mask rcnn = 检测Faster rcnn + 语义分割FCN+ ROIAlign在Faster rcnn的cls+box分支基础上,增加了分割mask分支。ROIAlign替代ROIPool解决2次量化的影响。

北落师门XY的博客 3775

深入浅出解析Faster RCNN中的RPN网络:从特征图到候选框的魔法转换

本文深入解析Faster RCNN中的RPN网络(区域建议网络),揭示其如何从特征图高效生成候选框。通过Anchor机制、双支路结构等核心技术,RPN大幅提升目标检测效率,成为现代计算机视觉的关键组件。文章详细讲解RPN的工作原理、训练策略及实战优化技巧,帮助开发者掌握这一重要技术。

weixin_29053383的博客 226

mmdetection 如何训练自己的coco数据集

1.制作coco数据集(annotations是根据数据集Annotations转换成coco得到的) (对训练集做5次交叉验证,得到10个文件, 同时将test数据集中的图片按顺序整理成test.json文件) 2.处理好数据之后,就可以进行训练 我们需要修改的有以下几个地方。 /mmdetection-master/mmdet/datasets/coco.py 将CLASSES中的类别换成自己的 mmdetection-master/configs/_base...

liuqiangaliuv的博客 3218
上一篇: cascade rcnn 训练自己的数据——(二)注意点
下一篇: 深度剖析 | SN 可微分学习的自适配归一化 (Switchable Normalization)
Snoopy_Dream
博客等级 码龄11年 771粉丝 120原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值