分割+投影+几何推理:GRASPTrack解决密集多目标跟踪关联难题
做过多目标跟踪MOT的人大概率都经历过同一个噩梦场景一拥挤检测框互相压着关联模块就开始乱点鸳鸯谱ID频繁跳变。上一帧还是这个人的轨迹下一帧就挂到旁边那个人身上去了。我自己调试这类问题的时候先换更强的检测器压不住再换更精细的ReID模型还是撑不住。后来把思路整个从二维框的世界里拔出来转到“几何层面”去重新看这个问题才算找到了真正值得下功夫的方向。项目标题里的 GRASPTrack核心就是用“分割 投影 几何推理”做多目标跟踪的关联。简单说就是不把目标当矩形框而是当一块有形状的实体区域不只在图像像素坐标里比较距离而是把目标投影到统一的几何空间里做一致性判断最后用几何一致性和外观特征一起作为关联依据。这个思路我自己搭了一版轻量实现做过对比实验在密集场景和目标互相遮挡严重的片段上ID Switch 数量下降得非常明显。这篇东西就是围绕这个思路做的完整拆解。不讲空话只讲为什么这么做、怎么做、中间会踩哪些坑。无论你是做监控场景的行人多目标跟踪还是车载视觉里的车辆跟踪这篇文章应该都能给你一些可以落地参考的东西。1. 先搞清楚传统关联里到底丢掉了什么1.1 为什么 IoU 匹配和外观匹配在拥挤场景会失效先把传统的关联方法拆开看。当前绝大多数 MOT 方案走的是“检测 → 轨迹预测 → 关联”三步。检测器给出每一帧的目标框卡尔曼滤波或者其它运动模型预测每条轨迹下一帧可能出现的位置然后用一个成本矩阵把检测和轨迹配对。成本矩阵里最常用的两项位置/形状距离通常是 IoU 或中心点距离以及外观特征距离通常是 ReID 特征向量距离。这套逻辑用在空旷场景里没问题目标少框和框之间离得远IoU 匹配几乎不会出错。但场景一旦密集起来问题就全暴露了。三个典型现象两个目标擦肩而过时矩形框大面积交叠IoU 数值很高。如果运动预测也凑巧偏向对方位置关联模块大概率会把轨迹切到另一个人身上。外观特征在拥挤场景下会被严重干扰。检测框里通常不止一个目标。两个人的框交互叠在一起时提取到的 ReID 特征是两个目标的混合体。你拿去跟数据库里的历史轨迹比自然怎么比都相似。运动模型只能做短时假设。极度拥挤时目标走走停停Kalman 的匀速假设失效预测位置误差变大IoU 匹配的可靠性继续下降。换句话说传统关联是在一个“信息已经损失掉的表示”上做判断。矩形框本身就是一个粗糙的包围盒里面一半可能是背景、可能是遮挡物、可能是另一个目标。你拿这个粗粒度表示去算相似度得到的结果天然就是噪声很大的。1.2 框的世界丢失了目标的“空间形状”我们再往深一层看。矩形框丢掉的不仅仅是背景噪声还有目标本身的空间几何信息。比如一辆车在画面里是侧停的它的矩形框高宽比大约是 2:1当它转弯驶向你时矩形框的高宽比会剧烈变化中心点也会在图像平面里发生大幅位移。但实际上这辆车在物理空间中的位置变化很小只是一个角度的变化导致 2D 投影形状变化。反过来看图像平面里的一个框根本没法区分“目标真实移动了”和“目标姿态变了导致投影变了”。于是关联模块会把姿态变化误判为运动从而产生错误匹配。分割带来的好处就在这里。实例分割把矩形框升级为目标像素的掩膜。有了掩膜你至少可以拿到三个关键几何量目标质心比框中心稳定得多遮挡时框中心会漂但可见像素的质心漂移相对小。目标的足迹点或底边点。对于人、车这类接地目标掩膜底边的中点在平坦地面上的投影位置非常稳定。目标的朝向和尺度可以通过掩膜的主方向轴估计。有了这些量目标就不再是一个“框”而是在图像中占据真实区域的几何体。你要做的下一步就是把这层几何信息真正用起来。2. 分割与投影把 2D 像素变成可比较的几何实体2.1 为什么只做分割还不够必须加投影有了掩膜之后直接计算图像平面里的掩膜 IoU 或者质心距离行不行可以但收益有限。因为图像平面坐标本身受透视影响极大。同一个地面距离在画面近处可能占了几百个像素在远景处只有几个像素。两个目标在地面相距 2 米画面近端可能交叠严重远端却分得很开。你用图像平面距离做关联不同区域的标准都不一样匹配阈值很难调。投影解决的就是这个问题。它的核心目的是把图像中的目标位置转换到一个更接近真实世界尺度的坐标空间里去做比较。最常见的选择是地面坐标系对行人、车辆这类接地目标尤其适用。场景有相机的内外参数时投影是可控的利用相机内参和地面平面方程目标掩膜底边的像素坐标可以反投影到地面坐标系上得到一个二维物理坐标。这个坐标的单位是米不受透视影响。两个行人在地面上相距 50 厘米无论他们出现在画面的近处还是远处投影后计算出来的距离都是 50 厘米上下。这个转换带来的直接收益是关联模块的比较基准统一了。不再需要给近景和远景分别调阈值一套几何距离阈值就能覆盖整个画面。2.2 投影在单目场景里怎么落地很多人看到投影就头疼以为一定要有什么激光雷达、双目相机。其实不是。普通单目相机也能做投影只是精度受标定质量影响。单目投影的前提条件相机内参 K 已知包括焦距、主点坐标、畸变系数。目标接地平面已知。平坦道路、广场这类场景地面平面方程可以用三点标定或者从消失点推导。条件满足时把一个目标底边中点从像素坐标 (u, v) 投影到地面坐标 (X, Y) 的流程如下从掩膜底部边界取一点通常是底边中点。用相机内参把 (u, v) 转换为相机坐标系下的归一化射线方向。射线与地面平面方程求交点得到它在相机坐标系下的三维坐标。再把三维坐标的 X、Z 提取出来就是一个与相机位置和朝向无关的地面坐标表示。这个过程在数学上不复杂实际工程里可以做成一个离线标定好的查表映射避免逐帧做射线求交导致性能开销。没有相机参数据的时候也有办法用消失点和已知的目标高度做弱标定也能拿到一个近似的地面投影关系。精度比完全标定差一些但相比直接在图像平面里比较已经是两个量级的效果差别。2.3 几何关联的判定逻辑投影完之后关联逻辑就要重新设计了。GRASPTrack 的思路是几何一致性为主外观特征为辅运动连续性做修正。三者加权成一个综合成本再做全局最优匹配。具体到每个检测框可以提取这样一组几何特征掩膜质量置信度掩膜面积和可解释像素比例。目标质心坐标及底边投影坐标。掩膜的主方向角度。目标在投影平面中的覆盖范围相当于把掩膜压扁到地面后形成的轮廓范围。关联时计算轨迹预测位置与检测目标投影位置之间的距离同时计算轨迹预测的速度方向与检测目标实际位置的方向是否一致。几何距离、方向差异、速度差异构成几何成本。外观特征则算一个 ReID 成本用余弦距离或者内积距离都可以。我实践下来的一个体会是几何项的权重一定要给足至少占到总成本的 60%-70%。因为几何信息的可靠性远高于外观特征。外观特征在遮挡、光线变化、低分辨率情况下经常不可靠而一个目标只要底边可见投影出来的地面位置就是可信的。反过来如果掩膜质量很低比如目标 70% 的像素被遮挡这时候几何位置本身也失真了就应当让外观特征项在最终决策中占主导。这个自适应权重切换是让整个系统在复杂场景里稳定工作的关键。3. 实操搭建一个可复现的 GRASPTrack 轻量实现3.1 数据准备与标注如果你是从头搭这个系统第一步是准备好带实例分割标注的数据。MOT 数据集和图像分割数据集的标注粒度和习惯不同需要提前对齐两种标注的兼容性。建议至少准备三个子集跟踪训练集用于训练关联模块的参数外观权重、几何权重、阈值。跟踪验证集用于验证整套流程在密集场景里的稳定性重点看 ID Switch。分割预训练集如果用的是独立分割模型需要预先把分割模型在一个通用分割数据集上训练到足够强的泛化能力。分割的伪标注也是一个很实用的方案。先用现成的分割模型给历史跟踪数据打上掩膜再用这些伪标注去训练分割模型。这样做的好处是省去大量像素级手工标注工作。但要注意伪标注噪声会传播到下游几何特征中。你至少要从伪标注结果里抽一批人工检查确认掩膜底边位置没有系统性偏移。3.2 模型选型与部署结构整个系统可以拆成三个模块分割模块、跟踪管理模块、匹配模块。三个模块可以共享部分算力但逻辑上一定要解耦这样后续换任何一块都不影响其它部分。分割模块的选择主要看算力预算。实时性要求高的场景我建议用带分割头的轻量检测框架一次性输出检测框和掩膜。算力相对宽裕、主要看精度的场景可以先用一个高性能检测器输出框再在框内跑一个二分类分割。这样虽然推理两次但好处是分割模型可以做得小只负责框内前景抠图反而更稳。跟踪管理模块负责轨迹生命周期管理包括轨迹确认、丢失、删除、碎片管理。建议一开始就把这三件事分开处理。轨迹确认用简单的连续命中机制新轨迹连续三帧都能匹配到检测则转为确认状态匹配失败超过设定帧数就标记为丢失并删除。匹配模块的核心是构建成本矩阵。伪代码如下def associate(tracks, detections, camera_params, appearance_encoder): cost_matrix zeros((len(tracks), len(detections))) for i, track in enumerate(tracks): # 预测轨迹在当前帧的地面位置 geo_pred track.predict_ground_position() # 取检测目标掩膜底边投影到地面 for j, det in enumerate(detections): geo_det project_to_ground(det.mask_bottom, camera_params) if geo_det is None: cost_matrix[i][j] INF continue geo_dist euclidean(geo_pred, geo_det) dir_score direction_consistency(track, geo_pred, geo_det) appearance_sim appearance_encoder(track.appearance, det.crop) cost_matrix[i][j] w_geo * geo_dist w_dir * (1 - dir_score) w_app * (1 - appearance_sim) return hungarian_matching(cost_matrix)这个流程里比较容易被忽略的细节是project_to_ground的返回判断。掩膜质量差、底边被裁断或者目标在画面边缘时投影结果可能完全无效。这种情况不能硬塞给几何成本去算而是应该把该检测项的几何成本置为无穷大强制匹配器主要靠外观特征来判断。3.3 几何特征提取的实操细节掩膜底边中点的提取看起来简单实际做起来有几个很容易踩的坑。第一个坑是噪点像素的影响。分割掩膜边缘经常有零星的误判像素这些像素会让底边中点发生偏移。解决方法是先对掩膜做形态学闭运算去掉零散噪点再提取轮廓。轮廓提取用最大连通域不要保留那些面积占比过小的互联区域。第二个坑是掩膜底部轮廓并非直线。行人站着时底边相对稳定但行走时腿部分开底部轮廓会裂成左右两个区域。如果直接取整个掩膜最低点的像素坐标容易在左右腿之间跳来跳去。更稳的做法是取底部边界线的一个水平带对这个带内的所有像素坐标求平均作为底边平衡点。这个方法在左右腿摆动时依然能保持稳定。第三个坑是车辆场景的底边位置并不等于掩膜最低点。车辆有保险杠、车轮遮挡等结构掩膜最低点可能是后保险杠的投影。单目场景下建议用掩膜的“轮底线”估计即通过车辆轮廓的形状先验估计出地面接触线的位置而不是直接用最低像素。3.4 轨迹预测与关联阈值轨迹预测在 GRASPTrack 里的作用比传统方法要轻。因为几何投影本身已经去掉了图像透视干扰预测的误差范围更小。我用下来效果最好的是带速度修正的恒速模型轨迹状态量包括地面坐标 (X, Y) 和速度 (Vx, Vy)预测时按匀速外推匹配完成后用实际检测位置做一次速度更新。关联阈值方面地面坐标系的优势是阈值可以设置成物理距离。以行人跟踪为例我通常设置几何距离阈值为 1.2 米。两个人在地面上相距大于 1.2 米哪怕图像里高度交叠也不会被误关联。车辆场景的话几何阈值要放宽到 3 到 5 米因为车辆的物理尺寸大同时帧间位移也更大。外观特征的建议是只做一个很轻量的 ReID 网络输出维度不需要太高128 维足够。外观特征的权重建议设小一点主要作用是当几何特征不明朗时做一个兜底。我见过一些方案把外观特征作为第一优先级结果装备了很强的 ReID 网络反而在相似外观的目标之间频繁切换。4. 常见问题与排查技巧实录4.1 分割掩膜帧间抖动导致投影位置跳动这是最容易出现的问题。掩膜本身逐帧分割结果会有轻微差异投影到地面坐标后这种差异被放大成位置跳动轨迹可视化时目标的运动轨迹呈现明显的抖动毛刺。排查思路先在离线状态取一段固定机位的视频对同一个静止目标连续跑 30 帧统计它的投影坐标标准差。标准差如果超过 0.2 米基本可以断定掩膜抖动是主要噪声来源而不是匹配逻辑的问题。解决方案分两级一是掩膜后处理在投影前做一次时序平滑比如对连续三帧的投影坐标做加权均值二是对掩膜底边点的提取方式优化把最低点替换为之前提到的水平带平均法效果提升非常明显。4.2 地面平面标定不准导致远距离目标投影偏移单目场景下地面平面方程是标定出来的。如果场景地面不是绝对平坦或者标定用的参考点选得不够分散画面的远处区域投影误差会非常大。远处目标投影出来的坐标可能和真实位置相差好几米。这个问题的特征是同一场景里近处目标跟踪稳定远处目标频繁切换 ID。排查思路把投影后的点叠加到以相机为原点的俯瞰图上静止目标如果呈弧线分布说明地面平面方程角度有偏差。解决方案田野类场景可以用多帧静态背景拟合地面平面比手动标定更稳。将地面平面方程作为跟踪状态的一部分做在线估计。每个确认轨迹的投影残差累积到一定量时触发一次地面方程修正。对远距离目标适当调大几何距离阈值。毕竟远距离目标的物理位置估计误差本身就大硬卡阈值只会导致大量轨迹碎片化。4.3 严重遮挡时掩膜形状失真目标被另一个目标大面积遮挡时分割掩膜只能覆盖可见部分掩膜底边明显偏离真实的物理接触点位置。这时候投影坐标的几何一致性会误导关联模块。排查思路单独统计目标可见掩膜面积在历史平均掩膜面积中的占比低于 40% 时输出一个掩膜质量分数。如果质量分数过低说明几何特征不可信应当切换到外观特征为主的策略。这个自适应切换是实践中调试最多的地方。我的做法是设计一个动态权重公式掩膜质量分数 0.7几何权重为 0.8外观权重为 0.2。掩膜质量分数在 0.4 到 0.7几何权重 0.5外观权重 0.5。掩膜质量分数 0.4几何权重降为 0.3外观权重升为 0.7。还有一个技巧严重遮挡期间不要更新轨迹的外观特征库。因为被遮挡目标的外观特征混入了遮挡目标的信息一旦更新了恢复匹配时就会自带错误偏置。要在目标重新出现且几何特征恢复正常之后再重新写入外观特征。4.4 问题速查表症状可能原因排查方向推荐解法远处目标 ID 频繁切换地面平面标定不准查看静态目标的投影坐标轨迹用多帧地图拟合平面或放宽远距离阈值轨迹抖动明显掩膜底边提取不稳定对静止目标统计投影标准差用水平带平均法代替最低点加时序平滑出现跨目标 ID 跳变几何特征不可信时仍用了几何权重检查掩膜质量分数分布引入掩膜质量自适应权重遮挡恢复后跟丢遮挡期间更新了错误的外观特征检查特征库更新逻辑遮挡期间暂停特征更新分割在边缘目标上失效目标在画面边缘掩膜被截断检查检测框是否在图像裁剪区域附近对边界目标跳过几何投影走外观兜底5. 这套思路的扩展空间5.1 多相机协同跟踪单相机场景里投影到地面平面已经提升了关联稳定性。换到多相机场景投影的优势会更加明显。多个相机共享同一个地面坐标系不同相机拍摄的同一目标投影到地面后会在同一物理位置附近形成一个聚类。跨镜头的目标关联可以直接在地面坐标上做最近邻匹配不再依赖跨镜头的特征迁移。实际部署时的要点是各相机的时间戳同步要足够严。投影位置在同一时间截面内比较才有意义。相机之间的地面坐标系偏差也要做一次联合优化用重叠视场的轨迹做空间对齐。5.2 单目轻量化部署GRASPTrack 的完整形态在边缘设备上部署最大的负担是分割模型。如果算力不允许跑实时分割可以做一层取舍整条流水线还是用普通检测器跑关联模块在常规 IoU 匹配出现高歧义时才调用分割投影。这样大部分帧都走轻量路径只有状态包中有多个检测框同时竞争同一条轨迹时才触发更重的几何校验。这种方式实测下来算力开销只增加约 10%但误关联率下降非常明显。5.3 与端到端跟踪器的关系现在的 Transformer 类跟踪器走的是完全端到端路线检测和关联都在一个网络里完成。从效果上看这些方法在公开基准上表现不差但场景迁移的稳定性依然是工程上的老问题。GRASPTrack 这类几何显式建模的方案优势在于关联逻辑完全可解释、可干预。检测器换掉、相机位置挪掉、场景从白天切到晚上几何关系不会变整个系统的退化路径是可预期的。一个可行的混合路线是保留端到端跟踪器的检测能力把它的输出的嵌入特征替换到本文的关联框架里。几何投影负责定位网络特征负责表观相似性判断。两者结合往往比任何一个单一方案在真实场景中都更稳。最后再分享一点我自己在这套方案上踩过最值得说的坑是刚开始调参时把几何特征做成了“万能的修正项”不管掩膜质量多差都强行参与决策结果反而比纯 IoU 方案表现得还差。后来把掩膜质量分数引入权重体系后性能才真正开始稳定上涨。所以如果你也要尝试这套思路建议先在一轮视频上逐帧可视化三个信息检测框、掩膜、地面投影位置。先用眼睛确认这三者是可靠的再谈后面的优化。关联逻辑再漂亮底层输入不干净结果也好不到哪里去。GRASPTrack 的本质其实不复杂换一个更能保留几何信息的中间表示让关联模块在一个物理意义更清晰的空间里做判断。希望这篇东西能帮你在自己的跟踪项目里少走几步弯路。

