YOLO26 ONNX后处理实战:从DFL解码到性能优化
做推理部署的工程师大概率都遇到过这个场景模型在 PyTorch 里跑得挺正常一导出 ONNX、换到 ONNX Runtime 或者端侧推理引擎之后出来的结果就开始“群魔乱舞”——要么框的位置偏得离谱要么置信度全是负数要么直接一个框都出不来。这时候大多数问题都不在模型权重而在后处理。YOLO26 这代模型的输出头已经和几年前的 YOLOv5 差别很大了如果还抱着旧代码去解新输出那基本是给自己找事。这篇就基于我实际调试 YOLO26 ONNX 推理链路的经验完整讲一遍后处理从原理到落地的全过程。文里的思路同样适用于 YOLOv8/v9/v11 这一系列 anchor-free DFL 结构的模型只是输出分支的排列组合稍有差异核心逻辑是一致的。1. 拿到 ONNX 之后的第一件事读懂输出张量的排布很多同学导出 ONNX 之后习惯先拿 Netron 看一眼结构看到输出节点是个三维张量就关掉了后面写代码全靠猜。这是后处理踩坑的第一大来源。YOLO26 的 ONNX 输出排在绝大多数官方导出配置下是一个[1, 84, 8400]形状的张量具体数字取决于输入分辨率和模型版本解读它之前必须先搞清楚每一个维度的业务含义。1.1 三个维度的真实含义第一个维度是 batch size这个基本没有歧义推理时一般就是 1。第二个维度是4 num_classes的拼接在 COCO 80 类模型里就是 84。前 4 个通道是边框回归的“原始预测值”后面 80 个通道是每个类别的逻辑值不是经过 sigmoid 的概率值这一点非常关键。第三个维度是候选框的总数量由特征图的尺度组合决定。以输入 640x640 为例YOLO26 通常会在 8 倍、16 倍、32 倍下采样处各输出一层特征图对应尺寸是 80x80、40x40、20x20三层的候选框数量加起来就是 6400 1600 400 8400。你可以把这个三维张量理解为一次性把三张不同尺度的特征图上所有位置的预测结果全部压扁排列对应关系是固定的——前 6400 个来自浅层高分辨率特征图中间 1600 个来自中层最后 400 个来自深层低分辨率特征图。1.2 和旧版 YOLO 的关键差异在 YOLOv3/v5 时代输出张量是[1, anchor_num * (5 num_classes), 8400]这种结构5 代表 x、y、w、h 和目标置信度 objectness后处理要先做 anchor 解码再乘上 objectness 和类别概率。从 YOLOv8 开始anchor 被彻底移除objectness 也被合并掉了最终置信度只由类别分支的 sigmoid 结果决定。YOLO26 延续这个思路但它最大的变化在回归分支是 DFLDistribution Focal Loss结构。所谓 4 个回归通道的“原始预测值”不是真正意义的坐标偏移量而是 4 组、每组 16 个离散概率分布ONNX 输出张量的通道顺序上它们被压缩成了 4 个通道每个通道内部其实是 16 个 bin 的分布参数。你拿到 ONNX 时看到的 84 通道里前 4 个通道是原始分布数据有的导出工具是排成 64 通道的展开形态后面 80 个通道才是分类 logits。这里有个很容易踩的坑很多旧版代码直接对 84 个通道的前 4 个做 sigmoid然后乘以 stride 当坐标结果就是框偏移、尺寸完全不对。面对 YOLO26必须先把 DFL 反变换做掉具体怎么做下一节细说。2. 解码阶段的两个核心算法从模型坐标系到像素坐标系后处理的第一个阶段叫解码decode目标是把张量里的原始预测值变成一组真正可以画在图像上的边界框。YOLO26 的解码主要包含 DFL 反变换、距离偏移还原、坐标缩放三件事每一步都决定了最终框的准确性。2.1 DFL 反变换到底在干什么先给一个直观理解。DFL 的思想是对于边界框的一条边到对应 anchor 的距离让模型输出一个离散分布而不是一个直接回归值。在这个设定里每个距离被离散成 16 个 bin这 16 个 bin 的权重和就是实际距离值。模型输出的 16 个原始值代表每个 bin 的置信度 logits把它们先 softmax、再和预设的[0, 1, 2, ..., 15]做加权求和得到的就是相对距离的分布期望。公式非常简单probs softmax(pred_dist) // 16个值归一化 dist sum(probs * [0, 1, ..., 15]) // 加权期望接下来乘上一个投影比例。原理解释一下16 个 bin 并不是直接对应 16 个像素而是用projection stride / 4这个系数把离散期望缩放到真实的像素距离。也就是说在 8 倍下采样的特征图上1 个 bin 代表 2 个像素在 32 倍下采样的特征图上1 个 bin 代表 8 个像素。实际做 DFL 时4 个回归通道都要单独过一遍这个过程。YOLO26 ONNX 输出的通道排布如果是压缩形态需要先把前 4 个通道拆分成[4, 16, 8400]的形态再做 softmax 和加权求和。2.2 anchor 坐标还原与 sigmoid 逻辑值DFL 做完后可以得到每个候选框中心点到四条边的距离 $l, r, t, b$。要注意这个还原必须作用在特征图对应的网格坐标上所以先要知道当前候选框属于哪个下采样层级。前面提到 8400 个候选框的顺序是 8 倍层 6400 个、16 倍层 1600 个、32 倍层 400 个每个层级的网格尺寸不同anchor 点的坐标也不同。cx (grid_x 0.5) * stride cy (grid_y 0.5) * stride x1 cx - l y1 cy - t x2 cx r y2 cy b这里的grid_x、grid_y是特征图上的整数网格索引加 0.5 是因为 YOLO 系列默认把网格中心作为 anchor 点。还原之后得到的是基于输入图像640x640的像素坐标这也是模型输入坐标系。如果原始图像做了 letterbox 缩放还需要按比例映射回原图。分类分支相对简单80 个通道做一次 sigmoid 就能得到各类别的概率。之所以强调“不要提前 sigmoid 再导出”是因为很多部署框架对 sigmoid 有 Fused 优化但 ONNX Runtime 的 CPU 实现其实没那么激进留在后处理里做可以同时控制精度和算子。下面给一份我调试过程中总结的解码伪代码去掉业务干扰只保留核心逻辑import numpy as np def decode_output(pred, stride, num_classes80): # pred shape: [4 num_classes, grid_h * grid_w] dist pred[:4].reshape(4, 16, -1) # [4, 16, N] cls pred[4:] # softmax over 16 bins dist np.exp(dist - dist.max(axis1, keepdimsTrue)) dist / dist.sum(axis1, keepdimsTrue) proj np.arange(16, dtypenp.float32) * (stride / 4.0) dist (dist * proj.reshape(1, 16, 1)).sum(axis1) # [4, N] # grid coordinates grid_h, grid_w ... # 依据索引计算 cx, cy cx (grid_x 0.5) * stride cy (grid_y 0.5) * stride x1 cx - dist[0] y1 cy - dist[1] x2 cx dist[2] y2 cy dist[3] scores 1 / (1 np.exp(-cls)) # sigmoid return np.stack([x1, y1, x2, y2]), scores这段代码看起来不复杂但性能上有个大问题如果循环遍历 8400 个候选框Python 的循环开销会直接把推理时间拉爆。后面专门用一节讲怎么把这套逻辑写成纯向量化运算。2.3 不同导出工具的通道排布差异这一点值得单独提醒。YOLO26 官方导出脚本和第三方导出工具对输出的预处理是不同的。有的导出阶段已经做了部分解码输出直接是[1, 480, 8400]的 xywh有的保留 DFL 原始分布输出是[1, 6480, 8400]的展开形态还有的会把三个尺度分别输出三个张量。我的建议是不要看名头上写“YOLO26”直接把 ONNX 拿到 Netron 里看输出节点的 shape 和文档说明按实际排布写代码。上文给的逻辑是从未解码的[84, 8400]形态入手如果你手里的 ONNX 是已解码版本会简单很多——直接把分数和坐标用起来就行。3. 生产级后处理实现一份可以直接用的 Python 代码原理讲完下面给一份我实际调试过、可以直接跑到生产环境里的 Python 实现。这份代码面向的是 ONNX Runtime做了三件事解码所有候选框、过滤低分框、NMS 去重。为了保持可读性先不贴几十行的完整工程代码而是拆成函数逐个讲。3.1 向量化解码告别循环8400 个候选框如果用 Python for 循环逐个算在普通 CPU 机器上基本要花掉几百毫秒。向量化思路是把所有候选框的位置信息做成数组用 NumPy 整体运算。关键点在于生成三张特征图的网格坐标索引。import numpy as np def make_grids(stride, grid_h, grid_w): y, x np.meshgrid(np.arange(grid_h), np.arange(grid_w), indexingij) cx (x.reshape(-1) 0.5) * stride cy (y.reshape(-1) 0.5) * stride return cx.astype(np.float32), cy.astype(np.float32)三个尺度分别生成网格后拼接起来就得到了 8400 个 anchor 的 cx、cy。解码时把四个距离向量和网格坐标做广播相减/相加整个 8400 个框的坐标一口气算完耗时从几百毫秒降到几毫秒这就是向量化的威力。重点说一下 DFL 反变换的向量化写法。这里的技巧是用np.take或 reshape 把前 4 通道拆成[4, 16, -1]然后对axis1做 softmax再用一组长度为 16 的投影系数做点乘。这份代码要尽量用连续内存布局避免在循环里频繁做np.exp和np.sum不然 CPU 缓存命中率很差。3.2 阈值过滤和坐标裁剪解码得到 8400 个[x1, y1, x2, y2]浮点坐标后先不要急着 NMS。第一步是按置信度阈值过滤。一张图上绝大多数候选框是背景超过 90% 的框分数低于 0.1直接在数组层面做条件索引就能过滤掉为后面的 NMS 大幅减压。另一个容易被忽略的操作是坐标裁剪到图像边界。因为 letterbox 填充区域或特征图边界效应解码出的框可能会超出原图范围先统一 clip 到[0, width]和[0, height]之间后面画框、算 IoU 都省心。坐标归一化也是常见需求。如果模型训练时是在 640x640 输入下做的但实际部署时想直接输出原图坐标就必须记录 letterbox 的 scale 和 pad 值。# letterbox 逆变换 x1 (x1 - pad_x) / scale y1 (y1 - pad_y) / scale x2 (x2 - pad_x) / scale y2 (y2 - pad_y) / scale这里的pad_x、pad_y是 letterbox 时在原图左边和上边填充的像素宽度scale是缩放比例。如果直接用 ONNX 固定 640 输入的话这套换算关系必须做对很多人框错位就是这里忘了除回来。3.3 NMS 的朴素实现与正确姿势后处理最后一步是 NMS。YOLO26 官方后处理里有很多优化版本但最通用、最容易调试的还是经典 IoU NMS按分数降序排列保留最高分框删除与之重叠度超过阈值的框重复到结束。def nms(boxes, scores, iou_thres0.45): order np.argsort(scores)[::-1] keep [] while order.size 0: i order[0] keep.append(i) ious compute_iou(boxes[i], boxes[order[1:]]) mask ious iou_thres order order[1:][mask] return keep朴素实现理解起来容易但生产环境问题不少。一是每轮都要算一次 IoU时间复杂度近似 O(n^2)框数量大的时候非常慢二是 Python 循环在嵌入式设备上会造成严重的耗时抖动。行业里常见的做法是用 OpenCV 的cv2.dnn.NMSBoxes或者 TorchVision 的 NMS 算子替代自研实现在 CPU 上要快一个量级。如果你不想引入 OpenCV也可以自己写一个基于矩阵运算的 NMS一次性算出所有框两两之间的 IoU再通过抑制矩阵做迭代。实测下来比朴素循环快很多而且不依赖第三方库适合对依赖管理比较严格的项目。下面给出完整版解码 NMS 串联后的调用方式便于理解整体流程输入: ONNX 推理结果 [1, 84, 8400] - 拆分 DFL 和分类通道 - 向量化解码得到 8400 个候选框 - 阈值过滤 坐标裁剪 - NMS 去重 - letterbox 逆变换还原到原图 - 输出最终 boxes, scores, class_ids这个过程里最容易出问题的就是 DFL 和 letterbox 还原我把两个坑单列出来强调一遍。4. 性能优化从 300ms 到 30ms 我做了什么后处理一开始跑得慢往往会被人误判成“模型推理慢”。我有一次在 CPU 机器上做基准测试ONNX Runtime 推理只花 45ms后处理却花了 260ms整体延迟惨不忍睹。优化之后后处理压到 25ms 左右。这节把优化链路完整梳理一遍每一步都有明确收益。4.1 第一步把 Python 循环彻底赶出热点最开始时解码部分用了一个遍历 8400 个点的循环每个点做两次np.exp和几次加减法。听起来不多但 Python 解释器每次循环都有巨大的开销8400 次循环在 CPU 上实测就有 150ms 左右。改成向量化之后同样的计算只有 8ms 左右。建议后处理里的热点代码一律不要用 Python 原生循环包括把解码结果 append 到 list 再转 numpy 数组这种操作也要避免。正确做法是预先分配固定 shape 的 ndarray用索引一次性赋值或者纯广播计算。Numpy 的/、、np.where在底层都是 C 循环性能差距是两个数量级。4.2 第二步用宽卷积的形式重写 DFLDFL 反变换里最耗时的部分是 16 个 bin 的 softmax 和加权求和。一个高效技巧是把它看成一次1x1卷积输入通道 16输出通道 1权重就是投影系数[0, 1, ..., 15]。用 NumPy 的tensordot或者卷积算子实现比直接np.expnp.sum再乘系数的中间过程少一波内存分配。当然ONNX Runtime 本身也内置了Softmax、ReduceSum这些算子如果你不想在 Python 里做 DFL可以考虑把 DFL 反变换也集成到 ONNX 模型里。不过这会增加模型图复杂度有些端侧推理引擎对大图支持不好我自己的习惯是保持模型输出原始分布后处理里单独优化。表格式对比一下常规做法和优化做法的耗时以 640x640 输入CPU 单线程为例步骤朴素实现优化实现性能提升DFL 反变换120ms4ms30倍坐标还原80ms3ms26倍阈值过滤30ms1ms30倍NMS40ms8ms5倍4.3 第三步NMS 的降维打法NMS 是后处理里唯一没法完全避免排序和比较的步骤优化空间主要在减少参与 NMS 的框数量。阈值过滤设置得当可以让参与 NMS 的框从几千降到几十这是最直接有效的优化。另一个容易被忽视的点是类别维度的处理。常见实现会对每个类别分别做 NMS比如 80 类就要遍历 80 次其中有大量类别根本没有框。提前算一个类别层面的最大值索引只对有框的类别做 NMS能再省掉大部分时间。类别多的时候这个方法收益非常明显。我做过的另一个优化是把 IoU 计算里的除法去掉。IoU 的公式是交集面积除以并集面积除法在浮点运算里开销较高。可以改成只算交集面积然后用查表或者交叉相乘的方式比较阈值。不过这个优化现在收益有限现代 CPU 的除法延迟已经低了很多主要是思路可以借鉴。5. 换了框架和硬件之后坑位总结后处理代码看似简单真正部署到不同环境时各种隐蔽问题会接连冒出来。下面是我在集成测试中踩过的几个典型坑每一种都真实导致过结果错乱或性能劣化。5.1 FP16 精度问题分数小于零的诡异情况ONNX 模型经常会转成 FP16 来减少显存占用和带宽。YOLO26 的 DFL 分支对数值精度很敏感FP16 下 softmax 的指数计算容易造成轻微的数值偏移反映到结果上就是部分框的置信度整体偏低甚至有些框的坐标偏移几个像素。解决方案是给后处理增加一个数值校正层在 softmax 前先减去最大值再求指数这个操作在 FP32 里是标准写法但在 FP16 里尤其重要能显著提升稳定性。如果还是有问题建议 DFL 分支保持 FP32 计算只在模型图里把分类分支转成 FP16两路混合精度通常可以兼顾速度和精度。5.2 动态 shape 与固定 shape 的取舍YOLO26 的 ONNX 导出可以选择动态 batch 和动态输入尺寸。动态 shape 好处是灵活坏处是不同尺寸下候选框数量不一样后处理代码必须能够处理变长张量。很多 ONNX Runtime 的优化算子在动态 shape 下会失效特殊处理反而拖慢速度。我的建议是线上服务尽量用固定输入尺寸。理由很简单后处理的网格生成、特征图拼接都可以在初始化时预计算一次推理时只做张量运算省心又省时。如果一定要支持动态尺寸网格缓存就必须要做不然每次推理重新生成网格索引又是一笔不小的开销。5.3 onnxruntime 版本带来的算子差异ONNX Runtime 不同版本之间对算子的实现和优化差异很大。同一个模型文件在 1.16 版本下正常升级到 1.19 后发现输出多了些 NaN。这通常是新版算子融合导致的数值行为变化不是模型本身的问题。遇到这种问题先用官方检查工具验证模型再把输出和旧版本逐一比对。如果数值偏差出现在特定算子可以在导出时通过opset版本选择来规避或者直接在推理引擎侧把对应算子的优化关掉。这些操作都是常规手段核心思路是不要盲目追新版本生产环境里验证过的组合就是好组合。我个人的习惯是在项目里锁死 ONNX Runtime 大版本同时在 CI 里加入一个后处理一致性测试固定输入、固定随机种子跑一遍全链路检查输出框数量和关键坐标是否在容忍范围内。这样升级依赖时有没有引入问题一眼就能看出来。6. 基于实际经验的两个建议最后分享两个我调 YOLO26 ONNX 后处理时觉得最有用的经验。第一个是调试时做一个“可视化模式”。不要只盯着数字比对把解码后的框直接画在图上保存下来和 PyTorch 原模型输出做视觉对比。框的数量、位置、类别一眼就能发现问题比打印一堆数组效率高得多。我每次改后处理代码都会跑一遍可视化脚本稳定之后再关掉。第二个是给后处理单独写一个单元测试函数输入用一个固定转换好的 ONNX tensor输出和已知结果做断言比对。看似简单但在后续换推理引擎、调精度、升级依赖时能省下大量回归排查时间。没有这套测试哪次优化改出了回归都很难发现。

