[發明專利]一種基于非下采樣Contourlet變換的直線目標檢測方法及系統有效
| 申請號: | 202011075165.7 | 申請日: | 2020-10-09 |
| 公開(公告)號: | CN112215126B | 公開(公告)日: | 2022-10-25 |
| 發明(設計)人: | 楊藝;蔣慶華;謝守志;張猛;張思賢 | 申請(專利權)人: | 西安交通大學 |
| 主分類號: | G06V10/30 | 分類號: | G06V10/30;G06V10/80;G06V20/10 |
| 代理公司: | 西安通大專利代理有限責任公司 61200 | 代理人: | 李鵬威 |
| 地址: | 710049 *** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 采樣 contourlet 變換 直線 目標 檢測 方法 系統 | ||
1.一種基于非下采樣Contourlet變換的直線目標檢測方法,其特征在于,包括以下步驟:
步驟1,在原始遙感圖像上進行多層次多方向的NSCT分解,獲得若干低頻子圖和高頻子圖;
步驟2,對于步驟1分解得到的每個高頻子圖:進行LSD線狀目標檢測,獲得初始高頻線段集;將初始高頻線段集根據視覺顯著性進行篩選,獲得一篩高頻線段集;將一篩高頻線段集根據“平行直線對”特征進行篩選,獲得二篩高頻線段集;對于步驟1分解得到的每個低頻子圖:進行LSD線狀目標檢測,獲得初始低頻線段集;將初始低頻線段集根據視覺顯著性進行篩選,獲得一篩低頻線段集;將一篩低頻線段集根據“平行直線對”特征進行篩選,獲得二篩低頻線段集;
步驟3,對步驟2獲得的全部高頻子圖的二篩高頻線段集的線段進行融合處理,獲得高頻融合結果RH;對步驟2獲得的全部低頻子圖的二篩低頻線段集的線段進行融合處理,獲得低頻融合結果RL;
步驟4,將步驟3獲得的低頻融合結果RL和高頻融合結果RH進行融合處理,獲得低頻和高頻融合結果,完成直線目標檢測;
其中,步驟2中,將初始高頻或低頻線段集根據視覺顯著性進行篩選,獲得一篩高頻或低頻線段集具體包括:
使用LSD檢測出的線段長度小于基于視覺顯著性所求出的線段長度閾值T時,認為不符合顯著特性,從初始高頻或低頻線段集篩除,獲得一篩高頻或低頻線段集;其中,
式中:T代表基于視覺顯著性所求出的線段長度閾值;ε代表允許的偏差;Len代表圖像較長邊的邊長;
步驟2中,所述將一篩高頻或低頻線段集根據“平行直線對”特征進行篩選,獲得二篩高頻或低頻線段集具體包括:
一篩高頻或低頻線段集表示為G={line1,line2,…,linenum_G};其中,num_G表示線段集G中線段條數;
對G中的全部線段進行遍歷,執行的判定規則表達式為,
式中,lineα是被遍歷到的線段,lineβ是線段集G中任意一條線段,kα代表lineα的斜率,kβ代表lineβ的斜率,thre代表設置的斜率閾值,α≠β,1≤α≤num_G,1≤β≤num_G;
當判定為save lineα時,保留線段lineα;判定為delete lineα時,篩去線段lineα;
其中,線段lineα和線段lineβ的斜率分別表示為:
式中,和分別代表線段lineα兩端端點的坐標;和分別代表線段lineβ兩端端點的坐標;
步驟1中,低頻子圖或高頻子圖的分解層數為N層;其中,對于高頻子圖,第n層的分解方向數目為mn,n=1,2,…,N;
步驟3中,任意一個低頻子圖上的二篩低頻線段集為L_Sn,任意一個高頻子圖上的二篩高頻線段集為H_Sn,j;其中,j=1,2,…,mn;
步驟3中,所述對步驟2獲得的全部高頻子圖的二篩高頻線段集的線段進行融合處理,獲得高頻融合結果RH具體包括:
首先,執行oper1操作,表達式為,
其中,H_S代表經過oper1融合操作后的線段集,H_Sn,j代表任意一個高頻子圖上的二篩高頻線段集;
算子oper1定義表達式為,S=(S1)oper1(S2)={S1,S2};其中,效果為將算子oper1前后兩個線段集合并為一個線段集;S1,S2分別代表兩個不同的線段集,S代表經過oper1合并后的線段集;
然后,執行操作RH=ψ(H_S);
函數ψ(…)定義為,設H_S={l1,l2,…,lnum_l},num_l代表線段集H_S中的線段數目,對線段集H_S進行遍歷,對其中任意兩條線段進行如下公式的判定,
condition(A),判斷兩直線斜率差值:|kc-kd|≤threk;式中,kc代表線段lc的斜率;kd代表線段ld的斜率;threk代表斜率閾值;
condition(B),判斷一條線段中點到另一線段的距離:式中,kc代表線段lc的斜率;代表線段ld的端點;bc代表線段lc所在直線方程的截距;thredis代表距離閾值;
condition(C),判斷兩線段端點之間的最小距離:Mmin=min(d1,d2,d3,d4)≤threM,式中,Mmin代表d1,d2,d3,d4中的最小值;d1,d2,d3,d4分別代表線段lc端點與線段ld端點的距離;threM代表端點閾值;代表線段ld兩端的端點;代表線段lc兩端的端點;
condition(D),判斷一條線段的中點到另一條線段的中點的距離:式中,threCenter代表中點距離閾值;代表線段ld兩端的端點;代表線段lc兩端的端點;
式中,lc和ld代表線段集H_S中任意兩條線段,c≠d;線段lc所在的直線方程為y=kcx+bc,線段兩端的端點分別為線段ld所在的直線方程為y=kdx+bd,線段兩端的端點分別為
當判定為label ld,lc時,將線段lc和ld標記為同一類別;當判定為save lc時,則代表不存在線段ld使得lc和ld被標記為同一類別,直接保留線段lc單獨成為一個類別;
規定Ω為:假定線段LINE_A與線段LINE_B已被標記為同一類別;線段LINE_B與線段LINE_C也被標記為同一類別,則線段LINE_A、LINE_B和LINE_C歸為同一個類別;
經過劃分類別的判定后,將劃分到同一個類別中的線段進行融合;
其中,將待融合的線段集合表示為S'={string1,string2,…,stringnum_string},num_string為待融合線段集中的線段數目;
融合后的線段所在直線方程表示為:y-yres=k(x-xres);式中,yres代表直線所經點的縱坐標,xres代表直線所經點的橫坐標,kres代表融合后的線段的斜率,
對于計算所得的直線方程,由計算其橫坐標范圍[xmin,xmax],以截取成線段;其中,s代表直線標號;代表對應線段s的兩個端點橫坐標,為這num_string條線段的端點的橫坐標最小值;為這num_string條線段的端點的橫坐標最大值;
經過融合生成的線段組成的集合為ψ(H_S)的結果RH;
步驟3中,所述對步驟2獲得的全部低頻子圖的二篩低頻線段集的線段進行融合處理,獲得低頻融合結果RL具體包括:
執行L_Sn'=ψ(L_Sn),n=1,2,…,N操作;其中,L_Sn為第n層的二篩低頻線段集;L_Sn'代表對應第n層低頻線段集經過ψ(…)處理后的線段集;
執行L_S”=(L_S1')oper1(L_S2')oper1…(L_SN)操作;其中,L_S”代表經過oper1融合處理后的結果;
執行L_S”'=φ(L_S”)操作;其中,L_S”'為經過φ(…)操作后的結果;
函數φ(…)的定義為:
設線段集L_S”={h1,h2,…,hn'};其中,n'代表線段集L_S”中的線段數目;對線段集L_S”進行遍歷,對其中任意兩條線段進行如下公式的判定,
condition(A'),判斷兩直線斜率差值:|ke-kf|≤threk;式中,ke代表線段he的斜率;kf代表線段hf的斜率;threk代表斜率閾值;
condition(B'),判斷一條線段中點到另一線段的距離:式中,ke代表線段he的斜率;代表線段hf的端點;be代表線段he所在直線方程的截距;thredis代表距離閾值;
condition(C'),判斷兩線段端點之間的最小距離:式中,代表中的最小值;分別代表線段he端點與線段hf端點的距離;threM代表端點閾值;代表線段hf兩端的端點;代表線段he兩端的端點;
condition(D'),判斷一條線段的中點到另一條線段的中點的距離:式中,threCenter代表中點距離閾值;代表線段hf兩端的端點;代表線段he兩端的端點,
式中,he和hf代表線段集L_S”中任意兩條線段,e≠f;線段he所在的直線方程為y=kex+be,線段兩端的端點分別為線段hf所在的直線方程為y=kfx+bf,線段兩端的端點分別為
當判定為label hf,he時,將線段he和hf標記為同一類別;當判定為delete he時,則代表不存在線段hf使得he和hf被標記為同一類,選擇直接舍去he;
此處判定遵守規定Ω;
經過劃分類別的判定后,對每個類別中的線段數量進行判定;假設分到某一個類別中的線段所組成的線段集記為其中num_temp為線段集線段數目;判定規則如下:
當判定為save L_Stemp時,將線段集L_Stemp中的全部線段予以保留;當判定為delete L_Stemp時,將線段集L_Stemp中所有線段篩去;
經過數量判定后,將保留的全部線段所組成的線段集L_S”'進行融合環節和篩選環節,融合環節表達式為L_S””=ψ(L_S”'),篩選環節為對L_S””執行一次“平行直線對”篩選,最終獲得全部低頻線段集的融合結果RL;
步驟4具體包括:
執行R=(RL)oper2(RH)操作;式中,RL代表低頻線段集的融合結果,RH代表高頻線段集的融合結果,R代表低頻和高頻融合結果;
算子oper2定義為,設其中,nL和nH分別代表線段集RL和RH中的線段數目;
對RL中的任意一條線段segp,在RH中進行遍歷,被遍歷到的線段記為進行判定:
condition(A”),判斷兩直線斜率差值:|kp-kq|≤threk;式中,kp代表線段segp的斜率;kq代表線段的斜率;threk代表斜率閾值;
condition(B”),判斷一條線段中點到另一線段的距離:式中,kp代表線段segp的斜率;代表線段的端點;bp代表線段segp所在直線方程的截距;thredis代表距離閾值;
condition(C”),判斷兩線段端點之間的最小距離:式中,代表中的最小值;分別代表線段segp端點與線段端點的距離;threM代表端點閾值;代表線段兩端的端點;代表線段segp兩端的端點;
condition(D”),判斷一條線段的中點到另一條線段的中點的距離:式中,threCenter代表中點距離閾值;代表線段兩端的端點;代表線段segp兩端的端點;
線段segp所在的直線方程為y=kpx+bp,線段兩端的端點分別為線段所在的直線方程為y=kqx+bq,線段兩端的端點分別為
當判定為labelsegp時,將線段segp和標記為同一類別;當判定為delete segp時,則代表不存在線段使得segp和被標記為同一類,因此,這時選擇直接舍去segp;此處判定遵守規定Ω;
經過劃分類別的判定后,將劃分到同一個類別中的線段進行融合;其中,將待融合的線段集合表示為S”={string1,string2,…,stringnumbers_s},其中,numbers_s為待融合線段集中的線段數目;融合后的線段所在直線方程表示為:y-yfinal=k(x-xfinal);式中,yfinal代表直線所經點的縱坐標,xfinal代表直線所經點的橫坐標,kfinal代表融合后的線段的斜率,對于計算所得的直線方程,由計算其橫坐標范圍以截取成線段;其中,ss代表直線標號;代表對應線段ss的兩個端點橫坐標,為這numbers_s條線段的端點的橫坐標最小值;為這numbers_s條線段的端點的橫坐標最大值,記經過融合生成的線段組成的集合為R';
執行R”=ψ(R');其中,R”代表R'經過ψ(…)處理后的線段集;
對R”執行“平行直線對”篩選,獲得最終的低頻和高頻融合的結果R,完成直線目標檢測。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安交通大學,未經西安交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011075165.7/1.html,轉載請聲明來源鉆瓜專利網。





