Super Resolve Dynamic Scene from Continuous Spike Streams论文笔记
摘要
近期,脉冲相机在记录高动态场景中展示了其优越的潜力。不像传统相机将一个曝光时间内的视觉信息进行压缩成像,脉冲相机连续地输出二的脉冲流来记录动态场景,因此拥有极高的时间分辨率。而现有的脉冲相机重建方法主要集中在重建和脉冲相机相同分辨率的图像上。然而,作为高时间分辨率的权衡,脉冲相机的空间分辨率是有限的。为了处理这一问题,我们设计了一种脉冲相机超分辨率框架,旨在从低分辨率的二值脉冲流中得到超分辨率的光强图像。由于相机和捕捉物体之间的相对运动,传感器同一像素上激发的脉冲无法形容外在场景中的相同点。本文利用相对运动,推导出光强与每个脉冲之间的关系,以恢复高时间分辨率和高空间分辨率的外部场景。实验结果表明,该方法可以从低分辨率的脉冲流中重建出良好的高分辨率图像。
介绍
随着实时计算机视觉应用的发展,传统数码相机的缺点逐渐暴露。传统相机通常在一个曝光窗口内积累光电信息来形成快照帧。这样的的成像原理可以为静态场景产出富含细节的清晰图片。然而,对于拥有高速移动的动态场景,移动物体上的某一点会被投影到传感器的不同像素点上,导致运动模糊。
为了解决这一问题,脉冲相机被提出。脉冲相机可以持续地监控到达的光子并且激发连续的脉冲流,从而记录高分辨率的动态场景。相比于事件相机,脉冲相机可以记录绝对的光照强度而不是相对光强变化。
在本文中,我们针对脉冲相机设计了一种全新的图像重建框架。通过利用相对运动,我们可以恢复场景的分辨率远远高于由脉冲流直接提供的分辨率。我们仔细分析了脉冲相机的成像原理,基于脉冲相机成像原理,构建了图像光强和每个脉冲之间的关系,从而可以从脉冲流中得到超像素的光强信息。文章的主要贡献如下:
1、我们为脉冲相机提出了一种超分辨率框架。
2、我们不是简单地将图像超分辨率算法应用于脉冲相机的LR(低分辨率,low resolution)重建,而是推导出光强与每个脉冲之间的关系,从而从买从流中估计像素级的超分辨率光强。
3、实验结果显示所提出的方法可以从二值LR脉冲流中重建出不错的HR光强图像,这是现有方法做不到的。
背景知识
脉冲相机的工作机制
脉冲相机包含了一系列的像素点,每一个像素点独立地记录光照强度。每一个像素包含三个主要的部分:感光器、积分器和比较器。感光器从外部场景捕获入射光,并将光强转换为积分器可以识别的电压。积分器对转化而来的电荷做累加,比较器持续地检测积累的信号。一旦达到阈值 θ \theta θ,脉冲则会被激发,积分器重置,开始新一轮的“积累与发射”循环。
由于每一个像素独立工作,我们可以将我们的讨论限定在一个像素 p = ( r , c ) p=(r,c) p=(r,c)上。 p p p在 t t t时刻的电荷量可以表示为:
A ( t ) = ∫ Ω p ∫ 0 t α ⋅ I ( z , x ) d x d z m o d θ (1) A(t)=\int_{\Omega_p}\int_0^t\alpha\cdot I(z,x)dxdz\mod\theta\tag{1} A(t)=∫Ωp∫0tα⋅I(z,x)dxdzmodθ(1)
这里, Ω p \Omega_p Ωp表示像素 p p p包含的空间区域, I ( z , t ) I(z,t) I(z,t)表示 t t t时刻 z = ( x , y ) z=(x,y) z=(x,y)位置上的光照强度, α \alpha α表示光电转化效率。脉冲可以在任意的时间 t t t被激发,但是相机只能以离散时间二值信号 S ( n ) S(n) S(n)的形式读出脉冲(如图二所示)。具体来说,相机以一个固定的短时间间隙 T T T来检查flag,如果 t t t时刻(其中 ( ( n − 1 ) T < t ≤ n T ) ((n-1)T<t≤nT) ((n−1)T<t≤nT))有flag,则 S ( n ) = 1 S(n)=1 S(n)=1。否则, S ( n ) = 0 S(n)=0 S(n)=0。当光子连续到达时,传感器上的像素会同时独立地进行工作,激发出脉冲来表示特定数量光子的到达。随着时间的推进,相机会产生一些列的二值脉冲 S ∈ { 0 , 1 } H × W × N S\in \{0,1\}^{H\times W\times N } S∈{0,1}H×W×N(如图一(a)所示)。
问题描述
脉冲相机的目的是记录高速运动场景的动态光强变化过程。一旦脉冲阵列被捕捉到,我们旨在恢复出任何时刻的瞬时光强。特别是当考虑到脉冲相机有限的空间分辨率,我们的目标是超分辨高质量的光强图像与细节。我们没有采用简单结合脉冲重建算法和现有图像超分辨率算法的方法,而是直接估计每一个像素对应的超分辨率强度。这是一个病态的逆问题,可以表示为如下的形式。给定脉冲阵列 S ∈ { 0 , 1 } H × W × N S\in\{0,1\}^{H\times W\times N } S∈{0,1}H×W×N,我们的目标是从低分辨率的脉冲阵列中恢复高质量的高分辨率强度图像 I H D ∈ [ 0 , 255 ] c H × c W × c N I^{HD}\in[0,255]^{cH\times cW\times cN } IHD∈[0,255]cH×cW×cN,其中 c c c是放大因子。
方法
如图三所示,由于相机和物体之间的相对运动,传感器同一像素所激发的脉冲不再能描述物体上的相同点,而是记录了不同位置的光强。也就是说每一个脉冲会被映射到场景中的不同位置。通过合理地探索相机和场景之间的相对运动,恢复更高分辨率的场景是可能的。为此,我们开发了一个运动引导的脉冲相机超分辨率(MGSR, motion-guided spike camera super-resolution)框架,以从低分辨率的脉冲流中得到超分辨率图像。
强度脉冲关系
每一个脉冲对应了一定量的光子 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te),其中 p = ( r , c ) p=(r,c) p=(r,c)表示像素的位置, t s t_s ts和 t e t_e te分别表示当前脉冲循环的开始和结束时间。基于公式(1),脉冲 s s s和强度 I I I之间的关系可以表示为:
θ = ∫ Ω p ∫ t s t e α ⋅ I ( z , t ) d t d z (2) \theta=\int_{\Omega_p}\int_{t_s}^{t_e}\alpha\cdot I(z,t)dtdz\tag{2} θ=∫Ωp∫tsteα⋅I(z,t)dtdz(2)
假设我们打算重建 k k k时刻的场景。基于灰度一致性假设,给定任意时刻某一点的光强 I ( z , t ) I(z,t) I(z,t),都可以将其转换为 k k k时刻对应物体点的光强 I ( z + u t → k ( z ) , k ) I(z+u_{t\rightarrow k}(z),k) I(z+ut→k(z),k)。其中 u t → k ( z ) u_{t\rightarrow k}(z) ut→k(z)表示将 t t t时刻上 z z z位置映射到 k k k时刻对应位置的偏移量。因此,我们可以构建场景强度和任意脉冲 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te)之间的模型:
θ = ∫ Ω p ∫ t s t e α ⋅ I ( z , k ) M s ( z , t ) d t d z (3) \theta=\int_{\Omega_p}\int_{t_s}^{t_e}\alpha\cdot I(z,k)\mathcal{M}_s(z,t)dtdz\tag{3} θ=∫Ωp∫tsteα⋅I(z,k)Ms(z,t)dtdz(3)
这里, Ω \Omega Ω表示相机传感器的感受野, I ( z , k ) I(z,k) I(z,k)表示 k k k时刻 z z z位置的光强, M s ( z , t ) \mathcal{M}_s(z,t) Ms(z,t)是二值mask,表示强度 I ( z , k ) I(z,k) I(z,k)是否对 t t t时刻的脉冲 s s s有贡献。也就是说,如果 z z z的对应点 z + u k → t ( z ) z+u_{k\rightarrow t}(z) z+uk→t(z)处在像素 p p p包含的空间区域,则 I ( z , k ) I(z,k) I(z,k)对像素有贡献,将 M s ( z , t ) \mathcal{M}_s(z,t) Ms(z,t)设置为1。否则 M s ( z , t ) \mathcal{M}_s(z,t) Ms(z,t)被设为0。从而可以得到 M s ( z , t ) \mathcal{M}_s(z,t) Ms(z,t)的表达式:
M s ( z , t ) = { 1 , z + u k → t ( z ) ∈ Ω p 0 , o t h e r w i s e (4) \mathcal{M}_s(z,t)=\begin{cases} 1, \quad z+u_{k\rightarrow t}(z)\in \Omega_{p}\\ 0, \quad otherwise\\ \end{cases}\tag{4} Ms(z,t)={1,z+uk→t(z)∈Ωp0,otherwise(4)
其中 Ω p \Omega_p Ωp表示 p p p覆盖的空间区域。为了简单起见,我们使用 I k I_k Ik来表示 k k k时刻场景的光照强度。考虑到 I k ( z ) I_k(z) Ik(z)在时间上的连续性,公式(3)可以改写成:
θ = ∫ Ω ∫ t s t e α ⋅ I k ( z ) ⋅ M s ( z , t ) d t d z = ∫ Ω α ⋅ I k ( z ) ( ∫ t s t e M s ( z , t ) d t ) d z = ∫ Ω α ⋅ I k ( z ) ⋅ W s ( z ) d z (5) \theta=\int_{\Omega}\int_{t_s}^{t_e}\alpha\cdot I_k(z)\cdot \mathcal{M}_s(z,t)dtdz=\int_{\Omega}\alpha\cdot I_k(z)(\int_{t_s}^{t_e}\mathcal{M}_s(z,t)dt)dz=\int_{\Omega}\alpha\cdot I_k(z)\cdot \mathcal{W}_s(z)dz\tag{5} θ=∫Ω∫tsteα⋅Ik(z)⋅Ms(z,t)dtdz=∫Ωα⋅Ik(z)(∫tsteMs(z,t)dt)dz=∫Ωα⋅Ik(z)⋅Ws(z)dz(5)
其中 W s ( z ) = ∫ t s t e M s ( z , t ) d t \mathcal{W}_s(z)=\int_{t_s}^{t_e}\mathcal{M}_s(z,t)dt Ws(z)=∫tsteMs(z,t)dt代表 I k ( z ) I_k(z) Ik(z)对脉冲 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te)的贡献程度。
脉冲相机超像素
基于以上的分析,任意的 I k ( z ) I_k(z) Ik(z)和脉冲 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te)之间的关系可以被建模。为了超像素化光强图像,我们可以对重建平面进行重采样,建立如下的关系:
θ = ∑ q α ⋅ I k H R ( q ) ⋅ W s ( q ) (6) \theta=\sum_q\alpha\cdot I_k^{HR}(q)\cdot\mathcal{W}_s(q)\tag{6} θ=q∑α⋅IkHR(q)⋅Ws(q)(6)
这里 q = ( m , n ) q=(m,n) q=(m,n)表示 I k H R I_k^{HR} IkHR的坐标位置, W s ( q ) \mathcal{W}_s(q) Ws(q)表示 I k H R ( q ) I_k^{HR}(q) IkHR(q)对脉冲 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te)的贡献程度。一旦在 k k k时刻附近有足够的脉冲被积累,我们可以通过最小化下面的损失函数 J ( I K h r ) J(I_K^{hr}) J(IKhr)来超分辨率化 I k H R I_k^{HR} IkHR:
J ( I K H R ) = ∑ s = 1 N ∣ ∣ α ⋅ W s I k H R − θ ∣ ∣ 2 2 (7) J(I_K^{HR})=\sum_{s=1}^N||\alpha\cdot\mathcal{W}_sI_k^{HR}-\theta||_2^2\tag{7} J(IKHR)=s=1∑N∣∣α⋅WsIkHR−θ∣∣22(7)
其中 N N N表示选定时间框内的脉冲数量。 W s ∈ R 1 × M \mathcal{W}_s\in\mathbb{R}^{1\times M} Ws∈R1×M, M = c H × c W M=cH\times cW M=cH×cW表示待重建的高分辨率图像中的像素个数。
为了解决这一问题,我们设计了一种运动辅助的脉冲相机超分辨率(MGSR, motion-guided spike camera super resolution)框架,如图四所示。
首先,一个基础的亮度推测算法被运用在脉冲流 S S S中,生成一系列基础的亮度图像 { I t L R } , t ∈ ϕ k \{I_t^{LR}\},t\in\phi_k {ItLR},t∈ϕk。 ϕ k \phi_k ϕk的一个典型选择是 { k , k ± 1 , k ± 2 , ⋅ ⋅ ⋅ } \{k,k±1,k±2,\cdot\cdot\cdot\} {k,k±1,k±2,⋅⋅⋅}。有了基础的重建,我们可以估计出不同帧的位移量并且将 I k H R I_k^{HR} IkHR上的点映射到其他帧中。然后我们可以进一步计算出每个亮度图像像素 I k H R ( q ) I_k^{HR}(q) IkHR(q)对每个脉冲 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te)的贡献程度(这里 q q q指的是图像上的像素点, p p p指的是传感器上的像素点,可以通过图5或者更加直观的理解),构建出一系列的贡献图 { W s } \{\mathcal{W}_s\} {Ws}。基于贡献图 { W s } \{\mathcal{W}_s\} {Ws},高分辨率图像 I H R I^{HR} IHR可以通过求解公式(7)得到。
光强推测
假设一个短脉冲间隔内的光照强度是稳定的,我们粗略地推测出瞬时光强:
I t L R ( p ) = θ α ⋅ ( t e − t s ) (8) I_t^{LR}(p)=\frac{\theta}{\alpha\cdot(t_e-t_s)}\tag{8} ItLR(p)=α⋅(te−ts)θ(8)
其中, t e < t < t s t_e<t<t_s te<t<ts。值得注意的是,这些基本的重建只是用来估计相对运动。
运动估计
我们使用光流法来进行粗略估计,从而得到关键帧 I k L R I_k^{LR} IkLR到参考帧 I t L R I_t^{LR} ItLR的运动场信息:
u k → t = F ( I k L R , I t L R ) (9) u_{k\rightarrow t}=\mathcal{F}(I_k^{LR},I_t^{LR})\tag{9} uk→t=F(IkLR,ItLR)(9)
其中 F ( ⋅ ) \mathcal{F}(\cdot) F(⋅)表示光流法。 u k → t = ( u k → t h , u k → t v ) u_{k\rightarrow t}=(u_{k\rightarrow t}^h,u_{k\rightarrow t}^v) uk→t=(uk→th,uk→tv)表示 I k L R I_k^{LR} IkLR到 I t L R I_t^{LR} ItLR的运动场信息,可以将 I k L R I_k^{LR} IkLR映射到 I t L R I_t^{LR} ItLR。
权重计算
给定运动场信息 u k → t u_{k\rightarrow t} uk→t,给定任意点 z z z,我们都可以轻松地根据公式(4)推断出是否 I k H R ( z ) I_k^{HR}(z) IkHR(z)对脉冲 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te)有贡献。然后可以计算出每个图像像素 I k H R ( q ) I_k^{HR}(q) IkHR(q)对脉冲 s : ( p , t s , t e ) s:(p,t_s,t_e) s:(p,ts,te)的权重(贡献程度):
W s ( q ) = ∫ z ∈ Ω q ∫ t s t e M s ( z , t ) d t d z (10) \mathcal{W}_s(q)=\int_{z\in \Omega_q}\int_{t_s}^{t_e}\mathcal{M}_s(z,t)dtdz\tag{10} Ws(q)=∫z∈Ωq∫tsteMs(z,t)dtdz(10)
其中 Ω q \Omega_q Ωq表示像素 q q q在 I k H R I_k^{HR} IkHR中覆盖的范围。由于相机和场景的相对运动,一个脉冲通常通常和和 I k H R I_k^{HR} IkHR中的多个像素有关。相关像素的数量也会随着运动速度和脉冲生命周期 t e − t s t_e-t_s te−ts的增加而增加。图5展示了权重的计算,图6真实了不同相对运动对应的权重图。
超像素成像
一旦足够的脉冲被积累,我们可以通过解公式(7)来得到 c H × c W cH\times cW cH×cW的超像素图像。在本文中,我们使用了梯度下降法来求解这个问题,可以被表示为:
I k H R : = I K H R − γ ⋅ ∇ I k H R J ( I k H R ; W s ) (11) I_k^{HR}:=I_K^{HR}-\gamma\cdot\nabla_{I_k^{HR}}J(I_k^{HR};\mathcal{W}_s)\tag{11} IkHR:=IKHR−γ⋅∇IkHRJ(IkHR;Ws)(11)
其中 γ \gamma γ是更新梯度。特别地,我们也可以使用这个算法作为一个一般的重建算法,此时我们可以将 c c c设置为1,以重建与脉冲流相同空间分辨率的图像。在算法1中总结了所提出的MGSR方法。
实验结果
相关文章:

