论文阅读:Guided Linear Upsampling
今天介绍一篇有趣的文章,Guided Linear Upsampling,基于引导的线性上采样,这是发表在 ACM transaction on Graphic 的一篇工作。
Abstract
引导上采样是加速高分辨率图像处理的一种有效方法。在本文中,文章作者提出了一种简单而有效的引导上采样方法。高分辨率图像中的每个像素表示为两个低分辨率像素的线性插值,其索引和权重经过优化以最小化上采样误差。下采样可以联合优化,以防止遗漏小的孤立区域。该方法可以从颜色线模型和局部颜色变换推导得出。与以前的方法相比,该方法可以更好地保留细节效果,同时抑制诸如渗色和模糊等伪影。它高效、易于实现且没有需要仔细微调的参数。我们使用广泛的图像运算符评估所提出的方法,并通过定量和定性分析展示其优势。我们展示了我们的方法在交互式图像编辑和实时高分辨率视频处理方面的优势。特别是对于交互式编辑,联合优化可以预先计算,因此无需硬件加速即可实现即时反馈。
Method
给定一个图像运算符 f f f 和具有 RGB 颜色的高分辨率输入图像 I I I,我们的目标是获得原始输出 𝑇 = 𝑓 ( 𝐼 ) 𝑇 = 𝑓(𝐼) T=f(I) 的近似值 T ^ \hat{T} T^。使用引导上采样方法,我们首先将 f f f 应用于下采样图像 𝐼↓,然后在 I I I 的引导下将结果 𝑇↓上采样到高分辨率输出 T ^ \hat{T} T^。我们需要优化下采样和上采样过程,以最小化 T ^ \hat{T} T^ 和 T T T 之间的差异。
Guided Linear Upsampling
我们首先假设下采样后的输入图像 𝐼↓ 是给定的,或者默认情况下使用规则网格下采样生成。如图 2 所示,为了优化上采样,我们的基本假设是高分辨率目标图像 T T T 的每个像素 p p p 可以通过一对低分辨率像素 ( a , b ) (a,b) (a,b) 的线性插值很好地近似,如下所示:
T ^ p = w a b T a ↓ + ( 1 − w a b ) T b ↓ s . t . a , b ∈ Ω p ↓ (1) \hat{T}_p = w_{ab} T_{a}^{↓} + (1 - w_{ab}) T_{b}^{↓} \quad s.t. \quad a,b \in \Omega_{p↓} \tag{1} T^p=wabTa↓+(1−wab)Tb↓s.t.a,b∈Ωp↓(1)
其中, w a b w_{ab} wab 是加权函数,p↓ 是 p p p 的下采样坐标, Ω p \Omega_{p} Ωp 是 p↓ 的一个小邻域。 T ^ p \hat{T}_p T^p 是原始输出 T p T_p Tp 的估计值。公式(1)包含三个参数 w a b , a , b w_{ab}, a, b wab,a,b,为了最小化上采样误差,需要对这些参数进行优化。用 Θ p = { a , b , w a b } \Theta_{p} = \{a, b, w_{ab} \} Θp={a,b,wab} 表示像素 p p p 的参数,那么 Θ \Theta Θ 是一个 3 × H × W 3 \times H \times W 3×H×W 的张量,包含 T T T 的所有像素的参数。给定 Θ \Theta Θ ,相应的高分辨率输出 T ^ ( Θ ) \hat{T}(\Theta) T^(Θ) 可以很容易地用公式(1)计算出来。
与之前的局部颜色变换方法 [Chen et al. 2016; He et al. 2012; Levin et al. 2007] 一样,文章也假设目标图像可以局部表示为源图像的仿射变换。正如在后面将要解释的那样,在这种情况下,源图像和目标图像可以用同一组参数进行最佳上采样。换句话说,如果对于源图像是最优的,那么它对于目标图像也应该是最优的。因此,为了最小化其上采样误差,可以仅针对源图像求解最优参数。
Θ = arg min Θ ∥ I ^ ( Θ ) − I ∥ (2) \Theta = \argmin_{\Theta} \left \| \hat{I}(\Theta) - I \right \| \tag{2} Θ=Θargmin I^(Θ)−I (2)
其中, I ^ ( Θ ) \hat{I}(\Theta) I^(Θ) 表示源图的上采样结果,假设 Θ p \Theta_{p} Θp 是相互独立的,那么每个像素的参数可以独立优化:
Θ p = arg min Θ p ∥ w a b I a ↓ + ( 1 − w a b ) I b ↓ − I p ∥ (3) \Theta_{p} = \argmin_{\Theta_p} \left \| w_{ab} I_{a}^{↓} + (1 - w_{ab}) I_{b}^{↓} - I_{p} \right \| \tag{3} Θp=Θpargmin wabIa↓+(1−wab)Ib↓−Ip (3)
这是一个组合优化问题,通常很难解决。幸运的是,在文章中, Ω p ↓ \Omega_{p↓} Ωp↓ 是一个小邻域(在我们的实验中是一个 3×3 的窗口),所以很容易枚举所有可能的像素对。对于每个选定的像素对 ( a , b ) (a,b) (a,b),权重参数可以表示为:
w a b = ( I p − I b ↓ ) ( I a ↓ − I b ↓ ) ∥ I a ↓ − I b ↓ ∥ 2 + ϵ (4) w_{ab} = \frac{(I_{p} - I_{b}^{↓})(I_{a}^{↓} - I_{b}^{↓})}{\left\| I_{a}^{↓} - I_{b}^{↓} \right\|^{2} + \epsilon} \tag{4} wab= Ia↓−Ib↓ 2+ϵ(Ip−Ib↓)(Ia↓−Ib↓)(4)
- 图 3
图 3 展示了一个从下采样图像上采样回原图像的示例。上述简单方法取得了惊人的好结果。即使对于像 32 倍这样的大比例,原始图像的细节也几乎可以完美地重建。相比之下,即使对于较小的比例,JBU(联合双边上采样)的结果也明显模糊。
Efficient Computation
上述优化算法的复杂度和局部邻域的像素数量成平方关系,对于一个 3 × 3 3 \times 3 3×3 的局部邻域,需要检查的像素对有 36 对,对于一个高分辨率的图像来说,这个算法的复杂度依然很高,为了进一步提升运算效率,文章发现没有必要枚举所有的像素对 ( a , b ) (a, b) (a,b)。相反,我们可以首先将 a a a 固定为与 I p I_p Ip 颜色最相似的像素,然后仅针对公式(3)优化 b , w a b b, w_{ab} b,wab。这样,复杂度可以降低到与 ∣ Ω p ↓ ∣ |\Omega_{p↓}| ∣Ωp↓∣ 成线性关系。由于 a a a 在颜色空间中与 I p I_{p} Ip 接近,所以对于在颜色线上的投影,近似误差应该很小。很容易看出,如果 I p I_p Ip 在由 I a ↓ I_{a↓} Ia↓ 和 I b ↓ I_{b↓} Ib↓ 确定的颜色线上,那么公式(4)中的插值权重就简化为:
w a b = ∥ I p − I b ↓ ∥ ∥ I p − I a ↓ ∥ + ∥ I p − I b ↓ ∥ + ϵ (5) w_{ab} = \frac{ \left \| I_{p} - I_{b}^{↓} \right \|} { \left \| I_{p} - I_{a}^{↓} \right \| + \left \| I_{p} - I_{b}^{↓} \right \| + \epsilon} \tag{5} wab= Ip−Ia↓ + Ip−Ib↓ +ϵ Ip−Ib↓ (5)
这可以更有效地计算,并且结果保证在 [0,1] 范围内。由于不经过的颜色线被选中的可能性较小,所以上述近似对我们方法的质量影响很小。如图 3 所示,与我们的原始方法相比,上述加速方法不会引入明显的差异,但复杂度要低得多。因此,在下面的内容中,我们将默认使用加速后的方法。
最终的上采样方法如算法 1 所述。它非常简单且高效。 Ω p ↓ \Omega_{p↓} Ωp↓ 通常选择为一个 3×3 的窗口,所以对于每个像素,只需要检查 9 个像素对。如果我们固定 w a b w_{ab} wab 为 1,那么第 3 行的优化就不必要了,并且 T ^ p \hat{T}_p T^p 将等于 T a ↓ T_{a}^{↓} Ta↓ 。我们将这种特殊情况的方法称为引导最近邻上采样(Guided Nearest Upsampling,GNU)。如图 4 所示,GNU 缺乏恢复自然图像的斜坡边缘和平滑变化的能力,从而产生块状效果和错误轮廓,而使用 GLU(我们的方法)可以有效地消除这些问题。
- 算法 1
- 图 4
Downsample Optimization
- 图 5
对于大的下采样比例,由于规则网格下采样,孤立的细结构和小区域可能会完全丢失。在这种情况下,上采样过程将不可能恢复原始内容。图 5 展示了这样一种情况。给定 GLU 上采样器 Ψ ( I ↓ , Θ ) \Psi(I^{↓},\Theta) Ψ(I↓,Θ),我们可以将下采样过程表述为一个优化问题,旨在最小化源图像的自上采样误差。实际上,由于是未知的,下采样和上采样需要联合优化。
I ↓ , Θ = arg min I ↓ , Θ ∥ I − Ψ ( I ↓ , Θ ) ∥ (6) I^{↓},\Theta = \argmin_{I^{↓},\Theta} \left \| I - \Psi( I^{↓},\Theta ) \right \| \tag{6} I↓,Θ=I↓,Θargmin I−Ψ(I↓,Θ) (6)
公式 (6) 使得下采样图像 I ↓ I^{↓} I↓ 的每一个像素,都来自原始图像 I I I,在以前的方法中, I ↓ I^{↓} I↓ 的每个像素通常是从 I I I 的多个像素中滤波得到的,以减少混叠伪影。对于我们的方法,下采样中的滤波可能会使上采样后的图像明显模糊,因为它会收缩颜色线的端点,这对图像细节是不利的。
公式(6)可以通过迭代优化 I ↓ I^{↓} I↓ 和 Θ \Theta Θ 来求解。给定 I ↓ I^{↓} I↓,上采样参数 Θ \Theta Θ 可以按照算法 1 求解。为了优化下采样,我们首先计算像素级误差图 E E E, $E_{p} = \left | I_{p} - \hat{I}_{p} \right | $。显然,误差大的像素一定是那些不能被 I ↓ I^{↓} I↓ 很好地表示的像素,因此需要通过替换一些现有的像素将它们添加到 I ↓ I^{↓} I↓ 中。由于 I ↓ I^{↓} I↓ 中的每个像素可能用于插值 I I I 的多个像素,上述操作可能不会减少总误差。因此,我们采用试错法,如果替换 I ↓ I^{↓} I↓ 中的一些像素不能减少总误差,被替换的像素将被回滚。
- 图 6
图 6 说明了我们方法的过程,更多细节在算法 2 中描述。试错过程针对具有大误差 ε \varepsilon ε 的像素的每个连通区域 C i C_{i} Ci 执行。具有大误差的像素尝试被添加到下采样图像中,如果该操作可以减少总误差,则该操作将被接受,否则将被回滚。对于映射到相同低分辨率像素位置$q \in I^{↓} $的多个高分辨率像素,选择具有最大误差的像素来替换 q q q 的原始颜色。
如图 5 所示,上述方法可以有效地防止细结构和小区域的丢失。在大多数情况下,它只需要 1 或 2 次迭代就可以收敛,并且在初始化后,只有具有大误差的像素才会被进一步处理,所以只需要稍微多一点的计算量。
- 算法 2
Theoretical Derivation
颜色线模型告诉我们,小区域内像素的颜色在颜色空间中应该大致在同一条线上。因此,该区域中每个像素的颜色必须通过颜色线的两个端点 [ a , b ] [a, b] [a,b] 的线性插值来很好地近似。下采样后,由于高分辨率图像中的信息冗余,可以预期 [ a , b ] [a, b] [a,b] 仍然可以由下采样后的区域中的两个像素很好地表示。结果,原始区域中的每个像素颜色也可以由下采样后的区域中的两个像素进行线性插值,如公式 (1) 所示。
局部颜色变换方法假设输出图像可以局部表示为输入图像的仿射变换,即 T p = A p I p T_{p} = A_{p}I_{p} Tp=ApIp,其中 A p A_{p} Ap 是在图像空间中平滑变化的仿射变换。此外,我们要求运算符近似具有尺度不变性: T p ↓ = A p I p ↓ T_{p}↓ = A_{p}I_{p}↓ Tp↓=ApIp↓。因此,如果使用可以线性插值表示原始图像:
I p = w a b I a ↓ + ( 1 − w a b ) I b ↓ (7) I_{p} = w_{ab} I_{a}^{↓} + (1 - w_{ab}) I_{b}^{↓} \tag{7} Ip=wabIa↓+(1−wab)Ib↓(7)
那么变换后的图像也可以满足:
T p = w a b A p I a ↓ + ( 1 − w a b ) A p I b ↓ = w a b T a ↓ + ( 1 − w a b ) T b ↓ (8) {T}_p = w_{ab}A_p I_{a}^{↓} + (1 - w_{ab}) A_{p} I_{b}^{↓} = w_{ab} T_{a}^{↓} + (1 - w_{ab}) T_{b}^{↓} \tag{8} Tp=wabApIa↓+(1−wab)ApIb↓=wabTa↓+(1−wab)Tb↓(8)
Edge Recovery
典型的图像边缘可以分为三种类型:阶跃边缘、斜坡边缘和屋脊边缘 [Koschan 和 Abidi 2005;Yin 等人 2019]。对于自然图像,大多数边缘应该是连接两个区域的斜坡边缘。显然,斜坡边缘的过渡效果可以通过两个区域颜色的线性插值很好地表示。因此,通过仅插值两个像素,GLU 可以很好地恢复原始图像的边缘。相比之下,使用 GNU 只能恢复阶跃边缘,因此会引入明显的伪影,如图 4 所示。
一个自然的问题是,通过插值更多的像素是否可以实现进一步的效果提升。实际上,公式(1)可以更一般地表示为
T ^ p = ∑ q ∈ Ω p ↓ w q T q ↓ (9) \hat{T}_p = \sum_{q \in \Omega_{p}^{↓}} w_{q} T_{q}^{↓} \tag{9} T^p=q∈Ωp↓∑wqTq↓(9)
其中 w q w_{q} wq 是归一化的权重。有趣的是,这正是 JBU(联合双边上采样)的形式。虽然没有进行测试,但我们认为没有必要采用更多的像素进行插值。涉及更多的像素不仅会使优化更加困难,还可能导致过拟合和外推,这两者都会降低结果质量。
Detail Preservation
我们的方法隐含地利用了局部颜色变换来传递上采样参数。然而,需要注意的是,与之前的方法如引导滤波 [He 等人,2012] 和 BGU 不同,我们的方法不要求变换在图像空间或双边空间中是平滑的。因此,它可以更好地保留目标图像的细节效果,同时避免过度平滑导致的渗色伪影。
我们方法的一个潜在问题是缺乏明确的平滑性约束。虽然保持平滑对于大多数图像处理操作符很重要,但我们发现我们的方法在大多数情况下独立地对每个像素进行操作也能很好地工作。这主要是因为线性插值模型可以很好地近似原始源图像的外观,它作为一个平滑的引导图,如果目标图像与源图像具有相似的局部亲和力,可以抑制不光滑的伪影。然而,如果源图像和目标图像的像素亲和力有显著差异(例如,当在目标图像中引入新的边缘时),可能会产生不光滑的伪影。实际上,这是我们方法的主要局限性。
Limitations
与 JBU 和 BGU 一样,我们方法的一个基本假设是源图像和目标图像具有几乎相同的局部亲和力,即源图像中颜色更相似的像素在目标输出中应该具有更相似的颜色。因此,我们的方法不适用于可能在目标图像中引入新边缘的应用。图 14 展示了这样一个例子。新边缘的亲和力与源图像有很大不同,因此不在联合优化的范围内。在更一般的情况下,由于不同的局部亲和力,我们的方法可能会产生不光滑的边缘。如图 15 所示,由于物体与背景颜色相似,我们的方法无法准确地恢复清晰的遮罩边缘。
与添加新边缘不同,去除边缘通常不会给我们的方法带来问题,因为得到的像素仍然可以由相邻像素插值,所以像抠图和平滑这样的应用可以得到很好的支持。相比之下,BGU 可能会坚持保留源图像的边缘和局部结构,所以对于去除边缘的应用,它可能会产生伪影,如图 8 所示。
由于在处理新边缘方面的限制,我们的方法不适用于可能极大地改变局部图像结构的应用,例如最近基于学习的风格迁移方法 [Park 等人,2020;Zhu 等人,2017]。这是包括 JBU 和 BGU 在内的通用引导上采样方法的一个共同局限性。图 16 展示了一些例子。如图所示,对于像马变斑马这样的情况,BGU 可能完全忽略新边缘,而我们的方法会导致不光滑的伪影。实际上,由于对于新边缘,源图像中没有引导信息,如果没有任何特定领域的先验知识,就无法得到好的结果,所以在这种情况下使用基于学习的方法应该更好。
对于实际应用,一个实际问题是找到一个适合低分辨率处理的图像运算符。如图 10 所示,输入图像的尺度可能对一些图像处理方法的输出有很大影响。例如,我们发现 BackgroundMattingV2 在应用于 8 倍下采样的输入时会产生明显更多的错误,因为它最初是为高分辨率视频设计的。另一个例子是光流估计 [Teed 和 Deng,2020],其准确性受图像分辨率的极大影响,并且在上采样后需要特殊处理。如何调整这些方法以更好地进行低分辨率图像处理是一个遗留问题。
相关文章:
论文阅读:Guided Linear Upsampling
今天介绍一篇有趣的文章,Guided Linear Upsampling,基于引导的线性上采样,这是发表在 ACM transaction on Graphic 的一篇工作。 Abstract 引导上采样是加速高分辨率图像处理的一种有效方法。在本文中,文章作者提出了一种简单而…...
深度图和RGB图对齐
坐标系间的转换_坐标系转换-CSDN博客 深度图与彩色图的配准与对齐_彩色 深度 配准-CSDN博客 kinect 2.0 SDK学习笔记(四)--深度图与彩色图对齐_mapdepthframetocolorspace-CSDN博客 相机标定(三)-相机成像模型_相机小孔成像模型…...
滑动窗口与TCP的缓冲区(buff)的关系
滑动窗口与TCP的缓冲区(buff)有直接关联。 滑动窗口机制是TCP协议中用于流量控制和拥塞控制的重要机制。滑动窗口实际上是一个操作系统开辟的缓存空间,用于指定无需等待确认应答即可继续发送数据的最大值。这个窗口大小(win&…...
一款好用的搜索软件——everthing(搜索比文件资源管理器快)
everthing官网链接 在官网选择下载 1.下载后双击打开 2.点击OK(需要其他语言自己选择) 3.选择安装位置(路径最好别带中文和空格) 继续点击下一步 4. 点击下一步 5.继续点击安装 6.然后就完成了 7.点击打开然后就可以搜索了...
C#WPF的App.xaml启动第一个窗体的3种方式
WPF的App.xaml启动第一个窗体的3种方式 1.使用App.xaml的StartupUri属性启动(推荐使用) 在App.xaml文件中,你可以设置StartupUri属性来指定启动时显示的第一个窗口: <Application x:Class"浅看一眼WPF.App"xmlns&…...
【JAVA毕设】基于JAVA的酒店管理系统
一、项目介绍 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router实现动态路由,Ajax实现前后端通信,Element-plus组件库使页面快速成型。后端部分:采用SpringBoot作为开发框架,同时集成MyBatis、Redis、…...
聚类--机器学习西瓜书阅读笔记(六)
无监督学习:通过对无标记训练样本的学习,揭示数据内在规律和性质。 聚类试图将数据集中的样本划分为若干不相交的子集,聚类过程自动形成簇结构,簇对应的语义需要子集命名把握。 聚类过程可以作为单独的过程,寻找数据…...
OpenHarmony(1)开发环境搭建
一:开源项目 OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台࿰…...
Triton服务在ASR语音识别系统中的实现
Triton服务在ASR语音识别系统中的实现 一、引言二、环境准备1. 硬件环境2. 软件环境 三、模型选择与训练1. 数据准备2. 模型架构3. 模型训练 四、模型转换与优化1. 模型转换2. 模型优化 五、配置Triton服务1. 安装Triton服务2. 创建模型仓库 一、引言 自动语音识别(…...
Typora一款极简Markdown文档编辑、阅读器,实时预览,所见即所得,多主题,免费生成序列号!
文章目录 Typora下载安装Typora序列号生成 Typora是一款Markdown编辑器和阅读器,风格极简,实时预览,所见即所得,支持MacOS、Windows、Linux操作系统,有图片和文字、代码块、数学公式、图表、目录大纲、文件管理、导入导…...
python机器人编程——用python调用API控制wifi小车的实例程序
目录 一、前言二、一个客户端的简单实现2.1 首先定义一个类及属性2.2 其次定义连接方法2.3 定义一些回调函数2.4 定义发送小车指令方法2.5 定义一个正常关闭方法 三、python编程控制小车的demo实现四、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源p…...
面试学习整理-线程池
线程池 简介JUC包线程池介绍线程池最常问也最常用-参数线程执行分析-线程是怎么运行的进程和线程的区别Executors工厂类提供四种线程池Executors和ThreaPoolExecutor创建线程池的区别两种提交任务的方法spring集成的线程池 简介 线程池作为实际使用和面试较多的技能区, 学习是…...
Debian会取代CentOS成为更主流的操作系统吗?
我们知道,其实之前的话,国内用户对centos几乎是情有独钟的偏爱,很多人都喜欢选择centos系统,可能是受到一些原因的影响导致的吧,比如他相当于免费的红帽子系统,或者一些教程和网上的资料都推荐这个系统&…...
网络安全领域推荐证书介绍及备考指南
在网络安全领域,拥有专业认证不仅可以证明个人的专业能力,还能帮助在实际工作中应用先进的技术和知识。以下是几种热门的网络安全证书介绍及备考指南。 1. OSCP (Offensive Security Certified Professional) 证书简介 OSCP是针对渗透测试领域的入门级…...
SpringBoot项目ES6.8升级ES7.4.0
SpringBoot项目ES6.8.15 升级到 ES7.4.0 前言 由于公司内部资产统一整理,并且公司内部部署有多个版本的es集群,所以有必要将目前负责项目的ES集群升级到公司同一版本7.4.0。es6到es7的升级变化还是挺大的,因此在这里做一下简单记录…...
深度学习 之 模型部署 使用Flask和PyTorch构建图像分类Web服务
引言 随着深度学习的发展,图像分类已成为一项基础的技术,被广泛应用于各种场景之中。本文将介绍如何使用Flask框架和PyTorch库来构建一个简单的图像分类Web服务。通过这个服务,用户可以通过HTTP POST请求上传花朵图片,然后由后端…...
MFC工控项目实例二十六创建数据库
承接专栏《MFC工控项目实例二十五多媒体定时计时器》 用选取的型号为文件名建立文件夹,再在下面用测试的当天的时间创建文件夹,在这个文件中用测试的时/分/秒为数据库名创建Adcess数据库。 1、在StdAfx.h文件最下面添加代码 #import "C:/Program F…...
springmvc源码流程解析(一)
Springmvc 是基于servlet 规范来完成的一个请求响应模块,也是spring 中比较大的一个 模块,现在基本上都是零xml 配置了,采用的是约定大于配置的方式,所以我们的springmvc 也是采用这种零xml 配置的方式。 要完成这种过程ÿ…...
【论文阅读】SRGAN
学习资料 论文题目:基于生成对抗网络的照片级单幅图像超分辨率(Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network)论文地址:https://arxiv.org/abs/1609.04802代码:GitHub - xiph/daala: Modern video compression for the interne…...
kubelet PLEG实现
概述 kubelet的主要作用是确保pod状态和podspec保持一致,这里的pod状态包括pod中的container状态,个数等。 为了达到这个目的,kubelet需要从多个来源watch pod spec的变化,并周期从container runtime获取最新的container状态。比如…...
leetcode49:字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat", &…...
一个将.Geojson文件转成shapefile和kml文件的在线页面工具(续)
接上一专栏:这个网址有个bug,每个月只能免费转3次,这等于没用! 一个将.Geojson文件转成shapefile和kml文件的在线页面工具_geojson转shp在线-CSDN博客 下面这个网址实测可以免费多次转换! Quickmaptools : Geojson to…...
论文阅读(二十四):SA-Net: Shuffle Attention for Deep Convolutional Neural Networks
文章目录 Abstract1.Introduction2.Shuffle Attention3.Code 论文:SA-Net:Shuffle Attention for Deep Convolutional Neural Networks(SA-Net:置换注意力机制) 论文链接:SA-Net:Shuffle Attention for Deep Convo…...
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】
背景及意义 智能道路裂缝检测与分析系统在基础设施维护和安全监测方面起着非常重要的作用。道路裂缝是道路衰老和破坏的早期迹象,若不及时发现和修复,可能会导致道路结构的进一步恶化,甚至引发安全事故。本文基于YOLOv8深度学习框架ÿ…...
YOLOv11入门到入土使用教程(含结构图)
一、简介 YOLOv11是Ultralytics公司在之前的YOLO版本上推出的最新一代实时目标检测器,支持目标检测、追踪、实力分割、图像分类和姿态估计等任务。官方代码:ultralytics/ultralytics:ultralytics YOLO11 🚀 (github.com)https://g…...
python 爬虫抓取百度热搜
实现思路: 第1步、在百度热搜页获取热搜元素 元素类名为category-wrap_iQLoo 即我们只需要获取类名category-wrap_为前缀的元素 第2步、编写python脚本实现爬虫 import requests from bs4 import BeautifulSoupurl https://top.baidu.com/board?tabrealtime he…...
3.1 > Linux文件管理(基础版)
Linux 的命名规则 相对于其他操作系统(如 Windows )来说,Linux 的命名规则并没有那么多条条框框,还算是比较自由的。在 Linux 中,它的命名规则有如下几点要求: 首先是大小写敏感:例如在 Linux…...
CTFHUB技能树之文件上传——MIME绕过
开启靶场,打开链接: 直接指明是MIME验证 新建04MIME.php文件,内容如下: <?php echo "Ciallo~(∠・ω< )⌒★";eval($_POST[pass]);?> (这里加了点表情,加带点私货&#x…...
4种鼓励创业创新的方法
随着市场趋于饱和,许多企业,尤其是初创企业,很难在竞争中保持领先地位。技术为企业彻底改变其营销和管理策略铺平了道路。另一个经过实践检验的成功渗透特定市场的方法是在办公室内部激发创新,从员工到品牌皆如此。 那么究竟如何…...
C#中的LINQ之美:优雅的数据查询与操作
LINQ(Language Integrated Query,语言集成查询)是C#中一个强大的工具,它将查询功能直接融入到语言中,使开发者能够以一种更直观、更接近自然语言的方式来操作数据。LINQ不仅能极大地提高开发效率,而且让代码…...
正能量网站推荐/磁力棒
这里有2019年最新的Python最常见的180道面试题解析。当你发现这些题你差不多都能回答上来,那说明你的水平已经可以去面试工作了。1.列出 5 个常用 Python 标准库?2.Python 内建数据类型有哪些?3.简述 with 方法打开处理文件帮我我们做了什么&…...
新手做视频网站/十大收益最好的自媒体平台
数的形式类似于:123.45。 一个字符一个字符地读入,然后将其拼接成数。 关键是整数部分利用形如123(1*102)*103的表达方法,小数部分则为0.4564*0.15*0.01。 #include <stdio.h> #define radix 10 int main(void) {char ch;int n 0; …...
重庆品牌网站建设公司哪家好/常见的网络推广方式
什么是几何变换(Transform) 在图形学中,主要有三种几何变换,分别是平移(Translate),旋转(Rotation)和缩放(Scaling)。在D2D中,这三种变…...
国字型网站建设布局/2021小说排行榜百度风云榜
通过crontab -e写入定时任务的指令,一行为一项任务。 任务模式是时间克龙表达式命令形式。 如: 2 0,6,12,18 * * * perl /root/restarttomcat.pl perl之前的部分依次为2分 0点6点12点18点 任意日 任意月 任意周 perl /root/restarttomcat.pl 合起来为用p…...
响应式网站设计案例/seo去哪里学
很抱歉,由于单片机AD转换的具体实现方法可能因不同的单片机型号和设备不同而有所差异,因此我不能简单地提供代码。但是,我可以提供一些指导,帮助您实现单片机的AD转换。 首先,您需要确定您所使用的单片机的型号&#x…...
移动端网站怎么做外链/河南优化网站
文章目录获取本地文件大小从已有大小处开始下载调用获取本地文件大小 (long long)fileSize:(NSString *)filePath {if (![self fileExists:filePath]) {return 0;}NSDictionary *fileInfo [[NSFileManager defaultManager]attributesOfItemAtPath:filePath error:nil];return…...