自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在RK3588上运行YOLOv5,并利用九点标定法将图中识别到的坐标转换为现实空间的坐标

在计算机视觉中,单应性矩阵是一个3x3的矩阵,它描述了两个平面之间的相对位置关系。因为实际应用需要将识别结果的图片坐标转换为实际空间中的二维坐标,因此本文采用九点标定法对检测结果再进行一步处理。如图,这是一张640×640的图片,图中均匀的分布有九个点,我通过python实现一个简单的九点标定法坐标转换。再将这一部分代码移植到YOLOv5的C程序检测代码中,首先定义标定用的图片坐标集和实际坐标集以及映射矩阵。④当检测结果为图片中的某一坐标时,将坐标输入到映射矩阵中,得到输出的实际空间坐标。

2024-07-22 20:56:06 928

原创 用rknn-toolkit2_2.0.0在RK3588上部署YOLOv8

在运行推理代码之前,我们还需要更换板端的rknpu驱动库文件,我的rk3588是firefly出的,他们家的的SDK中rknpu目前只更新到了1.5.0,因此需要手动更新。rockchip官方为了将不同格式的神经网络模型文件转换为rk芯片支持的rknn格式而打包的python库项目,可以通过pip安装。推理代码我选择adb连板调试,我在之前的基础上做了一点修改,主要体现在输入的resize和输出坐标的转换上。以YOLOv8为例,路径。③这样的替换可以跑推理程序,完善的推理需要参照rknpu中的文档说明。

2024-07-16 17:32:32 1088

原创 嵌入式Linux学习笔记(六)点亮RK3588的LED

每个GPIO分为A、B、C、D四组,每组分为0~7号的IO口, 因此低32位DDR_L负责管理A、B两组GPIO的方向(0~15位控制A0~7、B0~7方向,16~31位负责控制0~15位的写数据使能)。所以,GPIO1_B3就是在GPIO1的基地址上对DDR_L的第10个bit进行控制,写1为输出,写0为输入。查找到GPIO1的基地址为0xFEC20000,控制GPIO方向(DDR)的偏移地址如下图,低32位偏移地址为0x0008,高32位偏移地址为0x000C。3.根据以上信息写驱动文件(伪代码)

2024-07-02 20:56:38 268

原创 评估运行在RK3588上的rknn模型(YOLOv8)

③自己写了一个脚本用于计算rknn模型运行在数据集的验证集上的map50,大致逻辑是在RK3588上把验证集的图片推理一遍,把推理的结果保存为文本文件,将文本文件复制到pc的yolov8文件夹下,与对应的labels文件计算每一张图片推理结果的AP,最后求平均值。要注意的是,map是对所有的目标求AP后求平均值,我的代码里是对每一张图片中的所有推理结果求出一个map,再将所有图片的结果加起来求平均值,因此如果每张图中的目标越少,计算得到的误差越小。

2024-06-26 17:23:58 264

原创 嵌入式Linux学习笔记(五)字符设备基础

一个设备号由主设备号和次设备号组成,主设备号用来表示某一类驱动,如鼠标、键盘属于USB驱动,而次设备号用于便是这个驱动下的各个设备,如第n个鼠标。静态分配设备号通过register_chrdev_region函数选择一个固定的设备号作为主设备号,可以使用“cat /proc/devices”查看哪些设备号已被占用。在编写字符设备驱动代码时,可以分为静态分配设备号和动态分配设备号,函数定义在include/linux/fs.h里。3.宏MKDEV用于将主设备号和次设备号醉成dev_v类型的设备号。

2024-06-04 19:56:27 700

原创 嵌入式Linux学习笔记(四)Linux驱动基础

block:存放了块设备相关代码,Linux中用block表示块设备,如硬盘、SD卡等。arch:架构相关部分,存放了许多CPU架构,如arm、x86、MIPS等。drivers:驱动目录,存放了Linux系统支持的硬件驱动源码。②modprobe命令,用它加载时,这个模块所依赖的模块也会被加载。fs:存放支持的文件系统代码,如ext2、ext3、fat等。第一种方法:将驱动放在Linux内核里,然后编译Linux内核。当加载驱动时,驱动加载函数会被内核自动执行。模块参数是模块被加载时传递给内核模块的值。

