【第5話:相機模型1】針孔相機、魚眼相機模型的介紹及其在自動駕駛中的作用及使用方法

相機模型介紹及相機模型在自動駕駛中的作用及使用方法

相機模型是計算機視覺中的核心概念,用于描述真實世界中的點如何投影到圖像平面上。在自動駕駛系統中,相機模型用于環境感知,如物體檢測和場景理解。下面我將詳細介紹針孔相機模型和魚眼相機模型,然后討論它們在自動駕駛中的作用及使用方法。
在這里插入圖片描述

1. 針孔相機模型

針孔相機模型是最基本的相機模型,基于小孔成像原理。它假設光線通過一個無限小的孔(針孔)投影到成像平面上,形成倒立的圖像。這種模型忽略了鏡頭畸變,適用于理想化場景。

原理

  • 光線從場景中的點通過針孔投射到像平面。
  • 投影過程是線性的,使用透視投影方程描述。
  • 數學模型涉及齊次坐標和投影矩陣。

數學模型

  • 設世界坐標系中的點為 P=[X,Y,Z,1]?\mathbf{P} = [X, Y, Z, 1]^\topP=[X,Y,Z,1]?(齊次坐標),相機坐標系中的點為 p=[x,y,z]?\mathbf{p} = [x, y, z]^\topp=[x,y,z]?
  • 透視投影方程:
    p=1ZKP \mathbf{p} = \frac{1}{Z} \mathbf{K} \mathbf{P} p=Z1?KP
    其中 K\mathbf{K}K 是相機內參矩陣:
    K=[fx0cx0fycy001] \mathbf{K} = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K=?fx?00?0fy?0?cx?cy?1??
    這里 fxf_xfx?fyf_yfy? 是焦距(以像素為單位),cxc_xcx?cyc_ycy? 是主點坐標(圖像中心)。
  • 圖像坐標 (u,v)(u, v)(u,v) 計算為:
    u=fxXZ+cx,v=fyYZ+cy u = \frac{f_x X}{Z} + c_x, \quad v = \frac{f_y Y}{Z} + c_y u=Zfx?X?+cx?,v=Zfy?Y?+cy?
    這表示 uuuvvv 是歸一化后的坐標。

優點和缺點

  • 優點:模型簡單,計算高效,適用于大多數標準相機和算法。
  • 缺點:視野有限(通常小于90度),忽略鏡頭畸變,導致在廣角場景中失真嚴重。
2. 魚眼相機模型

魚眼相機模型是一種廣角相機模型,專為捕捉大視野(通常180度或更大)設計。它使用非線性投影來處理鏡頭畸變,常見于車載相機或監控系統。魚眼鏡頭會產生桶形畸變,需要通過數學模型校正。

原理

  • 光線通過魚眼鏡頭投射,產生徑向畸變(圖像邊緣彎曲)。
  • 投影模型基于角度映射,如等距投影或等立體投影。
  • 數學模型包括畸變參數來校正圖像。

數學模型

  • 設歸一化圖像坐標為 (x,y)(x, y)(x,y),實際畸變坐標為 (xd,yd)(x_d, y_d)(xd?,yd?)
  • 徑向畸變模型:
    r=x2+y2 r = \sqrt{x^2 + y^2} r=x2+y2?
    rd=r(1+k1r2+k2r4+k3r6+??) r_d = r (1 + k_1 r^2 + k_2 r^4 + k_3 r^6 + \cdots) rd?=r(1+k1?r2+k2?r4+k3?r6+?)
    其中 k1,k2,k3k_1, k_2, k_3k1?,k2?,k3? 是畸變系數。
  • 畸變坐標計算為:
    xd=xrdr,yd=yrdr x_d = x \frac{r_d}{r}, \quad y_d = y \frac{r_d}{r} xd?=xrrd??,yd?=yrrd??
  • 最終圖像坐標 (ud,vd)(u_d, v_d)(ud?,vd?) 通過內參矩陣映射:
    [udvd1]=K[xdyd1] \begin{bmatrix} u_d \\ v_d \\ 1 \end{bmatrix} = \mathbf{K} \begin{bmatrix} x_d \\ y_d \\ 1 \end{bmatrix} ?ud?vd?1??=K?xd?yd?1??
    這里 K\mathbf{K}K 與針孔模型相同。

