Yolov8_使用自定义数据集训练模型1 收集图片:收集一批带有目标物体的图片【images文件夹下.png图片】标注目标物体:使用标注工具对图片中的目标物体进行标注【xml_labels文件夹下.xml文件】划分数据集:将整个数据集按一定比例分为训练集、验证集、测试集【使用split_dataset.py脚本生成split_dataset_txt文件夹中的.txt文件,.txt文件内容是不含后缀.xml的文件名】
Jetson_yolov8_解决模型导出.engine遇到的问题、使用gpu版本的torch和torchvision、INT8 FP16量化加快推理 虽然我确认刚才选择的torch和torchvision版本是匹配的,而且在【3.2.4】小节也实际打印出了版本符合要求,但还是提示不兼容,这就想到了【3.2.2、安装torch v2.1.0】时产生的报错,可能系统使用的是没卸载干净的torchvision v0.16.2,于是使用pip list再次查看,果然torchvision版本是v0.16.2.于是再次卸载torchvision,注意指定版本0.16.2,因为刚才还安装了0.16.1.
YOLOv8_测试yolov8n.pt,yolov8m.pt训练的时间和效果、推理一张图片所需时间_解决训练时进程被终止killed 接上篇的进一步测试,只是好奇,建议浏览一下就行,不需要浪费时间走一遍这个流程。
英伟达Jetson搭建Yolov8环境过程中遇到的各种报错解决(涉及numpy、scipy、torchvision等)以及直观体验使用Yolov8目标检测的过程(CLI命令行操作、无需代码) 本文以记录分享、体验/体会如何使用Yolov8为主,实现搭建Yolov8环境以及CLI命令行执行训练、使用模型进行目标检测。官方链接:快速开始 - Ultralytics YOLOv8 文档,开始输入第一条指令,等待第一个报错吧hhh2.1.2、执行结果尝试手动卸载numpy1.21.5,发现根本就没有,Found existing installation是1.26.3,既然系统找不到旧的且能识别出新的numpy版本,那这个卸载报错先不管。ERROR:pip's dependency resol
NVIDIA Jetson环境VSCode安装记录,前期失败问题在于英伟达使用的是arm64架构 如果你的NVIDIA Jetson没有安装浏览器,或者安装遇到一些中文显示问题,可以看我写的这篇文章也许对你有所帮助,报错的关键提示是"unmet dependencies",也就是“未满足的依赖”,但是并没有说明具体是什么,所以。打开VSCode之后,默认弹出的第一个配置就是主题选择,根据喜好选择Dark或Light.,而且是选择链接中最简单的方式“图形化界面”安装,遇到了如下报错。安装包的架构不对,英伟达是arm64,而默认下载的是amd64。选择.deb下面的“Arm64”来下载安装包,如下图。
Jetson Orin Nano_安装jtop指令(遇到循环提示重启服务的问题)、查看系统运行情况及基本信息 JetPack是建立在L4T之上的软件开发工具包(SDK),它包括各种工具和库,旨在使为NVIDIA的Tegra嵌入式系统系列开发应用程序变得更容易,安装JetPack之后就包括下图的CUDA、cuDNN、TensorRT库等;L4T是Linux for Tegra的缩写,Tegra是jetson系列使用的架构名称,L4T就是为英伟达jetson系列定制的Linux发行版。具体哪个系统适配哪个版本不确定,我尝试过失败了,还试过V3.1.4,但是根据搜索到的文章有人用降低版本的方式成功解决过这个问题。
Ubuntu安装浏览器(火狐)以及出现网页中文乱码问题 中间过程比较久,尤其是卡在“INFO Waiting for automatic snapd restart...”,而且这时候可能已经出现了浏览器的图标并且无响应,不要误以为失败了就退出terminal,再等等。安装完之后,可以打开浏览器了,但是去百度就会发现数字、英文显示正常,中文乱码,都是小方块。注意:操作完之后不是重启浏览器,而是重启系统才会生效。
Jetson Orin Nano_初识,关于板载资源 Jetson Download Center | NVIDIA Developer,下载Jetson Orin Nano Developer Kit Carrier Board Specification文档,这个文档目录如下:NVIDIA Jetson 嵌入式系统开发者套件和模组
编译器功能__attribute__介绍和官方资料来源 _attribute__不是C语言本身的关键字,而是属于编译器扩展的C语言的功能,中可以找到关于attribute的几个章节,Function Attributes【函数属性】、Variable Attributes【变量属性】、Type Attributes【类型属性】、Label Attributes【标签属性】、Enumerator Attributes【枚举属性】、Statement Attributes【语句属性】、Attribute Syntax【属性语法】;。
以优先级和中文语法的方式永远记住数组指针和指针数组 指针数组,说明本质上是数组,数组元素是指针。数组指针,说明本质上是指针,指向的是数组。优先级从高到低分别是:()、[ ]、*在中文中,重要的东西放在后面。
RT_Thread_使用FAL组件配置stm32f407片上flash读写 先看下struct fal_flash_dev的具体成员,有flash设备名字、flash起始地址、flash大小、块大小(执行擦除时的最小颗粒)、操作函数(init、read、write、erase)、写操作最小颗粒度;size_t len;第一部分:宏定义各扇区的起始地址第二部分:读、写、擦除第三部分:使用了FAL之后的FLASH设备定义以及对于的读、写、擦除操作函数。
RT_Thread_msh_系统msh命令、使用msh时过滤ulog日志、添加msh命令(不带/带参) clear是清屏、version是打印内核版本、list会列出关于系统的各种信息、ps列出线程信息、free是查看内存使用、pin是控制GPIO、reboot重启系统;因为使用ulog功能,所以就会打印出很多日志信息,但是使用msh的时候又不希望这些信息刷屏,所以可以临时过滤日志方便交互、或者终端开启滚动锁定。调试过程中遇到msh不能使用,理解msh也是一个线程,有自己的优先级20,高优先级的线程(比如main是10)如果一直执行,就会阻塞msh。
RTT_探索ulog组件的使用1(全局静态日志等级、模块静态日志等级、过滤模块日志(打开/关闭/动态日志等级)、同一个文件输出多个模块日志、不在rtt studio如何显示彩色日志) 比如,执行下面这条命令后,模块module1的日志等级会临时变为WARNING,这里所说的临时是相对于宏定义中的日志等级,下面5会提供一个实验。前期开发,比较细致的信息可以使用Debug等级去输出,后面调试完毕提高日志级别就可以了,此时不要堆积大量信息,保留关键性环节的执行。不能使用LOG_X这个API,改为ulog_x,x=e/w/i/d,就可以自定义输出日志的模块名称。还发现一个优点,输出日志保存到文件,MobaXterm会自动去掉关于颜色的信息。在不同的开发阶段,想要输出的信息是不同的。
RT_Thread_内核包版本与芯片包版本不一致的编译报错排查 Ctrl+H,在工程中直接搜索“RT_WEAK”试试看,这个操作不一定成功,因为不知道改动成什么了,如果“RT_WEAK”搜不到我可能会尝试搜索“weak”。可以看到内核中使用的是小写的rt_weak,但是芯片SDK使用的是大写的RT_WEAK,这就是错误的原因。直接将报错的RT_WEAK改为小写的rt_weak或者再加一个宏定义,#define RT_WEAK rt_weak。
Keil报错_Error:CreateProcess failed,Command:‘xxx\fromelf.exe‘ 2、当你需要生成bin文件时,修改此电脑安装keil时正确的fromelf.exe路径。(对于我,只是修改盘符为D即可)下面链接是我之前写的,关于如何使用keil生成bin文件的说明,复习。1、当你不需要生成bin文件时,可以选择不执行这个命令。错误原因:fromelf.exe路径错误,无法执行命令。发生情景:编译从另一个电脑拷贝的代码时。
Linux_/proc目录_查看处理器的信息/proc/cpuinfo MIPS是millions of instructions per second(百万条指令每秒)的缩写,其代表CPU的运算速率。声明:以上信息部分来自GPT,在核实的过程中某些百度不到,对于我能发现的错误说法进行了纠正,毕竟我也不知道这些特性到底是什么意思。BogoMIPS是Linux大致计算出的MIPS,大致反映了CPU的运算速率。可以看到板卡有4个处理器,剩下的信息emmm......
Linux_系统信息_uname查看内核版本、内核建立时间、处理器类型、顺便得到操作系统位数等 使用uname --help查看uname命令的帮助信息。通过上面的help就知道-a选项显示全部内容时的含义了。
Linux_在命令行中以树状结构显示目录_tree 使用tree命令,可以在命令行中以树状结构显示目录,当你想知道一个路径下文件的结构时十分方便,还有别的选项功能,下面会介绍其中的一些,完整的介绍。但是也可能存在下面这种情况,文件非常多,所以有2.3指定目录的层级。或者你希望从整体开始了解该目录的时候,可以逐层展开,心里比较清楚。直接tree 路径,显示该路径下的全部文件和文件夹,很方便。-d,来源于“directory”,只显示路径下的文件夹。-L,来源于“level”,指定搜索的层级,n是层数。-f,显示完整的相对路径;-i,不以树状结构显示;
Linux_包管理_apt和apt-get、apt upgrade会自动升级内核 apt-get upgrade也会升级软件包,但默认情况下不会升级内核,要升级内核,需要单独运行apt-get dist-upgrade命令。简单来说,apt更容易使用(比如显示下载和卸载的进度条,升级会显示一共有多少个包),apt是apt-get和apt-cache的结合。大部分情况下升级内核是修复已有漏洞,优化性能,但是也有可能会导致不稳定,已安装的软件在新的内核下无法兼容的问题。apt upgrade会自动升级所有可用的软件包,包括内核和其他软件包。都可以用于升级软件包。这篇文章说的很详细,