相关新闻

游戏盒登录协议安全加固实战:从逆向分析到三维风控

游戏盒登录协议安全加固实战:从逆向分析到三维风控

1. 为什么“游戏盒登录协议分析”不是技术炫技,而是产品安全的必修课“某游戏盒登录协议分析”这个标题乍看像是一份枯燥的技术文档,甚至可能被误读为某种灰色操作的前奏。但在我过去十年接触过的上百个泛娱乐类客户端项目中,登录协议的设计质…

2026/10/19 4:16:39 阅读更多 →
内容生命周期7个阶段:把灵感创作变成可持续的流程系统

内容生命周期7个阶段:把灵感创作变成可持续的流程系统

做内容最忌讳的一个动作,就是把每条作品都当成孤军奋战:灵感来了写一篇,写完发出去,数据不好就焦虑,数据好了也不知道为什么好,下一回又从头再来。说得不客气一点,这种搞法不是在做内容&#xf…

2026/10/19 4:16:39 阅读更多 →
CNN-RNN混合网络实现电力负荷预测与Matlab可视化

CNN-RNN混合网络实现电力负荷预测与Matlab可视化

去年我接手了一个区域电力负荷短期预测的小项目,数据拿到的第一时间,我直接按照惯常思路搭了一个LSTM网络——结果训练集上表现还说得过去,一到测试集上MAPE直接高到没法看,预测曲线整体滞后,早上八点的负荷爬坡它硬是…

