【实战精选】掌握图像风格迁移:构建基于生成对抗网络的系统

1.研究背景与意义

随着计算机技术的不断发展,图像处理和计算机视觉领域取得了长足的进步。图像风格迁移是其中一个备受关注的研究方向,它可以将一幅图像的风格特征应用到另一幅图像上,从而创造出新的图像。这项技术具有广泛的应用前景,如艺术创作、电影特效、虚拟现实等领域。

传统的图像风格迁移方法主要基于优化算法,通过最小化图像的内容损失和风格损失来实现。然而,这些方法存在一些问题,如计算复杂度高、结果不稳定等。近年来,生成式对抗网络(GANs)的出现为图像风格迁移带来了新的突破。

GANs是一种由生成器和判别器组成的神经网络结构,通过博弈的方式训练生成器生成逼真的图像,同时判别器则试图区分真实图像和生成图像。GANs的核心思想是通过生成器和判别器之间的对抗学习,不断提升生成器的生成能力,从而生成更加逼真的图像。

基于生成式对抗网络的图像风格迁移系统具有以下几个方面的研究意义:

  1. 提高图像风格迁移的效果:传统的图像风格迁移方法往往无法完全捕捉到图像的风格特征,导致生成的图像与目标风格之间存在差异。而基于GANs的方法可以通过对抗学习不断优化生成器,从而生成更加逼真、细致的图像,提高图像风格迁移的效果。

  2. 提高图像风格迁移的稳定性:传统的图像风格迁移方法在处理复杂的图像时往往存在结果不稳定的问题,生成的图像可能会出现失真、模糊等情况。而基于GANs的方法可以通过对抗学习的方式提高生成器的稳定性,生成更加清晰、真实的图像。

  3. 拓展图像风格迁移的应用领域:基于生成式对抗网络的图像风格迁移系统具有广泛的应用前景。例如,在艺术创作领域,艺术家可以利用这一系统将不同风格的绘画作品进行融合,创造出独特的艺术作品。在电影特效领域,可以利用该系统将不同风格的特效图像应用到电影中,增强视觉效果。在虚拟现实领域,可以利用该系统将真实世界的风格特征应用到虚拟场景中,提升虚拟现实的真实感。

总之,基于生成式对抗网络的图像风格迁移系统具有重要的研究意义和广泛的应用前景。通过提高图像风格迁移的效果和稳定性,可以为艺术创作、电影特效、虚拟现实等领域带来更多可能性,推动图像处理和计算机视觉技术的发展。

2.图片演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.视频演示

基于生成式对抗网络的图像风格迁移系统_哔哩哔哩_bilibili

4.生成式对抗网络简介

卷积神经网络与循环神经网络是目前较常见的两类人工神经网络算法,前者长于处理图像信息,后者常用于处理序列信息。它们都需要大量的训练样本来保证训练的质量,需要成千上万张图片来做训练。但与脱胎于生物神经元模型的深度学习算法不同,成年人的学习过程却并不需要海量的样本和数据。因此,有学者开始尝试发展小样本学习的神经网络算法,希望用少量的样本就可以训练出较为准确的网络模型,生成式对抗网络就是近年来发展较快的模型之一。

2014年,I.J.Goodfellow等人提出了一个深度学习算法的新框架,该模型借鉴了二人零和博弈的思想,通过对抗过程估计生成模型,即假设在游戏博弈过程中双方都同时采取最优的方案并使用,使得游戏结果达到纳什均衡的状态。在该算法中,生成式模型G和判别式模型D一起进行训练。其中,G负责学习样本数据分布,D则估计样本来自生成器G或训练数据的概率。生成式模型需要尽量降低判别式模型对数据做出

正确判断的概率,而判别式模型则要不断识别出生成式模型生成的假数据,两个模型间相互对抗,互相提高,最终使得生成式模型生成的数据与真实数据在数据分布上差别很小,而判别式模型最后则无法判断该数据是来自真实的数据集还是由生成器G所生成。
GoodFellow提出的生成式对抗网络,判别器网络使用常规的训练方法,训练数据则包括小批量的真实样本数据集和随机噪声z,真实的样本被标记为1,生成器网络输入噪声之后生成的假样本标记为0。用G(z)表示新的数据集,判别式模型D则有两个输入,分别是表示真实数据的x和生成式模型G生成的数据,真实数据的分布则用Pilan(t)表示,判别式模型对数据进行判断,输出一个标量值。然后做反向传播更新生成器网络的参数,判别器网络的参数不变,交替训练,经过多次迭代,假样本的数据分布相较于真实数据几乎相同,即生成器网络生成的假数据判别器已经无法正确出该数据的真伪,训练过程如图所示。
在这里插入图片描述

