- 博客(200)
- 收藏
- 关注
原创 RKNN执行bash ./build-linux_RK3566_RK3568.sh 报错
usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld:/home/zyk/RKnn3568模型部署/rknpu2-master/rknpu2-make[2]: *** [CMakeFiles/rknn_yolov5_video_demo.dir/build.make:181:rknn_yolov5_video_demo] 错误 1。make: *** [Makefile:136:all] 错误。
2024-07-22 09:39:35
232
原创 手把手教你发布可执行文件
大家都知道Python代码的运行需要解释器。如果别人是一个非IT人士,使用这样的工具,就太麻烦了。如果我们能直接让别人直接双击运行我们的程序就好了。有没有这样的好事?有!有几款工具可以把 解释器、Python 代码 和 依赖的库 制作到一个目录中,我们只需要双击其中的 可执行程序,就可以运行我们的Python程序了。其中 PyInstaller 是目前比较常用的一款。PyInstaller 支持 Python 2.7 和 Python 3.3 以后的版本。
2024-07-21 13:21:38
15
原创 基于YOLOv8的OpenCV部署(C++)
导出onnx格式模型的时候,注意,如果你是自己训练的模型,只需要把以下代码中yolov8s.pt修改为自己的模型即可,如best.pt。如果是下面代码中默认的模型,并且你没有下载到本地,系统会自动下载,我这里在文章末尾提供了下载链接。和windows都可以,下面以windows为例子。注:运行代码需要onnx模型 + 一张图,,classes.txt不需要。输出如下图信息,表明onnx格式的模型被成功导出,保存在my_export.py同一级目录。将以下代码创建、拷贝到yolov8根目录下。
2024-07-21 13:20:59
13
原创 ubuntu22.04部署YOLOv5可执行文件(文件夹打包版)
PyInstaller 是一个跨平台的命令行工具,它能够将 Python 程序打包成可执行文件(在 Windows 上是.exe文件,在 macOS 上是.app文件,在 Linux 上是无扩展名的可执行文件),使得Python程序可以脱离 Python 解释器独立运行。PyInstaller 处理程序的依赖项,将它们一起打包,并且可以创建图形用户界面(GUI)应用程序或控制台应用程序。使用 PyInstaller 打包应用程序可以简化部署过程,使得用户无需安装 Python 或其他依赖项即可运行程序。
2024-07-21 13:20:18
514
原创 VSCode 超实用插件分享
提供了一种通过输入路径来跳转到文件和文件夹的简单而快速的方法,对于那些想要快速导航项目的人来说,它是一个很好的工具。GitLens 对于使用 Git 的开发人员来说是一个很好的工具,它提供了一种快速而直接的方法来查看和导航仓库、查看提交之间的更改以及查看信息。可以快速隐藏和显示代码块,使其成为保持代码井然有序且整洁的绝佳选择。,提供了一种快速、简单的方法来管理和部署 Docker 容器,快速搭建应用程序,让项目秒启动!用 ENV 管理环境变量,快速创建、编辑和管理环境变量,让变量井井有条!
2024-07-20 09:47:47
883
原创 Windows部署之pyinstaller 打包yolov5和deepsort项目 问题总结Windows
报错(合集)本人遇到过的对于yolo 一般需要导入.pt 和.yaml 文件,路径是根据打包前代码里的相对路径,因此需要在main.exe同级文件夹下,创建一个相同文件目录的文件夹,并将需要的文件放入,deepsor需要的文件同理, 不要使用绝对路径一般是因为直接将包含yolo模块的文件直接嵌入项目,然后内部的models文件夹和utils文件夹里的from,import 报错。
2024-07-20 08:42:40
515
原创 pyinstaller打包后找不到.pyc文件,例如:FileNotFoundError: [WinError 3] 系统找不到指定的路径。: ‘C:\\xx\\torch_utils.pyc‘
使用pyinstaller打包python项目后,运行dist里的.exe文件,提示如下错误说找不到utils文件夹里的torch_utils.pyc。
2024-07-20 08:41:54
10
原创 手把手教你socket编程
上面的例子中,我们发送的消息就是要传递的内容。比如字符串你好,我是小明。实际上,我们在企业中开发的程序通讯,消息往往是有格式定义的。消息的格式定义可以归入 OSI网络模型的表示层。比如: 定义的消息包括 消息头 和 消息体。消息头存放消息的格式数据, 比如 消息的长度、类型、状态等等, 而消息体存放具体的传送数据。对于使用TCP协议传输信息的程序来说,格式定义一定要明确规定消息的边界。因为 TCP协议传输的是字节流(bytes stream)
2024-07-20 08:41:30
13
原创 手把手教你UDP Socket 编程
UDP (User Datagram Protocol) 中文称之为 用户数据报协议, 和TCP一样,也是一种传输层协议。它是一种无连接 协议也就是说:无需事先建立虚拟连接,可以直接给对方地址发送消息。通信方的地址也是由 IP地址 和 端口号构成。所以相比 TCP协议,它更加简单快捷。没有消息可靠性保证UDP传输的消息如果在网络上丢失了,就丢失了。UDP协议本身没有重传机制。而TCP协议底层有消息验证是否到达,如果丢失,发送方会重传的机制。
2024-07-20 08:40:57
9
原创 YOLOv8改进RepGhostNeXt结构,基于重参数化结构,实现硬件高效的RepGhost 模块
为了通过重新参数化利用功能重用,本小节介绍 Ghost 模块如何演变为我们的 RepGhost 模块。如图3所示,我们从图3a中的 Ghost 模块开始,逐步调整内部组件。首先在ultralytics/nn/modules文件夹下,创建一个repghostnext.py文件,新增以下代码。原论文: https://arxiv.org/pdf/2211.06088.pdf。.py中导入 定义在repghostnext.py里面的模块。在ultralytics/nn/modules/
2024-07-20 08:37:21
14
原创 手把手教你SSH 远程操作
Python第三方库 Paramiko 就是作为ssh客户端远程控制Linux主机 的。我们可以执行下面的命令或者使用国内清华大学的源要学习自动化操作远程Linux, 首先当然要有一台Linux主机可以安装VirtualBox虚拟机,在里面安装Linux系统。参考我们的教程有了Linux主机后,登录进去查看一下IP地址。本文假设你的Linux主机IP地址是,用户名为 byhy,密码为 byhy5200接下来,我们就可以使用Paramiko库,执行代码自动化连接,执行命令,就像人工操作一样。
2024-07-20 08:36:31
278
原创 onnx模型部署:onnxruntime-gpu安装与测试(Python版)
在 conda 环境中安装,不依赖于 本地主机 上已安装的 cuda 和 cudnn 版本,灵活方便。要注意:onnxruntime-gpu, cuda, cudnn三者的版本要对应,否则会报错 或 不能使用GPU推理。如果需要其他的版本, 可以根据 onnxruntime-gpu, cuda, cudnn 三者对应关系自行组合测试。想要 onnx 模型在 GPU 上加速推理,需要安装 onnxruntime-gpu。不依赖于 本地主机 上已安装的 cuda 和 cudnn 版本。
2024-07-20 08:36:06
34
原创 使用python调用dll库
Python数据对象和C语言的数据对象的对应关系见 https://docs.python.org/3/library/ctypes.html#fundamental-data-types。动态链接库,在不同的操作系统(Windows、Linux),文件格式不同,但是python调用它们的 方法都差不多。实际上,底层的ctypes库调用c语言库,不能直接传递python对象的,需要转化为c语言接口对应的类型。有大量优秀的库,直接以本地库(机器代码)提供的,这些库基本都是c/c++语言 编写的。
2024-07-20 08:33:16
660
原创 Ubuntu 22.04安装Visual Studio Code(VS Code)配置C++,Python
在首页的左侧有两个蓝色的按钮,点击左边的按钮,下载.deb格式的安装包,下载完成后得到如下文件。
2024-07-20 08:32:32
652
原创 ONNXRuntime与CUDA版本对应
onnxruntime-gpu版本可以说是一个非常简单易用的框架,因为通常用pytorch训练的模型,在部署时,会首先转换成onnx,而onnxruntime和onnx又是有着同一个爸爸,无疑,在op的支持上肯定是最好的。通常在安装onnxruntime时,需要将其版本与pytorch版本和CUDA版本进行对应,其中ONNXRuntime与CUDA版本对应关系表如下表所示。选好版本后,使用以下命令进行安装onnxruntime。
2024-07-20 08:32:06
205
原创 YOLOv5调用摄像头报错:TypeError: argument of type ‘int‘ is not iterable
后想测试一下调用笔记本摄像头,网上的教程是通过修改detect.py文件来实现的。修改dataset.py文件。
2024-07-20 08:31:38
139
原创 Ubuntu22.04系统部署之打包YOLOv8可执行文件
文件,在 Linux 上是无扩展名的可执行文件),使得Python程序可以脱离 Python 解释器独立运行。PyInstaller 处理程序的依赖项,将它们一起打包,并且可以创建图形用户界面(GUI)应用程序或控制台应用程序。PyInstaller 是一个跨平台的命令行工具,它能够将 Python 程序打包成可执行文件(在 Windows 上是。如果不使用此选项,PyInstaller 会创建一个包含依赖文件的文件夹。: 当 PyInstaller 询问是否覆盖之前生成的文件时,自动回答“是”。
2024-07-20 06:30:00
16
原创 Windows部署基于TensorRT的(YOLOv5)实现(Python版)
解压完成之后,将这这三个文件夹中的内容,粘贴到CUDA安装目录下的同名目录下。安装pycuda,直接pip 可能和CUDA以及python版本不对应。现在作为通用的中间格式,已经支持许多格式的算子映射,测试cudnn是否安装成功,如果抛出pass就正常。表示稳定版,经过全面测试。目录下,因此后续还需要为此新建一个环境变量。文件夹不能直接复制合并,因为它里边的文件。的版本可能会报错,因为默认都是最新,亲测。格式的转换,也是采用的第二种方式。在运行上面代码之前,还得在。格式有两种方式,一种是。
2024-07-20 06:00:00
731
原创 ubuntu22.04,瑞芯微RK3568部署YOLOv5(纯干货版)
在Anaconda的yolov5,进入yolov5根目录,终端运行如下若出现模块不存在的情况,只需要按照requirements.txt安装即可。
2024-07-20 05:30:00
17
原创 Ubuntu22.04配置opencv
使用make或者make -j4,make -j8 , make -12,来编译,j后面这个数字时调用多线程进行编译,请根据自己的电脑性能选择,否则容易报错。此处只是选择部分opencv的依赖项,因为opencv的依赖项很多,部分依赖项也不一定用得上。解压完发现opencv是一个cmake工程,里面有CMakeList.txt,因此需要cmake生成Makefile,执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加。.5.4版本,可以直接下载.zip文件,可以选择其他版本。
2024-07-19 17:36:31
603
原创 rk3588部署yolov8视频目标检测教程
因为我使用的自定义数据集,我是基于VisDrone数据加上了自己的数据制作的训练集,所以加载的是改造后的VisDrone.yaml文件 数据的转换这里不仔细写了,以后空了我再补充在这里,但是需要注意的是,我是二分类,所以需要修改两处地方,否则训练出来的模型是不正确的。其中BUILD_SHARED_LIBS表示是否编译为动态库,我关闭后,变成静态库,使用的时候一直报错,所以我还是使用的动态库去链接,有懂的大佬请指教一下。
2024-07-19 17:17:29
789
原创 手把手教你调试程序Python版
设置断点就是 设置某些代码行位置,当 程序运行 到这些位置,就会暂停执行。我们在程序运行过程中, 查看某个变量的值,必须要让运行的程序能停在相应的位置。
2024-07-19 17:16:25
761
原创 基于YOLOv8的OpenCV部署
导出onnx格式模型的时候,注意,如果你是自己训练的模型,只需要把以下代码中yolov8n.pt修改为自己的模型即可,如best.pt。如果是下面代码中默认的模型,并且你没有下载到本地,系统会自动下载,我这里在文章末尾提供了下载链接。在章节一中,安装了ultralytics的时候,默认安装了opencv-python4.8.0.74,所以推理的时候可以直接利用这个python环境。输出如下图信息,表明onnx格式的模型被成功导出,保存在my_export.py同一级目录。
2024-07-19 11:23:01
13
原创 Win11的YOLOv5 OpenCV部署
注:YOLOv5-5.0版本export.py不成功,本人用6.0版本成功。3.计算该框与其它框的IOU,去除掉重复的框,即IOU值大的框。1.删除置信度小于conf_thres的BOX。2.通过argmax获取置信度最大的类别。4.IOU小于thresh的框保留下来。将中心点坐标转换为左上角右下角坐标。2.计算相交面积(相交、不相交)3.分别对每个类别进行过滤。
2024-07-19 11:22:23
7
原创 入门篇,带你了解CPU, GPU, TPU, NPU, DPU
CPU是计算机系统的核心,负责执行操作系统和应用程序的指令。它由多个核心组成,每个核心可以独立执行任务。CPU的设计重点是处理复杂的逻辑运算和顺序任务,如分支预测、指令调度等。现代CPU通常包含多个层级的缓存(如L1、L2和L3缓存),以减少访问主存储器的延迟。CPU的架构设计如超标量(Superscalar)、乱序执行(Out-of-Order)和多线程(Multi-threading)等,都是为了提高其处理效率。
2024-07-19 10:37:00
50
原创 Ubuntu22.04版本的YOLOv8TensorRT模型部署
如何使用代码导出onnx文件。你将会的到例如:yolov8n.trt、yolov8s.trt、yolov8m.trt等文件。yaml是官方提供的配置文件,如果是自己训练的模型,那就设置为自定义yaml文件即可。
2024-07-19 10:35:10
2089
原创 ubuntu22.04下YOLOv5 TensorRT模型部署
如果您对tensorrt不是很熟悉,请务必保持下面库版本一致。请注意:以下库,务必去进入系统bios下,关闭安全启动(设置 secure boot 为 disable)
2024-07-19 10:32:44
420
原创 在 visual studio 共享和重用项目属性
在 visual studio 下开发项目时,通常会配置项目的属性,比如引入外部头文件,引入外部库之类的尤其是不同的开发模式,debug 和 release,不同的开发平台,x64 和 x86 等,配置的项目都是不共用的。这意味着每次切换不同的开发模式和平台,或者每次开启新项目(但项目属性一致)都要重新手动配置这些属性,这显然是不合理的。其实 visual studio 提供了共享和重用项目属性的方式,下面就来看看。
2024-06-17 21:11:39
87
原创 OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutI
主要是你的windows是64位的,但是使用命令pip install pyopengl后,执行示例默认使用的是pyopengl_32位的,所以出现了以上错误!
2024-06-15 17:20:54
388
原创 将ZED获取的视频格式svo转换成其他格式
视频格式是ZED的专属格式,实际应用中我们需要将该格式转化成其他可读的文件格式。根据上述指示执行转换命令,官网也有详细的视频转化教程(在指定文件夹中生成32位景深图和左图。在指定文件夹中生成16位景深图和左图。双击打开ZED的视频转化执行文件。在指定文件夹中生成左右图。
2024-06-15 14:16:28
153
原创 ZED双目相机环境配置
ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。
2024-06-15 13:24:35
730
原创 基于深度学习视觉算法的多模型文件融合检测系统设计与实现及优化(工人姿态检测+安全帽佩戴检测系统)
YOLOv5是目前应用广泛的目标检测算法之一,其主要结构分为两个部分:骨干网络和检测头。输入(Input): YOLOv5的输入是一张RGB图像,它可以具有不同的分辨率,但通常为416x416或512x512像素。这些图像被预处理和缩放为神经网络的输入大小。在训练过程中,可以使用数据增强技术对图像进行随机裁剪、缩放和翻转等操作,以增加数据的丰富性和多样性。Backbone(主干网络): 主干网络负责提取图像的特征表示,它是整个目标检测算法的核心组件。YOLOv5采用了CSPDarknet作为主干网络。
2024-06-13 16:22:46
992
原创 手把手教你MMDetection基准和模型汇总
毫无疑问,maskrcnn基准测试和mmdetection的存储效率比Detectron更高,主要优点是PyTorch本身。我们发现pytorch风格的ResNet通常比caffe风格的ResNet收敛慢,因此在1倍进度表中结果会略低,但2倍进度表的最终结果会更高。请注意,Caffe2和PyTorch具有不同的API,以通过不同的实现获取内存使用情况。我们使用AWS作为托管模型汇总的主要站点,并在阿里云上维护一面镜子。具有不同主干的更多模型将添加到模型汇总。显示的内存使用量都比上表中报告的数字大。
2024-06-04 18:37:34
158
原创 手把手教你双目测距理论及生成视差图,深度图,点云图像(附代码)
Stereo Vision, 也叫双目立体视觉,它的研究可以帮助我们更好的理解人类的双眼是如何进行深度感知的。双目视觉在许多领域得到了应用,例如城市三维重建、3D模型构建(如kinect fusion)、视角合成、3D跟踪、机器人导航(自动驾驶)、人类运动捕捉(Microsoft Kinect)等等。双目测距也属于双目立体视觉的一个应用领域,双目测距的基本原理主要是三角测量原理,即通过视差来判定物体的远近。
2024-06-04 17:12:19
881
原创 手把手教你改进YOLOv8小目标检测(多尺度特征融合iAFF)
提出了一种基于深度学习的轻量级对象检测模型,可以在低端边缘设备上运行,同时仍然具有竞争力的准确性。由一个两阶段的特征学习管道和一个便宜的线性变换组成,它只使用传统卷积神经网络所需的一半卷积滤波器来学习特征映射。此外,它使用注意机制在颈部进行多尺度特征融合,而不是传统检测器使用的单纯连接。可以很容易地按几个数量级放大或缩小,以适应广泛的硬件限制。我们在COCO-val和COCO-testdev数据集上与其他10多个最先进的目标检测器一起评估。
2024-06-04 16:19:39
1215
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人