基于支持向量机的产品外包装分类分拣系统研究_第1页
基于支持向量机的产品外包装分类分拣系统研究_第2页
基于支持向量机的产品外包装分类分拣系统研究_第3页
基于支持向量机的产品外包装分类分拣系统研究_第4页
基于支持向量机的产品外包装分类分拣系统研究_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课题名称基于支持向量机的产品外包装分类分拣系统研究Ⅰ摘要计算机视觉在近年来的应用越来越多,随着技术的更新换代,计算机视觉得到了更加广泛的应用,不止在现代工业生产线上有着它的身影,而在人们日常生活中形影不离的手机上也有了应用,如人脸识别的功能。基于计算机视觉库,机器可以利用各种算法来对物品特征进行识别与分类,支持向量机算法在各个模式识别领域中得到了较为广泛的应用,比如人像识别、文本分类、笔迹识别、生物信息学等。通过调用opencv的计算机视觉库,便可以对图像进行各种处理与特征提取,由收集到的特征数据来训练支持向量机,再由支持向量机在找出支持向量,分类决策的时候起到决定作用,让其在对数据进行二元分类时更加准确。在解决线性分类问题的方面上许多算法也可以轻松做到,而支持向量机可以通过核算法更加轻松地解决非线性问题的分类,所以本课题便对基于支持向量机算法对物品的特征分类系统进行研究与学习。基于物品特征识别为核心,加上以工业相机、传送机、PLC、松下A5伺服驱动器及伺服电机、两位三通式电磁阀和伸缩气缸等实物装置,进行模拟实物装置的搭建,对软件的程序进行编写与调试,实现机器对物品进行识别并根据物品的不同实现分类分拣的问题。关键词:支持向量机;OpenCV;三菱PLC;松下伺服驱动器ⅡAbstractInrecentyears,thefieldofcomputervisionhasbeenmoreandmorewidelyused.Withtheprogressoftechnology,thefieldofcomputervisionhasbeenappliedmorewidely,notonlyinmodernindustrialproductionlines,butalsoinmodernindustrialproductionlines.Andinpeople'sdailylifeinseparablemobilephonealsohastheapplication,suchasfacerecognitionfunction.Basedoncomputervisualdatabase,machinescanusevariousalgorithmstoidentifyandclassifyobjects.Supportvectormachine(SVM)algorithmhasbeenwidelyusedineveryfieldofpatternrecognition,suchasimagerecognition,textclassification,andsoon.Handwritingrecognition,bioinformatics,etc.Bycallingthecomputervisuallibraryofopencv,wecanprocesstheimageandextractthefeatures,trainthesupportvectormachinebythecollectedfeaturedata,andthenfindthesupportvectorbythesupportvectormachine.Supportvectorplaysadecisiveroleinclassificationdecision-makingofsupportvectormachine,whichmakesitmoreaccurateinbinaryclassificationofdata.Insolvinglinearclassificationproblems,manyalgorithmscanalsobeeasilyachieved,andsupportvectormachinescanmoreeasilysolvetheclassificationofnonlinearproblemsthroughaccountingmethod.Sothispaperstudiesandlearnsthefeatureclassificationsystembasedonsupportvectormachinealgorithm.Basedontheobjectfeaturerecognitionasthecore,andwiththeindustrialcamera,conveyor,PLC,servodriver,servomotor,solenoidvalveandtelescopiccylinderandotherphysicaldevices,thesimulationofthephysicaldeviceisbuilt,andthesoftwareprogramiscompiledanddebugged.Theproblemofrealizingthemachinetoidentifytheitemsandclassifythemaccordingtothedifferentitems.Keywords:SupportVectorMachineSVM;opensourcecomputervisionlibrary;MitsubishiPLC;Panasonicservodriver 目录TOC\o"1-3"\h\u1绪论 绪论1.1课题的研究背景和意义计算机视觉是近几年来发展得越来越成熟的一项技术,主要研究如何使机器像人类对待物体一样,达到一种“看”到物体并识别的技术。计算机视觉主要在于利用相机、摄影机来代替人类的在眼睛看物体时,对物品特征进行识别,以及对物品进行追踪和衡量的科学应用。当计算机能够对物体进行识别、跟踪和测量后,便可以在各个领域中应用此项技术,比如本课题中的“分类分拣”功能,这个技术在大型工厂里面的应用较为频繁,让机器进行分类分拣的工作能够让人们从长期进行单一工作方式的工业生产流水线上解放出来,在自动化中这个手段也是使用的比较多的一部分。随着制造技术的发展和科技技术的进步,运算能力性能强力且物美价廉的计算设备不断诞生,每个家庭拥有一台计算机在现在也不是非常稀有的事,在国内在每个家庭拥有计算机的可能性展现着越来越高的趋势,由于它拥有着快捷和简便的功能,受到了人们在工作上对它日益渐高的依赖性,更有一大批技术人员、开发人员在研发如何使用计算机来尽量减轻人们工作中的负担。中国的包装行业只用了30多年的时间,便从一个分散落后的行业转变成了拥有一定现代技术装备、分类比较齐全的完整工业体系。商家们将产品进行包装的时候,都会着重考虑包装的外表,设计要起到醒目且能起到色彩视觉效果,提高消费者初次面对产品好感度。每一类商品都应有它的包装,通过包装的不同可以用来对产品进行分类,产品的外包装分类在之前都是由人来进行区别的,因为人可以通过包装上的字、图案、颜色等来对产品进行分类,虽然通过人来进行分类的工作精准度很高,但是人的在分类的工作效率上远不如机器,而且在一些特殊的生产环境里,限制了人为得操作。本文通过支持向量机的算法,利用大量产品外包装特征数据来训练向量机,提升向量机对产品外包装特征的分类精准度。基于支持向量机算法对产品进行分类,能够让机器代替人在一些特殊环境下工作,而且效率也会大大提升。在本次产品外包装分类分拣中,其中最为关键的一项便是机器对物品的分类问题。而对计算机视觉领域的研究深度,决定着人们在研究机器识别物品的精准度有多高,包括着工业生产自动化能否得到更加先进的技术支持。随着制造业的技艺得到提高与发展,机器人作业将会逐渐普及在各大工厂的流水线上,由于机械不会像人一样感到疲惫,在一些高危工作中,也可以优先考虑使用机器人代替人工。因此,机器人不仅仅提高了工作效率还大大降低了人工成本。1.2支持向量机的研究现状和发展趋势支持向量机(supportvectormachine,简称SVM),作为数据挖掘中的一种新手段,能够利用最优化算法来帮助机器学习问题的新工具,支持向量机算法在计算机视觉领域中起着很重要的作用。支持向量机的训练算法总共有5大类,分别是“分解算法、变形算法、几何方法、多类分类算法、模糊支持向量机”。支持向量机自一诞生以来便在分类算法中大放光彩直至现在,即使它在“集成学习的算法”和“特定的训练数据集”中有所欠缺,但由于它在对数据的分类功能上拥有着良好的性能,因此在“机器学习”的研究上也能得到许多学者和开发者的信任与应用,在一定程度上有着压制神经网络的资本。目前,支持向量机的研究已经得到了众多同领域的人的认可和重视,但因为诞生的时间不够长,因此本身具有很多不完美的地方,在对问题的研究上也只是做到了初步的阶段,许多理论问题需要去验证,在各个领域上的运用问题还需要进一步改善。1.3支持向量机的实际运用与优点介绍由于支持向量机算法的优越性,致使它在医学、气象、地质、水利、电力、环保等方面都有一展身手的机会,支持向量机在各领域的模式识别中有着广泛的应用,比如:人脸识别,文本分类,笔迹识别,生物信息等。支持向量机的优势主要体现在:用核函数可以向高维空间进行映射,在高维空间很有效;特征数超过样本数的情况下仍然是有效的;分类思想不复杂,只需找到分界面与样本的间隔最大化;分类效果好;使用核函数可以解决非线性的分类;当然,支持向量机也并不是没有缺点的,它只是在对小范围里面样本表现得比较出色,面对大量的样本数据便会显得力不从心,在多分类的问题上并不能通过直接的方法来实现,只能通过间接的方法来做。1.4本文的主要工作介绍根据支持向量机算法能够对物品特征进行分类的功能和特点,利用它来识别物品和实现分类的功能,然后通过PLC的控制,搭建出能够模拟实物的装置,使装置能够实现进行产品的外包装分类分拣功能。因此,对搭建模拟实物装置的规划如下:⒈首先需要设计好“基于支持向量机的产品外包装分类分拣系统研究”的总体方案,当模拟装置成功搭建起来后,要满足那些基本功能。根据工业相机反馈回来的几种输入信号需要考虑好如何使用,再由plc控制好输送带,把产品送到相应的位置,然后plc再给电磁阀信号,控制伸缩气缸把产品推到相应的滑道。⒉对于整个搭建模拟装置布局的考虑,考虑怎么样把PLC、松下伺服驱动器和开关电源固定后,是否留了足够的间隙用来走线,走线是否合理的问题。⒊选择合适的伺服电机和伺服驱动器,根据所需功能选择合适的plc,各器件的型号选择。⒋编写和控制要求相关的程序。①OpenCV程序的编写与调试②PLC的程序编写与调试⒌模拟装置最后的调试,根据搭建好的分类装置,实现本课题对产品外包装的分类分拣功能。

