当前位置: 首页 > news >正文

深度学习在边缘检测中的应用及代码分析

 摘要: 本文深入探讨了深度学习在边缘检测领域的应用。首先介绍了边缘检测的基本概念和传统方法的局限性,然后详细阐述了基于深度学习的边缘检测模型,包括其网络结构、训练方法和优势。文中分析了不同的深度学习架构在边缘检测中的性能表现,并讨论了数据获取与预处理对于提高检测效果的重要性。此外,还提及了当前面临的挑战以及未来的发展趋势,旨在全面呈现深度学习如何推动边缘检测技术的发展和变革。

一、引言

边缘检测是计算机视觉中的一项关键任务,其目的是识别图像中物体的边界。准确的边缘检测在图像分割、目标识别、图像增强等众多领域有着重要的应用。传统的边缘检测方法如 Sobel、Canny 等,虽然在一定程度上能够有效地提取边缘,但它们依赖于手工特征,在复杂场景下往往存在局限性,例如对噪声敏感、难以检测出微弱边缘等。随着深度学习技术的发展,它在边缘检测领域展现出了巨大的潜力,能够克服传统方法的不足,实现更精确和鲁棒的边缘检测。

二、边缘检测的基本概念

(一)边缘的定义

边缘通常是指图像中像素灰度值发生急剧变化的地方,这些变化可以是由于物体与背景之间的灰度差异、物体不同表面的灰度差异等原因造成的。从数学角度来看,边缘可以看作是图像灰度函数的不连续点或其导数的极值点。

(二)传统边缘检测方法

  1. Sobel 算子
    Sobel 算子通过计算图像的水平和垂直方向的梯度来检测边缘。它使用两个 3x3 的卷积核,一个用于检测水平边缘,另一个用于检测垂直边缘。通过对图像进行卷积运算,可以得到每个像素点在水平和垂直方向上的梯度值,然后根据一定的阈值来确定边缘点。
  2. Canny 边缘检测算法
    Canny 算法是一种经典的边缘检测算法,它包括以下几个步骤:首先对图像进行高斯滤波以减少噪声,然后计算图像的梯度幅值和方向,接着进行非极大值抑制以细化边缘,最后通过双阈值处理和边缘连接得到最终的边缘图像。

(三)传统方法的局限性

传统边缘检测方法主要基于手工设计的滤波器和阈值策略,对于复杂的自然图像,其效果往往不理想。这些方法对噪声敏感,因为噪声会导致梯度计算的误差。而且,在图像中存在模糊边缘、纹理丰富区域以及光照变化较大的情况下,传统方法很难准确地检测出边缘,因为它们不能自适应地学习图像的特征。

三、深度学习在边缘检测中的模型与方法

(一)基于卷积神经网络(CNN)的边缘检测模型

  1. 网络结构
    典型的用于边缘检测的 CNN 结构包括多个卷积层、池化层和全连接层。卷积层用于提取图像的局部特征,通过不同的卷积核可以捕捉到不同方向和尺度的边缘信息。池化层用于减少数据量,同时保持主要的特征,例如最大池化可以选择局部区域内的最大值作为输出,有助于提高模型的鲁棒性。全连接层则用于将提取到的特征进行整合和分类,以输出边缘检测的结果。
  2. 训练方法
    在训练阶段,需要大量的有标记数据。通常将包含边缘标注的图像作为输入,输出是预测的边缘图像。损失函数用于衡量预测结果与真实边缘标注之间的差异,常用的损失函数有交叉熵损失等。通过反向传播算法不断调整网络的参数,使得损失函数最小化,从而提高模型的准确性。
  3. 优势
    CNN 能够自动学习图像的特征,无需手工设计滤波器。它可以适应不同类型的图像和复杂的场景,对于噪声和光照变化等具有较强的鲁棒性。而且,通过增加网络的深度和复杂度,可以提取更丰富的边缘信息。