2024-05-30 17:59:18 819

原创 嵌入式Linux学习笔记(三)Linux系统编程

作用:①当一个进程不能再作出贡献时,可以使用exec函数使自己重生②如果一个进程想执行另一个程序,就可以调用exec函数使子进程重生。④使用动态库中的函数后,我们在编译时需要链接库。系统默认会在/lib或者/usr/lib中找库文件,或者在编译的时候指定库文件的路径。子进程结束以后,父进程还在运行,但父进程未释放进程控制块,这个子进程就叫僵尸进程,可以通过kill命令杀死。父进程结束后,子进程还未结束,这个子进程就叫孤儿进程,它会被系统的init进程“领养”。信号通信:信号的发送,信号的接收,信号的处理。

2024-05-29 22:43:22 655

原创 嵌入式Linux学习笔记(二)开发板SDK简介

单独编译kernel前,在kernel目录下用make menuconfig用可视化界面更改配置,用生成的.config文件./arch/arm64/configs/对应配置文件,然后再使用单独编译命令编译uboot,生成的resource.img为设备树镜像,boot.img为内核镜像(包含设备树镜像)device/rockchip:存放每个平台编译打包的固件的脚本和预备文件。buildroot:基于buildroot开发的根文件系统。u-boot:u-boot源码目录。build.sh:编译脚本。

2024-05-28 21:47:04 203

原创 嵌入式Linux学习笔记(一)

例:-rwxrw-r-- 第一个字符表示文件类型;r-可读,w-可写,x-可执行。tar:压缩命令,参数-z(后缀为tar.gz)-j(后缀为tar.bz2)-c(压缩)-x(解压缩)-f(表示要操作的文件)-v(显示处理文件)-C(指定路径)硬链接-将一个文件节点连接到一个已有的inode,不为它重新分配新inode;一般模式下,gg-定位到第一行,G-定位到最后一行,xgg-定位到第x行。/usr/share、/usrshare:用户共享文件。/lib、/lib64:各种程序需要的库文件和支持文件。

2024-05-27 22:08:28 265

原创 从YOLOV8检测头开始,对YOLOV8的一些理解

网络中最常用到的卷积模块,由卷积层、Batch Normalization层、激活函数层(可替换)组成,输入参数含义为(输入通道数-c1, 输出通道-c2, 卷积核大小-k, 卷积核步长-s),其中主要参数都传入了模块中的卷积层,BN层只接收c2作为参数,激活函数层不需要参数。YOLOV8的检测头分为3个,分别以上图网络的最后3个C2f层的输出作为输入,而YOLOV8的检测头参数量大幅增加的原因是YOLOV8采用了解耦头,分为Cls分类、Box回归两个分支,并去除了Obj loss的计算分支。

2024-03-26 11:13:03 2974 3

原创 roLabelImg标注旋转目标数据集,经格式转换后用yolov8-obb训练

label文件格式转换的逻辑是:先将格式转换为obb检测通用数据集DOTA数据集(类似COCO数据集在目标检测的地位)的xml格式,再转换为txt形式的DOTA数据集格式再通过yolov8中自带的转换脚本,将DOTA数据集格式转换为yolov8的txt格式。运行之后,在DOTA txt格式标签文件的文件夹中会产生train和val两个文件夹,里面存放了转换好的yolov8格式标签文件,形式如下。1、利用这个脚本可以将数据集转换为DOTA数据集的xml格式和txt格式,并分别存入相应文件夹。

2024-03-23 11:17:56 1615 17

原创 RK3588开发板编译GSTREAMER支持的OPENCV(4.7.0)库

编译的opencv库没有安装gstreamer支持,近期买了一个mipi摄像头安装在开发板进行研究,因为看到gstreamer为视频流硬解码,对视频的延时较少,所以决定重新编译一版支持gstreamer的opencv库。的教程再次编译opencv库,然后就可以看到gstreamer支持从NO变成YES了。的方法安装gstreamer库,在按照。

