网站ip过万/太原seo公司

网站ip过万,太原seo公司,上海的二字代码,中文域名注册网站今天介绍一篇 ACM SIGGRAPH 2024 的文章,关于手机影像中的去模糊的文章。 Deep Hybrid Camera Deblurring for Smartphone Cameras Abstract 手机摄像头尽管取得了显著的进步,但由于传感器和镜头较为紧凑,在低光环境下的成像仍存在困难&am…

今天介绍一篇 ACM SIGGRAPH 2024 的文章,关于手机影像中的去模糊的文章。

  • Deep Hybrid Camera Deblurring for Smartphone Cameras

Abstract

手机摄像头尽管取得了显著的进步,但由于传感器和镜头较为紧凑,在低光环境下的成像仍存在困难,这会导致曝光时间变长以及出现运动模糊的情况。传统的盲去卷积方法和基于学习的去模糊方法可能是消除模糊的潜在解决方案。然而,要达到实际应用中的良好性能仍然是一个挑战。为了解决这一问题,我们提出了一种基于学习的智能手机去模糊框架,将广角和超广角摄像头用作混合摄像头系统。我们同时拍摄一张长曝光的广角图像和一组短曝光的连拍超广角图像,并利用连拍的超广角图像对广角图像进行去模糊处理。
为了充分利用连拍的超广角图像,我们提出了 HCDeblur(混合摄像头去模糊),这是一个实用的去模糊框架,其中包括新颖的去模糊网络 HC-DNet 和 HC-FNet。HC-DNet 利用从连拍图像中提取的运动信息对广角图像进行去模糊处理,而 HC-FNet 则将连拍图像作为参考图像,进一步增强去模糊后的输出效果。
为了对所提出的方法进行训练和评估,我们引入了 HCBlur 数据集,该数据集由合成数据集和真实场景数据集组成。我们的实验表明,HCDeblur 实现了 SOTA 的去模糊效果。

Introduction

在这里插入图片描述

  • 图 1 我们的混合相机系统及去模糊结果。我们从智能手机上同时拍摄一张长曝光的广角图像W和一组短曝光的连拍超广角图像U,并利用这些连拍图像对图像W进行去模糊处理。与最先进的单张图像去模糊方法 NAFNet - 64 [Chen 等人,2022] 相比,我们的方法所得到的结果明显更加清晰。

尽管手机摄像头已经有了显著的改进,但由于其传感器和镜头较小,在低光环境下它们仍然表现不佳,这会导致曝光时间变长,并且因手部移动或移动物体而产生运动模糊。为了消除模糊,单张图像去模糊方法已得到了广泛研究。最近,基于学习的去模糊方法极大地提高了去模糊的性能。然而,如图 1 − ( c ) 1-(c) 1(c) 所示,单张图像去模糊的性能仍然有限,尤其是对于严重的模糊情况。

为了提高去模糊性能,人们已经提出了几种利用额外输入信息的方法,比如短曝光图像和事件数据。基于参考图像的去模糊方法会采用一张额外的短曝光图像作为参考图像,对长曝光图像进行去模糊处理。这些方法会对模糊图像和参考图像进行对齐和融合,以恢复出高质量的去模糊图像。然而,由于难以准确地将严重模糊的图像与参考图像进行对齐,它们在恢复清晰细节方面往往存在困难,尤其是对于严重模糊的图像。

事件引导的去模糊方法使用由 RGB 相机和事件相机组成的特殊设计的双摄像头,同时捕捉模糊图像和事件数据,并利用从事件数据中提取的运动信息实现显著的去模糊效果。然而,这些方法需要额外配备一个事件相机,而大多数商用相机通常并没有配备这种相机。

在本文中,我们提出了 HCDeblur,这是一个专门为苹果 iPhone 和三星 Galaxy 系列等现代智能手机设计的实用图像去模糊框架。如今,这些智能手机通常配备了多摄像头系统。我们的方法将此类多摄像头系统用作混合摄像头系统,该系统由主摄像头和帧率更高的副摄像头组成。混合摄像头系统会同时拍摄一张长曝光图像和一组短曝光连拍图像。这些连拍图像提供了曝光期间逐像素级别的相机和物体运动的关键信息,而从单张图像中获取这些信息颇具挑战,不过这些信息能显著提升去模糊性能。此外,连拍图像还包含高频细节,可弥补模糊图像中丢失的高频细节。HCDeblur 充分利用了连拍图像中的运动和细节信息,在图像去模糊方面取得了无与伦比的性能,如图 1 - (d).

