自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (2)
  • 收藏
  • 关注

原创 【yolov8系列】yolov8的目标检测、实例分割、关节点估计的原理解析

对前两者进行解析可得到,有效的gridceil预测出了目标的类别 和 目标的box,此时可以很容易获取该gridceil中的目标的mask_coef,维度为32,刚好与Proto输出的channel维度32相一致。不同mask为网络学习到不同的掩码信息,值得注意的是单张mask并不意味着mask中只有一个目标的mask。2 仅保留该gridceil检测出的box内的mask,然后再对mask框内的mask的每个像素进行阈值过滤(工程中阈值设为0.5),即得到该目标的最终的mask。

2023-10-17 14:51:49 8892 24

原创 【深度学习基础知识】IOU、GIOU、DIOU、CIOU

通俗意思是在IOU值和中心点距离值相同时,两个框的长宽比指标越相似,说明预测框与目标框的对比效果越好。如下图所示,三种情况IoU都相等,但看得出来他们的重合度是不一样的,左边的图回归的效果最好,右边的最差。对于GIOU的缺点,即目标框包裹预测框的这种情况,DIOU Loss可以使回归非常快,而GIOU Loss几乎退化为IOU Loss。如图9所示,当IOU值和两个框的中心点距离一样时,即检测框中心点在以目标框中心点为圆心半径相同的圆弧上时,DIOU没办法区分。直观的反映预测检测框与真实检测框的检测效果。

2024-03-18 09:54:14 1010

原创 【论文阅读】Segment Anything论文梳理

Abstract我们介绍了Segment Anything(SA)项目:新的图像分割任务、模型和数据集。高效的数据循环采集,使我们建立了迄今为止最大的分割数据集,在1100万张图像中,共超过10亿个掩码。该模型被设计和训练为可提示的的 (promptable),因此它可以将零样本(zero-shot) 迁移到新的图像分布和任务。我们评估了其在许多任务上的能力,发现其零样本迁移性能十分优秀,与之前的完全监督方法的结果相比,具有竞争力甚至优于这些结果。链接:https://segment-anythin

2024-03-05 11:57:40 1226 1

原创 【论文阅读】【yolo系列】YOLO-Pose的论文阅读

我们介绍YOLO-pose,一种无热图联合检测的新方法,基于流行的YOLO目标检测框架的图像二维多人姿态估计。

2024-02-20 14:26:12 1797 5

原创 【Transformer】Transformer的简单了解:Positional Encoding、Self-attention、Batch 与 Layer Norm 等

自从2017年Transformer模型被提出以来,它已经从论文最初的机器翻译领域,转向语音,图像,视频等等方面的应用。最近的Segment Anything论文提出,阅读论文其中大量的transformer的在图像方面的应用。所以这里还是加紧记录下transformer相关内容。transformer初了解Positional Encoding(位置编码)Self-attention(自注意力机制)Batch & Layer Norm(批量归一化/层标准化)transformer的结

2024-01-08 10:26:11 1070

原创 【yolov8系列】 yolov8 目标检测的模型剪枝

有框架完成的对网络所有结构都自适应剪枝是最佳的,但这里没有详细记录torch-pruning的yolov8的剪枝,是因为存在不解 对其yolov8具体的剪枝代码中操作:“比较疑惑 replace_c2f_with_c2f_v2(model.model)的梯度置为Fasle,是因为该层是解析box时的一个向量,具体的为 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],为了便捷的将该处理保存在模型中,所以就定义了一个卷积,所以该卷积不需要梯度、不需要反向传播,所以该层的。

2023-12-20 14:08:45 3587 35

原创 【剪枝】torch-pruning的基本使用

假设正在对一个卷积结构化剪枝,需要减去哪些内容,具体第几个卷积核、对应的偏置、BN中对应的维度、与其直接或间接相连的层的核的channel。在结构化剪枝中,这两个卷基层之间存在非常直观的依赖关系,即当我们调整第一层的输出通道时,第二个卷积层的输入通道也需要相应的进行调整,这使得蓝色高亮的参数需要同时被剪枝。怎么去看这个group呢,在下图右侧进行了简单的标注,可以发现conv1的group都会进行剪枝,从而适应conv1的卷积核的维度发生的变化。结构化和非结构化剪枝方向,已发表的有较多的论文。