2模拟实物装置的总体设计方案2.1设计要求1.机器能准确识别每个产品外包装的不同。2.当计算机识别好产品后,控制工业相机发出准确的信号给plc。3.PLC通过晶体管输出脉冲信号,驱使电机工作,把产品送到相应的位置。4.各个伸缩气缸能准确的把产品推到滑道上。2.2设计方案机器通过基于支持向量机算法对产品外包装进行分类,发送电压信号给PLC,由PLC控制伺服驱动器和电磁阀完成产品的分类工作,搭建的模拟实物装置主要的组成部分有:基于支持向量机算法的物品特征识别分类,带动输送带的伺服电机,完成分类最后一步操作的伸缩气缸,两位三通的电磁阀,以及担任整套系统控制的“主脑”(PLC)。2.3控制流程图2-1控制流程图模拟实物装置搭建主要的任务是模拟“基于向量机的产品外包装分类分拣”的功能进行研究,如图2-1,整套流程有:将产品放在输送带上→→→工业相机获取物品影像→→→电脑识别物品特征→→→控制工业相机发出相应的信号给三菱plc→→→plc控制伺服电机与电磁阀→→→输送带把产品送到对应的位置→→→伸缩气缸把产品从传输带上推下滑道→→→新一轮的开始。2.4模拟实物装置的搭建本文主要是做的是“基于支持向量机的产品外包装分类分拣功能”的系统研究。根据现有的条件,需要搭建一个能够进行“基于支持向量机的产品外包装分类分拣功能”的模拟实物装置,根据需要实现的基础功能,根据设计方案与现有条件,把实物根据需求搭建好。首先,需要把电磁阀放在输送带传送方向末尾均匀放置于固定,接着将工业相机固定在输送带输送方向前端,将伺服电机固定在输送机带动部位,装上齿轮,将开关电源,PLC,和伺服驱动器装在一个板上,方便接线以及移动。2.5物件清单本次设计用到比较多的物品,主要的物品名称及部分型号分别如下:1.工业相机(型号:大恒水星系列GigE),图像采集以及分类结果信号输出。2.皮带输送机(长宽高分别为:1.2M,20cm,50cm)主要是根据要求把产品送到相应的位置。3.三菱PLC(型号:FX2N-48MT)接收来自工业相机对产品分类后的不同信号,发出相应的输出信号控制伺服电机和电磁阀,信号格式分别为脉冲信号和电压信号。4.伺服电机及伺服驱动器(型号分别为:MSMD022GIU和MADHTI507E)伺服驱动器接收到三菱plc的脉冲信号后,控制伺服电机转动相应的距离。5.电磁阀(型号:两位五通式)根据三菱plc的信号控制伸缩气缸的伸缩。6.伸缩气缸(型号:笔形气缸CDJ2B10*150-B)执行分类功能操作的最后一步。7.开关电源(型号:S-120-24)处理交流电源,变换成直流电源的交换式电源。2.6PLC的选型及说明2.6.1PLC的介绍PLC,又称为可编程控制器,它以微处理器作为基础,综合着计算机技术,自动控制技术和通讯技术发展而成的新型工业控制装置,并且广泛应用于工业自动化。2.6.2PLC的选型考虑在选择合适的plc的时候,需要通过几个方面进行考虑:输入/输出(I/O)口的选择、存储器容量的预算、对于PLC响应时间的需求、系统本身可靠性的需求等。输入/输出(I/O)口的选择首先,先对本次统计好本系统设计所需要的输入/输出口的总数量,其次需要留出部分的接口数量,方便之后可能需要拓展的需要,作为输入输出点总数的依据。除此之外,还要考虑PLC的输入输出口的类型是继电器还是晶体管,由于本课题中需要脉冲信号来控制,因为继电器不能发出脉冲信号,所以在考虑plc的选择上,就必须要多一个“拥有晶体管输出方式”的条件。对于PLC响应时间的需求响应时间,表示着PLC对信号处理速度的快慢程度。从接受信号到处理信号,再输出信号的过程快慢可以通过“响应速度”来表示。PLC的执行方式一般为顺序扫描方式,当扫描时间远大于输入信号所需要的时间时,会使信号接收不完全,一般PLC的扫描周期为100-200ms之间,而对于一般的PLC来说,输入信号大于10ms的时候就能够完全接收的到,因此要考虑到PLC的响应时间对本设计的影响。存储容量的预算存储器容量是对PLC内部硬件存储单元大小的概念,而所能使用的存储单元为“程序容量”,一般是给下载程序的地方,而可编程控制器本身自带一些系统程序,所以存储容量应该大于程序容量,存储器容量一般没有准确的计算公式,不过一般上为I/O点数的10-15倍加上模拟量点数的100倍,算出来的值可以作为内存的总容量参考(16位为1字节),不过一般要大于算出来的值的1/4作为余量考虑。系统本身可靠性由现实生产环境的要求,应该选择功能适配和系统稳定性可靠的PLC比较放心,对于一些可靠性要求比较高的场所,就可以考虑是否采用热备份系统或者冗余控制系统。根据课题的要求,以及学校里现有的条件,我从中选择了三菱的PLC,型号为:Fx2N-48MT,该型号PLC拥有的控制规模为48点,并且内置8K容量的RAM存储器,通过扩展可以达到16K,而FX2N系列的PLC右侧可以连接输入输出扩展模块和特殊功能模块,可连接FX2N系列用的扩展模块以及FX2N系列用的扩展单元。基本单元内置着2个最高20khz定位功能的脉冲输出(晶体管),工作电源在AC100V~240V(50/60Hz)之间,输入规格为:“DC24V7mA/5mA无电压触点、或者NPN开集电极晶体管输入”,输出规格为:“晶体管输出型:0.5A/1点、(Y000、Y001为0.3A/1点)、0.8A/4点COMDC5V~DC30V”。此款PLC基本满足课题设计需要的功能,除了上面的基本信息之外,它还有着如下特点:机身采用一体化结构,将cpu、存储器、I/O接口和电源等合为一体,结构紧凑,体积相对较小,使用的时候比较灵活,价格相对于其他同等机型PLC更加实惠。Fx系列中,功能较为齐全和运转速率最快的非“FX2N”系列了,它对于基本指令执行时间仅需要0.08us,性能完全不逊色于其他大中型PLC.FX2N系列拥有多种特殊功能模块,如本课题中需要的“脉冲输出模块”,除此之外它还有高速计数、位置控制、模拟量输入输出等模块,RS-232/RS-422/RS-485串行通信模块,模拟定时扩展等。2.6.3三菱PLC在本课题的作用本次课题中由plc需要做的,是从接收到工业相机对产品外包装进行分类后,由工业相机发出相应的信号给PLC,PLC再根据接受到的信号,把信号通过编写好的程序运算后,发送出不同的输出信号,如:发送不同个数的脉冲信号给伺服驱动器,然后伺服电机带动传送带移动一定的距离,根据脉冲个数实现准确的位置控制,把不同的产品外包装送到不同的位置后,再输出相应的输出信号给相应的电磁阀给予控制,完成基于支持向量机的产品外包装分类分拣的最后一环。由于PLC在本课题中起到很关键的作用,从处理信号到输出控制信号,实现着类似指挥官的功能,是完成整个设计运作的桥梁。2.7松下伺服驱动器和伺服电机的介绍及作用2.7.1交流伺服驱动器-电机的介绍伺服驱动器和伺服电机,本课题选择的是松下品牌的,松下A5系列的产品非常的可靠。A5驱动器不仅能驱动A5系列的电机,在把电机相应的参数设置正确的时候,也可以控制其他系列型号的电机。而本次课题根据实验室现有的器材,选择了一款松下的伺服驱动器及伺服电机,以用来根据不同要求来带动传送机。而本课题选用的伺服驱动器型号为:MADHT1507E,它属于松下品牌的产品,而型号中所有字母所代表的意思如图2-2。图2-2松下伺服驱动器型号说明而电机的型号为:MSMD022GIU,型号中所有字母所代表的意思如下图2-3。图2-3松下伺服电机型号说明通过伺服驱动器,和通过前面的BOP面板控制参数,可以对电机的旋转方向(正反转)控制,以及工作模式切换。如速度、转矩、全闭环、位置和速度等控制模式。在使用交流伺服驱动器及伺服电机的时候,以保护器材的安全和人身的安全,在使用的时候要多多注意配线是否有错误,有没有正确连接,特别是电源输入和电机输出部分,检查整个线路,排除短路的情况。同时检查接地线,确保正确接地。最后再检查接的线是否有松动的可能,除此之外,还需检查电源电压是否在该伺服驱动器的额定电压范围内,固定住电机的铁架子处是否稳定等,尽量做到步步俱到,不要出现人为的操作错误。该伺服驱动器的控制信号采用上位机(三菱PLC-FX2N48MT)的信号控制,与上位机的连接需要X4连接器的配线,在使用的时候,PLC需要与伺服驱动器的距离不能少于3.5米,与主电路的配线应该大于40厘米,减少各种信号在使用时被互相扰乱,并且“X4连接器配线”不能与其他电缆捆扎在一起。2.7.2交流伺服驱动器-电机的作用在本课题中,交流伺服驱动器-电机需要根据需求带动输送带,通过上位机发来不同个数的脉冲信号,根据脉冲个数决定着输送机带着产品移动的距离,实现基于支持向量机的产品外包装分类分拣的一环。

