文章目录

  • 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= axayaz 以及 b = ( b x b y b z ) \mathbf{b} = \begin{pmatrix} b_x \\ b_y \\ b_z \end{pmatrix} b= bxbybz ,叉乘 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= 0azayaz0axayax0 bxbybz =[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]×= 0azayaz0axayax0 为反对称矩阵,且有 [ 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=a1i+a2j+a3k 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=b1i+b2j+b3k 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=c1i+c2j+c3k,则有:
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)= a1b1c1a2b2c2a3b3c3 (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)=(a1i+a2j+a3k) ib1c1jb2c2kb3c3 =(a1i+a2j+a3k)(i b2c2b3c3 j b1c1b3c3 +k b1c1b2c2 )=a1 b2c2b3c3 a2 b1c1b3c3 +a3 b1c1b2c2 = a1b1c1a2b2c2a3b3c3 证毕。

行列式具有性质:互换行列式的两行或两列,行列式的值变号。因此有:
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)= a1b1c1a2b2c2a3b3c3 = b1c1a1b2c2a2b3c3a3 =b(c×a)= c1a1b1c2a2b2c3a3b3 =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)vR(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=KTEK1=KT[T]×RK1(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=Fx1l1=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=RsX+Tsx=RtX+Tt X = R s − 1 ( x − T s ) \mathbf{X} = \mathbf{R}_s^{-1} (\mathbf{x} - \mathbf{T}_s) X=Rs1(xTs) 带入 x ′ = R t X + T t \mathbf{x}^{\prime} = \mathbf{R}_t \mathbf{X} + \mathbf{T}_t x=RtX+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=RtRs1(xTs)+Tt=RtRs1xRtRs1Ts+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=RtRs1T=RtRs1Ts+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=RsRt1TtTs不难发现 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} RtRs1T=RtRs1(RsRt1TtTs)=TtRtRs1Ts=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=TT=R1T=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;当然不出意料…