混合相机去模糊的概念最早由本 - 埃兹拉(Ben - Ezra)和纳亚尔(Nayar)[本 - 埃兹拉和纳亚尔,2003 年] 提出,旨在解决图像去模糊问题中的不适定性。具体而言,他们提议使用一台低分辨率高速相机作为副相机。通过这台低分辨率高速相机,他们拍摄一组短曝光图像。然后利用这些图像估计一个均匀的运动模糊核,该模糊核随后用于对主相机拍摄的模糊图像进行非盲去卷积处理。 Tai 等人 [2008 年;2010 年] 进一步拓展了这一理念,使其能够处理非均匀去模糊和视频去模糊问题。

然而,这些方法依赖于经典的模糊模型和优化方法,这极大地限制了它们的性能。相比之下,我们的方法是一种基于学习的方法,采用了混合相机系统。我们的方法是专门为现实世界中的智能手机相机量身定制的,在实际场景中表现出卓越的性能。

如图 1 所示,我们的框架分别将智能手机的广角相机和超广角相机用作主相机和副相机。广角相机通常是智能手机中的主摄像头,它以较慢的快门速度拍摄图像。相反,超广角相机由于其具有更宽的视野(FOV),能够为广角相机所拍摄图像的整个区域收集运动和细节信息。这台副相机同时以较高的快门速度和帧率拍摄一组低分辨率图像。

在拍摄完一张广角图像和一组超广角连拍图像后,我们的框架会借助这些超广角连拍图像来估计出广角图像的去模糊版本。为此,我们引入了一个深度神经网络,它包含两个子网络:混合相机去模糊网络(HC - DNet)和融合网络(HC - FNet)。
HC - DNet 利用连拍图像构建逐像素的模糊核,并利用这些模糊核来得到广角图像的去模糊版本。由于使用了模糊核,与以往的单图像去模糊方法相比,HC - DNet 能产生质量更优的去模糊结果。然而,由于模糊导致的信息丢失以及模糊核估计不准确,其结果可能仍会存在伪影和残留模糊。为了缓解这一问题,受连拍成像技术的启发,HC-FNet 将整组连拍图像作为参考图像,对 HC-DNet 的输出进行优化。

为了对我们的方法进行训练和评估,我们还推出了 HCBlur 数据集,它由两个子数据集组成:HCBlur - Syn 和 HCBlur - Real。HCBlur - Syn 是一个用于训练和评估的合成数据集,包含 8568 对模糊的广角图像与对应的真实清晰图像,以及与之对应的清晰超广角连拍图像。另一方面,HCBlur-Real 是一个用于评估的真实数据集,提供了 471 对现实世界中的模糊广角图像和超广角连拍图像,但没有对应的真实清晰图像。我们使用 HCBlur 数据集进行的实验结果表明,我们的方法显著优于现有的最先进去模糊方法。

综上所述,我们的贡献包括:

  • HCDebur(混合相机去模糊框架),这是一个专门为智能手机相机设计的基于学习的混合相机去模糊框架;
  • HC-DNet(混合相机去模糊网络)和 HC-FNet(融合网络),前者利用超广角连拍图像对输入的广角图像进行去模糊处理,后者则利用超广角连拍图像对去模糊后的广角图像进行优化处理;
  • HCBlur 数据集,用于训练和评估混合相机去模糊方法。

Deep Hybrid Camera Deblurring

在这里插入图片描述

  • 图 2 HCDeblur 概述。我们的框架将一张长曝光的广角图像W和一组短曝光的超广角连拍图像U作为输入。我们估计一个单应性矩阵 H ^ \hat{H} H^,用于在视场对齐过程中对齐图像U(3.2 节),并计算逐像素的运动轨迹P(3.2 节)。HC - DNet 通过利用由运动轨迹P构建的模糊核K来执行基于核的去模糊操作(3.3 节)。去模糊处理之后,采用一个额外的对齐步骤,将连拍图像与去模糊后的广角图像 W D W_D WD进行对齐。HC - FNet 通过使用连拍图像的整个序列作为参考图像,进一步增强去模糊后的图像(3.4 节)。

