圖像顯著區(qū)域檢測(cè)的嵌入式并行優(yōu)化方法
【專利摘要】圖像顯著區(qū)域檢測(cè)的嵌入式并行優(yōu)化方法,采用最大穩(wěn)定極值區(qū)域算法在基于Cortex-A8的機(jī)器視覺系統(tǒng)上實(shí)現(xiàn)圖像中的顯著區(qū)域特征的提取,滿足了圖像處理算法在嵌入式機(jī)器視覺系統(tǒng)的高實(shí)時(shí)性要求。基于NEON單元的并行處理結(jié)構(gòu)優(yōu)化極值區(qū)域變化率的計(jì)算,加速了最大穩(wěn)定極值區(qū)域的檢測(cè)。基于NEON單元的并行處理結(jié)構(gòu)優(yōu)化區(qū)域幾何一階矩與中心矩陣的計(jì)算,簡(jiǎn)化了橢圓長(zhǎng)短半軸、長(zhǎng)軸方向角以及中心坐標(biāo)的計(jì)算,加速了特征區(qū)域橢圓的擬合。設(shè)計(jì)程序級(jí)優(yōu)化使程序更適合編譯器向量化處理,減少程序冗余開支,提升了程序運(yùn)行效率。
【專利說明】圖像顯著區(qū)域檢測(cè)的嵌入式并行優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于嵌入式機(jī)器視覺系統(tǒng)中的圖像顯著區(qū)域檢測(cè)領(lǐng)域,具體是指一種基于 Cortex-AS的機(jī)器視覺系統(tǒng),實(shí)時(shí)圖像顯著區(qū)域檢測(cè)的優(yōu)化加速方法。
【背景技術(shù)】
[0002] 正確的提取圖像中關(guān)鍵區(qū)域,可以大大提高圖像處理的效率與準(zhǔn)確度,因此顯著 區(qū)域檢測(cè)一直是圖像處理中的熱門研宄課題。顯著區(qū)域檢測(cè)技術(shù)被廣泛應(yīng)用于圖像分 害J、壓縮和基于內(nèi)容的圖像檢索等領(lǐng)域。在區(qū)域檢測(cè)技術(shù)中,Lowe和Bay等分別提出高 效實(shí)現(xiàn)的SIFT和SURF算法,這些算法具有尺度和旋轉(zhuǎn)的不變性,但不具有仿射不變性。 Mikolajczyk提出了利用仿射不變性Harris算子進(jìn)行局部擬合,通過迭代計(jì)算得到被檢測(cè) 區(qū)域的仿射變換參數(shù),但該方法的計(jì)算效率不高。而J.Matas等人所提出的最大穩(wěn)定極值 區(qū)域(MSER)檢測(cè)算法在抗光照變換、視角變換、JPEG壓縮、尺度變換和模糊等多方面的性 能上優(yōu)于其它仿射不變區(qū)域檢測(cè)算法。
[0003] 隨著圖像檢測(cè)算法復(fù)雜度的不斷增加,嵌入式系統(tǒng)的實(shí)時(shí)性要求越發(fā)重要。為了 能夠高效的利用硬件資源,單指令多數(shù)據(jù)流(SMD)技術(shù)應(yīng)運(yùn)而生。當(dāng)今處理器引入SMD 技術(shù)的主要有Intel的MMX/SSE、AMD的3DNow!和ARM的NEON等。ARM公司在ARMv6架 構(gòu)中首次引入簡(jiǎn)單的SMD指令集,使得運(yùn)算速度提高2?4倍。Cortex-A8是一款基于 ARMv7架構(gòu)的典型嵌入式CPU,同時(shí)也采用了專門針對(duì)多媒體和信號(hào)處理的NEON協(xié)處理器。 經(jīng)NEON優(yōu)化后的多媒體編解碼單元,其整體性能可以提高4?8倍。
[0004] 本發(fā)明在這些研宄基礎(chǔ)上,根據(jù)工業(yè)現(xiàn)場(chǎng)對(duì)嵌入式機(jī)器視覺系統(tǒng)的高實(shí)時(shí)性要 求,提出了一種圖像顯著區(qū)域檢測(cè)在嵌入式Cortex-AS平臺(tái)上的優(yōu)化方法,通過最大極值 區(qū)域檢測(cè)的并行結(jié)構(gòu)優(yōu)化和區(qū)域擬合來提高算法的運(yùn)行效率。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明目的在于提供一種針對(duì)嵌入式機(jī)器視覺系統(tǒng)的圖像顯著區(qū)域檢測(cè)優(yōu)化方 法,通過最大極值區(qū)域檢測(cè)的并行結(jié)構(gòu)優(yōu)化和區(qū)域擬合更好的適應(yīng)工業(yè)現(xiàn)場(chǎng)高實(shí)時(shí)性的要 求。
[0006] 為達(dá)到此目的,本發(fā)明的技術(shù)方案如下:
[0007] (1)采用BinSort算法將灰度圖像的像元按灰度值0?50、51?100、101? 150、151?200、201?255五個(gè)等級(jí)分別進(jìn)行快速排序。合并五個(gè)等級(jí)的排序產(chǎn)生一 個(gè)按灰度值排序的256維的序列,最終產(chǎn)生按灰度值遞增的有序序列R[0],R[l],…, R[PixelNumbers],其中,每個(gè)單元記錄了像元的灰度值和在圖像中的坐標(biāo)。
[0008] ⑵使用UnionFind算法按照像元灰度值從小到大(或從大到小)的順序依次鏈 接每個(gè)像元,得到灰度遞增的列表。在鏈接過程中形成眾多區(qū)域節(jié)點(diǎn),并且記錄區(qū)域節(jié)點(diǎn)的 面積、位置等信息,區(qū)域之間建立父子節(jié)點(diǎn)關(guān)系,當(dāng)遍歷全部灰度值的像元時(shí),形成一具有 眾多分支的區(qū)域樹。
[0009] (3)根據(jù)區(qū)域樹建立過程中記錄的區(qū)域節(jié)點(diǎn)信息進(jìn)行極值區(qū)域變化率并行處理結(jié) 構(gòu)優(yōu)化的計(jì)算,沿著區(qū)域樹的各個(gè)分支逆向搜索計(jì)算每個(gè)節(jié)點(diǎn)的區(qū)域面積變化率,當(dāng)某個(gè) 節(jié)點(diǎn)面積變化率在鄰域內(nèi)取得極小值時(shí),則該節(jié)點(diǎn)就是最大穩(wěn)定極值區(qū)域。同時(shí),檢測(cè)過程 中排除一些過大的區(qū)域或極可能不穩(wěn)定的區(qū)域,并且對(duì)最大穩(wěn)定極值區(qū)域的像元進(jìn)行有序 存儲(chǔ)。
[0010] (4)為了便于對(duì)提取的不規(guī)則最大穩(wěn)定極值區(qū)域進(jìn)行歸一化和提取特征描述,要 對(duì)其進(jìn)行橢圓擬合。根據(jù)記錄的最大穩(wěn)定極值區(qū)域的像元坐標(biāo)信息對(duì)區(qū)域幾何一階矩與中 心矩陣計(jì)算進(jìn)行并行優(yōu)化,加速計(jì)算出橢圓長(zhǎng)短半軸、橢圓長(zhǎng)軸方向角以及橢圓中心。
[0011] (5)對(duì)算法實(shí)現(xiàn)進(jìn)行語言級(jí)的優(yōu)化,通過內(nèi)聯(lián)函數(shù)使用減少數(shù)據(jù)入棧出棧次數(shù),減 少采用標(biāo)準(zhǔn)函數(shù)庫的乘除法運(yùn)算提升計(jì)算性能。
[0012] 本發(fā)明優(yōu)點(diǎn)如下:本發(fā)明圖像顯著區(qū)域檢測(cè)的嵌入式并行優(yōu)化方法,采用最大穩(wěn) 定極值區(qū)域方法提取圖像中的顯著區(qū)域特征,提高該技術(shù)在嵌入式機(jī)器視覺系統(tǒng)的實(shí)時(shí) 性。基于NEON單元設(shè)計(jì)并行處理結(jié)構(gòu),優(yōu)化了極值區(qū)域變化率的計(jì)算,加速了最大穩(wěn)定極 值區(qū)域的檢測(cè)。基于NEON單元設(shè)計(jì)并行處理結(jié)構(gòu),優(yōu)化了繁多的區(qū)域幾何一階矩與中心矩 陣的計(jì)算,簡(jiǎn)化了橢圓長(zhǎng)短半軸、長(zhǎng)軸方向角以及中心坐標(biāo)的計(jì)算,從而加速了特征區(qū)域橢 圓的擬合。
【專利附圖】
【附圖說明】
[0013] 圖1本發(fā)明圖像顯著區(qū)域檢測(cè)整體流程圖
[0014]圖2本發(fā)明快速排序流程結(jié)構(gòu)圖
[0015] 圖3本發(fā)明區(qū)域樹建立流程結(jié)構(gòu)圖
[0016]圖4本發(fā)明極值區(qū)域變化率計(jì)算優(yōu)化結(jié)構(gòu)圖
[0017] 圖5本發(fā)明區(qū)域幾何一階矩計(jì)算優(yōu)化結(jié)構(gòu)圖
[0018] 圖6本發(fā)明區(qū)域中心矩陣主對(duì)角線元素計(jì)算優(yōu)化結(jié)構(gòu)圖
[0019] 圖7本發(fā)明區(qū)域中心矩陣次對(duì)角線元素計(jì)算優(yōu)化結(jié)構(gòu)圖
【具體實(shí)施方式】
[0020] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合具體實(shí)施例,并參照 附圖,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0021] 附圖1是本發(fā)明的圖像顯著區(qū)域檢測(cè)的整體流程圖。
[0022] 流程包括灰度圖像像素的排序、極值區(qū)域的檢測(cè)、最大穩(wěn)定極值區(qū)域的判定以及 最大穩(wěn)定極值區(qū)域的擬合,具體步驟如下:
[0023] 灰度圖像像素的排序
[0024]第一步:設(shè)圖像像元為R[0],R[l],…,R[i],…,R[PixelNumbers-l], PixelNumbers是像元的個(gè)數(shù),每個(gè)像元中記錄了像元灰度值R[i].key、像元在圖像中的x 坐標(biāo)R[i].X與y坐標(biāo)R[i].y。根據(jù)BinSort算法,將圖像像元按灰度值0?50、51?100、 101?150、151?200、201?255五個(gè)等級(jí)進(jìn)行快速排序。快速排序在待排序序列的η個(gè) 記錄中任取一個(gè)記錄作為基準(zhǔn),將其余的記錄分成兩組,第一組中所有記錄都小于或等于 基準(zhǔn)記錄;第二組中所有記錄都大于基準(zhǔn)記錄,基準(zhǔn)記錄則排在中間;然后分別對(duì)這兩組 記錄重復(fù)上述處理,直到所有記錄排序完畢。在每個(gè)等級(jí)中的快速排序如附圖2所示,low和high變量記錄待排序序列的首元素和末元素,temp變量為比較基準(zhǔn),實(shí)現(xiàn)過程如下:
[0025](I)a.若low>=high(即區(qū)間長(zhǎng)度應(yīng)大于1),貝丨J算法結(jié)束;
[0026]b.i=low,j=high;
[0027] c. temp=R[i](取待排序序列的第一個(gè)記錄為基準(zhǔn)記錄);
[0028] (2)循環(huán)當(dāng)i< j時(shí),執(zhí)行
[0029] a.循環(huán)當(dāng)R[j]·key>temp, key且j>i時(shí),執(zhí)行j=i-Ι ;
[0030]b.若i<j,則R[i] =R[j],i=i+1;
[0031]c.循環(huán)當(dāng)R[i]·key<temp, key且i<j時(shí),執(zhí)行i=i+1;
[0032]d.若i<j,則R[j] =R[i],j=j-1;
[0033] (3)R[i] =temp(把基準(zhǔn)記錄排在中間位置);
[0034](4)high=j-1,遞歸處理前半部;
[0035] (5)low=i+Ι,遞歸處理后半部。
[0036] 第二步:合并五個(gè)等級(jí)的排序產(chǎn)生一個(gè)按灰度值排序的256維的序列,其中, R[0],R[l],…,R[m]灰度值為 0,R[m+1],R[m+2],…,R[n]灰度值為 1,直到R[p], R[p+1],...,R[PixelNumbers_l]灰度值為 255〇
[0037] 極值區(qū)域的檢測(cè)
[0038] 按照上述方法將圖像像元排序后,從灰度值為0的像元開始搜索,依次遍歷每個(gè) 連通區(qū)域,得到多條灰度值遞增的鏈表,一條鏈表可生成區(qū)域樹的一個(gè)分支。在鏈表形成的 過程中形成眾多局部區(qū)域(即極值區(qū)域),依次統(tǒng)計(jì)鏈接局部區(qū)域,最終形成一完整的區(qū)域 樹。區(qū)域樹形成過程如附圖3所示:
[0039] (1)從灰度為0的像元開始形成若干個(gè)region(區(qū)域),相同灰度的八連通區(qū)域作 為一個(gè)region,灰度為0的連通域個(gè)數(shù)決定了區(qū)域樹的分支個(gè)數(shù)。在每一個(gè)分支區(qū)域形成 過程中開辟一塊連續(xù)存儲(chǔ)區(qū)域area[256]對(duì)分支中的區(qū)域進(jìn)行描述,以便區(qū)域變化率的并 行計(jì)算以及最大穩(wěn)定極值區(qū)域的像元搜索,同時(shí)使用變量GrayValue判斷像元灰度值的變 化,i為像元序列號(hào),PixelNumbers為圖像像元個(gè)數(shù)。
[0040] (2)a.若i> =PixelNumbers,則算法結(jié)束;
[0041] b.循環(huán)若R[i] = GrayVlaue且R[i]· key (R[i]灰度值)>=R[max]· key(鄰域 已鏈接區(qū)域的末像元灰度值),則R[max]. next (已鏈接區(qū)域末像元next指針)指向R[i], i++ ;
[0042] c.若R[i]. key<R[max]. key或者R[i]的所有鄰域像元還未鏈接,貝Ij建立新的 region, i++〇
[0043] (3)若R[i].key! =GrayValue,即遍歷完一個(gè)相同灰度值的像元后,則記錄形成 的region的面積值area[GrayValue].number以便區(qū)域面積變化率的并行計(jì)算,記錄區(qū)域 的子節(jié)點(diǎn)信息area[GrayValue].child以便最大穩(wěn)定極值區(qū)域的像元索引,記錄區(qū)域中根 節(jié)點(diǎn)像元信息area[GrayValue]·root以便查找區(qū)域在圖像中的位置。然后,GrayValue++ 繼續(xù)區(qū)域的檢測(cè)。
[0044] 經(jīng)過以上步驟,遍歷全部灰度值的像元后,形成了包含多個(gè)分支的區(qū)域樹,同時(shí)也 形成了描述每個(gè)分支中區(qū)域之間關(guān)系的數(shù)據(jù)結(jié)構(gòu)area[256]。
[0045] 最大穩(wěn)定極值區(qū)域的判定
[0046] 當(dāng)上述區(qū)域樹建好后,按照不同閾值對(duì)圖像進(jìn)行二值化處理,則區(qū)域樹會(huì)生成一 顆二值圖像樹,它的每個(gè)分支由多個(gè)互相嵌套的二值圖像組成。為了檢測(cè)背景的極值圖像 還需要將閾值處理后的二值化圖像反轉(zhuǎn),形成一顆反轉(zhuǎn)二值圖像樹,對(duì)反轉(zhuǎn)圖像樹做同樣 的檢索。設(shè)Qtl,…,Qi,Qi+1,…是上述建立的二值圖像樹中某一分支的一組嵌套區(qū)域,即 2,〔2,+1。8%)為區(qū)域樹中區(qū)域%對(duì)應(yīng)的節(jié)點(diǎn),8%)為8%+1)的子節(jié)點(diǎn),8%+1)為8說) 的父節(jié)點(diǎn)。
[0047] 第一步:區(qū)域變化率計(jì)算
[0048] 沿著二值圖像樹的各個(gè)分支逆向搜索檢測(cè)最大穩(wěn)定極值區(qū)域,即對(duì)每一個(gè)分支進(jìn) 行逆向搜索計(jì)算出區(qū)域面積變化率q(i) =iQi+AQyl/lQil在鄰域[i-A,i+A]內(nèi)的極小 值點(diǎn),可使用已經(jīng)建立的區(qū)域描述結(jié)構(gòu)area[256]中的面積number參數(shù)快速得到區(qū)域的面 積,面積變化率取得極小值點(diǎn)的區(qū)域即為最大穩(wěn)定極值區(qū)域。其中,△為灰度閾值變化量。 為了方便代碼實(shí)現(xiàn),使用q(i) =iQAQwl/lQwl來代替q(i) =iQi+AQiil/lQil的計(jì)算。
[0049] (1)基于NEON單元設(shè)計(jì)并行處理結(jié)構(gòu)實(shí)現(xiàn)q(i) =IQiXQ^ |/|Qi_AI的計(jì)算,如附 圖4所示,將二值圖像樹分支Qtl,…,Qi,Qi+1,…劃分成四個(gè)區(qū)域一組的結(jié)構(gòu),即Qtl,Q1,Q2, Q3; ***;Qi-Δ?Qi+1-Δ?Qi+2-Δ?Qi+3-Δ; ***;QQi+1>Qi+2?Qi+3 ;···,以適應(yīng)NEON寄存器的使用。
[0050] (2)設(shè)計(jì)采用128位的Q寄存器QO?Q4實(shí)現(xiàn)q(i)的并行計(jì)算,首先將數(shù)據(jù)區(qū)的 區(qū)域面積值Qi,Qi+1,Qi+2,Qi+3和Qi-Δ?Qi+1-Δ?Qi+2-Δ?Qi+3-Δ四個(gè)區(qū)域一組加載到寄存器QO和 Ql中,可使用VLD指令實(shí)現(xiàn)。然后
[0051] 8.求取00中向量%4+14+24+3的倒數(shù)估值存入寄存器03,結(jié)果為1/^,1/^+1, l/Qi+2,l/Qi+3,可使用VRECPE指令實(shí)現(xiàn);
[0052]b.對(duì)QO中Qi,Qi+1,Qi+2,Qi+3與Ql中Q,Qi+1_A,Qi+2_A,Qi+3_A 進(jìn)行并行減法運(yùn)算, 結(jié)果存入Q2 中為 ,Qi+1_Qi+1_A,Qi+2_Qi+2_A,Qi+3_Qi+3_A,可使用VSUB實(shí)現(xiàn)。
[0053]c.對(duì)Q3中1/Qi,1/Qi+1,l/Qi+2l/Qi+3與Q2中向量進(jìn)行并行乘法操作,得到四組區(qū)域 變化率q(i)的計(jì)算結(jié)果,存入Q4寄存器中,為q(i),q(i+1),q(i+2),q(i+3),可使用VMUL 實(shí)現(xiàn)。
[0054] d.對(duì)計(jì)算出的q(i)結(jié)果進(jìn)行極小值判斷,將Q4中四組區(qū)域面積變化率計(jì)算結(jié)果 q(i),q(i+l),q(i+2),q(i+3)進(jìn)行相鄰比較,得到較小值存入寄存器Q5中即min(q(i), q(i+1)),min(q(i+2),q(i+3)),此運(yùn)算可通過VPMIN指令實(shí)現(xiàn)。然后將Q5比較結(jié)果值存儲(chǔ) 到數(shù)據(jù)區(qū),可通過VST指令實(shí)現(xiàn)。
[0055] 第二步:排除不穩(wěn)定最大穩(wěn)定極值區(qū)域
[0056] (1)-個(gè)分支逆向搜索時(shí)有可能出現(xiàn)若干個(gè)極小值。為了避免重復(fù)和檢測(cè)的魯棒 性,當(dāng)某個(gè)節(jié)點(diǎn)B(Qi)取得最小值時(shí),若其父節(jié)點(diǎn)B(Qi+1)滿足IQitl-QiUlQwI<d+(d+-般 取0. 2),意味著這兩個(gè)節(jié)點(diǎn)相差不大,父節(jié)點(diǎn)可能更穩(wěn)定,從而成為MSER,則取消B(Qi)的 MSER資格。
[0057] (2)在最大穩(wěn)定極值區(qū)域檢測(cè)過程中,排除一些過大的區(qū)域或極可能不穩(wěn)定的區(qū) 域。若某個(gè)極值區(qū)域過小或過大iQil/lQo?I<a_(a_-般取30.0/|Q" |) ;a+<IQiUlQ00I(a+ 一般取0.75, |Q"I為這個(gè)圖像的面積),則被排除。當(dāng)q(i) >q+(q+-般取0.25)時(shí),意 味著這個(gè)區(qū)域突變,不太穩(wěn)定所以排除。
[0058]第三步:最大穩(wěn)定極值區(qū)域像元有序存儲(chǔ)
[0059] 檢測(cè)出最大穩(wěn)定極值區(qū)域后,對(duì)每個(gè)最大穩(wěn)定極值區(qū)域像元坐標(biāo)值進(jìn)行有序存 儲(chǔ),以便對(duì)區(qū)域幾何矩進(jìn)行并行計(jì)算。
[0060] (1)建立一塊連續(xù)的存儲(chǔ)空間msers[RegionNumber]對(duì)應(yīng)每一個(gè)最大穩(wěn)定極值區(qū) 域,RegionNumber為最大穩(wěn)定極值區(qū)域中像元個(gè)數(shù)的二倍。
[0061] (2)根據(jù)最大穩(wěn)定極值區(qū)域的區(qū)域描述子area[i]中的根節(jié)點(diǎn)像元參數(shù)area[i]. root,在區(qū)域樹的分支鏈表中遍歷出相同灰度值的像元,將像元坐標(biāo)值存儲(chǔ)到連續(xù)存儲(chǔ)空 間msers[RegionNumber]中。
[0062] (3)根據(jù)最大穩(wěn)定極值區(qū)域的區(qū)域描述子area[i]中的區(qū)域子節(jié)點(diǎn)參數(shù)area[i]. child,遍歷區(qū)域樹的每一條分支,得到該區(qū)域的所有子節(jié)點(diǎn)。根據(jù)子節(jié)點(diǎn)的分支鏈表,依次 遍歷出子節(jié)點(diǎn)區(qū)域中相同灰度像元的坐標(biāo)值,將像元坐標(biāo)值存儲(chǔ)到msers[RegionNumber] 中。直到遍歷完所有子節(jié)點(diǎn),完成對(duì)最大穩(wěn)定極值區(qū)域中所有像元坐標(biāo)的有序存儲(chǔ)。
[0063] 最大穩(wěn)定極值區(qū)域的擬合
[0064] 通過計(jì)算最大穩(wěn)定極值區(qū)域的一階矩與中心矩陣,擬合出區(qū)域橢圓。對(duì)于最大穩(wěn) 定極值區(qū)域的二值化區(qū)域Q,其(P+q)階二維幾何矩為:
[0065]
【權(quán)利要求】
1. 本發(fā)明的目的在于提供一種針對(duì)嵌入式機(jī)器視覺系統(tǒng)的圖像顯著區(qū)域檢測(cè)并行優(yōu) 化方法,其特征是:采用最大穩(wěn)定極值區(qū)域算法實(shí)現(xiàn)圖像中的顯著區(qū)域特征的提取;基于 NEON單元的并行處理結(jié)構(gòu)優(yōu)化極值區(qū)域變化率的計(jì)算,加速最大穩(wěn)定極值區(qū)域的檢測(cè);基 于NEON單元的并行處理結(jié)構(gòu)優(yōu)化區(qū)域幾何一階矩與中心矩陣的計(jì)算,簡(jiǎn)化橢圓長(zhǎng)短半軸、 長(zhǎng)軸方向角以及中心坐標(biāo)的計(jì)算,加速特征區(qū)域橢圓的擬合;設(shè)計(jì)程序級(jí)優(yōu)化使程序更適 合編譯器向量化處理,減少程序冗余開支,提升程序運(yùn)行效率;包含如下幾個(gè)步驟: (1) 灰度圖像像素的排序 第一步:灰度圖像分等級(jí)排序 第二步:等級(jí)排序序列合并 (2) 極值區(qū)域的檢測(cè) (3) 最大穩(wěn)定極值區(qū)域的判定 第一步:區(qū)域變化率計(jì)算 第二步:排除不穩(wěn)定最大穩(wěn)定極值區(qū)域 第三步:最大穩(wěn)定極值區(qū)域像元有序存儲(chǔ) (4) 最大穩(wěn)定極值區(qū)域的擬合 第一步:幾何零階矩和幾何一階矩的計(jì)算 第二步:中心矩陣的計(jì)算 第三步:橢圓長(zhǎng)短半軸以及長(zhǎng)軸方向計(jì)算 (5) 算法語言級(jí)優(yōu)化。
2. 根據(jù)權(quán)利要求1所述一種針對(duì)嵌入式機(jī)器視覺系統(tǒng)的圖像顯著區(qū)域檢測(cè)優(yōu)化方法, 其特征是:所述極值區(qū)域的檢測(cè)(2)中建立連續(xù)存儲(chǔ)區(qū)域描述分支區(qū)域和最大穩(wěn)定極值區(qū) 域的判定(3)第一步中區(qū)域變化率的計(jì)算,當(dāng)區(qū)域樹建好后,對(duì)每一個(gè)分支進(jìn)行逆向搜索 計(jì)算出區(qū)域變化率q(i) = |Qi+A\Qi-A|/|QiI在鄰域[i_A,i+A]內(nèi)的極小值點(diǎn): (1) 在區(qū)域樹的每一個(gè)分支形成過程中建立連續(xù)存儲(chǔ)空間area[256]描述分支中 的區(qū)域,以便于區(qū)域變化率的并行計(jì)算以及最大穩(wěn)定極值區(qū)域的像元搜索,記錄形成的 區(qū)域面積值area[GrayValue].number以便區(qū)域面積變化率的并行計(jì)算,記錄子節(jié)點(diǎn)信 息area[GrayValue].child以便最大穩(wěn)定極值區(qū)域的像元索弓丨,記錄區(qū)域根節(jié)點(diǎn)信息 area[GrayValue].root以便查找區(qū)域在圖像中的位置; (2) 使用q(i) =IQiXQi-A1/lQi-AI來代替q(i) = |Qi+A\Qi_A|/|QiI的計(jì)算; (3) 采用128位Q寄存器QO?Q4設(shè)計(jì)并行處理結(jié)構(gòu)實(shí)現(xiàn)q(i) =IQi\Qi_AI/IQi_AI的 并行計(jì)算,即區(qū)域面積area[GrayValue].number變化率的計(jì)算: a. 將區(qū)域樹的分支Qq,…,Qi,Qi+1,…劃分成四個(gè)區(qū)域一組的結(jié)構(gòu)即QcrQpQ2,Q3;…; Qi-A,Qi+1-A,Qi+2-A,Qi+3-A; --?i,Qi+l,Qi+2,Qi+3 ;--?,以便NEON寄存器使用,并將數(shù)據(jù)區(qū)的區(qū) 域面積值Qi,Qi+1,Qi+2, 01+3和Qi-A?Qi+l-A?Qi+2-A?Qi+3-A四組一次加載到寄存器QO和Ql中; b. 求取QO中向量Qi,Qi+1,Qi+2,Qi+3的倒數(shù)估值,存入寄存器Q3,為1/Qi,1/Qi+1,l/Qi+2, l/Qi+3; c. 對(duì)QO與Ql進(jìn)行并行減法運(yùn)算結(jié)果存入Q2,為Qi-Qi^,Qi+1-Qi+1_A,Qi+2-Qi+2_A, Qi+3_Qi+3-A; c.對(duì)Q3與Q2中向量進(jìn)行并行乘法操作得到四組區(qū)域變化率q(i)的計(jì)算結(jié)果,存入 Q4 寄存器,為q(i),q(i+l),q(i+2),q(i+3); d.對(duì)Q4中的區(qū)域變化率計(jì)算結(jié)果進(jìn)行極小值判斷,將四組區(qū)域面積變化率結(jié)果q(i),q(i+l),q(i+2),q(i+3)進(jìn)行相鄰比較,得到的較小值存入寄存器Q5,即min(q(i), q(i+1)),min(q(i+2),q(i+3)),然后將Q5比較結(jié)果存儲(chǔ)到數(shù)據(jù)區(qū)。
3.根據(jù)權(quán)利要求1所述一種針對(duì)嵌入式機(jī)器視覺系統(tǒng)的圖像顯著區(qū)域檢測(cè)優(yōu)化方法, 其特征是:所述最大穩(wěn)定極值區(qū)域的判定(3)第三步中最大穩(wěn)定極值區(qū)域像元的有序存儲(chǔ) 和最大穩(wěn)定極值區(qū)域的擬合(4)第一步中幾何零階矩和幾何一階矩的計(jì)算和最大穩(wěn)定極 值區(qū)域的擬合(4)第二步中中心矩陣的計(jì)算,幾何一階矩1%和m1(l為:
第一步:檢測(cè)出最大穩(wěn)定極值區(qū)域后,對(duì)每個(gè)最大穩(wěn)定極值區(qū)域像元坐標(biāo)值進(jìn)行有序 存儲(chǔ): (1) 建立一塊連續(xù)的存儲(chǔ)空間msers[RegionNumber]對(duì)應(yīng)每一個(gè)最大穩(wěn)定極值區(qū)域; (2) 根據(jù)區(qū)域描述子area[i]中的根節(jié)點(diǎn)參數(shù)area[i].root,在區(qū)域樹的分支鏈表中 遍歷出相同灰度值的像元,將像元坐標(biāo)值存儲(chǔ)到連續(xù)存儲(chǔ)空間msers[RegionNumber]中; (3) 根據(jù)區(qū)域描述子area[i]中的子節(jié)點(diǎn)參數(shù)area[i].child,遍歷區(qū)域樹的每一條分 支,得到該區(qū)域的所有子節(jié)點(diǎn),根據(jù)子節(jié)點(diǎn)的分支鏈表,依次遍歷出子節(jié)點(diǎn)區(qū)域中相同灰度 像元的坐標(biāo)值,將像元坐標(biāo)值存儲(chǔ)到msers[RegionNumber]中,直到遍歷完所有子節(jié)點(diǎn),完 成對(duì)最大穩(wěn)定極值區(qū)域中所有像元坐標(biāo)的有序存儲(chǔ); 第二步:基于NEON單元的并行處理結(jié)構(gòu)實(shí)現(xiàn)一階矩的并行求取,設(shè)計(jì)采用64位的D寄 存器DO?D2實(shí)現(xiàn): a?將msers[RegionNumber]中X坐標(biāo)值劃分成八個(gè)數(shù)據(jù)一組的結(jié)構(gòu),即xQ,X1,x2,x3, X4,X5JXgjX7;…;Xj,xi+1,xi+2,xi+3,xi+4,xi+5,xi+6,xi+7;后X〇,X1,X2,x3,x4,X5,X6,X7 從數(shù)據(jù)區(qū)一次加載到寄存器DO與Dl中,DO為X。,X1, x2, x3,Dl為x4, x5, x6, X7; b.對(duì)DO與Dl中的x坐標(biāo)值進(jìn)行相鄰求和運(yùn)算,結(jié)果存入D2寄存器,為Xc^x1,x2+x3,x4+x5,x6+x7,然后將D2寄存器中結(jié)果存儲(chǔ)到數(shù)據(jù)區(qū),y坐標(biāo)值計(jì)算同之; 第三步:中心矩陣的主對(duì)角線元素U2tl和yC12S:
基于NEON的并行處理結(jié)構(gòu)實(shí)現(xiàn)上述兩式的并行計(jì)算,采用64位寄存器D3?D7實(shí)現(xiàn):a?將msers[RegionNumber]中X坐標(biāo)值分成四個(gè)數(shù)一組的結(jié)構(gòu),即xQ,X1,x2,x3;…; Xi,xi+1,xi+2,xi+3;…,然后將XMXl,x2,巧從數(shù)據(jù)區(qū)加載到寄存器D3中,將X。存入寄存器D4 的每個(gè)單元; b. 對(duì)D3與D4進(jìn)行并行減法運(yùn)算,結(jié)果存入D5,為Xci-Xe,x「x。,x2-x。,x3-x。,然后復(fù)制 D5中數(shù)據(jù)存入到寄存器D6; c. 對(duì)D5 中x0-xc,x「xc,x2-xc,X3-Xc^D6中X〇-xc,x「xc,x2-xc,x3_xc?行并行乘法運(yùn) 算,結(jié)果存入寄存器D7,為(Xtl-Xe)2,(Xl-X。)2,(X2-Xe)2,(X3-Xe)2,然后將D7中結(jié)果存儲(chǔ)到數(shù) 據(jù)區(qū),y坐標(biāo)值計(jì)算同之; 第四步:中心矩陣的次對(duì)角線元素yn為:
基于NEON的并行處理結(jié)構(gòu)實(shí)現(xiàn)上述算式的并行計(jì)算,采用64位寄存器D8?D14實(shí) 現(xiàn): a?將msers[RegionNumber]中X或y坐標(biāo)值劃分成四個(gè)數(shù)據(jù)一組的結(jié)構(gòu),即XcrXpX2,x3;…;xpxi+1,xi+2,xi+3;…與y。,y"y2,y3;…;ypyi+1,yi+2,yi+3;…,然后將X或y坐標(biāo) 值分別從數(shù)據(jù)區(qū)分別加載到寄存器D8?Dll中,分別為D8中X(l,Xl,X2,x3、D9中Xe,xe,Xc;, xc、DlO中yQ,y!,y2,y3,Dll中yc,yc,yc,yc; b. 分別對(duì)D8與D9、D10與Dll進(jìn)行并行減法運(yùn)算,運(yùn)算結(jié)果存入寄存器D12與寄存器 D13 中,D12 中為Xtl-Xc,X1-Xc,x2-xc,x3-xc,D13 中為yo-y。,yry。,y2-yc,y3_yc; c. 對(duì)D12與D13進(jìn)行并行乘法運(yùn)算,運(yùn)算結(jié)果存入寄存器D14,為W-xJh-y。), (X1-Xc) (Y1Ic),(X2-Xc) (y2_yc),(X3-Xc) (y3_yc),然后將D14 中數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)區(qū)。
【文檔編號(hào)】G06F9/46GK104504696SQ201410788426
【公開日】2015年4月8日 申請(qǐng)日期:2014年12月16日 優(yōu)先權(quán)日:2014年12月16日
【發(fā)明者】白瑞林, 馬敏銳 申請(qǐng)人:江南大學(xué)