知行编程网知行编程网  2022-06-17 06:00 知行编程网 隐藏边栏 |   抢沙发  6 
文章评分 0 次,平均分 0.0


刷新纪录,揭秘漫画脸背后的AI技术作者 | 贝爽,本文转自雷锋网

昨晚做了一个梦,梦里的我变成漫画里的人物,正在为参与选秀苦练舞蹈,期待着万众瞩目登上舞台的一天。
然而一觉醒来,这个美梦竟然成“真”了!
刷新纪录,揭秘漫画脸背后的AI技术
大眼睛,饱满苹果肌,摆着离出道还有亿点点距离的律动~妥妥的漫画女主角既视感。
没错,这项黑科技就是手机QQ相机里的热门AI玩法——漫画脸。从画面来看,哪怕受拍摄人物大幅度动作,融合感依旧满分。
类似的,一经上线便备受用户们追捧的还有“童话脸”等多个AI特效玩法。
AI特效看似操作简单,但要想一秒内达到如此效果,其背后的技术支撑可并不简单。
细心的朋友可能会发现,漫画脸的AI特效get了一项技能——实时抠图。在动态场景下, 无论是人像的头部、面部,还是半身像,都能够被精准识别,并转化为漫画版,看不出一点破绽。
这项技能在学术上叫做语义分割技术。而这些特效背后使用的语义分割技术叫做GYSeg,它是腾讯光影研究室(Tencent GYLab)在计算机视觉领域的自研算法。最近GYSeg算法刚刚参加完MIT Scene Parsing Benchmark 场景解析国际竞赛,从多个参赛团队中脱颖而出,以0.6140的成绩斩获了冠军。值得一提的是,近两周团队持续优化算法,并再次刷线最新成绩至0.6235,仍处榜单第一名。

刷新纪录,揭秘漫画脸背后的AI技术

专业科普一下,MIT Scene Parsing Benchmark 是全球公认的最具挑战性、权威性的场景解析、语义分割评测集。其发布的ADE20K数据集是计算机视觉三大顶会(CVPR、ICCV和ECCV)语义分割论文的权威基准数据集。
每年有众多国际顶尖企业、学术机构参加这项国际赛事,比如本届参赛的团队还有商汤科技、亚马逊、复旦、北大、MIT等国内外研究机构和高校。


1


实时抠图神器:GYSeg算法

简单理解,语义分割技术就是让计算机能够识别出图像场景中每一个像素所代表的语义类别。
以人像图像为例,人像的全身、半身、头部、头发、多人/单人以及多样化的背景都是其需要识别的目标。 
而从更大范围来讲,现实生活场景十分丰富、目标复杂、尺度范围大,如本次比赛所使用的ADE20K数据集包含了150个类别,涉及人类生活各个方面的场景。这对于AI语义识别本身提出了较高的挑战。
刷新纪录,揭秘漫画脸背后的AI技术
更重要的是,同种类的物体在不同场景中很可能表现出不同的大小、比例和姿态;不同物体之间可能存在相互遮挡问题,由此会带来严重的语义混淆。
为了克服以上难点,GYSeg算法在数据增强、网络设计、训练、推断方面进行了一系列创新,并建立了一套通用的整体分割架构。
刷新纪录,揭秘漫画脸背后的AI技术
  • 在网络设计方面,GYSeg算法采用自研的GYNet作为backbone,并接入ASPP模块进行特征的增强与融合,获得了更多的Context以及感受野,同时,整体结构达到了很好的速度跟精度的平衡。

  • 在分割head方面,为提高不同尺度物体和小物体的分割精度,采用基于Multi-scale Attention的方式使网络在不同尺度上自适应的学习。

  • 在推断阶段,GYSeg算法采用了多种不同尺度级联式推断融合。在此基础上,使用ADE训练集数据搭建SegFix网络,对Multi-scale Attention的输出结果进行精修,以提升边缘分割的一致性。同时,在训练过程,加入OHEM提升困难样本学习能力,在多物体分割中采用gradient loss对物体边缘进行约束来提升边缘的准确性。

  • 在数据增强方面,除了针对复杂场景使用随机缩放、crop、对比度、blur等常规操作外,对于语义明确、数量较少的类别,GYSeg算法还采用了“复制-粘贴”的方式进行扩充。如动物、摩托车、自行车等。

  • 在loss约束方面,借助OHEM进行在线困难样本挖掘,GYSeg算法在validation集上Miou提升0.4%,优于focalloss(提升0.26%)。

