【论文阅读】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 internetGitHub - jbhuang0604/SelfExSR: Single Image Super-Resolution from Transformed Self-Exemplars (CVPR 2015)http://cv.snu.ac.kr/research/DRCN/https://twitter.box.com/s/lcue6vlrd01ljkdtdkhmfvk7vtjhetogGitHub - david-gpu/srez: Image super-resolution through deep learning

1. WHY

现有方法的局限性

特点/优点:主要关注最小化均方重建误差(MSE)(目标函数);能提高峰值信噪比(PSNR)(目标函数)

缺点:恢复的图像缺乏高频细节;在感知上不令人满意;无法匹配在更高分辨率下预期的保真度,尤其在大放大因子下问题更明显。

GAN 的优势及应用潜力

GAN 为生成具有高感知质量的逼真自然图像提供了框架,可使重建向自然图像流形移动,有潜力解决超分辨率问题中的感知质量不佳问题。

2. WHAT

问题设定

在单图像超分辨率(SISR)的任务中:

目标阐述

其目的在于依据低分辨率输入图像I^{LR}来估计出超分辨率图像I^{SR}。其中I^{LR}是其对应的高分辨率图像I^{HR}的低分辨率版本,高分辨率图像仅在训练期间提供。

低分辨率图像的来源

这里所提到的低分辨率输入图像(I^{LR})是与之对应的高分辨率图像(I^{HR})的低分辨率版本。并且,高分辨率图像仅在训练阶段才会被提供。

