摘要:在现代制造业中,螺丝作为重要的基础紧固件,其尺寸精度直接影响产品的装配质量与运行可靠性。传统人工测量和接触式测量方法存在检测效率较低、操作人员易疲劳以及测量结果受人为因素影响较大等问题。针对上述问题,本文设计并实现了一种基于计算机视觉的非接触式螺丝尺寸智能测量系统。

项目概览

项目简介

系统采用模块化设计,主要包括图像预处理、螺丝分割与对齐、尺寸特征提取、尺寸标定和结果可视化五个核心模块。在图像预处理阶段,采用高斯滤波抑制图像噪声,并利用自适应阈值法完成图像二值化;在螺丝分割阶段,通过形态学闭运算连接轮廓中的断裂区域,并提取最大连通分量作为目标区域;在姿态对齐阶段,结合凸包算法与最小外接矩形计算螺丝的倾斜角度,实现目标的水平方向校正。在特征提取阶段,采用 Savitzky–Golay 滤波器平滑轮廓宽度曲线,通过轮廓宽度变化定位螺丝头部、螺纹及尖端等关键区域,并利用随机采样一致性(RANSAC)算法对轮廓边缘进行鲁棒拟合,从而计算沉头角度。在尺寸标定阶段,设计基于分组标定的多锚点像素—毫米转换机制,以提高不同规格螺丝的尺寸换算精度。

系统开发了基于 PyQt5 的中文图形用户界面和高效的命令行工具,支持单张图像测量与批量处理。测量结果以 JSON 格式保存,同时生成包含尺寸标注的可视化结果图像。通过对16张不同规格螺丝样本进行测试,系统能够自动识别 M4×10、M4×12和M5×12.6等多种螺丝类型,平均测量时间为3.2 s/张,头部直径测量精度达到±0.05 mm,总长度测量精度达到±0.1 mm,大部分尺寸参数的测量误差控制在10%以内,能够满足一般工业检测场景的应用需求。

研究结果表明,该系统能够实现螺丝尺寸的自动化、智能化和非接触式测量,为提高生产检测效率、降低人工成本以及保障产品质量提供了一种具有实际应用价值的技术方案。

系统架构

系统采用模块化分层架构设计,自底向上分为硬件接口层、核心算法层、业务逻辑层和用户界面层四个层次。硬件接口 法层包含自适应混合滤波模块、亚像素边缘检测模块和几何测量模块,各模块独立封装并通过标准接口交互;业务逻辑 层实现了完整的测量流水线,协调图像采集、预处理、边缘检测、标定和尺寸测量等环节;用户界面层基于 PyQt5 框架 mPy 等开源库,具有良好的跨平台性、可维护性和可扩展性。

图1 系统架构图

技术创新

创新点1:基于轮廓宽度梯度分析的螺丝特征区域自适应定位方法

本研究提出基于轮廓宽度梯度分析的自适应定位方法。通过 Savitzky-Golay 滤波平滑宽度曲线,并利用一阶导数自动定位螺丝头部和螺纹区域。该方法无需固定阈值,可适应 M3–M8 等不同规格螺丝,使区域定位准确率由 73% 提升至 95%。

创新点2:多锚点分组标定的高精度尺寸转换机制

本研究提出多锚点分组标定机制,根据参数的空间分布分别标定头部尺寸和纵向尺寸,并利用多个锚点拟合像素—毫米映射关系。相比单一标定系数,头部直径误差由15.2%降至8.5%,总长度误差由12.3%降至5.7%,显著提高了测量精度与一致性。

创新点3:基于 RANSAC 的鲁棒沉头角度测量算法

本研究引入RANSAC算法对沉头斜面轮廓进行鲁棒直线拟合,可自动剔除毛刺、磨损和反光产生的离群点。该方法能够容忍约30%的异常点,使角度测量误差由±5°降低至±1.5°,测量精度提升约70%。

系统局限性

本系统采用普通 USB 相机主要用于功能展示,其镜头存在一定程度的畸变和透视误差,可能会对尺寸测量精度产生影响。在实际工程应用中,建议采用工业相机配合远心镜头进行图像采集,以有效减小透视畸变,并保持较为稳定的成像放大倍率,从而进一步提高尺寸测量的准确性和稳定性。

快速开始

系统基于 Python 3.8+ 开发,依赖 OpenCV、NumPy、SciPy、scikit-learn 和 PyQt5,支持 Windows、Linux 与 macOS。推荐使用 Anaconda 环境,硬件要求为4 GB以上内存和支持 OpenCV 的 CPU,无需 GPU。

环境要求

Python 3.10+ 环境,依赖 OpenCV 5.0+、NumPy 2.0+ 和 PyQt5 5.15+,支持 Windows/Linux/macOS 系统。

运行展示

运行gui.py

图2 系统主界面

图3 螺丝测量结果:M4X12

图4 螺丝测量结果:M5X12.6 long

图5 螺丝测量结果:M5X12.6 short

项目资源

配套文档

点击查看:基于计算机视觉的螺丝尺寸智能测量系统设计与实现 注意:收费提供!

配套文件

包括完整的项目源代码、演示视频、运行截图,开箱即用。

项目信息

作者信息

作者:Bob (张家梁)
项目编号:IP-32-P
原创声明:本项目为原创作品

联系方式

开源协议

本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。

声明:本站所有项目资源都可以正常运行,亲测无错!而且我们录制了演示视频,在我们注明的环境版本下,项目运行效果完全和演示视频一致。客服QQ:下载须知