(附代碼)在線Demo可試用 | 手機(jī)實(shí)時圖像直線描邊,速度不亞于目標(biāo)檢測
點(diǎn)擊左上方藍(lán)字關(guān)注我們

轉(zhuǎn)載自 | 量子位

線段是計(jì)算機(jī)建立視覺認(rèn)知的基礎(chǔ)元素,利用LSD可以快速檢測圖像中的直線段,從而根據(jù)圖像的幾何特征設(shè)計(jì)算法,快速確定目標(biāo)區(qū)域。

△幾種不同的線段檢測模型效果
雖然之前的線段檢測模型也能做到實(shí)時性,但往往只有在計(jì)算性能不錯的GPU上才能實(shí)現(xiàn)。
隨著機(jī)器人用途的多樣化,現(xiàn)在就連移動設(shè)備(如手機(jī))和嵌入式設(shè)備(機(jī)器人)也希望能搭載線段檢測模型,為機(jī)器人視覺研究做準(zhǔn)備。
為了滿足這些需求,一個名為M-LSD的移動設(shè)備實(shí)時線段檢測模型出現(xiàn)了。

據(jù)作者表示,這是首個能在移動設(shè)備上運(yùn)行的線段檢測模型,目前已開源。
采用單個模塊,手機(jī)實(shí)時預(yù)測線段
此前,線段檢測之所以復(fù)雜,是因?yàn)樗枰玫胶芏嗄K來預(yù)測圖片中的線段。
如下圖,藍(lán)色部分是之前的主流線段檢測模型,這些模型的計(jì)算量和類型太大,結(jié)構(gòu)還都基于大型模型構(gòu)造,如基于ResNet50構(gòu)建的FPN網(wǎng)絡(luò)、殘差U-Net……
這些模型,往往需要對圖像進(jìn)行多個模塊的變換,最終才生成線段預(yù)測的結(jié)果。

然而M-LSD決定只用一個模塊,直接生成center/displacement map,從而一步到位預(yù)測圖像中的線段,極大地降低模型大小。
事實(shí)上,這個模型也確實(shí)非常?。?~11層基于MobileNet改編,12~16層則是一個自頂向下結(jié)構(gòu)。
沒錯,一共也才16層結(jié)構(gòu),只相當(dāng)于大型線段檢測模型體積的2.5%。

據(jù)論文介紹,相比于其他大型模型(圓圈大小表示模型大?。?/span>,M-LSD能在線段檢測精度幾乎保持不變的情況下,將模型運(yùn)行速度提升至原來的2.3倍+。

從圖中可見,作者們推出了M-LSD和M-LSD-tiny兩個模型,都可以在安卓和蘋果機(jī)上實(shí)時運(yùn)行。
其中,M-LSD-tiny最快能以56.8FPS和48.6FPS的速度在手機(jī)上實(shí)時運(yùn)行。

沒錯,現(xiàn)在AI在手機(jī)上給家具直線描邊的速度,可能比你還快。
而且只要是直線物體,它都能快速地將輪廓提取出來,就像是我們快速勾勒草圖一樣。
現(xiàn)在你也可以用手機(jī)試一試(項(xiàng)目地址見文末)。
還有網(wǎng)頁版在線demo
為了方便效果展示,作者們還推出了一個網(wǎng)頁版demo,基于Python的flask框架開發(fā)。

打開這個在線demo(傳送門見文末)后,就可以在線上傳你想要檢測線段的圖片了。

由于是在網(wǎng)頁上運(yùn)行的,而且生成模型用的是M-LSD,因此檢測速度無法達(dá)到手機(jī)上的實(shí)時檢測效果(手機(jī)版M-LSD檢測速度在12.7~26FPS左右)。
不過,網(wǎng)頁版M-LSD生成一張線段檢測圖片,也只需要2.5秒左右。

我們先上傳一張室內(nèi)設(shè)計(jì)的圖片試試。

效果確實(shí)不錯,直線結(jié)構(gòu)的部分都被勾勒了出來。
不過,線段檢測的效果也會出現(xiàn)一些小bug。
例如在圖中直線不夠明確的時候,容易出現(xiàn)某些線段“漂移”的情況。

在線「線段檢測」網(wǎng)頁Demo:
https://gradio.app/g/AK391/mlsd
論文地址:
https://arxiv.org/abs/2106.00186
項(xiàng)目地址:
https://github.com/navervision/mlsd
END
整理不易,點(diǎn)贊三連↓