图 2 展示了 HCDeblur 的整体架构。HCDeblur 将由我们的混合相机系统(3.1 节)拍摄的一张长曝光广角图像 W W W 和一组短曝光超广角图像 U = { U 1 , ⋯ , U N } U = \{U_1, \cdots, U_N\} U={U1,,UN} 作为输入,其中 U i U_i Ui 是第 i i i 张超广角图像, N N N 是超广角图像的数量。广角相机和超广角相机具有不同的视野(FOV)和光心,这导致它们之间存在几何上的不对齐。因此,为了从 U U U 中获取与 W W W 对齐的模糊核,我们使用视野对齐方法(3.2 节)对 W W W U U U 进行对齐。我们还计算了 U U U 中各像素的运动轨迹(3.2 节),以便构建模糊核。然后,我们在 HC - DNet(3.3 节)中使用根据运动轨迹构建的模糊核进行基于核的去模糊处理,从而得到一张去模糊后的图像 W D W_D WD。接着,我们使用 HC - FNet(3.4 节),借助 U U U 中的细节信息对 W D W_D WD 进一步优化,得到最终结果 W F W_F WF。接下来,我们将更详细地描述 HCDeblur 的各个组成部分。

3.1 Hybrid Camera System

对于混合相机系统,在我们的实验中使用了苹果 iPhone 13 Pro Max 的广角相机和超广角相机,它们的焦距分别为 26 毫米和 13 毫米。为了同时拍摄 W 和 U,我们使用多相机应用程序编程接口(API)开发了一款 IOS 应用程序。我们的应用程序以 4K 分辨率(2160×3840)拍摄广角图像,曝光时间在 1/15 秒到 1/2 秒之间。与此同时,该应用程序以每秒 60 帧(FPS)的帧率拍摄一组分辨率为 720P(720×1280)的超广角图像。由于广角图像的焦距是超广角图像的两倍,并且在水平和垂直轴上的像素数量是超广角图像的 3 倍,所以广角图像中的物体看起来比超广角图像中的物体大 6 倍。为了防止连拍图像出现模糊,我们将超广角相机的最大曝光时间限制为 1/120 秒。由于硬件的限制,两台相机的曝光时间无法做到完全同步。因此,为了使来自这两台相机的图像同步,我们还记录了广角相机和超广角相机曝光开始和结束的时间戳。

3.2 FOV Alignment and Motion Estimation

FOV Alignment,一旦拍摄到一张广角图像 W W W 和一组超广角图像 U U U,我们首先在视野对齐步骤中将 U U U W W W 进行对齐。为此,我们使用平面扫描方法 [柯林斯(Collins),1996 年] 找到一个能使 W W W U U U 达到最佳对齐的单应性矩阵。具体来说,我们首先通过求解以下式子来找到最佳深度 d ^ \hat{d} d^

d ^ = argmin d ∈ D MSE ( W , W ( U avg , H d ) ) (1) \hat{d} = \underset{d\in D}{\text{argmin}} \text{MSE}(W,\mathbb{W}(U_{\text{avg}},H_d)) \tag{1} d^=dDargminMSE(W,W(Uavg,Hd))(1)

其中, D D D 是一组深度候选值,MSE 表示均方误差, W \mathbb{W} W 是一个 warp(变换)函数。 U a v g U_{avg} Uavg U U U 这组图像的平均图像。我们使用 U a v g U_{avg} Uavg 来考虑 W W W 中的模糊情况。 H d H_d Hd 是用于反向 warp 的单应性矩阵,其定义为 H d = K u E d K w − 1 H_d = K_uE_dK_w^{-1} Hd=KuEdKw1 ,其中 K u K_u Ku K w K_w Kw 分别是超广角相机和广角相机的内参矩阵, E E E 是相对外参矩阵。 K w K_w Kw K u K_u Ku E E E 通过立体校准获得。一旦找到 d ^ \hat{d} d^ ,我们就计算出用于对齐 U U U 的单应性矩阵 H d ^ H_{\hat{d}} Hd^ ,我们将其记为 H ^ \hat{H} H^

