占据网络重塑自动驾驶感知:从稀疏目标框到稠密体素空间

最近这一年,自动驾驶感知圈子里聊得最多的话题,已经从“3D检测刷到多少mAP”变成了“你那边出occupancy了吗”。很多算法同行问我,占据网络是不是换个名字的语义分割,为什么各个量产项目宁可牺牲一点框精度,也要把输出从目标框换成体素场。我的看法是,传统三维目标检测解决的是“已知类别+矩形框”的判别问题,而占据网络试图回答“周围空间哪些位置被占用、被什么占用”,这件事的边界和意义要大得多。这篇文章我尽量用做项目的口吻,把原理、方案、训练和部署时的关键细节讲清楚,也把我们在某预研项目里真实踩过的坑列出来。不管你是刚转到自动驾驶感知方向,还是在做BEV感知、端到端系统,都能从中找到可以直接上手的经验。

1. 为什么“占据”突然成了感知圈的关键词

1.1 传统3D目标检测的三块短板

传统3D目标检测并不是不能用了,而是它在某些关键地方存在结构性的短板。第一块短板是几何表达太粗糙。检测器输出的是中心点、长宽高、朝向角和类别,最终落到场景里就是一个旋转矩形框。相机或激光雷达看到的物体轮廓千奇百怪,挂满编织布的大货车、底盘悬架外露的工程机械、装载着异形货物的皮卡,这些形状用矩形框去包,边界误差比一个0.4米的体素还要大。规控如果想贴着物体边缘规划,这种粗糙度会造成明显的浪费或者危险。

第二块短板是类别封闭。检测器要在训练时定好的类别表里挑答案,车、人、自行车、锥桶这些常见类别没问题,但遇到没学过的类型,比如倒在路中间的树干、被风吹来的塑料布、施工遗留的钢筋,检测器要么报一个低置信度的“通用目标”,要么干脆漏检。现实世界的开放类别根本枚举不完,而自动驾驶最怕的就是未知物体没有被感知到。

第三块短板是输出过于稀疏。一帧点云里真正有意义的物体可能只有几十个,剩下的全是路面、墙壁、树木这些“背景”,但背景恰恰也是规划要避让的对象。传统检测框架把大量空间状态排除在监督之外,导致自由空间估计、路面边界估计这些关键能力只能靠额外模块去补。再加上检测框最终要转换成栅格给下游规控使用,转换过程中又要经历一次投影和累积误差,整个链路损耗很大。

1.2 占据网络到底在输出什么

占据网络的核心输出非常简单:把自车周围的空间划分成一个个体素格子,对每个格子判断“是否被占用”,如果被占用,再判断一下“这个格子属于什么语义类别”。输出不是几个离散的框,而是一个密集的张量。你可以把它理解成一张有厚度的、按格子填好的空间地图。

做个类比:传统检测是“点名”,它告诉你场景里有三辆车、两个人;占据网络是“画座位图”,它把整个教室每个格子都填满,告诉你哪里空着、哪里坐人了、坐的是什么。前者是目标级的高层抽象,后者是几何级的空间描述。对规控来说,后者明显更接近“能不能开过去”这个真实问题。

这也是为什么越来越多的量产预研项目愿意牺牲一部分检测框的精度,也要把感知主输出切换成占据场。我们有一个内部项目,原本的避障代价地图是靠检测框二次投影生成的,后来换成了占据概率直接生成的栅格图,窄路会车和绕障场景的稳定性提升非常明显。后面我会专门讲这一段改造细节。

2. 表征革命:从稀疏目标框到稠密空间场

2.1 框与体素:两种世界观差异

检测框和体素场本质上是两种不同的世界模型。检测框是稀疏的、离散的、类别驱动的;体素场是稠密的、连续的、几何驱动的。用表格对比会更直观:

对比维度传统3D目标检测占据网络
输出形式目标框列表体素占用概率+语义概率
类别处理固定类别表开放语义/通用障碍物
几何精度旋转框近似逐体素边界近似
空区域表达不表达每个格子都有状态
下游接口需二次投影成栅格天然就是栅格
长尾目标容易漏检占用二分类可以兜底

不要小看这个差异带来的连锁反应。检测框是“先分类再定位”的思路,网络首先要确认目标属于哪一类,然后才预测框;如果类别这个前提错了,框就跟着错了。占据网络则是“先占用再语义”的思路,就算语义头判断不出来具体是什么,只要占用概率高,下游仍然可以把它当作障碍物来处理。这种设计天然对未知物体更鲁棒。

我在项目里见过一个很典型的例子:一辆工程车的机械臂横着伸出来,比车身宽出一大截。检测框只会把车身包住,机械臂在框外面,规控如果只依赖框,就会贴着机械臂规划,距离算得不对。占据网络在机械臂的位置会有连续的占用响应,边界自然而然地跟着形状走。

2.2 开放语义与未知障碍物

自动驾驶场景里,有相当一部分危险障碍物是“没名字”的。它可能是一个突然掉落的纸箱,可能是路边被撞歪的铁丝网,也可能是施工区域一段没标识的钢管。传统检测器对没学过的东西有两种反应:一个是硬分到相近类别,比如把雕塑分类成行人;另一个是漏检,置信度太低直接丢掉。两种反应放在车上都很危险。

占据网络换了一种问法:这个格子到底有没有物理实体占用?这个问题不需要知道具体类别也能回答。所以哪怕你只用一个二分类“占用/空闲”的占据网络,也能兜住所有物理障碍物。语义头可以在这个基础上做锦上添花,比如区分车辆、行人、骑车人,但系统安全性不再完全依赖语义识别的正确性。

这一点对纯视觉方案尤其重要。相机图像本身没有直接的三维几何信息,但占据网络可以结合深度估计和BEV视角重建出稠密的空间占用分布。相比那些依赖“检测出多少类物体”的视觉方案,占据网络在城市开放道路这种极端长尾场景下明显更踏实。

2.3 几何边界与下游控制

规控模块真正关心的是“这个位置能不能走、什么时候能走”。检测框给不了那么细的边界,它给的是一个大概的长方体。体素网格则可以直接提供逐格子的占用概率,下游拿到之后做几步简单操作就能用:取阈值、二值化、膨胀、生成代价地图,然后在这个代价地图上搜索路径。

代价地图在自动驾驶里是很成熟的表达。传统路线要把检测框重新投影到栅格上,这个过程涉及坐标系变换、类别到膨胀半径的映射、多帧累积去重等一堆麻烦。而且检测框的朝向误差、尺寸误差会在投影时被放大,尤其在车体转向的时候,检测框和真实物体之间会有明显错位。占据场因为是直接在自车坐标系下生成的,同一个体素在时序上更容易对齐,天然避开了这类问题。

另一个容易被忽略的点是:占据网络输出的“空闲空间”同样有价值。路径规划不仅要知道障碍物在哪,还要知道哪些区域是可以自由通行的。检测框体系对自由空间的估计几乎为零,传统方案还要额外做可行驶区域分割、路面边界检测来补全。占据网络把这些问题统一到一个表征里,减轻了下游不少负担。

3. 技术方案拆解:从输入到占据场的完整流程

3.1 体素分辨率与感知范围怎么定

先想清楚你要多大的空间和多少细节。对于L2+辅助驾驶,前向感知范围通常到80米上下;对于城市自动驾驶,左右两侧也很关键,所以很多方案把感知范围设成左右各40米,前向80米。高度方向容易被忽略,但路沿、限高杆、垂下的树枝都在高度维度里,我一般取-1米到3米。

体素大小是最直接的权衡点。0.5米的体素,边缘误差就有半米,对换道场景勉强能用;0.2米的体素边界更精细,但张量规模会大好几倍。以左右40米、前向80米、高度4米为例:用0.4米体素,网格大约是200×200×10,总计40万个位置;如果换成0.2米,就变成400×400×20,320万个位置,整整八倍差距。

