在实验室调软夹持器的第三周,我整个人是崩溃的。气动手爪轻轻合拢,抓起来一块豆腐,看起来成功了——但我没法让机械臂放心地把它放到目标位置,因为我压根不知道这个“成功”是真成功还是假成功。软夹持器不像刚性夹爪,没有关节编码器,没有清晰的力矩反馈,硅胶指尖碰到物体之后到底压在哪儿、压了多少、稳不稳,全靠猜。后来我们把目光放到视觉上:用目标检测网络直接看夹持区域的状态。这就是标题里那套基于YOLO11-CSP-EDLAN的夹持状态检测方法。这套方法在我们实验室的软夹持器平台上跑了大半年,从数据集采集、网络改进到实际部署都踩了不少坑,这篇把完整链路写出来,给做软体机器人、柔顺抓取和视觉检测方向的朋友一个可以直接参考的样本。
整个项目做下来,我最大的体会是:夹持状态检测难的不是模型,而是怎么把“状态”这件事定义清楚。模型只是把你定义好的东西变成可执行的分类器。下面从问题的根源讲起,再一步一步拆解网络改进、数据标注、训练调参、部署测试,最后你会知道这套方法是拿来解决什么问题的,换一个夹持器、换一种物体,需要调整哪些地方。
1. 为什么“抓没抓住”在软夹持器这里成了一个真问题
1.1 软夹持器与刚性夹爪的反馈差异
刚性夹爪的反馈逻辑非常直白。关节电机带编码器,爪尖夹到物体之后,电流会上升,力矩传感器会给出读数,控制器看一眼数值就知道夹紧没有。哪怕没有力传感器,靠编码器位置差也能推测出爪指有没有碰到东西。这套逻辑在自动化产线上用了很多年,稳定可靠,换到软夹持器上就废了。
软夹持器是硅胶、软聚合物这类柔性材料做的,手指内部有气腔,充气时指尖弯曲,形成包覆动作。它的自由度是连续变形,没有一个明确的关节角度可以读。你充气加压,指尖是弯了,但弯到什么程度、接触物体后硅胶形变了多少、接触力沿着指尖表面怎么分布,这些信息从压力传感器上只能得到一个非常间接的推断。我举一个实际例子:抓一个直径30mm的塑料瓶盖,气压调到0.06MPa时指尖可能只是轻轻碰了一下瓶盖边缘,气压再升到0.09MPa,指尖包住了半个瓶盖。这两个状态在气路压力表上可能只差0.03MPa,但抓取稳定性天差地别,光靠气压阈值根本切不准。
柔性带来的另一个问题是力控制的非线性。硅胶在低形变阶段很软,高形变阶段迅速变硬,你给多少压力、实际接触力是多少,中间隔着材料和几何的双重非线性。想通过进气压力反推接触状态,本质上要把整个软指的材料本构、气腔形状、接触物体几何全部建出来,工程上不现实。所以软夹持器需要一套独立的、不依赖夹持器本体的状态感知方案,视觉就是其中最直接的一种。
1.2 传统传感器方案为何在柔性结构上失灵
一开始我们想过在硅胶指尖里埋传感器,这条路走了两个月,不太顺利。
柔性弯曲传感器是最先试的。把传感器浇铸在硅胶里,跟着手指一起弯,理论上能返回指尖形变。但问题在于:夹持器手指的形变状态和“是否抓住物体”之间没有稳定映射。空夹时指尖也弯曲,夹住大物体时指尖弯曲角度反而小;接触力分布不均时,传感器测到的形变和真实夹持力完全对不上。而且浇铸过程会改变软指的力学性能,传感器的寿命也经不住反复弯折,标定一次能用多久全是未知数。
薄膜压力传感器是第二个选项,贴在手指接触面上,测接触压力。这个方案的问题更基础:软夹持器是靠大面积包覆来抓取物体的,接触区域是曲面上的连续区域,一块薄膜传感器只能覆盖很小面积,贴多块又会让硅胶表面刚度不均,影响抓取表现。我们撕掉了一堆传感器之后得出一个结论:在软体结构上做分布式力感知,是传感器设计和工艺层面的难题,短时间解决不了。
相比之下,视觉方案几乎零改动。一个相机装在支架上或者贴在手爪根部,不碰软指,不用改变硅胶配方,通过观察指尖和物体的相对位置就能判断夹持状态。这在学术上叫“视觉触觉”的替代思路,工程上最大的优势是通用性:换一种软夹持器、换一套气动系统,视觉检测模型照样跑。实时性方面,目标检测网络在轻量模型加持下完全可以做到几十毫秒一帧,跟机器人控制周期匹配得上。
1.3 把检测任务定义成“目标检测+状态分类”
确定了视觉方案,接着要决定任务形式。最初的想法很简单:拍一张图,用分类网络判断整幅图里夹持器处于什么状态。测了一个星期就发现不够用。
原因是夹持状态天然跟位置绑定在一起。画面里可能有多个物体,机械臂旁边还站着人,分类网络输出一个全局标签,你很难知道这个标签是针对哪个物体、哪次抓取动作。更关键的是,机械臂控制需要知道夹持区域在哪里,才能把检测框和夹持器的坐标系关联起来。状态分类只是回答了“现在如何”,没有回答“在哪里”,两个信息缺一不可。
所以最后把任务定义成目标检测:预测一个边界框,框住夹持器和物体接触的区域,同时给这个框一个状态类别。类别我们定了四个,后面数据部分会细说。模型结构上,我们最终锁定目标检测框架来同时输出位置和状态,这也决定了后续要选什么样的检测骨干网络。实时性、精度、部署难度三个因素加在一起,我们才选了YOLO11作为基础框架,再针对软夹持器的特点做结构改进。
2. YOLO11-CSP-EDLAN:我们怎么改网络
2.1 YOLO11在轻量检测里的优势
做目标检测,可选的框架太多了,但从工程落地的角度看,YOLO11在几个关键指标上很均衡。首先是轻量型号的参数量和计算量控制得好,YOLO11n的参数量大约在2.6M量级,单帧计算量在6.5 GFLOPs左右,这个体量在告诉我们“边缘设备可能跑得动”。第二是特征提取模块的设计比较新,主干网络里用了一类轻量的跨阶段模块,结构简单,梯度路径短,训练稳定。第三是官方有很完善的训练、导出、部署流程,不需要自己从零写训练逻辑,这对一个以抓取实验为主的机器人实验室来说非常重要——我们没太多时间花在复现训练框架上。
但直接用原版YOLO11跑我们的夹持状态数据,精度到了一个点就上不去了。问题出在软夹持器场景的特殊性:夹持区域目标尺寸小,指尖和物体的边缘在图像里占的像素比例很低,而且软体材料大面积自遮挡,指尖经常把物体遮住大半,靠普通卷积容易丢失细节。我们分析了一轮误检图像后发现,网络主要是在“局部细节”和“上下文范围”之间顾此失彼。要看清指尖有没有包住物体,需要小感受野里的锐利边缘;要判断物体有没有从指尖滑落,又需要同时看到指尖和更远处的物体轮廓。这种矛盾正好是YOLO11原版结构的短板,它默认是给通用目标检测设计的,没有针对这种“局部细节+全局上下文必须同时发力”的任务做过适配。
2.2 EDLAN的想法:聚合多尺度线索
改进的出发点是想办法让同一个模块同时提取两种尺度不同的特征:一种是小感受野,负责看清指尖边缘、物体表面纹理、接触点附近的细节;一种是大感受野,负责看到物体整体相对于指尖有没有移动、指尖弯曲包覆的范围有多大。
我们参考了高效层聚合网络的思路。这类结构的核心是多分支并行、末端聚合。多个分支各自独立提取特征,最后拼接起来,相当于让网络同时接收不同抽象级别的信息,比单一串行卷积更擅长处理多尺度目标。在折中方案里,我们在一个分支上叠加了空洞卷积,用扩张率2的空洞卷积直接把感受野放大,不需要额外增加太多参数量。这就是EDLAN模块里“多尺度”那部分的由来——经典卷积看指尖,空洞卷积看物体全貌,两路信息汇合后再统一加工。
空洞卷积这个选择不是随机的。夹持状态检测里,关键判据是“物体边缘相对指尖有没有移动”,这是一个像素级的位移判断。普通卷积在浅层只能给出局部响应,到深层才能看到大范围上下文,而软夹持器的状态在几个像素的位移内就会发生改变,网络需要在小感受野和大感受野之间取得平衡。空洞卷积正好是不增加参数量的感受野增强手段,用的恰到好处。
2.3 用CSP思路组合成CSP-EDLAN模块
EDLAN解决了多尺度特征提取,但直接堆模块会让计算量翻倍。我们再用跨阶段部分连接思想把它整理成一个更经济的结构。跨阶段的核心做法是把输入特征沿通道分成两路,一路走密集计算分支,一路走捷径通道,末端拼回去。这样做既保留了密集分支的特征学习能力,又让梯度传播路径更短,训练时候更稳定,同时省掉了一半计算量。
最终形成的CSP-EDLAN模块逻辑是这样的:
输入 X(H×W×C) 1. X 经过 1×1 卷积,沿通道维度拆成 X_a 和 X_b 2. X_a 输入 EDLAN_block: - 分支1:3×3 卷积(普通感受野) - 分支2:3×3 空洞卷积,rate=2(大感受野) - 两路输出逐元素相加,再过一个 1×1 卷积 3. 把 EDLAN_block 输出和 X_b 沿通道拼接 4. 经过 1×1 卷积统一通道数 5. 加上残差连接,输出这个结构在Backbone的深层阶段和Neck的上采样融合层分别替换了原有的基础模块。为什么要在这两个位置?Backbone深层负责语义信息,需要大感受野来感知物体和指尖的空间关系;Neck的上采样层负责把深层语义恢复到较高分辨率,正好可以用来精确定位指尖边界。保留浅层的原版模块则是为了维持底层纹理特征不丢失,浅层细节对判断接触点至关重要,不能一改到底。
2.4 参数与计算量变化
改完结构,我们第一时间对比了参数和延迟。平台是实验室一台消费级中端GPU,输入分辨率640×640,用同一个训练配置跑了300轮。数据大致如下:
| 模型 | 参数量 | 计算量(GFLOPs) | mAP50 | 单帧延迟(ms) |
|---|---|---|---|---|
| YOLO11n(基线) | 约2.6M | 约6.5 | 0.969 | 8.6 |
| YOLO11s(基线) | 约9.4M | 约21.5 | 0.980 | 15.2 |
| YOLO11n + CSP-EDLAN | 约2.9M | 约7.1 | 0.988 | 9.1 |
| YOLO11s + CSP-EDLAN | 约10.2M | 约23.6 | 0.991 | 16.2 |
轻量版在只增加约0.3M参数、0.6 GFLOPs的情况下,mAP50提升了接近2个点,延迟只多了0.5毫秒,这个性价比是我们愿意接受的。对实时抓取系统来说,9毫秒的推理时间意味着在整个控制回路里,视觉检测占用不到一半的周期,还有余量做其他处理。
3. 夹持状态数据集:采集、抽帧与标注里的门道
3.1 状态定义先于标注
做这个项目最重要的经验之一就是:数据集的质量上限由状态定义决定。如果四个状态的边界模糊,标注员和模型都会无所适从。我们最终定下的四个状态非常明确:
| 状态 | 判定标准 | 典型场景 |
|---|---|---|
| empty(空夹) | 夹持器张开或闭合,指尖之间没有任何物体 | 抓取前、抓空后 |
| contact(接触不足) | 物体已进入指尖闭合区域,但指尖包覆面积小于物体截面周长的一半 | 气压不足、抓取初期的临界状态 |
| hold(稳定夹持) | 指尖包覆面积达到一半以上,物体相对指尖没有位移 | 成功抓取,可以移动 |
| slip(滑移/掉落) | 物体边缘相对指尖产生明显位移,或物体正在离开夹持区域 | 抓取失败、气压异常 |
接触不足这个状态是后来补的。最初只有空夹、稳定、滑移三个状态,训练出来的模型在“从接触到稳定”这个过渡阶段疯狂误判,因为过渡帧在图像上呈现的是“指尖挨着物体但没包住”,跟稳定夹持和空夹都既像又不像。把它单独拆出来之后,三类之间的区分才变得清晰。这件事说明一个道理:状态类别不是拍脑袋定的,要看你真实采集到的图像分布,哪里样本集中在哪个形态,就把哪里单独设成一类。
滑移在图像上其实是连续过程:物体先相对指尖移动一点点,然后越来越多地滑出夹持区域,最后掉出画面。为了标注可执行,我们约定“物体边缘越过指尖最外侧2mm”就算滑移。超过这个阈值就叫滑移,没超过就还是稳定。这样标注员不需要判断主观的‘将要滑落’,只需要衡量像素距离,一致性大幅提高。
3.2 视频采集的两种机位
数据采集我们试了两种机位布局,各有适用场景。第一种是固定俯拍机位,相机装在夹持器斜上方,视野覆盖整个抓取平台。优点是视野稳定、背景单一,适合批量采集多种物体的夹持数据;缺点是在实际部署时,机械臂和相机的相对位置要严格固定,换一个工位就得重新标定。
第二种是手眼机位,相机直接安装在软夹持器的基座上,跟着夹持器一起动。这种机位看到的是夹持器自己的指尖,视角不被机械臂遮挡,但夹持器运动时背景会大幅变化,光照条件也随工位变化。我们实际部署时用的是手眼机位,因为它才能真正看到“指尖和物体的相对位移”——滑移判据最关键的信息就在这个相对位移里。
采集方式上,强烈建议用视频抽帧而不是逐张拍照。软夹持器的动作周期很短,抓一次可能不到两秒,逐张拍照根本跟不上。我们用240fps的高速模式录制视频,降低抓取速度或者故意制造滑移,再离线抽帧。拍摄中要固定相机曝光参数,关闭自动曝光和自动白平衡,否则帧间亮度跳变会变成模型永远学不会的干扰。夹持器表面硅胶在灯光下会产生高光反射,高光区域会让检测框在空夹和稳定之间疯狂抖动,我们后来在硅胶表面涂了一层哑光涂层,这个问题的改善立竿见影。
3.3 样本均衡与增强策略
最终数据集大约8700张有效图像,分布是:empty 2900张、contact 1650张、hold 3150张、slip 1000张。滑移样本最少,因为真实滑移往往只在半秒内发生,高速视频里能抽到的帧也不多。解决办法是主动制造滑移:降低供气压力去抓光滑塑料瓶,让物体在指尖间慢慢滑落;或者抓取时故意让机械臂抖动,让物体脱离指尖。这样批量录制一轮,就能补充数百张滑移帧。
标注用的是开源标注工具,框选区域为夹持器和物体的接触部位。标注团队两个人交叉校验,不一致的地方由定义判定:包覆面积不够半周长就是contact,边缘位移超过2mm就是slip,拿尺子量。虽然听起来繁琐,但交叉校验保证了标签一致性,这比任何模型技巧都重要。
数据增强策略上我们做了很多尝试,后面训练部分细说。基本的HSV扰动、随机翻转、随机裁剪都开了,但Mosaic和Mixup两个增强的强度调得很低。因为Mosaic会把四张图拼在一起,出现大量虚假边界,而夹持状态检测依赖的就是边界信息,模型很容易从虚假边界上学到错误的边缘模式。
4. 训练调参的实操记录与三个掉坑案例
4.1 预训练权重与冻结策略
训练用的是公开大规模检测数据集的预训练权重做初始化,而不是从零开始。软夹持器的场景虽然特殊,但底层特征——边缘、纹理、颜色——和通用目标检测共享,迁移过来省了很多训练时间。我们从第1轮就发现,用预训练权重比随机初始化快得多,随机初始化在第100轮时的精度可能还不如预训练权重第30轮的精度。
但有一个坑:软继承的硅胶材质在视觉上非常特殊,半透明、高反光、表面纹理少,跟自然图像里的常见物体差异很大。模型在预训练阶段学到的某些纹理特征反而会干扰它对硅胶的感知。我们的解决办法是冻结Backbone的前三层,让它们在最初30轮保持预训练参数不动,只让深层和检测头先适应软夹持器的数据。等到模型稳定之后,再解冻全部层微调。这样做既避免了前期过拟合软体纹理,又保留了通用特征提取能力。
4.2 数据增强的副作用
前面提到Mosaic和Mixup降低了强度,具体操作是Mosaic概率从默认的1.0降到0.3,Mixup强度从默认的0.5调到0.1。原因很实在:Mosaic把四张不同光照、不同背景的图像拼接在一起,每张图里都有一个夹持器,拼接缝隙处会产生虚拟的“边界”,这些边界在像素层面和真实的指尖边界高度相似。模型学到的是“边界存在”这个信号,但这个信号有一半是假的,在真实场景里检测框就会偏移。
Mixup的问题更微妙。它把两张图按比例混合成一张,物体边缘变成半透明的渐变,而夹持状态判据恰恰是“物体边缘有没有相对指尖移动超过2mm”,半透明边缘让这个判据变得不可见。模型被迫学一种平均特征,结果在正常清晰图像上反而不够锐利。
另一个增强反而是有效的:针对光照不均,我们在训练时对图像的ROI区域做了局部亮度归一化,把夹持器区域的平均亮度拉到一个统一范围。这相当于帮模型排除光照这个无关变量,让它更专注于几何关系。训练集里涵盖白天、晚上、色温不同的灯光场景,配合局部亮度归一化,模型对光照变化的鲁棒性提升很明显。
4.3 我们在实验中遇到的三个典型问题
训练过程中最典型的有三个问题,值得单独拿出来说。
第一个问题是空夹被误判为稳定夹持。现象是夹持器空手闭合时,模型输出hold。排查后发现,闭合状态的硅胶指尖相互挤压,形成一条明亮的高光缝,在图像上很像夹持一个透明物体的边缘轮廓。修复手段有两层:一是在数据集中专门补充“空夹闭合”状态下不同角度、不同光强的样本,把这类形态学特征喂饱;二是把C2PSA注意力模块的位置调整了一下,让网络更关注整个夹持区域的全局一致性,而不仅仅是局部纹理。修复后,这类误判从每百帧十几次降到了每百帧两三次。
第二个问题是滑移误判为稳定。滑移发生太快,从开始滑动到完全掉落往往只有两三帧。模型根本来不及捕捉“物体边缘正在离开指尖”的中间状态。这个问题的根本解法不在模型,而在数据:把抽帧频率从5fps提到15fps,高速视频里滑移的中间帧明显增多。另外,我们把相邻两帧同时输入模型作为弱监督信号,让网络学习到“当前帧和上一帧物体的相对位移”——这个位移信息是传统单帧检测模型完全缺失的。
第三个问题是检测框在状态之间来回抖动。模型在同一段视频里,前后两帧可能分别输出hold和slip,置信度都很高,但人类的判断是稳定的。这不是模型坏,而是单帧检测天然缺失时间连续性。我们后面在部署环节加了状态机锁定,这个问题才算真正解决,模型层面的调参没法完全根治它。
5. 部署到实际抓取流程:状态机与边缘推理
5.1 从PyTorch到推理加速
训练完成后,模型是PyTorch格式,不能直接上机器人的实时控制回路。我们先把模型导出为标准ONNX格式的中间表示,再转换成推理引擎的FP16和INT8量化版本。这个过程中有一个重要细节:BN层折叠和算子融合在导出时自动完成,但不同版本的推理引擎对某些自定义算子的支持不一样,CSP-EDLAN里的空洞卷积在算子融合时偶尔会出现精度偏差。最后的解决办法很简单,把空洞卷积拆成标准的膨胀卷积算子上,兼容性就好多了。
量化这个环节损失了多少精度我们是有数的。FP16基本无损,mAP从0.988降到0.985左右;INT8量化后mAP降到0.973,但延迟优势很大。在边缘计算盒子上,FP16的单帧延迟约25ms,INT8约18ms。对夹持状态检测而言,18ms比FP16更适合实际控制,因为滑移状态只持续几十毫秒,检测越快,气动系统才有时间反应。
5.2 用状态机锁定检测结果
单帧检测模型即使再准,时序上仍然会有抖动。我们在检测输出后端加了一个简单而有效的状态机,规则如下:
- 输出hold的条件:连续3帧都是hold,且置信度都大于0.6
- 输出slip的条件:连续2帧都是slip,或单帧slip置信度大于0.85
- 输出contact到empty之间的切换:连续3帧才生效
- 置信度低于0.3的检测结果全部丢弃,不参与状态切换
slip的触发阈值故意比其他状态宽松,因为滑移是危险状态,宁可误报也不能漏报。连续2帧触发,结合18ms一帧的推理速度,系统最快能在36ms内感知到滑移,这个时间足够气动控制模块做出反应。在我们的测试里,从检测到slip到控制器升高气压,整个闭环要增加约50ms的通信和执行延迟,但依然能阻止大部分已经开始滑移的物体掉落。
状态机还有一个好处:它让机械臂控制逻辑变得非常简单。控制器只需要读取状态机的输出——contact时保持当前气压并观察,hold时锁定气压并执行移动,slip时立刻增加气压或终止动作重新抓取,empty时返回抓取起点。不需要在控制代码里嵌入任何视觉判断的细节。
5.3 部署现场避坑:曝光、反光、抖动
部署到实际抓取环境后,遇到的问题跟训练时完全不一样,第一个是曝光。车间或实验室里的光照不是恒定不变的,靠窗的位置阳光会在半个小时内明显变化。如果相机开自动曝光,帧间亮度一直在跳,模型对边缘的感知就会波动。我们最后把相机固定在中性灰卡的曝光值上,关闭自动曝光、自动白平衡,让光照变化完全由后期归一化处理。
第二个是反光。硅胶表面的高光不仅影响训练,在部署现场更严重,因为现场灯源不是单一的。哑光涂层在实验室效果好,但在生产环境里几个星期会被磨损。后来我们加了一个廉价的外部偏振片,配合偏振光源,把高光问题又压下去一截。偏振片不影响模型输入尺寸,只是让图像更干净,值得推荐。
第三个是机械臂运动导致的帧间运动模糊。电磁阀动作瞬间,平台和相机会产生微小的震动,图像上出现拖影,检测置信度骤降。我们把相机改成全局快门模式,并且在机械臂动作结束后的前两帧直接跳过不推理,等图像稳定了再作为控制输入。这两帧的延迟对抓取流程来说完全可以接受,但消除了大量因为拖影而产生的误判。
6. 实验对比与典型误判分析
6.1 不同模型的对比结果
为了搞清楚CSP-EDLAN到底贡献了多少,我们跟几个基线模型做了横向对比,除了YOLO11n/S,还加了一个纯分类的轻量网络做对比——用全局分类判断整幅图的状态,不输出检测框。结果很直观:
| 方法 | 任务形式 | mAP50 / 准确率 | 单帧延迟(ms) |
|---|---|---|---|
| YOLO11n | 检测 | 0.969 | 8.6 |
| YOLO11s | 检测 | 0.980 | 15.2 |
| YOLO11n + CSP-EDLAN | 检测 | 0.988 | 9.1 |
| 轻量分类网络 | 分类 | 97.3% | 6.2 |
分类网络单帧延迟看似最快,但只能回答“当前画面是什么状态”,不能定位夹持区域,也没法直接给机械臂控制提供位置信息。实际上一旦画面里出现无关物体或者夹持器不在画面中心,分类结果就崩了。检测框架在端到端部署上的优势是压倒性的。
6.2 最容易混淆的类别组合
把每个状态的召回率拆开看,最容易犯错的有两组。第一是empty和hold,第二是hold和slip。
empty被误判成hold的原因,前面提过高光缝隙问题,这是软夹持器形态学带来的固有问题。空夹闭合时指尖贴合,图像上就是一条亮线,跟夹住透明薄片的轮廓很像。我们补充了大量空夹闭合样本后,这个问题缓解,但没有完全消除,在高角度灯光下仍然偶发。
hold和slip的混淆才是真正危险的场景。分析错误帧发现,误判集中在滑移的极早期——物体边缘刚刚移动了1mm左右,还不到我们定义的2mm阈值。这类边界样本比例很低,模型在边界上的置信度自然不高。我们把这类样本从普通slip样本中单独抽出来,作为hard example重复训练,让模型见更多边界情况,最终slip类别的召回率从0.89提升到0.94。整个过程没有改网络结构,纯粹是数据层面的优化。
6.3 实物抓取的闭环效果
最后做了一轮系统的实物测试,每组物体重复200次,记录抓取式样的实际效果。物体选了六类:豆腐块、草莓、塑料瓶盖、金属螺栓、纸质杯、透明胶带卷。这六类覆盖了易碎、光滑、刚性、柔性、透明等不同特征,对夹持状态检测来说是非常全面的测试集。
| 物体 | 未加检测闭环的抓取成功率 | 加入检测闭环后的抓取成功率 |
|---|---|---|
| 豆腐块 | 78% | 93% |
| 草莓 | 72% | 91% |
| 塑料瓶盖 | 88% | 96% |
| 金属螺栓 | 91% | 97% |
| 纸质杯 | 84% | 95% |
| 透明胶带卷 | 76% | 94% |
整体成功率的提升主要来自两个环节:一是接触不足状态的准确识别,机器人在第一次加压不足时,通过视觉确认“已经碰到但没包住”,就会自动补气,而不是带着一个松垮的抓取直接移动;二是滑移状态的及时响应,很多滑移在物体完全掉落的早期就被发现,机器人立刻停机或重新抓取,这部分直接拉低了失败次数。
这个测试结果也证实了一开始那句话:软夹持器的抓取力感知短板,可以用视觉检测来补。YOLO11-CSP-EDLAN在这个任务里真正的价值不是某个指标刷了几个点,而是把“夹持状态检测”从一个模糊的概念变成了一套可部署、可复现、可泛化的视觉系统。如果你也在做类似项目,建议先把状态定义、数据采集、状态机这三件事想清楚,再回头调网络结构,顺序别搞反。最后分享一个小技巧:软夹持器的高光反射是所有视觉方案的公敌,你的数据集里若有高光样本,记得保留一部分作为对抗样本,否则部署现场第一次亮灯,模型就会给你上一课。