前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何将 Web 框架迁移到 Serverless

如何将 Web 框架迁移到 Serverless

作者头像
腾讯云serverless团队
发布于 2020-07-03 02:41:23
发布于 2020-07-03 02:41:23
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

Serverless 通常翻译为「无服务架构」,是一种软件系统设计架构思想和方法,并不是一个开发框架或者工具。他的出现是为了让开发者更加关注业务的开发,而将繁杂的运维和部署交给云厂商。Serverless 由 Faas 和 Baas 组成,Faas 为开发者提供业务运算环境,然后与 Baas 提供的数据和存储服务,进行交互,从而提供与传统服务一致的体验。但是由于 Faas 是无状态的,并且其运行环境是有读写限制的,最重要的是它是基于事件触发的。因此如果传统 Web 服务想迁移到 Serverless 上,是需要进行相关改造和特殊处理的,为此迁移成本是必不可少的。本文将具体帮助大家剖析下,如何 Serverless 化传统的 Web 服务。

读完本文将了解到:

  1. 传统 Web 服务特点
  2. Serverless 适用场景
  3. Web 框架如何迁移到 Serverless
  4. 使用 Serverless Components 快速部署 Web 框架

传统 Web 服务特点

Web 服务定义:

Web 服务是一种 面向服务的架构 (SOA) 的技术,通过标准的 Web 协议提供服务,目的是保证不同平台的应用服务可以互操作。

日常生活中,接触最多的就是基于 HTTP 协议的服务,客户端发起请求,服务端接受请求,进行计算处理,然后返回响应,简单示意图如下:

web-service-flow

传统 Web 服务部署流程:通常需要将项目代码部署到服务器上,启动服务进程,监听服务器的相关端口,然后等待客户端请求,从而响应返回处理结果。而这个服务进程是常驻的,就算没有客户端请求,也会占用相应服务器资源。

一般我们的服务是由高流量和低流量场景交替组成的,但是为了考虑高流量场景,我们需要提供较高的服务器配置和多台服务进行负载均衡。这就导致服务处在低流量场景时,会多出很多额外的闲置资源,但是购买的资源却需要按照高流量场景进行付费,这是非常不划算的。

如果我们的服务能在高流量场景自动扩容,低流量场景自动缩容,并且只在进行计算处理响应时,才进行收费,而空闲时间不占用任何资源,就不需要收费呢?

答案就是 Serverless

Serverless 适用场景

上面已经提到了 Serverless 的两个核心特点:按需使用和收费自动扩缩容。而且近几年 Serverless 的应用也越来越广泛,但是它并不是银弹,任何技术都是有它的适合场景和不适合场景。我们不能因为一项技术的火热,而盲目的追捧。Serverless 是有它的局限性的,一般 Serverless 适合如下几种场景:

  1. 异步的并发,组件可独立部署和扩展
  2. 应对突发或服务使用量不可预测
  3. 无状态,计算耗时较短服务
  4. 请求延时不敏感服务
  5. 需要快速开发迭代的业务

如果你的服务不满足以上条件,笔者是不推荐迁移到 Serverless。

Web 框架如何迁移到 Serverless

如果你的服务是以上提到的任何一个场景,那么就可以尝试迁移到 Serverless 上。

常见的 Serverless HTTP 服务结构图如下:

serverless-http-framework

那么我们如何将 Web 服务进行迁移呢?

我们知道 Faas (云函数)是基于事件触发的,也就是云函数被触发运行时,接收到的是一个 JSON 结构体,它跟传统 Web 请求时有区别的,这就是为什么需要额外的改造工作。而改造的工作就是围绕如何将事件 JSON 结构体转化成标准的 Web 请求

所以 Serverless 化 Web 服务的核心就是需要开发一个 适配层,来帮我们将触发事件转化为标准的 Web 请求。

整个处理流程图如下:

serverless-http-flow

接下来将介绍如何为 Express 框架开发一个适配层。

Serverless Express 适配层开发

实现原理:

首先我们先来看看一个标准的云函数结构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports.handler = (event, context) => {
  // do some culculation
  return res;
};

在介绍如何开发一个 Express 的适配层前,我们先来熟悉下 Express 框架。