请注意,清晰图像与模糊图像之间的对齐是一项具有挑战性的任务,尤其是在模糊程度较大的情况下,这限制了以往基于参考图像的去模糊方法的性能。相比之下,我们的方法能够实现更精确的对齐,因为我们可以从一组超广角参考图像中合成生成 U a v g U_{avg} Uavg。同样需要注意的是,我们的视野对齐方法(使用单个单应性矩阵来对齐 W W W U U U)可能会导致一些残余的未对齐情况。然而,我们的方法在设计上对这类问题具有鲁棒性。这是因为 HC-DNet 使用单应性矩阵并非为了直接将细节从 U U U 转移到 W W W,而是为了对齐模糊核。这些模糊核通常在空间上变化较为平滑,这使得它们对轻微的未对齐不太敏感。此外,一旦 HC-DNet 生成了去模糊图像 W D W_D WD,我们可以通过估计 W D W_D WD U U U 之间的光流来实现它们之间的精确对齐,并将其用于 HC-FNet。

Pixel-wise Motion Trajectories Estimation,除了视野对齐外,我们还会估计超广角图像 U U U 中的逐像素运动轨迹,这些轨迹将用于构建模糊核,以及在 HC - FNet 中对超广角图像进行对齐。为此,我们要估计 U U U 中相邻图像之间的光流。具体来说,我们用 c c c 表示 U U U 中时间上处于中间位置图像的索引。然后,对于 i < c i < c i<c 的情况,我们估计从 U i + 1 U_{i + 1} Ui+1 U i U_i Ui 的光流;对于 i > c i > c i>c 的情况,我们估计从 U i − 1 U_{i - 1} Ui1 U i U_i Ui 的光流。这样,我们就得到了 N − 1 N - 1 N1 个光流图。根据估计得到的光流图,我们通过累积这些光流图来构建逐像素运动轨迹 P = { P 1 , ⋯ , P N } P = \{P_1, \cdots, P_N\} P={P1,,PN} 。具体而言,在每个像素位置, P P P 包含一条由 N N N 个位移向量组成的运动轨迹,其中第 i i i 个向量是从中间图像到第 i i i 个图像的二维位移向量。在实验中,我们采用 RAFT 方法 [蒂德(Teed)和邓(Deng),2020 年] 来进行光流估计。

3.3 Kernel-based Deblurring using HC-DNet

Blur Kernel Construction,为了使用 HC-DNet 对 W W W 进行去模糊处理,我们利用从 U U U 估计得到的运动轨迹来构建模糊核。为此,我们首先使用单应性矩阵 H ^ \hat{H} H^对运动轨迹进行变换,得到变换后的运动轨迹 P ^ = { P ^ 1 , ⋯ , P ^ N } \hat{P} = \{\hat{P}_1, \cdots, \hat{P}_N\} P^={P^1,,P^N}。由于运动轨迹的长度N会因曝光时间而变化,而 HC-DNet 接受的是固定通道尺寸的输入张量。因此,我们通过对运动轨迹进行重采样,从这些运动轨迹中构建出长度固定的模糊核。

为了获得与广角图像W的曝光时间精确同步的模糊核,我们在考虑广角图像和超广角图像的时间戳的情况下,对运动轨迹进行重采样。具体来说,我们将第 i i i 张超广角图像曝光开始和结束的时间戳分别记为 t i , s t_{i,s} ti,s t i , e t_{i,e} ti,e。我们首先按如下方式计算相对时间戳 r i r_i ri

r i = ( t i , s + t i , e ) / 2 − t s W t s W − t e W (2) r_i = \frac{(t_{i,s} + t_{i,e})/2 - t_s^W}{t_s^W - t_e^W} \tag{2} ri=tsWteW(ti,s+ti,e)/2tsW(2)