2023-11-22 11:25:28 2819 1

原创 【量化】量化原理浅析

前言模型在端侧运行时,会追求模型保持原有精度的同时,让模型的运行速度更快。基本方向为模型压缩和加速,着力于减少网络参数量、降低计算复杂度。可通过以下方式实现:针对网络结构本身进行改进,常用的3x3的卷积的叠加代替大卷积;average-pooling 代替 full-connection layers;MobileNets中使用的 depth-wise convolution 代替传统的卷积方式;等。剪枝:除去神经网络结构中不重要的部分量化:调整网络结构中的权重和激活值的表达精度。

2023-09-27 14:24:40 841 2

原创 【yolov8系列】将yolov8-seg 模型部署到瑞芯微RK3566上

前言之前记录过,整体比较流畅,记录了onnx转rknn的相关环境配置,使用的rk版本为rknn-toolkit2-v1.4.0。当前库已经更新为1.5,这里还是沿用1.4的版本进行记录。本篇博客是在上篇博客(yolov5的rk3566的部署)的基础上,记录下yolov8n-seg的模型在3566上的部署过程。若精度异常可查看官方提供文档,写的比较详细。这里说明下自己遇到的问题:yolov8模型模型进行全量化结果异常yolov8模型在PC端模拟器的运行结果时,板端运行结果异常。

2023-07-27 16:54:33 3717 25

原创 【论文阅读】Generalized Focal Loss的解读。交叉熵、Focal Loss、Quality Focal Loss、Distribution Focal Loss

最后,我们将QFL和DFL的公式总结为一个统一的视角,称为 Generalized Focal Loss(GFL),作为FL的一个灵活的扩展,以促进未来进一步的推广和普遍的理解。专注于一组稀疏的困难样本的同时,对相应的类别进行连续的0∼1质量估计。举例子:5分类的任务,第1类别的分类标签onehot应为 [0,1,0,0,0],当前训练时检测框和对应标签框的iou为0.65,则此时分类的标签不再使用 [0,1,0,0,0],而是使用分类-iou联合表示:[0,0.65,0,0,0]。

2023-07-17 16:12:53 1666 1

原创 【论文阅读】【yolo系列】YOLACT Real-time Instance Segmentation

事实上,我们在COCO上的基本模型在测试集上的mask和box的mAP(29.8mask,32.3box)之间只有2.5 mAP的差异,这意味着即使使用完美的掩码,我们的基本模型也只能获得少数mAP点。此外,Mask R-CNN具有相同的mAP差异(35.7mask,38.2 box),这表明两种方法之间的差距在于我们的检测器的性能相对较差,而不是我们生成掩码的方法。因为预测系数是困难的。例如,在图7中,YOLACT 产生了一个干净的手臂边界的掩码,而FCIS和Mask R-CNN都有更多的噪声。

2023-06-28 16:25:10 1787

原创 【yolov5系列】将yolov5s模型部署到SigmaStar的9383芯片上

在文件【IPU_SDK_Release/Sigmastar_SDK_vS3.0.2/SGS_IPU_SDK_vS3.0.2/doc/SDK_Doc_Release/index.html】中说明了sigmastar模型转换的环境的安装、已经相关转换流程和注意事项等。在第四个阶段,针对自己以上的设置,重新写了推理后的后处理(使用的rknn的后处理,也是为了两者的结果的对比)一般的,这个脚本里面注意两点:图片的尺寸问题、均值方差的通道(这里的是BGR,input_config.ini 中的是RGB)

2023-06-26 08:31:32 1699 18

原创 【yolov5系列】将模型部署到瑞芯微RK3566上面

量化的图片的shape和网络输入如果不一致,这里会自动resize,所以为了保证精度,我们的量化数据集的shape尽量与输入一致。我们需要注意下,对于RK1126相似系列的代码中模型转换时,模型build时,有个预编译参数,仿真时和端侧运行时的设置是不一致且不通用的。这里的buf的设置时,一定保证图片的大小和网络的输入是相同的尺寸。当然在其它芯片上的操作类似,差别会在具体的API的调用上。上图分别获取的内容:rk的版本信息、模型的输入输出数量的信息、输入节点相关的信息、输出节点相关的信息。