(二)其他深度学习架构

  1. 全卷积网络(FCN)
    FCN 是一种特殊的卷积神经网络,它将传统 CNN 中的全连接层转换为卷积层,使得网络可以接受任意大小的输入图像并输出相应大小的边缘图。这避免了在传统方法中需要对图像进行裁剪或缩放的问题,保持了图像的原始空间信息,对于边缘检测的准确性有很大的提升。
  2. 生成对抗网络(GAN)在边缘检测中的应用
    GAN 由生成器和判别器组成。在边缘检测中,生成器可以尝试生成边缘图像,而判别器则用于判断生成的边缘图像是否真实。通过两者之间的对抗训练,生成器可以不断改进生成的边缘图像质量,从而实现更好的边缘检测效果。例如,可以利用 GAN 来增强模糊边缘的检测能力,或者在低分辨率图像中生成更准确的边缘。

四、数据获取与预处理

(一)数据集的构建

为了训练深度学习模型进行边缘检测,需要大量的图像数据和相应的边缘标注。可以使用公开的图像数据集,如 ImageNet 等,并通过手工标注或利用现有的边缘检测算法生成初始标注,然后再进行人工修正。此外,也可以专门采集特定领域的图像,如医学图像、工业检测图像等,并进行标注来构建自定义的数据集。

(二)数据预处理

数据预处理对于提高边缘检测模型的性能至关重要。常见的预处理步骤包括图像归一化,即将图像的像素值归一化到特定的范围,如 [0,1] 或 [-1,1],这样可以加速模型的训练过程。同时,对图像进行数据增强操作,如旋转、翻转、缩放等,可以增加数据集的多样性,提高模型的泛化能力。对于存在噪声的图像,可以进行去噪处理,例如使用中值滤波等方法,减少噪声对边缘检测的影响。

五、深度学习在边缘检测中的性能评估

(一)评估指标

  1. 准确率(Accuracy)
    准确率是指正确检测到的边缘像素数占总像素数的比例。它可以直观地反映模型检测边缘的准确性,但在边缘像素和非边缘像素数量不平衡的情况下,准确率可能会产生误导。
  2. 召回率(Recall)
    召回率是指正确检测到的边缘像素数占真实边缘像素数的比例。它主要衡量模型对边缘的检测能力,特别是对于那些难以检测的微弱边缘。
  3. F1 - score
    F1 - score 是准确率和召回率的调和平均数,综合考虑了两者的因素,可以更全面地评估边缘检测模型的性能。

(二)不同模型的性能对比

通过在多个数据集上对传统边缘检测方法和基于深度学习的边缘检测模型进行实验对比,可以发现深度学习模型在大多数情况下具有明显的优势。例如,在包含复杂纹理和噪声的自然图像数据集上,CNN 模型和 FCN 模型的 F1 - score 通常比传统的 Sobel 和 Canny 算法要高,能够更准确地检测出物体的边缘,尤其是在物体边界模糊或光照不均匀的区域。

六、挑战与发展趋势

(一)当前面临的挑战

  1. 计算资源需求
    深度学习模型,尤其是深度较深、结构复杂的模型,需要大量的计算资源进行训练和推理。这对于边缘设备等资源受限的场景来说是一个很大的限制,如何在保证性能的前提下减少计算资源的消耗是一个亟待解决的问题。
  2. 标注数据的获取
    高质量的标注数据是训练深度学习边缘检测模型的关键。然而,获取大量准确的边缘标注数据往往需要耗费大量的人力和时间,而且对于一些特殊领域的图像,标注难度更大。
  3. 模型的泛化能力
    虽然深度学习模型在训练数据集上可以取得很好的效果,但在新的、未见过的图像场景中,可能会出现性能下降的情况。提高模型的泛化能力,使其能够适应各种不同类型的图像是目前面临的挑战之一。

(二)未来发展趋势

  1. 轻量级模型的发展
    为了适应资源受限的环境,研究人员正在致力于开发轻量级的深度学习模型。这些模型通过简化网络结构、使用量化技术等方法,在减少计算资源需求的同时,尽量保持较好的边缘检测性能。
  2. 无监督和半监督学习
    利用无监督和半监督学习方法可以减少对标注数据的依赖。例如,通过自监督学习让模型学习图像的自身结构信息,从而实现边缘检测。半监督学习则可以结合少量的标注数据和大量的未标注数据进行训练,提高模型的性能。
  3. 多模态融合
    在一些应用场景中,如医学图像分析,可以融合多种模态的数据,如图像与医学测量数据等。通过设计合适的深度学习模型来融合这些多模态信息,可以进一步提高边缘检测的准确性和可靠性。

七、结论