3基于支持向量机的产品外包装的图像处理过程3.1支持向量机的概述支持向量机要做的工作大体可以这么描述,在一个平面上有着两种类型的样本,支持向量机便需要在这些样本中找到一个分界面,而这个分界面正好能把两种不同种类的样本分开,使得分界面两侧分别只有一种类型的样本,对于最简单的情况,比如说在一个二维空间上,务求把如下图3-1所示的白色的点和黑色的点实现划分,让这个分界面把黑色的点和白色的点隔离开来。图3-1分界面但是这条直线并不是唯一一条能够把图中的黑白点进行分类的直线,也有诸如图3-2以下的情况。图3-2多条分界面这时,才到了支持向量机发挥作用的时候了。支持向量机的作用就是要找到最合适的一条直线所在的位置。如果有一条直线能够保证最靠近它的黑点与白点距离为最大的时候,即分割的间隙越大,这样分出来的特征精准度会更高,容错空间也会更大。当然,上面的分类也只是能线性可分的情况下进行,而在大多数情况下,许多分类并不是线性可分的,样本数据有可能分布的较为混乱和无规则,在使用线性可分办法便难以把该数据样本进行分类和分割,非线性分布如图3-3展示。图3-3非线性分布对于这种非线性的情况下,可以使用一条曲线去完美地分割样本数据如图3-4。图3-4非线性分类从线性可分到线性不可分,就是从简单到复杂的一种情况,除此之外,从二维空间伸展到三维甚至多维空间,都可以使用非线性的方法来解决。把问题从最基础的线性空间转移到更高一阶的空间,再用低一阶的空间来表示这个分界面,利用这个分界面对需划分的样本数据进行处理,通过这种方式,间接地增加了对样本分类的分类条件和准确度。支持向量机的工作便是找到一个甚至多个分界面,在众多分界面中找到最适合的一个分界面,而这个分界面能够把两种或者多种数据样本分开了。如果这个分界面在一个二维平面上,那么这个分界面就是一条直线,如果在三维空间中,那么这个分界面就是一个平面,四维空间上的话,这个分界面就是一个三维的空间了。当数据样本处于一个低维空间且不可分开时,那么便可以使用核函数把低维样本数据对应到高维空间,在高维空间化成线性可分后,便可以通过支持向量机找到一个可以把样本数据分开的分界面。3.2图像处理中的设计工具OPENCV3.2.1opencv的介绍OpenCV的全名是OpenSourceComputerVisionLibrary。OpenCV是一个跨平台的计算机视觉库,它在图像处理和计算机视觉方面拥有着很多的通用算法,可以运行在Linux、WINDOWS、Macos、iOS、Android、openbsd、maemo等操作品台上。opencv由一系列C函数和C++类构成,除此之外,opencv还支持使用C#、Ch、Ruby等编程语言进行开发和使用,而且支持了对Ruby、MATLAT、Python等语言的接口,所以拥有着轻量且高效的优点。Opencv的设计初衷是希望能够尽量加快算法处理的执行速度,同时注重在实际中的使用。它的编写所用的是优化过的编写方式,在多核处理器上拥有着更加明显的优势。它的最终任务是建造一个简易方便使用的计算机视觉躯壳,用来协助开发者通过更加简单的方式作出更繁杂的计算机使用程序。Opencv由许多的C类函数和C++类函数组成,在中高层应用程序编程接口领域中也包含着五百多个C类函数的跨平台服务。它无需依附于别的外部函数库,不过也可以在有需要的时候去使用某些特定的外部库。OpenCV在计算机视觉的领域中有着诸多方面的应用,如:“工厂产品检测、医学成像、用户界面、照相机标定、机器人、信息安全和立体视觉等”[4]。因为计算机视觉与机器学习密切有关,因此opencv还提供MML机器学习库(MML:MachineLearningLibrary),该机器学习函数库一般多用在计算方面的模式认知与分类。MLL一般在与视觉领域相关的应用上得到应用,在其他机器学习的场所也得到很多重视。自从opencv最初的beta版本发布后,它便广泛的得到了实际的应用,电子、卫星地图的拼合。医学图像去噪(如滤波和去噪)。图像中的物体分析。扫描图像对齐。自动监视和安全系统。安全和入侵检测系统。于制造业中对产品进行质量检测。照相机标定。无人水下机器人10.军事应用、无人飞行器、无人汽车等此外,如果尝试把计算机视觉识别运用在声线谱上,opencv还可以对各类声音或者声乐进行鉴识,从而达成“听”的功能。OpenCV提供的视觉处理算法非常丰富。由于它部分以高效的C语言编写,加上它开源的特性,处理得当的话,不需要添加新的外部支持也可以完整的编译链接生成执行程序,所以很多研究者喜欢用它来做算法的移植,OpenCV的代码经过适当的改写可以正常的运行在ARM嵌入式系统、单片机系统以及DSP系统中,OpenCV在目前应用的较多的领域有:人机交互、人脸识别、图像分区、动作识别、机器人、运动跟踪、物体识别等。3.2.2opencv的安装及添加环境变量想利用opencv来进行图像识别,首先便需要先进行安装好Opencv,选择需要用的opencv版本号,从官网上(/)寻找好所需要的安装包,然后把它下载下来。双击打开如图3-5,发现其实安装包只是一个自解压的程序,需要做的就是选择一个合适的路径进行解压。指定一个计算机上的分区进行安装(本文安装在D盘),安装结束后,D盘就会多了一个以opencv命名的文件夹,打开后有“build”和“sources”两个文件夹。其中,“build”文件夹中是支持在使用opencv的时候所需要的相关文件(opencv的系统文件)。在sources文件夹里,有着很多opencv官方放在里面的源代码和例子的相关文件,以便于使用者快速上手和运用opencv的诸多实例文件。如果平常使用的时候只是为了将opencv写的程序可以在电脑上运行,以及想多节约点电脑上的硬盘空间,那么完全可以把“sources”这个文件夹包括它里面所有的文件可以全部删掉,只留下“build”这个最关键的文件夹就行了。图3-5文件安装目录3.2.3添加opencv的环境变量把opencv解压好了之后,由于opencv这个软件的安装形式并不同于exe文件,exe文件在安装的时候会自己在注册表注册以及添加相关的环境变量配置。而opencv只是作为一个被调用的计算机视觉库,在解压的时候并没有自己添加环境变量,找到环境变量配置需要根据计算机环境添加相应的环境变量。当添加完变量后,需要重启一次电脑,这样加进去的变量才会生效。3.3MicrosoftVisualStudio2010的介绍Visualstudio是微软公司推出的开发工具包系列产品,主要作用于Windows平台应用程序开发。作为一个开发工具,可以用来设计应用程序和web方面的程序,VisualStudio2010于2010年4月12日上市,相较之前的版本,它最大的亮点就是支持了对Windows7的应用进行开发,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。Visualstudio是个很强大的编程软件。它支持的语言包括VB,C,C++,C#,可以说是涵盖了当下全部的流行编程语言。Visualstudio是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括MicrosoftWindows、WindowsMobile、WindowsCE、.NETFramework、.NETCompactFramework和Microsoft

