ICCV2025 特征點檢測 圖像匹配 RIPE

目測對剛性物體效果比較好

代碼:https://github.com/fraunhoferhhi/RIPE
論文:https://arxiv.org/abs/2507.04839

import cv2
import kornia.feature as KF
import kornia.geometry as KG
import matplotlib.pyplot as plt
import numpy as np
import torch
from torchvision.io import decode_imagefrom ripe import vgg_hyper
from ripe.utils.utils import cv2_matches_from_kornia, resize_image, to_cv_kptsdev = torch.device("cuda" if torch.cuda.is_available() else "cpu")model = vgg_hyper().to(dev)
model.eval()image1 = resize_image(decode_image("assets/all_souls_000013.jpg").float().to(dev) / 255.0)
image2 = resize_image(decode_image("assets/all_souls_000055.jpg").float().to(dev) / 255.0)kpts_1, desc_1, score_1 = model.detectAndCompute(image1, threshold=0.5, top_k=2048)
kpts_2, desc_2, score_2 = model.detectAndCompute(image2, threshold=0.5, top_k=2048)matcher = KF.DescriptorMatcher("mnn")  # threshold is not used with mnn
match_dists, match_idxs = matcher(desc_1, desc_2)matched_pts_1 = kpts_1[match_idxs[:, 0]]
matched_pts_2 = kpts_2[match_idxs[:, 1]]H, mask = KG.ransac.RANSAC(model_type="fundamental", inl_th=1.0)(matched_pts_1, matched_pts_2)
matchesMask = mask.int().ravel().tolist()result_ransac = cv2.drawMatches((image1.cpu().permute(1, 2, 0).numpy() * 255.0).astype(np.uint8),to_cv_kpts(kpts_1, score_1),(image2.cpu().permute(1, 2, 0).numpy() * 255.0).astype(np.uint8),to_cv_kpts(kpts_2, score_2),cv2_matches_from_kornia(match_dists, match_idxs),None,matchColor=(0, 255, 0),matchesMask=matchesMask,# matchesMask=None, # without RANSAC filteringsinglePointColor=(0, 0, 255),flags=cv2.DrawMatchesFlags_DEFAULT,
)plt.imshow(result_ransac)
plt.axis("off")
plt.tight_layout()plt.show()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90774.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90774.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90774.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu22.0.4安裝PaddleNLP

Ubuntu22.0.4安裝PaddleNLP環境說明安裝底層框架Paddle安裝PddleNLP1. pip安裝2. 驗證安裝3. 最后問題集錦環境說明 1. miniconda 25.5.1 2. python 3.12.11 3. pip 25.1 4. nvidia 570.144 5. cuda 12.8**注意:**安裝過程可能遇到的一些問題,參考末尾的…

【HTTP服務端】Cookie?Session?Token?

文章目錄cookie與sessiontoken什么是JWT?JWT的組成結構1. Header(頭部)2. Payload(負載)3. Signature(簽名)JWT工作原理JWT的特點安全注意事項cookie與session cookie有哪些屬性 鍵值對&#xf…

安裝Git

Git安裝避坑指南技術 操作系統選擇與準備 Windows用戶需注意系統版本兼容性,建議使用Windows 10及以上版本 Mac用戶需檢查是否安裝Xcode Command Line Tools Linux用戶需區分apt/yum等包管理器命令差異 安裝包下載注意事項 從官方渠道(git-scm.com&a…

UDP服務器的優缺點都包含哪些?

UDP協議不需要像TCP協議那樣進行復雜的連接建立與拆除過程,在進行傳輸數據信息的過程中,應用層將數據交給UDP層,UDP層直接加上首部就發往網絡層,極大地減少了處理時間和資源消耗。例如在一些簡單的網絡監控程序中,只是…

sqli-labs靶場通關筆記:第7-8關 布爾盲注

第七關1.審題這里判斷出是))閉合,但是頁面只有正確和錯誤的回顯狀態,報錯的回顯也是固定的,沒有顯示報錯具體信息。這關使用的方法是布爾盲注。為什么叫布爾盲注?因為它返回的結果只有true和false 兩個值,攻擊者需要通…

理解支持向量機(SVM):理論、數學和實現的綜合指南

支持向量機(SVMs)是強大的監督學習算法,用于分類和回歸任務,盡管它們主要用于分類。由Vladimir Vapnik及其同事在1990年代引入,SVMs基于統計學習理論,特別適用于需要將數據點穩健分離到不同類別的任務。本博…

使用Navicat對PostgreSQL數據表添加列,自動記錄當前行的添加日期