深度学习在边缘检测领域已经取得了显著的成果,克服了传统边缘检测方法的诸多局限性。通过各种深度学习模型和方法,能够更准确、更鲁棒地检测图像中的边缘,在众多领域有着广泛的应用前景。然而,目前仍然面临着计算资源需求、标注数据获取和模型泛化能力等挑战。未来,随着轻量级模型、无监督和半监督学习以及多模态融合等发展趋势的推进,深度学习在边缘检测中的应用将会不断完善和拓展,为计算机视觉等相关领域带来更大的价值。

八、代码分析

以下是分别使用传统的 Canny 边缘检测算法和基于深度学习的卷积神经网络(CNN)进行边缘检测的示例代码。

传统 Canny 边缘检测示例代码(Python + OpenCV)

import cv2
import numpy as np# 读取图像
image = cv2.imread('your_image.jpg', 0)  # 以灰度模式读取图像# 进行Canny边缘检测
edges = cv2.Canny(image, threshold1=100, threshold2=200)# 显示原始图像和边缘检测结果
cv2.imshow('Original Image', image)
cv2.imshow('Canny Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述代码中:

  1. 首先使用 cv2.imread 函数以灰度模式读取一张图像。
  2. 然后调用 cv2.Canny 函数对读取的图像进行边缘检测,这里设置了两个阈值 threshold1 和 threshold2,阈值的选择会影响边缘检测的结果,通常需要根据具体图像进行调整。
  3. 最后使用 cv2.imshow 函数分别显示原始图像和边缘检测后的图像,并通过 cv2.waitKey 和 cv2.destroyAllWindows 来控制图像显示窗口的行为。

基于卷积神经网络(CNN)的边缘检测示例代码(Python + TensorFlow)

以下是一个简单的基于 CNN 的边缘检测示例代码框架,实际应用中可能需要更复杂的网络结构和更多的训练数据来达到较好的效果。

import tensorflow as tf
from tensorflow.keras import layers, models
import cv2
import numpy as np# 定义一个简单的CNN模型用于边缘检测
def create_edge_detection_model():model = models.Sequential()model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(256, 256, 1)))model.add(layers.MaxPooling2D((2, 2)))model.add(layers.Conv2D(64, (3, 3), activation='relu'))model.add(layers.MaxPooling2D((2, 2)))model.add(layers.Conv2D(128, (3, 3), activation='relu'))model.add(layers.MaxPooling2D((2, 2)))model.add(layers.Flatten())model.add(layers.Dense(128, activation='relu'))model.add(layers.Dense(256 * 256, activation='sigmoid'))model.add(layers.Reshape((256, 256, 1)))return model# 加载图像并进行预处理
def load_and_preprocess_image(image_path):image = cv2.imread(image_path, 0)image = cv2.resize(image, (256, 256))image = np.expand_dims(image, axis=-1)image = image / 255.0return image# 训练模型(这里只是示例,实际训练需要更多数据和迭代)
def train_model(model, train_images, train_edges):model.compile(optimizer='adam', loss='binary_crossentropy')model.fit(train_images, train_edges, epochs=10, batch_size=32)# 预测边缘
def predict_edges(model, test_image):predicted_edges = model.predict(np.expand_dims(test_image, axis=0))predicted_edges = np.squeeze(predicted_edges, axis=0)predicted_edges = (predicted_edges > 0.5).astype(np.uint8) * 255return predicted_edgesif __name__ == "__main__":# 创建模型model = create_edge_detection_model()# 加载并预处理训练图像和对应的边缘图像(这里假设已经有了这些数据)train_images = [load_and_preprocess_image('train_image_{}.jpg'.format(i)) for i in range(10)]train_edges = [load_and_preprocess_image('train_edge_{}.jpg'.format(i)) for i in range(10)]# 训练模型train_model(model, train_images, train_edges)# 加载测试图像并进行预测test_image = load_and_preprocess_image('test_image.jpg')predicted_edges = predict_edges(model, test_image)# 显示原始测试图像和预测的边缘图像cv2.imshow('Original Test Image', cv2.resize(cv2.imread('test_image.jpg', 0), (256, 256)))cv2.imshow('Predicted Edges', predicted_edges)cv2.waitKey(0)cv2.destroyAllWindows()