Silverlight

及WindowsPhone。3.4MicrosoftVisualStudio2010的安装与开发环境配置3.4.1MicrosoftVisualStudio2010的安装MicrosoftVisualStudio2010的安装是比较简单的,因为安装的时候是中文的,在网上找到相应版本的安装包,打开后根据提示进行安装就可以了。主要是进行它的开发环境配置比较重要,只有正确的进行配置后,才能配合opencv完成本次的课题。3.4.2MicrosoftVisualStudio2010的开发环境配置打开visualstudio2010,新建好一个win32控制台应用程序,取完名字后选择一个路径保存。然后在源文件处添加一个新cpp文件,随意命名后确认。接着在该软件的菜单栏里,接着在软件的菜单里找出属性管理器,打开Debug属性页,在VC++目录添加三个目录,接下来依次添加OpenCV所属的三个目录:D:\opencv\build\include\opencv2;D:\opencv\build\include\opencv;D:\opencv\build\include。接下来进行工程库目录的配置,需要把opencv属于VS2010的库目录文件夹路径添加到VC++目录的库目录,最后进行链接库的配置,只需要把opencv安装后属于VS2010的库目录文件下所有的库名添加到相应的位置就可以了其中,以d结束命名的库文件,意味着Debug运行模式,相反的则意味着Release运行模式,而把d结尾的库文件放在前面,代表着程序优先使用Debug模式运行。这样的话visualstudio2010的开发环境配置已经完成。接下来只需要输入程序尝试一下是否能正常运行就可以了。新建一个cpp文件,输入如下代码,在保存cpp文件的文件夹下放入原图,点击运行后结果如图3-6(当配置成功的时候便不会报错,并且根据代码进行展示原图和效果图)图3-6开发环境配置测试vs2010的开发环境至此完成配置。