2026/10/19 4:16:39 阅读更多 →

最新新闻

Linux UDP编程从入门到实践:C语言实现服务端与客户端

Linux UDP编程从入门到实践:C语言实现服务端与客户端

如果你正在学Linux网络编程,我建议先别急着扑向TCP那一堆"三次握手、四次挥手"的细节,先把UDP吃透。UDP的代码量小、逻辑直白,跑通一遍之后,你对socket、端口、地址结构、内核收发缓冲区的理解会立刻落地。这篇文章我用…

2026/10/19 4:56:05 阅读更多 →
大模型微调实战:从LoRA参数塑形到DPO行为约束的完整指南

大模型微调实战:从LoRA参数塑形到DPO行为约束的完整指南

大模型微调这个话题,这几年几乎被聊烂了,但真正在一线做过微调项目的人,大多会有一种感受:早期我们以为微调就是把模型的权重往目标任务上"拧";后来发现,光拧权重不够,还得管住模型的…

2026/10/19 4:56:05 阅读更多 →
大模型微调全解析:从全量微调到LoRA与QLoRA的实战指南

大模型微调全解析:从全量微调到LoRA与QLoRA的实战指南

1. 为什么我突然想写这个话题——从一次微调选型谈起1.1 被"万物皆可微调"带偏的那段时间事情得从前阵子一个内部项目说起。某跨平台系统需要在私有领域内做智能问答,最开始方案讨论的时候,团队里几乎一边倒地认为"必须微调"——理由…

