多視圖幾何:本質矩陣與基礎矩陣

文章目錄

  • 1. 前置知識
    • 1.1. 向量叉乘
    • 1.2. 混合積
    • 1.3. 引理證明
  • 2. 本質矩陣
  • 3. 基礎矩陣
  • 4. 應用例子

1. 前置知識

1.1. 向量叉乘

假設 a = ( a x a y a z ) \mathbf{a} = \begin{pmatrix} a_x \\ a_y \\ a_z \end{pmatrix} a= ?ax?ay?az?? ? 以及 b = ( b x b y b z ) \mathbf{b} = \begin{pmatrix} b_x \\ b_y \\ b_z \end{pmatrix} b= ?bx?by?bz?? ?,叉乘 a × b \mathbf{a} \times \mathbf{b} a×b 的矩陣表示為:
a × b = ( 0 ? a z a y a z 0 ? a x ? a y a x 0 ) ( b x b y b z ) = [ a ] × b (1) \mathbf{a} \times \mathbf{b} = \begin{pmatrix} 0 & -a_z & a_y \\ a_z & 0 & -a_x \\ -a_y & a_x & 0 \end{pmatrix} \begin{pmatrix} b_x \\ b_y \\ b_z \end{pmatrix} = [\mathbf{a}]_{\times} \mathbf{b} \tag{1} a×b= ?0az??ay???az?0ax??ay??ax?0? ? ?bx?by?bz?? ?=[a]×?b(1)其中, [ a ] × = ( 0 ? a z a y a z 0 ? a x ? a y a x 0 ) [\mathbf{a}]_{\times} = \begin{pmatrix} 0 & -a_z & a_y \\ a_z & 0 & -a_x \\ -a_y & a_x & 0 \end{pmatrix} [a]×?= ?0az??ay???az?0ax??ay??ax?0? ? 為反對稱矩陣,且有 [ a ] × T = ? [ a ] × [\mathbf{a}]_{\times}^T = -[\mathbf{a}]_{\times} [a]×T?=?[a]×?

1.2. 混合積

a \mathbf{a} a b \mathbf{b} b c \mathbf{c} c 是三個向量,則混合積的定義為: a ? ( b × c ) \mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) a?(b×c)。更進一步地,設 a = a 1 i + a 2 j + a 3 k \mathbf{a} = a_1 \mathbf{i} + a_2 \mathbf{j} + a_3 \mathbf{k} a=a1?i+a2?j+a3?k b = b 1 i + b 2 j + b 3 k \mathbf{b} = b_1 \mathbf{i} + b_2 \mathbf{j} + b_3 \mathbf{k} b=b1?i+b2?j+b3?k c = c 1 i + c 2 j + c 3 k \mathbf{c} = c_1 \mathbf{i} + c_2 \mathbf{j} + c_3 \mathbf{k} c=c1?i+c2?j+c3?k,則有:
a ? ( b × c ) = ∣ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ∣ (2) \mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) = \begin{vmatrix} a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \\ c_{1} & c_{2} & c_{3} \end{vmatrix} \tag{2} a?(b×c)= ?a1?b1?c1??a2?b2?c2??a3?b3?c3?? ?(2)證明:
a ? ( b × c ) = ( a 1 i + a 2 j + a 3 k ) ? ∣ i j k b 1 b 2 b 3 c 1 c 2 c 3 ∣ = ( a 1 i + a 2 j + a 3 k ) ? ( i ∣ b 2 b 3 c 2 c 3 ∣ ? j ∣ b 1 b 3 c 1 c 3 ∣ + k ∣ b 1 b 2 c 1 c 2 ∣ ) = a 1 ∣ b 2 b 3 c 2 c 3 ∣ ? a 2 ∣ b 1 b 3 c 1 c 3 ∣ + a 3 ∣ b 1 b 2 c 1 c 2 ∣ = ∣ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ∣ \begin{align*} \mathbf{a}\cdot(\mathbf{b}\times\mathbf{c}) &= \left(a_{1}\mathbf{i}+a_{2}\mathbf{j}+a_{3}\mathbf{k}\right)\cdot \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ b_{1} & b_{2} & b_{3} \\ c_{1} & c_{2} & c_{3} \end{vmatrix} \\ &= \left(a_{1}\mathbf{i}+a_{2}\mathbf{j}+a_{3}\mathbf{k}\right)\cdot \left( \mathbf{i} \begin{vmatrix} b_{2} & b_{3} \\ c_{2} & c_{3} \end{vmatrix} - \mathbf{j} \begin{vmatrix} b_{1} & b_{3} \\ c_{1} & c_{3} \end{vmatrix} + \mathbf{k} \begin{vmatrix} b_{1} & b_{2} \\ c_{1} & c_{2} \end{vmatrix} \right) \\ &= a_{1}\begin{vmatrix} b_{2} & b_{3} \\ c_{2} & c_{3} \end{vmatrix} - a_{2}\begin{vmatrix} b_{1} & b_{3} \\ c_{1} & c_{3} \end{vmatrix} + a_{3}\begin{vmatrix} b_{1} & b_{2} \\ c_{1} & c_{2} \end{vmatrix} \\ &= \begin{vmatrix} a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \\ c_{1} & c_{2} & c_{3} \end{vmatrix} \end{align*} a?(b×c)?=(a1?i+a2?j+a3?k)? ?ib1?c1??jb2?c2??kb3?c3?? ?=(a1?i+a2?j+a3?k)?(i ?b2?c2??b3?c3?? ??j ?b1?c1??b3?c3?? ?+k ?b1?c1??b2?c2?? ?)=a1? ?b2?c2??b3?c3?? ??a2? ?b1?c1??b3?c3?? ?+a3? ?b1?c1??b2?c2?? ?= ?a1?b1?c1??a2?b2?c2??a3?b3?c3?? ??證畢。

行列式具有性質:互換行列式的兩行或兩列,行列式的值變號。因此有:
a ? ( b × c ) = ∣ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ∣ = ∣ b 1 b 2 b 3 c 1 c 2 c 3 a 1 a 2 a 3 ∣ = b ? ( c × a ) = ∣ c 1 c 2 c 3 a 1 a 2 a 3 b 1 b 2 b 3 ∣ = c ? ( a × b ) \begin{align*} \mathbf{a}\cdot(\mathbf{b}\times\mathbf{c}) &= \begin{vmatrix} a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \\ c_{1} & c_{2} & c_{3} \end{vmatrix} \\ &= \begin{vmatrix} b_{1} & b_{2} & b_{3} \\ c_{1} & c_{2} & c_{3} \\ a_{1} & a_{2} & a_{3} \\ \end{vmatrix} = \mathbf{b}\cdot(\mathbf{c}\times\mathbf{a}) \\ &= \begin{vmatrix} c_{1} & c_{2} & c_{3} \\ a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \\ \end{vmatrix} = \mathbf{c} \cdot (\mathbf{a} \times \mathbf{b}) \end{align*} a?(b×c)?= ?a1?b1?c1??a2?b2?c2??a3?b3?c3?? ?= ?b1?c1?a1??b2?c2?a2??b3?c3?a3?? ?=b?(c×a)= ?c1?a1?b1??c2?a2?b2??c3?a3?b3?? ?=c?(a×b)?所以:
a ? ( b × c ) = b ? ( c × a ) = c ? ( a × b ) (3) \mathbf{a}\cdot(\mathbf{b}\times\mathbf{c}) = \mathbf{b}\cdot(\mathbf{c}\times\mathbf{a}) = \mathbf{c} \cdot (\mathbf{a} \times \mathbf{b}) \tag{3} a?(b×c)=b?(c×a)=c?(a×b)(3)此外,如果 a \mathbf{a} a b \mathbf{b} b c \mathbf{c} c 中任意兩個向量相等,則混合積等于零。不失一般性,假設 a = b \mathbf{a} = \mathbf{b} a=b,則有:
a ? ( a × c ) = a ? ( c × a ) = c ? ( a × a ) = 0 \mathbf{a}\cdot(\mathbf{a}\times\mathbf{c}) = \mathbf{a}\cdot(\mathbf{c}\times\mathbf{a}) = \mathbf{c} \cdot (\mathbf{a} \times \mathbf{a}) = 0 a?(a×c)=a?(c×a)=c?(a×a)=0

1.3. 引理證明

引理一 R ( a × b ) = ( R a ) × ( R b ) \mathbf{R}(\mathbf{a} \times \mathbf{b}) = (\mathbf{R} \mathbf{a}) \times (\mathbf{R} \mathbf{b}) R(a×b)=(Ra)×(Rb)
證明:
對于任意向量 v \mathbf{v} v

  • R ( a × b ) ? v = [ R ( a × b ) ] T v = ( a × b ) T R T v = ( a × b ) ? ( R T v ) \mathbf{R}(\mathbf{a} \times \mathbf{b}) \cdot \mathbf{v} = [\mathbf{R}(\mathbf{a} \times \mathbf{b})]^T \mathbf{v} = (\mathbf{a} \times \mathbf{b})^T \mathbf{R}^T \mathbf{v} = (\mathbf{a} \times \mathbf{b}) \cdot (\mathbf{R}^T\mathbf{v}) R(a×b)?v=[R(a×b)]Tv=(a×b)TRTv=(a×b)?(RTv)
  • 根據混合積、向量點積和旋轉矩陣 ( R R T = I , det ? ( R ) = 1 ) (\mathbf{R} \mathbf{R}^T = \mathbf{I}, \det(\mathbf{R}) = 1) (RRT=I,det(R)=1) 的性質有:
    [ ( R a ) × ( R b ) ] ? v = v ? [ ( R a ) × ( R b ) ] = det ? ( [ v R a R b ] ) = det ? ( R [ R T v a b ] ) = det ? ( R ) det ? ( [ R T v a b ] ) = det ? ( [ R T v a b ] ) = ( R T v ) ? ( a × b ) = ( a × b ) ? ( R T v ) \begin{align*} [(\mathbf{R} \mathbf{a}) \times (\mathbf{R} \mathbf{b})] \cdot \mathbf{v} &= \mathbf{v} \cdot [(\mathbf{R} \mathbf{a}) \times (\mathbf{R} \mathbf{b})] = \det([\mathbf{v} \quad \mathbf{R} \mathbf{a} \quad \mathbf{R} \mathbf{b}]) = \det(\mathbf{R}[\mathbf{R}^T\mathbf{v} \quad \mathbf{a} \quad \mathbf{b}]) \\ &= \det(\mathbf{R}) \det([\mathbf{R}^T\mathbf{v} \quad \mathbf{a} \quad \mathbf{b}]) = \det([\mathbf{R}^T\mathbf{v} \quad \mathbf{a} \quad \mathbf{b}]) \\ &= (\mathbf{R}^T\mathbf{v}) \cdot (\mathbf{a} \times \mathbf{b}) = (\mathbf{a} \times \mathbf{b}) \cdot (\mathbf{R}^T\mathbf{v}) \end{align*} [(Ra)×(Rb)]?v?=v?[(Ra)×(Rb)]=det([vRaRb])=det(R[RTvab])=det(R)det([RTvab])=det([RTvab])=(RTv)?(a×b)=(a×b)?(RTv)?

綜上有,對于任意向量 v \mathbf{v} v 有:
R ( a × b ) ? v = ( R a × R b ) ? v ? R ( a × b ) = ( R a ) × ( R b ) \mathbf{R}(\mathbf{a} \times \mathbf{b}) \cdot \mathbf{v} = (\mathbf{R} \mathbf{a} \times \mathbf{R} \mathbf{b}) \cdot \mathbf{v} \Rightarrow \mathbf{R}(\mathbf{a} \times \mathbf{b}) = (\mathbf{R} \mathbf{a}) \times (\mathbf{R} \mathbf{b}) R(a×b)?v=(Ra×Rb)?v?R(a×b)=(Ra)×(Rb)證畢。

2. 本質矩陣

在這里插入圖片描述
由上圖可知,本質矩陣 E \mathbf{E} E 在極線的計算中起著重要的作用。本質矩陣的計算方式如下: E = [ T ] × R = R [ R T T ] × (4) \mathbf{E} = [\mathbf{T}]_{\times} \mathbf{R} = \mathbf{R} [\mathbf{R}^T \mathbf{T}]_{\times} \tag{4} E=[T]×?R=R[RTT]×?(4)其中, R \mathbf{R} R T \mathbf{T} T 表示從圖像 I 1 I_1 I1? 到圖像 I 2 I_2 I2? 的旋轉矩陣和平移向量。

現在我們來證明 [ T ] × R = R [ R T T ] × [\mathbf{T}]_{\times} \mathbf{R} = \mathbf{R} [\mathbf{R}^T \mathbf{T}]_{\times} [T]×?R=R[RTT]×?。證明如下:
對于任意向量 v \mathbf{v} v 有:

  • [ T ] × R v = T × ( R v ) [\mathbf{T}]_{\times} \mathbf{R} \mathbf{v} = \mathbf{T} \times (\mathbf{R} \mathbf{v}) [T]×?Rv=T×(Rv)
  • R [ R T T ] × v = R ( R T T × v ) \mathbf{R} [\mathbf{R}^T \mathbf{T}]_{\times} \mathbf{v} = \mathbf{R} (\mathbf{R}^T\mathbf{T} \times \mathbf{v}) R[RTT]×?v=R(RTT×v)

T ′ = R T T \mathbf{T}^{\prime} = \mathbf{R}^T\mathbf{T} T=RTT,則 T = R T ′ \mathbf{T} = \mathbf{R} \mathbf{T}^{\prime} T=RT,根據引理一有:
T × ( R v ) = ( R T ′ ) × ( R v ) = R ( T ′ × v ) = R ( R T T × v ) = R [ R T T ] × v \mathbf{T} \times (\mathbf{R} \mathbf{v}) = (\mathbf{R} \mathbf{T}^{\prime}) \times (\mathbf{R} \mathbf{v}) = \mathbf{R}(\mathbf{T}^{\prime} \times \mathbf{v}) = \mathbf{R}(\mathbf{R}^T\mathbf{T} \times \mathbf{v}) = \mathbf{R} [\mathbf{R}^T \mathbf{T}]_{\times} \mathbf{v} T×(Rv)=(RT)×(Rv)=R(T×v)=R(RTT×v)=R[RTT]×?v所以,對于任意向量 v \mathbf{v} v 有:
[ T ] × R v = R [ R T T ] × v ? [ T ] × R = R [ R T T ] × [\mathbf{T}]_{\times} \mathbf{R} \mathbf{v} = \mathbf{R} [\mathbf{R}^T \mathbf{T}]_{\times} \mathbf{v} \Rightarrow [\mathbf{T}]_{\times} \mathbf{R} = \mathbf{R} [\mathbf{R}^T \mathbf{T}]_{\times} [T]×?Rv=R[RTT]×?v?[T]×?R=R[RTT]×?證畢。

3. 基礎矩陣

基礎矩陣與本質矩陣的關系如下:
F = K ′ ? T E K ? 1 = K ′ ? T [ T ] × R K ? 1 (5) \mathbf{F} = \mathbf{K}^{\prime-T} \mathbf{E} \mathbf{K}^{-1} = \mathbf{K}^{\prime-T} [\mathbf{T}]_{\times} \mathbf{R} \mathbf{K}^{-1} \tag{5} F=K?TEK?1=K?T[T]×?RK?1(5)其中, K \mathbf{K} K K ′ \mathbf{K}^{\prime} K 分別為圖像 I 1 I_1 I1? I 2 I_2 I2? 對應的內參矩陣。

l 1 l_1 l1? l 2 l_2 l2? 極線的方程為:
{ l 2 = F x 1 l 1 = F T x 2 (6) \begin{cases} l_2 = \mathbf{F} \mathbf{x}_1 \\ l_1 = \mathbf{F}^T \mathbf{x}_2 \end{cases} \tag{6} {l2?=Fx1?l1?=FTx2??(6)

4. 應用例子

假設圖像 I 1 I_1 I1? I 2 I_2 I2? 到世界坐標系的變換分別為 R s \mathbf{R}_s Rs? T s \mathbf{T}_s Ts? R t \mathbf{R}_t Rt? T t \mathbf{T}_t Tt?。已知圖像 I 1 I_1 I1? 存在點 x \mathbf{x} x,求對應的極線方程。

代碼如下:

R = R_t @ R_s.inverse()
T = R_s @ R_t.inverse() @ T_t - T_s
T = T.squeeze()S = torch.zeros((3, 3))
S[0, 1] = -T[2]
S[1, 0] = T[2]
S[0, 2] = T[1]
S[2, 0] = -T[1]
S[1, 2] = -T[0]
S[2, 1] = T[0]E = R @ S
F = K_t.inverse().transpose(0, 1) @ E @ K_s.inverse()epipolar_line = F @ x
a = epipolar_line[0]
b = epipolar_line[1]
c = epipolar_line[2]

上述代碼修改自:https://github.com/USMizuki/NexusGS/blob/main/utils/flow_utils.py。

設點 x \mathbf{x} x 對應的空間點為 X \mathbf{X} X,在圖像 I 2 I_2 I2? 的對應點為 x ′ x^{\prime} x,現在我們來進行理論推導:
{ x = R s X + T s x ′ = R t X + T t \begin{cases} \mathbf{x} = \mathbf{R}_s \mathbf{X} + \mathbf{T}_s \\ \mathbf{x}^{\prime} = \mathbf{R}_t \mathbf{X} + \mathbf{T}_t \end{cases} {x=Rs?X+Ts?x=Rt?X+Tt?? X = R s ? 1 ( x ? T s ) \mathbf{X} = \mathbf{R}_s^{-1} (\mathbf{x} - \mathbf{T}_s) X=Rs?1?(x?Ts?) 帶入 x ′ = R t X + T t \mathbf{x}^{\prime} = \mathbf{R}_t \mathbf{X} + \mathbf{T}_t x=Rt?X+Tt? 有:
x ′ = R t R s ? 1 ( x ? T s ) + T t = R t R s ? 1 x ? R t R s ? 1 T s + T t \mathbf{x}^{\prime} = \mathbf{R}_t \mathbf{R}_s^{-1} (\mathbf{x} - \mathbf{T}_s) + \mathbf{T}_t = \mathbf{R}_t \mathbf{R}_s^{-1} \mathbf{x} - \mathbf{R}_t \mathbf{R}_s^{-1} \mathbf{T}_s + \mathbf{T}_t x=Rt?Rs?1?(x?Ts?)+Tt?=Rt?Rs?1?x?Rt?Rs?1?Ts?+Tt?所以,從圖像 I 1 I_1 I1? I 2 I_2 I2? 的旋轉矩陣 R \mathbf{R} R 和平移向量 T \mathbf{T} T 的計算公式如下:
{ R = R t R s ? 1 T = ? R t R s ? 1 T s + T t (7) \begin{cases} \mathbf{R} = \mathbf{R}_t \mathbf{R}_s^{-1} \\ \mathbf{T} = - \mathbf{R}_t \mathbf{R}_s^{-1} \mathbf{T}_s + \mathbf{T}_t \end{cases} \tag{7} {R=Rt?Rs?1?T=?Rt?Rs?1?Ts?+Tt??(7) T \mathbf{T} T 的計算公式與代碼不符,不妨設代碼中對應 T ′ \mathbf{T}^{\prime} T,則有:
T ′ = R s R t ? 1 T t ? T s \mathbf{T}^{\prime} = \mathbf{R}_s \mathbf{R}_t^{-1} \mathbf{T}_t - \mathbf{T}_s T=Rs?Rt?1?Tt??Ts?不難發現 T \mathbf{T} T T ′ \mathbf{T}^{\prime} T 存在如下關系:
R t R s ? 1 T ′ = R t R s ? 1 ( R s R t ? 1 T t ? T s ) = T t ? R t R s ? 1 T s = T \mathbf{R}_t \mathbf{R}_s^{-1} \mathbf{T}^{\prime} = \mathbf{R}_t \mathbf{R}_s^{-1} (\mathbf{R}_s \mathbf{R}_t^{-1} \mathbf{T}_t - \mathbf{T}_s) = \mathbf{T}_t - \mathbf{R}_t \mathbf{R}_s^{-1} \mathbf{T}_s = \mathbf{T} Rt?Rs?1?T=Rt?Rs?1?(Rs?Rt?1?Tt??Ts?)=Tt??Rt?Rs?1?Ts?=T即有: R T ′ = T ? T ′ = R ? 1 T = R T T \mathbf{R} \mathbf{T}^{\prime} = \mathbf{T} \Rightarrow \mathbf{T}^{\prime} = \mathbf{R}^{-1} \mathbf{T} = \mathbf{R}^T \mathbf{T} RT=T?T=R?1T=RTT
則本質矩陣的計算方式為:
E = [ T ] × R = R [ R T T ] × = R [ T ′ ] × \mathbf{E} = [\mathbf{T}]_{\times} \mathbf{R} = \mathbf{R} [\mathbf{R}^T \mathbf{T}]_{\times} = \mathbf{R} [\mathbf{T}^{\prime}]_{\times} E=[T]×?R=R[RTT]×?=R[T]×?可以看出代碼中的 E \mathbf{E} E 采取的計算方式是 R [ T ′ ] × \mathbf{R} [\mathbf{T}^{\prime}]_{\times} R[T]×?

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

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

相關文章

Hive集群之間遷移的Linux Shell腳本

新舊 Hive 集群之前數據遷移單表腳本 migrate_hive_single_table.sh #!/bin/bash#配置參數 OLD_NAMENODE"hdfs://<old-namenode>:<old-port>" EXPORT_PATH"/tmp/hive-export/dm" NEW_DB"dm_events" TABLE_NAME"dm_usereventfi…

新時代的開始,華為開源倉頡編程語言!

7月30日&#xff0c;華為即將開源自研的倉頡編程語言。 倉頡這個名字很有意思。傳說中的倉頡創造了漢字&#xff0c;開啟了中華文明的文字時代。華為用這個名字&#xff0c;體現了對中華文化的致敬。從2020年開始研發&#xff0c;到去年首次亮相&#xff0c;再到現在的全面開源…

【python實用小腳本-128】基于 Python 的 Hacker News 爬蟲工具:自動化抓取新聞數據

引言 在技術社區中&#xff0c;Hacker News 是一個匯聚最新技術文章和討論的熱門平臺。許多開發者和技術愛好者依賴它來獲取行業動態和前沿資訊。然而&#xff0c;手動瀏覽和篩選這些文章可能耗時且低效。本文將介紹一個基于 Python 的 Hacker News 爬蟲工具&#xff0c;它能夠…

mac 電腦安裝Homebrew來安裝npm與node成功后,安裝nvm的流程

文章目錄 前言一、卸載node(如果沒下載可以忽略這步)1.官網下載安裝包的2. homebrew安裝的 二、安裝Homebrew(1) 命令安裝&#xff08;2&#xff09;出現上面提示&#xff0c;執行對應的命令&#xff08;3&#xff09;校驗是否安裝成功 三&#xff1a;安裝node&#xff08;Home…

根據無人機傾斜攝影osgb做的3dmax模型3dtiles制作,導出.b3dm加載到谷歌地圖cesiumlab

根據無人機傾斜攝影osgb做的3dmax模型3dtiles制作&#xff0c;導出.b3dm加載到谷歌地圖cesiumlab 根據無人機傾斜攝影osgb做的3dmax模型3dtiles制作&#xff0c;導出.b3dm加載到谷歌地圖cesiumlab

Yocto項目:嵌入式Linux開發的“萬能烹飪手冊”

目錄 一.Yocto是什么? 二.Yocto如何運作&#xff1f; 2.1 三大核心工具 2.2 實例 三.為什么開發者愛用Yocto&#xff1f; 3.1 ?自由定制&#xff0c;拒絕“全家桶”?? 3.2 跨平臺支持&#xff1a;從x86到火星芯片? 3.3 工業級可靠性? PetaLinux是Xilinx官方推出的…

【nosql】有哪些非關系型數據庫?

非關系型數據庫Nosql 分類 鍵值存儲 (Key-Value Store): 代表: Redis, DynamoDB, RocksDB, etcd核心優勢: 極致簡單、超高讀寫性能&#xff08;尤其內存型&#xff09;、高吞吐。場景: 緩存、會話存儲、配置、計數器、分布式協調、簡單消息隊列。 列式 / 寬列存儲 (Wide-Colu…

Redis存儲Cookie實現爬蟲保持登錄 requests | selenium

前言 前面已經介紹了requests和selenium這兩種方式的基礎知識和模擬登錄,但是我們需要每次都進行登錄,這明顯是很麻煩并且不合理的,所以這次我分享一下怎么可以讓我們的程序進行一次登錄之后,和普通瀏覽器一樣下次不進行登錄直接進行對網站數據的爬取 下面的我分享的內容需要…

leetcode:474. 一和零[01背包][動態規劃]

學習要點 給定背包容量&#xff0c;裝滿背包最多有多少個物品深入理解01背包深入理解動態規劃 題目鏈接 474. 一和零 - 力扣&#xff08;LeetCode&#xff09; 題目描述 解法:01背包 class Solution { public:int findMaxForm(vector<string>& strs, int m, int …

UE5 使用過程遇到的問題

切換緩存位置 進入界面&#xff0c;選擇-編輯-編輯器偏好設置搜索緩存&#xff0c;找到通用全局&#xff0c;修改本地DCC路徑到要切換的位置 閃退報錯 Fatal: Failed to get dll export function: cuvidGetDecoderCaps [NVDEC] 因為NVIDIA驅動沒有卸載干凈&#xff0c;使用D…

2025 BSidesMumbaiCTF re 部分wp

XORyy 附件拖入ida。明文 idkwhattonamethis 附件拖入ida 前三個函數都是檢查環境&#xff0c;跳過即可 長度為5&#xff0c;可以根據flag格式求解。腳本。盡管多解但是可能的結果很少 Diff_EQ 附件拖入ida z3求解等式&#xff0c;腳本。無反調試的情況下本地可以驗證&#xff…

圖靈完備之路(數電學習三分鐘)----邏輯與計算架構

經過前面幾節的學習&#xff0c;我們已經有了簡單的數電知識&#xff0c;下面&#xff0c;我們將正式進入設計簡單圖靈完備機的工作&#xff0c;首先&#xff0c;我們要設計出具有邏輯運算與計算功能的簡單結構&#xff1a; 1.邏輯架構 首先&#xff0c;該架構能實現多種邏輯…

【C++筆記】AVL樹的深度剖析

【C筆記】AVL樹的深度剖析 &#x1f525;個人主頁&#xff1a;大白的編程日記 &#x1f525;專欄&#xff1a;C筆記 文章目錄【C筆記】AVL樹的深度剖析前言一. AVL樹的概念二.AVL樹的實現2.1 AVL樹的結構2.2 AVL樹的插入2.3 平衡因子更新三.旋轉3.1旋轉的原則3.2右單旋3.3左單…

支持向量機(SVM)在肝臟CT/MRI圖像分類(肝癌檢測)中的應用及實現

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、CSDN平臺優質創作者&#xff0c;高級開發工程師&#xff0c;數學專業&#xff0c;10年以上C/C, C#, Java等多種編程語言開發經驗&#xff0c;擁有高級工程師證書&#xff1b;擅長C/C、C#等開發語言&#xff0c;熟悉Java常用開…

DeepSeek掃雷游戲網頁版HTML5(附源碼)

用DeepSeek幫忙生成一個網頁版的掃雷游戲&#xff0c;效果非常棒&#xff0c;基于HTML5實現&#xff0c;方便運行。 提示詞prompt 幫我做一個網頁版的 html5 掃雷游戲游戲功能說明 游戲難度&#xff1a; 1 簡單&#xff1a;1010 格子&#xff0c;10個地雷 2 中等&#xff1a;16…

Day53GAN對抗生成網絡思想

生成對抗網絡&#xff08;GAN&#xff09;是深度學習領域的一種革命性模型&#xff0c;由Ian Goodfellow等人于2014年提出。其核心思想源于博弈論中的零和博弈&#xff0c;通過兩個神經網絡&#xff08;生成器和判別器&#xff09;的對抗性訓練&#xff0c;實現數據的高質量生成…

meilisearch-輕量級搜索引擎

meilisearch是一款開源的輕量級搜索引擎&#xff0c;相比于elasticsearch等重量級搜索引擎&#xff0c;meilisearch注重數據搜索&#xff0c;從而而省去了其它不必要的功能&#xff08;如支持聚合分析、分布式搜索等特性&#xff09;&#xff0c;以便于快速上手開發和構建應用。…

51c大模型~合集150

我自己的原文哦~ https://blog.51cto.com/whaosoft/14034001 #原來Scaling Law還能被優化 Meta這招省token又提效 2017 年&#xff0c;一篇《Attention Is All You Need》論文成為 AI 發展的一個重要分水嶺&#xff0c;其中提出的 Transformer 依然是現今主流語言模型…

每天一個前端小知識 Day 23 - PWA 漸進式 Web 應用開發

PWA 漸進式 Web 應用開發&#xff08;離線緩存、桌面安裝等&#xff09; &#x1f9e0; 一、什么是 PWA&#xff1f; PWA&#xff08;Progressive Web App&#xff09;是一種讓 Web 應用具有類似原生 App 用戶體驗的技術體系。 PWA 不是一個框架&#xff0c;而是由一組瀏覽器 A…

音視頻會議服務搭建(設計方案-兩種集成方案對比)-03

前言在開始計劃之前&#xff0c;查閱了不少資料。一種方案是 Go層做信令業務&#xff0c;nodejs層來管理和mediasoup的底層交互&#xff0c;通過客戶端去調用Go層&#xff1b;第二種方案是 客戶端直接調用nodejs層來跟mediasoup去交互&#xff1b; 最終&#xff0c;當然不出意料…