4. 感知算法基础

本章聚焦三大感知任务——目标检测、语义分割、多目标跟踪的核心原理与面试高频命题点。重点掌握各任务的关键方法、评估指标、典型模型(如 YOLO/FCN/DeepSORT)以及它们之间的对比与协同。面试中常以“原理对比”“模型选型”“跟踪瓶颈”“评价体系”等维度出题。
三大任务面试回答框架:从定义到对比 ① 分类概述 检测|分割|跟踪 ② 核心方法对比 检测:锚框 / 中心点 分割:像素分类 / 上采样 ③ 评估指标 mAP / mIoU / MOTA ④ 常见陷阱 NMS vs 关联 混淆 ⑤ 总结应用 多任务联合 / 协同

面试问答卡片

面试问题:请简述目标检测、语义分割、多目标跟踪的核心区别与联系。

面试官考察点:是否清晰理解三大任务的定义边界;能否从输入输出、算法本质、评估指标三个维度快速对比。

回答框架:定义对比 → 算法方法对比 → 评估指标对比 → 实际应用中的协同(如检测+ReID做跟踪)。

简短示例回答:检测输出物体类别+边界框,核心是滑窗/锚框;分割输出像素级类别,采用FCN/U-Net结构;跟踪输出轨迹ID,关键在于数据关联和ReID。三者可级联:检测提供目标框,分割细化边缘,跟踪赋予ID。

可能追问:① 检测中 anchor-free 和 anchor-based 的适用场景?② 跟踪中如何解决遮挡问题?③ 分割与检测在工业落地中哪个更常用?

避坑提醒:不要混淆“实例分割”和“语义分割”;跟踪任务要求实时性,面试中需提及轻量化模型(如YOLO+DeepSORT)的部署考量。

面试问题:目标检测中,NMS(非极大值抑制)的作用是什么?有哪些改进方案?

面试官考察点:是否掌握NMS原理及多目标框去重逻辑;能否列举 soft-NMS、DIoU-NMS、Cluster-NMS 等主流改进及优缺点。

回答框架:NMS基本步骤(排序→IoU过滤→保留最高分) → 传统NMS的缺点(密集目标漏检、阈值敏感) → 改进方案(soft-NMS降低分数、DIoU-NMS考虑距离、learned NMS端到端)。

简短示例回答:NMS通过贪心移除重叠框;改进包括 soft-NMS(衰减而非删除)、DIoU-NMS(引入中心距离惩罚)、Cluster-NMS(聚类合并)。在自动驾驶场景下DIoU-NMS对密集行人检测更鲁棒。

可能追问:① NMS 能否融入网络训练变成可学习?② YOLOv5 中的 NMS 和 EfficientDet 中 NMS 的差异?③ 如何避免 NMS 造成小物体漏检?

避坑提醒:不要只背诵算法名称而不讲适用场景;面试官期待看到“问题-改进-效果”的闭环思考。

面试问题:多目标跟踪(MOT)中,数据关联的主流方法有哪些?Kalman滤波器与匈牙利算法是如何配合的?

面试官考察点:是否理解在线跟踪的核心流程;能否讲清预测(Kalman)→ 代价计算(IoU/ReID)→ 分配(匈牙利)的闭环。

回答框架:MOT整体流程(检测→特征→关联) → 数据关联方法(匈牙利、KM、网络流、图匹配) → Kalman滤波器的作用(状态预测、平滑轨迹) → 结合示例(DeepSORT中的级联匹配)。

简短示例回答:Kalman预测当前帧目标位置,与检测框计算IoU或ReID特征距离,构建代价矩阵,匈牙利算法求解最优匹配。DeepSORT中利用级联匹配优先考虑最近出现的轨迹,用马氏距离+余弦距离加权。

可能追问:① 匈牙利算法的局限性(非最优分配、无法处理稠密场景)?② 如何引入深度学习进行端到端关联(如Transformer跟踪器)?③ 多跟踪器融合策略?

避坑提醒:避免单纯罗列算法名称;需指出工业落地中常将 Kalman+匈牙利 作为 baseline,并说明为何需要更复杂的关联器(如图网络)处理长期遮挡。

项目案例:自动驾驶多任务联合感知系统

项目名称:车路协同多任务感知模块(目标检测 + 可行驶区域分割 + 多目标跟踪)

业务背景:L4级园区无人驾驶小巴,需要在城市开放道路实现 360° 环境感知,输出障碍物位置、可行驶区域、行人轨迹,满足决策规划实时性要求。

规模指标:10 路摄像头+3 激光雷达,每秒处理 30 帧,检测类别 10 类,mAP≥85%,语义分割 mIoU≥75%,跟踪 MOTA≥70%,端到端延迟 <50ms(包含特征融合与目标关联)。

技术栈:YOLOX (检测) + SegNeXt (分割) + FairMOT (跟踪) + TensorRT 部署 + Kalman滤波器 + 匈牙利匹配;使用 Nuscenes 与自采数据混合训练。

核心难点:① 多传感器不同帧率对齐与特征共享;② 夜间/雨雾场景跟踪丢失;③ 多任务模型计算量耦合,优化 latency 同时保持精度。

面试高频追问:1. 为什么选择 YOLOX 而非 YOLOv8?2. 如何在不增加推理时间前提下共享特征提取器?3. 遮挡恢复的 engineering tricks(如 tracklet 生命周期管理)?4. 分割结果如何辅助跟踪(如检测框修正)?

可迁移回答话术:“我们采用共享 backbone 的 multi-head 结构,检测 head 与分割 head 异步推理,使用 Pipelined 并发机制隐藏部分计算。跟踪侧提出基于分割结果的自适应 Filter 参数调节,在遮挡时降低运动模型置信度,增大外观模型权重。最终在保证 50ms 延迟内达到 MOTA 72%。”
💡 本章小结:面试时围绕“检测-分割-跟踪”的对比、改进、协同出题频率极高。建议准备一个端到端联合感知的项目描述(如上),将三大任务串联,并针对延时、遮挡、多传感器融合等实战痛点准备足够的“why & how”深度细节。