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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

sift算法_单应性Homograph估计:从传统算法到深度学习

發(fā)布時(shí)間:2025/3/15 pytorch 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sift算法_单应性Homograph估计:从传统算法到深度学习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方“CVer”,選擇加"星標(biāo)"置頂

重磅干貨,第一時(shí)間送達(dá)

本文者:白裳

https://zhuanlan.zhihu.com/p/74597564

本文已由原作者授權(quán),不得擅自二次轉(zhuǎn)載

單應(yīng)性原理被廣泛應(yīng)用于圖像配準(zhǔn),全景拼接,機(jī)器人定位SLAM,AR增強(qiáng)現(xiàn)實(shí)等領(lǐng)域。這篇文章從基礎(chǔ)圖像坐標(biāo)知識(shí)系為起點(diǎn),講解圖像變換與坐標(biāo)系的關(guān)系,介紹單應(yīng)性矩陣計(jì)算方法,并分析深度學(xué)習(xí)在單應(yīng)性方向的進(jìn)展。

本文為入門級(jí)文章,希望能夠幫助讀者快速了解相關(guān)內(nèi)容。

目錄
一 圖像變換與平面坐標(biāo)系的關(guān)系
二 平面坐標(biāo)系與齊次坐標(biāo)系
三 單應(yīng)性變換
四 深度學(xué)習(xí)在單應(yīng)性方向的進(jìn)展單應(yīng)性估計(jì)在圖像拼接中的應(yīng)用

一 圖像變換與平面坐標(biāo)系的關(guān)系

  • 旋轉(zhuǎn):

將圖形圍繞原點(diǎn)??逆時(shí)針方向旋轉(zhuǎn)??角,用解析式表示為:

旋轉(zhuǎn)

寫成矩陣乘法形式:

  • 平移:

平移

但是現(xiàn)在遇到困難了,平移無(wú)法寫成和上面旋轉(zhuǎn)一樣的矩陣乘法形式。所以引入齊次坐標(biāo)??,再寫成矩陣形式:

其中??表示單位矩陣,而??表示平移向量。

那么就可以把把旋轉(zhuǎn)和平移統(tǒng)一寫在一個(gè)矩陣乘法公式中,即剛體變換:

而旋轉(zhuǎn)矩陣??是正交矩陣(??)。

剛體變換:旋轉(zhuǎn)+平移(正方形-正方形)
  • 仿射變換

其中??可以是任意2x2矩陣(與??一定是正交矩陣不同)。

仿射變換(正方形-平行四邊形)

可以看到,相比剛體變換(旋轉(zhuǎn)和平移),仿射變換除了改變目標(biāo)位置,還改變目標(biāo)的形狀,但是會(huì)保持物體的“平直性”。

不同??和??矩陣對(duì)應(yīng)的各種基本仿射變換:

  • 投影變換(單應(yīng)性變換)

投影變換(正方形-任意四邊形)

簡(jiǎn)單說(shuō),投影變換徹底改變目標(biāo)的形狀。