優點和缺點

  • 優點:視野廣闊(可達180度以上),適合捕捉大范圍場景。
  • 缺點:畸變嚴重,需要復雜的校正算法,計算開銷較大。
相機模型在自動駕駛中的作用

在自動駕駛系統中,相機模型是環境感知的關鍵組件,主要用于:

  • 環境感知:檢測車輛、行人、交通標志和車道線。例如,使用針孔模型進行精確對象定位,魚眼模型提供全景視野以覆蓋盲區。
  • 場景理解:結合深度學習模型(如YOLO或SSD)進行語義分割,識別道路結構和障礙物。
  • 傳感器融合:與激光雷達、雷達和IMU數據融合,提高感知魯棒性。相機提供豐富的紋理信息,而其他傳感器補充深度和運動數據。
  • 定位與導航:基于視覺的SLAM(Simultaneous Localization and Mapping)使用相機模型構建環境地圖并估計車輛位置。

總體作用:提升自動駕駛的安全性和可靠性,通過實時圖像處理實現決策支持。

相機模型在自動駕駛中的使用方法

在自動駕駛應用中,相機模型的使用涉及以下步驟:

  1. 相機標定

    • 目的:確定相機內參(如焦距 fx,fyf_x, f_yfx?,fy?、主點 cx,cyc_x, c_ycx?,cy?)和畸變系數(如 k1,k2k_1, k_2k1?,k2?)。
    • 方法:使用標定板(如棋盤格)采集多張圖像,通過優化算法(如OpenCV的 calibrateCamera 函數)求解參數。例如,針孔模型標定最小化重投影誤差,魚眼模型額外優化畸變系數。
    • 工具:常用OpenCV庫實現。代碼示例(Python):
      import cv2
      import numpy as np# 加載標定圖像
      images = [cv2.imread(f'image_{i}.jpg') for i in range(10)]
      obj_points = []  # 3D點
      img_points = []  # 2D點# 定義棋盤格尺寸
      pattern_size = (9, 6)
      obj_p = np.zeros((pattern_size[0]*pattern_size[1], 3), np.float32)
      obj_p[:, :2] = np.mgrid[0:pattern_size[0], 0:pattern_size[1]].T.reshape(-1, 2)for img in images:gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, corners = cv2.findChessboardCorners(gray, pattern_size, None)if ret:obj_points.append(obj_p)img_points.append(corners)# 標定相機(針孔模型)
      ret, K, dist, rvecs, tvecs = cv2.calibrateCamera(obj_points, img_points, gray.shape[::-1], None, None)
      # 對于魚眼模型,使用 cv2.fisheye.calibrate
      
  2. 畸變校正

    • 目的:消除魚眼畸變,使圖像符合針孔模型,便于后續處理。
    • 方法:應用標定得到的參數進行圖像變換。針孔模型通常不需要校正,魚眼模型使用逆畸變映射。
    • 工具:OpenCV的 undistort 函數。代碼示例:
      # 針孔模型校正(可選)
      undistorted_img = cv2.undistort(img, K, dist)
      # 魚眼模型校正
      map1, map2 = cv2.fisheye.initUndistortRectifyMap(K, dist, np.eye(3), K, img.shape[:2], cv2.CV_16SC2)
      undistorted_img = cv2.remap(img, map1, map2, cv2.INTER_LINEAR)
      
  3. 圖像處理與感知任務

    • 物體檢測:使用校正后的圖像輸入到神經網絡(如CNN)中。例如,YOLO模型檢測車輛和行人。
    • 特征提取:提取車道線或邊緣特征,結合相機模型計算真實世界坐標。例如,從圖像坐標 (u,v)(u, v)(u,v) 反投影到3D空間:
      [XYZ]=ZK?1[uv1] \begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = Z \mathbf{K}^{-1} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} ?XYZ??=ZK?1?uv1??
      其中 ZZZ 是估計的深度(來自其他傳感器或立體視覺)。
    • 實時應用:在自動駕駛系統中,相機模型集成到感知模塊,每秒處理多幀圖像,輸出給規劃和控制模塊。
  4. 系統集成

    • 多相機系統:自動駕駛車輛通常使用多個相機(如前視針孔相機、側視魚眼相機),覆蓋360度視野。通過標定和融合,構建統一的環境模型。
    • 挑戰與優化:處理動態光照、運動模糊和實時性要求。使用GPU加速和算法優化(如稀疏特征匹配)提高效率。
