計算兩幅圖像在特定交點位置的置信度評分。置信度評分反映了該位置特征匹配的可靠性,通常用于圖像處理任務(如特征匹配、立體視覺等)

這段代碼定義了一個名為compute_confidence的函數,用于計算兩幅圖像在特定交點位置的置信度評分。置信度評分反映了該位置特征匹配的可靠性,通常用于圖像處理任務(如特征匹配、立體視覺等)。以下是逐部分解析:

3. 結果打分系統# 為每個交點添加置信度評分def compute_confidence(img1, img2, point):x, y = pointpatch1 = img1[max(0,y-2):y+3, max(0,x-2):x+3]patch2 = img2[max(0,y-2):y+3, max(0,x-2):x+3]intensity1 = np.sum(patch1) / patch1.sizeintensity2 = np.sum(patch2) / patch2.sizereturn min(intensity1, intensity2) / 255.0
  1. 函數目的

? 輸入:

? img1, img2:兩幅待比較的圖像(通常為灰度圖)。

? point:一個坐標點 (x, y),表示需要計算置信度的位置(如特征點或匹配點)。

? 輸出:

? 返回一個0到1之間的浮點數,表示置信度評分(值越大表示匹配越可靠)。

  1. 實現原理

代碼通過以下步驟計算置信度:

  1. 提取局部圖像塊:
    ? 以點 (x, y) 為中心,從兩幅圖像中分別提取一個 5×5 的像素塊(若靠近邊界則截斷):
    patch1 = img1[max(0,y-2):y+3, max(0,x-2):x+3] # 圖像1的局部塊
    patch2 = img2[max(0,y-2):y+3, max(0,x-2):x+3] # 圖像2的局部塊

    ? 例如,若 point = (10, 20),則提取 img1[18:23, 8:13] 和 img2[18:23, 8:13] 的像素區域。

  2. 計算平均亮度強度:
    ? 對每個局部塊,計算其所有像素的亮度平均值:
    intensity1 = np.sum(patch1) / patch1.size # 圖像1局部塊的平均亮度
    intensity2 = np.sum(patch2) / patch2.size # 圖像2局部塊的平均亮度

    ? 亮度值范圍取決于圖像格式(如8位灰度圖為0-255)。

  3. 計算置信度:
    ? 取兩局部塊平均亮度的較小值,并歸一化到 [0, 1] 范圍:
    confidence = min(intensity1, intensity2) / 255.0

    ? 除以 255.0 是將亮度值從 0-255 映射到 0-1(假設圖像為8位)。

  4. 設計意圖與適用場景

? 核心假設:

? 若兩幅圖像在匹配點附近的局部區域亮度較高,說明該位置特征明顯(如邊緣、角點等),匹配結果更可靠。

? 反之,若局部區域亮度很低(如暗區或紋理缺失區域),則特征區分度低,匹配可能不可靠。

? 典型應用:

? 特征匹配:在SIFT、ORB等算法中,對匹配點進行置信度過濾,剔除低置信匹配。

? 立體視覺:在視差計算后,標記低置信區域(如弱紋理區域)以指導后續優化。

? 圖像拼接:評估重疊區域匹配質量,避免錯位。

  1. 優缺點分析

優點 缺點

計算簡單高效,僅需局部像素操作 僅依賴亮度,未考慮紋理、結構等信息

適合實時系統(如視頻處理) 對光照變化敏感,亮度差異大時評分偏低

結果可解釋性強 局部塊大小固定(5×5),可能忽略更大范圍特征

  1. 改進方向

若需提升置信度評估的魯棒性,可參考以下方法:

  1. 融合多特征:
    ? 結合梯度、紋理統計量(如方差)或特征描述符響應值(如SIFT的特征強度)。

    ? 例如:
    gradient1 = np.mean(np.abs(cv2.Sobel(patch1, cv2.CV_64F, 1, 1)))
    confidence = (intensity + gradient) / 2 # 綜合亮度和梯度

  2. 自適應局部塊:
    ? 根據圖像內容動態調整塊大小(如紋理豐富時用小塊,平滑區域用大塊)。

  3. 機器學習方法:
    ? 使用訓練好的模型預測置信度(如基于匹配代價曲線、左右一致性檢查等特征)。

