机器视觉测量实验报告
- 格式:docx
- 大小:3.16 MB
- 文档页数:14
基于机器视觉的智能制造缺陷检测实验报告一、实验背景随着制造业的快速发展,产品质量的把控变得越发重要。
传统的人工检测方式不仅效率低下,而且容易受到主观因素的影响,导致检测结果的准确性和稳定性不足。
机器视觉技术作为一种非接触式、高精度、高速度的检测手段,逐渐在智能制造领域得到广泛应用。
本实验旨在研究基于机器视觉的智能制造缺陷检测方法,提高产品质量检测的效率和准确性。
二、实验目的1、探究机器视觉技术在智能制造缺陷检测中的应用效果。
2、对比不同机器视觉算法对缺陷检测的准确性和效率。
3、分析影响机器视觉缺陷检测的因素,并提出优化方案。
三、实验设备与材料1、工业相机:选用分辨率为_____像素的高速工业相机,用于采集产品图像。
2、光源:采用均匀分布的白色 LED 光源,确保产品表面光照均匀。
3、计算机:配置高性能 CPU 和 GPU 的计算机,用于图像处理和算法运算。
4、检测对象:选取_____产品作为检测样本,这些产品具有不同类型和程度的缺陷。
四、实验方法与步骤1、图像采集调整工业相机的位置、焦距和光圈,确保能够清晰地拍摄到产品的全貌和细节。
控制光源的亮度和角度,使产品表面的光照条件符合要求。
对每个检测对象进行多角度、多批次的图像采集,以获取丰富的样本数据。
2、图像处理对采集到的图像进行灰度化处理,减少数据量,提高处理速度。
采用滤波算法去除图像中的噪声,提高图像的质量。
通过图像增强算法,突出产品的特征和缺陷信息。
3、缺陷检测算法选用了几种常见的机器视觉算法,如阈值分割法、边缘检测法和形态学处理法。
对每种算法进行参数调整和优化,以适应不同类型的缺陷检测。
4、结果评估将检测结果与人工检测结果进行对比,计算检测的准确率和漏检率。
记录每种算法的处理时间,评估其检测效率。
五、实验结果与分析1、不同算法的检测效果阈值分割法对于对比度明显的缺陷检测效果较好,但对于复杂的缺陷形态容易出现误判。
边缘检测法能够准确地检测出缺陷的边缘,但对于微小的缺陷容易忽略。
实验二报告测量正六边形的各边边长一、实验目的1.掌握Hariss角点检测的基本原理和步骤。
2.复习VB、VC的基本概念、基本语法和编程方法,并熟练使用VB或VC编写遗传算法程序。
二、实验设备微机三、实验内容及步骤编写程序分别利用哈夫变换方法和Harris角点检测方法测量正六边形的各边边长。
1.上机编写程序。
2.调试程序。
3.根据实验结果,撰写实验报告。
四、实验报告哈夫变换方法#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <iostream>#include <stdio.h>using namespace cv;using namespace std;/// Global variablesMat src, edges;Mat src_gray;Mat standard_hough, probabilistic_hough;intmin_threshold = 10;intmax_trackbar = 200;char* standard_name = "Standard Hough Lines Demo";char* probabilistic_name = "Probabilistic Hough Lines Demo";ints_trackbar = max_trackbar;intp_trackbar = max_trackbar;/// Function Headersvoid help();voidStandard_Hough( int, void* );voidProbabilistic_Hough( int, void* );int main( ){/// Read the imagesrc = imread( "images\\building.jpg", 1 );if(src.empty() ){ help();return -1;}/// Pass the image to graycvtColor(src, src_gray, CV_RGB2GRAY );/// Apply Canny edge detectorCanny(src_gray, edges, 50, 200, 3 );namedWindow(standard_name, CV_WINDOW_AUTOSIZE );createTrackbar( "Thresh", standard_name, &s_trackbar, max_trackbar, Standard_Hough);namedWindow(probabilistic_name, CV_WINDOW_AUTOSIZE );createTrackbar( "Thresh", probabilistic_name, &p_trackbar, max_trackbar, Probabilistic_Hough);/// InitializeStandard_Hough(0, 0);Probabilistic_Hough(0, 0);waitKey(0);return 0;}void help(){printf("\t Hough Transform to detect lines \n ");printf("\t---------------------------------\n ");printf(" Usage: ./HoughLines_Demo<image_name> \n");}voidStandard_Hough( int, void* ){vector<Vec2f>s_lines;cvtColor( edges, standard_hough, CV_GRAY2BGR );/// 1. Use Standard Hough TransformHoughLines( edges, s_lines, 1, CV_PI/180, min_threshold + s_trackbar, 0, 0 );/// Show the resultfor(inti = 0; i<s_lines.size(); i++ ){float r = s_lines[i][0], t = s_lines[i][1];doublecos_t = cos(t), sin_t = sin(t);double x0 = r*cos_t, y0 = r*sin_t;double alpha = 1000;Point pt1(cvRound(x0 + alpha*(-sin_t)), cvRound(y0 + alpha*cos_t) );Point pt2(cvRound(x0 - alpha*(-sin_t)), cvRound(y0 - alpha*cos_t) );line(standard_hough, pt1, pt2, Scalar(255,0,0), 1, CV_AA);}imshow(standard_name, standard_hough );imwrite("images\\houghline_stand.png",standard_hough);}voidProbabilistic_Hough( int, void* ){vector<Vec4i>p_lines;cvtColor( edges, probabilistic_hough, CV_GRAY2BGR );/// 2. Use Probabilistic Hough TransformHoughLinesP( edges, p_lines, 1, CV_PI/180, min_threshold + p_trackbar, 30, 10 );/// Show the resultfor(size_ti = 0; i<p_lines.size(); i++ ){Vec4i l = p_lines[i];line( probabilistic_hough, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(255,0,0), 1, CV_AA);}imshow(probabilistic_name, probabilistic_hough );imwrite("images\\houghline_probabilistic.png",probabilistic_hough);Harris角点检测方法/*** @function cornerDemo.cpp* @brief Demo code for detecting corners using Harris-Stephens method and Shi-Tomasi method*/#include <stdio.h>#include <iostream>#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/core/core.hpp"#include "opencv2/legacy/legacy.hpp"#include "opencv2/nonfree/nonfree.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/calib3d/calib3d.hpp"#include <vector>using namespace cv;using namespace std;//Global variablesMat src, src_gray,dst_norm_scaled,src_copy;int thresh = 0;intmax_thresh = 100;intmaxCorners = 0;intmaxTrackbar = 50;char* source_window = "Source image";char* corners_window = "Corners detected";/// Function headervoidcornerHarris_demo( int, void* );//void cornerShiTomasi_demo(int, void* );int main( ){src = imread("images\\corner.png",1);cvtColor(src, src_gray, CV_BGR2GRAY );/// Create a window and a trackbarnamedWindow(source_window, CV_WINDOW_AUTOSIZE );createTrackbar( "Harris", source_window, &thresh, max_thresh, cornerHarris_demo ); createTrackbar( "ShiTomasi", source_window, &maxCorners, maxTrackbar, cornerHarris_demo );namedWindow(corners_window, CV_WINDOW_AUTOSIZE );namedWindow(source_window, CV_WINDOW_AUTOSIZE );cornerHarris_demo( 0, 0 );//cornerShiTomasi_demo( 0, 0 );waitKey(0);return(0);}voidcornerHarris_demo( int, void* ){src.copyTo(src_copy);Mat dst, dst_norm;dst = Mat::zeros( src.size(), CV_32FC1 );/// Detector parametersintblockSize = 2;intapertureSize = 3;double k = 0.04;/// Detecting cornerscornerHarris(src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT );/// Normalizingnormalize(dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() );convertScaleAbs(dst_norm, dst_norm_scaled );/// Drawing a circle around cornersfor(int j = 0; j <dst_norm.rows ; j++ ){ for( inti = 0; i<dst_norm.cols; i++ ){if( (int) dst_norm.at<float>(j,i) > thresh+60 ){circle(dst_norm_scaled, Point( i, j ), 6, Scalar(0), -1, 8, 0 );circle(src_copy,Point( i, j ), 5, Scalar(255,0,0), -1, 8, 0 );}}}if(maxCorners< 1 ) { maxCorners = 1; }/// Parameters for Shi-Tomasi algorithmvector<Point2f> corners;doublequalityLevel = 0.01;doubleminDistance = 10;booluseHarrisDetector = false;/// Copy the source imageMat cormat;/// Apply corner detection :Determines strong corners on an image. goodFeaturesToTrack(src_gray,corners,maxCorners,qualityLevel,minDistance,Mat(),blockSize,useHarrisDetector,k );/// Draw corners detectedfor(inti = 0; i<corners.size(); i++ ){circle(dst_norm_scaled, corners[i], 6, Scalar(255), 2, 8, 0 );circle(src_copy, corners[i], 4, Scalar(0,255,0), 2, 8, 0 );}imshow(corners_window, dst_norm_scaled );imshow(source_window, src_copy );}。
一、实习背景随着人工智能技术的飞速发展,机器视觉作为人工智能的一个重要分支,其在工业自动化、安防监控、医疗诊断等多个领域的应用日益广泛。
为了更好地了解和掌握机器视觉技术,提高自身的实践能力和创新能力,我于2023年7月至9月在XX科技有限公司进行了为期三个月的机器视觉实习。
二、实习单位简介XX科技有限公司是一家专注于机器视觉研发和应用的高新技术企业,拥有雄厚的研发实力和丰富的项目经验。
公司主要业务包括机器视觉系统集成、视觉检测设备研发、视觉算法开发等。
在实习期间,我有幸参与了多个实际项目,与团队成员共同完成了从需求分析、方案设计到系统调试的全过程。
三、实习内容1. 理论学习实习期间,我系统学习了机器视觉的相关理论知识,包括图像处理、特征提取、目标检测、跟踪、识别等。
通过阅读专业书籍、参加线上课程和与导师讨论,我对机器视觉有了更深入的理解。
2. 项目实践(1)工业产品缺陷检测项目该项目旨在利用机器视觉技术对工业产品进行缺陷检测,提高生产效率和产品质量。
在项目中,我负责编写检测算法,实现产品缺陷的自动识别和分类。
通过实验验证,该算法具有较高的准确率和实时性。
(2)人脸识别项目该项目旨在利用人脸识别技术实现人员身份验证。
在项目中,我参与了人脸检测、人脸特征提取和匹配算法的研究与实现。
通过实验验证,该系统能够准确识别和验证人员身份。
3. 团队协作与沟通在实习过程中,我与团队成员保持密切沟通,共同解决问题。
通过参与项目讨论、撰写技术文档和汇报工作进展,我提高了自己的团队协作和沟通能力。
四、实习收获1. 技术能力提升通过实习,我掌握了机器视觉的基本原理和方法,熟悉了相关软件和工具的使用,提高了自己的编程能力和算法设计能力。
2. 实践经验积累在实习过程中,我参与了多个实际项目,积累了丰富的实践经验,为今后的工作打下了坚实的基础。
3. 团队协作与沟通能力通过与团队成员的密切合作,我学会了如何与他人沟通、协调和解决问题,提高了自己的团队协作和沟通能力。
机器视觉实验报告
一、实验目的
本实验旨在探究机器视觉在图像识别和分析方面的应用,通过实际操作和数据分析,验证机器视觉技术的准确性和可行性。
二、实验装置与方法
1. 实验装置:使用具备机器视觉功能的摄像头和计算机软件。
2. 实验方法:
a. 首先,搜集一定数量的图像数据作为实验样本。
b. 接着,利用机器视觉软件对图像数据进行处理和分析。
c. 最后,对机器视觉技术的准确性和稳定性进行评估。
三、实验结果分析
通过实验数据的分析和比对,我们得出以下结论:
1. 机器视觉在图像识别方面具有较高的准确率,能够准确辨识不同物体和场景。
2. 机器视觉在图像分析方面具有较强的处理能力,能够提取图像特征和进行数据分析。
3. 机器视觉技术的稳定性较高,能够在复杂环境下正常工作并保持较高的准确性。
四、实验结论与展望
通过本次实验,我们验证了机器视觉技术在图像识别和分析方面的有效性和可靠性。
未来,随着技术的不断进步和应用领域的拓展,机器视觉将会在更多领域展示出其强大的功能和潜力,为人类生活和工作带来更多便利和效益。
以上为机器视觉实验报告的内容,希望能够对您有所帮助。
第1篇一、实验目的本次实验旨在通过实际操作,了解并掌握视觉机器的基本原理和应用,提高对视觉机器处理技术的认识。
实验内容包括边缘检测、显著性检测、特征点检测和直线检测等,通过对比不同算法的优缺点,分析其在实际图像处理中的应用和局限性。
二、实验内容与步骤1. 边缘检测(1)选择图像数据:选取一张包含明显边缘结构的图像作为实验对象。
(2)Sobel边缘检测:使用Sobel算子对图像进行边缘检测,记录结果。
(3)Canny边缘检测:使用Canny算子对图像进行边缘检测,记录结果。
(4)比较两种方法的边缘检测效果,分析其差异。
2. 显著性检测(1)选择图像数据:选取一张包含不同显著性区域的图像作为实验对象。
(2)HC显著性检测:使用Python和OpenCV实现HC显著性检测算法,调整参数,比较检测效果。
(3)基于最小方向对比度显著性检测:使用Python和OpenCV实现基于最小方向对比度显著性检测算法,调整参数,比较检测效果。
(4)基于最稳定区域显著性检测:使用Python和OpenCV实现基于最稳定区域显著性检测算法,调整参数,比较检测效果。
3. 特征点检测(1)选择图像数据:选取一张包含明显角点的图像作为实验对象。
(2)Harris角点检测:使用Python和OpenCV实现Harris角点检测算法,调整参数,比较检测效果。
(3)分析角点检测结果与实际图像特征之间的关系。
4. 直线检测(1)选择图像数据:选取一张包含直线的图像作为实验对象。
(2)哈夫变换直线检测:使用Python和OpenCV实现哈夫变换直线检测算法,调整参数,比较检测效果。
(3)对图像进行预处理(如边缘检测)以提高直线检测效果。
(4)分析哈夫变换在实际场景中的应用和局限性。
三、实验结果与分析1. 边缘检测通过对比Sobel算子和Canny算子的边缘检测结果,发现Canny算子具有更好的检测效果,能够有效抑制噪声,同时保留边缘信息。
一、实训背景随着工业自动化程度的不断提高,机器视觉检测技术在工业生产中的应用越来越广泛。
为了提高产品质量和生产效率,降低人工成本,我国各大企业纷纷引进视觉检测设备。
本实训旨在通过实际操作,使学生了解视觉检测的基本原理、设备配置及应用,掌握视觉检测系统的设计、调试和优化方法。
二、实训目标1. 理解视觉检测的基本原理和流程;2. 掌握视觉检测系统的硬件配置和软件应用;3. 学会使用视觉检测设备进行产品检测;4. 提高实际操作能力,为今后从事相关工作打下基础。
三、实训内容1. 视觉检测基本原理视觉检测系统主要由光源、相机、图像采集卡、图像处理软件和执行机构组成。
系统通过光源照亮被检测物体,相机捕捉图像,图像采集卡将图像传输到计算机,计算机通过图像处理软件对图像进行分析和处理,最后由执行机构进行相应动作。
2. 视觉检测设备配置(1)光源:根据被检测物体的表面特性和检测要求选择合适的光源,如白光、红外光、紫外光等。
(2)相机:根据检测精度和分辨率要求选择合适的相机,如CCD相机、CMOS相机等。
(3)图像采集卡:用于将相机捕捉的图像传输到计算机。
(4)图像处理软件:对图像进行预处理、特征提取、目标识别、定位和跟踪等操作。
(5)执行机构:根据检测结果进行相应动作,如剔除不良品、标记缺陷等。
3. 视觉检测系统设计(1)确定检测任务:根据产品特性和质量要求,明确检测任务,如尺寸测量、缺陷检测、外观检测等。
(2)选择检测方法:根据检测任务选择合适的检测方法,如基于模板匹配、基于特征匹配、基于机器学习等。
(3)搭建检测系统:根据检测方法和要求,搭建视觉检测系统,包括硬件配置和软件编程。
(4)系统调试与优化:对系统进行调试,确保检测精度和稳定性。
根据实际检测效果,对系统进行优化,提高检测效率和准确性。
4. 实训案例以某电子元件外观检测为例,具体步骤如下:(1)确定检测任务:检测电子元件的外观缺陷,如划痕、气泡、变形等。
机器视觉测量综合实验——OCR识别一、实验目的1、了解机器视觉系统的组成。
2、掌握相机标定、分辨率测量等系统参数测量方法。
3、掌握机器视觉基本应用原理和方法。
二、实验原理OCR技术是光学字符识别的缩写(Optical Character Recognition),是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。
OCR识别的原理是计算机对图像进行版面分析、处理和模式识别。
图像版面分析是指通过对图像文字的预处理,文字图像的分割和坐标定位;文字模式识别是通过检测暗、亮的模式,放大图像确定其形状特征并进行提取和判断,最终通过图像黑白点二进制与字符编码进行匹配,根据最相近的匹配度将文字图像特征进行文字的转换。
通过扫描仪设备将纸质的期刊、学位等文献数据进行扫描,再人工通过鼠标在图像文字区域进行画框,选择特定区域进行文字识别,然后对版面字切分、归一化等。
文字识别主要使用了黑白二值法,将文字颜色取反,也就是白变成黑,黑变成白,以单字图像区域分为上下两部分,这种方式将每个字都可以划分为不同区域,将不同区域的反选区域用二进制的方式进行转换,将每个文字区域划分后生成一个二进制编码,我们预先对每个标准的文字进行二进制编码存放到数据库中,用OCR文字识别完的结果与标准数据库中的二进制编码进行比对,从而选择最接近的二进制编码文字,最终得到文字识别结果。
三、实验仪器CMOS相机,远心成像镜头,机器视觉创新综合实验测试板,机器视觉实验平台及相关软件,相关机械调整部件等。
四、实验内容1.装配平台各器件,其中光源只打开条形光源,镜头选择物象双方远心镜头GCO-230205。
打开实验软件程序,选择“采集模块”,单击“采集图像”,在软件中观察COMS相机采集图像的效果,调整COMS相机参数以获得最佳图像效果。
2.将机器视觉创新综合实验测试板水平地放在机器视觉平台上。
面向工业的机器视觉检测实验报告一、实验背景在现代工业生产中,产品质量的检测和控制是至关重要的环节。
传统的人工检测方法不仅效率低下,而且容易受到人为因素的影响,导致检测结果的准确性和稳定性难以保证。
随着机器视觉技术的不断发展,其在工业检测领域的应用越来越广泛。
机器视觉检测系统具有非接触、高精度、高速度、自动化等优点,能够有效地提高生产效率和产品质量。
本次实验旨在研究机器视觉检测技术在工业生产中的应用,评估其检测效果和性能,并为实际应用提供参考依据。
二、实验目的1、了解机器视觉检测系统的组成和工作原理。
2、掌握机器视觉检测系统的搭建和调试方法。
3、研究机器视觉检测技术在工业产品检测中的应用,包括缺陷检测、尺寸测量、形状识别等。
4、评估机器视觉检测系统的检测精度、速度和稳定性。
5、分析机器视觉检测技术在工业应用中存在的问题和挑战,并提出改进措施和建议。
三、实验设备和材料1、机器视觉检测系统:包括相机、镜头、光源、图像采集卡、计算机等。
2、实验样品:选择了一批具有代表性的工业产品,如电子元件、机械零件、塑料制品等。
3、检测工具:如卡尺、千分尺等,用于对比和验证机器视觉检测结果。
四、实验原理机器视觉检测技术是通过相机获取被测物体的图像,然后利用图像处理算法对图像进行分析和处理,提取出有用的信息,如物体的形状、尺寸、颜色、纹理等,从而实现对物体的检测和识别。
其基本流程包括图像采集、图像预处理、特征提取、目标识别和检测结果输出等。
五、实验步骤1、系统搭建(1)根据实验需求选择合适的相机、镜头和光源,并进行安装和调试,确保能够获取清晰、高质量的图像。
(2)将相机通过图像采集卡与计算机连接,安装好驱动程序和图像处理软件。
2、图像采集(1)将实验样品放置在检测平台上,调整相机的位置和角度,使样品能够完整地出现在相机的视野中。
(2)设置合适的曝光时间、增益和帧率等参数,采集多幅图像。
3、图像预处理(1)对采集到的图像进行去噪、增强、二值化等预处理操作,提高图像的质量和对比度。
《机器视觉应用实验报告》姓名黄柱汉学号 3院系机械与汽车工程学院专业仪器仪表工程指导教师全燕鸣教授2015年04月16日华南理工大学实验报告课程名称:机器视觉应用机械与汽车工程学院系仪器仪表工程专业黄柱汉实验名称机器视觉应用实验日期2015.4.16 指导老师全燕鸣一、实验目的主要目的有以下几点:1.实际搭建工业相机、光源、被摄物体图像获取系统,自选Labview或Matlab、Halcon、Ni Vision软件平台,用打印标定板求解相机外参数以及进行现场系统标定;2.进行一个具体实物体的摄像实验,经图像预处理和后处理,获得其主要形状尺寸的测量(二维)3.进行一个具体实物体的摄像实验,经图像预处理和后处理,识别出其表面缺陷和定位。
二、实验原理“机器视觉”是用机器代替人眼来进行识别、测量、判断等。
机器视觉系统是通过摄像头将拍摄对象转换成图像信号,然后再交由图像分析系统进行分析、测量等。
一个典型的机器视觉系统包括照明、镜头、相机、图像采集卡和视觉处理器5个部分。
HALCON是在世界围广泛使用的机器视觉软件,拥有满足各类机器视觉应用的完善开发库。
HALCON也包含Blob分析、形态学、模式识别、测量、三维摄像机定标、双目立体视觉等杰出的高级算法。
HALCON支持Linux和Windows,并且可以通过C、C++、C#、Visual Basic和Delphi语言访问。
另外HALCON与硬件无关,支持大多数图像采集卡及带有DirectShow和IEEE1394驱动的采集设备,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件,具有良好的跨平台移植性和较快的执行速度。
本实验包括对被测工件进行尺寸测量和表面缺陷检测。
尺寸测量是通过使用机器视觉来对考察对象的尺寸、形状等信息进行度量;缺陷检测是通过机器视觉手段来分析零部件信息,从而判断其是否存在缺陷。
尺寸测量和表面缺陷检测均可以通过边缘检测来实现。
图像边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合,它存在于目标与背景、目标与目标、区域与区域,基元与基元之间。
《机器视觉应用实验报告》姓 名 黄柱汉学 号 201341304523院 系 机械与汽车工程学院专 业 仪器仪表工程指导教师 全燕鸣 教授2015年04月16日华南理工大学实验报告课程名称:机器视觉应用机械与汽车工程学院系仪器仪表工程专业姓名黄柱汉实验名称机器视觉应用实验日期2015.4.16 指导老师全燕鸣一、实验目的主要目的有以下几点:1.实际搭建工业相机、光源、被摄物体图像获取系统,自选Labview或Matlab、Halcon、Ni Vision软件平台,用打印标定板求解相机内外参数以及进行现场系统标定;2.进行一个具体实物体的摄像实验,经图像预处理和后处理,获得其主要形状尺寸的测量(二维)3.进行一个具体实物体的摄像实验,经图像预处理和后处理,识别出其表面缺陷和定位。
二、实验原理“机器视觉”是用机器代替人眼来进行识别、测量、判断等。
机器视觉系统是通过摄像头将拍摄对象转换成图像信号,然后再交由图像分析系统进行分析、测量等。
一个典型的机器视觉系统包括照明、镜头、相机、图像采集卡和视觉处理器5个部分。
HALCON是在世界范围内广泛使用的机器视觉软件,拥有满足各类机器视觉应用的完善开发库。
HALCON也包含Blob分析、形态学、模式识别、测量、三维摄像机定标、双目立体视觉等杰出的高级算法。
HALCON支持Linux和Windows,并且可以通过C、C++、C#、Visual Basic和Delphi语言访问。
另外HALCON与硬件无关,支持大多数图像采集卡及带有DirectShow和IEEE 1394驱动的采集设备,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件,具有良好的跨平台移植性和较快的执行速度。
本实验包括对被测工件进行尺寸测量和表面缺陷检测。
尺寸测量是通过使用机器视觉来对考察对象的尺寸、形状等信息进行度量;缺陷检测是通过机器视觉手段来分析零部件信息,从而判断其是否存在缺陷。
尺寸测量和表面缺陷检测均可以通过边缘检测来实现。
图像边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合,它存在于目标与背景、目标与目标、区域与区域,基元与基元之间。
它具有方向和幅度两个特征。
沿边缘走向,像素变化比较平缓;而垂直于边缘走向,像素变化比较剧烈,而这种剧烈可能呈现阶跃状,也可能呈现斜坡状。
如图1所示,边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。
不同的是,一阶导数认为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。
a) 图像灰度变化b) 图像灰度一阶导数c) 图像灰度二阶导数图1 图像灰度变化与导数在传统边缘检测方法里,基于一阶导数的边缘检测算子有Robert算子、Sobel算子、Prewitt 算子等。
三、实验器材MER-500-7UM彩色数字相机, 镜头位computar 8mm,单个像素尺寸2.2x2.2 um;三脚架;标定板,厚度3.8mm;计算机;被测工件;游标卡尺。
3030mm mm四、实验内容与步骤1.实验内容:(1)搭建视觉测量系统;(2)采集标定板与被测工件图像;(3)利用HALCON软件进行相机标定,同时分别对被测工件进行尺寸测量与缺陷检测。
2. 待测对象描述:尺寸测量与缺陷检测的对象是一块有五个开孔的小型面板,如图2所示,面板表面较粗糙,对于光源系统及其背景选择有较高要求。
在使用中,开孔的作用是或者定位,若孔的尺寸过大(或过小),会导致外接接口安装不稳定(或定位不准确)。
同样,若存在不规则缺陷使得开孔过大(或过小),亦会导致上述结果,故对此面板在使用前进行尺寸测量与缺陷检测是非常必要的。
图 2 被测工件图像3. 实验步骤:(1) 根据现场环境,选择合适的机架安放地点——光照强度适合、稳定,安装位置平坦。
(2) 利用扳手等工具,将三脚架、相机和镜头组装好。
其中尽量保持相机镜头的中心线与测量平面的法线平行;(3) 启动计算机,打开大恒图像采集软件。
将相机与计算机连接。
(4) 在测量平面上放置白色背景(白纸),将标定板放在白色背景上,调整标定板的位置,使得标定板完全落在相机视场内部,对标定板进行图像采集。
(5) 通过平移、旋转或改变其与成像平面的夹角改变标定板的位置,直至完成15次标定板图像采集工作,得到部分标定板图像如图3所示。
a b cd ef 图 3 部分标定板图片 (6) 保持相机所有状态不变,放置好被测工件,根据被测工件材质选择合适的背景色调,调整光源强度与打光方式。
对被测工件进行图像采集,视觉测量平台如图4所示。
图 4 视觉测量平台(7) 利用HALCON 软件编写工件的尺寸测量程序,面板尺寸测量的流程如图5所示。
图 5 尺寸测量流程图(8) 测量缺陷几何参数:利用HALCON 软件编写测量程序,流程如图6所示:摄像机标图像提取感兴趣区域提取边缘方法拟合计算几何图 6 尺寸测量与确定缺陷几何参数流程图五、数据记录1.摄像机标定:使用标定板图像进行标定1)打开HALCON软件,出现界面如图7所示;图7 HALCON软件界面2)点击“助手”—“打开新的Calibration”创建新的Calibration,加载描述文件(注意文件路径不能够包含中文字符),标定板厚度是3.8mm,单个像元的宽和高都是2.2um,焦距默认值即可,如图8 a)所示;a) Calibration界面1 b) Calibration界面2图8 标定界面3)加载标定板图像(注意文件路径不能够包含中文字符),如图8 b)所示,标定过程中提示某图像“检测出品质问题”不用移除,若提示某图像“提取标志点失败”,则必须移除,否则无法进行标定操作,这里将“确定”的图像设为参考位姿;4)点击“标定”,得到对应的摄像机内外参数,如图9 a)所示;5) 在标定助手代码生成界面点击“插入代码”,将代码插入到程序窗口的结果,如图9 b)所示;6) 利用算子校正位姿,排除相机没有严格垂直安装对后续测量尺寸带来的干扰。
代码:set_origin_pose(CameraPose,0,0,0.00246,PoseNewOrigin)2.尺寸测量:1) 加载面板图像,直接将图像拖放到HALCON 软件中(图像是灰度图像),如图10所示;代码:read_image (Hhm2, 'C:/Users/Administrator/Desktop/hhm2.bmp')图10 面板灰度图像2) 提取感兴趣区域(RIO ),点击“编辑ROI :ROI ”—“绘制感兴趣区域”a) 摄像机标定结果1b) 摄像机标定结果2 图9 摄像机标定结果—“插入代码”,如图11所示;代码:gen_rectangle2 (ROI_1_0, 794.269, 1017.31, rad(59.3003), 485.18, 248.842)dev_set_draw('margin')reduce_domain(GrayImage, ROI_0, ImageReduced)a) 感兴趣区域图1b) 感兴趣区域图1c) 感兴趣区域图2 图11 感兴趣区域图 3) 阈值分割,点击“灰度直方图”—“改变输出颜色”—“改变阈值”—“插入代码”获得被测区域,如图12 a )所示;代码:threshold (ImageReduced, Regions, 74, 255)4) 提取边缘轮廓,点击“特征直方图”— “改变输出颜色”—“改变所需特征”—“改变阈值”—“插入代码”获得符合特征的区域,如图12 b )和c )所示;代码:connection(Regions, ConnectedRegions)select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1753.22, 12516.9)图12 被测区域图5)选用合适方法拟合,获得被测区域最小外接圆形,同时获得与圆的圆心和半径,如图感兴趣区域 感兴趣区域13所示;代码:smallest_circle(SelectedRegions, Row, Column, Radius)gen_circle (Circle, Row, Column, Radius)a) 被测区域最小圆形b) 被测区域最小圆形参数图13 被测区域最小圆形将像素坐标转换为世界坐标:image_points_to_world_plane(CameraParameters, PoseNewOrigin, Row, Column, 'mm', X, Y)三个圆心之间的距离6)实验数据记录:面板圆形1面板圆形2面板圆形形3图14 被测区域最小圆形图表1 面板尺寸表单位:mm面板圆心1和2 面板圆心1和3 面板圆心2和3 实测距离17.68 26.80 12.62 HALCON计算距离18.7063 32.9384 14.71973.缺陷检测缺陷标定的主要思路:以图中缺陷与圆形孔所成图像就是椭圆,所以利用椭圆面积减去原先圆的面积就是缺陷的面积,从而得到缺陷图像。
得到图像(Hhm2,为数集,90,edges_sub_pix(ImageWorld,fit_ellipse_contour_xld(Edge 200, Phi, StartPhi,RT:=3.14*Radius1*Radius22.实验结果表2 仪表面板缺陷尺寸实测/ mm HALCON 计算/ mm长径 4.11 4.98534 短径3.223.65419六、数据分析处理1. 游标卡尺实测面板圆形圆心1和2的距离L 1=16.68mm ;面板圆心1和3的距离L2=26.80mm ;面板圆心2和3的距离L 3=12.62mm ;利用HALCON 软件标定后,测面板圆形圆心1和2的距离L 1’=18.7063mm ;面板圆心1和3的距离L 2’=32.9384mm ;面板圆心2和3的距离L 3’=14.7197mm ;HALCON 软件测得值与游标卡尺测得值的绝对误差:mml l l 0263.27063.1868.161'11=-=-=∆mm l l l 6.138432.938426.802'22=-=-=∆mml l l 2.099714.719712.623'33=-=-=∆相对误差:%1481.12%10068.160263.211=⨯=∆l l %9045.22%10080.261384.622=⨯=∆l l%6379.16%10062.120997.233=⨯=∆l l2.缺陷几何参数测量与误差 游标卡尺实测长径mm r 11.41=; 游标卡尺实测短径mm r 22.32=HALCON 软件标定后,测得长径mm r 98534.4'1=,短径mm r 65419.3'2=; HALCON 软件测得值与卡尺 长径绝对误差:mmr r r e 0.87534)('111=-=长径相对误差:%2978.21%10011.487534.0)()(11=⨯==r r e r e l短径绝对误差:mmr r r e 0.43419)('222=-=短径相对误差:%4842.13%10022.30.43419)()(22=⨯==r r e r e l误差分析:(1) 图像采集时,工件未放置于相机的成像中心,选用物距太大,相机中心线并没有垂直测量平面;(2) 被测工件开孔尺寸小,实际尺寸与缺陷的测量困难,尤其是缺陷的长度与开孔的宽度; (3) 工件轮廓分辨率不够高,使得提取轮廓的时候无法做到非常精确; (4) 游标卡尺的示值误差。