一个简单的 Node.js Web 服务如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const http = require("http");
const server = http.createServer(function (req, res) {
  res.end("helloword");
});
server.listen(3000);

Express 就是基于 Node.js 的 Web 框架,而 Express 核心就是 通过中间件的方式,生成一个回调函数,然后提供给 http.createServer() 方法使用。

Express 核心架构图如下:

express-framework

由此可知,我们可以将 Express 框架生成的回调函数,作为 http.createServer() 的参数,来创建可控的 HTTP Server,然后将云函数的 event 对象转化成一个 request 对象,通过 http.request() 方法发起 HTTP 请求,获取请求响应,返回给用户,就可以实现我们想要的结果。

Node.js Server 的监听方式选择

对于 Node.js 的 HTTP Server,可以通过调用 server.listen() 方法来启动服务,listen() 方法支持多种参数类型,主要有两种监听方式 从一个TCP端口启动监听从一个UNIX Socket套接字启动监听

  • server.listen(port[, hostname][, backlog][, callback]):从一个TCP端口启动监听
  • server.listen(path, [callback]):从一个UNIX Domain Socket启动监听

服务器创建后,我们可以像下面这样启动服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 从'127.0.0.1'和3000端口开始接收连接
server.listen(3000, '127.0.0.1', () => {});
// 从 UNIX 套接字所在路径 path 上监听连接
server.listen('path/to/socket', () => {})

无论是 TCP Socket 还是 Unix Domain Socket,每个 Socket 都是唯一的。TCP Socket 通过 IP和端口 描述,而 Unix Domain Socket 通过 文件路径 描述。

TCP 属于传输层的协议,使用 TCP Socket 进行通讯时,需要经过传输层 TCP/IP 协议的解析。

Unix Domain Socket 可用于不同进程间的通讯和传递,使用 Unix Domain Socket 进行通讯时不需要经过传输层,也不需要使用 TCP/IP 协议。所以,理论上讲 Unix Domain Socket 具有更好的传输效率。

因此这里在设计启动服务时,采用了 Unix Domain Socket 方式,以便减少函数执行时间,节约成本。

关于 Node.js 如何实现 IPC 通信,这里就不详细介绍的,感兴趣的小伙伴可以深入研究下,这里有个简单的示例,nodejs-ipc

一、代码实现

原理大概介绍清楚了,我们的核心实现代码需要以下三步:

  1. 通过 Node.js HTTP Server 监听 Unix Domain Socket,启动服务
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function createServer(requestListener, serverListenCallback) {
  const server = http.createServer(requestListener);

  server._socketPathSuffix = getRandomString();
  server.on("listening", () => {
    server._isListening = true;
    if (serverListenCallback) serverListenCallback();
  });
  server
    .on("close", () => {
      server._isListening = false;
    })
    .on("error", (error) => {
      // ...
    });
  server.listen(`/tmp/server-${server._socketPathSuffix}.sock`)
  return server;
}
  1. 将 Serverless Event 对象转化为 Http 请求
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function forwardRequestToNodeServer(server, event, context, resolver) {
  try {
    const requestOptions = mapApiGatewayEventToHttpRequest(
      event,
      context,
      getSocketPath(server._socketPathSuffix),
    );
    // make http request to node server
    const req = http.request(requestOptions, (response) =>
      forwardResponseToApiGateway(server, response, resolver),
    );
    if (event.body) {
      const body = getEventBody(event);
      req.write(body);
    }

    req
      .on('error', (error) =>
        // ...
      )
      .end();
  } catch (error) {
    // ...
    return server;
  }
}
  1. 将 HTTP 响应转化为 API 网关标准数据结构
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function forwardResponseToApiGateway(server, response, resolver) {
  response
    .on("data", (chunk) => buf.push(chunk))
    .on("end", () => {
      // ...
      resolver.succeed({
        statusCode,
        body,
        headers,
        isBase64Encoded,
      });
    });
}

最后函数的 handler 将异步请求返回就可以了。

二、借助 tencent-serverless-http 库实现

如果不想手写这些适配层代码,可以直接使用 tencent-serverless-http 模块。

它使用起来很简单,创建我们的 Express 应用入口文件 sls.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const express = require("express");
const app = express();

// Routes
app.get(`/`, (req, res) => {
  res.send({
    msg: `Hello Express`,
  });
});