如上述案例所见,在人像分割方面,GYSeg算法凭借对人像半身、全身,室内、室外,单人/多人等多复杂场景的需求的不断的打磨和优化,成功应用到了腾讯QQ、腾讯微视等多个产品中。其结合发布器技术中台强大的图形图像渲染引擎,通过为前景人像和背景添加不同的滤镜特效或更酷的背景效果,实现 “七夕卡通画“、“怪兽护体”等各种特效玩法。


2


全栈式AI,落地泛娱乐场景

当然,GYSeg自研算法只是腾讯光影研究室AI能力的局部体现。
伴随新技术的不断发展和进步,AI在泛娱乐领域的应用场景变得更加丰富。在此基础上,光影研究室围绕计算机视觉技术展开了全栈式布局。
从技术能力上来讲,目前主要分为两大方面:应用AI能力和基础AI能力。
刷新纪录,揭秘漫画脸背后的AI技术
值得一提的是,依托腾讯庞大和丰富的内容产业,以上几乎所有AI能力都在移动端找到了落地场景,并成功覆盖到了手机QQ相机、手机QQ音视频通话、腾讯微视等20多条业务线中,为用户带来了全新的数字化娱乐体验。
应用AI能力
应用AI能力隶属于"基础美"的范畴,其主要目的是实现人像照片的系列美化功能,包含人脸的各种美颜/美妆/捏脸,不同场景的滤镜,以及底层的拍摄质量提升等。
具体表现为GAN的生成, 3D的重建,以及AR/交互AI等技术。 
很多朋友应该知道,前段时间火爆全网的“童话脸”特效,不仅有李雪琴亲传童话世界基本生存须知“公主病”,更是受到辣目洋子、刘晓庆、王大陆等众多明星青睐。
刷新纪录,揭秘漫画脸背后的AI技术
童话脸特效背后依靠的便是GAN技术,它是腾讯光影研究室首次将GAN与3D卡通风格相结合的应用尝试,同时也是业内的第一次尝试。
据了解,从算法研究到上线首发,研究团队仅用了两周的时间,并成功克服了用户ID生成,StyleGAN稳定性,移动端实时化三大落地挑战。而且,基于自研的GYNet,其在移动端的网络计算量降低了200倍。目前这项AI能力仍在持续积累和迭代中。
在3D重建方面,光影研究室推出了3D捏脸能力,它可以根据用户给定的照片自动化捏出一个3D的人脸效果。从脸部的shape,五官的细节,到头发的效果,在最大限度保留用户ID的基础上,提供了最佳体验效果。
刷新纪录,揭秘漫画脸背后的AI技术
同时,在硬件适配方面,研究室团队针对低端机多了大量优化工作,包括底层使用TNN Inference框架,模型结构的小型化,模型的量化、裁剪,工程Pipeline的设计等。最终按照机型进行分发,保证了效果与速度的trade-off在高中低档机型的全面覆盖。
基础AI能力
这方面主要涉及检测&关键点、分割、分类三大类。上述语义分割算法GYSeg的研发属于这一范畴。值得一提的是,关于分割技术,光影研究室团队发表的论文《Context Prior for Scene Segmentation》,还登上了计算机视觉顶会CVPR2020。
在落地方面,除了泛娱乐场景外,以上前沿技术在图像处理、自动驾驶,自动医疗诊断等领域也有着极大地应用价值。比如语义分割算法GYSeg,在自动驾驶领域可用于区分路面阴影和真正的障碍物,以减少汽车误判率等。
据光影研究室介绍,团队定位为PCG的发布器技术中台,也承接了移动端的拍摄/相机/玩法类的AI能力,旨在通过前沿的AI能力、先进的玩法引擎和3D渲染技术,为腾讯的社交、短视频等产品用户提供服务。总体而言,业务方向更偏向To C端,更注重提升用户的娱乐体验。
透过光影研究室的技术布局和应用落地,可见其身上有两个显著的标签,一是聚焦“泛娱乐化场景”,二是“移动端部署”,后者从目前的落地成果来看,在行业内已具备核心竞争力。在整个腾讯AI产业布局中,这两个标签,也是腾讯光影研究室区别于腾讯优图、腾讯AI Lab最显著的差异化特征。

免责声明:本文内容来源于网络,文章版权归原作者所有,意在传播相关技术知识&行业趋势,供大家学习交流,若涉及作品版权问题,请联系删除或授权事宜。


刷新纪录,揭秘漫画脸背后的AI技术



<section style="margin-right: 16px;margin-left: 16px;max-width: 100%;min-height: 1em;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;caret-color: rgb(51, 51, 51);box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;box-sizing: border-box !important;overflow-wrap: break-word !important;">菜鸟学Python「视频号」已经全线上线了,目前累计发布了6条Python相关的视频,已经有不少铁粉关注了!</span></section><section style="margin-right: 16px;margin-left: 16px;max-width: 100%;min-height: 1em;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;caret-color: rgb(51, 51, 51);box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br  /></span></section><section class="channels_iframe_wrp"><mpvideosnap class="js_uneditable custom_select_card channels_iframe" data-pluginname="videosnap" data-id="export/UzFfAgtgekIEAQAAAAAAY1s2bQGI_AAAAAstQy6ubaLX4KHWvLEZgBPExqEIACpydrz5zNPgMIvd0wxZiU1JbjQS39VrOQdn" data-url="https://findermp.video.qq.com/251/20304/stodownload?encfilekey=jEXicia3muM3GjTlk1Z3kYCefzc4VU4EASUYxicibFx7HxxMHrO7icQGVOoN2jNvPMtg4qqGPibVk9oRMiaMr6wrmfzDww6tWKOYp5XdSQZlibicVSCr4B4JJyJkx72icH7loOrrXyHJf1mocwOOeJC8lsMQsrJffOhdVOo44X&bizid=1023&dotrans=0&hy=SH&idx=1&m=f7ddd7a350c46db9d5cc5b26c24590d5&token=x5Y29zUxcibA8OUawCN97XlUvAN2KiaT8cLkgyfB1mHfiaCicAQpCMWFcLAwt7QPiaXyic" data-headimgurl="http://wx.qlogo.cn/finderhead/2Ypg6KU6NFv0QuMib1dpKiciaialbv64ztt4lrNE7xWSJ6M/0" data-username="v2_060000231003b20faec8c4e5881fc4d3c606ef3cb0773101907b6b389348b842a1285d25b196@finder" data-nickname="菜鸟学Python" data-desc="还在玩美图秀秀,我用Python可以玩的更酷!帮小姐姐把长裤换超短裤,更多趣味案例可以来 菜鸟学Python找我们(全网累计30万粉丝,原创400多趣味案例)" data-nonceid="6530049592668952560" data-type="video"></mpvideosnap></section><p style="max-width: 100%;min-height: 1em;letter-spacing: 0.544px;white-space: normal;color: rgb(62, 62, 62);font-size: 16px;orphans: 4;widows: 1;word-spacing: 2px;caret-color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;text-align: left;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(217, 33, 66);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;box-sizing: border-box !important;overflow-wrap: break-word !important;">年度爆款文案</span></strong></span></p><ul class="list-paddingleft-2" style="max-width: 100%;letter-spacing: 0.544px;color: rgb(62, 62, 62);font-size: 16px;orphans: 4;text-align: center;widows: 1;word-spacing: 2px;caret-color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);width: 557.438px;white-space: pre-wrap;font-family: monospace;overflow-wrap: break-word !important;"><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;">1).</span>卧槽!Pdf转Word用Python轻松搞定<span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;">!</span></p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;">2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃</p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;">3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密<span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;"> </span></p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;">4).</span>80行代码!用Python做一个哆来A梦分身<span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;"> </span></p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;">5).你必须掌握的20个python代码,短小精悍,用处无穷 </span></p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;">6).</span>30个Python奇淫技巧集<span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;"> </span></p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;">7).</span>我总结的80页《菜鸟学Python精选干货.pdf》,都是干货<span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;"> </span></p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;box-sizing: border-box !important;overflow-wrap: break-word !important;">8).</span><span style="max-width: 100%;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);cursor: pointer;font-size: 15px;box-sizing: border-box !important;overflow-wrap: break-word !important;">再见Python!我要学Go了!2500字深度分析!</span></span></p></li><li style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;letter-spacing: 0.544px;text-align: left;line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;text-decoration: underline;color: rgb(0, 122, 170);box-sizing: border-box !important;overflow-wrap: break-word !important;">9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片</span></p></li></ul><section style="margin-right: 16px;margin-left: 16px;max-width: 100%;min-height: 1em;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;caret-color: rgb(51, 51, 51);box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 15px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></span></section>


<section data-mpa-template="t" mpa-from-tpl="t" data-darkmode-bgcolor-15923650965579="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15923650965579="rgb(255, 255, 255)" data-darkmode-color-15923650965579="rgb(168, 168, 168)" data-darkmode-original-color-15923650965579="rgb(62, 62, 62)" data-style="color: rgb(62, 62, 62); font-size: 15px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); font-family: monospace; text-align: left; widows: 1; word-spacing: 2px; caret-color: rgb(255, 0, 0); white-space: pre-wrap;" style="max-width: 100%;font-size: 15px;letter-spacing: 0.544px;widows: 1;word-spacing: 2px;caret-color: rgb(255, 0, 0);color: rgb(62, 62, 62);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section mpa-from-tpl="t" data-darkmode-bgcolor-15923650965579="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15923650965579="rgb(255, 255, 255)" data-darkmode-color-15923650965579="rgb(168, 168, 168)" data-darkmode-original-color-15923650965579="rgb(62, 62, 62)" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre data-darkmode-bgcolor-15923650965579="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15923650965579="rgb(255, 255, 255)" data-darkmode-color-15923650965579="rgb(167, 167, 167)" data-darkmode-original-color-15923650965579="rgb(63, 63, 63)" data-style="letter-spacing: 0.544px; font-size: 16px; color: rgb(63, 63, 63); word-spacing: 1px; line-height: inherit;" style="max-width: 100%;letter-spacing: 0.544px;font-size: 16px;color: rgb(63, 63, 63);word-spacing: 1px;line-height: inherit;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-mpa-template-id="1250" data-mpa-color="#ffffff" data-mpa-category="divider" data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(230, 230, 230)" data-darkmode-original-color="rgb(0, 0, 0)" data-style="margin-right: 0.5em; margin-left: 0.5em; white-space: normal; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; color: rgb(0, 0, 0); letter-spacing: 0px; word-spacing: 2px;" data-darkmode-bgcolor-15923650965579="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15923650965579="rgb(255, 255, 255)" data-darkmode-color-15923650965579="rgb(230, 230, 230)" data-darkmode-original-color-15923650965579="rgb(0, 0, 0)" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre data-darkmode-bgcolor-15923650965579="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15923650965579="rgb(255, 255, 255)" data-darkmode-color-15923650965579="rgb(167, 167, 167)" data-darkmode-original-color-15923650965579="rgb(63, 63, 63)" data-style="letter-spacing: 0.544px; font-size: 16px; color: rgb(63, 63, 63); word-spacing: 1px; line-height: inherit;" style="max-width: 100%;letter-spacing: 0.544px;line-height: inherit;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-mpa-template-id="1250" data-mpa-color="#ffffff" data-mpa-category="divider" data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(230, 230, 230)" data-darkmode-original-color="rgb(0, 0, 0)" data-style="margin-right: 0.5em; margin-left: 0.5em; white-space: normal; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; color: rgb(0, 0, 0); letter-spacing: 0px; word-spacing: 2px;" data-darkmode-bgcolor-15923650965579="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15923650965579="rgb(255, 255, 255)" data-darkmode-color-15923650965579="rgb(230, 230, 230)" data-darkmode-original-color-15923650965579="rgb(0, 0, 0)" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(230, 230, 230)" data-darkmode-original-color="rgb(0, 0, 0)" data-darkmode-bgcolor-15923650965579="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15923650965579="rgb(255, 255, 255)" data-darkmode-color-15923650965579="rgb(230, 230, 230)" data-darkmode-original-color-15923650965579="rgb(0, 0, 0)" style="margin-right: 0em;margin-left: 0em;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 0.5em;margin-left: 0.5em;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(168, 168, 168)" data-darkmode-original-color="rgb(62, 62, 62)" data-style="letter-spacing: 0.544px; font-weight: 700; text-align: -webkit-center; background-color: rgb(255, 255, 255); font-size: 16px; color: rgb(62, 62, 62); widows: 1; word-spacing: 2px;" style="max-width: 100%;letter-spacing: 0.544px;text-align: center;text-size-adjust: auto;color: rgb(62, 62, 62);font-weight: 700;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(168, 168, 168)" data-darkmode-original-color="rgb(62, 62, 62)" data-style="letter-spacing: 0.544px; font-weight: 700; text-align: -webkit-center; background-color: rgb(255, 255, 255); font-size: 16px; color: rgb(62, 62, 62); widows: 1; word-spacing: 2px;" style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre style="max-width: 100%;letter-spacing: 0.544px;text-align: left;box-sizing: border-box !important;overflow-wrap: break-word !important;"><h1 style="max-width: 100%;white-space: pre-wrap;letter-spacing: 0.544px;font-family: 微软雅黑;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section mpa-from-tpl="t" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre style="max-width: 100%;letter-spacing: 0.544px;line-height: inherit;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-mpa-template="t" mpa-from-tpl="t" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-id="94086" data-color="#276ca3" data-tools="135编辑器" mpa-from-tpl="t" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section mpa-from-tpl="t" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre style="max-width: 100%;color: rgb(63, 63, 63);letter-spacing: 0.544px;line-height: inherit;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-mpa-template="t" mpa-from-tpl="t" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-id="94086" data-color="#276ca3" data-tools="135编辑器" mpa-from-tpl="t" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section mpa-from-tpl="t" style="max-width: 100%;display: inline-block;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre style="max-width: 100%;letter-spacing: 0.544px;line-height: inherit;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-style="letter-spacing: 0.544px; background-color: rgb(255, 255, 255); text-align: center; color: rgba(230, 230, 230, 0.9); font-size: 16px; line-height: 25.6px; overflow-wrap: break-word !important;" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgba(230, 230, 230, 0.9)" data-darkmode-original-color-15882396318564="rgba(230, 230, 230, 0.9)" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgba(230, 230, 230, 0.9)" data-darkmode-original-color-15900529136199="rgba(230, 230, 230, 0.9)" style="max-width: 100%;letter-spacing: 0.544px;text-align: center;color: rgba(230, 230, 230, 0.9);line-height: 25.6px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-darkmode-bgcolor-15860613985508="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15860613985508="rgb(255, 255, 255)" data-darkmode-color-15860613985508="rgb(230, 230, 230)" data-darkmode-original-color-15860613985508="rgb(0, 0, 0)" data-darkmode-bgcolor-15870356070738="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356070738="rgb(255, 255, 255)" data-darkmode-color-15870356070738="rgb(230, 230, 230)" data-darkmode-original-color-15870356070738="rgb(0, 0, 0)" data-darkmode-bgcolor-15870356071023="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356071023="rgb(255, 255, 255)" data-darkmode-color-15870356071023="rgb(230, 230, 230)" data-darkmode-original-color-15870356071023="rgb(0, 0, 0)" data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-darkmode-color-15882384789136="rgb(230, 230, 230)" data-darkmode-original-color-15882384789136="rgb(0, 0, 0)" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgb(230, 230, 230)" data-darkmode-original-color-15882396318564="rgb(0, 0, 0)" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgb(230, 230, 230)" data-darkmode-original-color-15900529136199="rgb(0, 0, 0)" style="max-width: 100%;display: inline-block;clear: both;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="91842" data-darkmode-bgcolor-15860613985508="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15860613985508="rgb(255, 255, 255)" data-darkmode-color-15860613985508="rgb(230, 230, 230)" data-darkmode-original-color-15860613985508="rgb(0, 0, 0)" data-darkmode-bgcolor-15870356070738="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356070738="rgb(255, 255, 255)" data-darkmode-color-15870356070738="rgb(230, 230, 230)" data-darkmode-original-color-15870356070738="rgb(0, 0, 0)" data-darkmode-bgcolor-15870356071023="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356071023="rgb(255, 255, 255)" data-darkmode-color-15870356071023="rgb(230, 230, 230)" data-darkmode-original-color-15870356071023="rgb(0, 0, 0)" data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-darkmode-color-15882384789136="rgb(230, 230, 230)" data-darkmode-original-color-15882384789136="rgb(0, 0, 0)" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgb(230, 230, 230)" data-darkmode-original-color-15882396318564="rgb(0, 0, 0)" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgb(230, 230, 230)" data-darkmode-original-color-15900529136199="rgb(0, 0, 0)" style="max-width: 100%;letter-spacing: 0.544px;border-width: 0px;border-style: none;border-color: initial;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-darkmode-bgcolor-15860613985508="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15860613985508="rgb(255, 255, 255)" data-darkmode-color-15860613985508="rgb(230, 230, 230)" data-darkmode-original-color-15860613985508="rgb(0, 0, 0)" data-darkmode-bgcolor-15870356070738="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356070738="rgb(255, 255, 255)" data-darkmode-color-15870356070738="rgb(230, 230, 230)" data-darkmode-original-color-15870356070738="rgb(0, 0, 0)" data-darkmode-bgcolor-15870356071023="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356071023="rgb(255, 255, 255)" data-darkmode-color-15870356071023="rgb(230, 230, 230)" data-darkmode-original-color-15870356071023="rgb(0, 0, 0)" data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-darkmode-color-15882384789136="rgb(230, 230, 230)" data-darkmode-original-color-15882384789136="rgb(0, 0, 0)" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgb(230, 230, 230)" data-darkmode-original-color-15882396318564="rgb(0, 0, 0)" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgb(230, 230, 230)" data-darkmode-original-color-15900529136199="rgb(0, 0, 0)" style="max-width: 100%;display: inline-block;clear: both;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-brushtype="text" data-darkmode-bgcolor-15860613985508="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15860613985508="rgb(255, 255, 255)" data-darkmode-color-15860613985508="rgb(230, 230, 230)" data-darkmode-original-color-15860613985508="rgb(0, 0, 0)" data-darkmode-bgimage-15860613985508="1" data-style="padding: 18px 15px 20px 10px; color: rgb(86, 146, 214); text-align: center; letter-spacing: 1.5px; background-image: url('https://www.zkxjob.com/wp-content/uploads/2022/06/wxsync-2022-06-a2a8a5e1e58f30392066a170034ee027.png'); background-size: 100% 100%; background-repeat: no-repeat; overflow-wrap: break-word !important;" data-darkmode-bgcolor-15870356070738="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356070738="rgb(255, 255, 255)" data-darkmode-color-15870356070738="rgb(230, 230, 230)" data-darkmode-original-color-15870356070738="rgb(0, 0, 0)" data-darkmode-bgimage-15870356070738="1" data-darkmode-bgcolor-15870356071023="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356071023="rgb(255, 255, 255)" data-darkmode-color-15870356071023="rgb(230, 230, 230)" data-darkmode-original-color-15870356071023="rgb(0, 0, 0)" data-darkmode-bgimage-15870356071023="1" data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-darkmode-color-15882384789136="rgb(230, 230, 230)" data-darkmode-original-color-15882384789136="rgb(0, 0, 0)" data-darkmode-bgimage-15882384789136="1" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgb(230, 230, 230)" data-darkmode-original-color-15882396318564="rgb(0, 0, 0)" data-darkmode-bgimage-15882396318564="1" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgb(230, 230, 230)" data-darkmode-original-color-15900529136199="rgb(0, 0, 0)" data-darkmode-bgimage-15900529136199="1" style="padding: 18px 15px 20px 10px;max-width: 100%;background-size: 100% 100%;background-image: url('https://www.zkxjob.com/wp-content/uploads/2022/06/wxsync-2022-06-a2a8a5e1e58f30392066a170034ee027.png');color: rgb(86, 146, 214);letter-spacing: 1.5px;background-repeat: no-repeat;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-darkmode-bgcolor-15860613985508="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15860613985508="rgb(255, 255, 255)" data-darkmode-color-15860613985508="rgb(230, 230, 230)" data-darkmode-original-color-15860613985508="rgb(0, 0, 0)" data-darkmode-bgimage-15860613985508="1" data-darkmode-bgcolor-15870356070738="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356070738="rgb(255, 255, 255)" data-darkmode-color-15870356070738="rgb(230, 230, 230)" data-darkmode-original-color-15870356070738="rgb(0, 0, 0)" data-darkmode-bgimage-15870356070738="1" data-darkmode-bgcolor-15870356071023="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356071023="rgb(255, 255, 255)" data-darkmode-color-15870356071023="rgb(230, 230, 230)" data-darkmode-original-color-15870356071023="rgb(0, 0, 0)" data-darkmode-bgimage-15870356071023="1" data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-darkmode-color-15882384789136="rgb(230, 230, 230)" data-darkmode-original-color-15882384789136="rgb(0, 0, 0)" data-darkmode-bgimage-15882384789136="1" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgb(230, 230, 230)" data-darkmode-original-color-15882396318564="rgb(0, 0, 0)" data-darkmode-bgimage-15882396318564="1" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgb(230, 230, 230)" data-darkmode-original-color-15900529136199="rgb(0, 0, 0)" data-darkmode-bgimage-15900529136199="1" style="max-width: 100%;display: flex;justify-content: center;align-items: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-darkmode-bgcolor-15860613985508="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15860613985508="rgb(255, 255, 255)" data-darkmode-color-15860613985508="rgb(230, 230, 230)" data-darkmode-original-color-15860613985508="rgb(0, 0, 0)" data-darkmode-bgimage-15860613985508="1" data-darkmode-bgcolor-15870356070738="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356070738="rgb(255, 255, 255)" data-darkmode-color-15870356070738="rgb(230, 230, 230)" data-darkmode-original-color-15870356070738="rgb(0, 0, 0)" data-darkmode-bgimage-15870356070738="1" data-darkmode-bgcolor-15870356071023="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356071023="rgb(255, 255, 255)" data-darkmode-color-15870356071023="rgb(230, 230, 230)" data-darkmode-original-color-15870356071023="rgb(0, 0, 0)" data-darkmode-bgimage-15870356071023="1" data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-darkmode-color-15882384789136="rgb(230, 230, 230)" data-darkmode-original-color-15882384789136="rgb(0, 0, 0)" data-darkmode-bgimage-15882384789136="1" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgb(230, 230, 230)" data-darkmode-original-color-15882396318564="rgb(0, 0, 0)" data-darkmode-bgimage-15882396318564="1" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgb(230, 230, 230)" data-darkmode-original-color-15900529136199="rgb(0, 0, 0)" data-darkmode-bgimage-15900529136199="1" style="margin-left: 2px;max-width: 100%;width: 20px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></section><section data-brushtype="text" data-darkmode-bgcolor-15860613985508="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15860613985508="rgb(255, 255, 255)" data-darkmode-color-15860613985508="rgb(51, 51, 51)" data-darkmode-original-color-15860613985508="rgb(51, 51, 51)" data-darkmode-bgimage-15860613985508="1" data-darkmode-bgcolor-15870356070738="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356070738="rgb(255, 255, 255)" data-darkmode-color-15870356070738="rgb(51, 51, 51)" data-darkmode-original-color-15870356070738="rgb(51, 51, 51)" data-darkmode-bgimage-15870356070738="1" data-darkmode-bgcolor-15870356071023="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15870356071023="rgb(255, 255, 255)" data-darkmode-color-15870356071023="rgb(51, 51, 51)" data-darkmode-original-color-15870356071023="rgb(51, 51, 51)" data-darkmode-bgimage-15870356071023="1" data-darkmode-bgcolor-15882384789136="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882384789136="rgb(255, 255, 255)" data-darkmode-color-15882384789136="rgb(51, 51, 51)" data-darkmode-original-color-15882384789136="rgb(51, 51, 51)" data-darkmode-bgimage-15882384789136="1" data-darkmode-bgcolor-15882396318564="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15882396318564="rgb(255, 255, 255)" data-darkmode-color-15882396318564="rgb(51, 51, 51)" data-darkmode-original-color-15882396318564="rgb(51, 51, 51)" data-darkmode-bgimage-15882396318564="1" data-darkmode-bgcolor-15900529136199="rgb(36, 36, 36)" data-darkmode-original-bgcolor-15900529136199="rgb(255, 255, 255)" data-darkmode-color-15900529136199="rgb(51, 51, 51)" data-darkmode-original-color-15900529136199="rgb(51, 51, 51)" data-darkmode-bgimage-15900529136199="1" style="max-width: 100%;font-size: 14px;color: rgb(51, 51, 51);text-align: left;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-family: 楷体, 楷体_GB2312, SimKai;font-size: 15px;box-sizing: border-box !important;overflow-wrap: break-word !important;">点这里,直达菜鸟B站大本营</span><span style="max-width: 100%;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;orphans: 4;white-space: pre-wrap;caret-color: rgb(51, 51, 51);font-size: 16px;box-sizing: border-box !important;overflow-wrap: break-word !important;">!</span></section></section></section></section></section></section></section>

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

你可能也喜欢

热评文章

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享