所以第一步一定是按下游需求先定范围和体素大小,而不是先定算力。规控如果要求20厘米以内的边界精度,你硬上0.5米的体素,后面调死也补不回来。我建议在预研阶段先用0.4米体素把闭环跑通,验证整条链路,再针对近距离关键区域做局部细化或者多分辨率策略。

3.2 相机和激光雷达如何进到3D表示

占据网络的输入可以是纯相机,也可以是相机加激光雷达,甚至相机加毫米波雷达。纯视觉方案里,相机图像先经过一个2D骨干网络提取多尺度特征,然后进入关键的“深度分布变换”阶段。早期做法是每个像素回归一个深度值,误差很大;现在主流做法是每个像素预测沿射线上多个离散深度区间的概率,再把二维特征按深度概率“抬升”到三维空间的不同体素层里。这个过程业内通常叫深度分布变换,它是纯视觉占据网络能够重建三维结构的基础。

激光雷达侧相对直接:点云体素化后,每个体素里聚合点的坐标、强度、回波等信息,然后用3D稀疏卷积或者pillar方式进一步编码。融合方式有早融合和晚融合两种选择。早融合是在体素化阶段就把图像特征补充到雷达点云上,能缓解点云稀疏区域的信息缺失;晚融合是图像和点云各自提特征,最后再加一个注意力融合模块。我在项目里的做法是:图像提供语义先验和远处的稠密信息,雷达守住近处的几何精度,双分支各自预测后再用一个轻量注意力模块合并。这样单模态退化时整体不会崩得太厉害,但训练难度也会高一点。

这里提醒一句,传感器之间的外参标定精度直接影响融合效果。我们第一版融合模型在车辆周围出现重影,排查到最后是环视相机外参偏差超过两厘米。特征融合之前,一定要做坐标变换和遮挡校验,生产环境下最好有在线外参监控机制。

3.3 网络主干与解码分支

主干网络不用追求特别复杂。输入是体素化后的3D特征体,中间可以用3D UNet这种经典的编码解码结构,也可以用稀疏3D卷积来减少计算量。考虑到自动驾驶的实时性要求,网络层数不宜过深,参数量也不是越大越好。一种比较稳定的组合是:图像分支用中等规模的2D骨干,深度分布变换后得到BEV或3D特征,再经过一个小型3D稀疏卷积网络做特征重建,最后上采样到目标分辨率解码。

解码头通常有两个:一个输出占用概率,用sigmoid激活;另一个输出语义类别,用softmax。如果想支持动态障碍物追踪,还可以加一个速度或者流头,预测每个占用体素的运动向量。这个头很有用,但标注成本高,尤其拥挤场景下物体间的流场边界很难标注得干净,不建议第一个版本就上。

训练时要特别注意特征模糊问题。相机和雷达两种传感器的空间对齐如果做得不好,特征在体素网格里就会互相“污染”。我们做法是特征融合后加一个空间对齐残差块,让网络自己学习校正小的投影误差,同时用输入侧的裁剪和遮挡校验保证大体不错。体素网格的角点坐标也要统一在同一个车体坐标系下计算,避免出现半年一调的局部坐标系偏移。

3.4 训练目标与损失函数设计

占用二分类问题看起来简单,但正负样本极度不平衡。一片场景里绝大多数格子是空的,直接拿二值交叉熵训练,网络很快学会“全部预测为空”,因为这样loss已经很低。常规做法是用focal loss来处理难例,或者叠加dice loss来缓解类别不平衡。我一般会把二分类损失权重设成1.0,dice部分设成0.5左右,语义头再用带类别权重的交叉熵。