在上述基于 CNN 的示例代码中:

  1. 首先定义了一个简单的 CNN 模型 create_edge_detection_model,它包含了卷积层、池化层、全连接层等基本组件,用于从输入图像中提取特征并预测边缘。
  2. load_and_preprocess_image 函数用于加载图像并进行预处理,包括调整大小、增加维度以及归一化像素值等操作,以便输入到模型中。
  3. train_model 函数用于编译和训练模型,这里使用了 adam 优化器和 binary_crossentropy 损失函数,并进行了简单的 10 个 epoch 的训练(实际应用中需要更多的数据和更多的训练迭代)。
  4. predict_edges 函数用于对测试图像进行边缘预测,它通过模型预测得到边缘的概率图,然后根据阈值(这里设置为 0.5)将其转换为二值化的边缘图像。
  5. 在 if __name__ == "__main__" 部分,按照上述步骤依次创建模型、加载训练数据(这里只是简单示例了 10 张训练图像和对应的边缘图像)、训练模型、加载测试图像并预测边缘,最后显示原始测试图像和预测的边缘图像。

请注意,上述基于 CNN 的示例代码只是一个简单的演示,实际应用中要构建一个有效的基于 CNN 的边缘检测模型,需要大量的训练数据、更精细的网络结构调整以及更深入的模型训练和优化过程。

相关文章:

深度学习在边缘检测中的应用及代码分析

摘要: 本文深入探讨了深度学习在边缘检测领域的应用。首先介绍了边缘检测的基本概念和传统方法的局限性,然后详细阐述了基于深度学习的边缘检测模型,包括其网络结构、训练方法和优势。文中分析了不同的深度学习架构在边缘检测中的性能表现&am…...

k8s 1.28.2 集群部署 docker registry 接入 MinIO 存储

文章目录 [toc]docker registry 部署生成 htpasswd 文件生成 secret 文件 生成 registry 配置文件创建 service创建 statefulset创建 ingress验证 docker registry docker registry 监控docker registry ui docker registry dockerfile docker registry 配置文件 S3 storage dr…...

常用的生物医药专利查询数据库及网站(很全!)

生物医药专利信息检索是药物研发前期不可或缺的一步,通过对国内外生物医药专利网站信息查询,可详细了解其专利技术,进而有效降低药物研发过程中的风险。 目前主要使用的生物医药专利查询网站分为两大类,一个是免费生物医药专利查询…...

「QT」几何数据类 之 QPolygon 多边形类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

写给初学者的React Native 全栈开发实战班

React Native 全栈开发实战班 亲爱的同学们: 很高兴在这里与大家相聚!我是你们的讲师,将带领大家一起踏上 React Native 移动开发的学习之旅。 为什么选择 React Native? 在这个移动互联网时代,App 开发工程师已经…...

工作和学习遇到的技术问题

写在前面 记录工作和学习遇到的技术问题,以求再次遇到可以快速解决。 1:Ubuntu TSL换源报错:Err:1 http://mirrors.aliyun.com/ubuntu focal InRelease 执行如下操作(已经操作的则忽略),首先在文件/etc/apt/sources…...

如何解决JAVA程序通过obloader并发导数导致系统夯住的问题 | OceanBase 运维实践

案例背景 某保险机构客户的数据中台,自系统上线后不久,会定期的用 obload 工具从上游业务系统导入数据至OceanBase数据库。但,不久便遇到了应用服务器的 Memory 与 CPU 资源占用持续攀升,最终导致系统夯住而不可用的异常。 memo…...

Git零基础到入门

一、开始工作区 clone: 克隆一个仓库到新的目录。 git clone https://github.com/username/repository.git init: 创建一个新的空 Git 仓库或重新初始化现有的仓库,新建git项目。 //创建项目两种方式 //一、本地项目自己创建项目,先创建好工作文件夹,通…...

HTTP 1.0、HTTP 1.1 和 HTTP 2.0 区别

HTTP 1.0、HTTP 1.1 和 HTTP 2.0 是超文本传输协议(HTTP)不同版本的规范,各自进行了多项更新和改进: 1. HTTP/1.0 单一请求-响应:每次请求都需要建立一个新的 TCP 连接,完成后立即断开。无状态连接&#…...

解决 ElSelect 数据量大导致加载速度慢