其中, t s W t_s^W tsW t e W t_e^W teW分别表示图像W曝光开始和结束的时间戳。然后,我们通过对预先定义的九个时间戳集合对应的运动轨迹进行插值,来构建模糊核 K = { K 0 , K 0.125 , ⋯ , K 0.875 , K 1 } K = \{K_0, K_{0.125}, \cdots, K_{0.875}, K_1\} K={K0,K0.125,,K0.875,K1}。具体而言, K t K_t Kt的计算方式如下:

K t = ( t − r i ) ⋅ P ^ i + 1 − P ^ i r i + 1 − r i + P ^ i (3) K_t = (t - r_i)\cdot\frac{\hat{P}_{i + 1}-\hat{P}_{i}}{r_{i + 1}-r_{i}}+\hat{P}_{i} \tag{3} Kt=(tri)ri+1riP^i+1P^i+P^i(3)

其中, t ∈ { 0 , 0.125 , … , 0.875 , 1 } t \in \{0, 0.125, \ldots, 0.875, 1\} t{0,0.125,,0.875,1} r i r_i ri r i + 1 r_{i + 1} ri+1 是相对于每个 t t t U U U 中最近的相对时间戳, P ^ i \hat{P}_i P^i P ^ i + 1 \hat{P}_{i + 1} P^i+1分别是与 r i r_i ri r i + 1 r_{i + 1} ri+1对应的位移矢量图。最后,我们将所有t对应的 K t K_t Kt连接起来,得到通道大小为 18 的模糊核 K K K。图 3 展示了一个估计的模糊核示例。
在这里插入图片描述

  • 图 3 由逐像素运动轨迹构建的模糊核

HC-DNet,HC - DNet 将广角图像 W W W 和逐像素模糊核 K \mathbf{K} K 作为输入,并输出去模糊后的广角图像 W D W_D WD(图 4)。该网络采用 U 型网络(U - Net)架构,我们在编码器和解码器网络的每一层中都使用了 NAFBlocks 模块。为了利用模糊核K,我们设计了一种新颖的核可变形模块(KDB),并将其连接在编码器的每一层之前。在 KDB 中,首先通过 NAFBlocks 模块提取图像 W W W 和模糊核 K \mathbf{K} K 的特征。然后,根据图像 W W W 和模糊核 K \mathbf{K} K 的特征计算通道注意力机制,该机制关注模糊核的特征,以避免使用可能不准确的模糊核。随后,经过注意力处理的模糊核 K \mathbf{K} K 的特征被用于预测可变形卷积层的偏移量和权重,该可变形卷积层根据模糊核 K \mathbf{K} K 自适应地处理图像 W W W 的特征,从而在去模糊过程中更有效地利用模糊核 K \mathbf{K} K。最后,图像 W W W 的特征和可变形卷积层的输出被连接起来,然后通过一个卷积层进行处理。

在这里插入图片描述

3.4 Burst Image-based Refinement using HC-FNet

将图像 U U U 与去模糊后的广角图像 W D W_D WD 对齐。为了融合图像 U U U W D W_D WD,我们将图像 U U U W D W_D WD 下采样 6 倍后的图像 W D , 6 ↓ W_{D,6\downarrow} WD,6 对齐。为此,我们使用单应性矩阵 H ^ \hat{H} H^ 下采样 6 倍后的版本 H ^ 6 ↓ \hat{H}_{6\downarrow} H^6,对图像 U U U 和运动轨迹 P P P 进行变换,从而得到视场(FOV)对齐的超广角图像 U ~ = { U ~ 1 , ⋯ , U ~ N } \tilde{U} = \{\tilde{U}_1, \cdots, \tilde{U}_N\} U~={U~1,,U~N}和运动轨迹 P ~ = { P ~ 1 , ⋯ , P ~ N } \tilde{P} = \{\tilde{P}_1, \cdots, \tilde{P}_N\} P~={P~1,,P~N}。请注意, U ~ \tilde{U} U~并没有进行下采样,只是进行了对齐处理,以匹配广角图像的视场。然后,为了实现更精确的对齐,我们估计 W D , 6 ↓ W_{D,6\downarrow} WD,6 U ~ \tilde{U} U~的中心帧 U ~ c \tilde{U}_c U~c之间的光流 F ~ \tilde{F} F~。最后,通过结合 P ~ i \tilde{P}_i P~i F ~ \tilde{F} F~,我们计算从 W D , 6 ↓ W_{D,6\downarrow} WD,6到第i个视场对齐的超广角图像 U ~ i \tilde{U}_i U~i的光流 P ~ i W \tilde{P}_i^W P~iW