还有一个非常关键的概念:unknown体素。激光雷达只能观测到最近障碍物之前的区域,被障碍物挡住的后方,状态是未知的。如果把这些位置标成free,模型就会被错误地训练成“所有遮挡区域都是空的”。真值生成时必须对每个体素标记free、hit、unknown三种状态,loss里只计算free和hit,unknown直接忽略。这是我们项目踩过最大的坑,后面我会单独展开。

语义头可以等占用头训稳之后再逐步加载,也可以一开始就联合训练。我的建议是先单独训占用头几个epoch,确认几何能力没有明显塌陷,再把语义头一起训。损失函数不要一次堆太多,每加一个分支就做一次消融,很多花哨的loss提升小、调参成本高,并不适合工程落地。

4. 数据、标注与评估体系

4.1 真值从哪里来

占据网络的真值,最直接的来源是激光雷达点云。把落在每个体素内的点标记为hit,沿着发射线没有被遮挡的位置标free,遮挡后方的位置标unknown。听起来简单,实际做起来问题很多。单帧激光雷达在远距离很稀疏,一个大物体可能只扫到十几个点,很多本应占用的体素根本没有点命中,真值的召回率不够,训练出来的模型就会系统性低估远处障碍物。

常规解决办法是多帧聚合或者离线建图。把连续多帧点云配准到当前自车坐标系下,可以显著提高真值密度。但多帧聚合又带来一个新问题:动态物体。前一帧还在当前位置的车辆,后一秒已经开走了,直接叠加会把旧位置标成占用,形成拖影。所以聚合时要先用检测跟踪结果把动态目标分离出来,按各自的轨迹补偿到当前时刻,再生成真值。很多开源占据方案都有类似逻辑,但细节处理全靠自己打磨。

另一个思路是用仿真数据。渲染引擎可以直接导出每个体素的占用真值和语义标签,边界、遮挡关系都干净可控。把仿真数据和真实数据混在一起训练,是不少量产项目缓解标注压力的现实选择,但仿真和真实之间的域差异需要额外做适配,不能无脑加大比例。

4.2 评估指标别只看mIoU

占据网络最常用的指标是IoU和mIoU,前者算占用二分类,后者算语义多分类。问题在于,空体素在数量上通常占八成以上,空体素的IoU本身就很高,一平均就把差的部分盖过去了。所以我建议除了整体mIoU,一定要看每个语义类别单独的IoU,尤其是行人、骑车人、未知障碍物这些困难类别。

边界指标也很重要。最近社区里常见的做法是只计算物体边界附近体素上的IoU,用来衡量边缘质量。对规控来说,边界才是真正影响安全距离的地方。另外要把感知范围按距离分段评测:0到20米、20到50米、50米以上各出一组指标。近处的高分很容易掩盖远处的缺陷,而远处恰恰是最容易出车规级问题的地方。

我写评测报告时会固定一套上下文参数:感知范围、体素大小、真值生成脚本、类别定义、GPU型号、推理框架、图像输入分辨率,全部写清楚。没有这些上下文,单独一个mIoU数字没有任何可比性。

4.3 对比实验的公平性问题

做对比实验的时候,有一个不容易察觉的坑:体素分辨率不同,mIoU能差好几个点。0.4米体素训练出的模型和0.2米体素训练出的模型,即便网络结构一样,数字上也没有可比性。感知范围也一样,范围越大难度越高,同样一个模型在80米范围下的成绩会低于40米范围下的成绩,但这不能说明模型变差了。

所以组内对比一定要把范围、分辨率、真值流程、输入模态全部锁死。对外看论文时也要养成习惯,先看实验设置再看结论。很多刷榜方案把图片分辨率提高、把推理时TTA打开、把没用的辅助分支去掉,这些不算作弊,但对比时得等价地还给对方。效率对比更要注意后端算子差异,同样的模型在不同推理框架下帧率能差出一倍,不能直接归因到算法结构。

5. 我踩过的坑:工程落地与调优实录

5.1 显存和推理速度是第一个坎

