基于適應性高斯差分演化的圓檢測方法
【技術領域】
[0001] 本發明涉及數字圖像處理領域,尤其是涉及一種基于適應性高斯差分演化的圓檢 測方法。
【背景技術】
[0002] 數字圖像處理中圓的檢測是工業自動化、機器人視覺等領域中圓形物體識別與檢 測的基礎支撐技術。傳統的圓檢測方法有Hough變換、最小二乘法、梯度等方法。然而這 些傳統方法存在著運算量較大,檢測速度較慢,實時性不強,尤其是處理背景比較復雜圖像 時,檢測精度不高的缺點。
[0003] 圓的檢測問題可以歸結成為一個優化問題。差分演化算法是一種求解優化問題的 有效方法,它已經成功應用到了許多工程實踐中,并且獲得了令人滿意的求解結果。例如, 王靈等在2010年發明了一種基于差分進化算法的大規模工業無線傳感器網絡最優部署方 法(專利號:201010290702. X),劉志剛和曾學強在2011年發明了一種基于改進差分進化算 法的電力系統無功優化方法(專利號:201110130062. 0),李妮等在2012年發明了一種基于 OpenCL的并行差分進化算法的翼型優化設計方法(專利號:201210208326. 4)。雖然差分 演化算法在許多工程領域中獲得了一定的成功,但傳統差分演化算法對數字圖像進行圓檢 測時,容易出現陷入局部最優和收斂速度慢的缺點,尤其是處理復雜背景圖像時,其檢測精 度仍有待于提高。
【發明內容】
[0004] 本發明主要是解決現有技術所存在的技術問題;針對傳統差分演化算法對數字圖 像進行圓檢測時,容易出現陷入局部最優和收斂速度慢的缺點,以及處理復雜背景圖像時, 檢測精度不高的缺點,提出一種基于適應性高斯差分演化的圓檢測方法。本發明能夠加快 圓檢測的速度,提高圓檢測的精度,并在一定程度上避免陷入局部最優。
[0005] 本發明的技術方案:一種基于適應性高斯差分演化的圓檢測方法,包括以下步 驟:
[0006] 步驟1,利用數字圖像傳感器采集一幅圖像頂,然后對圖像頂進行邊緣檢測,再對 邊緣檢測得到的圖像執行二值化操作得到二值圖像BI,其中像素值為1表示邊緣像素,像 素值為〇表示非邊緣像素;
[0007] 步驟2,對二值圖像BI依次按從左到右,從上到下的順序把所有邊緣像素進行編 排序號,然后按照編好的邊緣像素序號依次把它們的二維坐標存儲到邊緣像素坐標列表 EList 中,其中 EList = (E1, E2,. . .,Ek,. . .,Een},下標 k = 1,. . .,EN,其中 EN 為邊緣像素總 數,Ek= [Em Eki2]為第k個邊緣像素在二值圖像BI中的二維坐標值,Ekil為第k個邊緣像 素在二值圖像BI中的橫向坐標值,Eki2為第k個邊緣像素在二值圖像BI中的縱向坐標值;
[0008] 步驟3,用戶初始化參數,所述初始化參數包括種群大小Popsize,最大評價次數 MAXJ7Es ;
[0009] 步驟4,當前演化代數t = 0,當前評價次數FEs = 0 ;
[0010] 步驟5,隨機產生初始種群
,其中:個體下標i = 1,. . .,Popsize,并且乾=巧,3 ]為種群Pt中的第i個個體,其隨機初始化公式為:
[0012] 其中維數下標j = 1,2, 3 ;劣為在種群Pt中的第i個個體,存儲了 3個取值范圍 在1到EN之間的實數,rand (0, 1)為在[0, 1]之間服從均勻分布的隨機實數產生函數;
[0013] 步驟6,初始種群Pt中每個個體的雜交率Γ/?/ = 0.9,然后隨機產生種群Pt中每 個個體的高斯變異策略序號.
,其中個體下標i = 1,. . .,Popsize, randlntO為隨機整數產生函數,%為取余運算符;
[0014] 步驟7,計算種群Pt中每個個體劣的適應值^(K ),其中個體下標i = 1,. . .,Popsize,計算個體成?的適應值(S;)的具體步驟如下:
[0015] 步驟7. 1,獲得個體對中存儲的三個實數%,私,屬3,再對這三個實數進行四舍 五入取整,分別得到三個邊緣像素序號:. .,然后在邊緣像素坐標列表EList 中得到這三個邊緣像素序號分別代表的邊緣像素的二維坐標值:;
[0016] 步驟7. 2,判斷這三個二維坐標值是否在同一條直線上,如果是 則令個體劣的適應值為1. 〇,然后結束個體劣的適應值計算過程;否則轉到步驟7. 3 ;
[0017] 步驟7. 3,通過三個二維坐標值,£坪.3確定一個圓形路徑CP,并采用中 點畫圓法計算圓形路徑CP上每個點的坐標,并記下圓形路徑CP上點的總數為CPN ;
[0018] 步驟7. 4,令計數器EPN = 0 ;
[0019] 步驟7. 5,依次判斷圓形路徑CP上每個點的坐標在二值圖像BI中所對應的像素是 否為邊緣像素,如果是則令EPN = EPN+1 ;否則保持EPN的值不變;
[0020] 步驟7. 6,令個體辦的適應值為
,其中適應值越小則表明個體越優秀;
[0021] 步驟8,當前評價次數FEs = FEs+Popsize ;
[0022] 步驟9,保存種群Pt中適應值最小的個體為最優個體Best N
[0023] 步驟10,令計數器i = 1 ;
[0024] 步驟11,如果計數器i大于種群大小Popsize,則轉到步驟18,否則轉到步驟12 ;
[0025] 步驟12,計算個體$的當前雜交率,計算公式如下:
[0026]
[0027] 其中rl為在[0, 1]之間隨機產生的實數;
[0028] 步驟13,根據個體劣的高斯變異策略序號,產生一個試驗個體i/f,具體步 驟如下:
[0029] 步驟13. 1,令計數器j = 1 ;
[0030] 步驟13. 2,在[1,D]之間隨機產生一個正整數jRand ;
[0031] 步驟13. 3,在[l,Popsize]之間隨機產生兩個不相等的正整數RI1,RI2 ;
[0032] 步驟13. 4,如果計數器j大于D,則轉到步驟13. 16,否則轉到步驟13. 5 ;
[0033] 步驟13. 5,在[0,1]之間產生一個隨機實數r2,如果r2小于個體劣的當前雜交率 或者jRand等于計數器j,則轉到步驟13. 6,否則轉到步驟13. 14 ;
[0034] 步驟13. 6,如果Μ/S/)等于1則轉到步驟I3. 7執行局部搜索導向的高斯變異策 略,否則轉到步驟13. 10執行全局搜索導向的高斯變異策略;
[0035] 步驟 13. 7,均值MFaZ=Sag
[0036] 步驟13. 8,方差
[0037] 步驟 13. 9,
其中 NormalRand (Mval, SDVal)表不 以Mval為均值,SDVal為方差的高斯隨機數產生函數,然后轉到步驟13. 15 ;[0038] 步驟 13. 10,隨機權值 RWl = rand (0, 1);
[0039] 步驟13. 11,均值」
[0040] 步驟13. 12,方差〗 ^
[0041] 步驟13. 13, 轉到步驟13. 15;
[0042] 步驟 13. 14,.....
[0043] 步驟13. 15,令計數器j = j+Ι,轉到步驟13. 4 ;
[0044] 步驟13. 16,計算試驗個體W的適應值ΛΥ((7丨),轉到步驟14 ;
[0045] 步驟14,按以下公式在個體祀與試驗個體t/丨之間選擇出優秀個體進入下一代種 群:
[0046]
[0047] 步驟15,按以下公式更新個體劣的高斯變異策略序號Μ?Τ;和雜交率CK/ :
[0048]
[0049]
[0050] 步驟16,令計數器i = i+1 ;
[0051] 步驟17,轉到步驟11;
[0052] 步驟18,當前評價次數FEs = FEs+Popsize,保存種群Pt*適應值最小的個體為 最優個體Bestt;
[0053] 步驟19,當前演化代數t = t+Ι ;
[0054] 步驟20,重復步驟10至步驟19直至當前評價次數FEs達到MAX_FEs后結束, 從執行過程得到的最優個體Bestt中獲得三個實數3?'/丨再對這三個實數 進行四舍五入取整,分別得到三個邊緣像素序號:7'辦.< .7方《/丨.7'ββ對丨,然后在邊緣 像素坐標列表EList中得到這三個邊緣像素序號分別代表的邊緣像素的二維坐標值:
,通過這三個二維坐標值即可獲得檢測到的圓。
[0055] 本發明設計了全局搜索導向和局部搜索導向的兩種高斯變異策略,在圓檢測的演 化過程中根據當前的演化狀態自適應性地從這兩種高斯變異策略中選擇出合適的高斯變 異策略來產生變異個體,并適應性地調整交叉概率來生成新個體,協調收斂速度與種群多 樣性之間的平衡,從加快圓檢測的速度,提高圓檢測的精度,減少陷入局部最優的概率;與 同類方法相比,本發明能夠加快圓檢測的速度,提高圓檢測的精度,并在一定程度上避免陷 入局部最優。
【附圖說明】
[0056] 圖1為實施例中圓檢測圖像。
[0057] 圖2為圓檢測圖像的邊緣結果。
[0058] 圖3為應用本發明進行圓檢測的結果。
【具體實施方式】
[0059] 下面通過實施例,并結合附圖,對本發明的技術方案作進一步具體的說明。
[0060] 實施例:
[0061] 本實施例基于圖1圓檢測圖像,本發明的具體實施步驟如下:
[0062] 步驟1,利用數字圖像傳感器采集一幅圖像頂(如圖1所示),然后對圖像頂進行 邊緣檢測,再對邊緣檢測得到的圖像執行二值化操作得到二值圖像BI (如圖2所示),其中 像素值為1表示邊緣像素,像素值為〇表示非邊緣像素;
[0063] 步驟2,對二值圖像BI依次按從左到右,從上到下的順序把所有邊緣像素進行編 排序號,然后按照編好的邊緣像素序號依次把它們的二維坐標存儲到邊緣像素坐標列表 EList 中,其中 EList = (E1, E2,. . .,Ek,. . .,Een},下標 k = 1,. . .,EN,其中 EN 為邊緣像素總 數,Ek= [Em Eki2]為第k個邊緣像素在二值圖像BI中的二維坐標值,Ekil為第k個邊緣像 素在二值圖像BI中的橫向坐標值,Eki2為第k個邊緣像素在二值圖像BI中的縱向坐標值;
[0064] 步驟3,用戶初始化參數,所述初始化參數包括種群大小Popsize = 20,最大評價 次數 MAX_FEs = 1000 ;
[0065] 步驟4,當前演化代數t = 0,當前評價次數FEs = 0 ;
[0066] 步驟5,隨機產生初始種群
其中:個體下標i = 1,. . .,Popsize,并且和=[f K2以.3 ]為種群Pt中的第i個個體,其隨機初始化公式為:
[0067]
[0068] 其中維數下標j = 1,2, 3 ; 為在種群Pt中的第i個個體,存儲了 3個取值范圍 在1到EN之間的實數,rand (0, 1)為在[0, 1]之間服從均勻分布的隨機實數產生函數;
[0069] 步驟6,初始種群Pt中每個個體的雜交率=0.9,然后隨機產生種群Pt中每 個個體的高斯變異策略序號鳥= l+faiidlnt()%2其中個體下標i = 1,. . .,Popsize, randlntO為隨機整數產生函數,%為取余運算符;
[0070] 步驟7,計算種群Pt中每個個體W的適應值RXCh其中個體下標i = 1,. . .,