相关新闻

异常感知YOLO:红外小目标检测的经济稳健优化方案

异常感知YOLO:红外小目标检测的经济稳健优化方案

红外小目标检测一直是个让人又爱又恨的领域。爱它的人看重它在预警、制导、遥感监测中的核心价值,恨它的人则被那些只有几个像素、淹没在强噪声背景里的目标折磨得够呛。传统的检测思路,要么走滤波路线,要么走局部对比度路线,调参…

2026/10/20 13:11:13 阅读更多 →
CORAL自主进化框架:多智能体系统核心机制与实战部署

CORAL自主进化框架:多智能体系统核心机制与实战部署

这个主题很有意思。多智能体系统这两年几乎是AI领域最热的方向之一,但绝大多数讨论都停留在“多个AI各干各的、互相传话”这个层面。真正让系统“活”起来的,是它能不能在无人干预的情况下,自己发现自己哪里不行、自己去找新路子。我最早看到…

2026/10/20 13:11:14 阅读更多 →
Xacro、URDF与SDF如何协作?机械臂仿真项目中三格式分工与实战避坑

Xacro、URDF与SDF如何协作?机械臂仿真项目中三格式分工与实战避坑

最早接触机器人描述文件的时候,我一直以为Xacro、URDF和SDF只是同一份模型的三种写法:先用Xacro写,再变成URDF,仿真器里变成SDF,本质上差不多。后来在一个六轴机械臂项目里吃了几次亏,Rviz中轨迹规划一切正…

