日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【转】 LSD(Line Segment Detector) 直线段检测算法学习~

發(fā)布時(shí)間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】 LSD(Line Segment Detector) 直线段检测算法学习~ 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

論文回顧之一 一種新的直線段檢測(cè)算法---LSD:a Line Segment Detector

原文地址:http://blog.csdn.net/polly_yang/article/details/10085401


近來(lái)比較忙+生病,沒(méi)有大段的時(shí)間學(xué)習(xí)PGM,臨睡前回顧一篇論文--《LSD: a Line Segment Detector》,這篇文章發(fā)表于PAMI2010。特別之處在于能快速檢測(cè)圖像中的線段,同時(shí)使用了錯(cuò)誤控制的方法,使得檢測(cè)結(jié)果比較準(zhǔn)確。最后,LSD結(jié)果輸出是線段的坐標(biāo)與屬性,比如起點(diǎn),終點(diǎn),線段的粗細(xì)。

? ? 首先,我們需要回顧一下,為什么需要檢測(cè)圖像中的直線段?直線段作為圖像中邊緣的一種,又有什么特殊之處呢?在Marr關(guān)于視覺(jué)的計(jì)算理論中提到,視覺(jué)是一種處理過(guò)程,經(jīng)過(guò)這個(gè)過(guò)程我們能從圖像中發(fā)現(xiàn)外部世界中有什么東西和它們?cè)谑裁吹胤健M瑫r(shí),我們還知道,信息處理具有三個(gè)層次:(1)第一個(gè)層次是信息處理的計(jì)算理論(theory),也就是研究是對(duì)什么信息進(jìn)行計(jì)算和為什么要進(jìn)行這些計(jì)算;(2)第二個(gè)層次是算法(algorithm),也就是如何進(jìn)行所需要的計(jì)算,或者說(shuō)是設(shè)計(jì)算法;(3)第三個(gè)層次是實(shí)現(xiàn)算法的機(jī)制,也就是研究某一算法的特定構(gòu)成。對(duì)于視覺(jué)系統(tǒng),觀看圖像的過(guò)程,也可以看做是信息處理的過(guò)程。從圖像推理得到物體的形狀信息的過(guò)程也可以對(duì)應(yīng)為三個(gè)階段:(1)初始簡(jiǎn)圖(primal sketch),這個(gè)初始簡(jiǎn)圖可以是輪廓圖像,也可以是一堆具有特定意義的特征點(diǎn)構(gòu)成的掩碼,或者是像素的光強(qiáng)等信息;(2)2.5維簡(jiǎn)圖(2.5 dimensional sketch),2.5維簡(jiǎn)圖是對(duì)初始簡(jiǎn)圖進(jìn)行一系列的處理和運(yùn)算,推導(dǎo)出的一個(gè)能反映某些幾何特征的表象,它和初始簡(jiǎn)圖都是以觀察者為核心;(3)三維模型(3D model)。

? ? 那么哪些信息可以用來(lái)構(gòu)造圖像的初始簡(jiǎn)圖呢?一個(gè)形象的例子是畫(huà)畫(huà)。畫(huà)家速寫(xiě)時(shí),用很少的邊,點(diǎn),線等符號(hào),就可以勾勒出大致的景物。當(dāng)然,這樣的景物與實(shí)際景物在人體視網(wǎng)膜上產(chǎn)生的以像素為單位的亮度矩陣式不一樣的,但是人們也可以輕松的識(shí)別出他們。這說(shuō)明視覺(jué)對(duì)圖形所做的第一個(gè)運(yùn)算就是把他們轉(zhuǎn)換成一些原始符號(hào)構(gòu)成的描述,這些描述所反映的不止是亮度的絕對(duì)值的大小,還有圖像中的亮度變化和局部的幾何特征。

? ? 初始簡(jiǎn)圖是一種基元。它可以由若干邊緣段(edge segments),線(line segment),斑點(diǎn)(blob)和端點(diǎn)(terminations)構(gòu)成,這些雜亂的基元構(gòu)成的初始簡(jiǎn)圖又被稱(chēng)作未處理的初始簡(jiǎn)圖,當(dāng)這些基元通過(guò)各種方式進(jìn)行聚合、概括和抽象以形成更大、更加抽象的標(biāo)記(tokens)時(shí),這樣的初始簡(jiǎn)圖又被稱(chēng)為完全的初始簡(jiǎn)圖。