HC - FNet。图 5 展示了 HC - FNet 的整体架构,它基于连拍增强网络和 NAFBlock 模块的架构。HC - FNet 将视场对齐后的超广角图像 U ~ \tilde{U} U~ 和去模糊后的广角图像 W D W_D WD 作为输入,并输出经过优化的广角图像 W F W_F WF。HC - FNet 还将原始广角图像W作为额外输入,以获取 W D W_D WD 中可能缺失的信息。然后,HC - FNet 使用 NAFBlock 模块从每个 U ~ i \tilde{U}_i U~i 中提取特征,并使用 P ~ i W \tilde{P}_i^W P~iW 将特征图与 W D W_D WD 对齐。对齐后,将 W D W_D WD W W W 的特征连接到每个视场对齐的超广角图像 U ~ i \tilde{U}_i U~i 的特征图上。接着,每个超广角图像的这些组合特征会通过 NAFBlock 模块以逐帧的方式进行处理。之后,我们使用时间和空间注意力模块(TSA)将得到的特征合并为单帧。最后,合并后的特征会通过额外的 NAFBlock 模块和上采样层进一步处理和上采样。

HCBLUR DATASET

在本节中,我们将介绍 HCBlur - Syn 和 HCBlur - Real 数据集。为了构建 HCBlur - Syn 数据集,我们同时拍摄了清晰的广角和超广角视频,并通过对广角视频帧进行平均来合成模糊的广角图像。我们开发了一款 iOS 应用程序来同时拍摄广角和超广角视频。我们使用 iPhone 13 Pro Max 的广角和超广角摄像头作为我们的摄像系统。超广角摄像头以 60 帧每秒(FPS)的帧率拍摄分辨率为 720P(720×1280)的视频。同时,广角摄像头以 30 帧每秒(FPS)的帧率拍摄 4K 分辨率(2160×3840)的视频,这是多摄像头应用程序编程接口(API)所支持的最高帧率。简单地对 30 帧每秒的广角视频帧进行平均可能会由于帧之间的显著运动而导致模糊效果不连续。为了解决这个问题,我们估计广角视频连续帧之间的光流,并排除最大位移大于 36 像素的帧。然后,通过对广角视频中剩余的帧进行平均来生成模糊的广角图像W,并选择它们的时间中心帧作为真实图像(真值图像)。平均帧的数量是从集合 {5, 7, 9, 11, 13} 中随机采样得到的。

然后,对于每一张模糊的广角图像 W W W,我们根据时间戳从超广角视频中提取与 W W W 对应的超广角图像。之后,我们从这些提取出的连拍图像中随机选择一个子集,其帧数范围在 5 到 14 帧之间,以保持合理数量的连拍图像。为了模拟图像上的噪声,我们使用从我们的摄像系统中校准得到的散粒噪声和读出噪声参数,在W和U图像上合成泊松 - 高斯噪声。此外,我们采用了 Rim 等人提出的一种逼真的模糊合成流程,以提高 HCBlur - Syn 数据集对真实世界图像的泛化能力。这个流程包括帧插值和饱和像素合成。关于合成 HCBlur - Syn 数据集的更多细节可以在补充材料中找到。通过上述过程,我们收集了 1176 对涵盖各种室内、白天和夜间场景的广角和超广角视频,并合成了 8568 对广角模糊图像和一系列超广角图像,用于构建 HCBlur - Syn 数据集。为了训练和评估去模糊方法,我们将 HCBlur - Syn 数据集划分为训练集、验证集和测试集,它们分别包含 5795 对、880 对和 1731 对图像。HCBlur - Real 数据集提供了来自 157 个不同夜间和室内场景的 471 对真实世界的W和U图像。为了收集这个数据集,我们使用用于混合相机拍摄的 iOS 应用程序(第 3.1 节)同时拍摄广角图像和超广角图像。由于该数据集中不包含真实图像(真值图像),我们使用 HCBlur - Real 数据集通过无参考指标进行评估。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的基本指令(下)