5.核心代码讲解

5.1 cycleGAN.py


class ResidualBlock(nn.Layer):
    """
    定义残差块
    """

    def __init__(self, in_channels):
        super(ResidualBlock, self).__init__()

        self.conv1 = nn.Conv2D(in_channels, in_channels, kernel_size=3, stride=1, padding=1)
        self.bn1 = nn.BatchNorm2D(in_channels)
        self.prelu = nn.PReLU()
        self.conv2 = nn.Conv2D(in_channels, in_channels, kernel_size=3, stride=1, padding=1)
        self.bn2 = nn.BatchNorm2D(in_channels)

    def forward(self, x):
        identity = x

        out = self.conv1(x)
        out = self.bn1(out)
        out = self.prelu(out)
        out = self.conv2(out)
        out = self.bn2(out)

        out += identity

        return out


class cycleGAN(nn.Layer):
    """
    定义cycleGAN网络
    """

    def __init__(self, upscale_factor=4, num_residual_blocks=16):
        super(cycleGAN, self).__init__()

        self.conv1 = nn.Conv2D(3, 64, kernel_size=3, stride=1, padding=1)
        self.prelu = nn.PReLU()

        # 添加残差块
        residual_blocks = []
        for _ in range(num_residual_blocks):
            residual_blocks.append(ResidualBlock(64))
        self.residual_blocks = nn.Sequential(*residual_blocks)

        self.conv2 = nn.Conv2D(64, 64, kernel_size=3, stride=1, padding=1)
        self.bn2 = nn.BatchNorm2D(64)

        # 上采样层,使用反卷积进行上采样
        upsampling_layers = []
        for _ in range(int(upscale_factor / 2)):
            upsampling_layers.append(nn.Conv2DTranspose(64, 64, kernel_size=3, stride=2, padding=1, output_padding=1))
            upsampling_layers.append(nn.BatchNorm2D(64))
            upsampling_layers.append(nn.PReLU())
        self.upsampling = nn.Sequential(*upsampling_layers)

        self.conv3 = nn.Conv2D(64, 3, kernel_size=3, stride=1, padding=1)

    def forward(self, x):
        out = self.conv1(x)
        out = self.prelu(out)

        residual = self.residual_blocks(out)

        out = self.conv2(residual)
        out = self.bn2(out)
        out += residual

        out = self.upsampling(out)
        out = self.conv3(out)

        return out

该程序文件cycleGAN.py定义了一个CycleGAN网络模型。该模型包含两个主要部分:ResidualBlock和cycleGAN。

ResidualBlock是一个残差块,用于增加网络的深度和学习能力。它包含两个卷积层和两个批归一化层。在前向传播过程中,输入通过第一个卷积层和批归一化层,然后通过PReLU激活函数。然后,输出通过第二个卷积层和批归一化层。最后,将输入和输出相加得到残差块的输出。

cycleGAN是整个网络模型。它包含一个卷积层、一个PReLU激活函数、多个ResidualBlock残差块、一个卷积层和一个批归一化层。在前向传播过程中,输入通过第一个卷积层和PReLU激活函数。然后,输出通过多个ResidualBlock残差块。接下来,输出通过第二个卷积层和批归一化层,并与之前的残差块输出相加。最后,输出通过上采样层进行上采样,并通过最后一个卷积层得到最终的输出。

该模型用于图像超分辨率重建任务,通过学习低分辨率图像和高分辨率图像之间的映射关系,实现将低分辨率图像转换为高分辨率图像的功能。

5.2 demo.py


class ImageNoise:
    def __init__(self, path1, path2):
        self.path1 = path1
        self.path2 = path2

    def sp_noise(self, image, prob):
        """
        添加椒盐噪声
        prob:噪声比例
        """
        output = np.zeros(image.shape,np.uint8)
        thres = 1 - prob
        for i in range(image.shape[0]):
            for j in range(image.shape[1]):
                rdn = random.random()
                if rdn < prob:
                    output[i][j] = 0
                elif rdn > thres:
                    output[i][j] = 255
                else:
                    output[i][j] = image[i][j]
        return output

    def add_noise(self, prob=0.1):
        for i in os.listdir(self.path1):
            im = cv2.imread(self.path1 + '/' + i)
            # 调用噪声函数生成噪声图片
            img_sp = self.sp_noise(im, prob)

            # 均值滤波
            img_blur = cv2.blur(img_sp, (20, 20))

            cv2.imwrite(self.path2 + '/' + i, img_blur)