遇到一个性能相关的问题&#xff0c;使用 Element Plus 的 <ElSelect> 组件在数据量很大时&#xff0c;加载速度变慢。 下面简单分析下原因&#xff0c;并提供了一些解决方法。 1. 问题分析 1、大量 DOM 节点渲染 问题&#xff1a;当数据量非常大时&#xff0c;每一个…...

在 CentOS 系统中,您可以使用多种工具来查看网络速度和流量

在 CentOS 系统中&#xff0c;您可以使用多种工具来查看网络速度和流量 在 CentOS 系统中&#xff0c;您可以使用多种工具来查看网络速度和流量1. 使用 iftop安装 iftop使用 iftop 2. 使用 nload安装 nload使用 nload 3. 使用 vnstat安装 vnstat初始化 vnstat查看流量 4. 使用 …...

分布式----Ceph部署

目录 一、存储基础 1.1 单机存储设备 1.2 单机存储的问题 1.3 商业存储解决方案 1.4 分布式存储&#xff08;软件定义的存储 SDS&#xff09; 1.5 分布式存储的类型 二、Ceph 简介 三、Ceph 优势 四、Ceph 架构 五、Ceph 核心组件 #Pool中数据保存方式支持两种类型&…...

使用 PyTorch 实现 AlexNet 进行 MNIST 图像分类

AlexNet 是一种经典的深度学习模型&#xff0c;它在 2012 年的 ImageNet 图像分类比赛中大放异彩&#xff0c;彻底改变了计算机视觉领域的格局。AlexNet 的核心创新包括使用深度卷积神经网络&#xff08;CNN&#xff09;来处理图像&#xff0c;并采用了多个先进的技术如 ReLU 激…...

Python爬虫项目 | 一、网易云音乐热歌榜歌曲

文章目录 1.文章概要1.1 实现方法1.2 实现代码1.3 最终效果 2.具体讲解2.1 使用的Python库2.2 代码说明2.2.1 创建目录保存文件2.2.2 爬取网易云音乐热歌榜单歌曲 2.3 过程展示 3 总结 1.文章概要 学习Python爬虫知识&#xff0c;实现简单的一个小案例&#xff0c;网易云音乐热…...

【Linux】HTTP协议和HTTPS加密

文章目录 HTTP1、概念2、认识URL3、协议格式、请求方法和状态码4、HTTP请求和响应报头5、Cookie和Session HTTPS1、对称和非对称加密2、对称非对称加密安全分析3、证书 HTTP 1、概念 我们在应用层定制协议时&#xff0c;不建议直接发送结构体对象&#xff0c;因为在不同的环境…...

Linux编辑/etc/fstab文件不当,不使用快照;进入救援模式

目录 红帽镜像9救援模式 现象 解决 第一步&#xff1a;修改启动参数以进入救援模式 第二步&#xff1a;进入救援模式、获取root权限、编辑/etc/fstab文件 第三步&#xff1a;编辑好后在重启 下面是ai给的模板 红帽镜像9救援模式 编辑/etc/fstab不当时 17 /dev/nvme0n3p1…...

ubuntu升级postgres

已经有了postgres12&#xff0c;记录一下升级从postgres12升级到15的过程及遇到的一些问题&#xff0c;我没有备份&#xff0c;单纯升级 1、升级过程 深色版本 sudo systemctl stop postgresql 升级PostgreSQL 停止PostgreSQL服务&#xff1a; 停止当前版本的PostgreSQL服务…...

vue2在el-dialog打开的时候使该el-dialog中的某个输入框获得焦点方法总结

在 Vue 2 中&#xff0c;如果你想通过 ref 调用一个方法&#xff08;如 inputFocus&#xff09;来聚焦一个输入框&#xff0c;确保以下几点&#xff1a; 确保 ref 的设置正确&#xff1a;你需要确保在模板中正确设置了 ref&#xff0c;并且它指向了你想要操作的组件或 DOM 元素…...

SpringBoot(十七)创建多模块Springboot项目

在gitee上查找资料的时候,发现有不少Springboot项目里边都是嵌套了多个Springboot项目的。这个玩意好,在协作开发的时候,将项目分成多个模块,有多个团队协作开发,模块间定义标准化通信接口进行数据交互即可。 这个好这个。我之前创建的博客项目是单模块的SpringBoot项目,…...

Vue.js 高质量翻页功能的完整开发指南

