<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      計算機視覺標定技術

      計算機視覺標定技術詳解

      一、引言

      1.1 什么是標定技術?

      在計算機視覺和機器人技術中,標定是指通過已知信息來確定相機、傳感器或系統參數的過程。就像我們使用前需要校準尺子的刻度一樣,視覺系統也需要"校準"才能準確理解三維世界。

      1.2 四種標定技術概覽

      本文將按照復雜程度遞增的順序介紹四種核心標定技術:

      1. 2D平面標定 - 處理平面到平面的變換(最簡單)
      2. 9點標定 - 工業中實用的2D坐標系映射技術
      3. 2D-3D標定(相機標定) - 建立二維圖像到三維世界的映射
      4. 手眼標定 - 連接機器人與視覺系統的橋梁(最復雜)

      1.3 標定技術的關系圖譜

      學習路徑(按復雜度遞增):
      2D平面標定(最簡單)→ 9點標定 → 2D-3D標定 → 手眼標定(最復雜)
               ↓              ↓           ↓           ↓
            單應性矩陣     工業坐標轉換   相機內參矩陣   3D-3D變換
               ↓              ↓           ↓           ↓
            圖像校正      坐標映射     相機模型     機器人視覺
      

      二、基礎概念

      2.1 坐標系基礎

      在計算機視覺中,我們經常涉及以下坐標系:

      世界坐標系(World Coordinates)

      • 三維空間中的絕對坐標系
      • 通常用 \((X, Y, Z)\) 表示
      • 作為所有其他坐標系的參考基準

      相機坐標系(Camera Coordinates)

      • 以相機光心為原點的坐標系
      • Z軸指向相機前方,X軸向右,Y軸向下
      • \((X_c, Y_c, Z_c)\) 表示

      圖像坐標系(Image Coordinates)

      • 二維圖像平面上的像素坐標
      • \((u, v)\) 表示,單位為像素
      • 原點通常在圖像左上角

      2.2 齊次坐標

      齊次坐標是計算機圖形學和視覺中的重要概念:

      定義:將n維坐標擴展為n+1維坐標

      • 2D點 \((x, y)\) → 齊次坐標 \((x, y, 1)\)
      • 3D點 \((x, y, z)\) → 齊次坐標 \((x, y, z, 1)\)

      優勢

      1. 可以統一表示平移、旋轉、縮放等變換
      2. 無窮遠點的表示(最后一個分量為0)
      3. 矩陣運算的便利性

      2.3 變換類型

      仿射變換(6個自由度)

      \[\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} a & b & c \\ d & e & f \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} \]

      特點:保持平行線平行,適用于無透視變形的場景

      透視變換(8個自由度)

      \[\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} \sim \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix} \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} \]

      特點:可以處理透視變形,更真實的投影

      三、基礎概念數據案例

      3.1 2D-2D變換案例

      仿射變換示例

      假設我們有一個簡單的平移+縮放變換:

      變換矩陣

      \[\mathbf{T} = \begin{bmatrix} 2.0 & 0.0 & 50.0 \\ 0.0 & 1.5 & 30.0 \\ 0.0 & 0.0 & 1.0 \end{bmatrix} \]

      應用變換

      • 原始點:\((10, 20)\) → 齊次坐標 \((10, 20, 1)\)
      • 變換過程:

        \[\begin{bmatrix} 2.0 & 0.0 & 50.0 \\ 0.0 & 1.5 & 30.0 \\ 0.0 & 0.0 & 1.0 \end{bmatrix} \begin{bmatrix} 10 \\ 20 \\ 1 \end{bmatrix} = \begin{bmatrix} 2.0×10 + 50.0 \\ 1.5×20 + 30.0 \\ 1 \end{bmatrix} = \begin{bmatrix} 70 \\ 60 \\ 1 \end{bmatrix} \]

      • 變換結果:\((70, 60)\)

      物理意義:原圖像中的點(10,20)經過2倍X方向縮放、1.5倍Y方向縮放,然后平移(50,30)后,到達新位置(70,60)。

      透視變換示例

      考慮一個更復雜的透視變換:

      變換矩陣

      \[\mathbf{H} = \begin{bmatrix} 1.2 & 0.1 & 10.0 \\ 0.05 & 1.1 & 5.0 \\ 0.001 & 0.002 & 1.0 \end{bmatrix} \]

      應用變換

      • 原始點:\((100, 50)\) → 齊次坐標 \((100, 50, 1)\)
      • 變換過程:

        \[\begin{bmatrix} 1.2 & 0.1 & 10.0 \\ 0.05 & 1.1 & 5.0 \\ 0.001 & 0.002 & 1.0 \end{bmatrix} \begin{bmatrix} 100 \\ 50 \\ 1 \end{bmatrix} = \begin{bmatrix} 1.2×100 + 0.1×50 + 10.0 \\ 0.05×100 + 1.1×50 + 5.0 \\ 0.001×100 + 0.002×50 + 1.0 \end{bmatrix} = \begin{bmatrix} 135 \\ 65 \\ 1.1 \end{bmatrix} \]

      • 歸一化(除以最后一個分量):\(\left(\frac{135}{1.1}, \frac{65}{1.1}\right) = (122.7, 59.1)\)

      物理意義:透視變換不僅包含平移、縮放、旋轉,還會產生透視效果,遠處物體顯得更小。

      3.2 2D-3D投影案例

      簡單相機投影模型

      假設相機內參矩陣為:

      \[\mathbf{K} = \begin{bmatrix} 1000 & 0 & 320 \\ 0 & 1000 & 240 \\ 0 & 0 & 1 \end{bmatrix} \]

      相機位姿(外參):

      • 旋轉矩陣:\(\mathbf{R} = \mathbf{I}\)(無旋轉)
      • 平移向量:\(\mathbf{t} = [0, 0, 1000]^T\)(相機距離物體1000mm)

      投影一個3D點

      • 3D世界點:\(\mathbf{P}_w = (100, 50, 0)^T\)(物體在世界坐標系中的位置)
      • 轉換到相機坐標系:\(\mathbf{P}_c = \mathbf{R} \cdot \mathbf{P}_w + \mathbf{t} = (100, 50, 1000)^T\)
      • 投影到圖像平面:

        \[\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} \sim \mathbf{K} \begin{bmatrix} 100 \\ 50 \\ 1000 \end{bmatrix} = \begin{bmatrix} 1000×100 + 320 \\ 1000×50 + 240 \\ 1000 \end{bmatrix} = \begin{bmatrix} 100320 \\ 50240 \\ 1000 \end{bmatrix} \]

      • 歸一化:\((u, v) = \left(\frac{100320}{1000}, \frac{50240}{1000}\right) = (100.32, 50.24)\)

      物理意義:空間中距離相機1000mm的物體點(100,50,0)在圖像上投影到像素位置(100.32, 50.24)。

      3.3 坐標系變換的鏈式法則

      在實際應用中,經常需要多個變換的組合。假設:

      1. 世界坐標系 → 相機坐標系

        • 旋轉:繞Z軸旋轉30度
        • 平移:\((200, 150, 500)\)
      2. 相機坐標系 → 圖像坐標系

        • 使用上述內參矩陣 \(\mathbf{K}\)

      完整變換過程

      • 3D點:\(\mathbf{P}_w = (100, 0, 0)^T\)
      • 旋轉矩陣(繞Z軸30度):

        \[\mathbf{R} = \begin{bmatrix} \cos30° & -\sin30° & 0 \\ \sin30° & \cos30° & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0.866 & -0.5 & 0 \\ 0.5 & 0.866 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]

      • 相機坐標系:\(\mathbf{P}_c = \mathbf{R} \cdot \mathbf{P}_w + \mathbf{t} = (0.866×100 + 200, 0.5×100 + 150, 500) = (286.6, 200, 500)\)
      • 圖像坐標:\((u, v) = \left(\frac{1000×286.6 + 320}{500}, \frac{1000×200 + 240}{500}\right) = (574.8, 400.5)\)

      3.4 誤差分析案例

      在實際標定中,由于測量噪聲等因素,變換結果不會完全精確??紤]一個簡單例子:

      理想變換:平移 \((50, 30)\)
      測量點對

      • 原始點:\((10, 20)\)
      • 測量結果:\((60.1, 50.2)\)(存在噪聲)

      計算誤差

      • 理論結果:\((60, 50)\)
      • 實際誤差:\(\sqrt{(60.1-60)^2 + (50.2-50)^2} = \sqrt{0.01 + 0.04} = 0.224\)

      這個誤差值就是重投影誤差的概念,在標定中我們通過最小化所有點的總誤差來獲得最優解。

      3.5 學習要點總結

      通過這些數據案例,我們可以理解:

      1. 齊次坐標的重要性:能夠統一表示各種變換
      2. 矩陣運算的鏈式性質:復雜變換可以分解為簡單變換的乘積
      3. 歸一化操作:透視變換后需要除以最后一個分量
      4. 誤差概念:實際測量與理論計算之間存在差異,標定的目標就是最小化這種差異

      這些基礎概念將幫助我們更好地理解后續的各種標定技術。

      四、2D平面標定與單應性矩陣

      4.1 核心概念

      2D平面標定處理的是平面到平面的變換問題。想象一張傾斜拍攝的文檔照片,我們想要將其校正為正視圖,這就是典型的2D平面標定應用。

      4.2 單應性矩陣(Homography Matrix)

      定義:單應性矩陣 \(\mathbf{H}\) 是一個3×3矩陣,描述兩個平面之間的透視變換關系。

      數學表達式

      \[\mathbf{x} \sim \mathbf{H} \cdot \mathbf{X} \]

      其中:

      • \(\mathbf{X} = (X, Y, 1)^T\) 是世界平面上的齊次坐標
      • \(\mathbf{x} = (u, v, 1)^T\) 是圖像平面上的齊次坐標
      • "\(\sim\)" 表示比例相等(齊次坐標的性質)

      展開形式

      \[\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} \sim \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix} \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} \]

      非齊次坐標形式

      \[u = \frac{h_{11}X + h_{12}Y + h_{13}}{h_{31}X + h_{32}Y + h_{33}}, \quad v = \frac{h_{21}X + h_{22}Y + h_{23}}{h_{31}X + h_{32}Y + h_{33}} \]

      4.3 求解方法

      求解條件

      • 至少需要4對不共線的對應點
      • 每對點提供2個獨立方程
      • 單應性矩陣有8個自由度(尺度無關)

      DLT算法步驟

      1. 構建線性方程組
        對于每對對應點 \((X_i, Y_i) \leftrightarrow (u_i, v_i)\)

        \[\begin{bmatrix} -X_i & -Y_i & -1 & 0 & 0 & 0 & u_iX_i & u_iY_i & u_i \\ 0 & 0 & 0 & -X_i & -Y_i & -1 & v_iX_i & v_iY_i & v_i \end{bmatrix} \mathbf{h} = 0 \]

      2. 奇異值分解(SVD)求解最小二乘解

      3. 歸一化:將解向量歸一化,使得 \(||\mathbf{h}|| = 1\)

      4.4 物理意義與分解

      單應性矩陣可以分解為相機內參和外參:

      \[\mathbf{H} = \mathbf{K} \cdot [\mathbf{r}_1 \quad \mathbf{r}_2 \quad \mathbf{t}] \]

      其中:

      • \(\mathbf{K} = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}\) 是相機內參矩陣
      • \(\mathbf{r}_1, \mathbf{r}_2\) 是旋轉矩陣的前兩列
      • \(\mathbf{t}\) 是平移向量

      4.5 實際應用案例

      場景:文檔掃描校正

      輸入數據

      世界坐標系(A4紙角點,單位:毫米):
      (0, 0), (210, 0), (210, 297), (0, 297)
      
      圖像坐標系(像素坐標):
      (120, 150), (380, 160), (390, 520), (110, 510)
      

      求解過程詳解

      第一步:構建線性方程組

      對于第一對對應點 (0, 0) ? (120, 150):

      -u?X? = -120×0 = 0     -v?X? = -150×0 = 0     u? = 120
      -u?Y? = -120×0 = 0     -v?Y? = -150×0 = 0     v? = 150
      -X? = -0                -Y? = -0                1 = 1
      u?X? = 120×0 = 0       v?X? = 150×0 = 0       u? = 120
      u?Y? = 120×0 = 0       v?Y? = 150×0 = 0       v? = 150
      

      第二步:構建完整系數矩陣

      對于4個點,構建8×9的系數矩陣:

      \[\mathbf{A} = \begin{bmatrix} 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 120 \\ 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 150 \\ -210 & 0 & -1 & 0 & 0 & 0 & 380×210 & 380×0 & 380 \\ 0 & -210 & -1 & 0 & 0 & 0 & 160×210 & 160×0 & 160 \\ -210 & -297 & -1 & 0 & 0 & 0 & 390×210 & 390×297 & 390 \\ 0 & -210 & -1 & 0 & 0 & 0 & 520×210 & 520×297 & 520 \\ 0 & 0 & -1 & 0 & 0 & 0 & 110×0 & 110×297 & 110 \\ 0 & -297 & -1 & 0 & 0 & 0 & 510×0 & 510×297 & 510 \end{bmatrix} \]

      第三步:SVD分解求解

      對矩陣 \(\mathbf{A}\) 進行奇異值分解:\(\mathbf{A} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^T\)

      最小二乘解對應于 \(\mathbf{V}\) 的最后一列(最小奇異值對應的右奇異向量)。

      第四步:獲得單應性矩陣

      通過SVD求解得到的向量(歸一化后):

      \[\mathbf{h} = [0.85, -0.02, 120.5, 0.03, 1.20, 148.2, 0.0001, 0.0002, 1.0]^T \]

      第五步:構建單應性矩陣

      \[\mathbf{H} = \begin{bmatrix} 0.85 & -0.02 & 120.5 \\ 0.03 & 1.20 & 148.2 \\ 0.0001 & 0.0002 & 1.0 \end{bmatrix} \]

      驗證求解結果

      測試點:世界坐標 (105, 148.5)(A4紙中心)

      使用單應性矩陣變換:

      u = (0.85×105 + (-0.02)×148.5 + 120.5) / (0.0001×105 + 0.0002×148.5 + 1.0)
        = (89.25 - 2.97 + 120.5) / (0.0105 + 0.0297 + 1.0)
        = 206.78 / 1.0402 = 198.79
      
      v = (0.03×105 + 1.20×148.5 + 148.2) / (0.0001×105 + 0.0002×148.5 + 1.0)
        = (3.15 + 178.2 + 148.2) / 1.0402
        = 329.55 / 1.0402 = 316.78
      

      重投影誤差檢查

      • 理論圖像坐標:(198.79, 316.78)
      • 實際檢測坐標:(約200, 約320)
      • 誤差:\(\sqrt{(200-198.79)^2 + (320-316.78)^2} = \sqrt{1.46 + 10.37} = 3.44\)像素

      應用:圖像校正

      使用逆矩陣校正

      1. 計算 \(\mathbf{H}^{-1}\)
      2. 對于輸出圖像的每個像素 \((u', v')\),計算:

        \[(X, Y, 1)^T = \mathbf{H}^{-1} \cdot (u', v', 1)^T \]

      3. 從輸入圖像的 \((X, Y)\) 位置復制像素值

      校正效果

      • 校正前:A4紙在圖像中呈現梯形(近大遠小的透視效果)
      • 校正后:A4紙呈現標準矩形,邊框平行,便于后續處理

      學習過渡:理解了2D平面標定的基本原理后,接下來學習9點標定。9點標定本質上是2D平面標定在工業自動化中的實用化版本,它通過使用更多點來提高精度,特別適合實際生產環境中的應用。

      五、9點標定技術

      5.1 核心概念

      9點標定是工業自動化中實用的2D坐標系映射技術。與2D平面標定一樣,它處理的是平面到平面的變換,但更注重實用性、精度和操作便利性。

      5.2 為什么選擇9個點?

      理論最小需求

      • 仿射變換:至少3個不共線點(6個自由度)
      • 透視變換:至少4個不共線點(8個自由度)

      實際選擇9個點的原因

      1. 精度提升:更多點提供冗余信息,通過最小二乘法降低誤差
      2. 噪聲抵抗:單個點的檢測誤差對整體結果影響減小
      3. 全局覆蓋:3×3網格分布覆蓋整個工作區域
      4. 工業標準:便于操作和標準化

      5.3 數學模型

      透視變換模型

      \[\begin{bmatrix} u_i \\ v_i \\ 1 \end{bmatrix} \sim \mathbf{H} \begin{bmatrix} X_i \\ Y_i \\ 1 \end{bmatrix} \]

      展開形式

      \[\begin{align} u_i &= \frac{h_{11}X_i + h_{12}Y_i + h_{13}}{h_{31}X_i + h_{32}Y_i + h_{33}} \\ v_i &= \frac{h_{21}X_i + h_{22}Y_i + h_{23}}{h_{31}X_i + h_{32}Y_i + h_{33}} \end{align} \]

      線性化處理

      交叉相乘得到線性方程:

      \[\begin{align} u_i(h_{31}X_i + h_{32}Y_i + h_{33}) &= h_{11}X_i + h_{12}Y_i + h_{13} \\ v_i(h_{31}X_i + h_{32}Y_i + h_{33}) &= h_{21}X_i + h_{22}Y_i + h_{23} \end{align} \]

      5.4 求解過程

      數據采集

      物理坐標系(3×3網格,單位:毫米):
      (0,0), (50,0), (100,0)
      (0,50), (50,50), (100,50)
      (0,100), (50,100), (100,100)
      
      圖像坐標系(對應像素坐標):
      (120, 130), (280, 125), (450, 135)
      (115, 290), (275, 285), (440, 295)
      (110, 460), (265, 455), (425, 470)
      

      構建方程組

      對于9個點,共18個方程:

      \[\mathbf{A} \cdot \mathbf{h} = 0 \]

      其中:

      • \(\mathbf{A}\) 是 18×9 的系數矩陣
      • \(\mathbf{h}\) 是包含9個單應性矩陣元素的向量

      最小二乘求解

      使用SVD分解求解:

      \[\min_{\mathbf{h}} ||\mathbf{A} \cdot \mathbf{h}||^2 \quad \text{s.t.} \quad ||\mathbf{h}|| = 1 \]

      5.5 精度評估

      重投影誤差

      \[\text{誤差} = \sqrt{(u_{pred} - u_{true})^2 + (v_{pred} - v_{true})^2} \]

      工業標準

      • 高精度應用:≤ 0.5像素
      • 一般應用:≤ 1.0像素
      • 粗略應用:≤ 2.0像素

      5.6 典型應用場景

      機器人抓取系統

      場景:傳送帶上的零件抓取
      輸入:相機檢測到目標在圖像坐標 (350, 200)
      變換:通過9點標定矩陣轉換
      輸出:機器人坐標系下的物理坐標 (175mm, 100mm)
      

      視覺檢測系統

      場景:PCB板缺陷檢測
      輸入:缺陷在圖像中的像素位置
      轉換:映射到PCB板的物理坐標
      輸出:缺陷距離板邊緣的具體距離(如:距左邊緣15.2mm,距上邊緣32.5mm)
      

      學習過渡:掌握了2D平面標定和9點標定后,我們現在要挑戰更復雜的問題:3D-2D標定,也就是相機標定。這里我們將處理真正的三維世界到二維圖像的映射,需要理解相機的內部工作原理。

      六、3D-2D標定(相機標定)

      6.1 核心概念

      相機標定是建立三維世界坐標到二維圖像坐標映射關系的過程。它是計算機視覺中最基礎的標定技術,決定了相機能否準確"看"到三維世界。

      6.2 相機成像模型

      針孔相機模型

      1. 世界坐標系 → 相機坐標系

        \[\mathbf{X}_c = \mathbf{R} \cdot \mathbf{X}_w + \mathbf{t} \]

      2. 相機坐標系 → 圖像坐標系

        \[\mathbf{x} = \mathbf{K} \cdot \mathbf{X}_c \]

      完整投影方程

      \[\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} \sim \mathbf{K} \begin{bmatrix} \mathbf{R} & \mathbf{t} \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} \]

      6.3 相機內參矩陣

      內參矩陣K包含相機的內部幾何參數:

      \[\mathbf{K} = \begin{bmatrix} f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} \]

      參數說明:

      • \(f_x, f_y\):焦距(像素單位)
      • \(c_x, c_y\):主點坐標(圖像中心)
      • \(s\):扭曲系數(現代相機中通常為0)

      6.4 畸變模型

      徑向畸變

      \[\begin{align} x_{corrected} &= x(1 + k_1r^2 + k_2r^4 + k_3r^6) \\ y_{corrected} &= y(1 + k_1r^2 + k_2r^4 + k_3r^6) \end{align} \]

      切向畸變

      \[\begin{align} x_{corrected} &= x + 2p_1xy + p_2(r^2 + 2x^2) \\ y_{corrected} &= y + p_1(r^2 + 2y^2) + 2p_2xy \end{align} \]

      其中 \(r^2 = x^2 + y^2\)

      6.5 OpenCV相機標定流程

      輸入數據

      • 3D世界點:標定板上特征點的真實坐標
      • 2D圖像點:對應特征點在圖像中的像素坐標
      • 多視圖:通常需要10-20張不同角度的標定板圖像

      標定過程

      1. 特征點檢測:使用cv::findChessboardCorners等算法
      2. 初始參數估計:DLT算法初步求解
      3. 非線性優化:最小化重投影誤差
      4. 精度評估:計算重投影誤差

      重投影誤差最小化

      \[\min_{\mathbf{K}, \mathbf{dist}, \{\mathbf{R}_i, \mathbf{t}_i\}} \sum_{i=1}^{N} \sum_{j=1}^{M} ||\mathbf{x}_{ij} - \text{project}(\mathbf{X}_{ij}, \mathbf{K}, \mathbf{dist}, \mathbf{R}_i, \mathbf{t}_i)||^2 \]

      6.6 實際應用案例

      標定板規格

      • 棋盤格:8×6個角點
      • 方格尺寸:30mm × 30mm
      • 拍攝圖像:15張不同角度

      標定結果示例

      // 相機內參矩陣
      K = [1562.3,    0.0,  640.5]
          [   0.0, 1560.1,  512.3]
          [   0.0,    0.0,    1.0]
      
      // 畸變系數
      dist = [-0.12, 0.08, 0.001, -0.002, 0.0]
      
      // 平均重投影誤差
      reprojection_error = 0.25 pixels
      

      應用效果

      • 標定前:物體邊緣存在明顯畸變
      • 標定后:圖像得到有效校正,物體邊緣恢復直線

      學習過渡:完成了相機標定后,我們面臨最復雜的挑戰:手眼標定。在實際的機器人視覺系統中,相機看到的坐標需要轉換為機器人能夠理解和執行的坐標。這涉及多個坐標系之間的復雜變換,是前面所有知識的綜合應用。

      七、手眼標定技術

      7.1 核心概念

      手眼標定是解決機器人坐標系與相機坐標系之間3D變換關系的技術。它是連接機器人"執行"與視覺"感知"的橋梁,也是四種標定技術中最為復雜的一種。

      與前三種標定技術不同,手眼標定需要同時處理:

      • 3D空間中的機器人運動
      • 相機視角下的位姿測量
      • 兩個坐標系之間的變換關系

      7.2 兩種安裝模式

      Eye-in-Hand(相機在手上)

      配置:相機固定在機器人末端執行器上

      求解目標:機器人末端坐標系到相機坐標系的變換 \(\mathbf{X}_{E \to C}\)

      數學關系

      \[\mathbf{T}_{E1 \to E2} \cdot \mathbf{X} = \mathbf{X} \cdot \mathbf{T}_{C1 \to C2} \]

      物理意義

      • 機器人末端從位置1移動到位置2
      • 相機觀察到同一目標在相機坐標系中的變化
      • 通過這兩個變換求解固定的手眼變換 \(\mathbf{X}\)

      Eye-to-Hand(相機在環境中)

      配置:相機固定在環境中,觀察機器人運動

      求解目標:機器人基坐標系到相機坐標系的變換 \(\mathbf{X}_{B \to C}\)

      數學關系

      \[\mathbf{X} \cdot \mathbf{T}_{B \to E2} = \mathbf{T}_{C \to E2} \]

      7.3 數學推導

      旋轉與平移分離

      手眼標定方程可以分解為旋轉和平移兩部分:

      旋轉方程

      \[\mathbf{R}_{E1 \to E2} \cdot \mathbf{R}_{X} = \mathbf{R}_{X} \cdot \mathbf{R}_{C1 \to C2} \]

      平移方程

      \[\mathbf{R}_{E1 \to E2} \cdot \mathbf{t}_X + \mathbf{t}_{E1 \to E2} = \mathbf{R}_{X} \cdot \mathbf{t}_{C1 \to C2} + \mathbf{t}_X \]

      求解算法

      1. Tsai-Lenz算法:經典求解方法
      2. Park-Martin算法:基于李群理論
      3. 現代優化方法:Bundle Adjustment等

      7.4 數據采集要求

      運動多樣性

      • 至少需要3個非冗余的機器人位姿
      • 運動應包含旋轉和平移
      • 避免純旋轉或純平移運動

      數據類型

      1. 機器人位姿數據

        • 機器人末端在基坐標系下的位姿
        • 來源:機器人控制器
        • 格式:旋轉矩陣 + 平移向量
      2. 相機測量數據

        • 標定板在相機坐標系下的位姿
        • 來源:PnP算法求解
        • 格式:旋轉矩陣 + 平移向量

      7.5 實際應用案例

      應用場景:視覺引導抓取

      系統配置:

      • 機器人:6軸工業機械臂
      • 相機:Eye-in-Hand配置,安裝在末端
      • 標定板:固定在工作臺上的8×8棋盤格

      標定過程:

      1. 機器人移動到5個不同位姿
      2. 每個位姿拍攝標定板圖像
      3. 使用PnP求解標定板位姿
      4. 求解手眼變換矩陣

      標定結果:
      X = [ 0.999 -0.012 0.041 15.23]
      [ 0.015 0.998 -0.062 8.91]
      [-0.039 0.064 0.997 120.45]
      [ 0.000 0.000 0.000 1.000]

      應用效果:

      • 目標在相機坐標系:(200, 150, 300)mm
      • 轉換到機器人基坐標系:(215.23, 158.91, 420.45)mm
      • 抓取精度:±1.5mm
      輸入:缺陷在圖像中的像素位置
      轉換:映射到PCB板的物理坐標
      輸出:缺陷距離板邊緣的具體距離(如:距左邊緣15.2mm,距上邊緣32.5mm)
      

      六、手眼標定技術

      6.1 核心概念

      手眼標定是解決機器人坐標系與相機坐標系之間3D變換關系的技術。它是連接機器人"執行"與視覺"感知"的橋梁。

      6.2 兩種安裝模式

      Eye-in-Hand(相機在手上)

      配置:相機固定在機器人末端執行器上
      求解目標:機器人末端坐標系到相機坐標系的變換 \(\mathbf{X}_{E \to C}\)

      數學關系

      \[\mathbf{T}_{E1 \to E2} \cdot \mathbf{X} = \mathbf{X} \cdot \mathbf{T}_{C1 \to C2} \]

      物理意義

      • 機器人末端從位置1移動到位置2
      • 相機觀察到同一目標在相機坐標系中的變化
      • 通過這兩個變換求解固定的手眼變換 \(\mathbf{X}\)

      Eye-to-Hand(相機在環境中)

      配置:相機固定在環境中,觀察機器人運動
      求解目標:機器人基坐標系到相機坐標系的變換 \(\mathbf{X}_{B \to C}\)

      數學關系

      \[\mathbf{X} \cdot \mathbf{T}_{B \to E2} = \mathbf{T}_{C \to E2} \]

      6.3 數學推導

      旋轉與平移分離

      手眼標定方程可以分解為旋轉和平移兩部分:

      旋轉方程

      \[\mathbf{R}_{E1 \to E2} \cdot \mathbf{R}_{X} = \mathbf{R}_{X} \cdot \mathbf{R}_{C1 \to C2} \]

      平移方程

      \[\mathbf{R}_{E1 \to E2} \cdot \mathbf{t}_X + \mathbf{t}_{E1 \to E2} = \mathbf{R}_{X} \cdot \mathbf{t}_{C1 \to C2} + \mathbf{t}_X \]

      求解算法

      1. Tsai-Lenz算法:經典求解方法
      2. Park-Martin算法:基于李群理論
      3. 現代優化方法:Bundle Adjustment等

      6.4 數據采集要求

      運動多樣性

      • 至少需要3個非冗余的機器人位姿
      • 運動應包含旋轉和平移
      • 避免純旋轉或純平移運動

      數據類型

      1. 機器人位姿數據

        • 機器人末端在基坐標系下的位姿
        • 來源:機器人控制器
        • 格式:旋轉矩陣 + 平移向量
      2. 相機測量數據

        • 標定板在相機坐標系下的位姿
        • 來源:PnP算法求解
        • 格式:旋轉矩陣 + 平移向量

      6.5 實際應用案例

      應用場景:視覺引導抓取

      系統配置:

      • 機器人:6軸工業機械臂
      • 相機:Eye-in-Hand配置,安裝在末端
      • 標定板:固定在工作臺上的8×8棋盤格

      標定過程:

      1. 機器人移動到5個不同位姿
      2. 每個位姿拍攝標定板圖像
      3. 使用PnP求解標定板位姿
      4. 求解手眼變換矩陣

      標定結果:

      \[X = \begin{bmatrix} 0.999 & -0.012 & 0.041 & 15.23 \\ 0.015 & 0.998 & -0.062 & 8.91 \\ -0.039 & 0.064 & 0.997 & 120.45 \\ 0.000 & 0.000 & 0.000 & 1.000 \\ \end{bmatrix} \]

      應用效果:

      • 目標在相機坐標系:(200, 150, 300)mm
      • 轉換到機器人基坐標系:(215.23, 158.91, 420.45)mm
      • 抓取精度:±1.5mm

      七、四種標定技術對比分析

      7.1 綜合對比表格

      特性維度 2D平面標定 9點標定 2D-3D標定 手眼標定
      變換維度 2D→2D 2D→2D 2D→3D 3D→3D
      核心輸出 單應性矩陣H 變換矩陣H 相機內參K,畸變系數 手眼變換矩陣X
      最小點數 4對 4對(實用9對) 6-8個點,多視圖 3個以上位姿
      輸入數據 2D世界點+2D圖像點 2D基準點+2D圖像點 3D世界點+2D圖像點 機器人位姿+相機位姿
      求解復雜度 中等
      應用場景 圖像校正、平面測量 工業坐標轉換 相機建模、3D重建 機器人視覺引導
      精度要求 1-2像素 0.5-1像素 0.5-1像素 1-2mm

      7.2 共同點分析

      1. 坐標變換本質:所有技術都涉及不同坐標系之間的變換關系
      2. 對應點需求:都需要已知對應關系的點對作為輸入
      3. 優化求解:都使用最小二乘法或類似優化算法
      4. 精度評估:都通過重投影誤差或類似指標評估精度

      7.3 核心區別

      維度復雜度遞增

      2D平面標定(最簡單)→ 9點標定 → 2D-3D標定 → 手眼標定(最復雜)
      

      應用場景差異

      • 學術研究:2D-3D標定(相機標定)是基礎
      • 工業應用:9點標定最實用,手眼標定針對機器人

      技術依賴關系

      手眼標定通常需要:
      1. 預先完成相機標定(2D-3D標定)
      2. 獲得準確的相機位姿測量
      

      八、實際應用案例

      8.1 完整的工業視覺系統

      系統背景:電子產品裝配線的自動檢測系統

      系統組成

      • 傳送帶系統
      • 工業相機(固定安裝)
      • 6軸機器人(帶末端夾具)
      • 視覺處理系統

      標定流程

      第一步:相機內參標定(2D-3D標定)

      目的:獲得相機的成像參數
      方法:使用棋盤格標定板,多角度拍攝
      工具:OpenCV calibrateCamera函數
      結果:內參矩陣K,畸變系數
      

      第二步:工作平面標定(9點標定)

      目的:建立圖像坐標與傳送帶物理坐標的映射
      方法:在傳送帶上放置9個標記點
      輸入:標記點物理坐標 + 圖像坐標
      輸出:2D變換矩陣
      

      第三步:手眼標定

      目的:建立機器人基坐標系與相機坐標系的變換
      方法:Eye-to-Hand配置,機器人末端移動標定板
      輸入:機器人位姿 + 相機測量的標定板位姿
      輸出:手眼變換矩陣X
      

      應用流程

      1. 產品檢測

      輸入:產品圖像
      處理:使用相機內參校正畸變
      檢測:識別缺陷位置(像素坐標)
      轉換:通過9點標定矩陣映射到傳送帶坐標
      輸出:缺陷在傳送帶上的物理位置
      

      2. 缺陷處理

      輸入:缺陷物理位置
      規劃:機器人抓取路徑
      執行:手眼變換確保機器人準確到達目標位置
      驗證:二次拍照確認缺陷已處理
      
      posted @ 2025-10-24 16:02  一樓二棟  閱讀(48)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品av综合导航| 中文字幕国产精品一区二| 色噜噜亚洲男人的天堂| 日韩国产中文字幕精品| 亚洲avav天堂av在线网爱情| 欧美亚洲另类制服卡通动漫| 人人妻人人澡人人爽人人精品av| 国产国语毛片在线看国产| 永川市| 国产亚洲真人做受在线观看| 亚洲人成小说网站色在线| 最新亚洲人成网站在线影院| 亚洲av日韩av永久无码电影| 国产日韩另类综合11页| 欧美粗大猛烈老熟妇| 亚洲日韩一区精品射精| 我要看特黄特黄的亚洲黄片 | 精品视频福利| 99久久无色码中文字幕| 亚洲av成人精品日韩一区| 久久91精品牛牛| 乱人伦人妻中文字幕无码久久网| 永吉县| 99国产欧美另类久久久精品| 真实单亲乱l仑对白视频| 国产欧美日韩另类精彩视频 | 中文字幕国产精品资源| 国产精品国产高清国产av| 国产精品久久久久乳精品爆| 人妻精品动漫h无码| 日本丰满老妇bbb| 一区天堂中文最新版在线| 国产日韩av二区三区| 中文字幕无码久久精品| 东京热人妻中文无码| h无码精品动漫在线观看| 免费无码va一区二区三区| 扎囊县| 人妻丝袜无码专区视频网站 | 中国少妇嫖妓BBWBBW| 国产一区二区不卡在线视频|