Super Resolve Dynamic Scene from Continuous Spike Streams论文笔记
摘要 近期,脉冲相机在记录高动态场景中展示了其优越的潜力。不像传统相机将一个曝光时间内的视觉信息进行压缩成像,脉冲相机连续地输出二的脉冲流来记录动态场景,因此拥有极高的时间分辨率。而现有的脉冲相机重建方法主要集中在重建和脉冲相…...

操作视频的开始与暂停
调用 ref.current.play() 方法来播放视频; 如果视频需要暂停,我们调用 ref.current.pause() 方法来暂停视频。 通过 useRef 创建的 ref 操作视频的开始与暂停 当用户点击按钮时,根据当前视频的状态,我们会开始或暂停视频&…...

使用Docker配置深度学习的运行环境
文章目录 推荐实验环境前言docker安装docker操作docker配置常见方法(安装包、联网、程序管理器)安装驱动的前提要求传统方法安装驱动程序程序管理器安装联网安装deb包安装 安装完成后的设置非传统方法安装-通过容器安装驱动的前提要求安装NVIDIA-Contain…...

三相PMSM的坐标变换
三相PMSM的坐标变换 三相PMSM的数学模型具有复杂性和耦合性的多变量系统。因此需要对其进行降阶和解耦变换。 Vα,Vb,Vc是自然坐标系。 Vα,Vβ是静止坐标系。 Vd,Vq是同步旋转坐标系。 自然坐标系 三相永磁同步电机的驱动电路…...

