一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

直線檢測算法匯總

新機(jī)器視覺 ? 來源:新機(jī)器視覺 ? 作者:新機(jī)器視覺 ? 2022-11-25 17:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、場景需求

計(jì)算機(jī)視覺領(lǐng)域,我們經(jīng)常需要做一些特殊的任務(wù),而這些任務(wù)中經(jīng)常會(huì)用到直線檢測算法,比如車道線檢測、長度測量等。盡管直線檢測的任務(wù)看起來比較簡單,但是在具體的應(yīng)用過程中,你會(huì)發(fā)現(xiàn)這里面還是有很大的優(yōu)化空間,本文對常用的一些比較經(jīng)典的直線檢測算法進(jìn)行匯總

2、Hough_line直線檢測算法

Hough變換是一個(gè)比較有名的計(jì)算機(jī)視覺處理算法,該算法可以用來做很多的任務(wù),常用的任務(wù)包括直線檢測、圓檢測、橢圓檢測等,下面我們將對該算法進(jìn)行簡單的分析并進(jìn)行代碼實(shí)戰(zhàn)。

2.1 Hough_line實(shí)現(xiàn)步驟

步驟1-首先,它創(chuàng)建一個(gè)二維數(shù)組或累加器(用于保存兩個(gè)參數(shù)的值),并將其初始設(shè)置為零;

步驟2-用r來表示行,用θ來表示列;

步驟3-數(shù)組的大小取決于你所需要的精度。假設(shè)您希望角度的精度為1度,則需要180列(直線的最大度數(shù)為180);

步驟4-對于r,可能的最大距離是圖像的對角線長度。因此,取一個(gè)像素精度,行數(shù)可以是圖像的對角線長度。

2.2 Hough_line代碼實(shí)戰(zhàn)

829e28d6-6b17-11ed-8abf-dac502259ad0.png

82d93ad4-6b17-11ed-8abf-dac502259ad0.png

2.3 效果展示與分析

830954b2-6b17-11ed-8abf-dac502259ad0.png

上圖展示了一些Hough_line算法的直線檢測效果。為了驗(yàn)證該算法的有效性,我選擇了3個(gè)不同的具有挑戰(zhàn)性的場景,建筑物、答題卡和門。通過觀察上面的結(jié)果我們可以知道該算法基本上能夠檢測出圖中的直線,但是檢測的結(jié)果并不是很好,有很多重復(fù)和漏檢的情況。除此之外,該算法最大的缺點(diǎn)就是需要根據(jù)圖片去調(diào)節(jié)參數(shù),關(guān)鍵的參數(shù)是lines = cv2.HoughLines(edges,1,np.pi/180, 200) 中的200,該值設(shè)置的越大圖片中檢測出來的直線數(shù)量會(huì)越少,你需要根據(jù)你自己的測試場景進(jìn)行調(diào)節(jié)。

2.4 HoughP_line代碼實(shí)戰(zhàn)

HoughP_line是Hough_line算法的改進(jìn)版,具有更快的速度和更好的效果。

83406100-6b17-11ed-8abf-dac502259ad0.png

2.5 效果展示與分析

83ecd4c6-6b17-11ed-8abf-dac502259ad0.png

上圖展示了一些HoughP_line算法的直線檢測效果。上圖都是使用lines = cv2.HoughLinesP(edges,1,np.pi/180, 80, 30, 10) 這個(gè)固定的參數(shù)來計(jì)算出結(jié)果的,通過觀察我們可以發(fā)現(xiàn),HoughLinesP不僅使用起來比較方便,基本上不需要進(jìn)行調(diào)節(jié)參數(shù);除此之外,該算法能夠獲得更好的直線檢測效果。因此,當(dāng)你想用Hough直線檢測算法,建議你優(yōu)先使用HoughP_line算法。

3、LSD直線檢測算法