很多人看到占据网络的精度指标很兴奋,一上来就按论文配置复现,然后发现单卡根本跑不动。问题出在稠密3D特征上。输入如果是一个200×200×16的体素网格,中间特征再带几十个通道,显存占用是灾难级的。我们第一次在开发板上跑,推理直接超时。

工程上的第一个经验是:能用稀疏卷积的地方不要用稠密3D卷积。三维空间中绝大多数体素是空的,稀疏卷积只对有值的区域做计算,内存和FLOPs都大幅下降。第二个经验是降低高度方向的体素层数。对乘用车场景,把高度从20层压到8层,精度损失往往很小,但推理速度提升非常明显。我们曾经把体素从0.2米改成0.4米,Z轴层数减半,单卡推理从不到10帧提升到20帧上下,边界IoU只掉了不到一个点。这种tradeoff在量产项目里是可以接受的,后续再针对近处做局部高分辨率细化补回来。

推理阶段还要记得开混合精度。显存能省不少,速度也有提升,大部分现代GPU对fp16的支持已经很成熟。如果模型里有某些层对精度敏感,可以用分层精度,把敏感层留在fp32。

5.2 小目标和远距离是怎么丢的

小目标在体素化之后可能只剩两三个格子,语义头很难同时把占用和类别学准。远距离目标也是类似问题,点云稀疏加上体素分辨率限制,物体在网格里几乎要消失了。我们遇到过典型的案例:一个放在50米外的小锥桶,检测框也能给出结果,但占据网络预测的占用区域断断续续,语义头把它归成了背景。

解决方向有几种。一是多帧时序融合,让目标在历史帧里累积更多观测,而不是只看当前一帧;二是对远处采用非均匀体素布局,近处小体素、远处大体素,计算量增加有限但远距离表现明显改善;三是在数据增强里对小目标做实例重采样,让训练时这类样本的出现频率更均衡。

还有一种比较取巧但有效的做法:把图像分支得到的2D检测结果作为稀疏提示,引导占据网络的注意力到对应位置。相当于给占据网络一个“这里大概率有东西”的先验,能提升小目标占用响应的连续性,也不会破坏整个网络的稠密输出结构。

5.3 遮挡真值里的隐藏陷阱

真值生成这里有一个隐藏得很深的问题:遮挡区域必须标成unknown,而不是free。我们第一版真值生成只做了free和hit二分类,结果模型在自车正前方、前车后方这类被遮挡严重的区域反复出现“虚虚实实”的震荡。原因就是真值把明明看不见的地方标记成了空闲,训练信号本身就是错的。

修正方法并不复杂:从传感器位置出发,沿射线方向做一次体素遍历,遇到第一个hit体素后,继续向后的体素全部标记为unknown,这些体素在loss里要ignore。但这里要注意雷达的扫描特性,一条射线只覆盖一条很窄的路径,相邻区域内没有点并不代表可见,所以还要结合光束的角分辨率做膨胀,把相邻未采样区域也视为unknown或者至少降低监督权重。

多帧聚合时还会遇到一个拖影问题。前一帧目标的位置和当前帧对不上,如果不处理,聚合后的真值会在目标运动轨迹上留下一串假占用。我们用实例轨迹把动态目标的点云先补偿到当前时刻再做聚合,拖影基本消失。如果你的系统还没有稳定的跟踪模块,建议用最朴素的方式:把聚合窗口内的动态物体按最近邻匹配,先做简单补偿,再逐步替换成正式轨迹。

5.4 调参与训练技巧速查

把工程里经常遇到的问题整理成一张速查表,可以少走很多弯路:

问题现象常见原因对策
远距离栅格全预测为空远处点云稀疏、真值召回不足多帧聚合、距离加权loss、时序融合
物体边缘膨胀、连成一片边界体素缺少直接监督加边界IoU loss、局部细化分辨率
遮挡物后方误检成占用真值中unknown未掩码射线投射生成unknown,loss里ignore
训练长时间不收敛正负样本失衡、学习率过高换focal/dice、降低初始学习率、EMA
夜间、雨天精度骤降图像分支退化、点云噪声增加多模态融合、点云dropout增强、对抗域适应