2026/10/19 8:16:59 阅读更多 →

最新新闻

过程间分析:让数据流真正跨越方法调用

过程间分析:让数据流真正跨越方法调用

很多人学静态分析时都会卡在一个点上:明明把数据流分析那一套规则背得滚瓜烂熟,可一放到真实程序上,结果总是不对劲。原因往往只有一个——真实程序里到处是方法调用,而经典的过程内分析把每一次调用都当成一个黑盒。黑盒一多&…

2026/10/20 13:11:03 阅读更多 →
C语言位域深度解析:内存布局、符号扩展与硬件映射

C语言位域深度解析:内存布局、符号扩展与硬件映射

简介:本资源是一套面向嵌入式开发与C语言进阶学习者的位域(Bit-field)实践代码包,聚焦于内存紧凑型数据结构设计、硬件寄存器模拟及跨平台位操作验证等典型应用场景。资源包含16个文件,涵盖6个JSON配置文件&#xff08…

2026/10/20 13:11:03 阅读更多 →
愤怒的小鸟源码全解析:从物理引擎到关卡设计的实战指南

愤怒的小鸟源码全解析:从物理引擎到关卡设计的实战指南

这套“愤怒的小鸟附带源码及素材”的项目,比一般教程给的半成品 Demo 实在得多。代码完整,美术图片、音效、关卡数据都在,拿到手不是一个只能看的 PPT,而是一个真的能跑、能玩、能改的游戏工程。我最近把整个项目从目录结构到物理…