LSD是opencv中集成的一個(gè)直線檢測算法,該算法的直線檢測效果優(yōu)于Hough算法,而且具有較好的檢測速度,推薦使用。

3.1 LSD算法簡介

LSD快速直線檢測算法是由Rafael Grompone、Jeremie Jackbowicz、Jean-Michel Morel于2010年發(fā)表在PAMI上的文獻(xiàn)《LSD:a Line Segment Dectctor》中提出的,該算法時(shí)間復(fù)雜度較霍夫變換低。LSD算法通過對圖像局部分析,得出直線的像素點(diǎn)集,再通過假設(shè)參數(shù)進(jìn)行驗(yàn)證求解,將像素點(diǎn)集合與誤差控制集合合并,進(jìn)而自適應(yīng)控制誤檢的數(shù)量 。一般來說,要檢測圖像中的直線,最基本的思想是檢測圖像中梯度變化較大的像素點(diǎn)集,LSD算法也正是利用梯度信息和行列線(level-line)來進(jìn)行直線檢測的。

3.2 LSD代碼實(shí)戰(zhàn)

84072df8-6b17-11ed-8abf-dac502259ad0.png

3.3 效果展示與分析

845bb0ee-6b17-11ed-8abf-dac502259ad0.png

上圖展示了一些LSD算法的直線檢測效果。通過觀察上面的結(jié)果,我們可以發(fā)現(xiàn)該算法的檢測結(jié)果遠(yuǎn)遠(yuǎn)優(yōu)于Hough和HoughP算法;除此之外,上述的檢測結(jié)果都是使用LSD算法的默認(rèn)參數(shù)進(jìn)行執(zhí)行,如果針對特定的參數(shù)進(jìn)行調(diào)節(jié),可以取得更好的結(jié)果,這種情況一般是在你的特定需求場景中對默認(rèn)的一些參數(shù)進(jìn)行微調(diào)操作,往往能獲得意想不到的結(jié)果。

846fa2a2-6b17-11ed-8abf-dac502259ad0.png

上圖展示了LSD直線檢測算法的一些超參數(shù),具體的細(xì)節(jié)請看該鏈接。需要說明的是該算法具有3中不同的模式,具體的模式如下圖所示,默認(rèn)情況下使用模式2(即1),但是經(jīng)過測試我發(fā)現(xiàn)模式1(即0)通常輸出的效果會(huì)更好一些,具體的情況需要你根據(jù)你的場景進(jìn)行分析。

4、FLD直線檢測算法

4.1 FLD算法簡介

FLD直線檢測算法是在該論文中被引入的,該論文中嘗試著使用直線特征來代替原始的SURF點(diǎn)特征進(jìn)行建筑物識(shí)別。與點(diǎn)特征進(jìn)行相比,線特征具有更容易發(fā)現(xiàn)和更好的魯棒性,線特征基本上不會(huì)受到光照、遮擋、視角變化的影響。下面展示了該算法的直線檢測效果,從圖中我們可以看出,線特征比點(diǎn)特征更好一些。

4.2 FLD算法代碼實(shí)戰(zhàn)

84c298fe-6b17-11ed-8abf-dac502259ad0.png

85007d68-6b17-11ed-8abf-dac502259ad0.png

上圖展示了FLD直線檢測算法的檢測效果。通過觀察我們可以發(fā)現(xiàn)該算法具有很好的檢測效果,基本上可以檢測出圖中所有的直線,和LSD的性能類似,具體使用哪種算法需要你根據(jù)自己的應(yīng)用場景去進(jìn)行選擇。

5、EDlines直線檢測算法

5.1 EDlines算法簡介