训练细节上,我的习惯是先固定感知范围和体素大小,再调网络宽度。损失权重按占用、dice、语义CE这样的顺序依次确定,每加一项都做一次A/B。优化器用AdamW加cosine学习率衰减,配合EMA权重平均,通常能再涨零点几个点但稳定性提升明显。数据增强不要过度花哨,点云随机dropout、图像亮度扰动、小幅旋转翻转已经能覆盖大部分量产场景。

6. 再往前半步:占据场如何连接规划控制

6.1 从占据概率到代价地图

规控侧拿到占据网络输出后,第一步是转成代价地图。思路很直接:把占用概率高于阈值的体素投影到二维BEV栅格上,得到障碍物区域,然后做膨胀处理。膨胀半径取决于车体宽度、安全距离和控制误差,通常比车体实际尺寸再多留几十厘米。每个栅格的代价值可以按占用概率连续设置,概率越高代价越大,这样规划器能够权衡“贴着障碍物通过”和“绕远路”两种选择。

我们在某预研项目里做过一个对比:同一段窄路会车场景,检测框方案给出的可通行宽度时宽时窄,非常不稳定;切换到占据网络生成的代价地图后,规划轨迹的重复性和稳定度都好了很多。原因并不复杂,检测框的边界由类别先验决定,而占据网络的边界由几何观测决定,后者在真实物理世界面前更诚实。

如果进一步把时序信息用起来,还可以做概率化的动态障碍预测。把连续几帧的占据场作为输入,让网络预测下一帧、下两帧的占据状态,规控就能在规划时避开未来可能被占用的空间,而不只是当前碰到的障碍物。

6.2 下一阶段会往哪里走

占据网络之后的方向,在我看来主要有三个。第一个是占据场和目标实例化结合:既要稠密的几何边界,又要知道每个占用块属于哪个具体目标,这样路径规划和行为预测都能受益。第二个是动态占据流:不再只预测当前帧静态占用,而是输出未来几帧的占用变化趋势,相当于把检测、跟踪、预测三件事压缩到一起。第三个是局部在线地图更新:把占据场累积成高精地图级别的局部模型,解决现在单帧感知“看得到但记不住”的问题。

这些方向的技术细节还不算成熟,但底层表征大概率还是占据场这种稠密空间描述。如果你准备从零开始做这个方向,我会建议先把二分类占用、unknown掩码、边界评估这三件事做到位,再谈更复杂的语义头、流头、实例头。占据网络革命真正有价值的地方,不只是换了一个更时髦的网络结构,而是换了一种问题定义方式——从“识别目标”转向“还原空间”。

最后说一点个人体会。带项目这一年,我最大的感受是:检测不会消失,但它在感知系统里的地位会从“主输出”变为“辅助模块”。当规控需要的是一张能算碰撞风险的空间场时,框的高层抽象反而显得不够底层。如果你刚开始做这个方向,别急着追最新模型,先把体素化、深度分布变换、unknown掩码和评测脚本这些基本功跑通,后面所有花活都建立在它们之上。踩过的坑,往往比刷分技巧更有价值。

相关新闻

模型权重冻结却持续进化:可塑性架构与技能自演进实战

模型权重冻结却持续进化:可塑性架构与技能自演进实战

“模型权重冻结,能力还在涨”——听起来像悖论,但确实是当下 AI Agent 落地时最让我着迷的一个方向。大多数团队做 Agent 的第一反应是微调模型、改权重、重新训练,可一旦进入生产环境,模型迭代成本高、周期长,还容易灾…

2026/10/20 3:30:06 阅读更多 →
不改模型权重的Agent可塑性架构:记忆、技能自演进与工程实践

不改模型权重的Agent可塑性架构:记忆、技能自演进与工程实践

