ai
文章平均质量分 79
hllyzms
编程爱你不容易
展开
-
在C#中调用OpenVINO™ 模型 paddle onnx IR 模型
对于方法接口,主要设置为:推理初始化、配置输入数据形状、配置输入数据、模型推理、读取推理结果数据以及删除内存地址六个大类,其中配置输入数据形状要细分为配置图片数据形状以及普通数据形状,配置输入数据要细分为配置图片输入数据与配置普通数据输入,读取推理结果数据细分为读取float数据和int数据,因此,总共有6类方法接口,9个方法接口。最后一步就是处理输出数据。对于不同的推理模型,其结果处理方式是不同的,对于花卉分类模型,其输出为102种分类情况打分,因此,在处理数据时,需要找出得分最高的哪一类即可。转载 2023-02-11 11:30:00 · 754 阅读 · 0 评论 -
图像预处理CV-CUDA,打破预处理瓶颈,提升推理吞吐量20多倍
然而在以往的视觉模型开发与应用中,我们更关注模型本身的优化,提升其速度与效果。例如在训练方面,字节跳动一个视频相关的多模态任务,其预处理部分既有多帧视频的解码,也有很多的数据增强,导致这部分逻辑很复杂。很多涉及到工程与产品的算法工程师都知道,虽然我们常常只讨论模型结构和训练任务这类「前沿研究」,但实际要做成一个可靠的产品,中间会遇到很多工程问题,反而模型训练是最轻松的一环了。以图像背景模糊算法为例,常规的图像处理流程中预\后处理主要在 CPU 完成,占据整体 90% 的工作负载,其已经成为该任务的瓶颈。转载 2023-02-11 10:45:00 · 1008 阅读 · 0 评论 -
显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
简单理解这个就是我们前面说的GPU,尤其指NVIDIA公司生产的GPU系列,因为后面介绍的cuda,cudnn都是NVIDIA公司针对自身的GPU独家设计的。转载 2022-12-19 22:45:00 · 1344 阅读 · 0 评论 -
Yolov5 seg在图像分割上的落地应用
网络模型上,加载同目标检测网络加载,通过yaml文件对网络搭建,yaml搭建的网络除了head最后一层,前面的基本上和目标检测的网络保持一致,分割网络通过读取yaml文件搭建,SegmentationModel类继承DetectionModel,其对yaml文件的解析方式同目标检测。loss上在分类和检测同目标检测,同时添加了对分割的损失,在分割上的build_target部分,相比于检测考虑anchor正样本划分,分割属于像素级的分类,读取对应目标的index即可。今天对分割任务大概梳理一遍。转载 2022-12-11 13:35:51 · 6661 阅读 · 4 评论 -
在C#中调用OpenVINO™ 模型 | 开发者实战
1.1 项目概述1.1.1 项目介绍C#调用OpenVINO™ 工具套件部署Al模型项目开发项目,简称OpenVinoSharp,这是一个示例项目,该项目实现在C#编程语言下调用Intel推出的 OpenVINO™ 工具套件,进行深度学习等Al项目在C#框架下的部署。该项目由C++语言编写OpenVINO™ dll库,并在C#语言下实现调用。项目可以实现在C#编程语言下调用Intel推出的 OpenVINO™ 工具套件,进行深度学习等Al项目在C#框架下的部署,目前可以支持的Al模型格式:■ Paddl转载 2022-12-04 14:54:08 · 935 阅读 · 0 评论 -
YOLOv5,YOLOv6,YOLOv7在TensorRT推理速度比较
yolov5s模型是最小的,速度最快当之无愧,在精度方面跟YOLOv6s、YOLOv7-tiny、YOLOv7只有细微差异。然后综合我这两天完成这件事在YOLOv6、YOLOv7上遇到各种坑,我只能说搞工程选YOLOv5就对了,其他的都是嘴炮!工程化做的都是一塌糊涂,还有很大的改进空间。搞工程还是要脚踏实地,嘴炮一时爽,落地就死亡!转载 2022-11-23 21:45:00 · 2771 阅读 · 3 评论 -
YOLOv5 GSConv+Slim Neck
并且,提供了一种设计范式, Slim-Neck ,以实现检测器更高的计算成本效益。在实验中,与原始网络相比,本文方法获得了最先进的结果(例如, SODA10M 在 Tesla T4 上以 ~100FPS 的速度获得了 70.9% mAP0.5)。两阶段检测器在检测小物体方面表现更好,通过稀疏检测的原理可以获得更高的平均精度(mAP),但这些检测器都是以速度为代价的。单阶段检测器在小物体的检测和定位方面不如两阶段检测器有效,但在工作上比后者更快,这对工业来说非常重要。越多的模型获得的非线性表达能力越强。原创 2022-11-05 21:02:26 · 1966 阅读 · 0 评论 -
C#中使用Bitmap 传递图到C++
马赛克算法很简单,说白了就是把一张图片分割成若干个val * val像素的小区块(可能在边缘有零星的小块,但不影响整体算法),每个小区块的颜色都是相同的。实际应用中,直接操作内存中的数据块是很少见的,尽管如此,图像处理恰恰是这类为数不多的情况之一,因为使用托管代码的效率低的难以忍受,特别是对巨幅图像来说,在此,我们讨论一下一种新的方法。当前指针所指的字节中的每一位都表示一个像素的索引颜色,调色盘为两色,最左边的像素为8,最右边的像素为0。Stride:数据矩阵中的行宽,以byte为单位。原创 2022-11-01 23:45:00 · 893 阅读 · 0 评论 -
基于AidLux的yolov5 人体检测+人体追踪+人流统计实现
基于AidLux的yolov5 人体检测+人体追踪+人流统计实现原创 2022-10-30 15:32:04 · 848 阅读 · 0 评论 -
pyinstaller打包 pyqt5 运行报错 Error loading “\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll
基础环境 pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cpuonly之后卸载 pytorch 之后重新安装再次打包:之后在所有电脑上都可以运行。原创 2022-10-26 14:34:57 · 1783 阅读 · 0 评论 -
AI作画,NovelAI开源教程
如果说 2021 年是“元宇宙”的元年,那么 2022 年或许就是“AI作画”的元年。最近,“AI作画”的作品越来越多,掀起了一股热潮。比如之前在美国科罗拉多州博览会的艺术比赛中获得了第一名的作品,就是 AI 所作。空间歌剧院(Thétre D'opéra Spatial)基于Midjourney生成的图像基于Midjourney生成的图像想像一下:输入各种风格、主题、氛围的关键词,然后 AI 就会生成符合要求的作品,仿佛艺术就是一件“触手可及”的事情。我们一起看下现在 AI 的作画水平。转载 2022-10-20 22:45:00 · 5409 阅读 · 0 评论 -
yolov5优化器及超参数设置
机器学习的五个步骤: 数据 -> 模型 -> 损失 -> 优化器 -> 迭代训练。 我们通过前向传播的过程,得到了模型输出与真实标签的差异,我们称之为损失, 有了损失,我们会进入反向传播过程得到参数的梯度,那么接下来就是优化器干活了,优化器要根据我们的这个梯度去更新参数,使得损失不断的降低。 那么优化器是怎么做到的呢? 该博主从三部分进行展开,首先是优化器的概念,然后是优化器的属性和方法,最后是常用的优化器。深度学习优化算法经历了 SGD -> SGDM -> NAG ->AdaGrad -> AdaDel转载 2022-10-17 21:15:00 · 4086 阅读 · 0 评论 -
AttributeError: module ‘distutils‘ has no attribute ‘version‘
安装低版本 pip install setuptools==56.1.0。运行 mmyolo 加上 tensorboard 运行时。这是因为 setuptools 版本过高的原因。原创 2022-10-03 18:38:13 · 1602 阅读 · 0 评论 -
RTMDet 说明
速度 map 对比。原创 2022-09-26 21:17:45 · 629 阅读 · 0 评论 -
c++ 静态链接和动态链接
库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。所谓静态、动态是指链接。回顾一下,将一个程序编译成可执行程序的步骤:图:编译过程二者的不同点在于代码被载入的时刻不同。l 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。转载 2022-09-15 15:46:21 · 1551 阅读 · 0 评论 -
涨分神器 cleanLabel-清洗噪声数据
在实际操作中,因为人员的标注误差,人员理解等不可控因素,标注数据很难有一致性,会默认算法工程师拿到的数据是带噪声的数据。cleanLabel 则可以完成上述的任务,即从整批数据整筛选出噪声数据或者难例数据,首先他是通过模型筛选数据的,模型从哪儿来,基于数据集去训练的,训练后的模型来反过来筛选数据。再将筛选后的数据进行后续模型的训练。上述考虑用k折交叉验证的原因个人理解是,因为对整个数据集做清洗,同时要对数据集训练,有训练的话会划分训练集和验证集,如果只使用做一次训练,则对训练集会过拟合,且对验证集不公平。.转载 2022-08-29 21:00:00 · 2093 阅读 · 0 评论 -
torchvision.ops.nms与batched_nms
batched_nms() 和 nms() 区别在于。原创 2022-08-29 20:15:00 · 891 阅读 · 0 评论 -
YOLOPv2开源,目标检测&区域分割,多任务版本
尽管计算机视觉和深度学习取得了长足的发展,但基于视觉的任务(如物体检测、分割、车道检测等)在低成本自动驾驶的应用中仍然具有挑战性。最近已经努力建立一个强大的全景驾驶感知系统,这是自动驾驶的关键组成部分之一。全景驾驶感知系统通过摄像头或激光雷达等常见传感器,帮助自动驾驶车辆全面了解周围环境。基于相机的目标检测和分割任务通常在场景理解的实际使用中因其低成本而受到青睐。目标检测在提供交通障碍物的位置和大小信息方面发挥着重要作用,帮助自动驾驶汽车在行驶阶段做出准确及时的决策。...原创 2022-08-26 11:15:59 · 2473 阅读 · 1 评论 -
基于改进YOLOv5的红外图像行人目标检测方法
背景技术行人检测要求准确判断输入图像或视频是否包含行人,并给出行人在图像中的空间坐标信息,广泛应用于智能监控、地区侦查、人体行为理解、自动驾驶等领域。与传统的基于可见光的行人检测任务相比,红外成像抗干扰能力强、受光线和恶劣天气影响小,具备全天时工作的能力。但是红外图像对比度较低、纹理特征弱、干扰大,行人目标在强噪声和相似背景的影响下,成为弱小目标;传统的基于人工提取特征检测的方式利用选取的区域人工设计提取特征,对于提取的特征进行学习并用分类器进行分类,此类方法需通过滑动窗口实现,时间复杂度较高,且鲁棒性不强转载 2022-08-24 18:51:18 · 5674 阅读 · 0 评论 -
最新损失函数SIOU YOLO-V5涨点喜人 适配YOLO
目标检测是计算机视觉任务中的核心问题之一,其有效性在很大程度上取决于损失函数的定义——衡量您的ML模型预测预期结果的准确程度。传统的目标检测损失函数依赖于边界框回归指标的聚合,例如预测框和真实框(即GIoU、CIoU、ICIoU等)的距离、重叠区域和纵横比。然而,迄今为止提出和使用的方法都没有考虑期望的地面盒和预测的“实验”盒之间不匹配的方向。这种不足导致收敛速度较慢且效率较低,因为预测框可能在训练过程中“四处游荡”并最终产生更差的模型。转载 2022-08-22 21:45:00 · 4467 阅读 · 10 评论 -
YOLO系列之YOLO-Lite:实时运行在CPU上的目标检测算法
yolo-lite带来的启示是“删繁就简”,如果不是为了刷榜(COCO),而是在实际项目中,这种“就简”的思维用处很大。首先,COCO数据集是检测80分类,然而我们实际项目中往往用不到这么多类别的检测。直接用人家在COCO数据集上训练出来的模型,其实有很多冗余。对于简单的项目,丢简单的模型,反而不容易造成过拟合。BN层可能对小模型的帮助并没有那么大,如果在小任务如单目标检测上,可以考虑去掉BN层。转载 2022-08-20 19:00:00 · 1182 阅读 · 0 评论 -
onnx和pytorch,tensorrt 推理速度对比GPU CPU
通常我们在训练模型时可以使用很多不同的框架,比如有的同学喜欢用Pytorch,有的同学喜欢使用TensorFLow,也有的喜欢MXNet,以及深度学习最开始流行的Caffe等等,这样不同的训练框架就导致了产生不同的模型结果包,,而且同一个框架比如tensorflow不同的版本之间的差异较大, 为了解决这个混乱问题,这个组织联合 Facebook, MicroSoft等公司制定了,这个标准叫做,所有其他框架产生的模型包 (.pth,.pb) 都可以转换成这个标准格式,转换成这个标准格式后,就可以。......原创 2022-08-09 20:45:00 · 6384 阅读 · 6 评论 -
IOU GIOU DIOU CIOU
""计算box和other的边缘外包框,使得2个box都在框内的最小矩形"""# todo 如果不考虑右侧的一个像素 返回 self.r - self.x。# todo 如果不考虑下侧的一个像素 返回 self.b - self.y。'''计算两个box的bound的对角线距离'''"""计算box和other的IoU"""""" 计算box和other的并集""""""计算box和other的交集"""'''计算两个box的中心点距离''''''计算两个点的欧式距离'''...原创 2022-08-07 14:33:34 · 123 阅读 · 0 评论 -
yolov5-6 The “freeze_support()“ line can be omitted if the program is not going to be frozen
An attempt has been made to start a new process before the current process has finished its bootstrapping phase. This probably means that you are not using fork to start your child processes and you have forgotten to use the proper原创 2022-08-05 20:15:00 · 332 阅读 · 0 评论 -
YOLOv5将NMS替换为DIoU-NMS
由于原始的NMS中,IoU指标用于抑制多余的检测框,但由于仅考虑了重叠区域,经常会造成错误的抑制,特别是在bbox包含的情况下。基于DIoU作为NMS标准,虽然多了距离这个维度去考虑问题,但和NMS面对的同样的情况是当两个不同的目标本身就靠的很近的时候还是会造成错误的抑制。具体意义在目标检测的预测阶段时,会输出许多候选的anchorbox,其中有很多是明显重叠的预测边界框都围绕着同一个目标,这时候就可以使用NMS来合并同一目标的类似边界框,或者说是保留这些边界框中最好的一个。...转载 2022-08-02 21:45:00 · 3453 阅读 · 7 评论 -
YOLOv5-Lite 详解教程 | 嚼碎所有原理、训练自己数据集、TensorRT部署
这里给出轻量化设计的4个准则。转载 2022-07-30 22:45:00 · 3097 阅读 · 1 评论 -
激活函数简介
Sigmoid激活函数曾一度被不同的网络使用,从Sigmoid及其导数曲线图可知,当输入的值非常小或者非常大时,其Sigmoid输出的值接近0或者1,当Sigmoid函数的前一层梯度接近于0时,由于前一层的学习参数梯度接近于0,使得参数无法得到有效更新,从而产生饱和神经元,因此Sigmoid激活函数在网络使用中比较容易产生梯度消失问题,饱和的神经元会加重梯度消失问题。由曲线图可知,tanh激活函数是关于原点中心对称的,相比Sigmoid而言,收敛速度加快,梯度消失的特点依旧存在,因此难以训练。...转载 2022-07-29 22:00:00 · 13103 阅读 · 0 评论 -
RK3399开发板OrangePi4B使用NPU的方法
其中,香橙派4B还内置了NPU(神经网络处理器),可以协助CPU做神经网络加速计算,采用MPE与APiM独特AI架构,典型算力2.8Tops,拥有9.3Tops/W超高效能,能高效的帮CPU分担大量推理运算的任务,从而节省不少功耗。香橙派4B是一款开源的单板电脑,采用瑞芯微RK3399芯片,4G内存+16GBemmc存储,支持双频wifi和千兆网口,有PCIE接口,支持双路摄像头同时输入,支持四路显示,可配置任意两路同时输出,支持双频异显。烧录方法可参考用户手册“Linux固件烧录章节”...转载 2022-07-22 16:29:28 · 1687 阅读 · 1 评论 -
新手炼丹经验总结小技巧
本文源于一个旧回答你有哪些deeplearning(rnn、cnn)调参的经验?(https//www.zhihu.com/question/41631631/answer/859040970)我的工作可以参见我的Github(https//github.com/hzwer),一股浓浓调参风,所以感觉能来说点小经验。...转载 2022-07-18 21:15:00 · 159 阅读 · 0 评论 -
Pytorch model.train() 和 model.eval() 原理与用法
pytorch可以给我们提供两种方式来切换训练和评估(推断)的模式,分别是: 和 。一般用法是:在训练开始之前写上 model.trian() ,在测试时写上 model.eval() 。在使用 pytorch 构建神经网络的时候,训练过程中会在程序上方添加一句model.train(),作用是 启用 batch normalization 和 dropout 。如果模型中有BN层(Batch Normalization)和 Dropout ,需要在 训练时 添加 model.train()。model.t转载 2022-07-04 20:45:00 · 568 阅读 · 0 评论 -
谷歌Disco Diffusion!AI生成超高质量绘画!
具体的教程:视频教程:https://b23.tv/BJaEwhj图文教程:https://www.shangyexinzhi.com/article/4648362.html效果:这里的结果来源:https://space.bilibili.com/261216004这位大佬在疯狂的测试,短短几天的生成结果这里仅分享部分图片生成结果,可通过链接直达原始视频的地址。更多细节等待作者论文公布!汇总:视频教程:https://b23.tv/BJaEwhj图文教程:https://www.shangyexinzh转载 2022-06-14 21:00:00 · 3910 阅读 · 0 评论 -
最全深度学习可视化工具
深度学习训练过程一直处于黑匣子状态,有很多同学问我具体怎么解释?其实很多还是无法可解释,但是通过可视化,具体可以知道深度学习在训练过程到底学习了哪些特征?到底对该目标的哪些特征感兴趣?这些我们现在已经有很多渠道可以得知,我先给大家介绍几个比较好的工具!1.深度学习网络结构画图工具地址:https://cbovar.github.io/ConvNetDraw/2.caffe可视化工具输入:caffe配置文件 输出:网络结构地址:http://ethereon.github.io/netscope/#/edit转载 2022-06-06 20:15:00 · 1450 阅读 · 1 评论 -
Yolov5的3种tensorRT加速方式及3090测评结果
本⽂中,我想测评下tensorRT,看看它在不同⽅式下的加速效果。⽤Tensorrt加速有两种思路,⼀种是构建C++版本的代码,⽣成engine,然后⽤C++的TensorRT加速。另⼀种是⽤Python版本的加速,Python加速有两种⽅式,⽹上基本上所有的⽅法都是⽤了C++⽣成的engine做后端,只⽤Python来做前端,这⾥我提供了另外⼀个⽤torchtrt加速的版本。⼀、安装Tensorrt参考教程⼆、Tensorrt加速yolov5参考教程1、C++版本即(以yolov5s为例)转载 2022-04-14 12:18:09 · 5669 阅读 · 2 评论 -
深度学习可视化 CNN Explainer
引言: CNN解释器是 CNN可视化的工具,对于小白而言,CNN可视化对于理解CNN有非常的帮助,因此,花了几天的时间,将CNN解释器网站做了一个翻译,还包括安装CNN解释器的过程和相关资料。CNN解释器地址:CNN ExplainerCNN Explainer (poloclub.github.io)CNN解释器文献:CNN Explainer: Learning Convolutional Neural Networks with Interactive Visualizationhttps:/.转载 2022-04-04 16:12:13 · 2360 阅读 · 3 评论 -
yolov5 过拟合 欠拟合
yolov5 识别效果不好如何判断原因 过拟合 欠拟合转载 2022-01-03 10:11:51 · 14426 阅读 · 17 评论