4OpenCV中基于支持向量机的图像分类图像分类,利用计算机特定功能,对图像作定量分析,把分析结果通过算法进行划分,图像被割分后每个块都被进行多个类别的分类,起到特征识别的作用,能够使机器代替人眼对物品进行识别功能。一般来说,对图像进行提高对比度、增加视觉维数、进行空间滤波或变换等处理的目的就是使人们能够凭借知识和经验,根据图像亮度、色调、位置、纹理和结构等特征,准确地对图像景物类型或目标做出正确的判读和解释。

特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。本设计中,由对产品外包装进行各角度的图像进行数据收集,并成为向量机进行二分类的特征数据提取数据源,具体的工作流程图如图4-1。图4-1基于支持向量机的图像分类流程图其中,每个流程的具体操作方式由下文介绍。4.1数据获取通过照相机或者网上搜索的相关数据,或者是已经准备好的待采样的图片,获取样本数据。本课题需要对四种产品的外包装进行分类,从网上找到相关的包装图像后,分类好后放入相应的文件夹,做好特征提取的准备。如图4-2、4-3、4-4、4-5均为待进行特征提取的训练图像数据。图4-2轩妈蛋黄酥-饿辣训练图图4-3轩妈蛋黄酥-红豆沙训练图图4-4轩妈蛋黄酥-榴莲训练图图4-5轩妈蛋黄酥-那么小训练图4.2图像特征提取与选择图片特征提取与选择,利用surf算法对图片集特征的提取,借助opencv对图像的处理,从某类别图像集中获得该类图像的各种特征。通过对同种产品外包装的不同角度的图像收集,使机器能从大量的数据源来对物品进行特征提取。支持向量机通过对特征集的提取和建立特征向量的训练,影响着对图像识别分类功能的精准度。从微观上来说,不存在特征完全一样的物体,每个物体的特征一般都是独一无二的,但由于许多条件的限制,特征的收集结果与现实总是会有误差。所以,根据一个物体的本质确立它的大致特征,是识别成功的难点。训练向量机的时候,并不一定是特征向量越多的物体越容易识别,于是,为了增加特征向量计算的鲁棒性,便需要减少特征点来描述物品,特征描述在实际运用中的不完全性是无法规避的。4.3聚类聚类主要是将提取到的特征聚成N类,根据Kmeans算法,将这些特征数据划分为K个聚类,使其满足在同一个聚类中将各个特征数据相似度高的作为一类。在所有的N类中,每一类都相当于是这张图像的一个单词,而这张图像作为一个词汇表收集着这些单词。当训练集比较大的时候,可以适当的加大取值。4.4构造词袋模型将所训练的图片中所有的特征进行分类,把他们放到不同的类别中,也就是完成聚类,一个图像所拥有的总聚类个数就构成了对这个图像识别精准度的程度,将这个图像的所有特征经过聚类算法划分完成并收敛后,聚类的个数就构成了一个词典,分类完成后再统计每一类别特征出现的频率,相当于统计该类别特征在词典中出现的频率。4.5训练分类器通过收集好的大量样本特征数据确定分类器,做好分类器设计。训练一个多分类器,将每张图片上获取到的词袋作为特征向量,根据词袋模型作二分类训练,经过支持向量机算法找到一个最优化的分界面,最后构造出向量机模型生成的文件如图4-6。图4-6构建的分类器模型4.6分类结果及演示在图像处理分类中用到了一种模型,叫做词袋模型。词袋模型最先被运用于文本分类中,把文档作为一个特征的分类,也就是特征向量。它的处理方式是把特征值比作一个文本来看待。忽略该文本的语序、语法等,只当成是一些词汇的汇合,文本中的词汇大多是独立的。利用vs2010新建一个控制台,输入以上操作的相应程序,并且把待测试的4张图片准备好,如图4-7。图4-7待测试分类的四张产品外包装图像运行程序后,程序便开始进行物品特征的提取、聚类、构造bagofwords、训练分类器的操作,程序做完以上步骤后便开始对进行分类测试的图像做出分类,按下回车后,程序会按照顺序对待测试分类的四张产品外包装图像进行分类,直到结束第四张图片的分类。结果如图4-8、4-9、4-10、4-11。图4-8识别出序号为1的测试图像图4-9识别出序号为2的测试图像图4-10识别出序号为3的测试图像图4-11识别出序号为4的测试图像