示例調用

import numpy as np

假設有兩幅灰度圖 img1, img2 和匹配點 (50, 100)

confidence = compute_confidence(img1, img2, (50, 100))
print(f"Confidence at (50,100): {confidence:.2f}") # 輸出:0.75(范圍0-1)

總結

該函數通過比較局部亮度強度快速評估匹配點可靠性,適用于對效率要求高的場景。但在復雜光照或弱紋理環境下需結合更高級方法提升魯棒性。

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

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

相關文章

計算機視覺第一課opencv(三)保姆級教學

簡介 計算機視覺第一課opencv(一)保姆級教學 計算機視覺第一課opencv(二)保姆級教學 今天繼續學習opencv。 一、 圖像形態學 什么是形態學:圖像形態學是一種處理圖像形狀特征的圖像處理技術,主要用于描…

24.早期目標檢測

早期目標檢測 第一步,計算機圖形學做初步大量候選框,把物體圈出來 第二步,依次將所有的候選框圖片,輸入到分類模型進行判斷 選擇性搜索 選擇搜索算法(Selective Search),是一種熟知的計算機圖像…

Java基礎知識點匯總(三)

一、面向對象的特征有哪些方面 Java中面向對象的特征主要包括以下四個核心方面:封裝(Encapsulation) 封裝是指將對象的屬性(數據)和方法(操作)捆綁在一起,隱藏對象的內部實現細節&am…

GEO優化專家孟慶濤:讓AI“聰明”選擇,為企業“精準”生長

在生成式AI席卷全球的今天,企業最常遇到的困惑或許是:“為什么我的AI生成內容總像‘模板套娃’?”“用戶明明想要A,AI卻拼命輸出B?”當生成式AI從“能用”邁向“好用”的關鍵階段,如何讓AI真正理解用戶需求…

【交易系統系列04】交易所版《速度與激情》:如何為狂飆的BTC交易引擎上演“空中加油”?

交易所版《速度與激情》:如何為狂飆的BTC交易引擎上演“空中加油”? 想象一下這個場景:你正端著一杯熱氣騰騰的咖啡,看著窗外我家那只貪睡的橘貓趴在陽光下打著呼嚕。突然,手機上的警報開始尖叫,交易系統監…

windows下jdk環境切換為jdk17后,臨時需要jdk1.8的處理

近段時間,終于決定把開發環境全面轉向jdk17,這不就遇到了問題。 windows主環境已經設置為jdk17了。 修改的JAVA_HOME D:\java\jdk-17CLASSPATH設置 .;D:\java\jdk-17\lib\dt.jar;D:\java\jdk-17\lib\tools.jar;PATH中增加 D:\java\jdk-17\bin但是有些程序…

Android URC 介紹及源碼案例參考

1. URC 含義 URC 是 Unsolicited Result Code(非請求結果碼)的縮寫。 它是 modem(基帶)在不需要 AP 主動請求的情況下向上層主動上報的消息。 典型例子:短信到達提示、網絡狀態變更、來電通知、信號質量變化等。 URC 一般以 AT 命令擴展的形式從 modem 發到 AP,例如串口…

VB.NET發送郵件給OUTLOOK.COM的用戶,用OUTLOOK.COM郵箱賬號登錄給別人發郵件

在VB.NET中通過代碼發送郵件時,確實會遇到郵箱服務的身份認證(Authentication)要求。特別是微軟Outlook/Hotmail等服務,已經逐步禁用傳統的“基本身份驗證”(Basic Authentication),轉而強制要求…

【網絡運維】Shell:變量進階知識

