用于实时实例分割的Deep Snake算法
? 第一部分:創(chuàng)新及其優(yōu)點(diǎn)
? 第二部分:算法原理
? 第三部分:實(shí)驗(yàn)過程
? 第四部分:程序邏輯
?
1?創(chuàng)新及其優(yōu)點(diǎn)
Deep Snake算法建立在傳統(tǒng)Snake算法的基礎(chǔ)上,將snake算法做成了輪廓結(jié)構(gòu)化特征學(xué)習(xí)的方法,使用了循環(huán)卷積取得了比通用的圖卷積能更好的挖掘輪廓的周期圖結(jié)構(gòu)。
? Deep Snake算法克服了建立在圖像檢測器給出便捷方框不準(zhǔn)確造成實(shí)例分割產(chǎn)生誤差的缺陷;優(yōu)化了將圖像邊框表示成密集二進(jìn)制帶來復(fù)雜的后期處理的缺點(diǎn);同時相比在RGB圖中進(jìn)行輪廓回歸更充分的利用了輪廓的特殊拓?fù)洹?/span>
?
2 算法原理
?
snake是一種主動輪廓模型,它需要一個初始輪廓,以其為輸入進(jìn)行逐步迭代,從而達(dá)到調(diào)整圖像輪廓使其更精確的目的。
snake在逐步迭代優(yōu)化過程中的目標(biāo)是能量函數(shù)最小化,這個能量函數(shù)值輪廓能量和圖像能量的總和,其能量函數(shù)如下:
??? ?指當(dāng)前輪廓本身能量(內(nèi)部能量), 指圖像輪廓對應(yīng)點(diǎn)的能量(外部能量),?表示其方差的相關(guān)項。其中內(nèi)部能量由兩部分組成:一階導(dǎo)數(shù)的模(稱為彈性能量)和二階導(dǎo)數(shù)的模(彎曲能量)
其中內(nèi)部能量由兩部分組成:一階導(dǎo)數(shù)的模(稱為彈性能量)和二階導(dǎo)數(shù)的模(彎曲能量)[這里需要記住為什么],在迭代過程中,彈性能量能快速的把輪廓壓縮成光滑的圓;彎曲能量將輪廓拉成光滑的曲線或直線,他們的作用是保持輪廓的光滑和連續(xù)性。通常alpha越大,輪廓收斂越快;beta越大,輪廓越光滑。
外部圖像能量分三種:線性能量(通常更亮度相關(guān));邊緣能量(圖像的邊緣組成);終端能量。在迭代優(yōu)化過程中,外部能量會使輪廓朝(灰度)高梯度位置靠近。而通常梯度高的位置都是圖像中前景與背景的界限或者物體與物體之間、物體內(nèi)部不同部分的界限,適合用于分割。在逐步迭代優(yōu)化過程中的目標(biāo)是能量函數(shù)最小化,這就是snake算法調(diào)整實(shí)例輪廓的方法和過程。
?
Deep Snake與snake算法類似,分割實(shí)例分為兩步:初始化輪廓和輪廓變形,然后進(jìn)行迭代使得實(shí)列分割邊界更加準(zhǔn)確。
? ? ? (1) 初始化輪廓:檢測包圍框初始邊緣上的四個中性點(diǎn)的菱形輪廓,然后以菱形為輸入,輸出四個頂點(diǎn)到對象極值的偏量,構(gòu)造出八邊形作為初始輪廓。
? ? ? (2) 輪廓變形:先沿初始化八角形輪廓均勻的采樣N個點(diǎn),通過學(xué)習(xí)特征和頂點(diǎn)坐標(biāo)的級聯(lián)[F(xi):xi](F是特征映射)構(gòu)造頂點(diǎn)xi得輸入特征。在給定輪廓上定義的輸入特征后移入特征學(xué)習(xí)的循環(huán)卷積,得到輪廓的輸出特征并預(yù)測輪廓點(diǎn)與目標(biāo)點(diǎn)之間的偏移,最后進(jìn)行不斷迭代得到實(shí)例的更優(yōu)輪廓。從而解決了傳統(tǒng)snake算法中只能達(dá)到局部最優(yōu)的缺點(diǎn)
不同于snake算法的是,snake算法將頂點(diǎn)的坐標(biāo)作為一組變量并將變量用于優(yōu)化能量函數(shù)中使其中最小進(jìn)而達(dá)到調(diào)整輪廓的目的,而deep snake直接學(xué)會以端到端的方式進(jìn)行輪廓變形.
?
循環(huán)卷積不同于線性卷積的一種卷積運(yùn)算,是周期卷積的一種。其公式如下:
?
循環(huán)卷積
RN(n)代表只取長度為n的主值序列,其計算過程如下:
藍(lán)色為輸入特征、黃色為核函數(shù),令右圖所示狀態(tài)為
n=0,將輸入特征變量與核函數(shù)變量做乘積得到輸出
變量y(0),當(dāng)n=1時,將核函數(shù)逆時針旋轉(zhuǎn)一個單位得
到y(1),不斷旋轉(zhuǎn)直到算出y(n),這樣就算出了輸入輪
廓的輸出特征,最后根據(jù)輸出特征對初試輪廓進(jìn)行
調(diào)整,從而完成deep snake算法第二步。
值得一提的是由于實(shí)例輪廓多是封閉的回路,因此這里運(yùn)用循環(huán)卷積比一般卷積更能運(yùn)用這種特殊的拓?fù)浣Y(jié)構(gòu)。
?
3 實(shí)驗(yàn)過程
4 程序邏輯
?
以上就是本人對deep Snake相關(guān)知識點(diǎn)的創(chuàng)新、原理、實(shí)驗(yàn)過程、程序邏輯的個人看法,歡迎指正。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的用于实时实例分割的Deep Snake算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工具方法:java读取Excel合并单元
- 下一篇: nginx源码安装及配置https自签名