總結

針孔相機模型簡單高效,適合標準視野場景;魚眼相機模型提供廣角覆蓋,但需畸變校正。在自動駕駛中,它們通過標定、校正和感知任務實現環境理解。使用方法包括標定參數、校正圖像和集成到感知系統。這些模型是自動駕駛視覺感知的基石,結合其他傳感器可顯著提升系統性能。未來發展方向包括更高效的畸變模型和深度學習融合技術。

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

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

相關文章

推薦一款優質的開源博客與內容管理系統

Halo是一款由Java Spring Boot打造的開源博客與內容管理系統(CMS),在 GitHub上擁有超過36K Start的活躍開發者社區。它使用GPL?3.0授權開源,穩定性與可維護性極高。 Halo的設計簡潔、注重性能,同時保持高度靈活性&a…

【GPT入門】第43課 使用LlamaFactory微調Llama3

【GPT入門】第43課 使用LlamaFactory微調Llama31.環境準備2. 下載基座模型3.LLaMA-Factory部署與啟動4. 重新訓練![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/e7aa869f8e2c4951a0983f0918e1b638.png)1.環境準備 采購autodl服務器,24G,GPU,型號3090&am…

計算機網絡:如何理解目的網絡不再是一個完整的分類網絡

這一理解主要源于無分類域間路由(CIDR)技術的廣泛應用,它打破了傳統的基于類的IP地址分配方式。具體可從以下方面理解: 傳統分類網絡的局限性:在早期互聯網中,IP地址被分為A、B、C等固定類別,每…

小米開源大模型 MiDashengLM-7B:不僅是“聽懂”,更能“理解”聲音

目錄 前言 一、一枚“重磅炸彈”:開源,意味著一扇大門的敞開 二、揭秘MiDashengLM-7B:它究竟“神”在哪里? 2.1 “超級耳朵” 與 “智慧大腦” 的協作 2.2 突破:從 “聽見文字” 到 “理解世界” 2.3 創新訓練&a…

mysql出現大量redolog、undolog排查以及解決方案

排查步驟 監控日志增長情況 -- 查看InnoDB狀態 SHOW ENGINE INNODB STATUS;-- 查看redo log配置和使用情況 SHOW VARIABLES LIKE innodb_log_file%; SHOW VARIABLES LIKE innodb_log_buffer_size;-- 查看undo log信息 SHOW VARIABLES LIKE innodb_undo%;檢查長時間運行的事務 -…

華為網路設備學習-28(BGP協議 三)路由策略

目錄: 一、BGP路由匯總1、注:使用network命令注入的BGP不會被自動匯總2、主類網絡號計算過程如下:3.示例 開啟BGP路由自動匯總bgp100 開啟BGP路由自動匯總import-route 直連路由 11.1.1.0 /24對端 為 10.1.12.2 AS 2004.手動配置BGP路…

微信小程序中實現表單數據實時驗證的方法

一、實時驗證的基本實現思路表單實時時驗證通過監聽表單元素的輸入事件,在用戶輸入過程中即時對數據進行校驗,并并即時反饋驗證結果,主要實現步驟包括:為每個表單字段綁定輸入事件在事件處理函數中獲取當前輸入值應用驗證規則進行…

openpnp - 頂部相機如果超過6.5米影響通訊質量,可以加USB3.0信號放大器延長線

文章目錄openpnp - 頂部相機如果超過6.5米影響通訊質量,可以加USB3.0信號放大器延長線概述備注ENDopenpnp - 頂部相機如果超過6.5米影響通訊質量,可以加USB3.0信號放大器延長線 概述 手頭有1080x720x60FPS的攝像頭模組備件,換上后&#xff…

【驅動】RK3576-Debian系統使用ping報錯:socket operation not permitted

1、問題描述 在RK3576-Debian系統中,連接了Wifi后,測試網絡通斷時,報錯: ping www.csdn.net ping: socktype: SOCK_RAW ping: socket: Operation not permitted ping: => missing cap_net_raw+p capability or setuid?2、原因分析 2.1 分析打印日志 socktype: SOCK…

opencv:圖像輪廓檢測與輪廓近似(附代碼)