module.exports = app;

然后创建云函数 sl_handler.js 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const { createServer, proxy } = require("tencent-serverless-http");
const app = require("./app");

exports.handler = async (event, context) => {
  const server = createServer(app);
  const result = await proxy(server, event, context, "PROMISE").promise;
};

接下来,将业务代码和依赖模块一起打包部署到云函数就可以了(记得指定 执行方法sl_handler.handler )。

其他 Node.js 框架

除了 Express 框架,其他的 Node.js 框架也基本类似,只需要按照要求,exports 一个 HTTP Server 的回调函数就可以。

比如 Koa,我们拿到初始化的 Koa 应用后,只需要将 app.callback() 作为 createServer() 方法的参数就可以了,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const { createServer, proxy } = require("tencent-serverless-http");
const app = require("./app");

exports.handler = async (event, context) => {
  // 这里和 Express 略有区别
  const server = createServer(app.callback());
  const result = await proxy(server, event, context, "PROMISE").promise;
};

其他语言框架

对于非 Node.js 框架,比如 PythonFlask 框架,原理都是一样的,核心只需要做到 将 Serverless Event 对象转化为 Http 请求,就可以了。由于笔者对其他语言不太熟悉,这里就不做深入介绍了,感兴趣的小伙伴,可以到 Github 社区搜索下,已经有很多对应的解决方案了,或者自己尝试手撸也是可以的。

使用 Serverless Components 快速部署 Web 框架

读到这里,相信你已经清楚,如何将自己的 Node.js 框架迁移到 Serverless 了。但是在这之前,我们都是手动处理的,而且每次都需要自己创建 handler.js 文件,还是不够方便。

为此开源社区提供了一套优秀的解决方案 Serverless Component,通过组件,我们进行简单的 yaml 文件配置后,就可以方便的将我们的框架代码部署到云端。

比如上面提到的 Express 框架,就有对应的组件,我们只需要在项目根目录下创建 serverless.yml 配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
component: express
name: expressDemo

inputs:
  src: ./
  region: ap-guangzhou
  runtime: Nodejs10.15
  apigatewayConf:
    protocols:
      - https
    environment: release

然后全局安装 serverless 命令 npm install serverless -g 之后,执行部署命令即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ serverless deploy

耐心等待几秒,我们的 Express 应用就成功部署到云端了。更多详细信息,请参考 Express 官方文档

注意:本文 Serverless 服务均基于 腾讯云 部署。

Serverless Express 组件不仅能帮我们快速部署 Express 应用,而且它还提供了 实时日志云端调试 的能力。

只需要在项目目录下执行 serverless dev 命令,serverless 命令行工具就会自动监听项目业务代码的更改,并且实时部署,同时我们可以通过打开 Chrome Devtools 来调试 Express 应用。

关于云端调试,腾讯云 Serverless Framework 正式发布公告 中有详细的介绍,并且有视频演示。

而且除了 Express 组件,还支持:Koa.js,Egg.js,Next.js,Nuxt.js.....等更多组件:https://registry.serverless.com

最后

当然 Serverless 化 Web 服务并没有本文介绍的那么简单,比如文件读写,服务日志存储,Cookie/Session 存储等......实际开发中,我们还会面临各种未知的坑,但是比起困难,Serverless 带给我们的收益是值得去尝试的。当然传统 Web 服务真的适合迁移到 Serverless 架构上,也是值得我们去思考的问题,毕竟现有的 Web 框架都是面向传统 Web 服务开发实现的 (推荐阅读 利与弊-传统框架要不要部署在 Serverless 架构上)。但是笔者相信,很快就会出现一个专门为 Serverless 而生的 Web 框架,可以帮助我们更好地基于 Serverless 开发应用 ~

One More Thing

3 秒你能做什么?喝一口水,看一封邮件,还是 —— 部署一个完整的 Serverless 应用?复制以下链接至 PC 浏览器访问:

china.serverless.com/express

3 秒极速部署,立即体验史上最快的 Serverless  HTTP 实战开发!

传送门:

  • GitHub: github.com/serverless
  • 官网:serverless.com