1. 为什么“不改权重”成了AI Agent落地的硬约束先讲一个我实际遇到过的场景。某公司上线了一款智能客服Agent,核心模型在部署前做了完整评估,各项指标都漂亮。结果上线三个月,业务方提了一个新需求——“用户问能不能开发票,你得…

2026/10/20 3:30:06 阅读更多 →
论文精读:HyLo-Llama-8MLA8GDN-8K-SFT背后的长文本感知Upcycling方法全解析

论文精读:HyLo-Llama-8MLA8GDN-8K-SFT背后的长文本感知Upcycling方法全解析

【免费下载链接】HyLo-Llama-8MLA8GDN-8K-SFT 项目地址: https://ai.gitcode.com/hf_mirrors/amd/HyLo-Llama-8MLA8GDN-8K-SFT 点击查看 免费下载 HyLo-Llama-8MLA8GDN-8K-SFT 是 AMD 开源的一个 8K 长文本混合大模型检查点,其背后论文提出的核心方法是…

2026/10/20 3:29:05 阅读更多 →

最新新闻

Qt新建工程全攻略:从环境配置到构建调试一步到位

Qt新建工程全攻略:从环境配置到构建调试一步到位

最近有朋友问我:Qt 到底怎么新建工程?他说自己把 Qt Creator 装好了,结果打开软件,面对一堆模板和选项完全不知道该点哪里。这个问题看起来基础,但我在带新人时发现,能在这一步顺畅走完、并且真正理解每个选…

2026/10/20 4:26:40 阅读更多 →
Flutter集成HarmonyOS实战:从跨平台架构到鸿蒙适配全记录

Flutter集成HarmonyOS实战:从跨平台架构到鸿蒙适配全记录

开篇先说明一个事:这个项目不是我接的“外包订单”,也不是教学 Demo,而是我作为主要开发者,从 0 到 1 做的一个自研社区共享类 App。整个过程涉及三块硬骨头:第一,把“共享社区”这种偏软性的业务逻辑落到产…

2026/10/20 4:26:40 阅读更多 →
PyTorch从零手写Transformer:位置编码、多头注意力与mask详解

PyTorch从零手写Transformer:位置编码、多头注意力与mask详解

先说个个人感受:Transformer 这种架构,看论文、看别人写的博客总觉得挺简单,真正自己用 PyTorch 一行行从零实现一遍,才意识到里面有大量容易出问题的细节。维度、mask、残差和归一化的顺序,任何一个地方没想明白&…

2026/10/20 4:26:40 阅读更多 →
AI检测一片飘红?从降AI率底层逻辑到作业实战全流程

AI检测一片飘红?从降AI率底层逻辑到作业实战全流程

又到了交作业的季节,后台和私信里最密集的问题永远是同一个:老师发的AI检测报告一片飘红,初稿直接被标“疑似AI生成”,怎么办?这几年我陆陆续续试过市面上能见到的各种降AI率工具,说实话,真正能…

2026/10/20 4:26:40 阅读更多 →
Fort Firewall 防火墙配置教程:5分钟配出第一条拦截规则,附排错清单

Fort Firewall 防火墙配置教程:5分钟配出第一条拦截规则,附排错清单

Fort Firewall 防火墙配置教程:5分钟配出第一条拦截规则,附排错清单 【免费下载链接】fort Fort Firewall for Windows 项目地址: https://gitcode.com/GitHub_Trending/fo/fort 一次凌晨的境外异常外联,在 Windows 防火墙日志里几乎没…

2026/10/20 4:26:40 阅读更多 →
技术人技能管理指南:从技能盘点、刻意练习到作品集构建

技术人技能管理指南:从技能盘点、刻意练习到作品集构建

1. 从“skills”这个词说起:为什么它突然成了硬通货“skills”这个词,放在五年前,可能只是简历底部一个不起眼的栏目。但现在你打开任何一个技术社区、招聘页面或者同行群聊,它出现的频率高得离谱。我自己的感受是,过去…

2026/10/20 4:25:39 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →