写点什么

腾讯优图开源这三年

2020 年 12 月 18 日

腾讯优图开源这三年

从 2017 年优图实验室开源 ncnn 至今,腾讯优图逐步拥抱开源。


腾讯优图拥抱开源历程


腾讯优图实验室成立于 2012 年,是腾讯公司旗下顶级人工智能实验室,发展至今已有 8 个年头,从最开始专心精进视觉 AI,到确定“基础研究 + 产业落地”双轨前进路线,再到积极拥抱开源开放。腾讯优图一直都聚焦计算机视觉,在人脸识别、图像识别、OCR 等领域开展技术研发和落地。


在算法研究方面,腾讯优图的研究成果多次在人工智能国际权威竞赛中创造世界纪录,到现在拥有 800 余项 AI 相关专利。在学术研究方面,优图公开发表的论文涵盖 ICCV,ECCV、CVPR,AAAI 等各类顶级会议,仅 2020 年即被国际 CV 顶级会议 CVPR 接收了 17 篇论文。


有人说,优图实验室有一股“学院气息”,这是因为它与国内外几十所顶级高校都合作紧密,但除了基础研究,产业落地也是优图发展的重要战略。2018 年,当腾讯优图锚定了“基础研究 + 产业落地”双轨前进的路线后,腾讯优图实验室也正式升级为腾讯计算机视觉研发中心,开始更深层次拥抱产业、拥抱场景。在行业应用及产业落地上,腾讯优图在 CV 领域的一系列技术解决方案已经深入到包括零售、教育、金融、工业、泛企等在内的多个行业。


而谈到开源,其实优图正式开源的时间并不算长,正式走向开源道路是在 2017 年,伴随腾讯内部开源策略的倡导,腾讯爆发式输出了 20 个自主开源的优秀项目,其中就包含腾讯优图的开源作品:神经网络推理框架 ncnn,此后,腾讯优图又陆续上线了算法类的一系列开源项目,如人脸检测算法 DSFD(Dual Shot Face Detector)、动作检测算法 DBG、通用目标检测算法 OSD(OneStageDet)、图像超分 SuperResolution-RealSR、人脸关键点算法 FHR(Fractional Heatmap Regression ) 、人脸属性算法 FAN 。今年 6 月份,腾讯优图实验室又开源了神经网络推理框架 TNN。


从开源的项目类别来讲,腾讯优图的项目可以大致分为两类:工程框架类和算法研究类。工程框架类如深度学习框架 ncnn 和 TNN,算法研究类项目包含人脸检测、目标检测、动作检测、图像超分等领域在内的算法和各类工具等。其中,腾讯优图最“火”的三个开源项目是:NCNN、DSFD、TNN,分别在 GitHub 上收获了 10.4k、2.4k、2.2k 的 Star 数。


2018 年,自腾讯技术委员会、腾讯开源管理办公室成立后,在腾讯全公司推进开源协同策略,推动优质开源协同项目对外开源的同时,腾讯开源战略链条正在不断完善。今年年初,腾讯高级执行副总裁汤道生首次公开阐述开源对于腾讯的意义,“开源不再是开发者的个人热情,它已成为许多技术驱动型产业背后重要的创新推动力。腾讯将进一步拥抱开源,与广大开发者一起创造正向价值”,而腾讯优图身在其中,积极践行和拥抱开源策略。


项目开源背后的故事


深度学习框架 ncnn、TNN 背后的“大佬”


ncnn 是针对移动平台优化的高性能神经网络推理框架,从设计之初,就在手机上的部署和使用深思熟虑,它没有任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架,是跨平台的,支持 Android、iOS 等。它支持大部分常用的 CNN 网络如 Classical CNN、Practical CNN、Light-weight CNN、Face Detection、Segmentation 等。ncnn 的许多应用方向都在图像方面,如人像自动美颜,照片风格化,超分辨率,物体识别等等。



业界对 ncnn 有很高的褒奖,它几乎开启了国内深度学习框架开源的“热潮”,而在开源背后,必须要提的一个人就是 ncnn 开源负责人 nihui,他奠定了 ncnn 的所有架构设计和发展规划,目前 GitHub 上维护工作有近 80% 都是他一个人在做。


2017 年,人工智能在国内发展势头正热,深度学习框架可以说是很多公司的核心竞争力,ncnn 可以直接做到开源,既体现了一种前瞻性,也可以说是优图在进行提前布局。但更多的,ncnn 开源的初衷其实起源于负责人对这个项目的爱,nihui 说“那个时候感觉开源才能促进整个业界的发展,希望 ncnn 能在开源社区有一些影响力。可以理解为一个热爱写代码的工程师,希望把自己写的代码分享给更多的人用。”这里还有一个小故事,ncnn 的 logo 图标是 nihui 自己画的,嵌入了 ncnn 四个字母,所以说他真正是这个开源项目的“设计师”。


ncnn 的特别在于它不是腾讯内部团队在主导运营的,而是以社区为主,可以说它是一个纯粹的社区项目。目前,ncnn 有专门的 5000 人 QQ 群,nihui 提到,ncnn 社区的开发者每天在群里十分活跃,不仅讨论技术,还讨论生活。目前,ncnn 在 GitHub 上至今已收获 10.4k Star 和 2.6k Fork,对这个开源项目的维护和代码更新是 nihui 的日常工作,他也希望能有更多的开发者加入到社区进行贡献,多提改进意见。


如果说 2017 年开源的 ncnn 是从 0 到 1,那么 2020 年开源 的 TNN 则是站在巨人的肩膀上,从 1 到 N。TNN 以前在腾讯优图内部叫 Rapidnet,承担内部业务落地的责任,TNN 开源是在 Rapidnet 和 NCNN 框架基础之上,一步一步发展而来。


与 ncnn 不同,TNN 是在腾讯开源协同的大背景下推出的,腾讯内部有专业全职的工程师进行开源和社区维护。可以说,腾讯优图所有合作业务团队,包括手机 QQ、微视、智能硬件等部门目前都有不同程度的框架应用。从 6 月开源至今,TNN 经过一个大版本更新,结合腾讯优图、光影、光流团队在算法上的优势推出个性化的相机流 Demo 示例,提升用户吸引力。后续 TNN 将继续拓展适配更多的 AI 硬件平台,不只专注于移动端而是在后端功能上也进行补齐。

人脸配准–优图


头发分割–光影


人体关键点–光流


说到 TNN 的命名由来,负责人姚达(大家叫他“达叔”)表示:“T”这个字母会让开发者感觉有“Tencent”的意思,但其实它也包含“Tiny”的含义,TNN 框架是小而易用的,面向移动端高性能,轻量级的推理框架。TNN 开源后,达叔的身影经常出现在各种各样的开发者大会上,去为 TNN 站台和使用推广。市场同事笑话他,没想到一个在办公室里敲代码的工程师,也开始了解什么叫展台和站台了。


优图算法开源,让研究者站在巨人肩膀上


在计算机视觉领域,算法研究者们经常会自发地讨论:优图又刷新了哪些国际权威榜单,优图的哪些论文又被 CVPR、ECCV、ICCV 等顶会录用了。“学术界的研究方向在不断更新,优图也要保持自身算法的先进性。”优图算法研究员李剑表示。


算法应用类开源项目是腾讯优图开源的重要方向之一,人脸检测 FaceDetection-DSFD、通用目标检测 ObjectDetection-OneStageDet、图像超分 SuperResolution-RealSR 是目前比较火的算法类开源项目。


2019 年,腾讯优图开源了人脸检测算法 DSFD,该算法相关论文已经被计算机视觉顶级会议 CVPR 2019 接收,在当时刷新了人脸检测数据集 WIDER FACE 和 FDDB 新纪录,截止目前在 GitHub 上的 Star 累计有 2.4k。整个项目实现是建立在 PyTorch 上的,项目不依赖特殊库,只需要 Python 3.6 和 CuDNN 等即可。下图展示了 DSFD 人脸检测的效果,它们在不同尺度、姿态、遮挡、模糊、装扮和光照等条件下有很不错的表现,蓝色的检测框表示检测置信度超过了 0.8。


去年,优图还开源了目标检测框架 OSD,OSD 是一种工具型的通用目标检测算法,基于 PyTorch 复现了学术界和工业界最常用的目标检测算法 Yolo,目前优图已在此仓库中实现了 Yolov2 和 Yolov3。另外,它还有训练速度快、多种可供选择的主干网络等特性。截至目前在 GitHub 上的 Star 累计有 1.8k。基于 OSD,算法从业人员可以在业务数据上快速训练出想要的检测模型。


另外,今年优图还提出一种新的图像超分辨率算法 RealSR 并开源。超分辨率是指将低质量压缩图片恢复成高分辨率图片的过程。在移动互联网时代,大量真实的图像数据由于存储和传输的需要,图片质量会被压缩,而为了使用户获得更加高质量的视觉体验,图像超分辨率算法应运而生。


RealSR 算法在 CVPR-NTIRE-2020 真实图像超分比赛中以明显优势获得双赛道冠军。它的核心并不是提出一个模型来解决一个问题,而是提出了一种优化训练数据的方法,与已有的超分辨率方法相比,RealSR 的创新主要体现在三个方面:第一、RealSR 采用了自主设计的新型图片退化方法,通过分析真实图片中的模糊和噪声,模拟真实图片的退化过程;第二、不需要成对的训练数据,利用无标记的数据即可进行训练。第三、可以处理低分辨率图像中的模糊噪声问题,得到更加清晰干净的高分辨结果。


对比结果:('Impressionism' is our team.)


除此之外,还有动作检测算法:ActionDetection-DBG、人脸关键点算法:FaceAlignment-FHR 、人脸属性算法 FaceAttribute-FAN 均已在 GitHub 上开源,这些算法也都被计算机视觉顶级会议录用,其中 DBG 算法还获得了 2019 年 ActivityNet 动作提名这一赛道的冠军。


优图算法的开源,不仅是扩大优图实验室本身研究的影响力,更可以帮助其他研究者提升效率,站在优图已有的研究基础,节省研究成本。


腾讯优图,开源面向未来


移动互联网的发展告诉我们,基础设施型平台是战略级别的竞争。以安卓和 iOS 生态为例,想要进一步激活商业价值,就要将绝大多数的 AI 研究人员、用户都吸引到自己的开源环境上。如何让开发者、研究者意识到,当涉及深度网络学习和计算机视觉算法相关内容,就能想到腾讯优图,开源是最直接的方式,在最接近用户的地方让代码说话。但是想要更多人能参与到优图开源项目的贡献中,还需要不断地引领。如从单个开源项目到上下游联动,比如工程和算法结合、和上游训练结合,以及和腾讯内部开发平台相结合,都是开源负责人们对开源生态的思考。


ncnn 是从 0 到 1,TNN 则是从 1 到 N,面向未来,TNN 的发展目标将是 “N” 的不断扩大。而优图的算法类项目,后续也会陆续开源目标跟踪、人群密度估计,行人重识别等相关算法。我们也十分期待优图实验室未来在开源生态中大放异彩。


预告:Techo 2020 开发者大会来了


12 月 19 日 -20 日,2020 Techo Park 开发者大会将于北京 751D·Park 与大家见面,30 多场技术论坛交流 ,200 多位海内外专家精彩专题演讲,主要围绕包括云基础设施、云原生、AI、开源、音视频与通信等技术,共同探索全球云计算前沿技术发展趋势、技术创新和实践。

附录:腾讯优图开源项目代码地址

ncnn:https://github.com/Tencent/ncnn

TNN:https://github.com/Tencent/TNN

DSFD:https://github.com/Tencent/FaceDetection-DSFD

OSD:https://github.com/Tencent/ObjectDetection-OneStageDet

RealSR:https://github.com/Tencent/Real-SR

DBG:https://github.com/Tencent/ActionDetection-DBG