这个程序文件名为demo.py,它的功能是给指定文件夹中的图片添加椒盐噪声,并对添加噪声后的图片进行均值滤波处理,然后将处理后的图片保存到另一个文件夹中。

具体实现过程如下:

  1. 导入所需的库:os、cv2、random、numpy。
  2. 定义两个文件夹路径变量path1和path2,分别表示原始图片所在的文件夹和处理后图片保存的文件夹。
  3. 定义一个函数sp_noise,用于给图片添加椒盐噪声。该函数接受两个参数,一个是图片对象image,另一个是噪声比例prob。函数内部会根据噪声比例随机生成椒盐噪声,并将噪声添加到图片上,最后返回添加噪声后的图片。
  4. 使用os.listdir遍历path1文件夹中的所有文件。
  5. 使用cv2.imread读取每个文件的图片。
  6. 调用sp_noise函数给图片添加椒盐噪声,噪声比例为0.1。
  7. 使用cv2.blur对添加噪声后的图片进行均值滤波处理,滤波器大小为(20, 20)。
  8. 使用cv2.imwrite将处理后的图片保存到path2文件夹中,文件名与原始图片相同。
5.3 setup.py

class PPGAN:
    def __init__(self):
        with open('requirements.txt', encoding="utf-8-sig") as f:
            self.requirements = f.readlines()

    def readme(self):
        with open('README.md', encoding="utf-8-sig") as f:
            self.README = f.read()

    def setup(self):
        setup(
            name='ppgan',
            packages=find_packages(),
            include_package_data=True,
            entry_points={"console_scripts": ["paddlegan= paddlegan.paddlegan:main"]},
            author='PaddlePaddle Author',
            version=__version__,
            install_requires=self.requirements,
            license='Apache License 2.0',
            description='Awesome GAN toolkits based on PaddlePaddle',
            long_description=self.readme(),
            long_description_content_type='text/markdown',
            url='https://github.com/PaddlePaddle/PaddleGAN',
            download_url='https://github.com/PaddlePaddle/PaddleGAN.git',
            keywords=['gan paddlegan'],
            classifiers=[
                'Intended Audience :: Developers', 'Operating System :: OS Independent',
                'Natural Language :: Chinese (Simplified)',
                'Programming Language :: Python :: 3',
                'Programming Language :: Python :: 3.5',
                'Programming Language :: Python :: 3.6',
                'Programming Language :: Python :: 3.7', 'Topic :: Utilities'
            ],
        )

这是一个Python的安装脚本文件,文件名为setup.py。该脚本用于安装ppgan工具包,并设置相关的配置信息。脚本中使用了setuptools库来进行安装和打包操作,使用了find_packages函数来查找所有的包,使用了open函数来读取文件内容。

脚本中定义了一个readme函数,用于读取README.md文件的内容作为长描述。在setup函数中,设置了ppgan的名称为’ppgan’,包含所有的包,包括数据文件,设置了命令行入口为’paddlegan’,作者为’PaddlePaddle Author’,版本号为__version__,依赖包为requirements.txt中的内容,许可证为Apache License 2.0,描述为’Awesome GAN toolkits based on PaddlePaddle’,长描述为README.md的内容,URL为源码,下载URL为,关键词为’gan paddlegan’,分类器为一些开发者相关的信息和Python版本信息。

6.系统整体结构

以下是每个文件的功能概述:

文件路径功能
cycleGAN.py实现CycleGAN模型的训练和推理
demo.py演示文件,用于展示模型的使用方法
setup.py安装文件,用于安装依赖和设置环境
ui.py用户界面文件,用于创建图形用户界面
applications_init_.py应用程序模块的初始化文件

7.图像风格迁移

艺术风格迁移是一种有吸引力的技术,可以利用内容图像的结构和示例风格图像的风格样式来创造艺术图像。它已经成为学术界和工业界普遍的研究课题。近年来,人们提出了许多神经风格迁移的方法,大致可分为两类:图像优化方法和模型优化方法。
在这里插入图片描述