EDlines直線檢測算法是在該論文中提出的。本文提出了一個(gè)快速、無參數(shù)的線段檢測器,命名為EDLines (Akinlar and Topal, 2011),它產(chǎn)生強(qiáng)大的和準(zhǔn)確的結(jié)果,比最快的已知線段檢測器速度更快,達(dá)到11倍;換句話說,the LSD by Grompone von Gioi et al. (2008a,b, 2010). 我們的探測器還包括一個(gè)線的驗(yàn)證步驟定于亥姆霍茲原理Helmholtz principle (Desolneux et al., 2008),這讓它控制錯(cuò)誤檢測的數(shù)量。EDLines得到的結(jié)果,我們看到的是,LSD非常相似,有所有主要的線段檢測,并有極少數(shù)誤報(bào)。此外, EDLines運(yùn)行實(shí)時(shí)以炫目的速度為9.45毫秒,約10倍的速度比LSD對給定的圖像。

5.2 EDlines算法實(shí)現(xiàn)步驟

步驟1-首先,給定一個(gè)灰度圖像,運(yùn)行新的邊緣檢測、邊緣繪制(ED)算法,產(chǎn)生一套干凈的,像素相鄰的鏈,我們稱之為邊緣。邊緣線段直觀地反應(yīng)對象的邊界。

步驟2-然后,利用直線度準(zhǔn)則,即最小二乘直線擬合法,從生成的像素鏈中提取線段。

步驟3-最后,線的驗(yàn)證步驟定于亥姆霍茲原理Helmholtz principle (Desolneux et al., 2008; Grompone von Gioi et al.,2008a)是用來消除虛假線段的檢測。

855dad6c-6b17-11ed-8abf-dac502259ad0.png

上圖展示了EDlines直線檢測算法的檢測效果。通過上面的觀察,我們可以發(fā)現(xiàn):1)該算法能獲得和LSD類似的檢測結(jié)果;2)該算法抑制了一部分小的誤檢的直線;3)該算法具有更快的運(yùn)行速度,是LSD的10倍左右。

6、LSWMS直線檢測算法

6.1 LSWMS算法簡介

LSWMS是一個(gè)直線檢測算法。本文介紹了一種精確且實(shí)時(shí)的直線檢測方法。以前的直線檢測方法都沒有使用到圖像場景的先驗(yàn)知識(shí),因而不需要對輸入的參數(shù)進(jìn)行微調(diào)。該算法在檢測精度和檢測速度之間進(jìn)行了折中,文中使用了一個(gè)高效的采樣方法來進(jìn)行加速處理,然后,文中使用一種快速的直線增長算法基于bresenham算法用改進(jìn)的mean-shift算法提供精確的線段,同時(shí)保持穩(wěn)健對抗噪音。測試了該策略的性能對于各種各樣的圖像,將其結(jié)果與流行的最新線段檢測方法。結(jié)果表明,我們的建議優(yōu)于這些工作同時(shí)考慮了結(jié)果和處理速度。

上圖展示的是LSWMS論文中的結(jié)果。由于作者提供的代碼需要在Ubuntu下編譯,我沒有去做這個(gè)工作,如果你感興趣你可以去運(yùn)行在本文的3張測試圖片上面的效果。

7、CannyLines直線檢測算法

7.1 CannyLines算法簡介

CannyLines算法在該論文中被提出。本文提出了一種魯棒的線段檢測算法,有效地檢測出輸入圖像中的線段。首先,提出了一種無參數(shù)canny算子cannypf,通過自適應(yīng)地設(shè)置傳統(tǒng)canny算子的低閾值和高閾值,從輸入圖像中穩(wěn)健地提取邊緣映射。其次,提出了直接從邊緣地圖中提取共線點(diǎn)簇的有效像素連接和分割技術(shù),并基于最小二乘法對初始線段進(jìn)行擬合。第三,通過有效的擴(kuò)展和合并,生成更長、更完整的線段。最后,根據(jù)helmholtz原理對檢測到的所有線段進(jìn)行了驗(yàn)證,該原理同時(shí)考慮了梯度方向和幅度信息。在一組有代表性的圖像上的實(shí)驗(yàn)結(jié)果表明,與常用的兩種線段檢測器lsd和edline相比,我們提出的cannyline線段檢測器能夠提取出更有意義的線段,特別是在人造場景中。

