- 博客(271)
- 资源 (2)
- 问答 (4)
- 收藏
- 关注

原创 从训练到部署:基于YOLOv5和TensorRT的人脸口罩检测系统全流程实战指南(开源代码)
在之前的文章中,我们已经探讨了如何使用TensorRT加速YOLOv5模型的推理过程。如果你已经掌握了这些基础知识,那么现在是时候更进一步了!本文将带你深入实战,从零开始,一步步部署一个属于你自己的目标检测项目。无论你是刚入门深度学习,还是已经有一定经验的开发者,本文都将为你提供清晰的指引。我们将覆盖从数据标注与整理、模型训练、模型导出,到TensorRT序列化和部署推理的完整流程。通过这个项目,你将不仅学会如何搭建一个高效的目标检测系统,还能掌握如何在实
2025-02-21 14:32:58
2002
2
原创 微小目标检测:《RFLA: Gaussian Receptive Field based Label Assignment for Tiny Object Detection》
微小的物体以其极其有限的像素数量为特点,在计算机视觉社区中始终是一个难以破解的难题。微小目标检测 (TOD) 是最具挑战性的任务之一,由于微小目标缺乏区分特征,通用目标检测器通常无法在 TOD 任务中提供令人满意的结果。
2025-03-10 16:45:25
1205
原创 Manus AI:通用AI代理的技术深度剖析与产业变革潜力
2025年3月,全球首个通用AI智能体Manus横空出世,迅速引爆科技圈。这款由中国团队Monica.im开发的产品,不仅能够理解复杂指令,还能自主规划并执行任务,真正实现从“思考”到“行动”的闭环。Manus的出现,标志着AI从“对话工具”向“执行引擎”的范式跃迁,为生产力变革带来了无限可能。
2025-03-07 09:31:14
485
原创 使用nvjpeg解码jpeg图像
在深度学习的应用场景中,常常会涉及接收来自多个相机的图像数据,例如在监控系统、自动驾驶多传感器融合等领域。然而,大量的图像数据传输会消耗大量的带宽,为了解决这一问题,在传输过程中通常会对图像进行JPEG编码。通过这种编码方式,可以在保证一定图像质量的前提下,大大减少数据量,从而加快数据传输速度。但这也带来新的问题:在对图像进行模型推理之前,我们需要先对这些JPEG编码的数据进行解码,然后再开展后续的预处理和推理工作。图像的解码效率在很大程度上直接影响整个系统的执行速度。
2025-02-26 11:22:56
2287
原创 ubuntu中打包与压缩命令详解
在 Ubuntu 系统中,打包和压缩文件是常见的操作。通过打包和压缩,可以将多个文件或目录合并为一个文件,并减小文件大小以节省存储空间或方便传输。本文将详细介绍 Ubuntu 中常用的打包与压缩命令及其用法。以下是 Ubuntu 中常用的打包与压缩命令及其用途: 是 Ubuntu 中最常用的打包工具,支持多种压缩格式(如 gzip、bzip2、xz)。将多个文件或目录打包为一个 文件。选项说明:创建新的打包文件。:显示打包过程。:指定打包文件名。示例打包目录:打包多个文件:打包
2025-02-23 18:59:15
1342
原创 如何自适应计算二值化的阈值
二值化是将灰度图像中的像素值根据阈值进行分类,使像素值变成 0(黑色)或 255(白色)。如果像素值小于阈值 T,则设为 0。如果像素值大于等于阈值 T,则设为 255。
2025-02-21 14:52:52
495
原创 使用 OpenCV 和 Mediapipe 库实现手指计数
Mediapipe 提供了一个高效的手部检测和关键点识别模型,能够检测 21 个手部关键点。本教程介绍了如何使用 OpenCV 和 Mediapipe 实现手指计数。通过 Mediapipe 提供的手部关键点,我们可以高效识别手指数量,并可扩展到更复杂的手势识别任务。
2025-02-19 09:05:09
296
原创 CUDA 编程入门
CUDA(Compute Unified Device Architecture)是 NVIDIA 开发的一种通用并行计算架构,允许开发者利用 GPU 进行高效的并行计算。它提供了 C/C++ 语言的扩展,使程序员能够编写在 GPU 上运行的并行代码。
2025-02-19 09:00:35
364
原创 TensorRT 多流并行优化教程
TensorRT 是 NVIDIA 提供的高性能深度学习推理库,广泛应用于低延迟和高吞吐的 AI 任务中。多流(multi-stream)并行是一种提高 GPU 计算效率的方法,适用于批量推理场景,可以显著提升吞吐量。本教程将介绍如何判断 TensorRT 推理的运行瓶颈,并基于瓶颈分析,使用多流并行进行优化。多流(multi-stream)并行是一种提高 GPU 资源利用率的方法,使用多个 CUDA Stream 并行执行不同的数据流,以减少计算与数据传输的串行化问题。
2025-02-19 08:58:05
1136
原创 yolov5-seg分割后处理流程
在 YOLOv5s-seg 模型中,分割后处理的目的是将模型的原始输出(包括检测框、类别概率和掩码系数)转换为最终的实例分割结果。
2025-02-17 19:46:20
523
原创 cap5:YoloV5分割任务的TensorRT部署指南(python版)
在前几章中,我们详细探讨了如何将分类模型ResNet和目标检测模型YOLOv5部署到TensorRT上,相信大家对TensorRT的模型部署已经有了初步的了解。接下来,本文将带领你进一步深入,探索如何将YOLOv5分割模型成功部署到TensorRT。
2025-02-17 19:38:21
1502
4
原创 YOLOv5 目标检测优化:降低误检与漏检
误检意味着模型检测到了不存在的目标,而漏检则指模型未能检测到真实存在的目标。通过合理的优化,可以大幅降低误检和漏检,提高 YOLOv5 在目标检测任务中的表现。如果背景复杂导致误检,可以减少强烈的数据增强,避免模型学到无关信息。如果漏检主要集中在某些特定角度或场景,可以增加相应的数据增强,例如。IoU 阈值,如 0.3-0.4,但不能太低,否则可能导致漏检。如果误检仍然较多,可以使用更大的 YOLOv5 变体,如。例如,检测小目标时,使用。,但不能过低,否则会引入过多误检。,但不能过高,否则可能导致漏检。
2025-02-15 21:57:38
1776
原创 伪装目标检测(Camouflaged Object Detection, COD)教程
伪装目标检测(Camouflaged Object Detection, COD)是一项计算机视觉任务,旨在识别和分割背景中难以察觉的目标,如动物伪装、隐形物体检测等。由于伪装目标通常与背景高度相似,这项任务比传统的目标检测更具挑战性。伪装目标检测是一个极具挑战性的计算机视觉任务,广泛应用于生态保护、军事隐身目标检测、医学影像等领域。深度学习技术的进步使得 COD 取得了显著提升,但仍然存在泛化能力、数据集规模等问题。COD10K 是目前规模最大的 COD 数据集,涵盖了多种场景,如水下、森林、城市等。
2025-02-15 21:55:00
1533
原创 YOLOv5-Seg 深度解析:与 YOLOv5 检测模型的区别
YOLOv5-Seg在YOLOv5目标检测基础上,增加了掩码分支,实现了实例分割。输出增加了mask,需要结合proto进行解码。训练方式与YOLOv5类似,推理时需要额外处理mask。适用于需要同时进行目标检测和实例分割的任务,如医学影像、自动驾驶等。如果你对YOLOv5-Seg有任何问题,欢迎交流!🚀。
2025-02-15 21:36:12
1048
原创 YOLOv5-Seg 完全指南:从训练到后处理
YOLOv5-Seg 采用机制,输出目标的边界框 (Bounding Box)、类别 (Class) 和 分割掩码 (Segmentation Mask)。它的核心思想是在目标检测的基础上增加一个额外的分割头,从而实现实例分割。主要特点:端到端实例分割:不需要额外的后处理步骤,直接输出目标的掩码。轻量级:相比 Mask R-CNN,推理速度更快,适合实时应用。与 YOLOv5 兼容:使用相同的数据格式和训练方式,迁移成本低。本教程详细介绍了YOLOv5-Seg的安装、训练、推理、输出格式和后处理。
2025-02-15 21:27:20
935
原创 cap4:YoloV5的TensorRT部署指南(python版)
在前几章中,我们深入探讨了如何将分类模型ResNet部署到TensorRT上,相信大家对TensorRT模型部署已经有了初步的了解。本文将带你进一步探索如何使用TensorRT部署YOLOv5检测模型。与分类模型相比,检测模型的部署流程虽然大体相似,但在后处理环节却更为复杂。这包括边界框(bbox)过滤、非极大值抑制(NMS)处理以及坐标转换等步骤。不过,如果你已经具备相关经验,这些步骤对你来说将会是小菜一碟。接下来,我们将一步步解析这些关键环节,帮助你轻松掌握YOLOv5的TensorRT部署技巧。
2025-02-14 16:24:59
1263
2
原创 基于opencv的HOG+角点匹配教程
HOG结合角点检测能够在图像匹配任务中提供高鲁棒性的特征描述。适用于目标识别、拼接和物体跟踪等应用。在计算机视觉任务中,特征匹配是目标识别、图像配准和物体跟踪的重要组成部分。角点是图像中具有显著变化的点,在特征匹配中至关重要。HOG的基本思想是计算局部区域内像素梯度的方向分布,并构建特征向量。HOG提取局部特征,而角点提供关键匹配点,可以使用。使用OpenCV实现Harris角点检测。
2025-02-14 09:25:29
573
原创 使用Opencv方法进行模板匹配
模板匹配(Template Matching)是一种基于图像处理的模式识别技术,主要用于在目标图像中查找与给定模板最匹配的区域。本文介绍了传统图像处理方法进行模板匹配的基本原理、常见算法及优化策略,并提供了 OpenCV 实现代码。虽然传统方法在简单场景下表现良好,但在光照变化、旋转、尺度变化等复杂场景下仍存在局限性,因此可结合深度学习方法进一步提高匹配效果。模板匹配的基本思想是通过滑动窗口的方式,在目标图像中搜索与模板最相似的区域,并利用某种相似性度量来评估匹配程度。
2025-02-14 09:22:21
616
原创 使用多种机器学习算法进行鸢尾花分类
sepal length(萼片长度,cm)sepal width(萼片宽度,cm)petal length(花瓣长度,cm)petal width(花瓣宽度,cm)Setosa(山鸢尾)Versicolor(变色鸢尾)Virginica(维吉尼亚鸢尾)
2025-02-14 09:17:01
282
原创 立春:红梅与阳光共舞的时节
可次年惊蛰时分,枯木般的枝干上竟迸出星星点点的红,如同涅槃重生的凤凰,在焦黑的枝条间绽放出更炽烈的生命火焰。树梢间跳跃的麻雀啄食着花瓣上的残雪,抖落的雪粒在阳光下化作细碎的水晶。夕阳西下时,晚风捎来远处孩童放风筝的欢笑,那些翱翔天际的纸鸢,与风中摇曳的梅枝共同勾勒出生命的抛物线。暮色渐浓,梅香愈发清冽。当我们凝视这寒梅傲放的姿态,恍然领悟:生命最美的绽放,不在于温室里的周全庇护,而在于直面风霜时依然选择热烈地盛开。枝头凝结的冰晶在晨光中渐渐消融,发出细微的脆响,仿佛时光老人正在轻轻叩响春天的大门。
2025-02-14 09:04:42
121
原创 cap3:自定义数据集训练ResNet的TensorRT部署指南(python版)
在实际应用中,我们常常面临自定义分类任务的需求。那么,面对这些个性化需求,我们该如何高效部署呢?本文将以猫狗二分类任务为实例,详细讲解从数据集制作、模型结构调整、模型训练,到模型导出及TensorRT部署推理的全流程。通过掌握这一流程,您将能够轻松应对各种自定义分类任务的部署挑战。
2025-02-14 08:44:26
1462
1
原创 cap2:1000分类的ResNet的TensorRT部署指南(python版)
在深度学习模型的实际应用中,训练只是第一步,如何将模型高效部署到生产环境才是关键。本文将以经典的ResNet18模型(1000分类)为例,手把手带你走完从模型权重获取、优化到使用TensorRT实现高性能推理的完整流程。无论你是刚接触模型部署的新手,还是希望优化推理性能的开发者,本文都将为你提供清晰、实用的指导,助你快速掌握工业级模型部署的核心技能!环境:ubuntu20.04+4070Ti。
2025-02-13 20:41:51
1257
8
原创 cap1:TensorRT介绍及CUDA环境安装
TensorRT(NVIDIA TensorRT)是 NVIDIA 提供的一款高性能深度学习部署推理优化库,专门用于加速在 NVIDIA GPU 上运行的深度学习模型。它提供了一系列优化手段,如运算融合(Layer Fusion)、精度校准(Precision Calibration)、张量优化(Tensor Optimization)等,能够显著提升模型推理速度,并降低延迟。
2025-02-13 20:40:56
1284
4
原创 ubuntu黑屏问题解决
重启Ubuntu后,系统自动进入tty1,无法进入桌面。想到前几天安装了一些主题之类的,然后今天才重启,可能是这些主题造成冲突或者问题了把。,我之前使用的清华源,apt install全部提示依赖不满足,换成官方源就正常安装了。注意:源要改成官方的源,参考。
2025-01-23 16:18:08
801
1
原创 模型剪枝及yolov5剪枝实践
2)结构化剪枝将通道全部置0了,理论上可以去掉这个通道,比如上方的(1,16,6,6)卷积核可以去掉5个0值通道后,变成(1,11,6,6)。效果如下,这是模型中第一个卷积的权重,经过剪枝后,权重矩阵中有很多都被置0了,模型的大小也降低了一半。经过结构化剪枝后,对(1,16,6,6)的卷积核,统计16个通道权重值,可以看到有16*0.3=4.8≈5个通道置0了。模型剪枝的定义就不再赘述,剪枝就是将网络结构中对性能影响不大且权重值较小的节点去掉,从而降低模型的计算量,提高运算速率。
2025-01-22 13:55:51
1515
原创 Visual Studio2019基础使用指南
作为宇宙第一开发神器,Visual Studio确实方便很多,特别大工程的开发。但是也正因如此拔高了学习门槛。在这里简单记录依次初次使用visual studio的过程。
2024-12-23 17:16:18
700
原创 git删除错误的commit
是远程仓库上的最新记录,而一个正常的(指commit后立马push)的log长这样。当某次失误造成commit的版本有问题,需要回退到正常的版本修改后重新add。现在我们需要将本地HEAD回退到正常版本,比如我这里回退到。查看文件变动情况,检验是否符合期望。,本地提交记录和远程仓库的记录是同步的。查看commit提交记录,可以看到。是本地最新的commit,而。查看日志可以看到回退成功。现在我们可以修改后再次。
2024-10-10 15:37:19
543
原创 pyinstaller打包一个Pytorch项目及其常见问题
我有一个基于pytorch的动漫化Stable Diffusion项目,使用pyside6写了一个可视化界面。但是在新环境使用需要搭建Nvidia-Driver、CUDA、cuDNN和含pytorch的python环境,十分繁琐,所以需求是将项目打包为可执行文件,打包过程中将python环境一起打包,在新环境可以使用自带的python解释器,所以不需要配置python环境。
2024-09-09 11:57:41
2495
2
原创 NMS流程及示例代码
以某yolo模型输出的61440*6的数据为例,总共输出61440的bbox(实际只有3个目标),每个bbox的格式为[cx,cy,w,h,conf,cls_score],分别代表bbox的4个值,置信度以及类别分类得分。],所有的类别得到之和等于1。在该过程中有bbox2和bbox3和bbox1的IOU较高,被舍弃。在上面的过程中,标准bbox即绿色的bbox,在代码中会加入到结果result中,最后有3个bbox(bbox1、bbox3、bbox5)加入到result,其余的则被舍弃。
2024-08-26 13:33:04
621
1
原创 图像形变的两种方法:前向映射与反向映射
前向映射这种方式有一个缺点,在图像旋转中,原图的坐标和新图的坐标不是一一对应的。在这个过程中,原图中多个像素点(左图红点)经过计算和取整后,可能映射到新图的同一个坐标点(右图红点),造成一些像素点永远没有对应的映射点(右图黑点),这些黑点最终呈现的就是背景色。顾名思义,反向映射就是根据新图坐标,计算其在原图中的坐标点,然后将原图中像素点值复制到新图中即可。我们知道原图中一个像素点的位置,可以通过计算得到这个像素点旋转后在新图中的位置,然后判断这个新的坐标是否在图像内,然后赋值,这就是前向映射。
2024-07-24 17:13:06
606
原创 gitee设置ssh公钥密码避免频繁密码验证
公钥则可以解决该问题,将私钥放在本地,公钥放在gitee上,当对项目进行操作时带有的私钥会在gitee和公钥进行验证,避免了手动输入密码的过程。gitee中可以创建私有项目,但是在clone或者push都需要输入密码, 比较繁琐。
2024-07-23 09:24:08
615
原创 python中的线程并行
现在有1154张图片需要顺时针旋转后保存到本地,一般使用循环1154次处理,具体代码如下所示,img_paths中存储1154个图片路径,该代码段耗时约用97ms。对于这种没有数据交换的任务,可以使用多线程。python中有很多多线程、多进程的库,这里试试线程池ThreadPoolExecutor。可以看到,15个cpu都被调用起来了。下方的代码耗时约37ms。
2024-05-25 09:41:43
600
原创 (番外)如何将cuda数据存入std::queue实现异步效果
假设有任务需要依次进入step1和step2两个阶段,如果想要提高任务的运行效率可以使用异步的方法,即step1产生结果后送入列队,然后开始新的step1。如果step1的处理速度大于step2,则queue中存入比读取更快,导致queue的size越来越大,储存的指针数据越来越多。在queue中存放的是指向不同显存空间的指针,所以通过p=queue.front()获取到显存地址后,并对该地址数据进行相关操作,比如cudaFree§进行释放。申请到新的显存后,将地址储存给指针*p;
2024-03-12 10:07:00
1052
原创 从Pytorch到TensorRT的转换和推理
在本文中我们使用pytorch自带的工具将pt模型转为onnx模型,并使用onnxruntime推理引擎进行推理。为了保证模型转换过程中精度,进行了精度对齐的小实验,证明转换前后的误差在1e-6这个级别,是可以忍受的。后续继续将onnx转为tensorRT进行部署,实现从pt–onnx–tensorRT这个部署路线。
2024-03-12 10:05:33
1820
2
原创 TensorRT环境搭建
TensorRT是针对NVIDIA显卡设备的加速方案,你要使用TensorRT则证明你有一定的深度学习基础,那么在你的Ubuntu上配置好显卡驱动、CUDA以及cuDNN一定是小菜一碟。在上文的TensorRT文件夹中,提供了头文件和库文件供开发者直接使用,所以我们将其头文件和库文件的路径加入到环境变量,方便开发时使用。在测试环节,我们将尝试使用TensorRT的IBuilder创建一个builder,如果能够创建成功不报错,说明环境配置上没有问题。可以看到很多版本,我们选择最新的8.x的版本。
2024-02-28 22:53:05
1837
11
原创 TensorRT基本流程概览
uint32_tint在RTX中,有两个阶段:1)build engine:将储存了层名和权重的wts文件转换为engine文件。该过程需要IBuilder和INetwork;2)inference:直接将engine读取到IRuntime中,进行推理。此时的网络定义只是一个空壳,没有结构也没有权重参数。ONNX是一种中间件表示协议,规定了网络的结构且储存了参数。现在可以用TensorRT的ONNX Parser接口将ONNX文件中的结构和参数填充到上文定义的空客网络network中。
2024-02-28 00:35:28
1461
IEEE Conference Paper模板(IEEE会议论文模板)
2023-04-08
SWING图形界面开发手册.pdf
2019-10-30
pytorch训练时连续两次eval会影响梯度下降?
2022-09-21
python中logging的使用问题
2022-05-23
如何快速验证深度模型的改进是否有效?
2022-05-12
Keras模型训练,训练集90%精度,验证集80%精度,该模型该如何提升?
2021-04-23
Android Studio中如何将Image类转为Bitmap类?
2021-04-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人