图像优化方法是利用固定网络迭代优化风格化图像。Gatyset等人的开创性工作在迭代优化过程中实现风格迁移,其中风格样式是通过从预先训练的深度神经网络中提取的特征的相关性来捕获的。后续工作主要以不同损失函数的形式改进。虽然取得了优越的风格化结果,例如STROTSS,但这些方法的广泛应用仍然受到其在线优化过程缓慢的限制。相反,模型优化方法通过训练来更新神经网络,并在测试中进行前馈。主要有三种细分类型:
(1)Per-Style-Per-Model方法,被训练来合成具有单一特定风格的图像;
(2)Multi-Style-Per-Model方法,引入多种网络架构,同时处理多种风格;
(3)Arbitrary-Style-Per-Model方法,进一步采用多种特征修改机制来迁移任意风格。
回顾这些方法,我们发现虽然局部风格样式可以被迁移,但是混合了全局和局部风格的复杂样式仍然不能被正确地迁移。与此同时,很多情况下会出现伪影和瑕疵。为此,在本次工作中,我们的主要目标是通过前馈网络实现高质量的艺术风格迁移,在美学上保留局部和全局的样式。

人类画家在绘画时如何处理复杂的风格样式?一个常见的过程,特别是对于初学者来说,是先画一个草图捕捉整体结构,然后逐步修改局部细节,而不是直接一步一步完成最终的画。受此启发,我们提出了一种新的用于风格迁移的神经网络——拉普拉斯金字塔网络(LapStyle)。首先,在我们的框架中,Drafting Network被设计用于在低分辨率下迁移全局风格样式,因为我们观察到,由于更大的感受野和更少的局部细节,全局风格更容易在低分辨率下迁移。然后使用Revision Network根据草稿和拉普拉斯滤波在2倍分辨率的内容图像上提取的纹理,通过产生残差图像,在高分辨率下修改局部细节。注意,我们的Revision Network可以以金字塔的方式堆叠,以生成更高分辨率的细节。最终的风格化图像是通过聚合所有金字塔层的输出得到的。此外,我们采用浅色块判别器对局部风格样式进行对抗性学习。如图1所示,我们的“Drafting and Revison”过程取得了不错的风格化结果。

综上所述,主要贡献如下:

我们引入了一个新的框架“Drafting and Revison”,通过将风格迁移过程拆分为全局风格样式起草和局部风格样式修订来模拟绘画创作机制。
我们提出了一种新的前馈式迁移方法LapStyle。采用Drafting Network迁移低分辨率的全局风格样式,采用高分辨率Revision Network根据内容图像的多级拉普拉斯滤波输出,以金字塔方式修正局部风格样式。
实验证明,我们的方法可以生成高分辨率和高质量的风格化结果,其中全局和局部风格样式都是有效合成的。此外,本文提出的LapStyle具有极高的效率,能够在512分辨率下达到100fps的速度。

8.网络结构

对于输入的内容图像xc和风格图像xs,分别提取其拉普拉斯金字塔区。, r.2和(xs,r’s),其中x,是xc两倍下采样的结果,而残差图r ,是利用拉普拉斯滤波器得到的,保存了下采样时丢失的高频信息。风格图像也做了同样的处理
在第一阶段,Drafting Network首先使用预训练的神经网络对来自又.和x.的内容特征和风格特征进行编码,然后使用多粒度的风格特征对内容特征进行调制,最后使用解码器生成风格化图像.xs。在第二阶段,Revision Network首先将.c上采样到x s,然后将x 和r o连接起来作为网络输入,生成带有高频风格化细节的残差图rs。最后,我们通过聚合低分辨率风格化结果和高分辨率残差图得到最终风格化图像xcs。

Drafting Network

Drafting Network的目的是在低分辨率下综合全局样式。为什么用低分辨率?我们观察到,由于接收域大,局部细节少,全局样式在低分辨率下更容易迁移。为了实现单一风格的迁移,早期的工作直接训练一个编码器-解码器模块,其中只有内容图像被用作输入。为了更好的结合风格特性和内容特性,我们从最近的任意风格迁移方法中采用了AdaIN。
在这里插入图片描述

Drafting Network的结构如图3所示,其中包括一个编码器、几个AdaIN模块和一个解码器。 (1) 编码器是一个预先训练好的VGG-19网络,在训练过程中是固定的。对于给出的x xxc和x xxs,VGG编码器在2_1、3_1和4_1层提取多个粒度的特征。 (2) 然后,我们分别在2_1、3_1和4_1层后使用AdaIN模块在内容和风格特征之间进行特征调制。 (3) 最后,在解码器的每个粒度中,来自AdaIN模块的相应特征通过跳跃连接进行合并,在这里,利用低级别和高级别的AdaIN模块之后的跳跃连接有助于保留内容结构,特别是对于低分辨率图像。

