- 博客(145)
- 收藏
- 关注
原创 09 量化误差为什么在 Anchor-Free 中被放大——sigmoid 的误差缓冲
量化误差为什么在 Anchor-Free 中被放大——sigmoid 的误差缓冲
2026-07-08 00:00:54
230
原创 07 YOLOv8 检测头深度拆解——从特征图到预测框
检测头把特征图变成检测框。YOLOv8 用解耦头 + DFL,每个网格输出 84 个值(4个框坐标 + 80个类别概率),3个尺度共 8400 个候选框→NMS→最终结果。
2026-07-02 14:26:43
189
原创 06 从Anchor到Anchor-Free——YOLO检测框的进化史与量化敏感之谜
**一句话总结**:Anchor-Base = 预定义框模板 → 预测偏移量(过sigmoid锁死范围)。Anchor-Free = 直接预测坐标。后者精度更高,但失去了sigmoid的"误差缓冲",导致INT8量化后框位偏移严重。
2026-06-21 14:18:28
252
原创 05 YOLOv8 Backbone深度拆解——下采样、通道数与卷积核的进化
**一句话总结**:Backbone = 通过反复"下采样"把 640×640 的图浓缩成 20×20 的特征图,每次下采样通道数翻倍(3→64→128→256→512→1024),每个通道代表一个"特征提取器"。这些特征不是人设计的,是训练出来的。
2026-06-19 13:59:35
187
原创 30 OpenHarmony(鸿蒙)RK2206 实现稳定 TCP 客户端 Socket 通信(一发一收+自动重连)
本文介绍了基于OpenHarmony轻量级系统和Rockchip RK2206开发板实现稳定TCP客户端通信的方案。主要内容包括: 开发环境配置:使用RK2206开发板+OpenHarmony轻量级系统,实现WiFi联网和TCP客户端功能 核心功能实现: 可靠WiFi连接检测机制 TCP套接字编程(socket/connect/send/recv) 异常处理和自动重连 稳定的数据计数机制 LiteOS任务创建 关键代码特性: 等待WiFi连接成功后再进行网络操作 安全的套接字管理(创建、关闭、重连) 发送成
2026-06-17 17:32:14
328
原创 04 mAP:PR 曲线到底怎么画出来的?——手算一遍彻底搞懂
mAP 是目标检测的终极评测指标。它把"找得准不准(Precision)"和"找得全不全(Recall)"整合成一个数字。PR 曲线不是人为画出来的,而是靠"置信度阈值从高到低扫一遍"自然产生的。
2026-06-16 15:05:29
182
原创 03 NMS:为什么叫“非极大值抑制“?——从原理到代码全拆解
本文详细解释了非极大值抑制(NMS)的原理与实现,主要内容包括: NMS作用:去除目标检测中的冗余框,保留最佳检测结果 名称含义:"非极大值抑制"即抑制非最大置信度的重叠框 核心逻辑: 按置信度降序排序候选框 保留最高分框,删除与其IoU超过阈值的重叠框 重复直到处理完所有框 关键细节: 必须按类别分组处理 需先进行置信度过滤减少计算量 代码实现:提供了完整的PyTorch实现及关键步骤说明 文中还包含NMS复杂度分析、实际处理流程和自测题目,全面解析了这一经典算法。
2026-06-14 00:02:48
168
原创 02 IoU:目标检测的“重叠度裁判“——手写一遍你就懂了
本文介绍了目标检测中的关键指标IoU(交并比),通过图示和代码详细解析其计算原理。IoU用于衡量预测框与标注框的重叠程度(0~1),是判断检测结果正确与否的核心标准。文章分步骤演示了如何手写IoU计算函数,包括交集坐标确定、面积计算及防除零处理,并通过实例验证。同时对比了IoU与置信度的区别:前者评估位置准确性,后者反映模型分类信心。最后通过自测问题巩固理解,并预告下一篇将讲解NMS算法。全文以实践为导向,帮助读者掌握这一目标检测基础概念。
2026-06-12 19:16:30
177
原创 29 鸿蒙LiteOS RK2206 Socket编程实战 UDP通信+LWIP原理全解析
本文介绍了在鸿蒙LiteOS(RK2206)上实现UDP Socket通信的完整流程。主要内容包括:1)标准Socket编程框架,详细解析了UDP客户端的创建、配置、收发和关闭流程;2)阻塞通信机制分析,通过日志观察recvfrom()的阻塞特性;3)UDP协议原理及其与TCP的核心区别;4)轻量级LWIP协议栈在嵌入式系统中的应用。文章提供了完整的代码实现和测试方法,帮助开发者掌握鸿蒙设备与服务器的UDP通信技术,理解LiteOS底层网络组件的工作原理。配套B站视频教程进一步辅助学习。
2026-06-12 19:15:16
443
原创 01 INT8量化的精度到底丢在哪?——手算模拟一遍你就明白了
这篇文章深入解析了INT8量化的精度损失问题,通过手算模拟和代码实验揭示了核心原理: 核心发现: 量化误差主要来源于四舍五入(round)操作,而非scale计算或反量化过程 值越小、scale越小,相对误差越大(如0.01的误差可达4.3%) 检测头因数值小而成为量化敏感区域,验证了论文保留FP16的必要性 关键机制: 量化本质是用离散整数格(间隔=scale)逼近连续浮点值 四舍五入会导致双向偏离(部分值变大,部分变小) 相对误差比绝对误差更能反映小数值的精度损失
2026-06-11 17:33:58
227
原创 28 鸿蒙LiteOS RK2206 LwIP Raw API 实现无阻塞UDP双向通信
本文介绍了一种基于鸿蒙LiteOS的嵌入式高性能UDP通信方案,使用LwIP Raw原生API实现无阻塞双向通信。传统Socket方式存在线程阻塞和并发收发困难两大痛点,而Raw方案通过异步回调接收+独立线程发送架构有效解决了这些问题。关键技术包括:1)采用内核回调实现数据接收,避免线程阻塞;2)收发逻辑解耦,互不干扰;3)支持系统自动分配本地端口;4)直接调用LwIP底层接口,效率更高。文中提供了完整的实现代码和架构说明,该方案特别适合鸿蒙物联网设备开发中需要高效网络通信的场景。
2026-06-09 15:36:52
1481
原创 27 鸿蒙LiteOS RK2206 设备连路由器完整实战(配网+联网验证+网络连通性测试)
本文详细介绍了鸿蒙LiteOS RK2206开发板连接路由器的完整实现方案。主要内容包括:1) 通过修改默认配置参数实现自动连接家用路由器WiFi;2) 利用串口日志和状态检测函数双重验证设备联网状态;3) 通过IP获取和网络连通性测试确保网络通路正常。文章提供了完整的STA模式自动连接流程、断网重连机制和关键功能函数说明,并给出常见问题解决方案。该方案基于官方config_network源码,开发者只需修改SSID和密码即可直接使用。
2026-06-09 15:33:50
342
原创 26 鸿蒙LiteOS GPIO输出实战教程(LED闪烁/电平翻转/串口打印)
鸿蒙LiteOS GPIO输出实战教程(摘要) 本教程基于鸿蒙OpenHarmony LiteOS系统,使用RK2206开发板演示GPIO输出功能。通过标准IoT GPIO接口实现LED闪烁控制,包含GPIO初始化、输出模式设置、电平翻转和状态读取等核心操作。教程详细讲解了硬件接线方法(GPIO0_PA0引脚)、电平定义原理(高/低电平)以及关键API(IoTGpioInit/SetDir/SetOutputVal等)的使用。提供完整可移植代码,实现周期性电平翻转(1秒间隔)、实时电平状态串口打印验证,并通
2026-06-01 20:53:41
219
原创 25 鸿蒙LiteOS GPIO轮询模式实战教程:电平读取与上升沿检测
本文介绍了鸿蒙LiteOS中GPIO轮询模式的开发方法,适合嵌入式新手入门。文章首先解释了GPIO的基本概念和轮询模式的原理,重点讲解了通过周期性读取电平并比较前后状态来检测上升沿的技术实现。提供了完整的实战代码示例,包含GPIO初始化、电平读取和上升沿检测逻辑。文中还分析了轮询模式的优缺点,指出其适用于低速低实时性场景,如按键检测和传感器信号采集,但不适合高频信号处理。最后强调这是基础入门方法,高精度需求应采用中断模式。该教程基于RK2206开发板,代码可直接编译使用。
2026-06-01 20:51:06
328
原创 19 OneNET平台MQTT属性远程下发测试(MQTTX客户端实操)
本文介绍了使用MQTTX客户端模拟设备节点,测试OneNET平台MQTT属性下发功能的全过程。主要内容包括:订阅属性设置主题、接收平台下发指令、发送应答回执等关键步骤。测试验证了通信链路稳定性、协议合规性及指令交互闭环功能,所有测试均通过。测试环境采用中国移动OneNET平台和MQTTX工具,基于MQTT协议实现设备与云端的高效通信。
2026-05-26 14:11:52
684
原创 18 onenet mqttx 对接 设备 属性 上报 完整测试
本文介绍了使用MQTTX工具对接OneNET平台实现设备属性上报的完整流程。主要内容包括:1) 设备属性上报的MQTT主题规范,包含上行请求和平台应答主题格式;2) OneJSON标准报文格式,详细说明设备上报报文和平台响应报文的字段含义;3) 整体测试流程,涵盖平台物模型配置、MQTTX客户端操作步骤及平台数据验证方法;4) 常见问题排查要点。通过该流程可验证设备与平台间的属性上报通信链路是否正常,确保数据正确存储到物联网平台。
2026-05-21 23:09:44
828
原创 24 鸿蒙LiteOS GPIO中断实战:从原理到上升沿/下降沿详解
本文详细介绍了鸿蒙LiteOS中GPIO中断的原理与应用。主要内容包括:GPIO作为单片机基础接口的作用;中断相比轮询方式的优势(高实时性、低CPU占用);上升沿、下降沿和双边沿触发原理及适用场景;完整的GPIO中断配置5步流程(初始化、复用配置、输入模式设置、中断注册、使能中断);中断服务函数的编写规范(简短快速、无阻塞操作);以及不同触发方式对应的实际应用场景。文章提供了可直接使用的源码示例,并强调在按键检测、传感器信号等场景下必须使用中断方式才能达到产品级要求。
2026-05-21 21:08:40
1191
原创 23 鸿蒙LiteOS 消息队列(Queue)实战教程:任务间数据传递详解
本文介绍了鸿蒙OpenHarmony LiteOS中的消息队列(Queue)机制,用于实现任务间数据传递。消息队列作为内核对象,采用FIFO原则,允许发送方和接收方异步通信。文章详细讲解了消息队列的核心概念、API接口,并提供了完整的可运行示例代码。该示例展示了如何创建消息队列、发送线程每秒递增数字、接收线程阻塞等待数据的过程。关键特性包括:FIFO原则、阻塞机制、支持任意数据类型传递等。消息队列是LiteOS中最常用的任务间通信方式,能有效解耦任务并实现高效数据传输。
2026-05-18 16:04:30
282
原创 22 鸿蒙LiteOS 互斥锁(Mutex)实战教程:多任务共享资源保护
本文介绍了鸿蒙LiteOS中互斥锁(Mutex)在多任务开发中的应用。互斥锁用于保护共享资源,确保同一时间只有一个任务访问全局变量或外设,防止数据混乱。文章详细讲解了互斥锁的核心概念、API函数、完整示例代码及运行逻辑,并对比了互斥锁与信号量的关键区别:互斥锁用于资源独占访问,必须由申请者释放;信号量则用于任务同步和计数控制。最后总结了互斥锁的正确使用规则和适用场景,为鸿蒙嵌入式开发提供了实用的资源共享保护方案。
2026-05-14 20:23:02
381
原创 21 鸿蒙LiteOS软件定时器实战:多定时器周期性任务完整示例(源码+解析)
本文详细介绍了鸿蒙LiteOS中软件定时器的使用方法和注意事项。主要内容包括:软件定时器的核心概念、API函数说明、完整可运行源码示例及逐行解析。文章重点对比了任务与软件定时器的区别,指出定时器回调函数必须简短且不能阻塞,适合简单定时触发场景;而任务适合复杂业务逻辑处理。通过1秒和2秒两个周期性定时器的实例演示,展示了多定时器并发运行的实现方式。最后总结了定时器和任务各自适用的典型场景,为开发者提供了明确的选用指导。
2026-05-11 16:47:14
545
原创 20 鸿蒙LiteOS信号量原理实战:信号量作用、MAX_COUNT含义、线程同步源码解析
本文基于鸿蒙LiteOS标准示例代码,深入解析信号量在多线程开发中的核心作用。信号量作为线程间的"通行证",主要解决线程同步和资源互斥两大问题。文章重点剖析了MAX_COUNT参数的含义,将其类比为停车场车位上限,形象说明信号量计数的限制规则。通过完整源码示例,展示了控制线程如何通过信号量调度两个业务线程的执行顺序,实现交替执行和同步执行的两种模式。最后总结了LiteOS信号量常用API和适用场景,为鸿蒙单片机开发和多线程编程提供了实用指导。
2026-05-11 15:20:57
415
原创 19 小凌派 rk2206 鸿蒙 LiteOS-M 任务详解
LiteOS-M任务管理指南 LiteOS-M是面向物联网的轻量级RTOS,任务作为系统调度的最小单元,通过LOS_TaskCreate/LOS_TaskDelete进行管理。任务状态包括就绪、运行、阻塞等,优先级数值越小越高。创建任务需配置TSK_INIT_PARAM_S结构体,包含任务名、入口函数、优先级和栈大小等参数。删除任务时禁止操作系统保留任务。使用时需注意:任务函数应为死循环、合理配置栈大小、禁止中断中调用任务API、及时释放资源等。示例代码展示了两个周期性打印任务的标准创建流程。
2026-05-10 22:51:37
735
原创 18 小凌派 rk2206 鸿蒙 liteos 如何通过修改配置文件,编译不通的案例
摘要: 本文介绍在RK2206 OpenHarmony工程中手动切换不同案例的编译方法。所有示例案例存放在vendor/lockzhiner/rk2206/samples/目录下,按功能分类(a开头为内核案例,b开头为外设案例)。通过修改指定配置文件(如makefile和build.gn)可控制编译目标,避免因修改不全导致编译错误。文中还提供了程序入口说明、文件下载方法及常见问题解决方案,帮助开发者快速切换运行不同功能案例。
2026-05-10 22:44:55
246
原创 42 Python 数据挖掘番外篇SVM映射原理通俗详解:从二维具象案例到高维通用逻辑(含代码可视化)
很多人理解 SVM,最容易卡在「映射」这个环节 —— 要么被不严谨的比喻带偏,要么被复杂的核函数公式劝退。本文会从最基础的二维线性不可分场景切入,用可复现的具象案例和 Python 代码可视化,讲透 SVM 映射的本质、逻辑和落地实现,全程严谨无误导,通俗好懂。
2026-05-07 11:14:29
460
原创 41 Python 数据挖掘番外篇:单特征高斯朴素贝叶斯原理详解与Python实现-加强版
本文以每周观影时长单特征分类案例为载体,完整拆解高斯朴素贝叶斯的全流程逻辑,重点澄清高斯分布 X 轴 / Y 轴的真实含义,解决「Y 轴到底是不是概率」的核心疑问,同时详解先验概率、似然、乘法规则的底层逻辑,附带基于 sklearn 实现、可直接运行、中文不乱码的 Python 可视化代码,零基础也能彻底吃透连续特征下的贝叶斯分类原理。
2026-05-06 19:40:27
434
原创 40 Python 数据挖掘番外篇:单特征高斯朴素贝叶斯原理详解与Python实现
本文以 “每周观影时长” 为单特征,通过固定模拟数据,详细讲解高斯朴素贝叶斯的核心原理(先验概率、似然、乘法逻辑、高斯分布的作用),并使用 scikit-learn 训练模型、scipy.stats.norm 绘制高斯分布,彻底解决中文乱码问题,直观展示算法逻辑。
2026-05-06 11:42:09
774
原创 23 ComfyUI 实战:AnimateDiff + OpenPose Walking 姿态驱动视频生成
本文基于ComfyUI构建了AnimateDiff+ControlNet OpenPose的工作流,专注于验证walking动作的驱动效果。通过骨骼序列输入、姿态约束和时序生成,验证动作控制是否准确。工作流输出8fps的H.264 MP4视频,重点观察步态连续性、骨骼还原度和行进节奏。实验表明,动作验证应优先于画面风格优化,ControlNet权重需保持高位(0.95-1.0),CFG值建议4.5-6以确保动作清晰可辨。提示词设计应简洁明确,避免过度复杂干扰动作判断。
2026-04-26 22:49:21
698
原创 22 ComfyUI 实战:SD1.5 + ControlNet OpenPose 复刻人物姿势,为什么真人图不如 Pose 图稳定?
在使用 ComfyUI 进行姿势控制测试时发现,直接将真人图片作为 OpenPose ControlNet 输入时,姿势复刻效果往往不够稳定;而使用标准 Pose 图作为输入时,动作控制更准确、结果更容易复现。本文基于一套可运行的 SD1.5 + ControlNet OpenPose 工作流,面向初学者介绍 OpenPose 的基本原理、工作流结构、Prompt 作用、参数设置及常见问题排查方法,帮助快速理解“Prompt 控制风格、Pose 图控制姿势”的使用思路,并搭建一套最小可用的 ComfyUI
2026-04-26 18:21:56
497
原创 21 ComfyUI 实战:IP-Adapter + ControlNet 实现人物表情编辑,为什么降权重后更容易“笑出来”
人像表情编辑仅依靠提示词,难以稳定实现笑容调整,将 IP-Adapter 与 SoftEdge ControlNet 结合,可兼顾人物一致性与画面结构稳定。在 ComfyUI 工作流中,搭配 IPAdapter 加载组件、PiDiNet 边缘预处理与 ControlNet 控制节点:IP-Adapter 固定人物相貌特征,SoftEdge 约束轮廓与五官结构。实际调试可见,IP-Adapter 权重过高会固化原图表情,难以生成笑容;适当降低权重,即可在保留人物原貌的基础上
2026-04-25 00:35:45
748
原创 20 ComfyUI 实战:用 ControlNet 实现人物表情编辑,让人物“笑起来”的工作流解析
摘要: 本文介绍了一种基于Stable Diffusion和ControlNet的人物表情编辑方法,通过SoftEdge ControlNet实现对人物表情(如微笑/大笑)的精准控制。该方法解决了仅依赖prompt导致的结构漂移、连带修改等问题,构建了包含ControlNet约束的最小工作流。实验表明,该方法能有效保持原图姿态、服装等非目标区域稳定,同时实现明显的表情变化。文章详细解析了工作流结构、参数逻辑,并指出当前整图重采样方案的局限性,为进一步优化提供了方向。
2026-04-24 23:35:45
559
原创 19 基于 ComfyUI 工作流学习 AnimateDiff:单图生成视频的入门实践与问题分析
本文基于 ComfyUI 的单图转视频工作流,对 AnimateDiff 的基础使用方式进行梳理。工作流通过 ADE_AnimateDiffLoaderGen1 加载 mm_sd_v15_v2.ckpt 运动模块,并结合 ADE_UseEvolvedSampling 完成采样,最终输出 mp4 视频与逐帧图像 。实践表明,该流程适合实现静态图的轻微动态化,但在人物微笑、头发单独摆动等局部动作控制上仍存在不足。
2026-04-24 16:35:52
590
原创 18 AnimateDiff 简介:它在 AI 视频生成领域处于什么位置?
本文围绕 AnimateDiff 做一篇简要介绍,梳理其在 Stable Diffusion 视频生态中的定位、发展背景、核心原理与典型工作流结构,说明 AnimateDiff 为什么适合作为开源 AI 视频学习入口,以及它在当前热门 AI 短片创作中的实际定位。
2026-04-23 23:18:34
535
原创 17 ComfyUI AnimateDiff 新手教程:最小文生视频工作流搭建与原理解析
本文基于一套最小可运行的 ComfyUI AnimateDiff 工作流,介绍如何从 0 搭建文生视频流程,并重点解释节点之间的连接逻辑。工作流包含 ADE_AnimateDiffLoaderGen1、ADE_UseEvolvedSampling、KSampler、VAEDecode 和 VHS_VideoCombine 等核心节点,其中 motion module 使用 mm_sd_v15_v2.ckpt,视频输出为 8 fps 的 mp4 。
2026-04-23 22:53:20
1169
原创 16 ComfyUI 模型横向对比实测:SD1.5、DreamShaper、Realistic Vision、SDXL、Counterfeit,谁更适合生成拟人胖橘猫?
本文基于ComfyUI,以“拟人胖橘猫”为主题,在统一提示词、参数与工作流下,对SD1.5、DreamShaper 8、Realistic Vision v5.1、SDXL Base 1.0、Counterfeit v3模型进行文生图对比测试。通过分析各模型生成效果与风格差异,总结适用场景,为后续AnimateDiff视频生成提供模型选型参考。
2026-04-21 17:56:21
600
原创 15 ComfyUI 实战:一文看懂 Apply ControlNet 的 3 个核心参数
本文围绕 ComfyUI 工作流中的 Apply ControlNet 节点展开,重点讲解 3 个核心参数:strength、start_percent 和 end_percent。结合实际案例可知,该节点当前参数为 0.65 / 0 / 1,表示 ControlNet 以中等强度从采样开始持续作用到结束 。文章从参数含义、作用范围和调参思路出发,帮助用户理解如何在保持结构稳定的同时兼顾生成自由度,适合 ControlNet 初学者快速入门与实战调优。
2026-04-20 23:17:43
443
原创 14 ComfyUI 实战:使用 Depth Anything V2 + ControlNet 实现高一致性人像生成
本文基于一套可运行的 ComfyUI 工作流,介绍如何使用 Depth Anything V2 配合 ControlNet 实现高一致性人像生成。流程通过 Depth 预处理提取图像空间结构,再结合ControlNetApplyAdvanced 进行约束,参数设置为强度 0.65、作用区间 0~1,可较稳定地保留人物姿态、轮廓和层次关系 。同时配合写实摄影风格正向提示词与负向提示词,进一步提升成片质感并减少模糊、畸形和背景杂乱等问题 。整体方案适合时尚肖像、棚拍风格和结构保持类重绘任务。
2026-04-20 23:01:22
700
原创 13 ControlNet 到底是什么:在 ComfyUI 里理解“可控生成”的关键一步
ControlNet通过为扩散模型添加结构约束条件,解决了Stable Diffusion生成过程中构图、姿势和空间关系不稳定的核心问题。它从参考图中提取边缘、深度或姿势等结构信息,将这些条件注入生成过程,实现内容与结构的分离控制。在ComfyUI中,ControlNet工作流通常包含四个步骤:输入参考图、预处理为控制图、加载对应ControlNet模型、注入采样过程。主要类型包括Canny(边缘控制)、Depth(空间控制)、OpenPose(姿势控制)等,每种针对不同控制维度。
2026-04-19 14:59:42
246
原创 12 ComfyUI 入门实战:以 Canny ControlNet 为主线,理解 SDXL 下的结构可控生成 室内装修为例
本文基于 ComfyUI,围绕 SDXL + Canny ControlNet 展开一次完整的入门实战。重点不在于某一个具体题材,而在于通过一个结构清晰的示例,理解 Canny ControlNet 在图像生成中的真实作用:如何锁定结构、稳定构图,并在同一参考图基础上切换不同风格。实验中采用标准的 Canny ControlNet 工作流,使用 ControlNetApplyAdvanced 节点完成条件注入 ,并围绕写实增强、豪宅杂志风、动漫风和赛博朋克风进行了多组对比测试。
2026-04-19 14:44:03
719
原创 11 ComfyUI 一致性方案全解析:人物锁脸、角色统一、风格一致怎么做?
本文从技术选型角度出发,总结了 ComfyUI 环境下常用的一致性解决方案,包括固定 Seed、IPAdapter、InstantID/PuLID、LoRA、ControlNet 以及局部重绘,并对其优缺点和适用场景进行了对比分析。
2026-04-18 21:26:55
1872
原创 10 ComfyUI IPAdapter 实战:上传一张参考图,轻松实现人物一致性控制
本文基于 ComfyUI 的一套 IPAdapter 工作流,手把手讲解如何使用参考图实现人物“锁脸感”生图。教程适合新手入门,内容包括工作流原理、核心节点说明、实操步骤以及常见问题排查。该工作流使用 IPAdapterUnifiedLoader 加载人像模式 PLUS FACE (portraits),通过 IPAdapterAdvanced 将参考图特征注入模型,并使用 832×1216 的竖版 latent 尺寸完成最终出图 。如果你想让 AI 生成人像时
2026-04-18 21:00:46
1258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