文章目录 Vue.js 翻页组件的完整开发与优化指南前言分析分页需求与设计要点基础分页功能的实现分页逻辑 优化分页&#xff1a;封装为组件化设计组件化代码 提升用户体验与性能动态调整每页显示的条目数优化移动端与桌面端的展示高性能翻页策略&#xff1a;按需加载与懒加载提示…...

android dvr黑屏

问题现象&#xff1a;dvr拍摄的图片是黑的&#xff0c;没有buffer数据的。 查看相关的log文件发现&#xff1a; video surface 未释放导致 祥见一下报错信息&#xff1a; 38298 2024-10-16 01:02:51.855 4056 32068 W MediaCodecRenderer: java.lang.IllegalStateExcepti…...

css文字间距撑满横向距离

效果&#xff1a; 代码&#xff1a; 、 text-align:justify;text-align-last: justify;...

【Unity基础】对比OnCollisionEnter与OnTriggerEnter

在Unity中&#xff0c;OnCollisionEnter 和 OnTriggerEnter 是两种用于处理碰撞的回调函数&#xff0c;但它们的工作方式和使用场景有所不同&#xff1a; 1. OnCollisionEnter 触发条件&#xff1a;当一个带有 Collider 组件并且**未勾选“Is Trigger”**的物体&#xff0c;与…...

算法训练(leetcode)二刷第二十五天 | *134. 加油站、*135. 分发糖果、860. 柠檬水找零、*406. 根据身高重建队列

刷题记录 *134. 加油站*135. 分发糖果860. 柠檬水找零*406. 根据身高重建队列 *134. 加油站 leetcode题目地址 当前站点可以剩余油量gas[i] - cost[i]; 将每站的剩余油量求和计算累计剩余油量&#xff0c;总剩余油量小于0&#xff0c;则无法行驶一周。 若在到达某一站时累计剩…...

Springboot 整合 itext 实现PDF文件合并,识别图片则转成PDF拼接

目录 前言一、引用依赖二、使用步骤1.Controller2.Service接口3.实现类三、请求接口及结果前言 本文实现 Springboot 整合 itext 实现PDF文件合并,图片转PDF拼接。 一、引用依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-co…...

TypeScript 中的 ! 和 ? 操作符

在 TypeScript 中&#xff0c;! 和 ? 是两个非常重要且常用的操作符&#xff0c;分别用于非空断言和可选链操作。下面简单介绍一下二者。 1. 非空断言操作符 ! 1.1 含义 非空断言操作符 !&#xff08;Non-null assertion operator&#xff09;用来告诉 TypeScript 编译器&a…...

开源三代示波器的高速波形刷新方案开源,支持VNC远程桌面,手机,Pad,电脑均可访问(2024-11-11)

说明&#xff1a; 1、本来这段时间是一年一度Hackaday硬件设计开源盛宴&#xff0c;但hackaday电子大赛在去年终结了。所以我开源个我的吧。 2、三代示波器的高速波形刷新方案&#xff0c;前两年就做好了&#xff0c;这两年忙H7-TOOL的更新比较多&#xff0c;三代示波器的更新…...

谷歌推出设备内置人工智能,实时向手机用户发出诈骗电话警报

Google 宣布推出适用于 Android 的新安全功能&#xff0c;可实时防御诈骗和有害应用。 这些功能由先进的设备内置 AI 提供支持&#xff0c;可在不损害隐私的情况下增强用户安全性。 这些新的安全功能首先在 Pixel 上推出&#xff0c;并将很快在更多 Android 设备上推出。 诈…...

AI换人脸facefusion项目口型同步‌API化改造及部署

一. 简介 ‌FaceFusion‌是一款强大的AI换脸软件&#xff0c;它支持图片、视频以及直播换脸&#xff0c;官方将其称为“下一代脸部交换器和增强器”。FaceFusion的最新版本为2.6.1&#xff0c;这个版本在原有基础上增加了更多的模型和高清算法&#xff0c;显著提升了图片和视频…...

移动端问题

这里只是做一个记录&#xff0c;不一定大家都会有问题&#xff0c;参考就行 一、页面回弹 苹果有&#xff0c;安卓没有 解决&#xff1a;pages.json下 app-plus { bounce: none} 关闭回弹效果 二、onreachBottom触底生命周期&#xff0c;ios无法触发 修改触底数值&#xff1a…...