Revision Network

Revision Network的目的是通过生成残差细节图像来修正粗糙的风格化图像,而最终的风格化图像是通过聚合r c和粗糙的风格化图像区xs生成的。这个过程确保了全局风格样式在xs中的分布得到了妥善的保留。同时,Revision Network更容易学习利用残差细节图像对局部风格图像进行修正。
在这里插入图片描述

如图所示,Revision Network设计为简单有效的编解码器架构,只有一个下采样层和一个上采样层。此外,我们还引入了一个patch判别器来帮助Revision Network在对抗学习设置下捕获精细的patch纹理。我们选择定义一个相对较浅的D,(1)避免过度拟合,因为我们只有—个风格图像;(2)控制感受野,以确保只能捕获局部样式。

9.系统整合

下图完整源码&环境部署视频教程&自定义UI界面
在这里插入图片描述

参考博客《基于生成式对抗网络的图像风格迁移系统》

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

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

相关文章

RK3399平台开发系列讲解(内核入门篇)ConfigFS 的核心数据结构

🚀返回专栏总目录 文章目录 一、关键数据结构二、config_item 的结构体三、属性和方法沉淀、分享、成长,让自己和他人都能有所收获!😄 📢虚拟文件系统 ConfigFS 是一个特殊的文件系统,旨在提供一种动态配置 Linux 内核和设备的机制。 一、关键数据结构 ConfigFS 的核…

解决Emmy Lua插件在IDEA或 Reder 没有代码提示的问题(设置文件关联 增加对.lua.txt文件的支持)

目录 Reder版本2019.x Reder版本2021.1.5x Reder版本2019.x 解决Emmy Lua插件在IDEA或 Reder 没有代码提示的问题(设置文件关联 增加对.lua.txt文件的支持) Reder版本2021.1.5x 解决Emmy Lua插件在IDEA或 Reder 没有代码提示的问题(设置文件关联 增加对.lua.txt文件的支持)…

【精选】​​通道热点加持的LW-ResNet:小麦病害智能诊断与防治系统

1.研究背景与意义 小麦是世界上最重要的粮食作物之一&#xff0c;但由于病害的侵袭&#xff0c;小麦产量和质量受到了严重的威胁。因此&#xff0c;开发一种高效准确的小麦病害识别分类防治系统对于保障粮食安全和农业可持续发展具有重要意义。 传统的小麦病害识别分类方法主…

6.1.webrc媒体协商

那今天呢&#xff1f;我们来看一下y8 rtc的媒体协商&#xff0c;那实际上在我们之前的课程中呢&#xff1f;我已经向你介绍过y8 rtc的媒体协商了。只不过呢&#xff0c;角度是不一样的&#xff0c;在之前介绍外边tc媒体协商的时候呢&#xff0c;我们是从应用的角度来看。那web …

C++的new / delete 与 C语言的malloc/realloc/calloc / free 的讲解

在C语言中我们通常会使用malloc/realloc/calloc来动态开辟的空间&#xff0c;malloc是只会开辟你提供的空间大小&#xff0c;并不会初始化内容&#xff1b;calloc不但会开辟空间&#xff0c;还会初始化&#xff1b;realloc是专门来扩容的&#xff0c;当你第一次开辟的空间不够用…

【MATLAB】全网入门快、免费获取、持续更新的科研绘图教程系列1

1 【MATLAB】科研绘图第一期点线图 %% Made by Lwcah %% 公众号&#xff1a;Lwcah %% 知乎、B站、小红书、抖音同名账号:Lwcah&#xff0c;感谢关注~ %% 更多MATLABSCI绘图教程敬请观看~%% 清除变量 clc; clear all; close all;%% 一幅图的时候figureWidth 8.5;figureHeight …

鸿蒙 ark ui 轮播图实现教程

前言&#xff1a; 各位同学有段时间没有见面 因为一直很忙所以就没有去更新博客。最近有在学习这个鸿蒙的ark ui开发 因为鸿蒙不是发布了一个鸿蒙next的测试版本 明年会启动纯血鸿蒙应用 所以我就想提前给大家写一些博客文章 效果图 具体实现 我们在鸿蒙的ark ui 里面列表使…

SPASS-信度分析