? ? 這也就是邊緣檢測(cè)之所以稱(chēng)為圖像處理和機(jī)器視覺(jué)的基本問(wèn)題的原因。邊緣檢測(cè)的直接目的是尋找未處理的初始簡(jiǎn)圖。它通常尋找圖像中亮度變化明顯的點(diǎn),當(dāng)這些點(diǎn)位置相鄰且方向相近時(shí),則構(gòu)成了邊緣中的特殊邊緣-直線段。目前流行的直線檢測(cè)算法主要是霍夫變換,它的優(yōu)勢(shì)是不受圖像旋轉(zhuǎn)的影響,易于進(jìn)行幾何圖像的快速變換。基于霍夫變換的改進(jìn)方法也很多,其中一個(gè)重要的方法是廣義霍夫變換,可以用來(lái)檢測(cè)任意形狀的曲線。?

最簡(jiǎn)單的霍夫變換是在圖像中識(shí)別直線。在平面直角坐標(biāo)系(x-y)中,一條直線可以用方程

表示。對(duì)于直線上一個(gè)確定的點(diǎn)(,),有

這表示參數(shù)平面(k-b)中的一條直線。因此,圖像中的一個(gè)點(diǎn)對(duì)應(yīng)參數(shù)平面中的一條正弦曲線,圖像中的一條直線對(duì)應(yīng)參數(shù)平面中的一個(gè)點(diǎn)。對(duì)圖像上所有的點(diǎn)作霍夫變換,最終所要檢測(cè)的直線對(duì)應(yīng)的一定是參數(shù)平面中直線相交最多的那個(gè)點(diǎn)。這樣就在圖像中檢測(cè)出了直線。在實(shí)際應(yīng)用中,直線通常采用參數(shù)方程

.

類(lèi)似的還有檢測(cè)線段、圓、圓弧、橢圓、矩形等的霍夫變換。

? ? ??廢話(huà)了這么多,終于開(kāi)始回顧LSD了,使用LSD主要是在遙感圖像中幾何形狀明顯的目標(biāo)進(jìn)行檢測(cè)時(shí)用到。利用LSD,可以快速的檢測(cè)圖像中的直線段,然后根據(jù)目標(biāo)的幾何特征設(shè)計(jì)快速算法,以快速確定疑似目標(biāo)區(qū)域。

? ? ? LSD的核心是像素合并于誤差控制。利用合并像素來(lái)檢測(cè)直線段并不是什么新鮮的方法,但是合并像素的方法通常運(yùn)算量較大。LSD號(hào)稱(chēng)是能在線性時(shí)間(linear-time)內(nèi)得到亞像素級(jí)準(zhǔn)確度的直線段檢測(cè)算法。LSD雖然號(hào)稱(chēng)不需人工設(shè)置任何參數(shù),但是實(shí)際使用時(shí),可以設(shè)置采樣率和判斷倆像素是否合并的方向差。我們知道,檢測(cè)圖像中的直線其實(shí)就是尋找圖像中梯度變化較大的像素。因此,梯度和圖像的level-line是LSD提及的兩個(gè)基本概念。LSD首先計(jì)算每一個(gè)像素與level-line的夾角以構(gòu)成一個(gè)level-line場(chǎng)。然后,合并這個(gè)場(chǎng)里方向近似相同的像素,這樣可以得到一系列regions,這些 regions被稱(chēng)為 line support regions。如下圖所示。


? ? 每一個(gè)line support region其實(shí)就是一組像素,它也是直線段(line segment)的候選。同時(shí),對(duì)于這個(gè)line support region,我們可以觀察它的最小外接矩形。直觀上來(lái)講,當(dāng)一組像素構(gòu)成的區(qū)域,特別細(xì)長(zhǎng)時(shí),那么這組像素更加可能是直線段。基于此,作者還統(tǒng)計(jì)了line support region的最小外接矩形的主方向。line support region中的一個(gè)像素的level-line 角度與最小外接矩形的主方向的角度差在容忍度(tolerance)2τ內(nèi)的話(huà),那么這個(gè)點(diǎn)被稱(chēng)作"aligned point"。作者統(tǒng)計(jì)最小外接矩形內(nèi)的所有像素?cái)?shù)和其內(nèi)的alinedg points數(shù),用來(lái)判定這個(gè)line support region是否是一個(gè)直線段。判定的準(zhǔn)則使用的是“a contrario approach”和“Helmholtz principle”方法。在這里,aligned ?points的數(shù)量是我們感興趣的信息。因此作者考慮如下假設(shè):aligned points越多,那么region越可能是直線段。對(duì)于一副圖像i和一個(gè)矩形r,記k(i,r)為aligned points的數(shù)量,n(r)為矩形r內(nèi)的總像素?cái)?shù)。那么,我們希望能夠看到:

? ? ? 其中,Ntest是所有要考慮的矩形的數(shù)量。PH0是針對(duì) contrario model H0的一個(gè)概率。I是在H0模型下的隨機(jī)圖像。在這篇文章中,作者用H0的模型,主要有以下兩個(gè)屬性:

? ? ? ?(1){LLA(j)},其中j是像素,是一由一組隨機(jī)變量組成;(2)LLA(j)在[0,2π]上均勻分布。

? ? ? ?因此,判斷一個(gè)像素是不是aligned point可以記作概率:

? ? ? ? ? p =?τ/π

? ? ? ?這樣,再通過(guò)誤差控制,最終的直線段檢測(cè)算法如下:


? ? ?在上述算法中,還有兩個(gè)要點(diǎn)我們沒(méi)有解釋。一是line support region具體是怎么得到了,二是怎樣進(jìn)行誤差控制的。

? ? 前面我們說(shuō)過(guò),line support region是通過(guò)合并方向近似相同的像素得到。其實(shí)在這里,這個(gè)合并的過(guò)程更多的是依賴(lài)于區(qū)域生長(zhǎng)算法。對(duì)于一個(gè)level-line 場(chǎng)LLA,種子像素P,和容忍度?τ。我們 可以通過(guò)簡(jiǎn)單的區(qū)域生長(zhǎng)算法來(lái)得到line support region,具體的算法過(guò)程參考論文里給出的步驟吧。


? ? ?至于NFA(the number of false alarms)計(jì)算,作者使用如下公式計(jì)算:


? ?其中,N和M是采樣過(guò)后圖像的列和行,B(n,k,p)是一個(gè)二項(xiàng)分布。n依舊是矩形內(nèi)所有像素?cái)?shù),k是矩形內(nèi)的所有p-aligned point數(shù)。此處的p-aligned point是指和矩形的主方向在容忍度pπ下方向相同的像素。如果,那么可以認(rèn)為結(jié)果有效。

? ? ? ? ?在實(shí)際使用作者的源碼時(shí),可以調(diào)整lsd函數(shù)中的scale來(lái)調(diào)整圖像采樣率。此外,合并角度代碼里默認(rèn)是22.5度。圖像越小,角度越小,得到的結(jié)果越少。不過(guò)當(dāng)圖像采樣不同時(shí),在同一位置可能得到差異特別大的直線段,這個(gè)暫時(shí)不知道是什么造成的。

? ? ? ?一個(gè)比較迷人的結(jié)果:

?




LSD:一種直線檢測(cè)算法簡(jiǎn)介

原文地址:http://blog.csdn.net/carson2005/article/details/9326847


申明:本文是筆者在閱讀了相應(yīng)的英文文獻(xiàn)后,翻譯整理所得,原文為:Rafael Grompone von Gioi, LSD: a Line Segment Detector


????LSD是一種直線檢測(cè)分割算法,它能在線性的時(shí)間內(nèi)得出亞像素級(jí)精度的檢測(cè)結(jié)果。該算法被設(shè)計(jì)成可以在任何數(shù)字圖像上都無(wú)需參數(shù)調(diào)節(jié)。它可以自己控制誤檢的數(shù)量:平均而言,每張圖有一個(gè)誤檢。

相關(guān)知識(shí)介紹

LSD的目標(biāo)在于檢測(cè)圖像中局部的直的輪廓。這也是我們稱(chēng)之為直線分割的原因。輪廓是圖像中的某些特殊區(qū)域,在這些區(qū)域,圖像的灰度從黑到白或者從白到黑的劇烈變化。因此,梯度和level-line是兩個(gè)重要的感念,如下圖所示:













總結(jié)

以上是生活随笔為你收集整理的【转】 LSD(Line Segment Detector) 直线段检测算法学习~的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。