摘 要
本文主要論述在圖像處理的的基礎(chǔ)上,為了克服圖像背景中的亮度噪聲、背景復(fù)雜和一些角度問題,通過圖像預(yù)處理之后,利用邊緣檢測算法從而實現(xiàn)對圖像邊緣的識別,再利用利用牛頓迭代法,通過不斷地迭代,與目標(biāo)值進行迭代,從而達到實現(xiàn)檢測圓的目標(biāo),以及圓心所在的位置。并對深度學(xué)習(xí)進行簡單介紹,為后續(xù)學(xué)習(xí)做好準(zhǔn)備。
關(guān)鍵詞:圖像處理;邊緣檢測;牛頓迭代;深度學(xué)習(xí);
一、 緒論
? ??? ?隨著中國制造業(yè)的快速發(fā)展,紡織業(yè)也在快速發(fā)展,但是如何去識別紗架上的紗筒是否還有余紗?因此就需在現(xiàn)實生產(chǎn)中利用工業(yè)攝像頭去識別空桶。但是在識別的過程中往往會伴隨著較多的噪聲的產(chǎn)生,它的存在不僅影響著攝像頭識別圖片的精度和質(zhì)量,進而可能造成生產(chǎn)事故。為了解決圖片的噪聲問題,基于視覺的機器人去噪聲越來越廣泛地應(yīng)用[1],其中對采集的工件圖像進行邊緣檢 測是其中一個非常重要的環(huán)節(jié)。 復(fù)雜的工業(yè)環(huán)境下圖像采集、傳輸過程會產(chǎn)生的不同噪聲,并且攝像頭在不同的拍攝角度也會導(dǎo)致圖片識別出現(xiàn)問題,形成橢圓等等,而且由于一天中的亮度是會變化的,因此我們設(shè)置的閾值也會受到影響,應(yīng)該需要提高圖片的邊緣檢測,現(xiàn)有的邊緣檢測技術(shù)難以同時減小兩者對邊緣檢測的影響。傳統(tǒng)的邊緣檢測方法常用的是二階微分邊緣檢測算子,如 Laplace 算子、 Canny 算子和sobel 算子等[2-5]。二階微分算子一般有定位精確,檢測效率高的優(yōu)點,然而二階微分算子普遍對噪聲比較敏感。
二 、圖像預(yù)處理
2.1 濾波算法
? ??? ?目前存在的濾波法有許多,但是空間濾波根據(jù)其功能劃分為平滑濾波和銳化濾波。平滑濾波:能減弱或者消除圖像中高頻率分量,但不影響低頻率分量,在實際應(yīng)用中可用來消除噪聲。
? ??? ?目前使用比較普遍的有平均濾波、中值濾波與加權(quán)濾波等等。在該論文中我打算使用加權(quán)平均濾波,該濾波方法比平均濾波效果更好。我們使用如下圖所示的3*3的平滑濾波器。
? ??? ?? ??? ?? ??? ?? ??? ?? ??? ?? ??? ?? ??? ?圖一:平均濾波的計算公式
通過該3*3的濾波模板與原圖像進行卷以后,可以濾除圖片中一些常見的噪聲。例如下圖:
圖二:未處理的原圖
圖三:處理后的圖像
? ??? ?但是經(jīng)過平滑濾波以后也會對圖像的特征進行削弱,從而會造成對圖像邊緣模糊,從而為了去除這種影響,接下來應(yīng)用了銳化濾波:與平滑濾波相反,能減弱或者消除圖像中低頻率分量,但不影響高頻率分量,可使圖像反差增加,邊緣明顯。實際應(yīng)用可用于增強被模糊的細(xì)節(jié)或者目標(biāo)的邊緣。在這里我們打算使用拉普拉斯算子去進行銳化。
圖四:拉普拉斯算子定義
圖五:離散的掩膜表達方式
圖六:數(shù)字化圖片處理中的離散表達式
? ??? ?從上述中可以看出我們分別以f(x,y)以濾波中心,x軸的濾波表達式如下圖所示:
圖七:拉普拉斯濾波的掩膜模板
? ??? ?通過對圖像像素進行二次求導(dǎo),從而能得到較好的圖像邊緣變化的特征。但是由于拉普拉斯算子對噪聲的影響非常敏感,所以再使用拉普拉斯算子之前我們得先進行噪聲濾波。下圖將顯示通過拉普拉斯濾波后圖像邊緣被顯示的圖片邊緣。
圖八:進行銳化后的圖像
? ??? ?從過一些列的濾波后,噪聲的干擾已經(jīng)大部分解決了。接下來就研究邊緣檢測了。
2.2 邊緣檢測
? ??? ?目前有較多的邊緣檢車算法,例如:Laplace 算子、 Canny 算子和sobel算子等等。由于計算機計算能力的日益強大,所以較好的解決了canny算法計算量大的問題[6],并且canny算法提取出的邊緣質(zhì)量較高,在canny算法中關(guān)于連續(xù)性、細(xì)度和筆直度等線的質(zhì)量也很出眾,因此在該文章中我們優(yōu)先優(yōu)先選用canny邊緣檢測算法。Canny算法的核心是找出中心像素周圍的8領(lǐng)域中,以灰度值最大的點為邊界,再利用滯后閾值法進行計算。若小于則舍去,大于就保存。但是如上圖所以我們發(fā)現(xiàn)圖像的輪廓很細(xì),這樣不利于我們進行圖像輪廓的檢測,我們可以可以進行圖像的膨脹。下式是膨脹的計算公式
圖九:膨脹公式
? ??? ?當(dāng)我們的結(jié)構(gòu)元素B越大時,此時發(fā)現(xiàn)通過膨脹后的輪廓變得更加清晰。我們會發(fā)現(xiàn)這是一個好的現(xiàn)象,為下一步進行邊緣檢測做好了準(zhǔn)備。
圖九:膨脹后的圖像
? ??? ?從上圖中我們可以看出錄像中的輪廓在通過膨脹以后,輪廓變得清晰了許多,這也就表示著圖像的大部分處理已經(jīng)完成。接下我們將實現(xiàn)識別圓。
三 、圓識別與定位算法
3.1:識別圓算法
? ??? ?圓檢測技術(shù)目前用處還是特別的廣泛,例如我們在空桶檢測中要用攝像機去檢測圓中心,進而測試出我們需要的信息。對于一個圓,就需要用三個參數(shù)來確定。使用Hough梯度法的依據(jù)是圓心一定出現(xiàn)在圓上的每個點的模向量上,圓上點的模向量的交點就是圓心的所在位置。Hough梯度法的第一步就是找到這些圓心,這樣三維的累加平面就轉(zhuǎn)化為二維累加平面。第二步就是根據(jù)所有候選中心的邊緣非零像素對其的支持程度來確定半徑。在做 Hough 變換之前,需要對連續(xù)的圖像做離散化處理,通過對半徑步長的設(shè)定和圖像中邊緣點的存在情況,來對各種( a1,a2,r) 的組合進行投票。檢測距離為 r的所有的像素點7 ,如果( a1,a2 )點的像素值大于 0,則將對應(yīng)空間( a1,a2, r) 的數(shù)值加 1。然后通過設(shè)定一定的閾值,對最終的結(jié)果進行篩選,保留大于閾值的圓形信息。通過這種空間映射和邊緣累加的方法,Hough 變換提取出了原始圖像中的圓形信息??梢缘玫饺缦虑闆r,這時并沒有得到較好得效果,此時我們思考為啥為啥會出現(xiàn)下面這種情況呢?第五個參數(shù)為double類型的minDist(),為霍夫變換檢測到的圓的圓心之間的最小距離,即讓算法能明顯區(qū)分的兩個不同圓之間的最小距離。這個參數(shù)如果設(shè)置太小,多個相鄰的圓可能被錯誤的檢測成了一個重合的圓。反之,如果設(shè)置太大,某些圓就不能檢測出來[8]。當(dāng)適當(dāng)改變后顯示如下圖所示。并且通過調(diào)整最小的可識別半徑與最大可識別半徑的數(shù)值之后,效果得到了極大的提升。別的的圓的標(biāo)準(zhǔn)也達到了我們的要求。
圖十:為調(diào)整參數(shù)的參數(shù)
圖十一:調(diào)整后的參數(shù)
3.2 定位算法
? ??? ?圓形物體在施工過程中可能發(fā)生變形, 且其位置也可能與設(shè)計不完全一致, 兩者之間存在一定的差異。由于空間圓形物體的特征量 (圓心, 半徑, 法方向等) 不能直接通過測量得到, 可能的方法是采集空間圓形物體上的一系列的點, 然后通過對這些點的數(shù)據(jù)進行處理得到該空間圓形物體的特征量。我們可以進行迭代法進行計算。因此需要我們設(shè)置目標(biāo)函數(shù)。
圖十二:迭代公式
? ??? ?此公式的意義是:J是關(guān)于θ[10]的一個函數(shù),我們當(dāng)前所處的位置為θ0點,要從這個點走到J的最小值山底。首先我們先確定前進的方向,也就是梯度的反向,然后走一段距離的步長,也就是α,走完這個算法,就到達了θ1這個點。由此我們就能得到接下來的點,當(dāng)θ的值不再發(fā)生變化時說明我們的迭代已經(jīng)完成了。此時的值就是我們的目標(biāo)值。
3.2.1 迭代算法
? ??? ?在上述的迭代公式中我們發(fā)現(xiàn)了欲求出θ值,首先需要定義J(θ)函數(shù)的表達式。我們利用初始圓心點與輪廓周圍的點的距離寫成一個距離表達公式。
? ??? ?在函數(shù)中我們可看到表達式中分別有a,b,r三個變量,為了求目標(biāo)函數(shù)的最小值,我們分別對函數(shù)關(guān)于a,b,r三個變量進行求偏導(dǎo)如下公式所示。
? ??? ?當(dāng)知曉了以上的公式后,我們可以求出各個變量的迭代方程,具體公式如下:
? ??? ?如上式所示,當(dāng)知曉了迭代方程后,我們通過設(shè)定一個合適的初值,進行迭代,當(dāng)?shù)Y(jié)束以后,說明我們已經(jīng)到達了目標(biāo)函數(shù)的最小點,由于我們的函數(shù)是凸函數(shù),所以不存在局部最優(yōu)解的這種情況,我們得到的點就是代價函數(shù)最小的情況,從而也就確定了a,b,r三個未知數(shù)的大小,從而也就完成了確定圓心的任務(wù)。難點就在于由于我們?nèi)〕踔档暮线m情況。如果設(shè)定的初值過小則迭代時間過長,如果過大的話也會如此,因此需要設(shè)置好比較合適的初值對于我們這個目標(biāo)函數(shù)的求解有著比較大的影響。還有一個比較重要的因素就是迭代的步長了。如果迭代步長過小,會發(fā)現(xiàn)計算速度過慢,會在小范圍內(nèi)多次迭代,從而導(dǎo)致計算時間過長,會導(dǎo)致計算力的浪費。與之相反的就是迭代步長過大,這時候會導(dǎo)致迭代過度,跳躍了最小值點,而后在迭代的過程中我們發(fā)現(xiàn),數(shù)值會越來越遠(yuǎn)離我們的最小值,此時函數(shù)的迭代情況出現(xiàn)了發(fā)散。會導(dǎo)致我們的計算結(jié)果出現(xiàn)問題。具體可有如下圖示解釋。
4.1 數(shù)據(jù)處理
? ??? ?由于干擾的輪廓點像素太多,我們需要識別圓的區(qū)域,并且對其進行數(shù)據(jù)處理與計算。首先需要大致定一個矩形框,把我們的圓框在里面,而后利用判斷語句把框外的其他輪廓點去除掉,這樣我們就能輕易地找出我們圓周圍的像素點了。具體步驟如下:首先找到在圖像中位于(477,81),(811,81),(477,381),(811,381)這四點,而后利用opencv中的圖像操作畫出矩形框,而后進行無關(guān)數(shù)據(jù)的濾除,極大減少了算力的浪費,節(jié)省了計算時間,極大提高了效率。處理后的照片如下圖所示:
圖十六:處理后能識別出的輪廓點
? ??? ?具體的數(shù)據(jù)如下所示:迭代求得的圓心坐標(biāo)以及半徑:圓心橫坐標(biāo)為x=650.796,圓心縱坐標(biāo)為y=224.49,圓心半徑:r=136.502。雖然跟我們之前設(shè)定的圓表達式:(x-654)2+(y-226)2=1422.但是我們發(fā)現(xiàn)還是存在一些誤差的,在一般的工業(yè)生產(chǎn)中我們是可以實現(xiàn)自動抓取或則識別的功能的,但是一旦應(yīng)用在精度高的場合時我們會發(fā)現(xiàn)這種結(jié)果是不太合適的。在接下來的實驗中我發(fā)現(xiàn)是否是圓中的小人像素干擾到了我們的迭代算法呢?于是再接下來的實驗中我將去除小人的輪廓像素,并計算其更新后的具體坐標(biāo)數(shù)值。如下圖所示:
圖十七:濾除干擾信號后的結(jié)果
? ??? ?通過圖像可得圓比之前擬合的好,其具體數(shù)值分別為x=652.96,圓心縱坐標(biāo)為y=225.7,圓心半徑:r=140.162由于濾除了圖像中的一些干擾信號,我們圓的擬合效果變得更好了,說明我們的算法已經(jīng)目標(biāo)函數(shù)找的比較準(zhǔn)確。但是由于環(huán)境的變化,我們經(jīng)常對圖像進行預(yù)處理的效果就會發(fā)生改變。所以該算法只能應(yīng)用于類似的一些場景,適用場景不夠廣泛。改善方法就是利用深度學(xué)習(xí)去讓機器自己去學(xué)習(xí)提高自身的識別準(zhǔn)確率。
圖十八:實驗結(jié)果
五、深度學(xué)習(xí)介紹:
? ??? ?神經(jīng)單元以層的方式組合,每一層的每個神經(jīng)元和前一層、后一層的神經(jīng)元連接,共分為輸入層、輸出層和隱藏層,三層連接形成一個神經(jīng)網(wǎng)絡(luò)。每層都會加上對應(yīng)的權(quán)重,而且這些權(quán)重的大小也是不確定,根據(jù)梯度下降法后得到的權(quán)重,從而使我們的迭代最小值達到最小的情況,目前隨著機器學(xué)習(xí)的普遍,計算機視覺用攝相機和計算機代替人眼對目標(biāo)進行識別、跟蹤和測量等機器視覺,并進一步做圖形處理,使電腦最終呈現(xiàn)出來的圖像是更有用的信息。隨著人工智能的爆火,機器學(xué)習(xí)中深度學(xué)習(xí)因為深層次、中大火的機器算法[11],2012 年,在大規(guī)模圖像數(shù)據(jù)集 ImageNet 上,神經(jīng)網(wǎng)絡(luò)方法取得了重大突破,準(zhǔn)確率達到 84.7%。在 LFW 人臉識別評測權(quán)威數(shù)據(jù)庫上,基于深度神經(jīng)網(wǎng)絡(luò)的人臉識別方法 DeepID 在 2014、2015 年分別達到準(zhǔn)確率 99.15% 和 99.53%,遠(yuǎn)超人類識別的準(zhǔn)確率97.53%。[12]這種技術(shù)在物種識別領(lǐng)域起到了很大的作用,大大減少了人為工作量為實現(xiàn)物種保護、物種養(yǎng)殖提供了巨大的幫助[26]。在論文中我們要求的是監(jiān)督學(xué)習(xí),也稱為有教師學(xué)習(xí),它對于一組給定輸入可以提供出正確的輸出結(jié)果,即期望輸出, 神經(jīng)網(wǎng)絡(luò)根據(jù)實際輸出與期望輸出之間存在的差別來對連接權(quán)值等自身參數(shù)進行不斷的調(diào)整,使實際輸出無限接近于期望輸出。其中反向傳播最為重要,通過迭代,誤差的反向傳播是將輸出誤差以某種形式通過隱層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權(quán)值的依據(jù)。這種信號正向傳播與誤差反向傳播的各層權(quán)值調(diào)整過程,是周而復(fù)始地進行。權(quán)值不斷調(diào)整過程,也就是網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過程。此過程一直進行到網(wǎng)絡(luò)輸出的誤差減少到可以接受的程度,或進行到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止。通用的模型如下:
圖十九:神經(jīng)網(wǎng)絡(luò)模型
? ??? ?接下來我們將確定一下激活函數(shù),如果我們不運用激活函數(shù)的話,則輸出信號將僅僅是一個簡單的線性函數(shù)。線性函數(shù)一個一級多項式[13] ?,F(xiàn)如今,線性方程是很容易解決的,但是它們的復(fù)雜性有限,并且從數(shù)據(jù)中學(xué)習(xí)復(fù)雜函數(shù)映射的能力更小。一個沒有激活函數(shù)的神經(jīng)網(wǎng)絡(luò)將只不過是一個線性回歸模型(Linear regression Model)罷了,它功率有限,并且大多數(shù)情況下執(zhí)行得并不好。我們希望我們的神經(jīng)網(wǎng)絡(luò)不僅僅可以學(xué)習(xí)和計算線性函數(shù),而且還要比這復(fù)雜得多。同樣是因為沒有激活函數(shù),我們的神經(jīng)網(wǎng)絡(luò)將無法學(xué)習(xí)和模擬其他復(fù)雜類型的數(shù)據(jù),例如圖像、視頻、音頻、語音等。這就是為什么我們要使用人工神經(jīng)網(wǎng)絡(luò)技術(shù),諸如深度學(xué)習(xí)(Deep learning),來理解一些復(fù)雜的事情,一些相互之間具有很多隱藏層的非線性問題,而這也可以幫助我們了解復(fù)雜的數(shù)據(jù)。目前比較普遍使用的是Sigmoid 激活函數(shù):
? ??? ?以下是使用Sigmoid 函數(shù)的理由:1:輸出范圍是 0 到 1。由于輸出值限定在 0 到 1,因此它對每個神經(jīng)元的輸出進行了歸一化;2:用于將預(yù)測概率作為輸出的模型。由于概率的取值范圍是 0 到 1,因此 Sigmoid 函數(shù)非常合適;3:梯度平滑,避免「跳躍」的輸出值;函數(shù)是可微的。這意味著可以找到任意兩個點的 sigmoid 曲線的斜率;4:明確的預(yù)測,即非常接近 1 或 0。
在接下來的時候?qū)J(rèn)真學(xué)習(xí)有關(guān)深度學(xué)習(xí)的理論知識,并學(xué)習(xí)搭建模型,爭取早日能應(yīng)用到項目當(dāng)中去。
? ??? ?總結(jié):在牛頓迭代的算法下,基本能完成圓的檢測并且能較好的客服圖像的干擾,唯一的缺點就是如果圖像預(yù)處理效果不到位,會使得輪廓像素點識別不清晰,導(dǎo)致識別失敗。接下來打算利用深度學(xué)習(xí)去對圖像進行監(jiān)督學(xué)習(xí),從而提高識別的準(zhǔn)確率。文章來源:http://www.zghlxwxcb.cn/news/detail-476736.html
參考文獻
[1]童勝杰,江明,焦傳佳.一種改進工件邊緣檢測方法的研究[J].電子測量與儀器學(xué)報,2021,35(01):128-134.DOI:10.13382/j.jemi.B2003375.
[2]張敬峰. 基于卷積神經(jīng)網(wǎng)絡(luò)的圓檢測方法研究[D].廣西大學(xué),2021.DOI:10.27034/d.cnki.ggxiu.2021.001458.
[3]龔昕,張楠.基于Hough變換的圓檢測算法的改進[J].信息技術(shù),2020,44(06):89-93+98.DOI:10.13274/j.cnki.hdzj.2020.06.020.
[4]潘國榮,谷川,施貴剛.空間圓形物體檢測方法與數(shù)據(jù)處理[J].大地測量與地球動力學(xué),2007(03):28-30.
[5]鄧建清,黃劼,龍偉.一種孔系間距高精度的檢測方法[J].組合機床與自動化加工技術(shù),2004(01):59-60.
[6]盧曉冬,薛俊鵬,張啟燦.基于圓心真實圖像坐標(biāo)計算的高精度相機標(biāo)定方法[J].中國激光,2020,47(03):242-249.
[7] Warren S. Mcculloch, Walter Pitts. A Logical Calculus of the Ideas Immanent in Nervous Activity[J]. Bulletinof Mathematical Biology, 1943, 52(1–2):99-115.
[8] Hebb D.O. The organization of behavior. New York: Wiley,1949
[9] Rosenblatt, F. The perceptron: A probabilistic model for information storage and organization in the brain.[J].Psychological Review, 65(6):386-408.
[10]A.M. Andrew. Marvin Minsky and Seymour Papert, Editors, Perceptrons, M.I.T. Press, Cambridge, Mass.(1969) 258 pp. 112s[J]. 1970(3):314-316.
[11] Hopfield, J. J. Neural networks and physical systems with emergent collective computational abilities.[J].Proceedings of the National Academy of Sciences of the United States of America, 79(8):2554-2558.
[12] Ackley D H , Hinton G E , Sejnowski T J . A Learning Algorithm for Boltzmann Machines[J]. Cognitive Science, 1985, 9(1):147-169.
[13] Rumelhart D E , Hinton G E , Williams R J . Learning Representations by Back Propagating Errors[J]. Nature,1986, 323(6088):533-536.文章來源地址http://www.zghlxwxcb.cn/news/detail-476736.html
到了這里,關(guān)于基于圖像處理的圓檢測與深度學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!