85efc422-6b17-11ed-8abf-dac502259ad0.png

上圖展示了CannyLines直線檢測算法的檢測效果。通過觀察上圖我們可以發(fā)現(xiàn)該算法能夠獲得更加準(zhǔn)確的檢測結(jié)果,具有更少的誤檢。該算法主要是提高了邊緣檢測的效果,具體的效果如下所示:

8、MCMLSD直線檢測算法

8.1 MCMLSD算法簡介

MCMLSD算法出自于該論文。論文中提出了一個(gè)融合兩者優(yōu)點(diǎn)的概率算法。在第一階段,使用全局概率hough方法。在第二階段,在圖像域中分析每個(gè)檢測到的行,以定位在霍夫圖中生成峰值的線段。通過將搜索限制在一條直線上,線段的分布線上的點(diǎn)序列可以被建模為馬爾可夫鏈和概率最優(yōu)標(biāo)簽使用標(biāo)準(zhǔn)動(dòng)態(tài)規(guī)劃算法精確計(jì)算,在線性時(shí)間內(nèi)。馬爾可夫假設(shè)同時(shí)也產(chǎn)生了一種直觀的排名方法,它使用估計(jì)期望值的邊際后驗(yàn)概率線段上正確標(biāo)記的點(diǎn)的數(shù)目。評估由此產(chǎn)生的馬爾可夫鏈邊緣線段檢測器(mcmlsd)我們開發(fā)并應(yīng)用了一種新的定量方法控制分段不足和分段過量的評估方法。在YorkUrbanDB數(shù)據(jù)集的評價(jià)結(jié)果表明,所提出的MCMLSD方法優(yōu)于以相當(dāng)大的優(yōu)勢達(dá)到最先進(jìn)水平。

8654384e-6b17-11ed-8abf-dac502259ad0.png

上圖展示了MCMLSD算法的檢測效果。通過上面的觀察,我們可以發(fā)現(xiàn)該算法取得了很好的檢測效果,但是美中不足的是該算法的運(yùn)行速度比較慢,可能也和matlab代碼有關(guān)吧。

9、LSM直線檢測算法

9.1 LSM算法簡介

LSM算法不僅僅是一個(gè)直線檢測算法,同時(shí)也是一個(gè)直線合并算法。論文中提出了一種合并這些斷開的線段的算法,以恢復(fù)原始的感知準(zhǔn)確的線段。該算法根據(jù)角度和空間接近度對線段進(jìn)行分組。然后將每組中滿足新的自適應(yīng)合并準(zhǔn)則的線段對依次合并成一條線段。重復(fù)此過程,直到不再合并行段。我們還提出了一種定量比較線段檢測算法的方法。在york-urban數(shù)據(jù)集上的結(jié)果表明,與最新的線段檢測算法相比,我們的合并線段更接近人類標(biāo)記的地面真線段。

上圖展示了直線檢測算法LSM的檢測效果。左邊一列表示的是LSD的檢測結(jié)果,右邊一列表示的是LSM算法的優(yōu)化效果,圖中不同的顏色表示不同的直線。通過上面的觀察,我們可以發(fā)現(xiàn)LSM可以將一些間斷的直線合并成一條更長的直線,這在現(xiàn)實(shí)場景中具有很大的用處,但是我們也會(huì)發(fā)現(xiàn)LSM算法會(huì)錯(cuò)誤的將一些直線進(jìn)行合并,會(huì)造成一些誤差。

10、總結(jié)

