- 博客(145)
- 资源 (2)
- 收藏
- 关注
原创 NanoTrack原理与转tensorrt推理
NanoTrack 是一种轻量级且高效的目标跟踪算法,基于Siamese网络架构,旨在在资源受限的设备(如无人机、嵌入式系统等)上实现实时且精确的目标跟踪。随着计算机视觉领域的快速发展,传统的目标跟踪算法(如KCF等)逐渐暴露出在复杂场景中的局限性,特别是在处理目标的尺度变化、遮挡和背景复杂时,性能难以保证。本文档将详细介绍 NanoTrack 的模型结构以帮助读者更好地理解并应用该算法,同时对比pt、onnx、tensorrt进行推理的耗时情况。
2024-10-24 08:52:57 786
原创 OpenPCDet 训练自己的数据集详细教程!
这些天一直在尝试通过OpenPCDet平台训练自己的数据集(非kitti格式),好在最后终于跑通了,特此记录一下训练过程。树和猫,对于自定义数据集的训练我们交流了很多,之前他是通过我写的yolov5系列文章关注的我,现在我通过OpenPCDet 训练自己的数据集系列关注了他,着实让我感觉到了技术分享是一个圈。如果阅读本文对你有用,欢迎一键三连呀!!!2022年10月24日11:12:53。
2022-10-24 11:14:58 18785 169
原创 yolov5模型部署:Triton服务器+TensorRT模型加速(基于Jetson平台)
系列文章目录yolov5 win10 CPU与GPU环境搭建,亲测有效!yolov5训练自己的数据集,详细教程!yolov5转tensorrt模型Jetson调用triton inference server详细笔记Jetson下Triton部署yolov5的trt目标检测系统文章目录系列文章目录前言一、建立triton模型库1.1config文件编写1.2文件配置二、启动triton服务三、启动客户端测试图片测试视频总结前言在完成yolov5环境搭建,训练自己的模型,以及将yolov
2021-08-24 15:55:28 7151 45
原创 Jetson调用triton inference server详细笔记
文章目录一、jetson安装triton-inference-server1.1 jtop命名行查看jetpack版本与其他信息1.2下载对应版本的安装包1.3解压刚刚下载的安装包,并进入到对应的bin目录下1.4尝试运行一下tritonserver二、运行triton-inference-server2.1下载相关文件包2.2 生成模型文件2.3启动tritonserver三、测试triton client demo3.1安装客户端依赖项3.2安装python 客户端库3.3运行onnx分类模型demo总
2021-08-12 20:30:09 4004 10
原创 yolov4训练自己的数据集,详细教程!
系列文章目录文章目录系列文章目录创建yolo-obj.cfg 配置文件一、pandas是什么?二、使用步骤1.引入库2.读入数据总结创建yolo-obj.cfg 配置文件将 yolov4-custom.cfg 中的内容复制到 yolo-obj.cfg里面,并做以下修改:一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas a
2021-03-29 11:52:30 7831 2
原创 win10下Opencv源码编译支持CUDA加速的Python环境,超级详细教程!
环境准备1 vs20152 anaconda+Python3.7.4+numpy3 cuda和cudnn环境(cuda10.0+cudnn7.6.5)4 cmake5 OpenCV4.5.0以及OpenCV-contrib4.5.0压缩包OpenCV4.5.0下载地址https://www.bzblog.online/opencv/opencv-4.5.0/OpenCV-contrib4.5.0下载地址:https://www.bzblog.online/opencv/opencv_co
2021-02-23 12:00:19 2418 2
原创 yolov5训练自己的数据集,详细教程!
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例
2021-01-16 14:54:50 5941 14
原创 yolov5 win10 CPU与GPU环境搭建,亲测有效!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码
2020-12-28 21:33:53 24252 55
原创 MaskRCNN可视化界面开发(PyQt5)
MaskRCNN可视化界面开发(PyQt5)笔者因毕设要求,需要对maskRCNN进行封装,制作一个可视化界面。先来展示下效果图:文章目录MaskRCNN可视化界面开发(PyQt5)前言一、PyQt5及Designer、Pyuic插件安装二、设计UI界面1.使用Qt Designer来设计界面2.按钮事件3.ui文件转py代码三、编写逻辑代码前言本文默认已经实现了MaskRCNN的训练和测试,现在测试的基础上加一个UI界面。本文使用PyQt5进行界面开发。提示:以下是本篇文章正文
2020-12-08 15:35:56 3772 30
原创 Linux操作系统
Linux 操作系统文章目录Linux 操作系统1. Linux操作系统认知1.1 操作系统(Operation System简称OS)1.2 Linux系统介绍1.3 文件系统1.4 Ubuntu使用2. Linux常用命令2.1 终端与命令行2.2 Linux常用命令2.2.1 帮助命令2.2.2 基础操作命令2.2.3 文件操作2.2.4 压缩解压2.2.5 权限管理2.2.6 显示展示命令2.2.7 其他命令3. Linux服务器环境3.1 vi编译器3.1.1 什么是vi3.1.2 学习目的3
2020-06-30 22:47:36 8346 1
原创 Jetson安装Python3.8 tensorrt库
Jetson安装Python3.8 tensorrt库,需要确保正确Python与TensorRT版本,你的编译环境与目标平台(ARM架构)一致,避免使用不兼容的x86_64编译配置。后续使用python调用tensorrt与cuda进行推理速度还是很快的,能够达到50帧,这在板端也是很炸裂的存在!!!如果阅读本文对你有用,欢迎一键三连呀!!!2024年8月9日12:23:36。
2024-08-09 12:25:23 836 4
原创 通过cmakelist生成与调用C++动态链接库
此前有写过用编译工具链直接通过命令行的方式生成与调用C++动态链接库的方法,本文记录下通过cmake来实现so的生成。通过cmake进行so编译还是比较简单的,主要是用生成so替换原来生成的可执行文件,然后对main.cpp进行配置,能够正确调用生成的so。这样我们就实现了通过cmakelist生成与调用C++动态链接库。如果阅读本文对你有用,欢迎一键三连呀!!!2024年5月14日16:25:40。
2024-05-14 16:26:14 2123 1
原创 海思3559 yolov5 wk模型部署笔记
本文记录海思3559 yolov5 wk模型部署的具体过程,成功生成了可执行文件,后面就可以在板端进行运行测试!!
2024-02-22 17:33:17 1635
原创 海思3559 yolov5模型转wk详细笔记
目前项目需要在海思3559上开发,但查了相关文档,感觉还是比较复杂的。相比于3403、3519的使用atc工具直接从onnx->om,3559需要从onnx->caffer->wk则显得复杂许多,特此记录一下。海思3559是早些年的芯片,因此在模型转换的方式上相比于3403、3519的使用atc工具直接从onnx->om,3559需要从onnx->caffer->wk则显得稍显复杂。本文记录了yolov5模型由pt->onnx->caffe->wk的过程,希望对读者有所帮助。
2024-01-18 17:08:36 2624 1
原创 剑指Offer 队列&栈题目集合
时间复杂度:在最坏情况下,pop 操作的时间复杂度是 O(n),但在平均情况下,当栈2中有元素时,pop 操作的时间复杂度是 O(1)。这是因为在平均情况下,元素不会每次都从栈1移动到栈2。总体而言,这个实现的 push 操作是 O(1),而 pop 操作的最坏情况下是 O(n),平均情况下是 O(1)。如果为空,则将栈 1 中的所有元素移到栈 2。使用两个栈来实现队列的功能。栈 1 用于存储入队的元素,而栈 2 用于存储出队的元素。空间复杂度: O(n),辅助栈的空间,最差的情况下两个栈共存储N个元素。
2023-12-22 10:38:45 581
原创 剑指Offer 链表题目集合
采用双指针迭代,在遍历链表时,将当前节点的next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。我的第一想法是可以遍历链表,将每个节点的值存入数组中,然后将数组进行反转。空间复杂度:O(n)。额外使用一个数组存储链表中的每个节点。时间复杂度:O(n)。时间复杂度:O(n),正向遍历一遍链表。空间复杂度:O(1),常数空间复杂度。
2023-12-06 17:56:51 575
原创 目标检测中的损失函数:IOU_Loss、GIOU_Loss、DIOU_Loss和CIOU_Loss
之前在项目中存在目标检测框内嵌的情况(目标检测框存在内嵌情况分析与解决),正好趁这个机会记录下目标检测中常用的几种IOU_loss函数。IOU_Loss作为传统的衡量标准,为我们提供了一个基础,而GIOU_Loss、DIOU_Loss和CIOU_Loss则在其基础上引入了更多的信息,如目标框的形状和相对位置等,从而使得模型更加准确地学习目标的位置和形状。!!2023年12月4日20:03:02。
2023-12-04 20:04:16 3047
原创 昇腾Atlas 200I DK A2实现安全帽识别
本篇文章可以算是昇腾系列的一个入门样例,跑通了应该就能知道大概的操作流程,接下来应该又是一段难忘的开发心路历程,希望自己挺住!!!!!2023年11月24日14:55:12。
2023-11-24 14:56:59 1156
原创 目标检测框存在内嵌情况分析与解决
目标检测模型输出的检测框存在内嵌情况。,在推理性能足够的情况下,可以考虑使用。的信息,不用考虑影响因子,因此直接用。设置过大,没能滤除重叠检测框,原来。:在IOU和GIOU的基础上,考虑。标注框的信息,在训练时用于回归。有读者会有疑问,这里为什么不用。的基础上,添加的影响因子,包含。根据经验,第一感觉是后处理。:在DIOU的基础上,考虑。:在IOU的基础上,解决。目前分析最可能的原因是。但在测试过程中,并没有。此项目中用的是基本的。
2023-11-20 19:38:09 249
原创 光流法动目标检测
动目标检测是计算机视觉领域的一个热门研究方向。传统的方法主要基于背景建模,但这些方法对于光照变化、遮挡和噪声敏感。因此,研究人员一直在寻找更加鲁棒和有效的技术来解决这一问题。光流法是一种基于运动信息的动目标检测方法,它通过分析相邻帧之间的像素位移来捕捉物体的运动。这种方法可以在不需要显式背景建模的情况下实现动目标检测。。光流是指描述相邻图像帧中像素位移的矢量场。在光流法中,假设相邻帧之间的像素强度保持不变,即一个像素点在两帧之间的运动可以由一个矢量表示。这个矢量可以表示物体的速度和方向。
2023-10-24 09:00:00 1408
原创 Cmake入门介绍
在软件开发过程中,构建和管理项目是至关重要的任务之一。CMake是一个流行的构建工具,它可以帮助开发者跨不同平台和编译器构建和管理C/C++项目。本文将介绍CMake的基本概念以及如何使用它来简化项目的构建过程。CMake是一个开源的构建工具,用于自动化构建过程。它不直接构建项目,而是生成适用于不同编译器和操作系统的构建脚本,如Makefile、Visual Studio项目文件等。这使得开发者能够轻松地在不同平台上构建他们的项目。
2023-10-06 20:17:17 404
原创 C++手写NMS
目标检测模型推理后,一般都需要进行NMS操作进行多余框去重,板端部署一般不用opencv自带的NMS,所以记录下手写NMS的代码。NMS通常用于目标检测中,以去除重叠的检测结果,只保留最具代表性的结果,以提高检测的准确性。!!2023年9月27日15:58:10。
2023-09-27 15:59:50 1166 1
原创 模型推理后处理C++代码优化案例
这些条件判断可能会增加运行时间。确保这些条件判断是必要的,如果可能的话,尽量减少不必要的条件判断。这将涉及内存的重新分配和数据复制。为了避免这种开销,可以直接在循环中访问。本文是自己项目中遇到的实际问题,由于刚刚上手C++相关的项目,特此记录!可以将这些计算移动到条件判断的外部,以避免重复计算。模型推理后得到的数据后处理操作之前时间开销很大。2023年9月9日15:33:36。经过推理的后处理运行时间的优化。: 在循环中有一些条件判断,例如。C++任重而道远呀,加油呀!数组,而无需使用额外的向量。
2023-09-09 15:35:08 414
原创 生成与调用C++动态链接库(so文件)
动态链接库是代码重用和模块化的重要工具,它使得将功能封装为独立的库更加容易,同时还可以动态加载和升级这些库,提高了程序的灵活性和可维护性。当我们希望将C++源码编译成动态链接库,并在其他应用程序中调用这个动态链接库,是这篇文章的应用场景。这篇文档将介绍如何创建、编译、链接和调用C++动态链接库。PS:本文以下内容根据我实际工作项目编写,不采用demo的形式。本文介绍了如何制作C++动态链接库(so文件)以及如何从另一个C++程序中加载和调用该库。
2023-09-05 14:26:31 7779 1
原创 opencv动态目标检测
很久没更新文章了,这次因为工作场景需要检测动态目标,特此记录一下。这段代码演示了背景减除方法在移动目标检测中的应用,通过检测前景目标并在特定区域内绘制边界框,可以用于一些简单的运动分析和目标跟踪应用。
2023-08-09 17:16:51 3315 1
原创 Open3D实时点云显示
一般情况我们通过open3d中的进行点云可视化,但这个函数会锁定一个进程直到可视化的窗口被关闭,才会继续渲染下一帧点云图像,无法做到点云持续的动态显示。本文介绍了一个自定义渲染循环的教程。这里整体思想是按名称读取文件然后送入队列中,使用多线程进行点云显示,当文件读完之后,重新开始读取。读者可以根据自己的数据情况修改,已完成实时点云显示。如果阅读本文对你有用,欢迎一键三连呀!!!2022年11月18日15:38:30。
2022-11-18 15:41:25 4599
原创 Triton推理服务器吞吐量测试
性能分析器是优化模型性能的重要工具,决定如何在单个 GPU 上最好地运行多个模型。除了启用模型实例,还是可以设置启用动态批处理器,这两项也可以同时启用,可以根据自己的配置进行设置比较。通过模型分析器部分介绍了一种工具,可帮助我们了解模型的GPU 内存利用率,以便决定如何在单个 GPU 上最好地运行多个模型。如果阅读本文对你有用,欢迎一键三连呀!!!2022年9月15日20:12:35。
2022-09-15 20:14:17 1879 2
原创 Ubuntu18.04安装OpenPCDet:spconv一键安装
最近在摸索点云数据的处理,希望实现对点云数据的目标检测。但是在复现算法时遇到很多坑,特此记录一下。不建议在windows环境下测试程序,笔者自己测试下,windows总会遇到奇奇怪怪的报错。本次环境安装前前后后搞了两天,但最后还是跑出了点云的目标检测算法的demo,结果还算是好的。httpshttps如果阅读本文对你有用,欢迎一键三连呀!!!2022年7月21日163041httpshttpshttpshttpshttps。.........
2022-07-21 16:31:18 1592
原创 python配置文件的两种方式
在运行项目程序时通常会有一个配置文件,配置文件是用于配置程序的参数和初始化设置的文件。比如现在要做一个项目,在部署程序时,需要摄像头IP地址、数据库地址、数据库名称,这些都可以作为配置项写入配置文件。当程序实地部署时,只需要修改配置文件,不需要去代码当中到处查找修改。本文以下配置内容以配置多个摄像头为例。新建一个文件,将程序运行所需的摄像头参数写入一个类中。测试代码:yaml文件作为配置文件首先需要安装相应的包yaml支持的数据结构有3种:对象:对象的一组键值,使用冒号表示(注意:编写的时候最好冒
2022-07-12 10:12:22 2892
原创 实现对python源码加密的方法
由于项目的保密性需求,对已开发完成的项目需要进行加密处理,本文给出两种方法。加密py代码,虽然编译为pyc作用不大(很容易被反编译出来源码),但还是有一定加密的效果,如果项目比较时间紧,可以用此方法应急处理。该命令会把目录下的py文件都会生成相应的pyc文件然后执行以下命令,删除掉py文件,只保留pyc文件最后执行运行pyc文件就可以了如:注意:此方法加密与使用的python版本要一致,否则会报错。即运行与的版本要保持一致。2.2新建py2so.py文件填写如下内容:2.3编译项目文件夹运
2022-07-01 09:10:37 4906
原创 Ubuntu安装cuda与cudnn,亲测可用
前段时间被派到现场去部署算法,之前同事搭好的环境不好用了,具体表现为:1.屏幕的分辨率显示很奇怪且不可调节2.输入命令,显示错误不得以在现场重装了、与,故以本文记之。这里介绍笔者感觉比较方便的一种方法在终端输入:,得到有关本机显卡其驱动的相关信息,如图所示(因为本地服务器已经安装了驱动,这里笔者通过SSH只做过程演示):可以看到为推荐版本,如果你认可推荐版本,那只需要输入 就可以自动安装了;如果你想安装,只需输入便可安装了,当然也可以通过此命令安装推荐的版本。若 安装失败可以通过尝试安装,即。
2022-06-02 18:03:35 21646 18
原创 Ubuntu中docker部署gpu版pytorch
文章目录docker简介安装docker与NVIDIA-docker安装docke安装NVIDIA-docker安装显卡驱动拉取pytorch GPU版镜像文件运行pytoch容器总结docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。作为一种轻量级的虚拟化方式, Docker在运行应用上跟传统的虚拟机方式相比具有显著优势:Docker容器很快, 启动
2022-05-04 21:35:13 1933 1
原创 基于yolov5与Deep Sort的流量统计与轨迹跟踪
系列文章目录目标跟踪——SORT算法原理浅析目标跟踪——Deep Sort算法原理浅析基于yolov5与Deep Sort的流量统计与轨迹跟踪文章目录系列文章目录前言一、整体目录结构二、Deep Sort代码参数解释三、代码展示总结前言先来看下实现效果:上图展示了用yolov5作为检测器,Deep Sort为追踪器实现了对车流量的统计并绘制了每辆车的运行轨迹。一、整体目录结构下图展示了项目的整体目录结构:其中:deep_sort文件下为目标跟踪相关代码;weights文件夹
2022-04-15 10:05:20 16982 89
原创 目标跟踪——Deep Sort算法原理浅析
目标跟踪文章目录目标跟踪——SORT算法原理浅析目标跟踪——DeepSort算法原理浅析文章目录目标跟踪文章目录前言多目标跟踪主要流程DeepSort总结前言背景:DeepSort是基于Sort目标跟踪进行的改进,它引入深度学习模型,在实时目标跟踪过程中,提取目标的外观特征进行最近邻近匹配。目的:改善有遮挡情况下的目标追踪效果;同时,也减少了目标ID跳变的问题。核心思想:使用递归的卡尔曼滤波和逐帧的匈牙利数据关联。多目标跟踪主要流程给定视频原始帧。运行目标检测器如Faster
2022-04-07 11:50:35 11405
原创 目标跟踪——SORT算法原理浅析
目标跟踪文章目录目标跟踪——SORT算法原理浅析文章目录目标跟踪文章目录SORT算法卡尔曼滤波匈牙利算法SORT核心算法流程总结SORT算法Simple Online and Realtime Tracking(SORT)是一个非常简单、有效、实用的多目标跟踪算法。在SORT中,仅仅通过IOU来进行匹配虽然速度非常快,但是ID switch依然非常严重。SORT最大特点是基于Faster R-CNN的目标检测方法,并利用卡尔曼滤波算法与匈牙利算法,极大提高了多目标跟踪的速度。SORT算法核心
2022-03-30 14:51:56 12596 4
Linux.html
2020-06-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人