2023-06-19 18:38:19 3541 4

原创 【论文阅读--轻量化模型】MobileNetsV1: Efficient Convolutional Neural Networks for Mobile Vision Applications

图4显示了由宽度乘数α∈{1,0.75,0.5,0.25}和分辨率{224,192,160,128}的叉积制成的16个模型的ImageNet精度和计算之间的权衡。总的趋势是制作更深更复杂的网络,以实现更高的精度。这是一种分解卷积的形式,将标准卷积分解为【深度卷积】和【逐点卷积的1×1卷积】,这种因子分解具有显著减少计算和模型大小的效果。图5显示了由宽度乘数α∈{1,0.75,0.5,0.25}和分辨率{224,192,160,128}的叉积制成的16个模型的ImageNet精度和参数数量之间的权衡。

2023-06-08 17:12:12 314 1

原创 【yolov5系列】yolov5的原理与核心代码解析

然后对左图是对右图的pool进行了合并连接。上面代码处理后,标签和匹配的anchor是的尺寸是【原图尺寸下的标签尺寸下采样到某一个输出层时的尺寸】(这里的原图尺寸 指的是图片像素级resize到神经网络输入时的尺寸,代码中备注的也是)。原因是为了正样本扩充,因为标签在扩充后的正样本的xy的数值范围在(-0.5,1.5)之间,所以需要转换后的偏移。】 为检测框对应的xywh,具体的为:xy检测框的中心下采样到某层输出上,距离grid ceil 左上角的偏移,wh为检测框的长宽与当前anchor的长宽的比值。

2023-06-05 15:15:20 4313

原创 【pytorch系列】优化器optimizer的使用与常用优化器

【params_groups】该实例的类型为 list,可以将神经网络中需要更新的参数分组管理,list中每个元素为一组数据,包括:优化器中需要更新的参数,以及default中超参数在当前的对应数据。在第一次运行保存结果时的 optimizer,和第二次运行加载模型后的optimizer,可查看两次的优化器当中的 state_dict()的内容,这里不截图展示。打印两者的id,可以看到是完全一致的,说明optimize.param_groups中的参数存的是网络中参数的引用,这样操作也是为了节省内存。

2023-04-20 18:20:34 2452 2

原创 【pytorch记录】SummaryWriter保存日志

在pytorch框架中,关于日志的保存,其中一种方式就是借鉴使用了tensorboard的库。所以我们需要在环境中安装tensorboard库,然后再在工程中进行该库的调用1 安装与导入或者导入2 添加需要保存标量数据从源码中我们能看到核心的三个参数为前三个。通俗的讲分别代表tag:图的标签名,唯一标识scalar_value:y轴数据,标量数据的具体数值global_step:x轴数据,要记录的全局步长值多项标题记录方法,其中:main_tag —— 该图的标签。

2023-03-20 14:35:26 960 1

原创 【论文阅读--实时语义分割】PIDNet: A Real-time Semantic Segmentation Network Inspired from PID Controller

双分支网络结构已显示出其对实时语义分割任务的效率性和有效性。然而,低级细节和高级语义的直接融合将导致细节特征容易被周围上下文信息淹没,即本文中的超调 (overshoot),这限制了现有两个分支模型的准确性的提高。在本文中,我们在卷积神经网络(CNN)和比例积分微分(PID)控制器之间架起了桥梁,并揭示了双分支网络只是一个比例积分(PI)控制器,当然也会存在类似的超调问题。,它具有三个分支来分别解析细节、上下文和边界信息(语义的派生),并在最后阶段使用来指导细节和上下文分支的融合。

2023-03-06 20:38:58 2761 5

原创 【yolov5系列】yolov5-onnxruntime在Ubuntu和RK芯片上运行

这里yolov5的onnx模型的推理,分别在 x64上 和 移动端上运行,前者在自己本地Ubuntu系统上运行,后者在瑞芯微的rk3566上运行。

