<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ydestspring的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ydestspring</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ydestspring]]></copyright><item><title><![CDATA[YOLOv8检测头和DFL理解]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/154791676</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/154791676</guid><author>ydestspring</author><pubDate>Thu, 13 Nov 2025 16:02:24 +0800</pubDate><description><![CDATA[默认设置中，预测偏移量在0-15之间，以80，40，20像素的3个特征图尺寸来看，可以覆盖从0到最大尺寸范围的目标。每16个维度中的数，以概率形式，表示不同偏移量的概率，要对这16个点进行积分，得到最终偏移量，这个过程是DFL。neck网络输出的p3，p4，p5尺寸分别为80*80像素，40*40像素，20*20像素。可以看到，是通过计算左上预测与锚点偏移，右下预测与锚点偏移，得到了左上坐标，右下坐标。经过cv2分支，输出用于预测边框的网络，经cv3分支，用于输出预测类别的网络。]]></description><category></category></item><item><title><![CDATA[YOLOv8训练代码主要逻辑记录]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/147514561</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/147514561</guid><author>ydestspring</author><pubDate>Fri, 25 Apr 2025 15:44:22 +0800</pubDate><description><![CDATA[这套娃封装的代码，想穿透到底还是得费些功夫，特此记录。]]></description><category></category></item><item><title><![CDATA[yolo-v5代码数据读取部分理解]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/132587684</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/132587684</guid><author>ydestspring</author><pubDate>Wed, 30 Aug 2023 17:59:32 +0800</pubDate><description><![CDATA[3. 通过InfiniteDataLoader类，将dataset，加载为dataloader，loader的长度为总图片数量除以batch。6. 具体调用时，一个batch里的index的随机产生代码还没找到，应该是直接继承了torch，没有任何修改。4. InfiniteDataLoader初始化时，会循环调用方法，按照batch去创建sample，具体一个一个sample应该是在初始化时，自动调用__setattr__方法，循环添加到batch里。__iter__方法会循环返回sample。]]></description><category></category></item><item><title><![CDATA[mmdet框架理解]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/129055021</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/129055021</guid><author>ydestspring</author><pubDate>Thu, 16 Feb 2023 09:55:09 +0800</pubDate><description><![CDATA[mmdet框架顶层简易理解。]]></description><category></category></item><item><title><![CDATA[map理解]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/126872951</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/126872951</guid><author>ydestspring</author><pubDate>Thu, 15 Sep 2022 15:46:30 +0800</pubDate><description><![CDATA[map总结概要]]></description><category></category></item><item><title><![CDATA[mmdet与pytorch新建卷积层]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/126750429</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/126750429</guid><author>ydestspring</author><pubDate>Wed, 07 Sep 2022 17:34:04 +0800</pubDate><description><![CDATA[视觉处理中，卷积网络的常规写法，pytorch和mmdet两个写法]]></description><category></category></item><item><title><![CDATA[mmdet训练中数据集导入]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/126547437</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/126547437</guid><author>ydestspring</author><pubDate>Fri, 26 Aug 2022 17:27:26 +0800</pubDate><description><![CDATA[mmdet训练中数据集导入]]></description><category></category></item><item><title><![CDATA[记低级错误-mmdet-centernet]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/126543284</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/126543284</guid><author>ydestspring</author><pubDate>Fri, 26 Aug 2022 14:48:53 +0800</pubDate><description><![CDATA[mmdet低级错误]]></description><category></category></item><item><title><![CDATA[mmdet新建个人数据集]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/126527587</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/126527587</guid><author>ydestspring</author><pubDate>Thu, 25 Aug 2022 16:36:15 +0800</pubDate><description><![CDATA[mmdet新建sixray数据集]]></description><category></category></item><item><title><![CDATA[ubuntu系统下matplotlib中文显示问题]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/126143187</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/126143187</guid><author>ydestspring</author><pubDate>Wed, 03 Aug 2022 17:01:07 +0800</pubDate><description><![CDATA[matplotlib中文显示乱码，为方框，ubuntu系统，解决方法。]]></description><category></category></item><item><title><![CDATA[mmdet画图]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/121752331</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/121752331</guid><author>ydestspring</author><pubDate>Mon, 06 Dec 2021 17:54:03 +0800</pubDate><description><![CDATA[作图]]></description><category></category></item><item><title><![CDATA[centernet损失函数修改记录]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/121427669</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/121427669</guid><author>ydestspring</author><pubDate>Fri, 19 Nov 2021 17:44:27 +0800</pubDate><description><![CDATA[想将centernet中w,h的loss修正关联起来，采用iouloss进行优化，于是需修改loss函数，注意事项如下：

（1）loss函数本身到网络的输出层存在一个函数，这个函数求导，再逐层链式向前求导，完成训练。所以，自己写出的损失函数到pred一定要明确可导，不能乱写。

（2）写损失函数尽量使用torch自带的函数和+，-，*，/号进行操作，避免新建变量和for循环等操作，容易造成梯度无法反向传播。

（3）正常操作流程如下：loss函数继承nn.module模块，编写forward过程。

（4]]></description><category></category></item><item><title><![CDATA[pytorch及mmdet模型训练学习笔记]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/120239064</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/120239064</guid><author>ydestspring</author><pubDate>Sat, 11 Sep 2021 16:14:51 +0800</pubDate><description><![CDATA[（1）定义模型基本操作：

定义一个class继承BaseModule，class为模型的类

一个class中包括2部分，init和forward函数

init为初始化，固定套路继承父类init，用super函数写


super(BasicBlock, self).__init__(init_cfg)

forward为前向传播函数，即定义数据进来后如何前向传播，包含了数据输入，处理，输出过程。



（2）具体分析一个forward函数


def _inner_forward(x):
    id]]></description><category></category></item><item><title><![CDATA[mmdet之centernet损失函数记录]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/119805606</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/119805606</guid><author>ydestspring</author><pubDate>Thu, 19 Aug 2021 16:45:26 +0800</pubDate><description><![CDATA[1.损失函数在


bbox_head中定义，类型为CenterNetHead

具体相关代码


bbox_head=dict(
    type='CenterNetHead',
    num_classes=5,
    in_channel=64,
    feat_channel=64,
    loss_center_heatmap=dict(type='GaussianFocalLoss', loss_weight=1.0),
    loss_wh=dict(type='L1Loss', ]]></description><category></category></item><item><title><![CDATA[mmdet框架训练流程通俗理解]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/119385487</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/119385487</guid><author>ydestspring</author><pubDate>Wed, 04 Aug 2021 15:44:02 +0800</pubDate><description><![CDATA[mmdet2版本

训练执行文件为tools/train.py

执行train.py文件后，主要做3件事：（1）创建model；（2）创建dataset；（3）根据配置进行训练，即调用train_detector函数；



创建model

执行model=build_detector函数创建

该函数首先会注册models类，再根据配置生成响应的model

这个过程用到了解释器@语法，语法较为复杂

通俗理解：就是根据具体的models的类型，如backbone、neck、head等，按照字典表进行]]></description><category></category></item><item><title><![CDATA[目标检测模型训练理解]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/119250340</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/119250340</guid><author>ydestspring</author><pubDate>Fri, 30 Jul 2021 16:17:05 +0800</pubDate><description><![CDATA[1 学习率

经过测试，学习率大，可以快速收敛，但map偏低，学习率小收敛慢，但map稍微高一些。所以，常见做法会设置阶梯学习率，训练过程中逐渐减小学习率。

2 训练结束的标准

训练结束的标准即为mAp不再下降，或mAP对应为震荡状态。测试发现，loss的大小与map的高低相关。换个角度说，loss为震荡状态不再下降，也标志着训练结束。

3 不同方法之间mAP的pk

每种方法应当都是发挥极限调参手段取得的最高mAP，这也是为什么自己训练的mAP没有论文中高的原因。
...]]></description><category></category></item><item><title><![CDATA[conda安装pytorch下载慢的问题]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/117746989</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/117746989</guid><author>ydestspring</author><pubDate>Wed, 09 Jun 2021 16:25:19 +0800</pubDate><description><![CDATA[conda install pytorch=1.5 cudatoolkit=10.1 torchvision -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
]]></description><category></category></item><item><title><![CDATA[numpy数组和图片]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/115176230</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/115176230</guid><author>ydestspring</author><pubDate>Wed, 24 Mar 2021 14:25:12 +0800</pubDate><description><![CDATA[cv2.imread读取进来的图片为numpy类型数组，数组中的数据类型为np.uint8类型

在tensorflow中，计算时的数据变量通常为np.float32类型

注意数据类型转换，若cv2.imshow的数组为float32类型，图像就会基本全白


data_val = np.zeros([l_val, IMG_HEIGHT, IMG_WIDTH, IMG_DEPTH], dtype='float32')
data_val = data_val.astype(np.uint8)

数组中数据类]]></description><category></category></item><item><title><![CDATA[numpy常用操作记录]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/114656716</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/114656716</guid><author>ydestspring</author><pubDate>Thu, 11 Mar 2021 11:23:50 +0800</pubDate><description><![CDATA[1.数组维度


import tensorflow as tf
import numpy as np

a = np.arange(36)
print (a)
b = np.reshape(a,[2,2,3,3])
print (b)
print('b[0,0,0,0]:',b[0,0,0,0])
print('b[0,0,0,:]:',b[0,0,0,:])
print('b[0,0,:,0]:',b[0,0,:,0])
print('b[0,:,0,0]:',b[0,:,0,0])
print('b[]]></description><category></category></item><item><title><![CDATA[Faster-rcnn代码python2转换python3的KeyError: b‘TEST‘问题]]></title><link>https://blog.youkuaiyun.com/ydestspring/article/details/108754375</link><guid>https://blog.youkuaiyun.com/ydestspring/article/details/108754375</guid><author>ydestspring</author><pubDate>Wed, 23 Sep 2020 15:45:12 +0800</pubDate><description><![CDATA[一直用的一个faster-rcnn代码是python2的，决定把它改为python3。

很多报错都是print函数，xrange函数，较好解决。

解决到最后被一个报错，卡了一天，在网上也无法找到解决方案，记录一下：

报错如下：

Caused by op 'PyFunc', defined at:
 File "/home/q/yd/Faster-RCNN-21/tools/demo.py", line 118, in &lt;module&gt;
 net = get_network(arg...]]></description><category></category></item></channel></rss>