2024-03-08 21:43:07 647 3

原创 图像检测系统基于RK3588的硬件电路设计(五)按键、指示灯、调试接口、IO扩展、串口通信、SATA接口、CAN接口、安装孔

CAN的电源模块的核心芯片分别为数字测电源的功率电子开关芯片SY6280AAAC,收发器侧电源的DC-DC电源芯片B0505XT-1WR3,引出隔离电源VDD_3V3和VDD_5V_ISO。2、R使用自恢复保险丝,阻值只有几欧姆,当回路流过的电流超过正常工作电流过多时,其内部阻值会迅速增大,从而将回路电流限制在很小的范围值内,有效的防护应为静电电流过大造成RS485接口损坏。图中为硬盘接口的电源电路设计,核心芯片是降压开关芯片MP2315,电路的设计与系统电源的设计相似。DAS/DSS#:储存模式切换?

2024-02-24 21:11:28 1134

原创 图像检测系统基于RK3588的硬件电路设计(四)MIPI CSI接口、HDMI TX接口、Type-C接口

1、两组USB3.0高速差分信号线和两组USB2.0兼容差分信号线,因为需要考虑正反插,所以设有两组。CC的两引脚的电平为上下浮动,当接入Type-C插头时,CC两个引脚一个会被拉高,一个会被拉低,从而判断插入方向。电子设备可以借着CEC信号让使用者控制HDMI接口上所连接的装置,比如单键播放,系统待机,可以实现由单一遥控器控制所有HDMI连接的装置。3、SBU1和SBU2为辅助信号,在不同的应用场景具有不同的用途,例如在ALT MODE模式下进行DP信号传输时,作为。DxP\DxN:四对差分信号接收端。

2024-02-24 11:04:13 1902

原创 图像检测系统基于RK3588的硬件电路设计(三)USB3.0接口、以太网接口

上图为USB3.0接口的接口扩展(HUB)芯片GL3523,其中输入信号为核心板引出的一组USB3.0高速信号,包括一对兼容USB2.0的差分信号、两对高速差分信号,芯片可以输出四组USB3.0高速信号,我保留了三组,其中两组引到板上的USB插座,一组引到接插件上,以备连接航插使用。芯片GL3523的主要引脚功能: PAMBER/PGREEN:琥珀色、绿色指示灯,不使用。 AVDD12:芯片内部PLL时钟电路的模拟电源。 TXN1_Px/TXP1_P

2024-02-23 21:11:40 1473

原创 图像检测系统基于RK3588的硬件电路设计(二)风扇插座、时钟电路、USB接口

上图为时钟发生电路,电路的核心芯片为时钟芯片PCF8563,它提供一个可编程的时钟输出,一个中断输出 和一个掉电检测器,所有的地址和数据都通过 I2C 总线接口串行传递(读地址为0A3H,写地址为0A2H)。2014.3.18补充:关于图中的0R电阻和共模电感设计,都是为了消除差分信号中的共模干扰,在实际制版布线时选其一保留即可,在PCB布线阶段,我把类似设计中的共模电感都去掉了。VDD、VSS:电源,VDD经稳压管接5V电源,0.47F法拉电容用于储存电量,可以使芯片在掉电时工作。

2024-02-22 22:10:43 448

原创 图像检测系统基于RK3588的硬件电路设计(一)电源模块

MODE 端被LDO_5V和VCCA_3V3_S0共同使能,拉低为低电平,以在没有USM的情况下以PFM(脉冲频率调制)模式操作MP8759,当工作在PFM模式下时,芯片可以看作DC-DC开关工作电源,输出端周期性的切换输出电压,产生脉冲信号,接功率电感可以吸收脉冲转化为平稳的电压信号,但电感存在一定的阻抗与电容,还会产生一定的纹波,后接电容用于吸收纹波。输出VCC_12V_EXT电源,为VCC3V3_SYS、VCC5V0_SYS降压电路供电。上图为系统总电源的设计。线性稳压器ME6203A50M3G。

2024-02-22 21:24:06 1097

空空如也

空空如也

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

TA关注的人

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