在训练过程中,低分辨率输入图像(I^{LR})是通过以下方式获取的:

  • 首先对高分辨率图像(I^{HR})应用高斯滤波器。
  • 接着进行具有特定降采样因子(r)的降采样操作。(本文中r=4

图像的描述方式

对于具有C(channel)个颜色通道的图像:

  • 低分辨率输入图像(I^{LR})用大小为W\times H\times C来描述。
  • 超分辨率图像(I^{SR})则用rW\times rH\times C来描述。

2.1. SRGAN

\begin{aligned}\min_{\theta_{G}}\max_{\theta_{D}}&\mathbb{E}_{I^{HR}\sim p_{\mathrm{wain}}(I^{HR})}[\log D_{\theta_{D}}(I^{HR})]+\\&\mathbb{E}_{I^{LR}\sim p_{G}(I^{LR})}[\log(1-D_{\theta_{D}}(G_{\theta_{G}}(I^{LR}))]\end{aligned}

G:生成器网络的整体表示。

G_{\theta_{G}}:表示由参数\theta _G参数化的生成器函数。

$G_{\theta_{G}}(I^{LR})$:生成器函数G_{\theta_{G}}根据低分辨率图像I^{LR}生成的超分辨率图像。

D_{\theta_{D}}(I^{HR}):判别器函数D_{\theta_{D}}对真实高分辨率图像I^{HR}的判别输出。

D_{\theta_{D}}(G_{\theta_{G}}(I^{LR})):判别器函数D_{\theta_{D}}对生成的超分辨率图像$G_{\theta_{G}}(I^{LR})$的判别输出。

\mathbb{E}_{I^{HR}\sim p_{wain}(I^{HR})}:表示在真实高分辨率图像I^{HR}服从数据分布p_{wain}(I^{HR})的情况下数学期望。在概率论和统计学中,数学期望(或均值)是试验中每次可能结果的概率乘以其结果的总和。在这里,它用于衡量在给定的真实高分辨率图像分布p_{wain}(I^{HR})下,logD_{\theta_{D}}(I^{HR})的平均表现。

$\mathbb{E}_{I^{LR}\sim p_{G}(I^{LR})}$:表示在低分辨率图像I^{LR}服从数据分布p_{G}(I^{LR})的情况下的数学期望。

对于判别器D,当看到真实的高分辨率图像$I^{HR}$时,它希望$logD_{\theta_D}\left(I^{HR}\right)$越大越好,也就是判断正确的概率越高越好;当看到生成器生成的图像$G_{\theta_{G}}(I^{LR})$时,它希望log(1-D_{\theta_D}\left(G_{\theta_G}\left(I^{LR}\right)\right))越大越好,也就是判断为假的概率越高越好。

而生成器G呢,它就希望通过调整自己的参数\theta _G,让log(1-D_{\theta_D}\left(G_{\theta_G}\left(I^{LR}\right)\right))越小越好,这样生成的图像就越能骗过判别器D,让判别器以为它是真实的高分辨率图像。

2.1.1. 生成器网络

最终目标是训练生成函数G来估计给定LR输入图像对应的HR对应,即SR

SRResNet 在 SRGAN 中充当了生成器的基础架构部分,为 SRGAN 生成器提供了初始的网络结构和参数,是 SRGAN 生成器的重要组成部分。

B个残差块

这是生成器网络的核心结构。生成器网络的核心由B(在本文中B=16)个残差块组成。这些残差块具有相同的布局,它们是网络能够学习到有效特征表示的关键部分,有助于在提升图像分辨率的同时保留图像的重要信息。(就是那些深蓝色的矩形块,第一个矩形块详细描述了内部结构,图中画残差块有所省略,应该有16个深蓝色的矩形块)


每个残差块中使用了两个具有小3\times 3核和 64 个特征图的卷积层,这种小卷积核的设计有助于提取图像的局部特征,并且在不增加过多参数的情况下增加网络的表达能力。(就是深蓝色的矩形块里的浅蓝色矩形块)

k3n64s1是对卷积层的一种参数表示方式。

其中,k3表示卷积核的大小为3\times 3 ,这意味着在进行卷积操作时,卷积核会在输入图像或特征图上以3\times 3的窗口进行滑动计算。

n64表示卷积层输出的特征图数量为 64 个,即经过该卷积层处理后,图像的深度(通道数)变为 64。(说明有64个卷积核)

s1表示卷积的步长为 1,这意味着卷积核在滑动过程中每次移动 1 个像素的距离,较小的步长有助于提取更精细的图像特征,同时也能保持图像的空间分辨率相对不变,避免因过大的步长而丢失过多信息。

在卷积层之后,接着是批归一化层(Batch Normalization),其作用是加速网络训练过程中的收敛速度,减少内部协变量偏移问题,使得网络训练更加稳定。(就是深蓝色的矩形块里的橘色矩形块)

最后使用参数化 ReLU(Parametric ReLU)作为激活函数,引入了可学习的参数,增强了网络的非线性表达能力,有助于生成器生成更逼真的图像。(就是深蓝色的矩形块里的黄色矩形块)

亚像素卷积层与分辨率提升

在残差块之后,使用了 Shi 等人提出的两个经过训练的亚像素卷积层。这些亚像素卷积层的主要作用是增加输入图像的分辨率,将低分辨率图像逐步提升到高分辨率,从而实现超分辨率的目标。通过这种方式,生成器能够有效地将低分辨率图像转换为具有更多细节和更高清晰度的超分辨率图像。

跳跃连接

在生成器网络中还存在跳跃连接(Skip Connection),它将输入直接连接到残差块的输出,这种连接方式有助于缓解网络在学习身份映射时的困难,使得网络能够更好地处理深层次网络中的梯度消失问题,保证信息在网络中的有效传递,同时也有助于生成器在生成图像时保留更多的原始图像信息,提高生成图像的质量。

2.1.2. 判别器网络

为了区分真实的HR图像和生成的SR样本,训练一个判别器网络。

卷积层

这里的卷积层用于特征提取。判别器网络包含 8 个卷积层,其中滤波器核大小为3\times 3

从网络的浅层到深层,特征数量逐渐增加,从 64 个核开始,每次增加一倍,这种设计使得判别器能够逐步学习到图像更高级、更抽象的特征表示,从而更好地区分真实高分辨率图像和生成的超分辨率图像。在特征数量增加时,使用跨步卷积(Strided Convolution)来降低图像分辨率,这样可以在保持感受野大小不变的情况下,减少计算量并增加网络的感受野,使判别器能够关注到图像更广泛区域的特征信息。

(就是深蓝色的矩形块里的浅蓝色矩形块)

激活函数

整个判别器网络使用 LeakyReLU 激活函数(\alpha =0.2),LeakyReLU 函数在负数区间也有一定的斜率,避免了传统 ReLU 函数在负数区间导致的神经元 “死亡” 问题,使得网络在反向传播过程中能够更好地传递梯度信息,加快训练速度并提高训练效果。

同时,判别器网络避免了使用最大池化(Max Pooling)操作,这有助于保留更多的图像细节信息,使得判别器能够更准确地对图像进行分类判断。

(就是深蓝色的矩形块里的浅黄色矩形块)

全连接层

在经过一系列卷积层提取特征后,判别器网络接着使用两个密集层(全连接层),将前面卷积层提取到的特征映射到一个低维空间,进一步整合特征信息。(荧光色矩形块)

分类输出

最后通过一个 sigmoid 激活函数输出样本分类的概率,该概率值表示输入图像被判别为真实高分辨率图像的可能性,概率值越接近 1,表示判别器认为该图像是真实高分辨率图像的可能性越高;概率值越接近 0,表示判别器认为该图像是生成的超分辨率图像(即假图像)的可能性越高。通过这种方式,判别器能够有效地对输入图像进行分类,从而在生成对抗网络的训练过程中,与生成器相互竞争、相互学习,共同提高网络的性能。

2.2. 感知损失函数

论文中使用了感知损失函数(Perceptual Loss Function)来训练网络,同时使用平均意见得分(Mean Opinion Score,MOS)来评估不同方法重建图像的感知质量。

如果只是用普通的损失函数,比如只看像素是不是一样(像均方误差 MSE 那种),得到的高分辨率图像可能看起来还是不那么好,缺乏一些细节,看起来不真实。所以我们需要一个更好的方法来衡量生成的高分辨率图像好不好,这就有了感知损失函数。

感知损失函数l^{SR}是内容损失(L_{X}^{SR})和对抗损失(L_{Gen}^{SR})的加权组合,就像做一个蛋糕需要面粉和糖一样,公式为l^{SR}=L_{X}^{SR}+10^{-3}L_{Gen}^{SR}

2.2.1. 内容损失(L_{X}^{SR})

内容损失函数是看生成的超分辨率图像和原始的高分辨率图像在内容上像不像,包括像素级 MSE 损失(常用但有缺陷)和基于 VGG 网络特征图的 VGG 损失(更符合感知相似性)

像素级 MSE 损失

一个一个地对比两个图像I_{x,y}^{HR}G_{\theta_{G}}(I^{LR})_{x,y}的像素是不是一样,计算它们差值的平方和然后平均。

由于它只看像素,得到的图像可能很平滑,没有真实图像的那种细节,基于此优化的结果往往缺乏高频内容,感知上不够令人满意。

最常用的优化目标,计算公式为

l_{MSE}^{SR}=\frac{1}{r^{2}WH}\sum_{x = 1}^{rW}\sum_{y = 1}^{rH}(I_{x,y}^{HR}-G_{\theta_{G}}(I^{LR})_{x,y})^{2}

VGG 损失

这个就聪明一点啦。它是利用一个已经训练好的 VGG 网络,看生成的图像和原始图像经过 VGG 网络某些层后的特征是不是一样(通过计算它们特征之间的距离)。这样就不是只看像素啦,而是看图像更本质的特征,得到的结果会更符合我们人眼看到的真实感。

基于预训练的 19 层 VGG 网络的 ReLU 激活层定义。

l_{VGG/i.j}^{SR}=\frac{1}{W_{i,j}H_{i,j}}\sum_{x = 1}^{W_{i,j}}\sum_{y = 1}^{H_{i,j}}(\phi_{i,j}(I^{HR})_{x,y}-\phi_{i,j}(G_{\theta_{G}}(I^{LR}))_{x,y})^{2}

2.2.2. 对抗损失 (L_{Gen}^{SR})

l_{Gen}^{SR}=\sum_{n = 1}^{N}-logD_{\theta_{D}}(G_{\theta_{G}}(I^{LR}))

G_{\theta_{G}}(I^{LR})是生成器函数G_{\theta_{G}}生成的图像。

D_{\theta_{D}}觉得G_{\theta_{G}}(I^{LR})G_{\theta_{G}}生成的概率越大,logD_{\theta_{D}}(G_{\theta_{G}}(I^{LR}))越接近0,损失函数越小;

D_{\theta_{D}}觉得G_{\theta_{G}}(I^{LR})I^{HR}的概率越大,logD_{\theta_{D}}(G_{\theta_{G}}(I^{LR}))越接近1,损失函数越大。

2.3. 实验

2.3.1. 数据集

实验在三个广泛使用的基准数据集 Set5、Set14 和 BSD300 测试集 BSD100 上进行,所有实验均以 4 倍比例因子处理低分辨率与高分辨率图像,相当于图像像素减少 16 倍。为确保公平比较,PSNR 和 SSIM 度量在中心剪切的 y 通道上计算,从图像边界去除 4 像素宽的条带,使用 daala 包进行处理6。

2.3.2. 训练细节和参数

训练数据与预处理

使用 ImageNet 数据库中 35 万张图像的随机样本进行网络训练,这些图像与测试图像不同。对 HR 图像(BGR,C = 3)采用降采样因子 r = 4 的双三次核进行降采样得到 LR 图像。每个小批处理中,从 16 个随机 96×96 的不同训练图像中裁剪 HR 子图像。输入的 LR 图像范围缩放为 [0, 1],HR 图像范围缩放为 [-1, 1],在 [-1, 1] 强度范围的图像上计算 MSE 损失,VGG 特征图按 12.751 倍重新缩放,使 VGG 损失与 MSE 损失尺度相当(乘以约 0.006 的缩放因子)6。

优化器与学习率策略

采用 Adam 优化器(β1 = 0.9)。

SRResNet 网络的学习率分别为 10⁻⁴和 10⁻⁶次更新迭代;训练 SRGAN 时,先使用训练好的基于 MSE 的 SRResNet 网络初始化生成器,以避免局部最优,所有 SRGAN 变体先以 10⁻⁴的学习率进行 10⁵次更新迭代训练,再以 10⁻⁵的较低学习率进行 10⁵次迭代训练,且交替更新生成器和判别器网络(k = 1)6。

网络架构与测试设置

生成器网络有 16 个相同(B = 16)的残差块,基于 Theano 和 Lasagne 实现。测试期间关闭 batch - normalization 更新,以获得仅依赖于输入的确定性输出56。

训练过程

使用 ImageNet 数据库中 35 万张图像的随机样本在 NVIDIA Tesla M40 GPU 上训练网络,对 HR 图像降采样得到 LR 图像,裁剪随机 HR 子图像,缩放输入和 HR 图像范围,重新缩放 VGG 特征图,使用 Adam 优化器,设置不同学习率训练 SRResNet 和 SRGAN。

2.3.3. 平均意见评分(MOS)测试

测试方法与评分标准

进行 MOS 测试,邀请 26 名评分者为超分辨率图像打分(1 - 5 分,1 为质量差,5 为质量优秀)。

评分者对 Set5、Set14 和 BSD100 上的图像进行评分,包括多种方法(最近邻、双三次、SRCNN、SelfExSR、DRCN、ESPCN、SRResNet - MSE、SRResNet - VGG22、SRGAN - MSE、SRGAN - VGG22、SRGAN - VGG54 和原始 HR 图像)的重建结果。每个评分者对大量实例(1128 个)进行评分,图像以随机方式呈现,评分者事先在校准图像上进行校准,确保评分标准一致67。

测试结果分析

测试结果显示,评分者对不同方法的评分差异明显,如一致将 NN 插值的测试图像评为 1,将原始 HR 图像评为 5。SRGAN 在 Set14 和 BSD100 数据集上的表现显著优于其他方法,其 MOS 评分更接近原始高分辨率图像。在 Set5 上结果不太确定,但整体趋势仍表明 SRGAN 在感知质量方面具有优势。不同方法的 MOS 分数分布和平均排名进一步证实了 SRGAN 的优越性,其在 BSD100 上的表现尤为突出,与其他方法相比,MOS 差异显著(除 SRCNN 与 SelfExSR 外)714。

2.3.4. 含量损失的调查

研究内容与损失函数选择

研究不同内容损失选择对 GAN 感知损失的影响,具体调查了三种内容损失:SRGAN - MSE(以标准 MSE 作为内容损失)、SRGAN - VGG22(在表示低级特征的特征映射上定义损失)和 SRGAN - VGG54(在更深网络层的更高级别特征映射上定义损失)。在训练 SRResNet - VGG22 时,添加了权重为 2×10⁻⁸的额外总变异损失。通过比较这些不同损失函数下的网络性能,分析其对生成图像质量的影响7。

结果与观察

实验发现,MSE 优化虽能提供高 PSNR 值,但生成图像在感知上较平滑,不如对视觉感知更敏感的损失分量生成的图像令人信服,这是由于 MSE 内容损失和对抗性损失之间的竞争。在少数基于 SRGAN - MSE 的重建中观察到次要重建伪影,也归因于目标竞争。在 Set14 上,SRGAN - VGG54 在 MOS 方面显著优于其他 SRGAN 和 SRResNet 变体,表明使用更高级别的 VGG 特征图可产生更好的纹理细节。不同损失函数下的网络在 PSNR、SSIM 和 MOS 等指标上表现各异,体现了内容损失选择对生成器性能的重要影响7。...

3. HOW

MOS 测试结果:SRGAN 在感知质量方面取得显著进步,其 MOS 分数更接近原始高分辨率图像,优于其他参考方法。不同内容损失对 MOS 分数有影响,更深层的 VGG 特征图可产生更好纹理细节。

网络性能比较:SRResNet 在 PSNR/SSIM 方面设置了新技术水平,SRGAN 在很大程度上优于所有参考方法,为逼真图像 SR 设定了新技术水平。对抗性损失可提高感知质量,但也会使基于 MSE 的解决方案在感知上更平滑。

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

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

相关文章

芯片上音频相关的验证

通常芯片设计公司(比如QUALCOMM)把芯片设计好后交由芯片制造商(比如台积电)去生产,俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证(这里说的验证是FPGA(现场…

SpringMVC实战:构建高效表述层框架

文章目录 1. SpringMVC简介和体验1.1 介绍1.2 主要作用1.3 核心组件和调用流程1.4 快速体验 2. SpringMVC接收数据2.1 访问路径设置2.2 接收参数2.2.1 param和json参数比较2.2.2 param参数接收2.2.3 路径参数接收2.2.4 json参数接收 2.3 接收cookie数据2.4 接收请求头数据2.5 原…

python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)

文章目录 1、任务目标2、网页分析3、代码编写 1、任务目标 目标网站:B站视频(https://www.bilibili.com/video/BV1se41117WP/?vd_sourcee8e376ccbc5aa4cfd88e6a7917adfd1a),用于本文测验 要求:抓取该网址下的视频&…

华为ICT题库-云服务部分

1651、关于创建数据盘镜像的约束条件,以下说法错误的是?(云服务考点) (A)使用云服务器的数据盘创建数据盘镜像时,要确保该云服务器必须有系统盘 (B)通过外部文件创建数据盘镜像必须明确指定操作系统类型 (C)使用云服务…

Docker快速上手教程:MacOS系统【安装/配置/使用/原理】全链路速通

背景 最近换了个 Macbook Air M3, 写个人项目需要用到 Docker,配置过程有一点点坎坷,还是得记录下避免重蹈覆辙。 什么。为什么是买 Air 而不是 Pro Max? 因为码农的钱也是钱啊。 这里我不会先讲原理,我认为工程的事情都是先看到现象,有了概念的轮廓,才应该去研究原理,…

Python基础学习(六)数据容器

代码获取:https://github.com/qingxuly/hsp_python_course 完结版:Python基础学习完结版 数据容器 基本介绍 数据容器是一种数据类型,有些地方也简称容器/collections。数据容器可以存放多个数据,每一个数据也被称为一个元素。存…

计算机网络IP地址分类,子网掩码,子网划分复习资料

IP 地址的概念 IP 地址是独立于硬件地址的逻辑地址,它是由软件提供的地址。 IP 地址是网络层地址。 IP 编址方案和分类 IP 地址由 32 位二进制数构成,分为前缀(网络地址)和后缀(主机地址) 同一网段中每台计算机的 IP 地址是唯一的网络地址的分配全球…

力扣21 : 合并两个有序链表

链表style 描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 节点大小相同时,l1的节点在前 何解? 1,遍历两个链表,挨个比较节点大小 同时遍…

20241027_北京郊游香山公园

这次是第二次去香山公园,天气不是很晴朗,有雾。 乘坐地铁到的时候,第一趟车,我这么聪明,那肯定是不会坐的,因为没有座位,路程30多分钟,我都20多岁了,身体那肯定顶不住。 …

241024-Ragflow离线部署Docker-Rootless环境配置修改

A. 最终效果 B. 文件修改 docker-compose.yml include:- path: ./docker-compose-base.ymlenv_file: ./.envservices:ragflow:depends_on:mysql:condition: service_healthyes01:condition: service_healthyimage: ${RAGFLOW_IMAGE}container_name: ragflow-serverports:- ${…

WUP-MY-POS-PRINTER 旻佑热敏打印机票据打印uniapp插件使用说明

插件地址:WUP-MY-POS-PRINTER 旻佑热敏打印机票据打印安卓库 简介 本插件主要用于旻佑热敏打印机打印票据,不支持标签打印。适用于旻佑的各型支持票据打印的热敏打印机。本插件开发时使用的打印机型号为MY-805嵌入式面板打印机,其他型号请先…

海外媒体发稿:如何打造媒体发稿策略

新闻媒体的发稿推广策略对于提升品牌知名度、吸引流量以及增加收入非常重要。本文将介绍一套在21天内打造爆款新闻媒体发稿推广策略的方法。 第一天至第七天:明确目标和定位 在这个阶段,你需要明确你的目标和定位,以便为你的新闻媒体建立一个…

66Analytics 汉化版,网站统计分析源码,汉化前台后台

66Analytics 汉化版,网站统计分析源码,汉化前台后台 本源码汉化前台后台,非其他只汉化前台版 网络分析变得容易。自托管、友好、一体化的网络分析工具。轻量级跟踪、会话回放、热图、用户旅程等 简单、好看、友好-大多数网络分析解决方案做得太多了,在大…

详解PHP正则表达式中的转义操作

PHP正则表达式中的特殊字符和转义 在 PHP 正则表达式中,有许多特殊字符具有特定的意义。这些特殊字符通常用于定义匹配模式的一部分,或者改变匹配的行为。以下是 PHP 正则表达式中一些常用的特殊字符及其含义: .匹配除换行符之外的任何单个字符 ^在方括…

练习LabVIEW第二十四题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第二十四题: 分别利用for循环的移位寄存功能和反馈节点两种方法求0510154550的值 开始编写: 两个…

PHP免杀详细讲解PHP免杀详细讲解

基础学习 可变参数 $_GET $_POST $_COOKIE $_REQUEST $_SERVER 其中的某些参数可控,如REQUESTMETHOD,QUERYSTRING,HTTPUSERAGENT等 session_id() 这个比较特殊,但是依然可以利用 $_FILE $GLOBALS getallheaders() get_defined_vars() get_defined_functions() fil…

晓羽扫码点餐快销版系统源码

扫码点餐系统(快销版)是一款专为快销类餐饮行业设计的点餐工具,如早餐店、面馆、快餐店及零食小吃摊等,旨在满足这些场景下快捷、高效的扫码点餐需求。其核心功能在于仅支持先付款后就餐的模式,这一设计大大简化了点餐…

cesium 加载本地json、GeoJson数据

GeoJSON是一种用于编码地理数据结构的格式 {"type": "Feature","geometry": {"type": "Point","coordinates": [125.6, 10.1]},"properties": {"name": "某地点"} } 一、直接加载…

软件测试学习笔记丨Selenium学习笔记:css定位

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22511 本文为霍格沃兹测试开发学社的学习经历分享,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 说明:本篇博客基于sel…

OpenHarmony4.0配置应用开机自启

一、开发环境 系统版本:OpenHarmony 4.0.10.13 设备平台:rk3588 SDK版本:fullSDK 4.0.10.13 二、背景 使用自研应用作为默认Launcher,或者说使特定应用默认开机自启作为Home应用。 三、分析过程 通过分析原生Launcher启动流程可知: AMS启动根据应用优先级启动应用,通…