5模拟实物装置的实现在上一个章节中,实现了基于支持向量机的产品外包装的分类操作,要实现模拟实物装置的运行,还需要用到大恒工业相机和PLC等调试。5.1工业相机的调试在实现了基于支持向量机对产品外包装分类后,接下来需要把四个产品外包装分类结果传送给PLC,实现产品分类分拣系统的下一步操作。根据工业相机的应用说明书,找到了工业相机自带且可用的3个I/O输出口来传送分类结果给PLC,该接口使用的是8-Pin的Hirose圆形公头插座,其8根线具体的定义如图5-1(从摄像机背面看)。图5-1接口定义当用Line2/Line3作为输出引脚的时候,允许的最大输出电流为25mA,等效电路图如图5-2。图5-2Line2作为输出引脚时相机内部等效电路用Line1+作为输出时,允许的最大输出电流为25mA,输出电路为图5-3。图5-3Line1+作为输出引脚时相机内部等效电路工业相机将以上面三种引脚的输出作为分类信号给PLC处理,而实现这个过程需要在编程的时候调用大恒相机官方自带的SDK文件,里面有一些控制相机的源代码,在使用VS2010编写程序的时候,就可以使用这些代码,如本设计需要的代码如打开相机、图片采集、图片储存等代码,这些代码在SDK文件里都能够找到。5.2三菱PLC对信号的处理本设计中,相机能够把分类后的结果以不同的方式传送给PLC的输入端子,而PLC要做的,就是根据输入的不同信号,输出相应的脉冲信号给伺服驱动器,伺服驱动器在控制电机转动的圈数,以实现不同产品外包装的位置控制。当PLC输出完脉冲信号,便再次输出电压信号控制电磁阀,驱使伸缩气缸伸出,把产品推出传送带,完成产品的分类。根据相机传送过来的三个电压信号,其输入输出接口分配表5-1。表5-1PLC输入输出接口分配表序号PLC地址地址说明1X000Line2信号输入2X001Line3信号输入3X002Line1+信号输入4Y001脉冲信号输出5Y002电池阀16Y003电磁阀27Y004电磁阀38Y005电磁阀4接下来就只需要根据输入输出接口的分配和设计的要求进行程序的编写,确认无误后下载到PLC,完成现场各实物线路的连接,便可以进行调试了。

结束语当时在接到该课题的时候,总感觉它和学校里的自动化生产线有些类似,加上自己修过“自动化生产线综合实验”这门必修课,本课题也需要用到的PLC自己修过西门子PLC的知识,便感觉这个设计我能够做的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论