目录 mv指令 more指令 less指令 head指令 tail 指令 继续理解文件 重定向和追加重定向操作 理解管道 find指令 whereis 指令 bc指令 uname ‒r指令 grep 指令 关机 扩展命令 zip/unzip 指令 tar指令 关于rzsz 系统间的文件互传 接上&#xff01; mv指令 m…

Unity WebGL IIS报错无法使用

Unity WebGL IIS报错无法使用 原因1&#xff1a;WebGL文件夹无访问权限 右键WebGL文件夹-属性 点击安全-编辑-添加 输入ever点击确定-应用即可

docker-compose install nginx(解决fastgpt跨区域)

CORS前言 CORS(Cross-Origin Resource Sharing,跨源资源共享)是一种安全措施,它允许或拒绝来自不同源(协议、域名、端口任一不同即为不同源)的网页访问另一源中的资源。它的主要作用如下: 同源策略限制:Web 浏览器的同源策略限制了从一个源加载的文档或脚本如何与另一…

vulnhub靶场之loly靶机

前言 挑战攻克该靶机30分钟 靶机&#xff1a;loly靶机&#xff0c;IP地址为192.168.10.11 攻击&#xff1a;kali&#xff0c;IP地址为192.168.10.6 靶机和攻击机都采用VMware虚拟机&#xff0c;都采用桥接网卡模式 文章涉及的靶机及工具&#xff0c;都可以自行访问官网或者项…

Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】

在测试工作中&#xff0c;需求文档中的图片&#xff08;如界面设计图、流程图&#xff09;往往是测试用例生成的重要参考。然而&#xff0c;手动提取图片并识别内容不仅耗时&#xff0c;还容易出错。本文将通过一个自研小工具&#xff0c;结合 PaddleOCR 和大模型&#xff0c;自…

Excel(函数篇):COUNTIF与CONUTIFS函数、SUMIF与SUMIFS函数、ROUND函数、MATCH与INDEX函数、混合引用与条件格式

目录 COUNTIF和COUNTIFS函数COUNTIF函数COUNTIFS函数SUMIF和SUMIFS函数SUMIF函数SUMIFS函数SUMIFS函数与控件实现动态年月汇总ROUND、ROUNDUP、ROUNDDOWN函数单元格混合引用条件格式与公式,标记整行数据MATCH和INDEX函数COUNTIF和COUNTIFS函数 COUNTIF函数 统计下“苏州”出现…

上位机数据可视化:使用QtCharts绘制波形图

工程配置 CMake文件 find_package(Qt5 COMPONENTS Charts REQUIRED)target_link_libraries(zhd-desktop PRIVATE Qt5::Charts)包含头文件以及名称空间&#xff08;这个很重要&#xff0c;没有包含名称空间编译器会提示找不到相关的类型&#xff09; #include <QtCharts&g…

CSS - Pseudo-classes(伪类选择器)

目录 一、介绍二、常用种类三、案例实现案例一&#xff1a;a标签使用link/visited/hover/active案例二&#xff1a;表单元素使用focus/disabled案例三、通过其余伪类实现元素灵活选中 一、介绍 CSS 伪类&#xff08;Pseudo-classes&#xff09; 用于定义元素的特定状态或结构位…

Ubuntu22.04虚拟机里安装Yolov8流程

1. 安装pytorch sudo apt install nvidia-cuda-toolkit nvcc --version # 官方适配地址&#xff1a;https://download.pytorch.org/whl/torch/import torch print(torch.__version__) print(torch.cuda.is_available())2. 安装环境 # cuDNN 安装&#xff1a;https://develop…

Spring 声明式事务管理

Spring 编程的方式实现事务管理&#xff0c;这样太过麻烦&#xff0c;需要在每个方法上面加上相应的事务处理操作&#xff0c;声明式事务处理能够很好的解决这个问题&#xff0c;比如通过tx命名空间&#xff0c;这样只需要配置就可以检测到相关的方法&#xff0c;或者是通过tra…

Chat2DB:让数据库管理像聊天一样简单