FaceAttribute-FAN:https://github.com/TencentYoutuResearch/FaceAttribute-FAN

FHR:https://github.com/TencentYoutuResearch/FaceAlignment-FHR

2020 年 12 月 18 日 17:125041

评论

发布
暂无评论
发现更多内容

第九周学习性能优化 3 总结

三板斧

极客大学架构师训练营

媲美物理机,裸金属云主机如何轻松应对11.11大促

京东科技开发者

云计算 服务器 云主机 裸金属容器

Springboot过滤器和拦截器详解及使用场景

996小迁

Java 编程 架构 面试 springboot

前嗅教你大数据——史上最全代理IP服务商对比

前嗅大数据

大数据 数据采集 动态代理 静态代理 代理IP

【JDD京智大咖说】AI 未来,路在何方?NLP、CV 技术的探索与展望

京东科技开发者

人工智能 CV nlp

京东T8Java架构师总结整理的15w字的Java面试手册,2021年金三银四不愁涨不了薪!

Java架构之路

Java 程序员 架构 面试 编程语言

互联网券商系统搭建建议书

软件开发大鱼V15724971504

国际配售 港股交易系统开发 证券交易系统 IPO系统开发 金融平台搭建

快进收藏吃灰!字节跳动大佬用最通俗方法讲明白了红黑树算法

小Q

Java 学习 架构 面试 算法

6. 自定义容器类型元素验证,类级别验证(多字段联合验证)

YourBatman

Hibernate-Validator Bean Validation 多字段联合验证

DataPipeline 王睿:业务异常实时自动化检测 — 基于人工智能的系统实战

DataPipeline

大数据

面试官问:如何排除GC引起的CPU飙高?我脱口而出5个步骤

田维常

cpu飙满

11月阿里Spring全家桶+MQ微服务架构笔记:源码+实战

小Q

Java 学习 程序员 面试 微服务

企业工作流设计原则及多项目整合开发注意事项

Marilyn

敏捷开发 工作流 企业开发

MySQL 连接为什么挂死了?

华为云开发者社区

微服务 数据 存储

《JAVA多线程设计模式》.pdf

田维常

多线程

DataPipeline CPO 陈雷:实时数据融合之道,博观约取,价值驱动

DataPipeline

数据融合

DataPipeline CTO 陈肃:构建批流一体数据融合平台的一致性语义保证

DataPipeline

数据融合

接口测试学习之json

测试人生路

json 接口测试

架构师训练营 1 期 - 第九周 - 性能优化 3

三板斧

一周信创舆情观察(11.9~11.15)

统小信uos

3年Java开发经验从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

Java架构之路

Java 程序员 架构 面试 编程语言

阿里P8架构师吐血整理的《SpringBoot+Vue全栈开发实战》文档资料

Java架构之路

Java 程序员 架构 面试 编程语言

微信官方将打击恶意营销号:自媒体不可过度消费粉丝

石头IT视角

DataPipeline CPO 陈雷:实时数据融合之法,稳定高容错

DataPipeline

数据融合

架构师训练营第九周作业

_

极客大学架构师训练营 第九周作业

Scrum指南这么改,我看要完蛋!

华为云开发者社区

Scrum 敏捷 改版

号外!5G+X联创营华为云官网上线,5G 创业春天来了!

华为云开发者社区

华为 程序员 AI 5G

AI技术在音乐类产品中的应用场景

HIFIVE嗨翻屋

人工智能 AI 音乐 音乐制作

万字图文 | 聊一聊 ReentrantLock 和 AQS 那点事(看完不会你找我)

龙台的技术笔记

架构 AQS ReentrantLock JUC CLH

DataPipeline CPO 陈雷:实时数据融合之法,便捷可管理

DataPipeline

数据融合

阿里达摩院副院长亲自所写Java架构29大核心知识体系+大厂面试真题+微服务

Java架构追梦

Java 学习 阿里巴巴 架构 面试

Leader修炼指“北”:管理路上的大小Boss

Leader修炼指“北”:管理路上的大小Boss

腾讯优图开源这三年-InfoQ