目錄 圖像輪廓 cv2.findContours(img, mode, method) 繪制輪廓 輪廓特征與近似 輪廓特征 輪廓近似 輪廓近似原理 opencv 實現輪廓近似 輪廓外接矩形 輪廓外接圓 圖像輪廓 cv2.findContours(img, mode, method) mode:輪廓檢索模式(通常使用第四個模式&am…

mtrace定位內存泄漏問題(僅限 GNU glibc 的 Linux)

一、mtrace原理 函數攔截機制:mtrace 利用 glibc 的內部機制,對 malloc() / calloc() / realloc() / free() 等內存函數進行 hook,記錄每一次分配和釋放行為。日志記錄:記錄會寫入 MALLOC_TRACE 環境變量指定的日志文件中&#xf…

高校合作 | 世冠科技聯合普華、北郵項目入選教育部第二批工程案例

近日,教育部學位與研究生教育發展中心正式公布第二批工程案例立項名單。由北京世冠金洋科技發展有限公司牽頭,聯合普華基礎軟件、北京郵電大學共同申報的"基于國產軟件棧的汽車嵌入式軟件開發工程案例"成功入選。該項目由北京郵電大學修佳鵬副…

TOMCAT筆記

一、前置知識:Web 技術演進 C/S vs B/S – C/S:Socket 編程,QQ、迅雷等,通信層 TCP/UDP,協議私有。 – B/S:瀏覽器 HTTP,文本協議跨網絡。 動態網頁誕生 早期靜態 HTML → 1990 年 HTTP 瀏覽…

上海一家機器人IPO核心零部件依賴外購, 募投計劃頻繁修改引疑

作者:Eric來源:IPO魔女8月8日,節卡機器人股份有限公司(簡稱“節卡股份”)將接受上交所科創板IPO上會審核。公司保薦機構為國泰海通證券股份有限公司,擬募集資金為6.76億元。報告期內,節卡股份營…

Linux810 shell 條件判斷 文件工具 ifelse

變量 條件判斷 -ne 不等 $(id -u) -eq [codesamba ~]$ [ $(id -u) -ne 0 ] && echo "the user is not admin" the user is not admin [codesamba ~]$ [ $(id -u) -eq 0] && echo "yes admin" || echo "no not " -bash: [: 缺少 …

ChatGPT 5的編程能力宣傳言過其實

2025年的8月7日,OpenAI 正式向全球揭開了GPT-5的神秘面紗,瞬間在 AI 領域乃至整個科技圈引發了軒然大波。OpenAI對GPT-5的宣傳可謂不遺余力,將其描繪成一款具有顛覆性變革的 AI 產品,尤其在編程能力方面,給出了諸多令人…

從MySQL到大數據平臺:基于Spark的離線分析實戰指南

引言在當今數據驅動的商業環境中,企業業務數據通常存儲在MySQL等關系型數據庫中,但當數據量增長到千萬級甚至更高時,直接在MySQL中進行復雜分析會導致性能瓶頸。本文將詳細介紹如何將MySQL業務數據遷移到大數據平臺,并通過Spark等…

Mysql筆記-存儲過程與存儲函數

1. 存儲過程(Stored Procedure) 1.1 概述 1.1.1 定義: 存儲過程是一組預編譯的 SQL 語句和控制流語句(如條件判斷、循環)的集合,?無返回值?(但可通過 OUT/INOUT 參數或結果集返回數據)。它支持參數傳遞、…

[論文閱讀] 人工智能 + 軟件工程 | LLM協作新突破:用多智能體強化學習實現高效協同——解析MAGRPO算法

LLM協作新突破:用多智能體強化學習實現高效協同——解析MAGRPO算法 論文:LLM Collaboration With Multi-Agent Reinforcement LearningarXiv:2508.04652 (cross-list from cs.AI) LLM Collaboration With Multi-Agent Reinforcement Learning Shuo Liu, …

使用OAK相機實現智能物料檢測與ABB機械臂抓取

大家好!今天我們很高興能與大家分享來自OAK的國外用戶——Vention 的這段精彩視頻,展示了他們的AI操作系統在現實中的應用——在演示中,進行實時的自動物料揀選。 OAK相機實時自動AI物料揀選視頻中明顯可以看到我們的OAK-D Pro PoE 3D邊緣AI相…