本文對比較經(jīng)典的直線檢測算法進(jìn)行了總結(jié)和分析。對于直線檢測這個(gè)任務(wù)而言,它在現(xiàn)實(shí)場景中具有很多的應(yīng)用,對于一個(gè)具體的場景,你可以根據(jù)自己的需要從本文中選擇出一個(gè)合適的直線檢測算法進(jìn)行應(yīng)用,如果你的場景比較簡單,HoughP_line算法可能就可以滿足你的要求;如果你同時(shí)對速度和精度有要求,可以選擇使用EDlines等;如果你需要獲得盡可能長的直線,那么建議你使用LSM直線檢測算法??偠灾?,最適合你的場景的算法才是最好的算法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4709

    瀏覽量

    95354
  • HOUGH
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    9487
  • 直線檢測
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1772

原文標(biāo)題:直線檢測算法匯總

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于RK3576開發(fā)板的車輛檢測算法

    車輛檢測是一種基于深度學(xué)習(xí)的對人進(jìn)行檢測定位的目標(biāo)檢測,能廣泛的用于園區(qū)管理、交通分析等多種場景,是違停識(shí)別、堵車識(shí)別、車流統(tǒng)計(jì)等多種算法的基石算法
    的頭像 發(fā)表于 05-08 17:34 ?910次閱讀
    基于RK3576開發(fā)板的車輛<b class='flag-5'>檢測算法</b>

    基于RK3576開發(fā)板的安全帽檢測算法

    安全帽佩戴檢測是工地、生產(chǎn)安全、安防的重中之重,但人為主觀檢測的方式時(shí)效性差且不能全程監(jiān)控。AI技術(shù)的日漸成熟催生了安全帽佩戴檢測方案,成為了監(jiān)督佩戴安全帽的利器。本安全帽檢測算法是一
    的頭像 發(fā)表于 05-08 16:59 ?1583次閱讀
    基于RK3576開發(fā)板的安全帽<b class='flag-5'>檢測算法</b>

    基于RK3576開發(fā)板的人員檢測算法

    展示了RK3576開發(fā)板的人員檢測算法例程及API說明
    的頭像 發(fā)表于 05-07 17:33 ?292次閱讀
    基于RK3576開發(fā)板的人員<b class='flag-5'>檢測算法</b>

    基于RV1126開發(fā)板的車輛檢測算法開發(fā)

    車輛檢測是一種基于深度學(xué)習(xí)的對人進(jìn)行檢測定位的目標(biāo)檢測,能廣泛的用于園區(qū)管理、交通分析等多種場景,是違停識(shí)別、堵車識(shí)別、車流統(tǒng)計(jì)等多種算法的基石算法
    的頭像 發(fā)表于 04-14 16:00 ?292次閱讀
    基于RV1126開發(fā)板的車輛<b class='flag-5'>檢測算法</b>開發(fā)

    基于RV1126開發(fā)板的安全帽檢測算法開發(fā)

    安全帽佩戴檢測是工地、生產(chǎn)安全、安防的重中之重,但人為主觀檢測的方式時(shí)效性差且不能全程監(jiān)控。AI技術(shù)的日漸成熟催生了安全帽佩戴檢測方案,成為了監(jiān)督佩戴安全帽的利器。本安全帽檢測算法是一
    的頭像 發(fā)表于 04-14 15:10 ?283次閱讀
    基于RV1126開發(fā)板的安全帽<b class='flag-5'>檢測算法</b>開發(fā)

    基于RV1126開發(fā)板的人員檢測算法開發(fā)

    在RV1126上開發(fā)人員檢測AI算法組件
    的頭像 發(fā)表于 04-14 13:56 ?310次閱讀
    基于RV1126開發(fā)板的人員<b class='flag-5'>檢測算法</b>開發(fā)

    基于RV1126開發(fā)板的人臉檢測算法開發(fā)

    在RV1126上開發(fā)人臉檢測算法組件
    的頭像 發(fā)表于 04-14 10:19 ?324次閱讀
    基于RV1126開發(fā)板的人臉<b class='flag-5'>檢測算法</b>開發(fā)

    軒轅智駕紅外目標(biāo)檢測算法在汽車領(lǐng)域的應(yīng)用

    在 AI 技術(shù)蓬勃發(fā)展的當(dāng)下,目標(biāo)檢測算法取得了重大突破,其中紅外目標(biāo)檢測算法更是在汽車行業(yè)掀起了波瀾壯闊的變革,從根本上重塑著汽車的安全性能、駕駛體驗(yàn)與產(chǎn)業(yè)生態(tài)。
    的頭像 發(fā)表于 03-27 15:55 ?416次閱讀

    睿創(chuàng)微納推出新一代目標(biāo)檢測算法

    隨著AI技術(shù)的發(fā)展,目標(biāo)檢測算法也迎來重大突破。睿創(chuàng)微納作為熱成像領(lǐng)軍者,憑借深厚的技術(shù)積累與創(chuàng)新能力,結(jié)合AI技術(shù)推出新一代目標(biāo)檢測算法,以三大核心技術(shù)帶來AI視覺感知全場景解決方案突破,助力各產(chǎn)業(yè)智能化升級。
    的頭像 發(fā)表于 03-20 13:49 ?431次閱讀

    全長直線度和米直線度如何測量?

    關(guān)鍵字:全長直線度,米直線度,直線檢測,直線度測量儀,在線直線
    發(fā)表于 01-16 14:19

    不銹鋼管在線直線度測量儀 平直度、彎曲度檢測

    不銹鋼管應(yīng)用場景很多,在線直線度測量儀是保障其在各種應(yīng)用中直線度(平直度、彎曲度、直度)尺寸合格的重要設(shè)備。它主要有2種應(yīng)用方法:先檢測,發(fā)現(xiàn)不合格品后進(jìn)行矯直;先矯直,矯直后的產(chǎn)品進(jìn)行檢測
    發(fā)表于 01-16 14:16

    如何制定一套優(yōu)質(zhì)的工業(yè)視覺檢測算法方案?

    很難與當(dāng)下主流的AI平臺(tái)工具配型,或者是通過單一算法模型進(jìn)行訓(xùn)練,通常情況下,工業(yè)視覺檢測項(xiàng)目面臨著一系列獨(dú)特的難點(diǎn)與挑戰(zhàn)。比如:算法實(shí)現(xiàn)難。工業(yè)環(huán)境中的背景往往非
    的頭像 發(fā)表于 11-14 01:05 ?2537次閱讀
    如何制定一套優(yōu)質(zhì)的工業(yè)視覺<b class='flag-5'>檢測算法</b>方案?

    bq2750x系列中的Impedance Track?電池電量監(jiān)測算法的理論及實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《bq2750x系列中的Impedance Track?電池電量監(jiān)測算法的理論及實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 08-30 10:21 ?1次下載
    bq2750x系列中的Impedance Track?電池電量監(jiān)<b class='flag-5'>測算法</b>的理論及實(shí)現(xiàn)

    旗晟機(jī)器人環(huán)境檢測算法有哪些?

    硬件支撐,更離不開強(qiáng)大的算法庫作為軟件核心,二者相輔相成,缺一不可。今天就來了解旗晟機(jī)器人環(huán)境檢測算法。 1、設(shè)施異常監(jiān)測 通過集成高精度傳感器與智能圖像識(shí)別技術(shù)。它不僅能檢測A字梯是否存在變形,還能精確評估梯腳
    的頭像 發(fā)表于 07-19 17:54 ?865次閱讀
    旗晟機(jī)器人環(huán)境<b class='flag-5'>檢測算法</b>有哪些?

    opencv圖像識(shí)別有什么算法

    圖像識(shí)別算法: 邊緣檢測 :邊緣檢測是圖像識(shí)別中的基本步驟之一,用于識(shí)別圖像中的邊緣。常見的邊緣檢測算法有Canny邊緣檢測器、Sobel邊
    的頭像 發(fā)表于 07-16 10:40 ?1887次閱讀