点击阅读原文,访问:Serverless 中文网,您可以在「最佳实践」里体验更多关于 Serverless 应用的开发!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ServerlessCloudNative 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
揭秘腾讯微视人脸技术「黑科技」,基于GAN的人脸魔法特效
随着小视频越来越流行,兼具趣味与人物个性的人脸特效成为小视频软件的标配,美颜自不必说,现在的人脸特效可谓“千变万化”,人脸年轻化、变欧美范儿、发型改变、各种表情、胖瘦等。
CV君
2021/03/12
2.2K0
揭秘腾讯微视人脸技术「黑科技」,基于GAN的人脸魔法特效
发际线有救了!这款app可一键AI生发,拯救你的自拍焦虑
比起卡粉,闷痘,油光,手残,新一代年轻人的美丽可以来得更容易,快速变美只需要两步,打开美图,摆好pose——诠释那句话,“为了美丽,我坚持开美颜”。
AI科技评论
2021/09/16
9630
你好,这是微视AI还原的李焕英
鱼羊 发自 凹非寺  量子位 报道 | 公众号 QbitAI 看,李焕英这亲切的笑容、明亮的眼眸,是否与银幕上那个她一样有感染力? 你的长辈年轻时,又是否像这张老照片里的人一样,剑眉星目,神采飞扬: 要说最近最火的AI玩法,那真是非腾讯微视“会动的老照片”这类特效莫属。 表情迁移技术与基于GAN的老照片修复技术强强联合,给人一种打开了时光机的感觉,仿佛真的能与老照片里的人隔空对话,追忆往昔。 △“我的女儿,我就要她健康快乐” 并且用户无需任何加工,只需在微视APP里上传一张照片,不到一分钟,都能亲自
博文视点Broadview
2023/05/19
3330
你好,这是微视AI还原的李焕英
人人皆可变身黄金圣斗士:微视用AI一键燃烧小宇宙,还有不同星座可选
机器之心原创 作者:蛋酱 那些年关于变身圣斗士的梦想,如今能在腾讯微视 App 就能实现。 「年轻的青铜圣斗士少年们啊,为了大地上的爱与和平,我们将逝去,献上全部的生命和灵魂,融为一体。就在此刻,燃烧吧,黄金的小宇宙!雅典娜啊,请赐予这黑暗的世界一线光明!」 就是这段话,没错,是我们小时候倒背如流的十二黄金圣斗士语录了。很多人也曾暗中想象,自己能成为这群黄金圣斗士的成员之一。现在,「变身」的机会来了! 在腾讯微视 App,黄金圣斗士铠甲的特效挂件已经正式上线。这是静态照片变身后的样子: 变身的操作方法
机器之心
2023/03/29
5840
人人皆可变身黄金圣斗士:微视用AI一键燃烧小宇宙,还有不同星座可选
快手Y-tech:GAN在短视频中的AI特效实践
近年来,以GAN为代表的生成式技术在学术界取得蓬勃发展。在工业界,基于生成式技术的真实感效果也引领了一批爆款特效和应用。快手Y-tech在国内率先将GAN落地于短视频特效制作,并积累了丰富的实践经验,为快手各类人脸爆款特效提供有力技术支持。本文主要介绍快手在高精度人脸属性编辑方面的实践,包括性别、年龄、头发、表情等的生成。
公众号机器学习与AI生成创作
2021/04/19
2.7K0
快手Y-tech:GAN在短视频中的AI特效实践
程序员至死是少年!在公司竟公然变身圣斗士
杨净 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最近,我身边的朋友,突然一个个都变成了圣斗士! 像这种比较炫酷的“飞天”黄金圣斗士,连影子都惟妙惟肖的: 还有这种在办公室偷偷变身双子座圣斗士,想要拯救世界的: 又或者是在自家小花园里变成处女座圣斗士,打破次元壁的: 还有白羊座、天秤座、射手座圣斗士……怎么回事? 原来,这是一群程序员做出的移动端3D圣衣特效,现在只用一部手机,就能随时随地“变身”圣斗士。 又一童年梦想被实现了有木有! 如果不想打开摄像头,也可以只用一张照片,就能成功
量子位
2023/03/10
2890
程序员至死是少年!在公司竟公然变身圣斗士
新知 | 腾讯明眸画质增强 —— 数据驱动下的AI媒体处理
腾讯云音视频画质增强研究团队专注于多媒体技术领域的前沿前沿技术探索、研发、应用和落地。今天的新知系列课,我们邀请到了来自该研究团队的技术导师 —— 陈铭良,为大家介绍他们团队在媒体画质增强工作上的一些方法积累和能力优势。目前他们在画质增强的工作上积极跟进前沿的深度学习算法,并针对性的提出了一些适合于落地的解决方案。通过数据驱动的自动建模和基于AI的媒体处理,部分方法的效果已经超过了当前学术上的state-of-the-art,领先于竞品。 接下来的几周,每周四晚上7:30,我们都会在腾讯云音视频视频号
腾讯云音视频
2021/12/11
1.3K0
刷新纪录,揭秘漫画脸背后的AI技术
昨晚做了一个梦,梦里的我变成漫画里的人物,正在为参与选秀苦练舞蹈,期待着万众瞩目登上舞台的一天。
昱良
2021/02/08
8450
跳舞手脚不协调?没关系,微视用AI打造你我的舞林大会,一张照片就可以
机器之心原创 作者:杜伟 继让老照片动起来、唱歌之后,腾讯微视又解锁了照片的跳舞技能。 80、90 后的小伙伴,应该很熟悉香港歌手陈慧琳的热门歌曲《不如跳舞》吧,歌词中的「聊天不如跳舞,谈恋爱不如跳舞……」风靡了大街小巷,使很多人爱上了跳舞。遗憾的是,对于一些四肢不协调的小伙伴,在人前跳舞无异于一种折磨。但是,不会跳并不意味着看不到自己跳舞的样子。 随着计算机视觉和生成对抗网络的快速发展,人体动作迁移技术的出现使那些没有跳舞天赋的小伙伴也有机会展示自己的舞姿。简单来讲,给定一段别人跳舞的视频和用户的一张照
机器之心
2023/03/29
6700
跳舞手脚不协调?没关系,微视用AI打造你我的舞林大会,一张照片就可以
B站up主用AI还原李焕英 动态影像
春节档上映的《你好,李焕英》让不少人在影院哭得稀里哗啦,它戳中了每个人心里最柔软的部分。有人看完电影之后会给妈妈打个电话,有人会拿出妈妈年轻时的照片,感叹一下爸爸的基因为什么要那么强大。
小小詹同学
2021/03/11
6140
B站up主用AI还原李焕英 动态影像
在最新的计算机视觉研究中,研究人员介绍了“JoJoGAN”:一种具有一次性面部样式化的 AI 方法
样式映射器将预设样式应用于它接收到的照片。在最近的一项研究中,来自伊利诺伊大学厄巴纳-香槟分校的研究人员将JoJoGAN介绍为一种从单个样式样本中学习样式映射器的简单方法。例如,该技术允许没有经验的用户提供样式样本,然后将该样式应用于他们选择的图像。该团队在人脸照片的背景下讨论了它的方法,因为风格化的人脸对没有经验的用户非常有吸引力;然而,这个概念可以应用于任何图像。
代码医生工作室
2022/03/07
8050
在最新的计算机视觉研究中,研究人员介绍了“JoJoGAN”:一种具有一次性面部样式化的 AI 方法
腾讯PCG光影研究室 - 校招&社招火热开启,喊你上车!
 腾讯光影研究室 Tencent GY-Lab 影像前沿 创意无限  魅力光影 与你同行 校招同学敲重点!!! 1 团队介绍 腾讯光影研究室(Tencent GY-Lab)致力于探索泛娱乐综合解决方案,将前沿的AI能力、3D渲染技术,先进的玩法SDK赋能产品,让拍摄特效更丰富,让创作编辑更智能。团队在语义分割、目标检测、分类识别、GAN生成对抗等方面均有深厚的技术积累,目前,QQ、微视等超20款业务产品中均有光影研究室技术的身影。 2 光影的工程能力 Light3D渲染引擎 光影研究室内部开发的L