信度分析概述 效度 效度指的是量表是否真正反映了我们希望测量的东西。一般来说&#xff0c;有4种类型的效度&#xff1a;内容效度、标准效度、结构效度和区分效度。内容效度是一种基于概念的评价指标&#xff0c;其他三种效度是基于经验的评价指标。如果一个量表实际上是有效…

使用 NVProf 检测 CUDA kernel 的 bank conflict

使用 NVProf 检测 CUDA kernel 的 bank conflict NVProf 指令 使用 NVProf 可以对 bank conflict 进行检测: nvprof --events shared_ld_bank_conflict,shared_st_bank_conflict <app> [args...]其中: --events 选项指定的 shared_ld_bank_conflict,shared_st_bank_c…

PTA-成绩转换

本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则&#xff1a; 大于等于90分为A&#xff1b;小于90且大于等于80为B&#xff1b;小于80且大于等于70为C&#xff1b;小于70且大于等于60为D&#xff1b;小于60为E。 输入格式: 输入在一行中给出一个整数的百分制成…

WordPress网站如何修复数千个帖子的SEO错误

在本教程中&#xff0c;我们将向您展示如何解决您经常犯的SEO错误。 最好的是您不必花费太多时间&#xff0c;因为您不需要打开并编辑每个帖子。 相反&#xff0c;我们将向您展示如何使用 WordPress 内的电子表格来修复 WordPress 帖子的 SEO。 在这里&#xff0c;我们为您提…

Spring-jdbcTemplate-配置数据库连接池,配置文件方式beans.xml

1、jdbc.properties jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql:///studb jdbc.userroot jdbc.pwd123456 2、beans.xml <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans&…

计算机中了halo勒索病毒怎么清除,halo勒索病毒解密数据恢复

科技的进步加快了企业发展的步伐&#xff0c;网络技术的不断应用为企业的生产运营提供了极大帮助&#xff0c;但随之而来的网络安全威胁也不断增加&#xff0c;近期&#xff0c;云天数据恢复中心接到很多企业的求助&#xff0c;企业的计算机服务器遭到了halo勒索病毒攻击&#…

虚拟机解决Linux中Uos和Deepin登录密码忘记的问题 标题Linux Uos Deepin

Uos是切换网络模式解决的(之前有绑定过用户) 因为之前用的是桥接模式登录的时候一直无法联网,改为Nat模式后可以和电脑共用一个网络ip,可以重置密码了,以此解决 ps: 特别说明rw single init/bin/bash 方法和systemd.debug-shell1方法已经失效,不要再做无谓的尝试了Deepin23社区…

怎样用AIDL Service 传递复杂数据

大家都知道在Android中通过AIDL可以跨进程调用Service中的数据&#xff0c;网上也有很多实例&#xff0c;但是大部分实例都是关于基本数据类型的远程调用&#xff0c;很少讲到复杂数据的调用&#xff0c;今天我用一个例子来演示一下怎样用AIDL Service 传递复杂数据。 我们分2…

HTTP客户端警告:Going to buffer response body of large or unknown size

HTTP客户端警告&#xff1a;Going to buffer response body of large or unknown size 点关注不迷路&#xff0c;欢迎再访&#xff01; 精简博客内容&#xff0c;尽量已行业术语来分享。 努力做到对每一位认可自己的读者负责。 帮助别人的同时更是丰富自己的良机。 目录 HTTP客…

筑牢思想防线——建行驻江门市分行纪检组举办2023年清廉合规大讲堂

为推动廉洁教育打通“最后一公里”&#xff0c;近日&#xff0c;建行驻江门市分行纪检组举办江门市分行2023年清廉合规大讲堂。 本次大讲堂检察官结合一线办案经历&#xff0c;从防范化解金融风险、预防金融从业人员犯罪等方面对全辖员工进行了深入浅出地的讲解&#xff0c;引导…

msvcp120.dll丢失是什么意思,哪个修复方法最简单

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到msvcp120.dll”。这个错误通常发生在运行某些程序或游戏时&#xff0c;它会导致程序无法正常启动或运行。那么&#xff0c;这个错误提示到底是什么意思呢&#xff1f;为了解决这个问…

[23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution

paper | proj | code 提出一种基于K-Planes的4D point cloud Representation&#xff1b;提出一种Hybrid appearance model&#xff0c;包含image blending model和SH model。其中&#xff0c;image blending model将3D点映射回原图中求得&#xff0c;SH model通过模型预测求得…

JAVA实现flappy bird游戏

图片素材 实现代码 import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.util.Date; import java.text.SimpleDateFormat; i…