ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OAK-D-SR近距离测距相机:短基线双目深度实战与避坑

OAK-D-SR近距离测距相机:短基线双目深度实战与避坑 近距离测距这件事说起来简单做起来是真的磨人。我这两年陆陆续续摸过好几款深度相机从结构光到ToF从双目到主动红外几乎每一款在标称量程的远端都能给你递上一张漂亮的深度图可一旦把目标往镜头前凑到二三十厘米画面就开始大面积空洞、边缘糊成一团锯齿测出来的数值飘得离谱。尤其是做手部追踪、小件抓取、精密装配这类活儿的朋友最需要的恰恰就是这半米以内的精度而这半米恰恰是大多数深度相机的软肋。最近 OAK-D-SR 这台近距离测距相机进入我的视野社区里还有人管它叫大白深度相机说它体积极小、专门啃近距离这块硬骨头我就把它当个项目从头到尾捋了一遍。这篇就聊聊它的设计思路、核心参数怎么算、上手怎么跑通以及我踩过的那些坑。1. 近距离测距这块硬骨头到底难在哪1.1 深度相机的近处盲区是怎么来的很多人第一次用深度相机都会有个错觉以为离得越近越准其实正好反过来。不管是哪种原理的深度相机近距离都是它最容易翻车的区间只不过翻车的方式不一样。结构光方案靠投射已知图案、比对形变来解算深度近处图案被放大甚至超出视野匹配窗口直接失效ToF 靠光飞行时间近距离回波太强传感器容易过曝饱和再加上内部光学串扰近处反而成了噪声区双目立体视觉看起来最物理但它的短板在基线——基线越短近处的视差越大越好算可远处的视差会退化到亚像素以下反过来基线越长远处越准、近处越容易超出视差搜索范围。所以你会看到一个很分裂的现象工业上常用的远距离深度相机标称量程动辄三五米甚至十几米但你把目标放到 20 厘米以内它要么直接给 0要么给出一堆跳变值。而做精细操作的人偏偏就要这个区间。这就是矛盾的根子——不是技术不行是绝大多数深度相机压根没为近距离做过定向优化。厂商做一个通用型号往往要在远近之间取折中最后两头都不够极致近距离就成了那个被牺牲掉的区间。1.2 短基线不是妥协是定向优化理解了上面这层再来看 OAK-D-SR 的思路就通透了。它没有去堆什么花哨的新原理走的还是双目立体视觉这条成熟路线但它把双目基线做得很短短到整台设备可以缩进一个很小的体积里。基线短意味着什么意味着在同样一个目标距离下左右相机看到的视差更大。视差大深度解算的数值稳定性就好因为视差的一点小误差被除掉了之后反映到深度上的影响会小很多。反过来说基线短的代价是远处精度快速衰退可能一两米开外深度图就基本糊了。但这恰恰不是它要服务的场景。它就是要放弃远处把所有设计余量都压在近距离这一段上。这是一种非常清醒的定向优化而不是很多人口中的性能缩水版。你要拿它去测五米外的墙那确实是选错工具了但你要在 3 厘米到 80 厘米这个区间里做稳定的深度感知短基线加高分辨率视差匹配这套组合反而是性价比和稳定性都最优的解法。想清楚这个定位后面所有的参数取舍就都能顺着推下去了。1.3 我为什么开始关注 OAK-D-SR我关注它有两个很实在的原因。第一是体积。做设备集成的人应该都懂机械结构里给传感器留的空间往往是最后才敲定的而且永远不够。很多深度相机本体就有一个巴掌大还要外接算力主机、走一堆线装到一个手持设备或者机械臂末端上非常别扭。OAK-D-SR 把算力和相机塞进了一个很小的模块里集成难度陡降。第二是它自带神经网络推理能力这就意味着深度图算出来之后可以直接在设备端做后续处理不用把原始数据全传到主机再算延迟和带宽都能省一大截。第三点就比较朴素了——成本。双目方案本身就比同等精度的 ToF 便宜再加上板载算力省掉了一台独立主机的开销整套方案的物料成本很可控。对做产品原型的团队来说这意味着你能用更少的钱更快地把东西跑起来验证。我个人的判断是这类专精一段距离 自带算力 小体积的深度相机接下来会在消费级和轻工业级市场里越来越常见因为它精准踩中了近距离精细感知这个一直没被很好满足的需求点。2. OAK-D-SR 的整体设计与选型逻辑2.1 一块自带算力的深度相机意味着什么传统深度相机的角色很单纯就是个传感器负责出一张深度图剩下的活全交给主机。OAK-D-SR 不是这个定位它内部集成了一颗专门做机器视觉的芯片你可以理解成它是一台会算深度的小电脑而不是一个单纯的眼睛。这个差别在实操里体现得非常明显。举个例子你做深度图之后通常还要接一步滤波去噪、再接一步点云生成、可能还要跑个检测模型找目标位置这些步骤如果都在主机上做一台普通工控机跑起来就很吃力帧率上不去。有了板载算力之后你可以把一部分甚至全部后处理搬到相机内部完成主机只负责接收已经处理好的结果。数据量从每帧几十万点的原始深度图变成几个目标框的坐标传输带宽和主机负载都会掉一个数量级。对于做嵌入式或者电池供电设备的场景这个差别直接决定了方案能不能落地——少一台主机就少一份功耗、少一份体积、少一份故障点。当然代价是你要接受它有限的算力天花板和特定的开发框架这个后面会细说。2.2 双目短基线模组的设计取舍双目模组是这台相机的核心。它的两个单色相机被安排在很近的距离上配合相对大光圈、短焦的镜头整个光路都在为近距离服务。为什么用单色而不是彩色做深度因为单色传感器没有拜耳滤镜进光量更大在暗光下信噪比更好而且左右两个相机的一致性更容易保证——做立体匹配最怕的就是左右图像在颜色和亮度上不一致那匹配精度直接就崩了。用单色本质上是在给匹配算法提供最干净的输入。镜头的选择也很有意思。短焦意味着视野宽近距离能覆盖更大的范围大光圈意味着进光多暗光下能压住噪点。但光圈大也带来景深变浅的问题好在近距离场景里景深本来就不算主要矛盾。这一整套短基线 单色 广角短焦的组合指向性非常明确它就是要在一个很小的空间里、对一个很近的目标做出一张稠密且稳定的深度图。你要是拿它去做大场景测绘那是强人所难反过来用长基线相机做手部 20 厘米的近距感知同样也是赶鸭子上架。2.3 体积、功耗与散热的平衡体积小这件事说起来是优点做起来全是坑。相机模组缩小之后散热面积跟着缩而板载算力芯片一跑起来是会发热的。我实测过类似形态的模组室温下连续跑满负载外壳温度能明显感觉到温热如果塞进一个封闭的小壳子里温度还会往上走。温度一高传感器的暗电流噪声上升深度图的空洞和噪点会肉眼可见地变多严重的话芯片还会降频帧率开始抖。所以这类小体积深度相机的工程关键其实不在光学而在热设计。常见做法是让主芯片通过导热垫把热量导到金属外壳或者结构件上整机设计时给它留出散热路径。如果你是自己做集成我强烈建议在机械结构里给相机周围留一点空气流通空间别用泡棉把它严严实实裹住。另外供电也要注意算力芯片对电压波动比普通传感器敏感供电不稳是掉线和重启的头号嫌疑犯这一点在第 5 章会详细讲。2.4 接口形态决定它能塞进什么设备接口这件事经常被新手忽略但它其实决定了方案的最终形态。这类相机通常走 USB 连接到主机好处是通用、即插即用、主机选择面广也有支持以太网供电的版本好处是线可以拉得很长、天然适合固定安装的工业场景一根网线同时解决供电和数据。选哪个取决于你的设备是移动的还是固定的、线缆能不能承受拖拽、主机离相机有多远。我的经验是做手持或者机械臂末端的应用优先选 USB 形态因为线细、柔性好、对运动干扰小做固定工位检测优先考虑以太网形态布线干净、抗干扰强、维护方便。还有一点容易被忽略USB 线材质量对稳定性影响极大尤其是长距离或者需要频繁弯折的场合劣质线材会让高带宽数据流出现丢帧甚至枚举失败。别在这一两百块的事情上省我踩过太多次了。3. 深度精度算清楚公式、参数与实测对照3.1 从视差到深度一个公式解决大部分疑问聊双目深度绕不开一个公式理解了它你就能自己估算任何一台双目相机的精度不用等别人给答案Z (f * b) / dZ 是目标到相机的距离f 是相机的焦距单位是像素不是毫米b 是左右两个相机的基线距离d 是同一个点在左右图像里的视差也以像素为单位。这个公式特别直观距离和视差是反比关系。目标越近视差越大目标越远视差越小小到一定程度就掉进亚像素区间算不动了。光有这个还不够真正决定精度的是它的误差传递公式。把上面那个式子做微分可以得到ΔZ (Z² * Δd) / (f * b)ΔZ 是深度误差Δd 是视差匹配误差通常取 0.5 像素作为工程上的经验值因为亚像素匹配做到 0.5 像素以内已经算不错了。这个式子里 Z 是平方关系这是整件事最关键的洞察——深度误差随距离的平方增长。也就是说距离翻一倍误差涨四倍。这也是为什么长基线相机在远处还能打而近距离相机在近处的精度会好得离谱。3.2 把数字代进去看看近距离到底能多准光看公式容易抽象我们代几个数进去算一遍就清楚了。假设在某配置下f 取 400 像素b 取 20 毫米视差匹配精度 Δd 取 0.5 像素。先算 50 厘米500 毫米处视差 d f*b/Z 400 × 20 / 500 16 像素深度误差 ΔZ (500² × 0.5) / (400 × 20) 125000 / 8000 ≈ 15.6 毫米也就是说在半米处深度误差大概一个半厘米出头还算能用。再看看 10 厘米100 毫米处视差 d 400 × 20 / 100 80 像素深度误差 ΔZ (100² × 0.5) / (400 × 20) 5000 / 8000 ≈ 0.63 毫米不到一毫米。这就是近距离的威力。最后看看 5 米处视差 d 400 × 20 / 5000 1.6 像素深度误差 ΔZ (5000² × 0.5) / (400 × 20) 12,500,000 / 8000 ≈ 1562 毫米误差一米五基本等于没用。这三组数算下来短基线相机为什么只适合近距离就从经验之谈变成了数学必然。你在选型的时候完全可以把目标距离和这台相机能提供的焦距、基线代进去自己算一遍再决定比看任何宣传参数都靠谱。需要说明的是上面的焦距和基线是按典型短基线配置量级取的示例值具体型号的准确参数请以官方数据为准但计算方法的结论是通用的。3.3 分辨率、滤波与子像素对精度的影响上面算的是理论极限实际跑出来往往还要打折原因主要有三个。第一个是分辨率。视差匹配是在图像上做的图像分辨率越高同样的物理视差被划分得越细匹配精度就越好。但分辨率一高算力消耗和带宽也跟着涨所以很多相机默认用的是中等分辨率的深度输出你可以在算法里往上调但要确认算力扛得住。第二个是滤波。深度图出来之后通常要过几道滤波左右一致性检查砍掉误匹配、中值滤波平滑噪点、空洞填充把缺失区域补上。这些滤波能显著提升观感但也会牺牲一部分细节和响应速度。我的建议是先关掉所有滤波看原始效果理解这台相机在该场景下的真实能力再逐个打开观察每一道滤波到底改善了什么、代价是什么。第三个是子像素匹配。很多实现会在整数像素视差的基础上再做一次抛物线拟合把匹配精度推到 0.5 像素甚至更低。这是精度的关键来源但前提是图像本身足够清晰、纹理足够丰富。如果场景是一面白墙再好的子像素算法也无力回天——立体视觉的命脉是纹理这个后面在问题排查里还会重点讲。4. 上手实操从零跑出第一张近距离深度图4.1 环境准备与依赖版本选择先说环境这块这类设备通常有配套的 Python SDK 和 C SDKPython 上手最快我们就以 Python 为例。基础环境建议用 Python 3.8 到 3.10 之间的版本太新的版本偶尔会碰到依赖轮子还没更新到位的尴尬。核心依赖就是官方 SDK直接 pip 安装即可pip install depthai装完之后先别急着写代码用官方提供的设备检测工具确认一下设备能不能被正确识别。这一步非常重要因为很多代码跑不通的问题其实根子在设备根本没被系统认出来。插上设备后执行检测命令如果能列出设备信息型号、连接方式、芯片状态说明底层没问题可以往下走。注意SDK 版本和设备固件版本要匹配。如果你的 SDK 是新装的设备固件却很久没更新可能出现协议不兼容表现为设备能识别但一开流就报错。养成习惯上手第一件事就是把固件更新到与 SDK 匹配的版本能省掉后面一大堆莫名其妙的排查。4.2 搭建最小可用管线这类 SDK 的核心概念叫管线Pipeline你可以理解成一条数据流水线数据从相机流入经过一系列处理节点最后要么留在设备内被消费要么传给主机。搭建的时候先把节点建出来再连起来最后启动。下面是一个最小可用的双目深度管线骨架import depthai as dai # 1. 创建管线 pipeline dai.Pipeline() # 2. 创建左右两个单色相机节点 mono_left pipeline.create(dai.node.MonoCamera) mono_right pipeline.create(dai.node.MonoCamera) # 3. 创建深度节点 stereo pipeline.create(dai.node.StereoDepth) # 4. 配置相机分辨率和位置 mono_left.setResolution(dai.MonoCameraProperties.SensorResolution.THE_400_P) mono_left.setBoardSocket(dai.CameraBoardSocket.LEFT) mono_right.setResolution(dai.MonoCameraProperties.SensorResolution.THE_400_P) mono_right.setBoardSocket(dai.CameraBoardSocket.RIGHT) # 5. 配置深度参数 stereo.setDefaultProfilePreset(dai.node.StereoDepth.PresetMode.HIGH_DENSITY) stereo.setLeftRightCheck(True) # 左右一致性检查 stereo.setSubpixel(True) # 开启子像素提升精度 # 6. 连接节点 mono_left.out.link(stereo.left) mono_right.out.link(stereo.right) # 7. 创建输出队列并启动 xout pipeline.create(dai.node.XLinkOut) xout.setStreamName(depth) stereo.depth.link(xout.input) with dai.Device(pipeline) as device: queue device.getOutputQueue(namedepth, maxSize4, blockingFalse) while True: frame queue.get() depth_map frame.getCvFrame() # 这里可以接你自己的处理逻辑提示不同大版本的 SDK 在节点命名和配置方式上有差异上面的写法是常见的一种。你在照搬之前先对照你安装的 SDK 版本文档确认一下节点名和属性名避免因为版本差异卡在第一步。核心思路是通用的建节点、连节点、配置参数、开队列读数据。跑起来之后你会拿到一张深度图每个像素的值代表那个点离相机的距离。近距离目标在这个图上会呈现明显的灰度变化你可以把它转成伪彩色直观地看也可以直接按像素取距离值做测量。第一次跑通的时候建议先在镜头前 20 到 30 厘米放一个有纹理的物体比如印了字的纸盒或者带花纹的摆件这样匹配算法有东西可抓出来的图会干净很多。4.3 关键参数逐项调优管线能跑起来只是起点真正决定效果好坏的是几个关键参数。第一个是左右一致性检查它会把左右视图匹配不上的点直接判为无效好处是砍掉一大批错误深度坏处是深度图上会出现一些空洞就是那些被判定为不可靠的点。在半透明、反光、细窄物体的场景里这个检查会让空洞明显变多。我的调法是先开着它跑看空洞率能不能接受如果目标本身是细长物体空洞太多影响使用可以适当放宽阈值或者配合其他滤波来补。第二个是子像素开关。开着它精度更好尤其在近距离前面算过视差很大亚像素那点改善是实打实能测出来的代价是计算量上升帧率可能往下掉一点。近距离测距场景下我一般建议开着因为精度就是这类相机存在的意义。第三个是置信度阈值。很多实现会给每个像素输出一个匹配置信度你可以设一个门槛把低置信度的点过滤掉。门槛设高了图干净但空洞多设低了噪声多但稠密。这个真的没有万能值得看你场景里纹理情况和光照条件我一般会把不同阈值下的深度图都存下来对比选一个空洞和噪声平衡得最好的。实操心得调参千万不要一次改好几个再一起看结果那样出了问题根本不知道是哪个参数导致的。一次只动一个改完记录一下参数组合和对应的深度图攒几次你就能摸清每个参数在这台相机上的手感这个过程比看任何文档都快。4.4 结果验证与数据留档参数调得差不多之后一定要做定量验证不能光靠肉眼看深度图感觉得不错。做法很简单在镜头前固定几个已知距离的目标20 厘米、30 厘米、50 厘米各放一个然后读取深度图在这几个位置上的数值和卷尺量出来的真值对比。你会发现两个规律一是近距离误差确实很小通常几毫米级别二是可能存在一个系统性偏移也就是所有点都偏同一个方向、同一个大致幅度。系统性偏移很常见来源可能是厂商标定参数和你实际装配之间的误差也可能是温度引起的漂移。如果偏移量稳定你可以在软件里直接减去一个常数做补偿简单有效。如果偏移量不稳定、随距离或温度变化那就得考虑重新标定这个放到下一节说。每次验证记得把原始深度图、参数配置、实测距离都留档做成一个简单的记录表。这些记录在后续出问题的时候能帮你快速定位是一直就这样还是最近才变坏排查效率差好几倍。4.5 标定什么时候必须做怎么做标定这个话题很多人一上来就想做其实没必要。出厂标定对大多数应用已经够用了只有当你的精度要求很严、或者相机在运输和装配过程中受到过碰撞、或者你发现实测存在明显且不稳定的偏差时才需要自己动手。双目标定的核心是求两件事每个相机的内参焦距、主点、畸变系数和两个相机之间的外参相对位置和姿态也就是基线和夹角。常见做法是用一块已知图案的标定板在相机视野内的不同位置和角度拍十几到几十张图然后用标定算法解算。标定板要覆盖整个视野尤其要覆盖边缘区域因为畸变在边缘最明显只拍中间几张图标出来的参数外推会不准。标定时目标距离要尽量贴近你实际使用的距离范围近距离相机就在近距离标别跑到一米开外去标那样解出来的参数在你真正用的时候会偏。注意标定完之后要立刻做一轮验证把刚才那几个已知距离的目标重新测一遍看误差有没有变小。如果标定后误差反而变大了大概率是标定板的图像质量不行或者拍摄姿态覆盖不够别急着怀疑算法先回头检查标定数据本身。5. 常见问题与排查技巧实录5.1 深度图全是空洞或噪点这是最高频的问题我遇到的十次里有七八次都是纹理或者光照的锅。双目立体视觉靠的是左右图中找到同一个物理点的对应位置如果那个点周围一片纯色、没有任何花纹算法根本无从下手自然给不出深度。白墙、纯色桌面、金属光面都是重灾区。解决办法有两个方向一是给场景加纹理贴点胶带、铺个带图案的垫子、投射一些随机散斑都能立竿见影二是调参数放宽一致性检查、降低置信度门槛能补回来一部分但治标不治本。光照问题是另一个大坑。光太强导致过曝图像一片死白纹理全丢了光太弱导致噪点主导匹配全是错的。近距离场景下光照不均尤其明显因为补光灯或者环境光往往集中在某一块。我一般会先看一眼原始的单色图像如果图像本身就已经过曝或者太暗那深度图有问题就是必然的先去解决照明别在算法参数里瞎折腾。这一条能帮你省下大量时间。反光和透明物体则是先天无解的类型。镜面反射会让左右相机看到完全不同的画面玻璃和透明塑料会让光线穿透导致测到背景的距离这两种情况目前没有纯软件的好办法只能靠改变物体表面喷哑光涂层或者改变打光角度避开镜面反射方向来缓解。5.2 测出来的距离系统性偏移如果你发现所有点的距离都偏了而且偏的方向和幅度比较一致先别慌这大概率是标定参数或者装配误差。第一步做的是确认偏移是否稳定在不同距离、不同时间各测一轮如果偏移量基本不变那就是个固定偏差软件里减掉就行成本最低效果最好。如果偏移随着距离变化那可能是焦距或者基线参数不准需要重新标定。如果偏移还会随时间或者温度变化那就要怀疑是热漂移了。相机跑久了发热机械结构微小的热胀冷缩会让基线发生一点点变化虽然量很小但双目的精度对基线很敏感。这种漂移在长时间连续工作时比较明显。缓解办法一是改善散热别让相机长时间高温工作二是在软件里做周期性自校准比如每隔一段时间对一个已知距离的基准目标测一次动态修正偏移量。这个做法在工业场景里很常见值得借鉴。还有一种容易误判的偏移其实是坐标系问题。深度图里的距离是沿相机光轴方向的而你可能需要的是到某个参考平面的距离或者物体表面的真实欧氏距离。这两个不是一个概念量程越近、目标越偏视野边缘差异越明显。换算的时候要把内参考虑进去别直接用深度值当欧氏距离用。5.3 发热、掉线与帧率抖动前面提过小体积相机的散热挑战这里说说具体表现。发热的典型症状是刚开机深度图很干净跑十几分钟之后空洞和噪点开始变多帧率也可能从满帧往下掉。出现这种情况先摸一下外壳温度如果明显烫手那就是散热问题。处理方式包括给相机加一个小散热片或者导热结构、在机壳上开通风孔、降低算力负载比如关掉一些后处理、降低分辨率。如果设备本身是金属外壳往往可以把热量导到整个结构上效果比单独给芯片散热好得多。掉线问题的排查顺序是这样的先换一根高质量的短数据线很多掉线就是线材或者接口接触不良引起的再看供电尤其是 USB 口供电不足的情况下高负载时电压跌落会导致设备重启换成带独立供电的接口或者加一个有源集线器往往能解决最后才怀疑设备本身。我遇到过好几次设备有质量问题最后发现是主机 USB 口带不动的情况先排查供电能省下不少退换货的麻烦。帧率抖动则多半和主机的调度有关尤其当主机同时在跑其他重负载任务时。如果对稳定性要求高尽量把后处理放到设备端完成减轻主机负担同时把主机上的电源管理设置调成高性能模式避免系统为了省电降频导致数据流卡顿。5.4 快速排查速查表把上面这些常见问题整理成一张表出问题的时候可以照着从上往下排查效率高很多现象最可能的原因优先排查动作深度图大面积空洞场景缺纹理或光照过曝/过暗先看原始单色图加纹理或改照明边缘锯齿严重滤波太弱或分辨率偏低提升深度分辨率加中值滤波全图系统性偏移且稳定标定参数或装配误差测多距离确认稳定性软件补偿偏移随温度变化热漂移导致基线微小变化改善散热加周期性自校准跑一段时间后噪点增多芯片过热降频检查外壳温度降负载或加散热使用中突然掉线重启线材或供电不足换短优质线检查 USB 供电近距离测值跳变剧烈置信度门槛过低或子像素未开提高门槛开启子像素匹配透明/反光物体测不准物理上无法稳定匹配表面处理或改打光角度这张表覆盖了我实际遇到的大部分情况。需要强调的是排查一定要按顺序来从场景和光照这种外部因素查起再查线材和供电这种物理层最后才怀疑参数和设备。我见过太多人一上来就在参数里疯狂调试结果问题出在一盏灯上白白浪费一整天。6. 典型应用场景与横向选型参考6.1 手部与手势交互近距离深度相机最兴奋的应用场景之一就是手部感知。人在操作设备的时候手和摄像头的距离天然就在几十厘米以内其中手指的姿态识别需要的精度又特别高指尖的深度误差稍大一点手势判定的结果就完全不对了。这种场景下短基线相机的优势发挥得淋漓尽致近距离精度高、体积小可以塞进小型设备、自带算力可以直接在相机里跑手部关键点检测模型主机只接收坐标结果。整套下来延迟低、结构紧凑非常适合做原型。实操上要注意的是手部动作快帧率必须够高不然追踪会跟不上导致关键点跳变。同时手的肤色在单色图里对比度不高纹理相对偏少匹配质量会受一些影响。我的经验是配一个合适的近红外补光给手部打上一层均匀的照明深度图会稳定很多。另外手部追踪对视野要求高动作幅度大了容易出画安装的时候要把相机对准操作区中心留够余量。6.2 工业小件抓取与料盘定位工业场景里有一大类需求是抓取小零件、从料盘里取散乱摆放的物料这些零件普遍在 10 到 40 厘米的工作距离内尺寸又小对深度的分辨能力要求很高。传统大基线相机在这个距离上基本失明而短基线相机恰好在这个区间最准。配合板载算力可以在相机端直接跑一个点云分割或者抓取点检测模型输出的就是机械臂能直接用的坐标中间的坐标变换和滤波都在设备里完成主机负担很轻。这类场景我有两个实操建议。第一工作区的照明要做成漫射的、均匀的别让金属零件反光反光是小件抓取失效率最高的原因。第二料盘、夹具这些固定结构如果会进入视野要注意它们的反光或者纯色表面可能造成深度空洞必要时给它们喷涂哑光材料或者避开视野。把环境整理好这类相机的稳定性能提升一个台阶。6.3 和其它近距离测距方案怎么选近距离测距不是只有双目一条路简单横向对比一下方便你按需求选。结构光方案在近距离也能做到不错的精度且对纹理要求低因为它自己投射图案但成本高、功耗高、对强环境光敏感室外基本没法用。ToF 方案响应快、结构简单但近距离容易饱和、精度受多路径干扰对反光和透明表面也不友好。超声方案便宜、对光照不敏感但分辨率极低、波束角大只能测个大致的距离做不了稠密深度图。双目方案的优势就很明确了稠密深度图、成本可控、对光照相对宽容、体积可以做到很小代价是需要纹理、算力消耗大。所以选择逻辑大致是需要稠密深度图且场景有纹理、成本敏感、光照条件可控选双目场景缺纹理且必须打光才能感知考虑结构光只需要单点或者粗距离、完全不在乎纹理超声或者简单红外测距就够了。想清楚你要的是一张稠密深度图还是一个距离数值选择就很快了。我个人在这个项目上的体会是短基线双目这类设备真正的价值不在参数表上而在于它把近距离高精度和小体积自带算力这两件事捏到了一起。以前要在近距离做稠密感知要么上昂贵的工业方案要么自己拼双目模组加算力板麻烦且不稳定现在一块很小的模块就能搞定。最后分享一个小技巧这类相机上手时先在镜头前摆一个印着不规则文字的纸盒当靶子文字提供了天然的丰富纹理用它来跑通初始管线、验证精度、观察参数影响比用任何规整物体都直观等你熟悉了它的脾气再换成真实场景效率会高很多。这个习惯我一直保留着对新手尤其友好。
返回列表