2026/10/20 13:11:03 阅读更多 →
Agent Skills七大实战技巧:从提示词封装到智能体能力扩展

Agent Skills七大实战技巧:从提示词封装到智能体能力扩展

春节后第一个完整工作周,我把手头项目的智能体部分整体重构了一遍。重读官方Skills指南的时候,正好赶上团队内部一次关于技能封装的讨论,两边一碰撞,我把核心内容提炼成了七个可以直接落地的小技巧。如果你也在做类似的任务拆解、…

2026/10/20 13:11:03 阅读更多 →
RAG应用进阶:从能答到答得聪明的四个关键能力

RAG应用进阶:从能答到答得聪明的四个关键能力

干了快三年RAG应用,我发现自己最近盯着一批badcase时,已经从“骂检索”变成了“骂模型没脑子”。举一个很典型的例子:用户问“帮我看看最近苹果的价格走势”,系统召回了一堆“苹果公司市值”的新闻,答案长得挺工整&…

2026/10/20 13:11:03 阅读更多 →
GitHub Copilot X实测:AI编程助手从代码补全到结对编程

GitHub Copilot X实测:AI编程助手从代码补全到结对编程

GitHub Copilot X 的体验资格刚到手那天,我先把编辑器里的上一代 Copilot 停用了,想看看纯新环境到底能带来多大差别。作为写过几年业务代码、也偶尔维护开源项目的人,我对 AI 编程助手的态度一直比较谨慎:补全确实爽,…

2026/10/20 13:10:02 阅读更多 →

日新闻

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/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →