资源描述
,Click to edit Master title styletwo lines possible,*,If no text is needed,choose textlayout with title only,Textmasterformate durch Klicken bearbeiten,Zweite Ebene,Dritte Ebene,Replace this boxwith your logo,2003-2009 MVTec Software GmbH,Click to edit Master title styletwo lines possible,If no text is needed,choose textlayout with title only,Textmasterformate durch Klicken bearbeiten,Zweite Ebene,Dritte Ebene,中国大恒(集团)有限公司北京图像视觉技术分公司,HALCON,软件在机器视觉中的典型应用,主讲人:刘伟,软件层次,HALCON,的实际应用,图像获取,(,前提),模板匹配(定位,比较),Blob,分析(基础一),边缘提取,(基础二),测量,(,结果,),其它应用,HALCON,实际应用,:,图像获取,获取高质量图像的前提条件,合适的光源,合适的镜头,合适的采集设备,合适的采集参数设置,HALCON,实际应用,:,图像获取,应用程序,HALCON,库,采集设备管理,图像处理,数据管理,图像获取接口,加载动态库,采集设备生产商,采集设备硬件,SDK,采集设备驱动,HALCON,实际应用,:,图像获取,图像获取接口特点,图像获取链接库独立于其它图像处理链接库,一致的代码模板(磁盘文件和图像采集设备),支持多个采集设备,同步和异步采集,支持外触发,图像尺寸、图像位数、颜色空间可调,支持颜色查找表,支持与设备相关的参数调整,HALCON,实际应用,:,图像获取,图像获取主要接口函数,open_framegrabber,info_framegrabber,grab_image,grab_image_async,grab_image_start,set/get_framegrabber_param,close_framegrabber,close_all_framegrabbers,如果是单个磁盘文件,read_image,HALCON,实际应用,:,图像获取,打开采集设备,如果是序列磁盘文件,设备为,File,获取图像,,,grab_image(_async)(,同步采集或异步采集,),关闭设备,open_framegrabber(DahengCAM,1,1,0,0,0,0,default,-1,gray,-1,false,default,default,-1,-1,FGHandle),while(true),grab_image(Image,FGHandle),*Apply image processing,endwhile,close_framegrabber(FGHandle),HALCON,实际应用,:,图像获取,通过图像获取助手,可快捷简单获取图像,并可生成代码,Easy source selection,Connectionconfiguration,Interactive parameter settings,Automatic code generation,HALCON,实际应用,:,图像获取,HALCON,HALCON,实际应用,:,图像获取,HALCON,实际应用,:,模板匹配,模板匹配的优势,应用于多数的应用,不需要太多参数调整,不需要分割,健壮,不需要任何的机器视觉知识,HALCON,实际应用,:,模板匹配,模板匹配分类,基于灰度的模板匹配,(,gray-value-based,),利用模板图像的所有灰度值,不能适应光照变化,、缩放变化、多通道图像等,用于简单图像,基于形状的模板匹配(,shape-based,),使用边缘特征定位物体,对于很多干扰因素不敏感,例如光照变化、聚焦模糊,,缩放变化,等,适用于多通道图像,不适用于纹理图像,基于组件的模板匹配,(,component-based,),适用于组成部件有相对运动的物体,使用边缘特征定位物,对于很多干扰因素不敏感,例如光照变化、混乱无序等,适用于多通道图像,不适用于纹理图像,聚焦不清的图像和形状变形,基于相关的模板匹配(,conrelation-based,),适用于纹理图像,聚焦不清的图像和形状变形,不是适用于光照变化、混乱无序等,也不适用于多通道图像,基于描述符的模板匹配,(descriptor-based),对于很多干扰因素不敏感,例如光照变化、混乱无序,缩放变化等,不适用于纹理图像,聚焦不清的图像和多通道图像,基于变形模板的模板匹配,(deformable),对于很多干扰因素不敏感,例如光照变化、混乱无序,缩放变化等,适用于多通道图像,对于纹理图像比较困难,基于点的模板匹配,(point-based),利用关键点的特征,图像金字塔,Level 1,Level 2,Level 3,Level 4,图像金字塔,金字塔中的模板,Level,4,3,2,1,HALCON,实际应用,:,模板匹配,模板匹配,参考图像,搜索图像,HALCON,实际应用,:,形状模板匹配,*Generate ROI,*read image from file or frame grabber,inspect_shape_model(Image,ModelImage,ModelRegion,1,Contrast,),dev_display(Image),dev_display(ModelRegion),Contrast,太低,Contrast,理想,Contrast,太高,模板生成,:,金字塔层,inspect_shape_model(Image,ModelImages,ModelRegions,5,40),dev_display(Image),dev_display(ModelRegions),匹配助手,从路径获得图像,生成芯片的感兴趣区域,检测模型,检测感兴趣区域,HALCON,实际应用,:,形状模板匹配,(,定位,),HALCON,实际应用,:,形状模板匹配,模板匹配支持旋转,建模时的角度范围,AngleStart,AngleExtent,角度用弧度表示,可通过函数,rad(),转换,为了表示旋转角度,x,赋值如下,AngleStart=-x,AngleExtent=2x,HALCON,实际应用,:,形状模板匹配,对于对称物体,建模时需限制角度的旋转范围,180,180,90,90,0,120,HALCON,实际应用,:,形状模板匹配,模板匹配支持缩放,一般缩放范围取值,ScaleMin=0.3;ScaleMax=2,模板,匹配的对象,模板匹配中的极性问题,通常物体的极性是不会改变的,但一些情况下,物体的灰度值会翻转,物体或者背景会变化,或者明暗区域发生改变,Dark inside,Bright outside,模板匹配中的极性问题,Polarity mode:,use_polarity,Template,Accepted objects,模板匹配中的极性问题,Polarity mode:,ignore_global_polarity,Template,Accepted objects,模板匹配中的极性问题,模板匹配,:,ignore_local_polarity,模板,匹配目标,匹配,:,允许一定程度上交叠,模型和它的外接轮廓框,(,bounding boxes,),外接轮廓框可以任意方向,模型的边缘,模型的外接轮廓框,匹配,:,允许一定程度上交叠,Overlap,定义为两个外接轮廓框的相交比率,物体的交叠区域,外接轮廓框的交叠区域,基于灰度的匹配,(gray-value-based),车牌字符识别,基于形状的匹配,(,shape-based,),可以适应缩放、旋转、交叠和不同极性的匹配,基于组件的模板匹配,(component-based),处理器:,奔腾处理器,1.73G,图像分辨率:,640*482,基于相关的模板匹配(,conrelation-based,),能克服纹理背景和聚焦不清带来的影响,基于描述符的模板匹配,(descriptor-based),通过特征点进行描述匹配,基于变形模板的模板匹配,(deformable),车门检测,即使车门在三维空间内变动,仍然能匹配,基于点的模板匹配,(point-based),多用于镶嵌图像时,大场景拼接,HALCON,实际应用,:,Blob,分析,Blob,分析的基本思想:图像中相关联物体,(,前景,),的像素可以通过其灰度值来标识,HALCON,实际应用,:,Blob,分析,Blob,分析主要流程:获取图像、分割图像、提取特征,获取图像,分割图像,提取特征,初始分割、,形态学处理等,HALCON,实际应用,:,Blob,分析,一个简单的例子,(,非常理想的情况,),read_image(Image,particle),threshold(Image,BrightPixels,120,255),connection(BrightPixels,Particles),area_center(Particles,Area,Row,Column),HALCON,实际应用,:,Blob,分析,threshold,定义,threshold,算子,HALCON,中速度最快使用频率最高的分割算法,如果目标体与背景之间存在灰度差,则,threshold,首先被使用,如果环境稳定,阈值可在离线状态下一次确定,HALCON,实际应用,:,Blob,分析,HALCON,实际应用,:,Blob,分析,动态阈值分割,很多情况下由于背景不均一,无法确定全局阈值,目标体经常表现为比背景局部亮一些或暗一些,需要通过其邻域找到一个合适的阈值进行分割,如何确定其邻域?,可以通过一些平滑滤波算子来确定邻域,例如,mean_image,等,HALCON,实际应用,:,Blob,分析,动态阈值分割,其中,S,为平滑后的输入图像,gray profile,smoothed gray profile,HALCON,实际应用,:,Blob,分析,全局阈值,动态局部阈值,通过均值滤波确定邻域,滤波器,mask,尺寸大于字符笔画的宽度,选择所有比其邻域暗的像素,mean_image(Image,ImageMean,21,21),dyn_threshold(Image,ImageMean,Region,15,dark),HALCON,实际应用,:,Blob,分析,形态学处理,分割之后,往往需要对区域做进一步处理才能满足要求,常用形态学相关算子,connection,select_shape,opening_circle,closing_circle,opening_rectangle1,closing_rectangle1,difference,intersection,union1,shaps_trans,fill_up,高级算子,boundary,skeleton,等,HALCON,实际应用,:,Blob,分析,连通区域,阈值分割后,需要提取目标物体,为了提取目标物体不得不先找到连通区域,提取连通域的关键是领域搜索的类型,在,Halcon,所有的案例中,8,领域法是默认的,4-Neighborhood,8-Neighborhood,把白色部分分割出来,计算连通域,显示结果,Local threshold,Global threshold,HALCON,实际应用,:Blob,分析,形态学算子,HALCON,的特点之一,任意的结构元素,任意尺寸的结构元素,非常有效的处理,巨大的算子集合,:44,个算子,经典算子,Erosion,dilation,opening,closing,高级算子,top-hat,bottom-hat,hit-or-miss,boundary,特殊算子,Fitting,pruning,thickening,thinning,skeleton,Input image,2.Closing with diagonal rectangle,Segmentation,1.Closing with vertical rectangle,形态学示例:,Union,定义,Operator,union1,:Union of all regions in one variable,union2,:Unify all regions in the second parameter with each region in the first parameter,Usage,Generate regions by combining primitive shapes,Combine segmentation results,Intersection,Definition,Operator,intersection,:Intersect each region of the first parameter with the union of all regions of the second parameter,Usage,Generate regions by combining primitive shape,Use as a result those points where two methods return pixels,Difference,Definition,Operator,difference,:Subtract from all regions of the first parameter the union of all regions of the second parameter,Usage,Generate regions by combining primitive shape,Use as a result those points where one method but not the other one returns pixels,Translation,Definition,Operator,move_region,:translate a region with integer precision,Usage,Adapt the position of a model region,Extract one border side(with difference),Note,Results depends on the system flag,clip_region,Transposition,Definition:,Reversible:,Increasing:,Entity-invariant:,Dilation,dilation(R,S),Example:Dilation/Intersection,Input image,Segmented region(,threshold,),Connected components(undesirable decomposition),Segmented regionafter applying dilation(circle,diameter 5),Connected components(correct decompositon),Intersection between connected components and segmented region,Erosion,erosion(R,S),输入图像,分割结果,连通区域,区域腐蚀,再次连通区域,区域膨胀,Example:Erosion/Dilation,Closing,dilation(R,S),closing(R,S),输入图像,区域相减得到缺陷,分割结果,区域闭运算,Example:Closing,Opening,erosion(R,S),opening(R,S),输入图像,选取目标,分割结果,区域开运算,Example:Opening,特征提取,特征描述了区域的特有属性,区域特征,(,形状特征,),描述了区域的几何特征,这些特征不依赖于灰度值,用途:,分割后,通过特征提取选择出所需的目标物体,区域分类,比如,OCR,测量,质量检测,提取特征,常用相关算子,area_center,smallest_rectangle1,smallest_rectangle2,compactness,eccentricity,elliptic_axis,area_center_gray,intensity,min_max_gray,HALCON,实际应用,:,Blob,分析,区域特征,smallest_circle,:,Convexity(,凸状性,),:,区域面积和凸形外轮廓的比例,Contlength(,长度,),:,区域边界长度,Compactness(,紧密度,),:,为长度,为面积,区域特征:,rectangularity,除了圆形和椭圆形外,长方形是一种典型的形状,典型的形状特征比如比如,roundness,circularity,或者,compactness,不适用于选择长方形,输入区域,等价长方形,difference,HALCON,提供了选择长方形的特征,Feature Inspection,可视化工具,检测单个区域特征,检测所有区域特征,边缘提取,像素级边缘提取,亚像素级边缘提取,轮廓处理,像素级边缘提取,HALCON,提供所有标准的边缘滤波算子:,Sobel,Roberts,Robinson,或者,Frei filters,等,.,此外,还提供了预处理算子,hysteresis thresholding,或者,non-maximum suppression,一些高级算子确定了边缘的幅度和边缘方向,像素级边缘提取,航拍图片,提取道路,(a),提取出来的边缘,(b),分割边缘,.,像素级边缘提取,(,颜色边缘提取,),a),运动场,b),基于多通道图像的彩色边缘提取,c),基于灰度图象边缘提取,实现流程,获取图像,使用感兴趣区域,图像滤波,Standard:,sobel_amp,sobel_dir,edges_image,Advanced:,derivate_gauss,edges_color,提取边缘,Standard:,threshold,skeleton,inspect_shape_model,Advanced:,hysteresis_threshold,nonmax_suppression_dir,边缘处理,Standard:,background_seg,close_edges,close_edges_length,opening_circle,split_skeleton_lines,hough_lines_dir,hough_lines,gen_contours_skeleton_xld,显示结果,亚像素级边缘提取,什么是亚像素(,Sub-Pixel,),?,摄像机的成像面的分辨率以像素数量来衡量。但像素中心之间的距离有几个至十几个微米不等。为了最大限度利用图像信息来提高分辨率,提出了,Sub-Pixel,概念。意思是说,在两个物理像素之间还有像素,称之为,Sub-Pixel,,它完全是通过计算方法的出来的。,HALCON,亚像素精度达到,1/50,像素,亚像素级边缘提取,a),自动确定,ROI b),边缘提取,c),测量直径,亚像素级边缘提取,a),心脏的,x-ray,图像,b),提取血管,获取图像,使用,ROI,区域,提取边缘和线,edges_sub_pix,,,edges_color_sub_pix,,,lines_gauss,,,lines_color,确定轮廓属性,get_contour_attrib_xld,,,get_contour_global_attrib_xld,,,query_contour_attribs_xld,,,query_contour_global_attribs_xld,处理,XLD Contours,显示结果,实现流程,轮廓处理,a),边缘轮廓,b),放大观察,c),分割成直线和椭圆圆弧,亚像素级精度轮廓是,Halcon,的众多功能强大工具包之一,这些轮廓属于数据结构体,XLD,轮廓处理,a),原始边缘,b),处理后轮廓,实现流程(,1,),生成,XLD,edges_sub_pix,edges_color_sub_pix,,,lines_gauss,lines_facet,等边缘提取后,可以得到,XLD;,在,sobel_amp,,,edges_image或bandpass_image之后,使用,二值函数得到的是,Region,,需要生成,XLD,。相应算子,gen_contour_polygon_xld,,,gen_contour_polygon_rounded_xld,处理,XLD,segment_contours_xld,split_contours_xld,分割成直线、圆弧等,select_shape_xld,选取满足条件的直线、圆弧,union_collinear_contours_xld,,,union_straight_contours_xld,,,union2_closed_contours_xld,等合并线段,拟合,fit_line_contour_xld,配合,gen_contour_polygon_xld,fit_rectangle2_contour_xld,配合,gen_rectangle2_contour_xld,fit_circle_contour_xld,配合,gen_circle_contour_xld,fit_ellipse_contour_xld,配合,gen_ellipse_contour_xld,实现流程(,2,),提取特征,area_center_xld,compactness_xld,convexity_xld,eccentricity_xld,diameter_,xld,和,orientation_xld,访问,XLD,访问,XLD,原始数据或者把,XLD,转换成其它数据类型,比如区域,get_contour_xld,获得轮廓点的坐标,gen_region_contour_xld,转换成区域,显示结果,区域分割和边缘分割比较,测量,一维测量,生成测量工具:,gen_measure_rectangle2,gen_measure_arc,translate_measure,测量:,标准:,measure_pos,measure_pairs,2.,高级:,set_fuzzy_measure,fuzzy_measure_pos,fuzzy_measure_pairs,fuzzy_measure_pairing,测量,二维测量,二维测量,零件尺寸检测,其它应用,高速检测,精确机器人导航,PCB,板检测,表面检测,条码,/,二维码识别,OCV&OCR,安全监控,遥感,医疗图像分析,模式识别,2D/3D,测量,印刷检测,纹理分析,匹配定位,谢谢,
展开阅读全文