摘 要本文详细介绍了多变量预测控制算法及其在环境试验设备控制中的应用。由于环境试验设备的温度和湿度控制系统具有较大的时间滞后,而且系统间存在比较严重的耦合现象,用常规的PID控制不能取得满意的控制效果。针对这种系统,本文采用了多变量预测控制算法对其进行了控制仿真。预测控制算法是一种基于系统输入输出描述的控制算法,其三项基本原理是预测模型、滚动优化、反馈校正。它选择单位阶跃响应作为它的“预测模型”。这种算法除了能简化建模过程外,还可以通过选择合适的设计参数,获得较好的控制效果和解耦效果。本文先对环境试验设备作了简介,对控制中存在的问题进行了说明;而后对多变量预测控制算法进行了详细的推导,包括多变量自衡系统预测制算法和多变量非自衡系统预测控制算法;然后给出了系统的建模过程及相应的系统模型,在此基础上采用多变量预测控制算法对环境试验设备进行了控制仿真,并对仿真效果进行了比较。仿真结果表明,对于和环境试验设备的温度湿度控制系统具有类似特性的多变量系统,应用多变量预测控制算法进行控制能够取得比常规PID控制更加令人满意的效果。关键词:多变量系统;预测控制;环境试验设备【中文摘要共100—300个字,关键词3—7个词中文摘要和关键词占一页】【英文全部用Times New Roman字体】Abstract 【三号字体,加粗,居中上下空一行】【正文小四号字体,行距为固定值20磅】In this paper, multivariable predictive control algorithm and its application to the control of the environmental test device are introduced particularly. The temperature and humidity control system of the environmental test device is characterized as long time delay and severe coupling. Therefore, the routine PID control effect is unsatisfactory. In this case, the simulation of the temperature and humidity control of the environmental test device based on multivariable predictive control algorithm is control algorithm is one of control algorithm based on description of system’s input-output. Its three basic principles are predictive model, rolling optimization and feedback correction. It chooses unit step response as its predictive model, so that the modeling process is simplified. In addition, good control and decoupling effects could be possessed by means of selection suitable this paper, the environmental test device is introduced briefly and the existing problems are showed. Then multivariable predictive control algorithm is presented particularly, including multivariable auto-balance system predictive control algorithm and multivariable auto-unbalance system predictive control algorithm. Next, system modeling process and corresponding system model are proposed. Further, the multivariable predictive control algorithm is applied to the temperature and humidity control system of the environmental test device. Finally, the simulation results are of the simulation show that multivariable predictive control algorithm could be used in those multivariable system like the temperature and humidity control system of the environmental test device and the control result would be more satisfactory than that of the routine PID : Multivariable system; Predictive control; Environmental test device【英文摘要和关键词应该是中文摘要和关键词的翻译英文摘要和关键词占一页】【目录范例,word自动生成】目 录第一章 绪 论 引言 数字图像技术的应用与发展 问题的提出 论文各章节的安排 4第二章 数字图像处理方法与研究 灰度直方图 定义 直方图的性质和用途 几何变换 空间变换 灰度级插值 几何运算的应用 空间滤波增强 空间滤波原理 拉普拉斯算子 中值滤波 图像分割处理 直方图门限化的二值分割 直方图的最佳门限分割 区域生长 16第三章 图像处理软件设计 图像处理软件开发工具的选择 BMP图像格式的结构 软件开发工具的选择 EAN-13码简介 EAN-13条码的结构 条码的编码方法 系统界面设计 22第四章 条码图像测试 条码图像处理的主要方法 条码图像测试结果 25第五章 总结与展望 28参考文献 29当先验概率相等,即 时,则()恰为二者均值。以上分析可知,只要 和 已知以及 和 为正态,容易计算其最佳门限值T。实际密度函数的参数常用拟合法来求出 参数的估值。如最小均方误差拟合估计来会计 参量,并使拟合的均方误差为最小。例如,设想理想分布的密度为正态 ,实际图像直方图为 ,用离散方式其拟合误差为()式中N为直方图横坐标。通常这种拟合求密度函数的几个参数很难解,只能用计算机求数值解,但若 为正态分布时只需求均值和标准差二参数即可。 区域生长区域生长是一种典型的串行区域分割技术,在人工智能领域的计算机视觉研究中是一种非常重要的图像分割方法,其主要思想是将事先选中的种子点周围符合某种相似性判断的像素点集合起来以构成区域。在具体处理时,是从把一幅图像分成许多小区域开始的,这些初始小区域一般是小的邻域,甚至是单个的像素点。然后通过定义适当的区域内部隶属规则而对周围像素进行检验,对于那些符合前述隶属规则的像素点就将其合并在内,否则将其据弃,经过若干次迭代最终可形成待分割的区域。在此提到的“内部隶属规则”可根据图像的灰度特性、纹理特性以及颜色特性等多种因素来作出决断。从这段文字可以看出,区域生长成功与否的关键在于选择合适的内部隶属规则(生长准则)。对于基于图像灰度特性的生长准则,可以用下面的流程对其区域生长过程进行表述,如图所示。图 2. 6 区域生长流程图第三章 图像处理软件设计 图像处理软件开发工具的选择 BMP图像格式的结构数字图像存储的格式有很多种,如BMP、GIF、JPEG、TIFF等,数字图像处理中最常用的当属BMP,本课题采集到的图片也是用BMP格式存储的,要对这种格式的图片进行处理,那么首先就要了解它的文件结构。(1)BMP文件格式简介BMP(Bitmap-File)图形文件是Windows采用的图形文件格式在Windows环境下运行的所有图象处理软件都支持BMP图像文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。Windows 以前的BMP位图文件格式与显示设备有关,因此把这种BMP图像文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。Windows 以后的BMP图像文件与显示设备无关,因此把这种BMP图像文件格式称为设备无关位图DIB(device-independent bitmap)格式,目的是为了让Windows能够在任何类型的显示设备上显示所存储的图像。BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)。(2)BMP文件构成BMP文件由位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、颜色信息(color table)和图形数据四部分组成。它具有如表所示的形式。表 3. 1 BMP位图结构位图文件的组成 结构名称 符号位图文件头(bitmap-file header) BITMAPFILEHEADER bmfh位图信息头(bitmap-information header) BITMAPINFOHEADER bmih颜色信息(color table) RGBQUAD aColors[]图形数据 BYTE aBitmapBits[] 软件开发工具的选择(1)Win32 APIMicrosoft Win32 API(Application Programming Interface)是Windows的应用编程接口,包括窗口信息、窗口管理函数、图形设备接口函数、系统服务函数、应用程序资源等。Win32 API是Microsoft 32位Windows操作系统的基础,所有32位Windows应用程序都运行在Win32 API之上,其功能是由系统的动态链接库提供的。(2)Visual C++Visual C++是Microsoft公司出品的可视化编程产品,具有面向对象开发,与Windows API紧密结合以及丰富的技术资源和强大的辅助工具。Visual C++自诞生以来,一直是Windows环境下最主要的应用开发系统之一,Visual C++不仅是C++语言的集成开发环境,而且与Win32紧密相连,所以利用Visual C++可以完成各种各样的应用程序的开发,从底层软件直到上层直接面向用户的软件。Visual C++是一个很好的可视化编程环境,它界面友好,便于程序员操作。Visual C++可以充分利用MFC的优势。在MFC中具有许多的基本库类,特别是MFC中的一些,利用它们可以编写出各种各样的Windows应用程序,并可节省大量重复性的工作时间,缩短应用程序的开发周期。使用MFC的基本类库,在开发应用程序时会起到事半功倍的效果。Visual C++具有以下这些特点:简单性:Visual C++中提供了MFC类库、ATL模板类以及AppWizard、ClassWizard等一系列的Wizard工具用于帮助用户快速的建立自己的应用程序,大大简化了应用程序的设计。使用这些技术,可以使开发者编写很少的代码或不需编写代码就可以开发一个Windows应用程序。灵活性:Visual C++提供的开发环境可以使开发者根据自己的需要设计应用程序的界面和功能,而且,Visual C++提供了丰富的类库和方法,可以使开发者根据自己的应用特点进行选择。可扩展性:Visual C++提供了OLE技术和ActiveX技术,这种技术可以增强应用程序的能力。使用OLE技术和ActiveX技术可以使开发者利用Visual C++中提供的各种组件、控件以及第三方开发者提供的组件来创建自己的程序,从而实现应用程序的组件化。使用这种技术可以使应用程序具有良好的可扩展性。(3)MFCMFC(Microsoft Foundation Class)是Microsoft公司用C++语言开发的一套基础类库。直接利用Win32 API进行编程是比较复杂的,且Win32 API不是面向对象的。MFC封装了Win32 API的大部分内容,并提供了一个应用程序框架用于简化和标准化Windows程序的设计。MFC是Visual C++的重要组成部分,并且以最理想的方式与其集成为一体。主要包括以下各部分:Win32 API的封装、应用程序框架、OLE支持、数据库支持、通用类等。 EAN-13码简介人们日常见到的印刷在商品包装上的条码,自本世纪70年代初期问世以来,很快得到了普及并广泛应用到工业、商业、国防、交通运输、金融、医疗卫生、邮电及办公室自动化等领域。条码按照不同的分类方法,不同的编码规则可以分成许多种,现在已知的世界上正在使用的条码就有250种之多。本章以EAN条码中的标准版EAN-13为例说明基于数字图像处理技术,对EAN条码图像识别的软件开发方法。EAN码是国际物品编码协会在全球推广应用的商品条码,是定长的纯数字型条码,它表示的字符集为数字0~9。由前缀码、厂商识别代码、商品项目代码和校验码组成。前缀码是国际EAN组织标识各会员组织的代码,我国为690~695;厂商识别代码是EAN会员组织在EAN前缀码的基础上分配给厂商的代码;商品项目代码由厂商自行编码;校验码上为了校验前面12位或7位代码的正确性。 EAN-13条码的结构EAN-13码是按照“模块组合法”进行编码的。它的符号结构由八大部分组成:左侧空白区、 起始符、左侧数据符、中间分隔符、右侧数据符、校验符、终止符及右侧空白区,见表。尺寸: × ;条码: ;起始符/分隔符/终止符: ;放大系数取值范围是~;间隔为。表 3. 2 EAN-13码结构左侧空白区 起始符 左侧数据符 中间间隔符 右侧数据符 校验符 终止符右侧空白区9个模块 3个模块 42个模块 5个模块 35个模块 7个模块 3个模块 9个模块EAN-13码所表示的代码由13位数字组成,其结构如下:结构一:X13X12X11X10X9X8X7X6X5X4X3X2X1其中:X13~X11为表示国家或地区代码的前缀码;X10~X7为制造厂商代码;X6~X2为商品的代码;X1为校验码。结构二:X13X12X11X10X9X8X7X6X5X4X3X2X1其中:X13~X11为表示国家或地区代码的前缀码;X10~X6为制造厂商代码;X5~X2为商品的代码;X1为校验码。在我国,当X13X12X11为690、691时其代码结构同结构一;当X13X12X11为692时其代码结构为同结构二。EAN条码的编码规则,见表:起始符:101;中间分隔符:01010;终止符:101。A、B、C中的“0”和“1”分别表示具有一个模块宽度的“空”和“条”。表 3. 3 EAN条码的编码规则数据符 左侧数据符 右侧数据符A B C0 0001101 0100111 11100101 0011001 0110011 11001102 0010011 0011011 11011003 011101 0100001 10000104 0100011 0011101 10111005 0110001 0111001 10011106 0101111 000101 10100007 0111011 0010001 10001008 0110111 0001001 10010009 0001011 0010111 条码的编码方法条码的编码方法是指条码中条空的编码规则以及二进制的逻辑表示的设置。众所周知,计算机设备只能识读二进制数据(数据只有“0”和“1”两种逻辑表示),条码符号作为一种为计算机信息处理而提供的光电扫描信息图形符号,也应满足计算机二进制的要求。条码的编码方法就是通过设计条码中条与空的排列组合来表示不同的二进制数据。一般来说,条码的编码有两种:模块组合和宽度调节法。模块组合法是指条码符号中,条与空是由标准宽度的模块组合而成。一个标准宽度的条表示二进制的“1”而一个标准的空模块表示二进制的“0”。商品条码模块的标准宽度是 ,它的一个字符由两个条和两个空构成,每一个条或空由1~4个标准宽度模块组成。宽度调节法是指条码中,条与空的宽窄设置不同,用宽单元表示二进制的“1” ,而用窄单元表示二进制的“0”,宽窄单元之比一般控制在2~3之间。 系统界面设计本文图像处理软件基本功能包括读取图像、保存图像、对图像进行处理等。图所示为本图像处理软件的界面。图 3. 1 软件主界面软件设计流程图如图所示。图 3. 2 程序设计流程图第四章 条码图像测试 条码图像处理的主要方法(1)256色位图转换成灰度图运用点处理中的灰度处理为实现数字图像的阈值变换提供前提条件。要将256色位图转变为灰度图,首先必须计算每种颜色对应的灰度值。灰度与RGB颜色的对应关系如下:Y= ()这样,按照上式我们可以方便地将256色调色板转换成为灰度调色板。由于灰度图调色板一般是按照灰度逐渐上升循序排列的,因此我们还必须将图像每个像素值(即调色板颜色的索引值)进行调整。实际编程中只要定义一个颜色值到灰度值的映射表bMap[256](长为256的一维数组,保存256色调色板中各个颜色对应的灰度值),将每个像素值p(即原256色调色板中颜色索引值)替换成bMap[p]。(2)灰度的阈值变换利用点运算中的阈值变换理论将灰度图像变为二值图像,为图像分析做准备工作。灰度的阈值变换可以将一幅灰度图像转变为黑白二值图像。它的操作是先由用户指定一个阈值,如果图像中某像素的灰度值小于该阈值,则将该像素的灰度值设置为0,否则灰度值设置为255。(3)中值滤波运用变换域法中的空域滤波法对图像进行降噪处理。中值滤波是一种非线性的信号处理方法,与其对应的滤波器当然也是一种非线性的滤波器。中值滤波一般采用一个含有奇数个点的滑动窗口,将窗口中各点灰度值的中值来替代指定点(一般是窗口的中心点)的灰度值。对于奇数个元素,中值是指按大小排序后,中间的数值,对于偶数个元素,中值是指排序后中间两个元素灰度值的平均值。(4)垂直投影利用图像分析中的垂直投影法实现对二值图像的重建,为条码识别提供前提条件。垂直投影是利用投影法对黑白二值图像进行变换。变换后的图像中黑色线条的高度代表了该列上黑色点的个数。(5)几何运算几何运算可以改变图像中各物体之间的空间关系。几何运算的一个重要应用是消除摄像机导致的数字图像的几何畸变。当需要从数字图像中得到定量的空间测量数据时,几何校正被证明是十分重要的。另外,一些图像系统使用非矩形的像素坐标。在用普通的显示设备观察这些图像时,必须先对它们进行校直,也就是说,将其转换为矩形像素坐标。 条码图像测试结果本软件的处理对象为EAN-13码的256色BMP位图,应用数字图像处理技术中的灰度处理、阈值分割、空域滤波、区域生长、投影等方法,对有噪声的条码图像进行了相应处理,其结果如下:图4. 1 原始条码图 图4. 2 灰度窗口变换图4. 3 原条码直方图 图4. 4 灰度窗口变换直方图图4. 5灰度直方图规定化界面 图4. 6灰度直方图规定化直方图图4. 7 中值滤波的界面图4. 8 区域生长 图4. 9 阈值面积消除图4. 10 垂直投影从以上处理结果可以看出,对原始条码图像进行灰度变换、中值滤波、二值化以及小面积阈值消除后得到条码的投影图像,下一步就可以通过图像模式识别的方法将条码读取出来,该部分工作还有待进一步研究。第五章 总结与展望数字图像处理技术起源于20世纪20年代,当时由于受技术手段的限制,使图像处理技术发展缓慢。直到第三代计算机问世以后,数字图像处理才得到迅速的发展并得到普遍应用。今天,已经几乎不存在与数字图像处理无关的技术领域。本论文主要研究了数字图像处理的相关知识,然后通过Visual C++这一编程工具来实现图像处理算法;对文中所提到的各种算法都进行了处理,并得出结论。所做工作如下:(1)运用点处理法中的灰度处理为实现数字图像的阈值变换提供前提条件。(2)运用变换域法中的空域滤波法对图像进行降噪处理。(3)利用点运算中的阈值变换理论将灰度图像变为二值图像,为图像分析做准备工作。(4)利用图像分析中的垂直投影法实现对二值图像的重建,为条码识别提供前提条件。在论文的最后一章,给出了各种算法处理的结果。结果表明通过数字图像处理可以把有噪声的条码处理成无噪声的条码。数字图像处理技术的应用领域多种多样,不仅可以用在像本文的图像处理方面,还可以用于模式识别,还有机器视觉等方面。近年来在形态学和拓扑学基础上发展起来的图像处理方法,使图像处理的领域出现了新的局面,相信在未来图像处理的应用将会更加广泛。参考文献[1] 阮秋琦.数字图像处理学[M].北京:电子工业出版社,2001.[2] 黄贤武,王加俊,李家华.数字图像处理与压缩编码技术[M].成都:科技大学出版社,2000.[3] 容观澳.计算机图像处理[M].北京:清华大学出版社,2000.[4] 胡学钢.数据结构-算法设计指导[M].北京:清华大学出版社,1999.[5] 黄维通.Visual C++面向对象与可视化程序设计[M].北京:清华大学出版社,2001.[6] 夏良正.数字图像处理[M].南京:东南大学出版社,1999.[7] 费振原.条码技术及应用[M].上海:上海科学技术文献出版社,1992.[8] 李金哲.条形码自动识别技术[M].北京:国防工业出版社,1991.[9] 何斌.Visual C++数字图像处理[M].北京:人民邮电出版社,2001.[10] 李长江. C++使用手册[M].北京:电子工业出版社,1995.[11] 席庆,张春林. Visual C++ .实用编程技术[M].北京:中国水利水电出版社,1999.[12] 胡学钢.数据结构-算法设计指导[M].北京:清华大学出版社,1999.[13] Kenneth 著,朱志刚等译.数字图像处理[M].北京:电子工业出版社,1998.[14] Davis. C++ [M].北京:清华大学出版社,1999.[15] Richard C++ 5 Power Toolkit[M].北京:机械工业出版社,1999.
图像处理的很多任务都离不开图像分割。因为图像分割在cv中实在太重要(有用)了,就先把图像分割的常用算法做个总结。 接触机器学习和深度学习时间已经不短了。期间看过各种相关知识但从未总结过。本文过后我会尽可能详细的从工程角度来总结,从传统机器学习算法,传统计算机视觉库算法到深度学习目前常用算法和论文,以及模型在各平台的转化,量化,服务化部署等相关知识总结。 图像分割常用算法大致分为下面几类。由于图像的能量范函,边缘追踪等方法的效果往往只能解决特定问题,效果并不理想,这里不再阐述。当然二值化本身也可以分割一些简单图像的。但是二值化算法较多,我会专门做一个文章来总结。这里不再赘述。 1.基于边缘的图像分割算法: 有利用图像梯度的传统算法算子的sobel,roberts,prewitt,拉普拉斯以及canny等。 这些算法的基本思想都是采用合适的卷积算子,对图像做卷积。从而求出图像对应的梯度图像。(至于为什么通过如图1这样的算子卷积,即可得到图像的梯度图像,请读者复习下卷积和倒数的概念自行推导)由于图像的边缘处往往是图像像素差异较大,梯度较大地方。因此我们通过合适的卷积核得到图像的梯度图像,即得到了图像的边缘图像。至于二阶算子的推导,与一阶类似。优点:传统算子梯度检测,只需要用合适的卷积核做卷积,即可快速得出对应的边缘图像。缺点:图像边缘不一定准确,复杂图像的梯度不仅仅出现在图像边缘,可以能出现在图像内部的色彩和纹理上。 也有基于深度学习方法hed,rcf等。由于这类网络都有同一个比较严重的缺陷,这里只举例hed网络。hed是基于FCN和VGG改进,同时引出6个loss进行优化训练,通过多个层输出不同scale的粒度的边缘,然后通过一个训练权重融合各个层的边缘结果。hed网络结构如下: 可以得到一个比较完整的梯度图像,可参考github的hed实现。优点:图像的梯度细节和边缘完整性,相比传统的边缘算子要好很多。但是hed对于边缘的图像内部的边缘并不能很好的区分。当然我们可以自行更改loss来尝试只拟合外部的图像边缘。但最致命的问题在于,基于vgg的hed的网络表达能力有限,对于图像和背景接近,或者图像和背景部分相融的图片,hed似乎就有点无能为力了。 2.基于区域分割的算法: 区域分割比较常用的如传统的算法结合遗传算法,区域生长算法,区域分裂合并,分水岭算法等。这里传统算法的思路是比较简单易懂的,如果有无法理解的地方,欢迎大家一起讨论学习。这里不再做过多的分析。 基于区域和语意的深度学习分割算法,是目前图像分割成果较多和研究的主要方向。例如FCN系列的全卷积网络,以及经典的医学图像分割常用的unet系列,以及rcnn系列发展下的maskrcnn,以及18年底的PAnet。基于语意的图像分割技术,无疑会成为图像分割技术的主流。 其中,基于深度学习语意的其他相关算法也可以间接或直接的应用到图像分割。如经典的图像matting问题。18年又出现了许多非常优秀的算法和论文。如Deep-Image-Matting,以及效果非常优秀的MIT的 semantic soft segmentation(sss). 基于语意的图像分割效果明显要好于其他的传统算法。我在解决图像分割的问题时,首先尝试用了hed网络。最后的效果并不理想。虽然也参考github,做了hed的一些fine-tune,但是还是上面提到的原因,在我多次尝试后,最终放弃。转而适用FCN系列的网络。但是fcn也无法解决图像和背景相融的问题。图片相融的分割,感觉即需要大的感受野,又需要未相融部分原图像细节,所以单原FCN的网络,很难做出准确的分割。中间还测试过很多其他相关的网络,但都效果不佳。考虑到感受野和原图像细节,尝试了resnet和densenet作为图像特征提取的底层。最终我测试了unet系列的网络: unet的原始模型如图所示。在自己拍照爬虫等手段采集了将近1000张图片。去掉了图片质量太差的,图片内容太过类似的。爬虫最终收集160多张,自己拍照收集200张图片后,又用ps手动p了边缘图像,采用图像增强变换,大约有300*24张图片。原生unet网络的表现比较一般。在将unet普通的卷积层改为resnet后,网络的表达能力明显提升。在将resnet改为resnet101,此时,即使对于部分相融的图像,也能较好的分割了。但是unet的模型体积已经不能接受。 在最后阶段,看到maskrcnn的实例分割。maskrcnn一路由rcnn,fasterrcnn发展过来。于是用maskrcnn来加入自己的训练数据和label图像进行训练。maskrcnn的结果表现并不令人满意,对于边缘的定位,相比于其他算法,略显粗糙。在产品应用中,明显还不合适。 3.基于图的分割算法 基于深度学习的deepgrab,效果表现并不是十分理想。deepgrab的git作者backbone采用了deeplabv2的网络结构。并没有完全安装原论文来做。 论文原地址参考: 整体结构类似于encode和decoder。并没有太仔细的研究,因为基于resent101的结构,在模型体积,速度以及deeplab的分割精度上,都不能满足当前的需求。之前大致总结过计算机视觉的相关知识点,既然目前在讨论移动端模型,那后面就分模块总结下移动端模型的应用落地吧。 由于时间实在有限。这里并没有针对每个算法进行详细的讲解。后续我会从基础的机器学习算法开始总结。
具体指的什么?是原理啊还是编程实现?
326 浏览 4 回答
250 浏览 3 回答
165 浏览 5 回答
130 浏览 2 回答
91 浏览 4 回答
302 浏览 5 回答
139 浏览 3 回答
314 浏览 1 回答
247 浏览 5 回答
318 浏览 4 回答
273 浏览 4 回答
336 浏览 3 回答
108 浏览 4 回答
323 浏览 3 回答
338 浏览 4 回答