Shell 變量進階知識 Shell 中的特殊變量 位置參數變量 Shell 腳本中常用的位置參數變量如下: $0:獲取當前執行的 Shell 腳本文件名(包含路徑時包括路徑)$n:獲取第 n 個參數值(n>9 時需使用 ${n}&#xf…

部署Qwen2.5-VL-7B-Instruct-GPTQ-Int3

模型下載 from modelscope import snapshot_download model_dir snapshot_download(ChineseAlpacaGroup/Qwen2.5-VL-7B-Instruct-GPTQ-Int3)相關包導入 import os import numpy as np import pandas as pd from tqdm import tqdm from datetime import datetime,timedelta fro…

sourcetree 拉取代碼

提示:文章旨在于教授大家 sourcetree 拉取代碼的方式,關于代碼的提交合并等操作后續會補充。 文章目錄前言一、sourcetree 安裝二、http 與 ssh 拉取代碼1.http 方式(1)生成 token(2)拼接項目的 url&#x…

epoll模型網絡編程知識要領

1、程序初始化創建監聽socket調用bind函數綁定ip地址、port端口號調用listen函數監聽調用epoll_create函數創建epollfd調用epoll_ctrl函數將listenfd綁定到epollfd上,監測listenfd的讀事件在一個無限循環中,調用epoll_wait函數等待事件發生2、處理客戶端…

15-day12LLM結構變化、位置編碼和投機采樣

多頭機制transformer結構歸一化層選擇 歸一化層位置歸一化層類型激活函數Llama2結構MoE架構 混合專家模型DeepSeek MLA為何需要位置編碼目前的主流位置編碼正余弦位置編碼可學習位置編碼ROPE旋轉位置編碼推導參考: https://spaces.ac.cn/archives/8265 https://zhua…

記錄 docker容器打包成鏡像 在其他服務器快速啟動鏡像和容器

我有個nginx服務器 需要在其他服務器直接部署使用 里面都是完整的 使用 docker ps 查看容器id 進行打包成鏡像docker commit [容器ID或名稱] 新鏡像名:版本 docker commit 28f60e2206b2 my-nginx-custom:v1鏡像保存成文件 docker save -o my-nginx-custom.tar my-nginx-custom:…

使用LLaMA-Factory對大模型進行微調-詳解

書接上回 啟動llama Factory可視化頁面 llamafactory-cli webui 如果想后臺運行 使用 nohup llamafactory-cli webui &瀏覽器訪問 http://127.0.0.1:7860/配置項主要參數: 參考: https://docs.coreshub.cn/console/compute_platform/help/llama_factory/ 模型路徑 : 解…

【AI】錄制自動生成UI自動化腳本

命令行輸入:npx playwright codegen https://myerp.dmyc.XXX.com:9443/打開的瀏覽器上操作,會自動錄制,并生成自動化腳本

深度剖析字節跳動VeOmni框架

背景與設計動機 隨著推薦系統和AI模型走向多模態、多任務的趨勢,字節跳動面臨著訓練、迭代效率和系統復雜度的雙重挑戰。一方面,各類業務(如新聞推薦、短視頻、圖文廣告、電商帶貨等)都需要處理文本、圖像、視頻、音頻等多種輸入模…

OCR庫pytesseract安裝保姆級教程

本文將介紹使用工具安裝OCR庫pytesseract的詳細流程。 Anaconda安裝教程參考Anaconda安裝保姆級教程。 目錄 一、工具安裝 二、創建虛擬環境 三、安裝pytesseract 總結 一、工具安裝 點擊鏈接前往官網codetou.com,下載安裝最新版即可,本篇博客以摳頭…

開源im即時通訊軟件開發社交系統全解析:安全可控、功能全面的社交解決方案

在即時通訊與社交需求日益增長的今天,一款安全、穩定、功能全面的聊天軟件成為不少團隊和開發者的剛需。但市面上多數聊天 APP 要么依賴第三方插件,面臨數據安全隱患和高額服務費;要么功能單一,難以滿足復雜社交場景。今天給大家推…

殘差神經網絡(ResNet)

殘差神經網絡(Residual Neural Network,簡稱 ResNet)是深度學習領域的里程碑式模型,由何凱明等人在 2015 年提出,成功解決了深層神經網絡訓練中的梯度消失 / 爆炸問題,使訓練超深網絡(如 152 層…