数据库工具的痛点与破局 在数据爆炸的时代&#xff0c;数据库管理工具已成为企业高效运营的刚需。然而&#xff0c;传统工具如Navicat、DBeaver虽功能强大&#xff0c;却让非技术人员和SQL新手望而却步。复杂的界面、繁琐的手动操作、晦涩的语法规则&#xff0c;成为横亘在数据…

Navicat for Snowflake 震撼首发,激活数据仓库管理全新动能

近日&#xff0c;Navicat 家族迎来了一位全新成员 — Navicat for Snowflake。Snowflake 是一款基于云架构的现代数据仓库解决方案&#xff0c;以其弹性扩展、高性能和易用性著称。这次首发的Navicat for Snowflake 专为简化 Snowflake 数据库管理任务而精心打造。它凭借其直观…

【项目合集】智能语音小车-微信小程序控制

功能需求&#xff1a; 车子检测环境温度、湿度&#xff0c;上报 APP、WEB 端显示实时数据可通过 APP 控制小车前进、左转、右转可通过语音控制小车前进后退车上一个 LED 灯&#xff0c;可通过 WEB、小程序控制在 APP、WEB 上均可注册登录 硬件清单 硬件 功能 备注 ESP32 …

人工智能与人的智能,改变一生的思维模型分享【4】决策树

决策树&#xff08; DECISION TREE&#xff09; 一般由一个决策图和若干可能的结果组成。是一种通过罗列解题的关键步骤以及各步骤发生的条件和结果&#xff0c;由此来创建到达目标的规划。 我们很早就知道有一个方法&#xff0c;叫做当你苦闷、纠结的时候&#xff0c;把你的所…

利用余弦相似度在大量文章中找出抄袭的文章

我前面的2篇文章分别讲了如果利用余弦相似度来判断2篇文章的相似度&#xff0c;来确定文章是否存在抄袭&#xff0c;和余弦相似度的原理&#xff0c;即余弦相似度到底是怎么来判断文章的相似性高低的等等。这一篇再说下&#xff0c;对于文章字数多和大量文章时&#xff0c;如果…

设计模式-对象创建

对象创建 前言1. Factory Method1.1 模式介绍1.2 模式代码1.2.1 问题代码1.2.2 重构代码 1.3 模式类图1.4 要点总结 2. Abstract Factory2.1 模式介绍2.2 模式代码2.2.1 问题代码2.2.2 重构代码 2.3 模式类图2.4 要点总结 3. Prototype3.1 模式介绍3.2 模式代码3.3 模式类图3.4…

SQLAlchemy系列教程:批量插入数据

高效地批量插入数据对于应用程序的性能至关重要。SQLAlchemy为批处理操作提供了几种机制&#xff0c;可以最大限度地减少开销并加快数据库事务时间。在本指南中&#xff0c;我们将探讨如何使用SQLAlchemy执行批量插入&#xff0c;包括从基础技术到高级技术。 搭建环境 在开始之…

openEuler系统迁移 Docker 数据目录到 /home,解决Docker 临时文件占用大问题

根据错误信息 write /var/lib/docker/tmp/...: no space left on device&#xff0c;问题的根源是 根分区&#xff08;/&#xff09;的磁盘空间不足&#xff0c;而非 /home 分区的问题。以下是详细解释和解决方案&#xff1a; 问题原因分析 Docker 临时文件占用根分区空间&…

Matlab 四分之一车辆被动悬架和模糊pid控制对比

1、内容简介 Matlab 183-四分之一车辆被动悬架和模糊pid控制对比 可以交流、咨询、答疑 2、内容说明 略 3.1 车辆多自由度模型建立 对于车辆动力学&#xff0c;一般都是研究其悬架系统&#xff0c;悬架系统由轮胎&#xff0c;轮胎空气&#xff0c;弹簧&#xff0c;减震器和…

LabVIEW旋转设备状态在线监测系统

为了提高大型旋转设备如电机和水泵的监控效率和故障诊断能力&#xff0c;用LabVIEW软件开发了一套实时监测与故障诊断系统。该系统集成了趋势分析、振动数据处理等多项功能&#xff0c;可实时分析电机电流、压力、温度及振动数据&#xff0c;以早期识别和预报故障。 ​ 项目背…