天天P图攻城狮
2021/03/08
2.3K0
Al 技术在快手短视频创作与理解的应用
在 AICon 全球人工智能与机器学习技术大会(2021)北京站上,快手技术 VP 王仲远带来了主题为《Al 技术在快手短视频创作与理解的应用》的演讲,分享了快手在 AI 技术领域的实践与探索成果。本文由 InfoQ 根据王仲远的演讲内容整理,希望对你有所启发。作为国内短视频行业头部平台之一,快手有 3.2 亿日活用户,月活达 5.7 亿,此外还有 1.8 亿海外月活用户,存量短视频已达数百亿量级。在快手平台上,用户每天会花超过 100 分钟观看短视频及直播内容,用户相互关注数也超过 140 亿。
深度学习与Python
2021/12/16
1.3K0
CVPR2021 | 五官复原效果惊艳,腾讯ARC利用GAN人脸先验来解决
真实世界的人脸复原是一个盲问题,即我们不清楚降质过程, 在实际应用中,同时也面临着各种各样降质过程的挑战。对于人脸这个特定的任务, 之前的工作往往会探索人脸特定的先验, 并且取得了较好的效果。常见的人脸先验有两类:
公众号机器学习与AI生成创作
2021/04/19
1.4K0
CVPR2021 | 五官复原效果惊艳,腾讯ARC利用GAN人脸先验来解决
原来最强赘婿在二次元长这样,秒穿次元壁的AI特效又双叒火了
虽然每天早晨甚至无法从50平米的地铺上醒来,但偶尔刷刷知乎,还是会被这类问题吸引住眼球——
量子位
2020/09/30
4850
原来最强赘婿在二次元长这样,秒穿次元壁的AI特效又双叒火了
照片也能时间旅行?「穿越时空的人脸」新模型化身AI时光机
例如,你有没有想过,如果你自己的照片是在五十年或一百年前拍摄的,会是什么样子?如果你最喜欢的男演员或女演员出生在一个与他们完全不同的时代,他们会是什么样子?
新智元
2023/01/07
4840
照片也能时间旅行?「穿越时空的人脸」新模型化身AI时光机
AI 换脸术「Deepfakes」进化简史
来源 | Maximilian Schreiner 译者 | 核子可乐 策划 | 刘燕 AI前线
公众号机器学习与AI生成创作
2022/10/31
4.3K0
AI 换脸术「Deepfakes」进化简史
抖音超900万人在用的「卡通脸」特效技术揭秘
机器之心发布 机器之心编辑部 火遍抖音的「卡通脸」特效,是怎么做到又逼真又灵动的? 说到特效玩法,抖音的 “整活儿” 能力一直有目共睹。最近,风头正劲的是一款「卡通脸」特效。无论男女老少,用上这款特效后,都仿佛从迪士尼动画里走出来的人物一样灵动可爱。「卡通脸」一经上线,在抖音上迅速发酵,深受用户喜爱,“一键变身高甜卡通脸 ”“全抖音的在逃公主都来了”“用卡通脸花式晒娃 ”“王子公主撒糖手势舞”“捕捉童话魔法失灵瞬间” 等相关热点不断衍生,其中,“全抖音的在逃公主都来了”“捕捉童话魔法失灵瞬间” 更是登上了抖
机器之心
2023/02/23
1.1K0
抖音超900万人在用的「卡通脸」特效技术揭秘
技术解码 | 腾讯明眸技术全面解析——深度学习AI画质增强
不久前,我们为大家介绍了腾讯明眸这一利用腾讯云领先的编解码和媒体处理技术与AI技术融合打造而成的音视频技术品牌(攻城狮手记 | 既高清又低码?腾讯明眸帮你两者兼得)。接下来我们将通过三期文章,从AI智能处理、编解码优化和容器格式优化三个方面,进一步解读分享腾讯云音视频-明眸研究团队在多媒体领域前沿技术方面积累的经验和成果。 本期我们将先从深度学习AI画质增强开始,为大家分享腾讯明眸在AI方向上的探索及思考。 腾讯明眸核心能力展示 目前我们在画质增强的工作上通过结合深度学习网络,针对性的提出了一些
腾讯云音视频
2021/10/25
3.3K0
第七章 AI数据质量-2
数据增强是机器学习中的一项重要技术,用于生成大量高质量、多样化的训练数据集的方法。这种方法的出现背景主要是由于以下几个原因。
bettermanlu
2025/04/15
760
第七章 AI数据质量-2
推荐阅读
相关推荐
揭秘腾讯微视人脸技术「黑科技」,基于GAN的人脸魔法特效
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档