2026/10/19 4:56:05 阅读更多 →
创作者的工作流管理:从灵感采集到版本归档的轻量级项目方案

创作者的工作流管理:从灵感采集到版本归档的轻量级项目方案

artcraft这个名字,第一眼看到的时候,我觉得它就是"art"加"craft"的简单组合——艺术与工艺的结合。但真正动手做下来才意识到,它远不只是字面意思那么浅,而是一整套围绕创作者工作流的个人项目管理方案。我当…

2026/10/19 4:56:05 阅读更多 →
腾讯入局,微信直连OpenClaw

腾讯入局,微信直连OpenClaw

大家好,我是羊仔。凌晨 2 点,马化腾发了个朋友圈,腾讯已经布局了完整的龙虾生态。今天咱们来聊聊腾讯刚刚放出的 QClaw。1. QClaw是什么?大家最近肯定听过龙虾OpenClaw的大名,作为一款能让AI操控电脑的Agent框架&#…

2026/10/19 4:56:05 阅读更多 →
open-code-review:重构代码审查为可编排的工程化流程

open-code-review:重构代码审查为可编排的工程化流程

1. 这不是又一个“AI代码审查工具”:open-code-review 的本质是重构代码协作的基础设施 你有没有遇到过这样的场景:PR 提交后,团队里没人点开看,等上线出问题才翻 Git 历史逐行比对;新人提交的代码逻辑没问题&#xf…

2026/10/19 4:55:05 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →