[论文阅读笔记30] (AAAI2024) UCMCTrack: Multi-Object Tracking with Uniform CMC 详细推导


这是群友的一篇工作,之前也没仔细看,正好今天放假,打算读一下论文陶冶情操。
这篇文章的公式比较多,我做一篇笔记解释一下,希望对大家有帮助~

论文地址: https://ojs.aaai.org/index.php/AAAI/article/view/28493

代码: https://github.com/corfyi/UCMCTrack


0. Abstract

在多目标跟踪中,相机不规则运动一直是一个难题,这是因为相机的快速运动会导致目标在画面中的位置发生突变,这样就很难再和过去的轨迹关联起来。一种办法是采用相机运动补偿(Camera Motion Compensation)方法,但是现有的利用CMC的方法速度都是比较慢的。为了解决这个问题,作者提出了一种新的Kalman Filter的方式,即将目标的运动状态与地面联系起来(地面就是画面中真实的地面,我认为这才是这篇论文核心的contribution。就是说,我们用边界框的坐标作为目标的运动特征,其实是有缺陷的,因为这只是目标在相机平面的投影。而目标在world coordinate中的真实位置,往往是更稳定的),并采用映射的Mahalanobis Distance作为IoU的一种替代方案,来度量目标与轨迹的相似性。

阅读这篇文章需要对Kalman Filter在MOT中的形式有基本了解,可以参见OCSORT
Mahalanobis Distance是原始Deep SORT论文中度量相似度的方式,其核心思想是按照Kalman状态向量的相似度衡量。具体参见我的B站讲解DeepSORT解读

可以看到,该方法的效果还是非常好的

在这里插入图片描述

1. Introduction

在引言部分,作者主要说明了用IoU metric为什么不行,这是因为相机运动的时候边界框变化会很大,如下图所示:

在这里插入图片描述
所以说,依靠相机平面(image plane)进行association是不可靠的,那么就要寻找一种可靠的表示,答案就是ground——把目标投影到真实的ground上,从而更加robust。

此外,过去的CMC方法(比如BoT-SORT)需要在每一帧,都估计前一帧到这一帧的相机运动,或者说计算两帧像素之间的仿射矩阵,这是很耗时的(我的实测,BoT-SORT在用orb算法做仿射矩阵的话,帧率好像只有5~10)。为了配合这一点,类似于ground-aware的Kalman Filter被提出了。该工作在一个序列中只使用一套参数,这样就避免了频繁计算仿射矩阵。

总结起来,核心创新点有两个:

  1. 引入了一种创新的非loU距离测量, 也就是映射的Mahalanobis Distance
  2. 为了应对相机运动的挑战,提出了一种不同于传统相机运动补偿技术的方法,不是逐帧计算视频序列的相机补偿参数,而是在整个序列上均匀地应用相同的补偿参数,大大减少了与相机运动偏差典型相关的计算负担。

2. Methodology

2.1 将坐标投射到3D世界坐标的地面上!

为了更本质地表征目标的运动,作者期望把目标的运动状态投影到地面上。一般来讲边界框的底边是地面,因此将边界框底边对应在地面上的坐标及其变化率作为状态向量:

x = [ x , y , x ˙ , y ˙ ] \mathbf{x} =[x,y,\dot{x},\dot{y}] x=[x,y,x˙,y˙]

根据线性相机模型,地面坐标 [ x , y ] [x, y] [x,y]和图像平面中的坐标 [ u , v ] [u,v] [u,v]存在如下关系:

[ u v 1 ] = A 1 γ [ x y 1 ] \left[\begin{array}{l}u \\ v \\ 1\end{array}\right]=\mathbf{A} \frac{1}{\gamma}\left[\begin{array}{l}x \\ y \\ 1\end{array}\right] uv1 =Aγ1 xy1

其中 γ \gamma γ是缩放因子, A \mathbf{A} A是投影矩阵。

在Kalman滤波中,我们还应定义状态向量噪声的协方差矩阵和观测(检测)噪声的协方差矩阵。我们假定检测噪声的协方差矩阵与边界框高宽有关,即:

R k u v = [ ( σ m w k ) 2 0 0 ( σ m h k ) 2 ] \mathbf{R}_k^{u v}=\left[\begin{array}{cc}\left(\sigma_m w_k\right)^2 & 0 \\ 0 & \left(\sigma_m h_k\right)^2\end{array}\right] Rkuv=[(σmwk)200(σmhk)2]

其是一个 2 × 2 2 \times 2 2×2的矩阵, σ m \sigma_m σm是一个超参数,表示缩放因子, k k k表示第 k k k个检测,相应地, w k , h k w_k,h_k wk,hk就是边界框的宽和高。

但是 R k u v \mathbf{R}_k^{u v} Rkuv是图像平面上的观测噪声的协方差矩阵,我们现在要把坐标投影到地面,那么地面坐标噪声的协方差矩阵 R \mathbf{R} R怎么办呢?

对于线性相机模型,如果已知相机的内参(由焦距、中心点等组成) K i \mathbf{K}_i Ki和外参(描述相机位姿变化的旋转矩阵与平移矩阵组成) K o \mathbf{K}_o Ko, 那么,从图像平面到3D世界坐标的转换方程为:

γ 0 [ u v 1 ] = K i K o [ x y z 1 ] \gamma_0\left[\begin{array}{l}u \\ v \\ 1\end{array}\right]=\mathbf{K}_i \mathbf{K}_o\left[\begin{array}{l}x \\ y \\ z \\ 1\end{array}\right] γ0 uv1 =KiKo xyz1

我们令 K i K o = [ θ i , j ] 3 × 4 \mathbf{K}_i \mathbf{K}_o=[\theta_{i,j}]_{3\times 4} KiKo=[θi,j]3×4, 并且假设地面为 X Y XY XY平面,也即坐标 z = z 0 z=z_0 z=z0为恒定值,则方程可以改写为

γ 0 [ u v 1 ] = [ θ 11 θ 12 θ 13 θ 14 θ 21 θ 22 θ 23 θ 24 θ 31 θ 32 θ 33 θ 34 ] [ x y z 0 1 ] \gamma_0\left[\begin{array}{l}u \\ v \\ 1\end{array}\right]=\left[\begin{array}{llll}\theta_{11} & \theta_{12} & \theta_{13} & \theta_{14} \\ \theta_{21} & \theta_{22} & \theta_{23} & \theta_{24} \\ \theta_{31} & \theta_{32} & \theta_{33} & \theta_{34}\end{array}\right]\left[\begin{array}{l}x \\ y \\ z_0 \\ 1\end{array}\right] γ0 uv1 = θ11θ21θ31θ12θ22θ32θ13θ23θ33θ14θ24θ34 xyz01

= [ θ 11 θ 12 θ 13 z 0 + θ 14 θ 21 θ 22 θ 23 z 0 + θ 24 θ 31 θ 32 θ 33 z 0 + θ 34 ] 1 γ [ x y 1 ] =\left[\begin{array}{ccc}\theta_{11} & \theta_{12} & \theta_{13} z_0+\theta_{14} \\ \theta_{21} & \theta_{22} & \theta_{23} z_0+\theta_{24} \\ \theta_{31} & \theta_{32} & \theta_{33} z_0+\theta_{34}\end{array}\right] \frac{1}{\gamma}\left[\begin{array}{l}x \\ y \\ 1\end{array}\right] = θ11θ21θ31θ12θ22θ32θ13z0+θ14θ23z0+θ24θ33z0+θ34 γ1 xy1

经过这种变形之后, γ ≠ γ 0 \gamma \ne \gamma_0 γ=γ0,但总之是个常数,所以我们就先这么表示。

比较上式和 [ u v 1 ] = A 1 γ [ x y 1 ] \left[\begin{array}{l}u \\ v \\ 1\end{array}\right]=\mathbf{A} \frac{1}{\gamma}\left[\begin{array}{l}x \\ y \\ 1\end{array}\right] uv1 =Aγ1 xy1

我们得到

A = = [ θ 11 θ 12 θ 13 z 0 + θ 14 θ 21 θ 22 θ 23 z 0 + θ 24 θ 31 θ 32 θ 33 z 0 + θ 34 ] \mathbf{A}==\left[\begin{array}{ccc}\theta_{11} & \theta_{12} & \theta_{13} z_0+\theta_{14} \\ \theta_{21} & \theta_{22} & \theta_{23} z_0+\theta_{24} \\ \theta_{31} & \theta_{32} & \theta_{33} z_0+\theta_{34}\end{array}\right] A== θ11θ21θ31θ12θ22θ32θ13z0+θ14θ23z0+θ24θ33z0+θ34

现在我们知道 [ u , v ] [u,v] [u,v]的协方差矩阵,要求 [ x , y ] [x,y] [x,y]的,那么要找出 [ x , y ] [x,y] [x,y] [ u , v ] [u,v] [u,v]的关系。有:

[ x y 1 ] = γ A − 1 [ u v 1 ] \left[\begin{array}{l}x \\ y \\ 1\end{array}\right]=\gamma \mathbf{A}^{-1} \left[\begin{array}{l}u \\ v \\ 1\end{array}\right] xy1 =γA1 uv1

我们记

A − 1 = [ a 11 a 12 a 13 a 21 a 22 a 33 a 31 a 32 a 33 ] \mathbf{A}^{-1}=\left[\begin{array}{lll}a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{33} \\ a_{31} & a_{32} & a_{33}\end{array}\right] A1= a11a21a31a12a22a32a13a33a33

x = γ ( a 11 u + a 12 v + a 13 ) y = γ ( a 21 u + a 22 v + a 23 ) 1 = γ ( a 31 u + a 32 v + a 33 ) x = \gamma (a_{11}u + a_{12}v + a_{13}) \\ y = \gamma (a_{21}u + a_{22}v + a_{23}) \\ 1 = \gamma (a_{31}u + a_{32}v + a_{33}) x=γ(a11u+a12v+a13)y=γ(a21u+a22v+a23)1=γ(a31u+a32v+a33)

我们接下来简化这个方程组,因为我们发现最后一个方程不含变量 x , y x,y x,y,因此这个方程组其实不是满秩的。

为表示方便,令

b 1 = ( a 11 u + a 12 v + a 13 ) b 2 = ( a 21 u + a 22 v + a 23 ) b 3 = ( a 31 u + a 32 v + a 33 ) b_1 = (a_{11}u + a_{12}v + a_{13}) \\ b_2 = (a_{21}u + a_{22}v + a_{23}) \\ b_3 = (a_{31}u + a_{32}v + a_{33}) b1=(a11u+a12v+a13)b2=(a21u+a22v+a23)b3=(a31u+a32v+a33)

这其实就是论文里的(19)式
b = A − 1 [ u v 1 ] = [ b 1 b 2 b 3 ] b=\mathbf{A}^{-1}\left[\begin{array}{l}u \\ v \\ 1\end{array}\right]=\left[\begin{array}{l}b_1 \\ b_2 \\ b_3\end{array}\right] b=A1 uv1 = b1b2b3

接下来,我们把上式两边对时间t求导,得到

d x = a 11 ( d γ u + d u γ ) + a 12 ( d γ v + d v γ ) + a 13 d γ d y = a 21 ( d γ u + d u γ ) + a 22 ( d γ v + d v γ ) + a 23 d γ 0 = a 31 ( d γ u + d u γ ) + a 32 ( d γ v + d v γ ) + a 33 d γ dx = a_{11}(d\gamma u+du\gamma) + a_{12}(d\gamma v+dv\gamma)+a_{13}d\gamma \\ dy = a_{21}(d\gamma u+du\gamma) + a_{22}(d\gamma v+dv\gamma)+a_{23}d\gamma \\ 0=a_{31}(d\gamma u+du\gamma) + a_{32}(d\gamma v+dv\gamma)+a_{33}d\gamma dx=a11(dγu+duγ)+a12(dγv+dvγ)+a13dγdy=a21(dγu+duγ)+a22(dγv+dvγ)+a23dγ0=a31(dγu+duγ)+a32(dγv+dvγ)+a33dγ

整理后,有

{ d x = γ ( a 11 d u + a 12 d v ) + b 1 d γ d y = γ ( a 21 d u + a 22 d v ) + b 2 d γ d γ = − ( 1 b 3 ) 2 ( a 31 d u + a 32 d v ) \left\{\begin{array}{l}d x=\gamma\left(a_{11} d u+a_{12} d v\right)+b_1 d \gamma \\ d y=\gamma\left(a_{21} d u+a_{22} d v\right)+b_2 d \gamma \\ d \gamma=-\left(\frac{1}{b_3}\right)^2\left(a_{31} d u+a_{32} d v\right)\end{array}\right. dx=γ(a11du+a12dv)+b1dγdy=γ(a21du+a22dv)+b2dγdγ=(b31)2(a31du+a32dv)

对于第一个式子,容易发现 b 1 = b 3 x b_1=b_3 x b1=b3x, 并将 d γ d\gamma dγ带入,则

b 1 d γ = b 3 x d γ = − ( 1 b 3 ) x ( a 31 d u + a 32 d ) b_1 d \gamma=b_3x d\gamma =-(\frac{1}{b_3})x(a_{31} d u+a_{32} d ) b1dγ=b3xdγ=(b31)x(a31du+a32d)

所以

d x = d u ( γ a 11 − a 31 1 b 3 x ) + d v ( γ a 12 − a 32 1 b 3 x ) dx = du(\gamma a_{11}-a_{31}\frac{1}{b_3}x)+dv(\gamma a_{12} -a_{32}\frac{1}{b_3}x ) dx=du(γa11a31b31x)+dv(γa12a32b31x)

同理,我们也可以得到

d y = d u ( γ a 21 − a 31 1 b 3 x ) + d v ( γ a 22 − a 32 1 b 3 x ) dy = du(\gamma a_{21}-a_{31}\frac{1}{b_3}x)+dv(\gamma a_{22} -a_{32}\frac{1}{b_3}x ) dy=du(γa21a31b31x)+dv(γa22a32b31x)

当然, γ = 1 / b 3 \gamma = 1/b_3 γ=1/b3, 因此将上面两式子表示成矩阵:

[ d x d y ] = [ γ a 11 − a 31 γ x γ a 12 − a 32 γ x γ a 21 − a 31 γ y γ a 22 − a 32 γ y ] [ d u d v ] \left[\begin{array}{l}d x \\ d y\end{array}\right]=\left[\begin{array}{cc}\gamma a_{11}-a_{31} \gamma x & \gamma a_{12}-a_{32} \gamma x \\ \gamma a_{21}-a_{31} \gamma y & \gamma a_{22}-a_{32} \gamma y\end{array}\right]\left[\begin{array}{l}d u \\ d v\end{array}\right] [dxdy]=[γa11a31γxγa21a31γyγa12a32γxγa22a32γy][dudv]

如果向量 x x x的协方差矩阵为 R R R, y = F x y=Fx y=Fx, 则 y y y的协方差矩阵为 F R F T FRF^T FRFT

根据上面的定理,这里

F = [ γ a 11 − a 31 γ x γ a 12 − a 32 γ x γ a 21 − a 31 γ y γ a 22 − a 32 γ y ] F = \left[\begin{array}{cc}\gamma a_{11}-a_{31} \gamma x & \gamma a_{12}-a_{32} \gamma x \\ \gamma a_{21}-a_{31} \gamma y & \gamma a_{22}-a_{32} \gamma y\end{array}\right] F=[γa11a31γxγa21a31γyγa12a32γxγa22a32γy]

所以地面投影观测的协方差矩阵为

R = F R k u v F T \mathbf{R} = F\mathbf{R}_k^{u v} F^T R=FRkuvFT

这样第一个创新点就讲完了,也就是在将图像平面坐标映射到世界坐标后,协方差矩阵是怎么做的,这样Kalman的形式就能够精确确定了。

2.2 投影到地面后的马氏距离计算

DeepSORT采用马氏距离对状态向量的相似度进行计算,这里采用了相似的方式。

首先计算观测值与预测值的差:

ϵ = z − H x ^ \epsilon=\mathbf{z}-\mathbf{H} \hat{\mathbf{x}} ϵ=zHx^

注意上面的量都是投射到地面之后的
随后计算残差的协方差矩阵:

S = H P H T + R k \mathbf{S}= \mathbf{H}\mathbf{P}\mathbf{H}^T+\mathbf{R}_k S=HPHT+Rk

其中 P \mathbf{P} P为状态向量的协方差矩阵

距离为:

D = ϵ S ϵ − 1 + ln ⁡ det ⁡ S D = \epsilon \mathbf{S} \epsilon^{-1}+\ln \mathbf{\det S} D=ϵSϵ1+lndetS

比DeepSORT多了一个 ln ⁡ det ⁡ S \ln \mathbf{\det S} lndetS项. 我们知道行列式意义是矩阵张成形状的体积,我猜测在这里应该起到一个罚项的作用

用图解释就是下面这样, 意思就是在IoU=0的情况下, 普通的马氏距离是不行的, 因为线性模型本身就失效了, 而map到地面之后就可以:

在这里插入图片描述

2.3 处理噪声补偿

这部分的意思是, 当相机运动的时候, 恒定速度假设失效, 因此不妨搞一个非线性模型, 来对状态向量的噪声的协方差矩阵进行修正.

作者假设, 非线性运动的时候, 速度和时间成正比, 因此距离和时间二次方成正比:

Δ x = 1 / 2 σ Δ t 2 Δ v = σ Δ t \Delta x = 1/2 \sigma \Delta t^2 \\ \Delta v = \sigma \Delta t Δx=1/2σΔt2Δv=σΔt

其中 σ \sigma σ表示强度

那么, 噪声 [ σ x , σ y ] [\sigma_x, \sigma_y] [σx,σy]的更新矩阵:

G = [ 1 / 2 Δ t 2 0 Δ t 0 0 1 / 2 Δ t 2 0 Δ t ] G = \left[\begin{array}{cc}1/2 \Delta t^2 & 0 \\ \Delta t & 0 \\ 0 & 1/2 \Delta t^2 \\ 0 & \Delta t \end{array}\right] G= 1/2Δt2Δt00001/2Δt2Δt

[ σ x , σ y ] = G [ σ x , σ y ] [\sigma_x, \sigma_y]=G[\sigma_x, \sigma_y] [σx,σy]=G[σx,σy]

因此, 原本的状态向量噪声的协方差矩阵为 d i a g ( σ x , σ y ) diag (\sigma_x, \sigma_y) diag(σx,σy), 修正后为

Q k = G d i a g ( σ x , σ y ) G T Q_k=Gdiag (\sigma_x, \sigma_y)G^T Qk=Gdiag(σx,σy)GT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/527620.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java数据结构与算法刷题-----LeetCode238. 除自身以外数组的乘积

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 动态规划:左右乘积列表2. 滚动数组对动态规划过程…

uni-app(H5)论坛 | 社区 表情选择 UI组件

项目源码请移步:bbs 效果 实现思路 表情切换 人物、动物、小黄人不同表情之间的切换实际就是组件的切换 emoji表情 emoji表情本身就是一种字符 如需其他emoji表情可参考 EmojiAll中文官方网站 需要注意的就是数据库的存储格式需要支持emoji表情,我项…

聚道云连接器打通红圈CRM和金蝶云星辰,赋能环境科技公司数字化转型

一、客户介绍 某环境科技有限公司是一家专注于环保科技领域的领先企业,致力于为客户提供全方位的环境解决方案。公司拥有一支经验丰富、技术精湛的团队,不断推动环保技术的创新与应用。作为业内的佼佼者,该公司在环境治理、资源回收和节能减…

zookeeper源码(12)命令行客户端

zkCli.sh脚本 这个命令行脚本在bin目录下: ZOOBIN"${BASH_SOURCE-$0}" ZOOBIN"$(dirname "${ZOOBIN}")" ZOOBINDIR"$(cd "${ZOOBIN}"; pwd)"# 加载zkEnv.sh脚本 if [ -e "$ZOOBIN/../libexec/zkEnv.sh&qu…

GitHub教程:最新如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细步骤讲解(图文教程)

🐯 GitHub教程:最新如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细步骤讲解(图文教程) 📁 文章目录 🐯 GitHub教程:最新如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细步骤讲解(图…

FLV 封装格式详解

FLV 封装格式详解 FLV 封装格式详解简介FLV 格式FLV headerFLV bodyback-pointerFLV tagFLV tag headerFLV tag data:audio tagFLV tag data:video tagFLV tag data:script tag 总结:FLV 层次结构实例:flvAnalyser 解析…

pytorch演示pipeline并行

pytorch演示pipeline并行 1.单卡内存不够时,可以将网络切分成几段(stage),每个GPU负责一个stage。比如GPU0计算完之后将数据发送给GPU1算后续的stage 2.以上的方式,会导致GPU的利用率不高,可以将输入的batch切分成多份更小的batch,陆续送给GPU0,这样GPU0处理完micro batch0之后…

Anthropic 的 Claude 3 现能从数百个选项中可靠地挑选出合适的工具来完成任务

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

flood_fill 算法|图形渲染

flood fill 算法常常用来找极大连通子图,这是必须掌握的基本算法之一! 图形渲染 算法原理 我们可以利用DFS遍历数组把首个数组的值记为color,然后上下左右四个方向遍历二维数组数组如果其他方块的值不等于color 或者越界就剪枝 return 代码…

浮点数在计算机中的存储

这一段代码的输出是什么? int main() {int n 9;float *pFloat (float *)&n;printf("n的值为:%d\n",n);printf("*pFloat的值为:%f\n",*pFloat);*pFloat 9.0;printf("num的值为:%d\n",n);pri…

企业网络安全运营能力的多维度评价及优化策略

网络安全是企业面临的一个日益重要的问题,安全运营能力的强弱直接关系到企业的健康可持续发展和综合竞争力的提升。为推动企业网络安全工作的标准化建设,提升企业的网络安全运营能力,本文从安全建设、安全应对和安全效果三个角度出发&#xf…

如何给MySQL数据库的所有表统一加上字段

在开发过程中,有时候慢慢的建了很多数据库表,但是后来发现需要统一增加某些字段的时候,可以通过alter语句 ALTER TABLE 表名 ADD 列名 数据类型;比如我要给t_user表增加gmt_create与gmt_modified字段,用作记录新增记录时间与更新…

达梦关键字(如:XML,EXCHANGE,DOMAIN,link等)配置忽略

背景:在使用达梦数据库时,查询SQL中涉及XML,EXCHANGE,DOMAIN,link字段,在达梦中是关键字,SQL报关键词不能使用的错误。 解决办法: 配置达梦安装文件E:\MyJava\dmdbms\data\DAMENG\dm.ini 忽略这些关键词,…

CGAL的交叉编译-androidlinux-arm64

由于项目算法需要从Linux移植到android,原先的CGAL库也需要进行移植,先现对CGAL的移植过程做下记录,主要是其交叉编译的过程.。 前提条件: 1、主机已安装NDK编译器,版本大于19 2、主机已安装cmake 和 make 3、主机…

政安晨:【Keras机器学习实践要点】(二十二)—— 基于 TPU 的肺炎分类

目录 简述 介绍 / 布置 加载数据 可视化数据集 建立 CNN 纠正数据失衡 训练模型 拟合模型 可视化模型性能 ​编辑预测和评估结果 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客…

达梦(DM)报错[-3209]: 无效的存储参数

[TOC](达梦(DM)报错[-3209]: 无效的存储参数) 最近有一个项目,一直使用的是达梦数据库,今天遇到了一个问题,就是将测试环境新增加的表导入线上时报错 [-3209]: 无效的存储参数,这里我用我本地的达梦数据库复现一下这个问题&#…

【HTML】简单制作一个动态变色光束花

目录 前言 开始 HTML部分 效果图 ​编辑​编辑​编辑​编辑总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,其中HTML的文件名改为[index.html]&a…

python-flask后端知识点

anki 简单介绍: 在当今信息爆炸的时代,学习已经不再仅仅是获取知识,更是一项关于有效性和持续性的挑战。幸运的是,我们有幸生活在一个科技日新月异的时代,而ANKI(Anki)正是一款旗舰级的学习工具…

【深度学习】环境搭建ubuntu22.04

清华官网的conda源 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 安装torch conda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidia 2.2.2 conda install 指引看这里: ref:https://docs.nvidia.com/cuda/cuda-installatio…

高创新 | Matlab实现OOA-CNN-GRU-Attention鱼鹰算法优化卷积门控循环单元注意力机制多变量回归预测

高创新 | Matlab实现OOA-CNN-GRU-Attention鱼鹰算法优化卷积门控循环单元注意力机制多变量回归预测 目录 高创新 | Matlab实现OOA-CNN-GRU-Attention鱼鹰算法优化卷积门控循环单元注意力机制多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现OOA…