基于局部特征的分块图像注释方法,利用EBike-DET数据集和主流物体检测模型,提升复杂电梯场景中的电动自行车检测。
Method Article
基于局部特征的分块图像注释方法,利用EBike-DET数据集和主流物体检测模型,提升复杂电梯场景中的电动自行车检测。
电动自行车(EBikes)在住宅电梯等密闭环境中的使用日益增加,带来了严重的安全隐患,并带来了自动化物体检测的重大挑战,尤其是由于频繁的遮挡问题。传统检测方法主要依赖整体注释,常常无法准确识别视觉复杂场景中部分遮挡的电子图标。为克服这些局限,本研究提出了一种基于局部特征的新颖分块注释方法,提供了更易解释的注释策略。通过将EBike分解为多个关键区域以便独立标记,该方法使检测模型能够学习细粒度结构信息,从而提升在遮挡重条件下的鲁棒性。此外,开发了一个专门数据集EBike-DET,用于支持真实电梯场景下的检测任务。该数据集采用分块方法注释,并辅以模拟环境条件,提升了模型性能和适应性。该方法通过使物体检测更加透明和结构可解释性,促进可解释人工智能(XAI)的发展,这在安全关键应用中尤为重要。采用三种主流模型(YOLOv5、YOLOv10和SSD)进行了大量实验。结果显示,YOLOv5在EBike-DET上带分块注释训练时,精度提升为3.7%,回忆提升5.3%,F1评分提升4.5%,mAP提升4.4%。与公开数据集相比,EBike-DET在遮蔽下表现出更高的稳定性和鲁棒性。这项研究不仅提升了检测准确性,也为在现实安全监测系统中部署的更具解释性和解释性的人工智能解决方案迈出了一步。
随着电动自行车(EBikes)在全球的快速普及,尤其是在中国,到2022年总数超过3.5亿辆,电动自行车已成为短途交通的主导方式。然而,它们在住宅电梯等狭小空间的频繁使用,带来了严重的安全风险,包括异常振动、设备损坏、异味和火灾隐患。一项最新研究估计,EBike相关的火灾事件发生概率约为1.44%。这些风险凸显了对高效且准确的EBike检测方法的紧迫需求,以提升电梯环境中的安全。
尽管计算机视觉和深度学习取得了进步,电梯中的电子电子检测仍然充满挑战。公开数据集稀缺,且EBike模型、颜色和遮蔽条件的多样性常常不足,限制了模型的泛化2.此外,电梯场景常涉及复杂的遮挡,电子键部分被乘客或结构部件遮挡,进一步降低了检测精度3、4、5。现有的整体注释方法将电子图标视为单一边界框,但在这种情况下常常失败,这表明需要改进注释和检测策略。如表1所示,整体注释导致性能显著下降,相较分块注释,交叉点与并集(IoU)阈值的平均精度降低最多21.5%,为0.5(mAP@0.5)。
基于深度学习的检测进展
深度学习方法,尤其是卷积神经网络(CNN),已被广泛应用于物体检测领域。你只看一次(YOLO)系列展现了强大的实时性能。然而,在检测遮挡或重叠物体时,YOLO模型往往会产生冗余的包围框。例如,YOLOv5通过深度卷积和特征金字塔网络6,7增强了多尺度特征提取,而YOLOv10则消除了非极大抑制,并采用路径聚合网络提升速度,并实现多尺度融合8,9。尽管有这些改进,冗余的边界盒和在遮挡重环境中稳健性下降的问题仍未解决。然而,当关键的电子比克结构部分被阻挡时,两者都会受到影响,因为整体注释提供的局部线索有限。 如图1A-C所示,这一限制导致了冗余的边界盒和在中度或重度遮蔽下的检测置信度不稳定。相比之下,分块注释通过使模型能够检测独立区域(如轮子或后部区域)来缓解这一问题,从而减少在遮挡下重复的边界框。 图1D-F进一步展示了分块注释能改善特征定位,并在仅部分EBike组件可见时保持检测稳定性。
同样,基于VGG-16骨干的单次多方检测器(SSD)型号10,11在不同尺度上高效检测,并在小物体12上表现良好。然而,SSD在特征连续性被严重遮挡破坏时也会遇到困难,导致检测遗漏或盒回归不稳定——即使引入了注意力机制13。分块注释在这里也有优势:模型仍可依赖剩余可见的局部部分,提高多尺度和遮蔽条件下的检测稳定性。
注释策略与局部特征学习
大多数当前检测方法采用整体注释,简化注释,但主要依赖全局特征14,15。当关键的EBike区域——如轮子、前部或后部区域——部分缺失时,这种方法会显得困难。一项最新研究16显示,局部特征学习将对象分割成多个注释部分,能够在具有挑战性的场景中提升鲁棒性和精确性。与此一致,表2的结果显示,当至少40%-60%的关键EBike组件仍可见时,分块注释依然有效,尤其是在标注车轮、前部和后部区域时。相比之下,在低遮挡场景(例如<20%遮挡)或图像分辨率为≥1280 x 720且保留完整轮廓的情况下,整体包围框仍然足够。当遮挡超过≈70%,或特征层面区域过小无法提供区分空间信息时,分块的益处会减弱。
使用哈里斯角检测的方法论依据
哈里斯角检测因其确定性行为、计算效率和无训练特性而被选用于局部特征提取,这些对于电梯环境中可靠的注释至关重要。与SuperPoint和LoFTR等可学关键点检测器不同,它避免了额外训练,并在有限的注释数据和重度遮蔽下减少了域位移。与 Canny 和 Sobel 等基于边的算符相比,哈里斯角强调几何意义的交汇,而非噪声背景边,从而实现了 EBike 结构(包括车轮和框架交点)的稳定定位。此外,哈里斯角检测还提供了可解释的超参数。经验常数 k 控制角灵敏度和稳定性。如第2.6.2.4节和 图2所示,调整 k 有助于在鲁棒性和过度检测之间实现受控平衡,这与提出的基于规则的分块注释策略非常契合。
数据增强以实现鲁棒性
数据增强已被证明有效提升检测模型的多样性和适应性。常用技术包括几何变换(如旋转、缩放、裁剪)和色彩调整(如灰度、亮度调整),这些都模拟了现实世界条件和光照变化 17,18,19。通过整合这些策略,检测模型对变异性更具韧性,更适合实际部署。
为解决上述局限性,本研究提出了基于局部特征改进的分块注释方法。该方法通过将电子数据划分为多个独立的注释部分,增强了特征学习和鲁棒性,从而在复杂遮蔽下实现更高效的检测。此外,还构建了专门针对电梯环境的电动自行车检测(EBike-DET)数据集,并通过多样化数据增强以提升模型适应性。最后,该方法在YOLOv5、YOLOv10和SSD上得到了验证,显示出持续的性能提升,分别为+5.69%至+39.81%的mAP,如 表3所示。 贡献可总结为:改进的分块注释方法,增强遮挡条件下特征学习;构建专用的电梯场景EBike-DET数据集;结合多种增强技术;并对主流检测模型进行实验验证,显示出比整体注释更优的精度和鲁棒性。
Access restricted. Please log in or start a trial to view this content.
本研究所用的EBike-DET数据集包括作者通过电梯、停车场和街道环境的现场摄影收集的图像,以及从网络平台获得的公开EBike图像。所有现场图像采集均在非私人环境中进行,仅用于与电子烟检测相关的安全技术研究。图像并非有意针对个人,任何偶然拍摄的人物因距离、遮挡、背向视角或适当处理去除面部特征及其他个人标识而无法识别。网络来源的图片仅来自允许学术研究重用的平台或以开放许可发布的资源。所有图片仅用于非商业研究和教育目的。由于未收集可识别的个人数据,且未与受试者有直接互动,本研究未根据作者的机构指南,无需获得机构伦理委员会的批准。
1. 数据集构建
2. 局部特征分块注释
注意:为提升复杂遮挡场景中EBikes的检测精度,提出了基于改进局部特征的分块注释方法。该方法通过提取EBike区域的局部特征点来分割,并根据对应特征区域的遮挡程度决定是否应注释该区域。详细的实验过程如 图3所示。
(2)
(3)
(4)
(5)
,
(9)
(10)
(14)
和
分别是左上角和右下角的坐标。
(15)
(16)
(17)3. 数据增强
注意:一项先前研究表明,缺乏充分预处理和数据补充的训练数据集常常导致模型性能下降22。为应对这些挑战,采取了以下程序。
4. 实验环境
5. 评估指标
注意:虽然训练和推断中使用分块注释,但评估是在电动自行车对象层面进行的。部分级检测根据第2.4,3节定义的规则汇总为单一电动自行车决策。
(18)
(19)
(20)
(21)Access restricted. Please log in or start a trial to view this content.
公共数据集上整体注释与分块注释的比较
评估基于一个公开数据集进行,包含210张来自开放式监控和交通监控场景的EBike图像,涵盖多样的光照条件、EBike颜色及不同程度的遮挡。每张图片都采用了整体方法(单边界框)和提出的分块方法(将电子图标划分为轮子、前区和后区)进行注释。
定量结果总结于 表1。在YOLOv5中,整体注释精度为0.81,召回率为0.74,F1评分为0.77,mAP@0.5为0.78。使用分块注释训练时,YOLOv5的精度提升至0.86,召回率提升至0.79,F1得分为0.82,mAP@0.5为0.84。这代表与整体注释相比,精确度提升了0.05,召回率提升了0.05,mAP提升了0.06。
同样,YOLOv10也展现了显著的改进。采用整体注释后,模型的精度为0.84,召回率为0.76,F1评分为0.80,mAP@0.5为...
Access restricted. Please log in or start a trial to view this content.
关键步骤
该协议中的关键步骤是基于局部特征的分块注释方法,将电子图标分为轮、前、后三个区域。这一划分确保检测模型能够学习细粒度的表征,这在遮挡重的电梯环境中尤为重要。例如,YOLOv5在EBike-DET数据集上使用分块注释训练,其mAP@0.5从0.925提升到0.966,凸显了准确的局部特征划分对于稳健性能的必要性。此外,哈里斯角检测阶段是局部特征提取的重要预处理步骤。经验常数(k=0.05)的选择对于优化角点检测结果尤为重要,因为偏差(k=0.04或k=0.06)要么增加假阳性,要么降低特征敏感性。
方法的改进与故障排除
可以通过多种修改来提升方法的稳健性。首先,可以引入自适应角检测阈值,使系统能够动态调整不同的光照和遮挡水平。这一调整还能进一步减少误探现象,尤其是在光线频繁变化的电梯场景中。其次,在数据集构建过程中整合多尺度增强...
Access restricted. Please log in or start a trial to view this content.
作者之间没有利益冲突。
本工作得到了中国教育部2025年人文社会科学科研规划基金(拨款号25YJAZH002)、2024年广东省重点学科科研能力提升项目(拨款号2024ZDJS086)、广东省2024年本科创新创业培训项目(拨款号S202413714017)以及教育部就业-教育联通项目的支持: 《面向人工智能技术的计算机应用专业人才培养机制创新与实践》(资助编号2025072869464)。
Access restricted. Please log in or start a trial to view this content.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| h5py(固态硬盘) | HDF集团 | 2.10.0 | |
| matplotlib(固态硬盘) | Matplotlib 社区 | 3.1.2 | |
| matplotlib (YOLOv10) | Matplotlib 社区 | 3.9.0 | |
| matplotlib (YOLOv5) | Matplotlib 社区 | 3.8.4 | |
| matplotlib (YOLOv5+SAHI) | Matplotlib 社区 | 3.8.4 | |
| matplotlib (YOLOv8-Seg) | Matplotlib 社区 | 3.9.0 | |
| numpy(固态硬盘) | NumPy 社区 | 1.17.0 | |
| numpy(YOLOv10) | NumPy 社区 | 1.26.3 | |
| numpy(YOLOv5) | NumPy 社区 | 1.26.4 | |
| numpy(YOLOv5+SAHI) | NumPy 社区 | 1.26.4 | |
| numpy (YOLOv8-Seg) | NumPy 社区 | 1.26.3 | |
| onnx(YOLOv10) | ONNX | 1.14.0 | |
| onnx (YOLOv5) | ONNX | 1.14.0 | |
| onnx (YOLOv5+SAHI) | ONNX | 1.14.0 | |
| onnxruntime (YOLOv10) | Microsoft | 1.15.1 | |
| onnxruntime (YOLOv5) | Microsoft | 1.15.1 | |
| onnxruntime (YOLOv5+SAHI) | Microsoft | 1.15.1 | |
| opencv-python(SSD) | OpenCV | 4.1.2.30 | |
| opencv-python (YOLOv10) | OpenCV | 4.9.0.80 | |
| opencv-python (YOLOv5) | OpenCV | 4.9.0.80 | |
| opencv-python (YOLOv5+SAHI) | OpenCV | 4.9.0.80 | |
| opencv-python (YOLOv8-Seg) | OpenCV | 4.9.0.80 | |
| 熊猫(YOLOv10) | 熊猫社区 | 2.2.2 | |
| 熊猫(YOLOv5) | 熊猫社区 | 2.2.2 | |
| 熊猫(YOLOv5+SAHI) | 熊猫社区 | 2.2.2 | |
| pandas(YOLOv8-Seg) | 熊猫社区 | 2.2.2 | |
| 枕头(SSD) | 枕头开发者 | 8.2.0 | |
| 枕头(YOLOv10) | 枕头开发者 | 10.2.0 | |
| 枕头(YOLOv5) | 枕头开发者 | 8.5.0 | |
| 枕头(YOLOv5+SAHI) | 枕头开发者 | 8.5.0 | |
| 枕头(YOLOv8-Seg) | 枕头开发者 | 10.2.0 | |
| psutil (YOLOv10) | Psutil 开发者 | 5.9.8 | |
| psutil (YOLOv5) | Psutil 开发者 | 5.9.8 | |
| psutil (YOLOv5+SAHI) | Psutil 开发者 | 5.9.8 | |
| pycocotools (YOLOv10) | COCO联盟 | 2.0.7 | |
| pycocotools (YOLOv5) | COCO联盟 | 2.0.7 | |
| pycocotools (YOLOv5+SAHI) | COCO联盟 | 2.0.7 | |
| pycocotools (YOLOv8-Seg) | COCO联盟 | 2.0.7 | |
| py-cpuinfo (YOLOv10) | Py-CPUInfo 开发者 | 9.0.0 | |
| py-cpuinfo (YOLOv5) | Py-CPUInfo 开发者 | 9.0.0 | |
| py-cpuinfo (YOLOv5+SAHI) | Py-CPUInfo 开发者 | 9.0.0 | |
| PyYAML (YOLOv10) | PyYAML | 6.0.1 | |
| PyYAML (YOLOv5) | PyYAML | 6.0.1 | |
| PyYAML (YOLOv5+SAHI) | PyYAML | 6.0.1 | |
| PyYAML (YOLOv8-Seg) | PyYAML | 6.0.1 | |
| 请求(SSD) | Python 请求 | 2.27.1 | |
| 请求(YOLOv10) | Python 请求 | 2.32.3 | |
| 请求(YOLOv5) | Python 请求 | 2.31.0 | |
| 请求(YOLOv5+SAHI) | Python 请求 | 2.31.0 | |
| 萨希 | SAHI开发者 | 0.3.4+ | |
| SCIPY(固态硬盘) | SciPy 社区 | 1.2.1 | |
| Scipy(YOLOv10) | SciPy 社区 | 1.13.0 | |
| Scipy(YOLOv5) | SciPy 社区 | 1.13.0 | |
| Scipy(YOLOv5+SAHI) | SciPy 社区 | 1.13.0 | |
| scipy (YOLOv8-Seg) | SciPy 社区 | 1.13.0 | |
| 海生(YOLOv10) | 海生开发者 | 0.13.2 | |
| 海生(YOLOv5) | 海生开发者 | 0.13.2 | |
| 海生(YOLOv5+SAHI) | 海生开发者 | 0.13.2 | |
| 海生(YOLOv8-Seg) | 海生开发者 | 0.13.2 | |
| 身材优美(YOLOv5+SAHI) | Shapely 开发商 | 2.0.4 | |
| 固态硬盘 | Caffe/原始SSD作者 | Python 3.6.13+;PyTorch 1.2.0+;CUDA 10.0;CUDNN 7.4.1 | |
| 张量板(SSD) | 谷歌 | 2.10.1 | |
| 张量板(YOLOv5) | 谷歌 | 2.16.2 | |
| 张量板(YOLOv5+SAHI) | 谷歌 | 2.16.2 | |
| Torchvision(SSD) | PyTorch | 0.4.0 | |
| 火炬视界(YOLOv10) | PyTorch | 0.15.2 | |
| 火炬视野(YOLOv5) | PyTorch | 0.17.2 | |
| 火炬视界(YOLOv5+SAHI) | PyTorch | 0.17.2 | |
| 火炬视界(YOLOv8-Seg) | PyTorch | 0.16.1+ | |
| tqdm(固态硬盘) | TQDM 开发者 | 4.60.0 | |
| tqdm (YOLOv10) | TQDM 开发者 | 4.66.4 | |
| tqdm (YOLOv5) | TQDM 开发者 | 4.66.2 | |
| tqdm (YOLOv5+SAHI) | TQDM 开发者 | 4.66.2 | |
| 超溶剂(YOLOv8-Seg) | 超溶菌 | 8.2.99+ | |
| YOLOv10 | YOLOv10 团队 | Python 3.8.0+;PyTorch 2.0.1+cu118;CUDA 11.8;CUDNN 8.7 | |
| YOLOv5 | 超溶菌 | Python 3.8.0+;PyTorch 2.2.2+;CUDA 11.2;CUDNN 8.1.2 | |
| YOLOv5 + SAHI | Ultralytics + SAHI 开发商 | Python 3.8.0+;PyTorch 2.2.2+;CUDA 11.2;CUDNN 8.1.2 | |
| YOLOv8-Seg | 超溶菌 | Python 3.8.0+;PyTorch 2.0.1+cu118;CUDA 11.8;CUDNN 8.6.0+ |
Access restricted. Please log in or start a trial to view this content.
Request permission to reuse the text or figures of this JoVE article
Request Permission