點開表設計,向如下這樣一個字段: 字段名稱可以自定義,博主這里叫做:add_date_time類型選擇:timestamp長度寫成:6默認值輸入:CURRENT_TIMESTAMP 添加行:默認值:

VR協作海外云:跨國企業沉浸式辦公解決方案

隨著全球化進程加速,VR協作海外云正成為跨國企業數字化轉型的核心解決方案。本文將深入解析這項技術如何突破地理限制,實現沉浸式遠程協作,并探討其在跨文化團隊管理、實時3D數據交互等場景中的獨特優勢。 VR協作海外云:跨國企業沉…

[ESP32]VSCODE+ESP-IDF環境搭建及blink例程嘗試(win10 win11均配置成功)

ps:這是你為了點燈最繁瑣的一次 1.軟件下載 vscode下載地址:Documentation for Visual Studio Codeesp_idf下載地址:https://dl.espressif.cn/dl/esp-idf/?idf4.4 (從上往下第三) 2.軟件安裝 可以均默認安裝,但建議不要放在C盤&…

tailwindcss詳解

Tailwind CSS 詳解:實用主義的現代 CSS 框架 Tailwind CSS 是一個功能優先(utility-first)的 CSS 框架,它通過提供低級別的實用類來快速構建自定義設計,而無需離開 HTML 文件。以下是全面解析: 一、核心概念…

[spring6: TypeFilter MetadataReader MetadataReaderFactory]-源碼解析

源碼 MetadataReaderFactory MetadataReaderFactory 是用于創建 MetadataReader 實例的工廠接口,支持通過類名或資源讀取類的元數據并可實現緩存優化。類型類/接口名功能描述是否需要加載類訪問方式抽象接口AnnotatedTypeMetadata訪問某類型(類或方法&am…

基于redis的分布式session共享管理之銷毀事件不生效問題

一、前言首先介紹下分布式session共享管理在Springboot項目中,經常提到分布式的概念,當實際部署應用后,多臺服務器各自存儲用戶登錄會話無法共享,導致操作A按鈕還是正常,操作B按鈕就提示登錄過期需要重新登錄。這是因為…

技術面試問題總結二

一、lvs的四種工作模式: LVS 有四種主要工作模式:NAT 模式、DR 模式、TUN 模式和Full-NAT 模式 1、NAT模式: 工作原理 LVS 作為客戶端和真實服務器(RS)之間的中間節點,接收客戶端請求后,修改請求的目標…

軟考(軟件設計師)軟件工程-軟件過程模型,敏捷開發

軟件過程模型 瀑布模型 #mermaid-svg-daxck2eQmqfYelkV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-daxck2eQmqfYelkV .error-icon{fill:#552222;}#mermaid-svg-daxck2eQmqfYelkV .error-text{fill:#552222;stro…

MySQL 中圖標字符存儲問題探究:成因、解決方案及單字段編碼調整的利弊分析——仙盟創夢IDE

在 MySQL 數據庫應用中,常出現無法正確保存圖標字符,讀出時顯示為 “????” 的問題。本文深入剖析了該問題產生的原因,主要涉及字符編碼設置不匹配等因素。同時,提出了全面的解決方案,包括全局和單字段的字符編碼調…

快速上手UniApp(適用于有Vue3基礎的)

作為一位有Vue3基礎的開發者,學習UniApp將會是一個相對平滑的過程。UniApp是一個使用Vue.js開發跨平臺應用的前端框架,可以編譯到iOS、Android、H5以及各種小程序平臺。 一、UniApp簡介 UniApp是基于Vue.js的跨平臺開發框架,具有以下特點&a…

background和background-color的區別

前言:由于全局切換變量時,發現空頁面按鈕變量顏色未生效,審查元素發現變量未定義。實際上是背景色由純色變成了漸變色,而background-color不支持漸變色導致變量不生效特性backgroundbackground-color功能設置?所有?背景屬性&…

Vue Vue-route (5)

Vue 漸進式JavaScript 框架 基于Vue2的學習筆記 - Vue-route History模式和路由懶加載 目錄 History模式 設置history模式 后端配置 Apache 路由懶加載 配置 總結 History模式 設置history模式 Vue-route默認hash模式——使用URL的hash來模擬一個完整的URL&#xff0c…

家用智能攝像機PRV文件刪除的恢復方法

家用智能攝像頭一般采用的是mp4或者mov視頻方案,這一類方案文件通用性強、使用簡單,以MP4為例無論是APP在線播放還是TF卡接電腦查看都很輕松。即便如此,有些廠商還是走上了“自定義”的道路,自定義的文件結構導致無法正常播放&…

聊下easyexcel導出

直接上干貨&#xff0c;首先pom文件引入依賴 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency>接下來是java代碼 public void export(List<Liquidity…