2023-01-31 17:14:21 1408 1

原创 【论文阅读】【yolo系列】YOLOV7的论文阅读

YOLOv7在速度和精度方面都超过了所有已知的目标检测器,在GPU V100上的速度为5 FPS到160 FPS的范围内,并且在所有已知的实时对象检测器中具有最高的,速度为30 FPS或更高。目标检测器(56 FPS V100,55.9%AP)在速度和精度上优于:–>基于transformer的检测器SWINL Cascade-Mask R-CNN(9.2 FPS A100,53.9%AP),分别为509%和2%,

2022-09-04 10:47:36 2899 4

原创 【MediaPipe】Windows10上的C++编译 手部关节点等功能预测和运行

windows10上进行mediapipe的C++编译

2022-07-22 09:18:56 2811 3

原创 【python实现小功能】自动登录服务器、并输入密码拉取数据

【python实现小功能】自动登录服务器、并输入密码拉取数据

2022-07-09 16:56:15 2197

原创 【python】多进程multiprocessing模块、进程池的使用

python的多进程、进程池的使用

2022-07-09 14:08:46 2134

原创 【pytorch记录】自动混合精度训练 torch.cuda.amp

Nvidia 在Volta 架构中引入 Tensor Core 单元,来支持 FP32 和 FP16 混合精度计算。同年提出了一个pytorch 扩展apex,来支持模型参数自动混合精度训练自动混合精度(Automatic Mixed Precision, AMP)训练,是在训练一个数值精度为32的模型时,一部分算子的操作 数值精度为FP16,其余算子的操作精度为FP32。具体的哪些算子使用的精度,amp自动设置好了,不需要用户额外设置。..............................

2022-06-28 09:24:20 4642

原创 【pytorch记录】模型的分布式训练DataParallel、DistributedDataParallel

