自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 收藏
  • 关注

原创 图像处理之Homography matrix(单应性矩阵)

单应性矩阵是投影几何中一个术语,本质上它是一个数学概念,但是在OpenCV中却是有几个函数与透视变换相关的函数,都用到了单应性矩阵的概念与知识。跟很多人一样,刚开始学习图像处理对单应性矩阵不是很了解,通过项目实践慢慢知道了一些这方面的知识和自己对它的理解,就跟大家分享一下。单应性矩阵概念这里说的单应性矩阵主要是指平面单应性矩阵,在三轴坐标中XYZ,Z=1这个有点类似于三维的齐次坐标。单应性矩阵主要用来解决两个问题,一是表述真实世界中一个平面与对应它图像的透视变换。

2025-04-03 11:35:04 249

原创 [算法]道格拉斯-普克算法(Douglas-Peucker Algorithm),简称D-P算法

道格拉斯算法是一种用于曲线拟合的数学方法,特别是在处理曲线插值问题时非常有用。道格拉斯-普克算法(Douglas-Peucker Algorithm),简称D-P算法,是一种用于简化多边形或折线的高效算法,由David Douglas和Thomas Peucker于1973年提出。该算法的核心思想是递归地将折线分割为两段,然后根据设定的阈值去除那些偏离直线距离小于阈值的点,从而达到简化折线的目的。

2025-04-02 17:39:46 538

原创 OpenMPI的安装