總結(jié)一下:

  • 剛體變換:平移+旋轉(zhuǎn),只改變物體位置,不改變物體形狀

  • 仿射變換:改變物體位置和形狀,但是保持“平直性”

  • 投影變換:徹底改變物體位置和形狀

  • 注:上圖“投影變換”應(yīng)該是“任意四邊形”

    我們來(lái)看看完整投影變換矩陣各個(gè)參數(shù)的物理含義:

    其中??代表仿射變換參數(shù),??代表平移變換參數(shù)。

    而??表示一種“變換后邊緣交點(diǎn)“關(guān)系,如:

    至于??則是一個(gè)與??相關(guān)的縮放因子。

    一般情況下都會(huì)通過(guò)歸一化使得??(原因見下文)。

    二 平面坐標(biāo)系與齊次坐標(biāo)系

    問(wèn)題來(lái)了,齊次坐標(biāo)到底是什么?

    齊次坐標(biāo)系??與常見的三維空間坐標(biāo)系??不同,只有兩個(gè)自由度:

    而??(其中??)對(duì)應(yīng)坐標(biāo)??和??的縮放尺度。當(dāng)??時(shí):

    特別的當(dāng)??時(shí),對(duì)應(yīng)無(wú)窮遠(yuǎn):

    三 單應(yīng)性變換

    • 單應(yīng)性是什么?

    此處不經(jīng)證明的給出:同一個(gè)?[無(wú)鏡頭畸變]?的相機(jī)從不同位置拍攝?[同一平面物體]?的圖像之間存在單應(yīng)性,可以用?[投影變換]?表示 。

    注意:單應(yīng)性成立是有條件的!

    簡(jiǎn)單說(shuō)就是:

    其中??是Left view圖片上的點(diǎn),??是Right view圖片上對(duì)應(yīng)的點(diǎn)。

    • 那么這個(gè)??單應(yīng)性矩陣如何求解呢?

    更一般的,每一組匹配點(diǎn)??有

    由平面坐標(biāo)與齊次坐標(biāo)對(duì)應(yīng)關(guān)系??,上式可以表示為:

    進(jìn)一步變換為:

    寫成矩陣??形式:

    也就是說(shuō)一組匹配點(diǎn)??可以獲得2組方程。

    • 單應(yīng)性矩陣8自由度

    注意觀察:單應(yīng)性矩陣??與??其實(shí)完全一樣(其中?),例如:

    即點(diǎn)??無(wú)論經(jīng)過(guò)??還是??映射,變化后都是??。

    如果使??,那么有:

    所以單應(yīng)性矩陣??雖然有9個(gè)未知數(shù),但只有8個(gè)自由度。

    在求??時(shí)一般添加約束??(也有用??約束),所以還有??共8個(gè)未知數(shù)。由于一組匹配點(diǎn)??對(duì)應(yīng)2組方程,那么只需要??組不共線的匹配點(diǎn)即可求解??的唯一解。

    XIAOMI9拍攝,有鏡頭畸變

    OpenCV已經(jīng)提供了相關(guān)API,代碼和變換結(jié)果如下。

    import im2_warp = cv2.warpPerspective(im2, H, (w, h))

    可以看到:

  • 紅框所在平面上內(nèi)容基本對(duì)齊,但受到鏡頭畸變影響無(wú)法完全對(duì)齊;

  • 平面外背景物體不符合單應(yīng)性原理,偏離很大,完全無(wú)法對(duì)齊。

    • 傳統(tǒng)方法估計(jì)單應(yīng)性矩陣

    一般傳統(tǒng)方法估計(jì)單應(yīng)性變換矩陣,需要經(jīng)過(guò)以下4個(gè)步驟:

  • 提取每張圖SIFT/SURF/FAST/ORB等特征點(diǎn)

  • 提取每個(gè)特征點(diǎn)對(duì)應(yīng)的描述子

  • 通過(guò)匹配特征點(diǎn)描述子,找到兩張圖中匹配的特征點(diǎn)對(duì)(這里可能存在錯(cuò)誤匹配)

  • 使用RANSAC算法剔除錯(cuò)誤匹配

  • 求解方程組,計(jì)算Homograph單應(yīng)性變換矩陣

  • 示例代碼如下:

    #coding:utf-8

    相關(guān)內(nèi)容網(wǎng)上資料較多,這里不再重復(fù)造輪子。需要說(shuō)明,一般情況計(jì)算出的匹配的特征點(diǎn)對(duì)??數(shù)量都有??,此時(shí)需要解超定方程組(類似于求解線性回歸)。

    四 深度學(xué)習(xí)在單應(yīng)性方向的進(jìn)展

    • HomographyNet(深度學(xué)習(xí)end2end估計(jì)單應(yīng)性變換矩陣)

    HomographyNet是發(fā)表在CVPR 2016的一種用深度學(xué)習(xí)計(jì)算單應(yīng)性變換的網(wǎng)絡(luò),即輸入兩張圖,直接輸出單應(yīng)性矩陣??。

    在之前的分析中提到,只要有4組??匹配點(diǎn)即可計(jì)算??的唯一解。

    相似的,只要有4組??也可以計(jì)算出??的唯一解:

    其中??且??。

    分析到這里,如果要計(jì)算??,網(wǎng)絡(luò)輸出可以有以下2種情況:

  • Regression:網(wǎng)絡(luò)直接輸出??共8個(gè)數(shù)值

  • 這樣設(shè)置網(wǎng)絡(luò)非常直觀,使用L2損失訓(xùn)練,測(cè)試時(shí)直接輸出8個(gè)float values,但是沒有置信度confidence。即在使用網(wǎng)絡(luò)時(shí),無(wú)法知道當(dāng)前輸出單應(yīng)性可靠程度。

    2. Classification:網(wǎng)絡(luò)輸出??共8個(gè)值的量化值+confidence

    這時(shí)將網(wǎng)絡(luò)輸出每個(gè)??和??量化成21個(gè)區(qū)間,用分類的方法判斷落在哪一個(gè)區(qū)間。訓(xùn)練時(shí)使用Softmax損失。相比回歸直接輸出數(shù)值,量化必然會(huì)產(chǎn)生誤差,但是能夠輸出分類置信度評(píng)判當(dāng)前效果好壞,更便于實(shí)際應(yīng)用。

    另外HomographyNet訓(xùn)練時(shí)數(shù)據(jù)生成方式也非常有特色。

  • 首先在隨機(jī)??位置獲取正方形圖像塊Patch A

  • 然后對(duì)正方形4個(gè)點(diǎn)進(jìn)行隨機(jī)擾動(dòng),同時(shí)獲得4組?

  • 再通過(guò)4組??計(jì)算?

  • 最后將圖像通過(guò)??變換,在變換后圖像??位置獲取正方形圖像塊Patch B

  • 那么圖像塊A和圖像塊B作為輸入,4組??作為監(jiān)督Label,進(jìn)行訓(xùn)練

    可以看到,在無(wú)法提取足夠特征點(diǎn)的弱紋理區(qū)域,HomographyNet相比傳統(tǒng)方法確實(shí)有一定的優(yōu)勢(shì):

    • Spatial Transformer Networks(直接對(duì)CNN中的卷積特征進(jìn)行變換)

    其實(shí)早在2015年,就已經(jīng)有對(duì)CNN中的特征進(jìn)行變換的STN結(jié)構(gòu)。

    假設(shè)有特征層??,經(jīng)過(guò)卷積變?yōu)??,可以在他們之間插入STN結(jié)構(gòu)。這樣就可以直接學(xué)習(xí)到從特征??上的點(diǎn)??映射到特征??對(duì)應(yīng)點(diǎn)??的仿射變換。

    其中??對(duì)應(yīng)STN中的仿射變換參數(shù)。STN直接在特征維度進(jìn)行變換,且可以插入輕松任意兩層卷積中。

    • DELF: DEep Local Features(深度學(xué)習(xí)提取特征點(diǎn)與描述子)

    之前提到傳統(tǒng)方法使用SIFT和Surf等特征點(diǎn)估計(jì)單應(yīng)性。顯然單應(yīng)性最終估計(jì)準(zhǔn)確度嚴(yán)重依賴于特征點(diǎn)和描述子性能。Google在ICCV 2017提出使用使用深度學(xué)習(xí)提取特征點(diǎn)。

    tensorflow/models/delfgithub.com

    考慮到篇幅,這里不再展開DELF,請(qǐng)有興趣的讀者自行了解相關(guān)內(nèi)容。

    下載1:動(dòng)手學(xué)深度學(xué)習(xí)

    在CVer公眾號(hào)后臺(tái)回復(fù):動(dòng)手學(xué)深度學(xué)習(xí),即可下載547頁(yè)《動(dòng)手學(xué)深度學(xué)習(xí)》電子書和源碼。該書是面向中文讀者的能運(yùn)行、可討論的深度學(xué)習(xí)教科書,它將文字、公式、圖像、代碼和運(yùn)行結(jié)果結(jié)合在一起。本書將全面介紹深度學(xué)習(xí)從模型構(gòu)造到模型訓(xùn)練,以及它們?cè)谟?jì)算機(jī)視覺和自然語(yǔ)言處理中的應(yīng)用。

    下載2:CVPR /? ECCV 2020開源代碼

    在CVer公眾號(hào)后臺(tái)回復(fù):CVPR2020,即可下載CVPR 2020代碼開源的論文合集

    在CVer公眾號(hào)后臺(tái)回復(fù):ECCV2020,即可下載ECCV 2020代碼開源的論文合集

    重磅!CVer-論文寫作與投稿交流群成立

    掃碼添加CVer助手,可申請(qǐng)加入CVer-論文寫作與投稿?微信交流群,目前已滿2400+人,旨在交流頂會(huì)(CVPR/ICCV/ECCV/NIPS/ICML/ICLR/AAAI等)、頂刊(IJCV/TPAMI/TIP等)、SCI、EI、中文核心等寫作與投稿事宜。

    同時(shí)也可申請(qǐng)加入CVer大群和細(xì)分方向技術(shù)群,細(xì)分方向已涵蓋:目標(biāo)檢測(cè)、圖像分割、目標(biāo)跟蹤、人臉檢測(cè)&識(shí)別、OCR、姿態(tài)估計(jì)、超分辨率、SLAM、醫(yī)療影像、Re-ID、GAN、NAS、深度估計(jì)、自動(dòng)駕駛、強(qiáng)化學(xué)習(xí)、車道線檢測(cè)、模型剪枝&壓縮、去噪、去霧、去雨、風(fēng)格遷移、遙感圖像、行為識(shí)別、視頻理解、圖像融合、圖像檢索、論文投稿&交流、PyTorch和TensorFlow等群。

    一定要備注:研究方向+地點(diǎn)+學(xué)校/公司+昵稱(如論文寫作+上海+上交+卡卡),根據(jù)格式備注,可更快被通過(guò)且邀請(qǐng)進(jìn)群

    ▲長(zhǎng)按加微信群

    ▲長(zhǎng)按關(guān)注CVer公眾號(hào)

    整理不易,請(qǐng)給CVer點(diǎn)贊和在看

    總結(jié)

    以上是生活随笔為你收集整理的sift算法_单应性Homograph估计:从传统算法到深度学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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