- 博客(264)
- 资源 (1)
- 收藏
- 关注
原创 2025-简单点-ultralytics.models.yolo.detect.predict.py解析
继承BasePredictor: 有preprocess和pre_transform和stream_inference等方法。老东西了,扣除padding后,除以gain,返回到最初的大小。construct_results就是构造成独有的Result对象。主要关注nms和construct_results。就是个控制上下界,避免计算错误。
2025-11-19 15:22:20
404
原创 2025-简单点-ultralytics.nn.autobackend.py
这篇文章摘要介绍了Ultralytics YOLO模型的后端自动选择功能。主要内容包括: 类名处理函数:check_class_names()用于验证和转换类名列表/字典格式,支持ImageNet编码到可读名称的映射;default_class_names()提供默认类名处理。 AutoBackend类:核心功能是自动选择适合不同模型格式的后端推理引擎,支持包括PyTorch、ONNX、TensorRT、TensorFlow等10多种格式。 主要特性: 动态后端切换能力 统一接口处理不同格式模型 支持CPU
2025-11-18 14:21:58
308
原创 2025-简单点-ultralytics.Engine.Results
Results 类及其相关组件主要包括以下几个核心类:BaseTensor - 基础张量类,为其他结果类提供设备处理功能Results - 主要的结果类,封装了检测、分割、姿态估计等任务的结果Boxes - 处理边界框相关数据Masks - 处理分割掩码相关数据Keypoints - 处理关键点相关数据Probs - 处理分类概率相关数据OBB - 处理有向边界框相关数据其实就是对底层添加一些方法,很直观。其中有继承于SimpleClass,其实就是方便打印查看里面的属性和值的。@pro
2025-11-11 11:56:50
759
原创 2025-简单点-ultralytics库解析-engine.predictor模块
BasePredictor 是 Ultralytics YOLO 项目中用于执行预测的基础类。它为各种预测任务(如目标检测、实例分割、姿态估计等)提供了一个统一的接口。这个类的设计目标是支持多种输入源和模型格式,同时保持代码的可扩展性和易用性。
2025-11-10 17:52:35
1058
原创 2025-简单点-ultralytics之LetterBox
本文介绍了LetterBox类的实现,该类用于图像处理任务中的尺寸调整和填充操作。LetterBox类能够将图像调整为指定大小,同时保持原始宽高比并进行适当填充。 类的主要功能包括: 支持多种调整模式:自动调整、拉伸填充和保持比例填充 可选参数控制是否允许放大、是否居中等 处理图像时还会更新相关的标注信息(如边界框等) 关键参数: new_shape:目标尺寸 auto:是否使用最小矩形模式 scaleFill:是否拉伸图像而不填充 scaleup:是否允许放大图像 stride:模型步长,用于确保尺寸可整
2025-11-10 17:32:46
279
原创 机器学习 大数据情境下blending-示例
文章摘要 本文提出了一种针对大规模数据集的优化混合融合方案,结合了Blending的高效性和Stacking的数据利用率。核心方法采用分层数据划分(98%-2%-10%结构),通过分布式并行训练高效基模型,并添加统计特征增强元模型效果。方案特别优化了大数据场景下的性能,包括两级并行训练、内存控制和元特征增强策略。性能对比显示,该方法在100万到1000万条数据规模下表现优异,建议根据数据量选择不同方案:小数据用标准Stacking,中等数据用优化Blending,超大数据采用分块Blending。
2025-11-05 15:57:25
905
原创 pi5+hail0 NPU加速配置
本文介绍了树莓派AI应用的硬件准备与设置指南。主要内容包括硬件配置图解、连接步骤示意图,以及AI演示样例展示。通过官方文档链接和直观的硬件搭建图示,为用户提供了从零开始搭建树莓派AI开发环境的视觉指引,同时展示了多个AI应用demo的运行效果图,帮助开发者快速入门树莓派AI项目开发。
2025-11-05 15:44:57
98
原创 大恒相机-mono12-python示例程序
本文提供了一个基于大恒相机(Daheng Imaging)的Python示例程序,展示了如何初始化设备、检查相机色彩支持、设置分辨率以及采集图像。程序通过SN序列号连接相机,支持断线重连功能,可检查相机是否支持彩色图像,并设置黑白12位格式(Mono12)。核心功能包括:设备枚举与连接、色彩支持检测、分辨率设置(4024×3036)、帧率控制(3fps)以及图像采集(默认10帧)。程序结构清晰,包含详细的打印信息和异常处理,适合作为工业相机图像采集的基础框架。
2025-11-05 14:01:19
228
原创 树莓派5,如何用shell命令通断USB电源
以下是树莓派上uhubctl的用法,如果没权限就添加 sudo。树莓派5其实4个ports是绑定的,要一起通断电。apt是只有2.5的,如果需要的话要自己编译了。但是树莓派5需要最新的2.6。
2025-04-29 10:45:40
338
原创 注意力机制中的QKV形象解释
注意力机制(Attention Mechanism)是深度学习中的一种技术,用于让模型能够聚焦于输入数据中最重要的部分,从而提高模型的性能。它在自然语言处理(NLP)、计算机视觉、语音识别等领域得到了广泛应用。
2025-02-18 16:41:34
509
原创 ultralytics yolo框架的推理过程代码
YOLOv8确实取消了置信度,因此每个像素点需要预测的参数总数为类别数加上边界框的参数。具体来说:假如有:9个类别,需要9个参数来表示每个目标属于每个类别的概率。:4个参数来表示目标的边界框(x, y, w, h)。因此,每个像素点需要预测的参数总数为9(类别)+ 4(位置)= 13个参数。假设输入图像的大小为640x640像素,那么输出的三个特征图的大小分别为80x80、40x40和20x20。因此,这些输出特征图包含了模型对输入图像中目标的检测结果,包括目标的类别和位置等信息.
2025-02-14 14:22:07
897
原创 s1:Simple tets-time scaling略微解析
它展示了如何仅用1,000个样本和预算强制(budget forcing)技术,就能让模型在推理任务上达到与大型闭源模型相当的性能。的主要作用是通过增加推理的次数,让模型有更多机会进行深入思考,生成更完整、更准确的答案。这种机制并不是直接延长每次推理的时间,而是通过多次调用模型来实现的。通过这些步骤和核心思想,论文证明了小模型在高效微调下可以匹敌顶级闭源模型,为轻量化高精度推理模型提供了新的范式。通过合理设置这些参数,可以优化模型的生成行为,使其更适合特定的任务需求。的设置会影响模型的行为。
2025-02-07 11:17:03
1915
1
原创 我有一个开发机器,需要更新后能同步到其他的树莓派上,怎么做比较便捷?
基于公钥的哈希:由于设备ID是基于设备的公钥证书生成的,而公钥证书是随机生成的,因此每个设备的公钥几乎不可能相同。在Web界面上,点击右上角的设备名称,找到“Show ID”按钮,获取当前设备的ID。SHA-256的特性:SHA-256哈希算法具有极低的冲突概率(即两个不同的输入产生相同哈希值的概率极低),这进一步确保了设备ID的唯一性。Base32编码和校验码:Base32编码和校验码的使用不仅便于设备ID的读取和传输,还能在一定程度上防止错误输入导致的设备ID冲突。证书中包含公钥以及其他一些基本信息。
2025-02-06 09:59:46
863
原创 canny边缘检测
Canny边缘检测算法通过一系列步骤(高斯滤波、梯度计算、非极大值抑制和双阈值检测)实现鲁棒的边缘检测。它被认为是边缘检测的“黄金标准”,因为它在检测边缘的同时能够很好地抑制噪声,并且能够精确地定位边缘。参数选择:Canny算法需要选择高阈值和低阈值,这些参数的选择对最终的边缘检测结果有很大影响。边缘连接:最后,通过检查弱边缘像素的邻域,如果弱边缘像素与强边缘像素相连,则将其保留为边缘的一部分。最小响应:Canny算法通过非极大值抑制和双阈值检测,确保每个边缘只被检测一次,从而减少了边缘的重复检测。
2025-02-06 09:06:31
1296
2
原创 module_init宏是什么?
这个宏的作用是将一个函数注册为模块的初始化函数,当内核加载该模块时,该初始化函数将被调用,从而完成模块的初始化工作。模块的初始化函数中可以包含各种初始化代码,例如分配内存、注册设备等,通过。文件,是一种特殊的文件格式,不是 ELF 也不是 lib 文件,但它可以理解为是一个特殊的 lib 文件,它是由内核解析并加载的,通常是由。这个宏在模块的目标代码中添加了一个特殊的部分,说明模块的初始化函数在哪里。在编写设备驱动程序时,使用这个宏可以注册一个初始化函数,当模块被加载的时候,内核负责执行这个初始化函数。
2025-02-04 22:34:54
295
原创 linux内核源代码中__init的作用?
是一个特殊的宏,用于标记在内核初始化阶段使用的变量或函数。这个宏的作用是告诉内核编译器和链接器,被标记的变量或函数只在内核的初始化阶段使用,在系统启动完成后就不再需要了。通过标记初始化函数和变量,内核可以在系统启动后回收这些资源,从而提高内存利用率和系统性能。标记的变量或函数在内核初始化完成后可以被回收,这有助于减少内核的内存占用。宏进行编译优化,例如,可以删除未使用的初始化代码,以减小内核的大小。• 标记初始化函数:在内核模块或内核初始化代码中,可以使用。等宏来标记初始化函数,这些宏内部会使用。
2025-02-04 22:33:24
404
原创 内核初始化中的调用顺序
Linux 内核初始化过程中,子系统初始化调用的顺序是经过精心设计的,以确保内核的各个部分能够按正确的依赖关系进行初始化。实现,该机制允许内核在启动时按顺序调用不同的初始化函数。每个宏对应内核初始化的一个特定阶段,确保了初始化函数按照正确的顺序执行。在内核初始化过程中,会使用不同的宏来指定初始化函数的执行顺序,例如。用于子系统的初始化,它在核心初始化之后,在文件系统初始化之前。辅助内核子系统设置:内核设置辅助子系统,如网络和文件系统等。设备发现:内核发现系统中的设备,并初始化设备驱动程序。
2025-02-04 20:09:28
537
原创 三次握手过程中的半连接队列和全连接队列
分配全连接队列和半连接队列资源分配并初始化全连接队列和半连接队列,确保有足够的资源来管理连接请求。客户端发起 SYN 请求:发送SYN包。服务器接收并处理 SYN:创建并将其加入半连接队列,发送SYN-ACK。客户端发送 ACK:确认连接,发送ACK包。服务器处理 ACK:查找,创建sock对象,将连接移到全连接队列。连接建立完成:双方进入状态,可以进行数据传输。通过这种方式,TCP 协议确保了可靠的连接建立过程,并且有效地管理了连接请求,防止资源浪费和潜在的安全威胁(如 SYN Flood 攻击)。
2025-01-26 13:55:35
680
原创 CPU中断机制
中断:是一种异步事件,它会打断当前正在执行的程序或指令流,使CPU转而去处理特定的中断服务程序(Interrupt Service Routine, ISR),处理完毕后再返回原来的任务。硬中断:由外部硬件设备触发的中断,通常通过专用的硬件线路(如IRQ线)发送到CPU。特点异步性:可以在任何时间点发生,不受当前CPU执行的指令影响。随机性和突发性:例如键盘按键、网络数据包到达、磁盘读写完成等。软中断:由软件或程序通过特定指令(如int指令)发出的中断信号,通常用于请求操作系统服务或处理异常情况。
2025-01-23 17:22:34
1855
原创 64位系统哪些地址是给内核用的呢?
Linux:从到。Windows:从到。macOS:从到。这些地址范围用于存储内核代码、数据、设备映射、页面表、内核堆栈和动态加载模块等。通过这种划分,操作系统可以在保护内核的同时,为用户提供一个独立且安全的用户空间环境。此外,地址空间布局随机化(ASLR)进一步增强了系统的安全性。在64位系统中,进程空间被划分为用户空间和内核空间,用户空间进一步细分为多个区域,包括代码段、数据段、堆、栈、映射区、环境变量和命令行参数等。栈从高地址向低地址增长,而堆从低地址向高地址增长。
2025-01-23 17:14:58
1600
原创 esp32-cam无线图传
arduino平台:添加链接描述添加链接描述ESP32-CAM制作监控器教程(platformio版) - 故知学IT - 博客园注意几个按钮:
2025-01-23 10:38:59
288
原创 RS-485和modubus
RS-485:告诉你如何连接设备并传输信号。Modbus:告诉你如何在传输信号的基础上进行有效的数据交换。所以,RS-485 是物理传输标准,Modbus 是数据交换协议。它们可以一起使用,RS-485 提供物理连接,Modbus 协议则定义了设备间数据如何传输和解释。
2025-01-23 10:12:59
1040
原创 pyserial和pymodbus
pyserial:提供与串行设备(如 RS-485 转 USB)进行通讯的基础支持,适合做低层的串行通讯。pymodbus:提供实现 Modbus 协议的支持,适用于与工业设备和传感器之间的通讯,支持 RTU 和 TCP 两种模式。你可以根据需求结合这两个库,首先用 pyserial 打开串行端口,然后用 pymodbus 实现与 Modbus 设备的高层通讯。
2025-01-23 10:08:20
753
原创 Python 实现的多路复用
内核使用多种高效的机制来监视文件描述符的状态变化,以避免不必要的 CPU 使用。内核可以优化事件处理机制,例如减少事件处理的开销,使用更高效的事件处理方式,从而加快文件描述符的状态变化和处理速度。应用程序需要处理该错误。内核可以使用并发处理技术,例如多线程或多进程,同时处理多个文件描述符的状态变化,提高处理效率。使用更高效的数据结构:内核可以使用更高效的数据结构来管理文件描述符的状态,例如使用哈希表或。这些状态可以用于描述文件描述符在不同时刻的状态,以便应用程序能够根据状态进行相应的处理。
2025-01-22 15:24:38
768
原创 Python的进程和线程
也就是说,如果我是多核的,一个进程是可以同时允许多个线程一起执行的.别的园区[进程],一般不能和自己的园区共享人员资源,除非…进程**[园区]**内公共资源对于进程来说,可以共享.进程是一家almost密不透风的公司,缅甸KK园区。那线程之间如何协同共同的资源?5.使用事件的线程同步。6.使用屏障的线程同步。7.使用队列的线程同步。但是python呢?
2025-01-22 15:01:58
1267
原创 同步 异步 阻塞 非阻塞 是什么
同步是实时处理,比如打电话,通信双方需要不断交互,才能传递信息。同步操作是在发出一个调用时,如果没有得到结果之前,该调用就不返回。一旦调用返回,就得到返回值。因此,同步操作是由调用者主动等待这个调用的结果。异步操作在发出之后会直接返回,没有返回结果。非阻塞操作则是指在该调用不能立刻得到结果之前,不会阻塞当前线程,可以继续处理后续的操作。阻塞操作是指调用结果返回之前,当前线程会被挂起,只有得到结果之后才会返回。调用方是否等返回,等返回时候是什么状态?阻塞和非阻塞关注的是程序在等待调用结果时的状态。
2025-01-22 15:01:26
163
原创 树莓派串口AMA0
sudo nano /boot/firmware/config.txt文件。如果是树莓派5,只需要打开serial port配置。然后再ls /dev |grep ttyA*,就行了。如果是树莓派4,还需要禁用蓝牙。,本文将使用用AMA0串口。
2025-01-22 14:21:07
405
原创 树莓派 +pi M.2 hat+ SSD固态
https://shumeipai.nxez.com/2024/06/06/installation-of-m2-hat-plus.html
2025-01-22 14:10:48
132
佛罗里达大学,cs必须课数据结构之B+树
2020-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