使用多GPU对神经网络进行训练时,pytorch有相应的api将模型放到多GPU上运行。torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.local_rank])两者的区别:nn.DataParallel使用单进程控制,将模型和数据加载到多个GPU中gpus=[0,1]torch.nn.DataParallel(model.cuda(), decice_ids=gpus, output_device=gpu

2022-06-27 20:01:36 1674 4

原创 【pytorch 记录】pytorch的变量parameter_buffer、self.register_buffer()、self.register_parameter()

在pytorch中模型需要保存下来的参数包括:parameter:反向传播需要被 optimizer 更新的,可以被训练。buffer:反向传播不需要被 optimizer 更新,不可被训练。 这两种参数都会分别保存到 一个OrderDict 的变量中,最终由 model.state_module() 返回进行保存。1 nn.Module的介绍需要先说明下:直接torch.randn(1, 2) 这种定义的变量,没有绑定在pytorch的网络中,训练结束后也就没有在保存在模型中。当我们.

2022-05-25 17:27:41 1941 2

原创 【论文阅读】OHEM:Training Region-based Object Detectors with Online Hard Example Mining

方法的由来 还是要看论文了解下的 https://arxiv.org/pdf/1604.03540.pdf1 数据不均衡图像分类和目标检测是计算机视觉的两个基本任务。目标检测器通常通过将目标检测转化为图像分类问题的简化来训练。这种减少带来了自然图像分类任务中没有的新挑战:训练集的特点是标注对象的数量与背景示例(不属于任何感兴趣的对象类别的图像区域)的数量之间存在很大的不平衡。在滑动窗口对象检测器的情况下,这种不平衡可能极端到每一个对象的100000个背景示例。最近的基于对象建议的探测器趋势[.

2022-04-07 13:32:38 2362

原创 【工程测试与训练】使用 DDRNet 测试、训练cityscapes数据集、训练自己的数据集

工程下载使用电脑环境 :Ubuntu18+anconde环境配置:略作者提供的测试工程:https://github.com/ydhongHIT/DDRNet其他开发者复现的完整工程:https://github.com/chenjun2hao/DDRNet.pytorch 下载第二个工程,并下载第一个工程中的预训练模型,放置路径【pretrained_models】 为了工程好管理,所以文件布局如下。(本人习惯工程和数据集分开放置,多个工程获取数据更规范)└──DataSet_2D.

2022-04-02 14:16:01 6044 40

原创 【labelCloud标注软件的使用】

1 labelCloud 的安装工作环境:ubuntu18 + anconda 安装命令:安装不同的工程python相关库,建议创建不同的虚拟环境,然后进行安装(当然直接安装在base环境下,也可正常运行)。因为都是标注软件,我这里将 labelCloud 和 labelme 安装到同一个虚拟环境中,该虚拟环境就命名了labelme。(清华镜像、直接 pip install **,哪个快用哪个)安装命令conda create -n labelme python=3.7conda act.

2022-03-29 13:45:08 5404 9

原创 【炼丹随记】样本不均衡时,class_weight 的计算

语义分割时,如果样本比例失衡,就需要设置 class_weight来平衡损失,那么该如何计算呢?直观的想到是,先获取图片的每个类别的像素点的个数之间的比例,然后用1去除以。比如:class1 : class2 : class3 = 100 : 10 : 1,那么 weight1 : weight2 : weight3 = 1:10:100。但这个比值偏差太大,放到loss中训练并不能得到一个好的结果。某一次在【https://github.com/openseg-group/OCNet.p.

2022-03-09 15:13:27 5840 4

原创 【pytorch记录】torch.utils.data.Dataset、DataLoader、分布式读取并数据

pytorch提供了一个数据读取的方法,使用了 torch.utils.data.Dataset 和 torch.utils.data.DataLoader。要自定义自己数据的方法,就要继承 torch.utils.data.Dataset,实现了数据读取以及数据处理方式,并得到相应的数据处理结果。然后将 Dataset封装到 DataLoader中,可以实现了单/多进程迭代输出数据。1 torch.utils.data.Dataset要自定义自己的 Dataset 类,需要重载两个方式,【_.

2022-03-07 11:15:28 6613

原创 【pytorch记录】pytorch的分布式 torch.distributed.launch 命令在做什么呢

在查阅pytorch分布式训练,在不了解相关内容时,直接查看api的使用,更云里雾里。反而对着一个完整的例子,会更上手一些。所以在这里整理下,能够快速读懂分布式训练具体实现的流程。1 背景知识神经网络的训练,从硬件的使用,可分为3种情况:多机多卡、单机多卡、单机单卡。(机–主机、卡–显卡)在pytorch进行分布式训练中,会有相应的变量名表示上面的情况:测试脚本:train.pyimport torchimport torch.distributed as distimport osim

2022-03-03 20:13:29 36887 11

原创 【论文阅读--实时语义分割】RegSeg:Rethink Dilated Convolution for Real-time Semantic Segmentation

Abstract语义分割的最新进展通常采用ImageNet预训练主干网,在其后面有一个特殊的上下文模块,以快速增加视野。尽管取得了成功,但大部分计算所在的主干网没有足够大的视野来做出最佳决策。最近的一些进展通过快速降低主干中的分辨率来解决这个问题,同时还具有一个或多个具有更高分辨率的并行分支。我们采用了一种不同的方法,设计了一种受ResNeXt启发的块结构,该结构使用两个具有不同膨胀率的平行3×3卷积层来增加视野,同时保留局部细节。通过在主干中重复这种块结构,我们不需要在其后面附加任何特殊的上下文模块。此

2022-03-03 15:10:33 4334 5

原创 【论文阅读--实时语义分割】DDRNet:Deep Dual-resolution Networks for Real-time and Accurate Semantic Segmentation

用于道路场景实时准确语义分割的深度双分辨率网络摘要语义分割是自动驾驶汽车理解周围场景的关键技术。现代模型的吸引力表现通常是以繁重的计算和漫长的推理时间为代价的,这对于自动驾驶来说是无法忍受的。使用轻量级架构(编码器-解码器或双通道)或对低分辨率图像进行推理,最近的方法实现了非常快速的场景解析,甚至在单个1080Ti GPU上以超过100fps的速度运行。然而,这些实时方法与基于dilation backbones的模型在性能上仍有很大差距。为了解决这个问题,我们提出了一系列专门为实时语义分割设计的高效主

2022-03-03 15:04:10 6199

原创 【工程测试与训练】使用BiSeNetv2测试、训练cityscapes数据集、训练自己的数据集

1 准备工作下载工程工程下载:https://github.com/CoinCheung/BiSeNet预训练模型下载:工程下载后解压,并在其中创建文件夹【MODEL】用于存放预训练模型本人的开发环境:ubuntu 18.04、cuda10.2、cudnn7、python3.7、pytorch 1.8.1工程运行过程中,会报错找不到库,pip安装对应的库即可2 运行demo使用 【bisenetv2_city】测试图片:python tools/demo.py --con.

2022-01-06 14:15:53 9756 48

原创 【OpenCV之路】了解 OpenCV 的模块

OpenCV4.4 的模块架构在ubuntu下安装了OpenCV4.4后,【/usr/local/include/opencv4/build/include】文件夹内,只有一个文件夹【opencv2】。打开该文件夹就可以看到OpenCV4.4 的模块架构 需要说明:在 OpenCV4 之前的版本中,该文件夹下有两个文件夹 opencv和opencv2,在OpenCV4中将两个整合成了一个文件夹上面的路径要根据自己实际的安装路径查找文件夹下主要包含的功能模块如下calib3d:这.

2021-12-31 17:40:00 2761

原创 【OpenCV之路】ubuntu下的安装C++的opencv4、opencv_contrib、python中opencv的cuda加速、ubuntu下opencv的第一个工程

当前的OpenCV4在ubuntu系统中,需要通过编译来安装。1 依赖库的安装cmake的安装sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential cmake

2021-12-31 17:39:18 3606 5

原创 【pytorch】使用stat、profile打印网络的参数量、Flops、MAdd、内存使用的情况

pytorch获取网络的参数量、MAdd、Flops安装工具:pip install torchstat使用例子:import sysimport torchimport torch.nn as nnimport numpy as npfrom thop import profilefrom torchstat import statclass Net(nn.Module): def __init__(self): super(Net, self).__ini

2021-12-27 10:47:27 8465 19

原创 【论文阅读--实时语义分割】STDC:Rethinking BiSeNet For Real-time Semantic Segmentation

Abstract【BiSeNet的存在问题】BiSeNet[28,27]已被证明是一种流行的用于实时分割的双流网络。其添加额外路径来编码空间信息的原理非常耗时,并且由于任务特定设计的不足,从预训练任务(例如图像分类)借用的主干对于图像分割可能效率低下。【STDC网络的提出】设计了一个短期密集连接模块(STDC模块),通过消除结构冗余而高效,用于提取具有可扩展感受野和多尺度信息的深层特征。该模块以可承受的计算成本 提升了STDC网络的性能。具体地说,我们逐步降低特征映射的维数,并使用它们的聚合来表.

2021-12-23 18:23:03 3626

原创 【论文阅读--实时语义分割】BiSeNet V2: Bilateral Network with Guided Aggregation

摘要低层细节和高层语义对于语义分割任务都是必不可少的。然而,为了加快模型推理的速度,目前的方法几乎总是牺牲低级细节,这导致了相当大的精度下降。我们建议将这些空间细节和分类语义分开处理,以实现高精度和高效率的实时语义分割。为此,我们提出了一种在速度和准确性之间进行良好权衡的高效体系结构,称为双边分割网络(BiSeNet V2)。该体系结构包括:(1)一个细节分支,浅层 宽通道,用于捕获低级细节并生成高分辨率特征表示;(2)语义分支,层深 通道窄,获取高层语义语境。由于降低了信道容量和快速下采样策略,.

2021-12-23 17:36:58 3566

opencv4.4.0编译时下载文件_face_landmark_model.dat_IPPICV等.zip

opencv4.4.0编译时下载文件_face_landmark_model.dat、IPPICV、vgg_generated_64.i 等

2021-12-31

opencv-openpose.zip

opencv-openpose.zip

2021-02-23

opencv-openpose.zip的脚本

opencv-openpose.zip

2021-02-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除