1、首先去官网(https://www-lb.open-mpi.org/software/ompi/v4.0/)下载所需要的版本。例如,将最新版本 openmpi-4.0.2.tar.bz2 文件放到你个人用户目录下的任一个文件夹(注意最新的不一定是最适合你的需要的。( ./configure --prefix=“安装目录所在绝对路径”, 安装目录需要提前新建一个,我一般选择在编译目录外面新建一个目录,新建一个software文件夹。7、重新新进入shell之后直接用$mpiexec -V,来查看版本。

2025-03-31 16:55:58 213

原创 [环境报错] libcublas.so.11: undefined symbol: cublasLtGetStatusString, version libcublasLt.so.11

例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据。

2025-03-31 14:04:32 273

原创 Ubuntu20.04安装OpenVINO环境以及YOLOv8 C++部署测试

OpenVINO是英特尔针对自家硬件平台开发的一套深度学习工具库,包含推断库,模型优化等等一系列与深度学习模型部署相关的功能。OpenVINO™工具包是用于快速开发应用程序和解决方案的综合工具包,可解决各种任务,包括模拟人类视觉,自动语音识别,自然语言处理,推荐系统等。该工具包基于最新一代的人工神经网络,包括卷积神经网络(CNN),循环和基于注意力的网络,可在英特尔®硬件上扩展计算机视觉和非视觉工作负载,从而最大限度地提高性能。它通过从边缘到云的高性能,人工智能和深度学习推理来加速应用程序。

2025-03-28 16:54:55 1068

原创 yolo模型train.py文件训练参数详解

手把手调参。

2025-03-20 14:26:36 906

原创 PyTorch分布式训练中各节点如何通信

1、分布式节点如何知道彼此并通信。每个节点启动训练任务需要设置主节点的ip:port,通过跟主节点通信来启动服务。2、是不是每个节点都要执行python程序。是的,写好训练代码后,每个节点都需要执行python命令,但是一般平台会帮我们管理分布式服务,自动把脚本分发到各个节点,并执行python成勋,才会产生不需要每个节点执行python代码的错觉。3、如果忘记在某个节点执行python命令,结果会怎样。ddp会阻塞在初始化的位置,一直等到有world_size进程为止,这个就是靠主节点来跟踪进程数。

2025-03-20 11:07:08 1188 1

原创 C/C++高效编译工具ccache

在处理一些规模相对较大的工程时,编译花费的时间可能会很长。有时候我们会经常一遍一遍地编译相同的程序,此时,有了ccache情况就好多了。它将在第一遍编译时多花几秒钟,但接下来就会使编译成倍(5-10倍)的提速。ccache 的基本原理是通过将头文件高速缓存到源文件之中而改进了构建性能,因而通过减少每一步编译时添加头文件所需要的时间而提高了构建速度。以下来了解下如何同时使用 ccache 和distcc 来使开发环境达到最佳性能。

2025-03-18 14:33:36 862

原创 CVPR2025自动驾驶端到端前沿论文汇总

汇总CVPR2025自动驾驶前沿论文。

2025-03-17 15:27:17 969

原创 yolo模型coco数据集详解

instances_train2017.json和instances_val2017.json文件均分为五大部分,这五部分对应的关键字分别为info、licenses、images、annotations、categories。info"description": string类型"url": string类型"version": string类型"year": int类型"contributor": string类型"date_created": string类型licenses {

2025-03-13 11:18:43 301

原创 远程调试Python脚本之ptvsd

有时候需要远程调试Python脚本,怎么办呢…以下这段代码用于远程调试 Python 脚本,特别是通过 Visual Studio Code(VS Code)的远程调试功能。它会在指定的服务器 IP 和端口上等待调试器的连接。# 检查是否提供了服务器 IP 和端口# 远程调试 - 参见 https://code.visualstudio.com/docs/python/debugging#_attach-to-a-local-script# 打印等待调试器连接的消息。

2025-02-11 09:50:29 296

原创 bazel使用教程详解

bazel的所有代码都在当前工程,每个工程都是一个 WORKSPACE。每个WORKSPACE下有多个package(包含BUILD文件的文件夹被称为package),BUILD内是多个targets,同一个package内的targets默认互相可见,不同package之间targets的可见性需要手动定义,可以在每个package的BUILD文件顶部声明其中的targets对其他包的默认可见性。

2025-01-20 16:54:25 629

原创 stb_image简单使用

stb_image 是一个非常轻量级的、单文件的图像加载库,用于加载和解码多种图像格式(如BMP、JPEG、PNG、GIF等)的图像数据。它由Sean T. Barrett开发,并以公共领域(Public Domain)许可发布,因此可以自由地用于商业和非商业项目stb_image 提供了简单易用的接口,使得在应用程序中加载图像变得非常方便。

2025-01-13 16:09:02 463

原创 Raw格式的图片理解、读取、转换、显示

MIPI raw就充分利用了这6个bit位,每5个字节存储4个像素值,如图1.1所示,每格代表两个bit位,前4个红色的格子存储的是第一个像素的高8位,接着4个黄色的格子存储的是第二个像素的高8位,接着4个绿色的格子存储的是第三个像素的高8位,接着4个蓝色的格子存储的第四个像素的高8位,接着1个蓝色的格子存储的是第4个像素的低2位,接着一个绿色的格子存储的是第3个像素的低2位,接着一个个黄色的格子存储的是第2个像素的低2位,最后一个红色的格子存储的是第1个像素的低2位。假设一个sensor的像素是8。

2024-12-24 15:43:37 2615

原创 C++常用的三个网络编程库介绍

在C++的世界里,网络编程是许多应用程序的基础,尤其是在服务器端开发中。不同的框架提供了不同的特性和便利性,今天我们就来对比一下三个流行的C++网络编程框架:Boost.Asio、Poco和MUDuo(也称为muduo),看看它们各自的优势和适用场景,并通过实际案例加深理解。

2024-12-24 09:47:25 1042

原创 关于YOLOv9训练结果详解

本篇介绍使用YOLOV9模型训练以及训练数据之后我们需要一些评判标准来告诉我们所训练的效果究竟如何,关于yolov9的一些简单说明,主要是txt文件、训练结果分析等的相关资料。

2024-12-12 18:20:59 1088

原创 yolov9目标检测报错AttributeError: ‘list‘ object has no attribute ‘device‘

main(opt)这行代码错误,应该是照抄了yolov5的代码改成以下代码,问题解决,完美解决。

2024-12-10 16:24:57 686 1

原创 C/C++常用的一些性能分析测试工具汇总

常用的性能测试工具汇总

2024-11-22 10:52:21 183

原创 YOLOv9目标检测模型的使用教程与部署

完全使用卷积结构进行构建,没有使用Transformer的结构,比带Transformer结构的RT-DETR、YOLOv8报告的性能都要好。基于MS COCO数据集的模型参数配置目前官方只提供以上的YOLOv9-C和YOLOv9-E模型。

2024-11-18 19:02:46 1205

原创 非极大值抑制NMS详解(Non Maximum Suppression)

非极大值抑制广泛应用在目标检测,目标跟踪,边缘检测。

2024-11-13 15:28:07 827

原创 onnx模型动态输入形状转静态输入形状

早期tf生成的模型,因为是静态图,定义模型时输入的是tf.placeholder ,导出的pb 或都saved model,总是动态,至少batch size 这一维是动态,即[None,H,W,3],H,W有具体值;如果是支持多尺度的输入的话,那输入形状是[None,None,None,3]。以上None部分,也可能是用户常常自定义的一个名称。在pytorch导出onnx时,可以设置是使事使用dynamic,dynamic的价值也就是可以变输入。但在部分边端芯片上部署模型时,通常是必须固定形状的。

2024-11-13 10:42:38 379

原创 C++多线程编程的高效利器-无锁队列

在 C++ 的多线程编程世界中,有一个神奇的存在 —— 无锁队列。它宛如一座坚固的桥梁,横跨在多线程协作的鸿沟之上,成为提升程序性能和稳定性的关键角色。随着计算机硬件的不断发展,多核处理器已经成为主流。多线程编程由此变得愈发重要,然而,传统基于锁的同步机制却逐渐暴露出诸多问题。在这一背景下,无锁队列应运而生,它宛如黑暗中的灯塔,为多线程程序的高效运行照亮了前行的道路。想象一下,在一个繁忙的交通枢纽,传统的锁机制就像是交通管制中的红绿灯,虽然能维持秩序,但频繁的等待和切换也会造成拥堵。

2024-11-12 10:54:57 1959 1

原创 MNIST数据集下载与保存为图片格式

解压后,使用以下脚本导出图片。导出的png格式图片保存在。

2024-11-06 16:10:08 434

原创 TensorRT端测模型TensorFormat输入输出格式详解

相信很多刚入门从事端测模型部署的输入输出格式存在和我一样的困惑,参见这个文件中TensorFormat类以kHWC8举例//!//!//!//!//!//!kHWC8 = 2,根据描述,解释如下:内存布局的维度顺序为 [N][H][W][(C+7)/8*8],即先按批量大小 N 分组,然后按高度 H 和宽度 W 排列,最后按照每个通道数 C 被 8 整除后加 7 再向上取整后乘以 8 来确定内存大小。在内存中,张量的坐标 (n, c, h, w) 对应于数组下标 [n][h][w][c]。

2024-10-31 11:40:31 789

原创 NVIDIA TensorRT开发环境搭建教程

安装完NVIDIA Container Toolkit后,你应该能够使用–gpus all选项运行Docker容器,以使容器可以访问宿主机的GPU。如果安装正确,之前出现的错误应该不会再出现。请注意,安装和配置过程可能会根据你的具体系统环境(如Linux发行版)和你的NVIDIA GPU型号而有所不同。建议遵循最新的官方NVIDIA文档来完成安装和配置。

2024-10-30 14:30:04 1050

原创 模型量化之min-max对称量化算法实现详解

Tengine 是 OpenAILab 开源的优秀端侧深度学习推理框架,其核心主要由 C 语言实现,包裹的功能代码嵌套了 C++。量化是推理加速必不可少的优化环节,成熟的推理框架一般会把量化模块剥离出来形成独立的一套工具,如 Tengine、NCNN、昇腾、寒武纪都这么做,这主要是因为量化过程和硬件非强相关,解耦开来能干更多的事。min-max 和 kl 量化算法是硬件厂商适配推理引擎的基础和标配, 其中 kl 量化深受用户喜爱,如英伟达的 TensorRT 也正是采用了 kl 量化策略;

2024-10-28 17:52:19 1619

原创 基于SOA架构someip开发

https://blog.youkuaiyun.com/liaochaoyun/article/details/129549817https://blog.youkuaiyun.com/liaochaoyun/article/details/129180551https://blog.youkuaiyun.com/xllhd100s/article/details/112798677

2024-10-09 16:31:26 310

原创 多模态开源大模型CogVLM2的部署和使用

CogVLM2 是由清华大学团队发布的新一代开源模型系列。2024年5月24日,发布了Int4版本模型,只需16GB显存即可进行推理。2024年5月20日,发布了基于llama3-8b的CogVLM2,性能与GPT-4V相当或更优。

2024-09-27 15:50:18 853

原创 大模型超详细解读汇总

https://zhuanlan.zhihu.com/p/625926419https://zhuanlan.zhihu.com/p/626163710

2024-09-04 16:20:10 201

原创 Python数据可视化神器pyecharts

百度开源了一个Echarts数据可视化库,支持绘制各种主流的图表。Python在数据分析方面是十分强大的,于是,pyecharts就应运而生了。pyecharts简介及安装pyecharts继承了Echarts的优点,有如下特点:囊括了 30+ 种常见图表,应有尽有高度灵活的配置项,可轻松搭配出精美的图表多达 400+ 地图,为地理数据可视化提供强有力的支持简洁的 API 设计,使用如丝滑般流畅,支持链式调用详细内容可见:pyecharts官方文档。

2024-09-03 18:31:37 283

原创 三种相机模型总结(针孔、鱼眼、全景)

我们最常见的投影模型Perspective Projection Model描述的就是针孔相机的成像原理。从上面的图根据相似三角形可以得出参考链接 https://zhuanlan.zhihu.com/p/540969207。

2024-08-21 16:23:17 587

原创 RGB与YUV格式详解

在图像的世界里,一般使用RGB作为存储格式。而在视频的世界里,一般使用YUV作为压缩存储格式。有时候面试官会问:为什么视频使用YUV来压缩存储,而不用RGB?YUV与RGB有什么区别,两者如何转换的?常见的RGB格式有哪些,常见的YUV格式又有哪些?手机摄像头的预览格式是什么,如何转换为YUV420P的?我们带着这些问题,来揭开RGB与YUV格式的面纱。

2024-08-20 16:11:54 4600 2

原创 开源软件YUView的使用和编译

经常做音视频相关的开发都知道,经常需要查看yuv文件,rgb这类原始图片数据文件,所以非常需要一个好用的软件,而且支持ubuntu等linux系统的,这里极力推荐YUView这个开源的软件,有源码可以自己进行编译使用。

2024-08-20 14:20:14 972

原创 高效的PNG编码与解码库LodePNG

它提供了无损PNG图片的编码和解码功能,并以简单、高效和高度灵活的设计而受到开发者们的欢迎。总之,无论你是初次接触图像处理,还是正在寻找一个新的PNG库,LodePNG都值得一试。其简洁高效的设计和丰富的功能,无疑会为你的项目增添一份色彩。项目中的示例程序是很好的入门指南,可以帮助你快速理解如何进行PNG的读写和颜色转换等操作。嵌入式系统:对于内存有限或者计算能力有限的环境,LodePNG的简洁性和效率显得尤为重要。游戏开发:需要轻量级且高效的图像资源管理时,LodePNG是一个不错的选择。

2024-08-13 10:25:50 526

原创 CUDA编程之grid和block详解

然而,GPU硬件是专门设计来支持这种并行计算模型的,所以虽然线程在物理硬件上可能不是独立存在的,但是它们通过硬件架构和调度机制得到了有效的支持。总体来说,这两行代码定义了内核的执行配置,将整个计算空间划分为2个block,每个block包含4个线程。因此,整个执行配置定义了2x2的grid,其中包括4个2x2的block,总共16个线程。你可以将grid视为三维数组,其中x方向有2个元素,y方向有2个元素,z方向有2个元素。整体布局可以视为8个3x4x2的block,排列为2x2x2的grid。

2024-07-29 15:05:56 2022 2

原创 Python游戏脚本开发之大漠插件

大漠插件是集前后台,文字识别,图色,键鼠,窗口,内存,DX,Call等功能于一身的综合插件, 作者开发维护多年, 现在常见的自动化软件多依赖此插件实现.

2024-07-01 14:10:07 3461 1

原创 汇编程序入门指南

对比英语的祈使句 Give me money 和汇编语言的语句,就可以看出在英语的祈使句中,一 开头放置了一个表示“做什么”的动词,这个动词就相当于汇编语言中的操作码。原因就是机器语言是一堆的0和1的组合,但是每个组合都是有特定的含义的指令或数据,所以对人来说,如果只看0和1的话很难判断出各个组合都表示什么。学习汇编语言,能让你更深刻的理解计算机的运行机制和原理,使你犹如拨云见日, 找到长期困惑着自己的问题的答案,不仅能因“我能看懂程序了”而获得成就感,更能因发现“计算机原来很简单啊”而信心倍增。

2024-06-20 16:06:23 642

原创 彻底卸载Ubuntu双系统

我们卸载Ubuntu双系统,可能出于以下原因:1、Ubuntu系统内核损坏无法正常进入2、Ubuntu系统分配空间不足,直接扩区较为复杂3、以后不再使用Ubuntu,清理留出空间无论出于哪种原因,我们都是要卸载干净它。下面教大家如何将Ubuntu系统卸载干净,让电脑磁盘重新回到安装前的清爽状态。我的电脑现状是联想拯救者Y7000 512G固态硬盘 Ubuntu18.04 Win10。

2024-06-19 14:10:08 13511 2

原创 YUV格式与RGB格式详解

像素格式描述了像素数据存储所用的格式,定义了像素在内存中的编码方式。RGB 和 YUV 为两种经常使用的像素格式。/ 1024 / 1024 = 2.63 MB 存储空间。RGB 和 RGBA 格式RGB 图像具有三个通道 R、G、B,分别对应红、绿、蓝三个分量,由三个分量的值决定颜色,一般也叫做 RGB24;RGBA 是 RGB 图像加一个通道 alpha,即透明度,于是共有四个分量共同控制颜色,一般也叫做 RGB32。

2024-06-14 17:02:54 1329

原创 NVIDIA MPS详解

MPS多进程服务(Multi-Process Scheduling)是CUDA应用程序编程接口(API)的替代二进制兼容实现。从Kepler的GP10架构开始,NVIDIA就引入了MPS(基于软件的多进程服务),这种技术在当时实际上是称为HyperQ ,允许多个 流(stream)或者CPU的进程同时向GPU发射Kernel函数,结合为一个单一应用程序的上下文在GPU上运行,从而实现更好的GPU利用率。在单个进程的任务处理,对GPU利用率不高的情况下是非常有用的。

2024-06-13 15:54:09 2545

空空如也

空空如也

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

TA关注的人

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