• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于計(jì)算機(jī)視覺(jué)的車床零件自動(dòng)檢測(cè)

      2020-04-10 10:57:14鄒智敏劉偉
      物聯(lián)網(wǎng)技術(shù) 2020年2期

      鄒智敏 劉偉

      摘 要:為了提高生產(chǎn)效率,使學(xué)生了解計(jì)算機(jī)視覺(jué),跟上人工智能的時(shí)代發(fā)展步伐,文中設(shè)計(jì)實(shí)現(xiàn)一種基于計(jì)算機(jī)視覺(jué)的車床零件自動(dòng)檢測(cè)。車床零件自動(dòng)檢測(cè)涉及的主要算法包括圖像特征點(diǎn)檢測(cè)算法FAST,ORB;特征點(diǎn)描述算法BRIEF,ORB;特征點(diǎn)匹配算法BruteForceMatcher等。具體實(shí)現(xiàn)包括OpenCV,OpenCVSharp視覺(jué)庫(kù),Visual Studio中使用NuGet庫(kù)程序包管理器安裝OpenCVSharp視覺(jué)庫(kù),以及C#程序的具體實(shí)現(xiàn)等。實(shí)踐表明,結(jié)合校辦工廠、車床零件加工課程,一方面提升了生產(chǎn)效率,另一方讓學(xué)生了解了計(jì)算機(jī)視覺(jué)原理,掌握了計(jì)算機(jī)視覺(jué)初步開(kāi)發(fā)。

      關(guān)鍵詞:圖像特征點(diǎn);特征點(diǎn)描述;特征點(diǎn)匹配;OpenCVSharp;NuGet;ORB

      中圖分類號(hào):TP391.4文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2020)02-00-03

      0 引 言

      我校屬于中等職業(yè)技術(shù)學(xué)校,下設(shè)校辦車間,承接車床零件批量生產(chǎn),主要是為了培養(yǎng)學(xué)生的職業(yè)技能。為了提升生產(chǎn)效率,同時(shí)讓學(xué)生了解計(jì)算機(jī)視覺(jué),跟上人工智能的時(shí)代發(fā)展方向,實(shí)現(xiàn)了基于計(jì)算機(jī)視覺(jué)的車床零件自動(dòng)檢測(cè)。本文基于2019年中等職業(yè)學(xué)校教學(xué)能力比賽的“滑動(dòng)軸承零件的批量生產(chǎn)”項(xiàng)目,該項(xiàng)目獲得省一等獎(jiǎng)。

      1 實(shí)現(xiàn)原理

      1.1 計(jì)算機(jī)圖像的存儲(chǔ)與處理

      計(jì)算機(jī)中的圖像實(shí)質(zhì)上就是一個(gè)二維數(shù)字矩陣,如圖1所示。該矩陣的行數(shù)就是圖像的垂直像素?cái)?shù),列數(shù)就是圖像的水平像素?cái)?shù),矩陣中的一個(gè)數(shù)字就代表圖像對(duì)應(yīng)位置的一個(gè)像素。對(duì)計(jì)算機(jī)圖像的處理實(shí)際上就是對(duì)矩陣的運(yùn)算。

      使用數(shù)碼相機(jī)或手機(jī)拍攝的圖像一般是彩色圖像,1個(gè)像素用3個(gè)字節(jié)表示,分別代表紅(r)、綠(g)、藍(lán)(b)三色的值。在提取圖像特征點(diǎn)之前要將彩色圖像裝換成灰度圖像,灰度圖像1個(gè)像素用1個(gè)字節(jié)表示[1],其值為0.299r+0.587g+0.114b。

      1.2 圖像特征點(diǎn)提取

      車床零件自動(dòng)檢測(cè)實(shí)際就是目標(biāo)零件圖像與模板零件圖像的匹配,圖像匹配之前首先需要提取圖像特征點(diǎn)。本文使用2011年由Ethan Rublee等人提出的ORB(Oriented FAST and Rotated BRIEF)算法[2]。ORB提取特征點(diǎn)算法是2006年

      由Edward Rosten和Tom Drummond 提出的FAST(Features from Accelerated Segment Test)算法的改進(jìn)版本[3]。

      FAST算法定義特征點(diǎn)為:如果某個(gè)像素點(diǎn)和它周圍鄰域足夠多的像素點(diǎn)處于不同區(qū)域,那么這個(gè)像素點(diǎn)就是特征點(diǎn)。對(duì)于灰度圖像,如果該點(diǎn)的灰度值與其周圍足夠多的像素點(diǎn)的灰度值不同,那么這個(gè)像素點(diǎn)就是一個(gè)特征點(diǎn)[4]。算法計(jì)算步驟如下。

      (1)從圖片中選取一個(gè)坐標(biāo)點(diǎn),獲取該點(diǎn)的像素值,并判定該點(diǎn)是否為特征點(diǎn)。

      (2)選取以坐標(biāo)點(diǎn)為圓心,半徑等于3的Bresenham圓(一個(gè)計(jì)算圓的軌跡的離散算法,得到整數(shù)級(jí)的圓的軌跡點(diǎn)),這個(gè)圓上有16個(gè)點(diǎn),如圖2所示。

      (3)選取一個(gè)閾值,假設(shè)為t,并假設(shè)這16個(gè)點(diǎn)中,有n個(gè)連續(xù)的像素點(diǎn),他們的亮度值與中心點(diǎn)的像素值的差大于或者小于t,那么這個(gè)點(diǎn)就是一個(gè)特征點(diǎn)。n的取值一般取值12或者9,實(shí)驗(yàn)證明9可以取得更好的效果。

      FAST算法的優(yōu)點(diǎn)是計(jì)算速度快,缺點(diǎn)是當(dāng)圖片中的噪點(diǎn)較多時(shí),會(huì)產(chǎn)生較多的錯(cuò)誤特征點(diǎn),健壯性并不好,而且FAST特征點(diǎn)沒(méi)有方向信息,這樣就會(huì)失去旋轉(zhuǎn)不變性。ORB提取特征點(diǎn)算法就是對(duì)FAST算法進(jìn)行改進(jìn),首先它使用Harris角點(diǎn)和尺度金字塔變換算法選取最好的特征點(diǎn),然后使用中心與角度計(jì)算算法使其具有旋轉(zhuǎn)不變性[5]。

      1.3 圖像特征點(diǎn)描述

      圖像的特征點(diǎn)被提取之后需要要對(duì)特征點(diǎn)進(jìn)行描述,以便匹配。ORB特征點(diǎn)描述算法是2010年由Michael Calonder等人提出的BRIEF(Binary Robust Independent Elementary Features)算法的改進(jìn)版本[6]。

      BRIEF是一種對(duì)已檢測(cè)到的特征點(diǎn)進(jìn)行描述的算法,它是一種二進(jìn)制編碼的描述子,在圖像匹配時(shí)使用BRIEF能極大的提升匹配速度[7]。算法計(jì)算步驟如下:

      (1)以特征點(diǎn)P為中心,取一個(gè)S×S大小的鄰域(一般S=31),并做高斯平滑;

      (2)在這個(gè)鄰域內(nèi)以同樣的標(biāo)準(zhǔn)選取N對(duì)點(diǎn)(一般N=256),對(duì)于每一對(duì)點(diǎn)比較它們灰度值的大小,如果前者小于后者賦值1,否則賦值0;

      (3)最后把步驟(2)得到的N個(gè)二進(jìn)制碼串組成一個(gè)N維向量即可。

      BRIEF算法的優(yōu)點(diǎn)是計(jì)算速度快,耗費(fèi)內(nèi)存少,缺點(diǎn)是對(duì)噪聲敏感和不具備旋轉(zhuǎn)不變性。ORB算法中使用像素塊灰度和比較取代像素點(diǎn)灰度比較解決噪聲敏感問(wèn)題,另外ORB算法根據(jù)角度參數(shù)提取BRIEF描述子以及貪心算法解決旋轉(zhuǎn)不變性問(wèn)題[5]。

      1.4 圖像特征點(diǎn)描述匹配

      生成目標(biāo)圖像和模板圖像的特征點(diǎn)描述后,就需要進(jìn)行特征點(diǎn)描述匹配。本文使用BruteForceMatcher算法,該算法對(duì)兩幀圖像中每一個(gè)特征點(diǎn)與所有的特征點(diǎn)測(cè)量描述子的距離,然后排序,取距離最小的一個(gè)作為匹配點(diǎn)。描述子距離使用漢明算法,表明了兩個(gè)特征之間的相似程度。兩個(gè)等長(zhǎng)字符串之間的漢明距離是兩個(gè)字符串對(duì)應(yīng)位置的不同字符的個(gè)數(shù)[8]。例如,1011101 與 1001001 之間的漢明距離是2。

      2 程序?qū)崿F(xiàn)

      2.1 安裝OpenCVSharp

      系統(tǒng)使用OpenCVSharp實(shí)現(xiàn)。OpenCV是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux,Windows和Mac OS操作系統(tǒng)上。OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。它輕量級(jí)而且高效,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。

      OpenCVSharp是OpenCV的C#版本,它的特點(diǎn)有:

      (1)直接封裝了OpenCV方法,降低了學(xué)習(xí)的難度;

      (2)大部分繼承了IDisposable接口,方便使用using語(yǔ)句;

      (3)可以直接調(diào)用原始風(fēng)格的OpenCV方法;

      (4)可以將圖像對(duì)象直接轉(zhuǎn)換成GDI使用的Bitmap。

      OpenCVSharp的網(wǎng)址是https://github.com/shimat/opencvsharp。OpenCVSharp在VS中的環(huán)境配置是使用NuGet(庫(kù)程序包管理器)。Nuget是.NET中開(kāi)源包管理工具,可以讓開(kāi)發(fā)人員簡(jiǎn)單地合并第三方的組件庫(kù),能更方便地把一些DLL和文件添加到項(xiàng)目中,而不需要從文件中復(fù)制。當(dāng)需要分享開(kāi)發(fā)的工具或是庫(kù),需要建立一個(gè)Nuget package,然后把這個(gè)package放到Nuget的站點(diǎn)。如果想要使用別人已經(jīng)開(kāi)發(fā)好的工具或是庫(kù),只需要從站點(diǎn)獲得這個(gè)package,并且安裝到自己的Visual Studio項(xiàng)目或是解決方案里。

      本文使用Visual Studio 2019平臺(tái)開(kāi)發(fā),如圖3所示。通過(guò)【工具】【NuGet包管理器】【管理解決方案的NuGet程序包】菜單項(xiàng),打開(kāi)NuGet管理界面,如圖4所示。在搜索框中輸入“OpenCVSharp”,選擇搜索結(jié)果中的“OpenCvSharp3-AnyCPU”,在右側(cè)NuGet包信息界面中勾選當(dāng)前解決方案,點(diǎn)擊“安裝”按鈕即可[9]。

      2.2 實(shí)現(xiàn)代碼

      程序?qū)崿F(xiàn)代碼及注釋如下所示:

      3 結(jié) 語(yǔ)

      本文結(jié)合校辦工廠,模具課程實(shí)現(xiàn)了基于計(jì)算機(jī)視覺(jué)的車床零件自動(dòng)檢測(cè)程序,提升了車間自動(dòng)化程度,同時(shí)讓學(xué)生了解了計(jì)算機(jī)視覺(jué)原理,并能初步進(jìn)行開(kāi)發(fā)。起初學(xué)生覺(jué)得計(jì)算機(jī)視覺(jué)與自己無(wú)關(guān),是遙不可及,神秘莫測(cè)的,只有大學(xué)生、研究生才能勝任?,F(xiàn)在學(xué)生們覺(jué)得計(jì)算機(jī)視覺(jué)變得容易理解,并可以自己動(dòng)手實(shí)現(xiàn),增強(qiáng)了學(xué)生的自信心,專業(yè)技能以及解決問(wèn)題的能力。

      圖5 圖像匹配效果圖

      參 考 文 獻(xiàn)

      [1]楊薇.基于VC++的彩色圖像轉(zhuǎn)灰度圖像[J]. 保山學(xué)院學(xué)報(bào),2014,33(2):30-32.

      [2]佚名.ORB算法介紹[EB/OL]. [2018-02-13]. https://docs.opencv.org/3.4.1/d1/d89/tutorial_py_orb.html.

      [3]佚名. FAST算法介紹[EB/OL]. [2018-02-13]. https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_fast/py_fast.html.

      [4]高晶,陳莉,蘭小艷,等.基于FAST特征點(diǎn)提取的圖像拼接算法[J]. 西北大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,46(3):9-11.

      [5]陳玉. 一種改進(jìn)的ORB算法在圖像匹配中的應(yīng)用[J]. 微型機(jī)與應(yīng)用,2017,36(16):37-40.

      [6]佚名. BRIEF算法介紹[EB/OL]. [2018-02-18]. https://docs.opencv. org/3.0-beta/doc/py_tutorials/py_feature2d/py_brief/py_brief.html.

      [7]杜輝.基于改進(jìn)BRIEF算法的物流編碼識(shí)別技術(shù)[J]. 物流技術(shù),2015(7):261-264.

      [8]林崧,劉曉芬,姚志強(qiáng).一種基于漢明碼的數(shù)字水印算法[J]. 福建師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2004(4):24-27.

      [9]佚名.安裝管理開(kāi)源包[EB/OL]. [2018-05-12]. https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-visual-studio.

      [10]廖春萍.基于OpenCV的人臉識(shí)別系統(tǒng)[J].東莞理工學(xué)院學(xué)報(bào),2017,24(3):33-38.

      舒城县| 顺平县| 全州县| 江源县| 中西区| 天水市| 泸西县| 鄱阳县| 华坪县| 扎鲁特旗| 清新县| 彰化县| 汪清县| 宜城市| 镇巴县| 延寿县| 长泰县| 丰都县| 固阳县| 山丹县| 广河县| 伊宁市| 景谷| 柳林县| 辽宁省| 湟中县| 弥勒县| 南开区| 台南县| 汉阴县| 德令哈市| 临潭县| 阿鲁科尔沁旗| 陇川县| 塔城市| 安义县| 桦甸市| 安平县| 伊宁县| 隆尧县| 从江县|