[0041] 圖4為個體適應度的計算方法;
[0042] 圖5a、5b、5c為交叉操作示意圖;
[0043] 圖6為變異操作示意圖。
【具體實施方式】
[0044] 下面根據(jù)【附圖說明】基于遺傳算法進行矩形檢測的實施過程。
[0045] 圖1為整體流程圖。
[0046] 對圖像進行邊緣檢測,獲得圖像的邊緣點組成的邊緣空間,W此作為矩形檢測算 法的輸入。邊緣檢測算法可W是Robeds、Sobel、Prewitt、Canny或Log,具體采用哪種邊 緣檢測不是算法的關鍵。圖2a、化為對圖片應用Canny邊緣檢測前后的結(jié)果。
[0047] 對圖像進行邊緣檢測后,獲得由邊緣點組成的邊緣空間。從邊緣空間中均勻隨機 不放回地抽取四個點,按照個體表示中基因排列規(guī)則生成一個個體。設群體大小為S,此次 實施過程中S= 4,則重復S次該操作,最終生成初始群體。
[004引圖3描述了個體內(nèi)基因的排列規(guī)則。離原點最近的有P1和P4兩個頂點,于是將 位于上方的P1所代表的基因(XI,yl)置于一號基因位;然后按照順時針的順序,將P2、P3、 P4所代表的基因知2,72)、知3,73)、知4,74)依次置于二號、^號、四號基因位。于是,代表 四邊形P1P2P3P4 的個體I= {(XI,yl),(x2,y2),(x3,y3),(x4,y4)}。
[0049] 按照適應度函數(shù),計算群體中每個個體的適應度。圖4描述了個體I= {P1,P2,P3,P4}適應度的計算過程。由于真正的矩形是由P1P2'P3P4,所W當前個體I的 適應度小于1。示例在計算邊的存在性時采用的是歐氏距離,檢測M= 3個等距點的存在, 在求夾角ZP1P2P3的正弦值時,是通過求由向量和向量夾角的余弦值,
[0050]
[0051] 然后根據(jù)余弦值求正弦值獲得的。
[0052] 對種群中所有個體計算完適用度后,開始進行選擇操作。表1為對數(shù)目S= 4的 群體按照適用度比例法進行的選擇操作。選擇結(jié)束后,形成選擇庫,供后續(xù)交叉操作和變異 操作使用。
[0053]表1
[0054]
[0055]圖 5a、圖 5b、圖 5c、表 2 展示出 了個體II= {(2, 1),化,7),巧,7),(1,4)}和個 體12= {(7, 9),巧,9),巧,10),(7, 11)}交叉操作的過程。II和12的二號基因交叉后 得到基因(4, 5)和(10, 11)。由于(4, 5)不是邊緣點,所W選取除交叉前基因化7)離 (4, 5)最近的化6)作為II二號基因交叉后的結(jié)果。于是得到交叉后的個體I1'= {(2,1),(3, 6),巧,7),(1,4)}和個體 12' = {(7, 9),(8, 9),(8, 10),(7, 11)}。
[0056]表2
[0057]
[0058]
[0059] 交叉操作后,當前個體適應度均小于1,于是對選擇庫中的個體進行變異操作。設 變異闊值t虹=5。圖6為個體1= {(2, 2),化,2),(4, 7),(2, 5)}的變異過程。隨機選擇S號 基因位上的基因(4, 7)進行變異,生成兩個隨機數(shù)然后對5取余產(chǎn)生變異向量化-1),兩者 相加得到變異后的基因化,6)。因為變異后的基因不是邊緣點,所W選取離化6)最近的邊 緣點化5)作為變異后的最終結(jié)果,得到變異后的個體I= {(2, 2),化,2),化,5),(2, 5)}, 個體I適應度為1,為全局最優(yōu),檢測結(jié)束。
【主權(quán)項】
1. 一種基于遺傳算法的矩形檢測方法,其特征在于包括如下步驟: (1) 邊緣檢測步驟:對圖像進行邊緣檢測,獲得由圖像中所有邊緣點組成的邊緣空間; (2) 選擇庫生成步驟,包括下述子步驟: (2. 1)每次以均勻隨機不放回方式從邊緣空間中抽四個邊緣點; (2. 2)個體表示步驟,用四個邊緣點表示一個個體,記為{(x^y),(x2,y2), (x3,y3), (x4 ,y4)},其中Xi_x4為各邊緣點橫坐標,yi_y4為各邊緣點縱坐標;將個體中每個邊緣點視為一 個基因,每個個體按從左至右順序,有一號、二號、三號、四號基因位;將置于i號基因位的 基因稱為第i個基因,i為從1到4的整數(shù); 將離直角坐標系原點最近的基因置于一號基因位上,其它三個基因按照順時針或逆時 針順序依次位于二號、三號和四號基因位上;當離原點最近的基因多于一個時,則將位于最 上方基因置于一號基因位上; (2. 3)執(zhí)行子步驟(2. 1)、(2. 2)共S次,S取值一般為20到900之間,去除其中有三個 或三個以上的邊緣點在一條直線的個體,生成選擇庫; (3) 交叉操作步驟,包括如下子步驟: (3. 1)從選擇庫中,以均勻隨機和放回的方式,選擇兩個個體; (3. 2)隨機生成整數(shù)i、j,將兩個個體的第i個基因的橫縱坐標分別轉(zhuǎn)換為二進制編 碼;將兩個個體的第i個基因的橫縱坐標第j位及以后的編碼段,分別進行交叉替換,將交 叉替換后的二進制編碼轉(zhuǎn)換回十進制,形成兩個新的基因;j是從1到N的整數(shù),N是基因坐 標二進制編碼位數(shù); (3.4) 判別所述兩個新的基因是否均為邊緣空間中的點,是則轉(zhuǎn)子步驟(3.5);否則將 不是邊緣空間中的點的基因,變更為邊緣空間中距離該基因最近、且未參加交叉替換的基 因,轉(zhuǎn)子步驟(3.5); (3.5) 對交叉或變更后的兩個個體執(zhí)行子步驟(2.2)操作,然后轉(zhuǎn)子步驟(3.6); (3. 6)在重新排列基因順序的兩個個體中,判別各個個體是否有兩個或兩個以上的基 因重復,是則將該個體刪除,轉(zhuǎn)步驟(3. 1);否則轉(zhuǎn)步驟(3.7); (3.7)計算重新排列基因順序的兩個個體適應度,判別是否至少有一個的適應度為1, 是則將該個體作為檢測出的矩形,結(jié)束;否則轉(zhuǎn)步驟(4)。 (4) 變異操作步驟,包括如下子步驟: (4. 1)以均勻隨機和放回的方式,從選擇庫中選擇一個個體,隨機選擇該個體上的第i個基因(Xi, ; (4. 2)生成兩個隨機整數(shù),分別對變異閾值thr取余,產(chǎn)生一個突變向量(Sx,Sy);其 中變異閾值thr是大于0的整數(shù); (4. 3)以(Xi+Sx,yi+Sy)為變異基因p,判斷其是否為邊緣空間中的點,是則轉(zhuǎn)子步驟 (4. 4),否則將其變更為邊緣空間中距離該點最近、且未參加變異的點; (4. 4)對變異后的個體執(zhí)行子步驟(2. 2)操作,然后轉(zhuǎn)子步驟(4. 5); (4. 5)判別重新排列基因順序的個體是否有兩個或兩個以上的基因重復,是則將該個 體刪除,轉(zhuǎn)子步驟(4. 1);否則轉(zhuǎn)步驟(5); (5) 計算個體適應度,判別該個體的適應度是否為1,是則將該個體作為檢測出的矩 形,結(jié)束;否則轉(zhuǎn)步驟(6); (6)判別交叉和變異操作次數(shù)的總和是否達到或超過T,是則表明沒有檢測到矩形,結(jié) 束;否則轉(zhuǎn)步驟(3);其T是用戶自定義的次數(shù)值,取值為50到500之間。2.根據(jù)權(quán)利要求1所述的檢測方法,其特征在于,子步驟(3. 7)和步驟(5)中,根據(jù)下 式計算個體適應度f(I):式中,I表示個體,Zi表示第i個基因?qū)捻斀?,h表示個體的4個邊,R(1 ^表示 各邊的存在性,其中dk是線段中實際接近邊的點和預測的邊緣點之間的距離,為歐氏距離或曼哈頓距 離;對每條邊等間距劃分,M是每條邊上的等間距點的數(shù)目,根據(jù)圖片大小取值為20到200 ; r是各邊存在性權(quán)重因子,一般取值為0. 5、1、2、3、4、5。
【專利摘要】本發(fā)明的涉及一種對圖像中矩形進行檢測的方法。本發(fā)明旨在尋找圖像中矩形的最佳四個頂點集合,首先對圖像進行邊緣檢測,獲得由圖像中所有邊緣點組成的集合即邊緣空間,然后用四個邊緣點表示一個矩形個體,簡稱為個體,通過計算四個邊緣點之間連線的存在性和夾角接近直角的程度來計算個體的適應度,選擇適用度高的個體進行交叉和變異操作來產(chǎn)生新一代的個體。通過多次選擇、交叉和變異操作最終找到組成矩形四個頂點的最佳集合。該方法基于遺傳算法,具有良好的全局搜索能力和準確、抗噪聲的優(yōu)點。
【IPC分類】G06T7/00, G06N3/12
【公開號】CN104952072
【申請?zhí)枴緾N201510329970
【發(fā)明人】陳進才, 范鶴鶴, 劉淑偉, 盧萍, 周可, 鄒復好
【申請人】華中科技大學
【公開日】2015年9月30日
【申請日】2015年6月16日