8.(Python数模)(预测模型一)马尔科夫链预测
Python实现马尔科夫链预测 马尔科夫链原理 马尔科夫链是一种进行预测的方法,常用于系统未来时刻情况只和现在有关,而与过去无关。 用下面这个例子来讲述马尔科夫链。 如何预测下一时刻计算机发生故障的概率? 当前状态只存在0(故…...

Leetcode1006笨阶乘
思路:以4为一个分组分别进行处理 class Solution:def clumsy(self, n: int) -> int:answer_dict {0:0,1: 1, 2: 2, 3: 6, 4: 7}if n > 4:answer n * (n - 1) // (n - 2) n - 3n - 4else:print(answer_dict[n])return answer_dict[n]print(answer)while n …...

阻塞非阻塞IO(BIO和NIO),IO多路复用
1.概念 NIO(New Input/Output)和BIO(Blocking Input/Output)是Java中用于处理输入输出的两种不同的模型。 BIO 会阻塞,等有了消息,立刻返回,一个线程处理一个recv(需要很多线程&…...

HTTP协议初识·中篇
加上目录,会出现导向不正确的情况,可能是bug,目录一长就容易出错? 本篇主要讲解了: 网页分离(网页代码和.c文件分离) html链接跳转 网页添加图片 确认并返回资源类型 填写正文长度属性 添加表单 临时重定向 补充知识&a…...

数学建模:拟合算法
🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 数学建模:拟合算法 文章目录 数学建模:拟合算法拟合算法多项式拟合非线性拟合cftool工具箱的使用 拟合算法 根据1到12点间的温度数据求出温度与时间之间的近似函数关系 F ( t ) F(…...

计算机网络-笔记-汇总
目录 📚 前言 🌸章节汇总 🚀 学习心得 ⌛2023年8月31日 星期四 📚 前言 在学习了【操作系统】、【计算机组成原理】之后 再来学习【计算机网络】,对计算机之间如何通信,有了一个大致的认识。 可以想象…...

STM32定时器定时及其应用
STM32定时器定时及其应用 定时器概述☆定时器相关配置CubeMX工程配置及程序实现固件库程序设计及实现 定时器概述 1. 工作原理 使用精准的时基,通过硬件的方式,实现定时功能。定时器核心就是计数器 2. 定时器分类 基本定时器(TIM6~TIM7…...

(牛客) 游游的字符重排(next_permutation的使用)
题目描述 游游定义一个字符串是“好串”,当且仅当该字符串相邻的字符不相等。例如"arcaea"是好串,而"food"不是好串。 游游拿到了一个字符串,她可以将该字符串的各个字符顺序随意打乱。她想知道一共可以生产多少种不同的…...

RTPEngine 通过 HTTP 获取指标的方式
文章目录 1.背景介绍2.RTPEngine 支持的 HTTP 请求3.通过 HTTP 请求获取指标的方法3.1 脚本配置3.2 请求方式 1.背景介绍 RTPEngine 是常用的媒体代理服务器,通常被集成到 SIP 代理服务器中以减小代理服务器媒体传输的压力,其架构如下图所示。这种使用方…...

聚鑫数藏平台——引领数字资产管理新风向
随着数字经济的飞速发展,新金融生态应运而生。区块链技术的崭新突破,使数字资产的重要性日益凸显,为投资者带来了前所未有的机遇和挑战。在此背景下,聚鑫数藏平台横空出世,引领着数字资产管理的新风向。 聚鑫数藏平台&…...

web3j solidity 转java
需要使用的环境 web3j,nodejs 安装编译sol工具 1 $ npm install -g solc 保存为hello.sol文件到本地 1 2 3 4 5 6 7 8 pragma solidity 0.4.19; contract hello { function main(uint a) constant returns (uint b) { uint result a * 8; …...

uniapp项目实战系列(3):底部导航栏与头部导航栏的配置
目录 系列往期文章(点击跳转)uniapp项目实战系列(1):导入数据库,启动后端服务,开启代码托管(点击跳转)uniapp项目实战系列(2):新建项目,项目搭建,微信开发工具…...

Jwt工具类
导入依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency> <dependency><groupId>javax.xml.bind</groupId><artifactId>jax…...

计算机网络-笔记-第五章-运输层
🌸章节汇总 一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 五、第五章——运输层 1、运输层概述 2、运输层端口号、复用、分用 (1࿰…...

java-参数传递机制
java参数传递机制都是值传递。 基本类型参数传输都是数据值。 传递到方法中的值是拷贝后的值。 引用类型参数传输的都是地址值。 如果是数组的参数传递,那么是引用传递(本质上还是值传递,但是由于数组的值传递是传递数组的内存地址…...

Python编程练习与解答 练习96:字符串是否表示整数
本练习将编写一个名为isInteger的函数,用于确定字符串中的字符是否代表有效整数,确定字符串是否表示整数时,则应忽略开通要或者结尾的任何空白。一旦这个空白被忽略,如果字符串的长度至少是1,且只包含数字,…...

Scala的特质trait与java的interface接口的区别,以及Scala特质的自身类型和依赖注入
1. Scala的特质trait与java接口的区别 Scala中的特质(trait)和Java中的接口(interface)在概念和使用上有一些区别: 默认实现:在Java中,接口只能定义方法的签名,而没有默认实现。而在…...

检查js中的字符串是否可以成为回文
探索 JavaScript 中的字符串操作领域揭示了一个令人着迷的挑战:确定给定的字符串是否可以转换为回文。回文,即正反读相同的单词或短语,具有固有的吸引力,并激发了寻求揭开其神秘属性的开发人员的好奇心。在本文中,我们…...

时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测)
时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测) 目录 时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1…...

WebSocket--技术文档--基本概念--《快速了解WebSocket协议》
阿丹: 不断学习新技术,丰富自己了解更多才能扩展更多世界可能。 官网 WebSocket首页、文档和下载 - HTML5开发相关 - OSCHINA - 中文开源技术交流社区 软件简介 WebSocket 是 HTML5 开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。 WebS…...

flutter报错-cmdline-tools component is missing
安装完androidsdk和android studio后,打开控制台,出现错误 解决办法 找到自己安装android sdk的位置,然后安装上,并将下面的勾选上 再次运行 flutter doctor 不报错,出现以下画面 Doctor summary (to see all det…...

torch.bmm功能解读
bmm 是 batched matrix multiple 的简写,即批量矩阵乘法,矩阵是二维的,加上batch一个维度,因此该函数的输入必须是两个三维的 tensor,三个维度代表的含义分别是:(批量,行,…...

如何使用Puppeteer进行金融数据抓取和预测
导语 Puppeteer是一个基于Node.js的库,可以用来控制Chrome或Chromium浏览器,实现网页操作、截图、PDF生成等功能。本文将介绍如何使用Puppeteer进行金融数据抓取和预测,以及如何使用亿牛云爬虫代理提高爬虫效果。 概述 金融数据抓取是指从…...

Linux下 Socket服务器和客户端文件互传
目录 1.项目描述 2.函数准备 2.1 gets函数 2.2 popen函数、fread函数 2.3 access 函数 2.4 exit 函数 2.5 strtok 函数 2.6 chdir函数 3.项目代码 3.1服务器代码 3.2客户端代码 4.问题总结 1.项目描述 基于Soket聊天服务器,实现服务器和客户端的文件传输。…...

Nginx详解 第五部分:Ngnix反向代理(负载均衡 动静分离 缓存 透传 )
Part 5 一、正向代理与反向代理1.1 正向代理简介1.2 反向代理简介 二、配置反向代理2.1 反向代理配置参数2.1.1 proxy_pass2.1.2 其余参数 2.2 配置实例:反向代理单台web服务器2.3 代理转发 三、反向代理实现动静分离四、缓存功能五、反向代理客户端的IP透传5.1 原理概述5.2 一…...

中国行政区域带坐标经纬度sql文件及地点获取经纬度方法
文章目录 前言一、如何获取某地的经纬度?1.1 搜索百度地图1.2 在下方找到地图开放平台1.3 下滑找到坐标拾取器1.4 使用 二、sql文件2.1 创建表2.2 插入数据 前言 当工作业务上需要涉及地图,给前端返回经纬度等场景,需要掌握区域经纬度的获取…...