百度视频质量评测的实践之路

news2024/11/23 3:16:58

视频编解码技术日新月异,新的编解码技术赋予视频业务新的应用场景和新的用户视听体验。同时,视频作为带宽消耗大户,如何在视听体验和视频带宽之间取得最优的平衡是一个永恒的话题。视频质量评测主要用来回答:体验是否改善、带宽是否合理等问题。

然而,在实际中,受限于各种因素,视频质量评测在实践中存在着诸多问题:主观评估的置信度如何保证?如何进行规模化的主观评估?LiveVideoStackCon 2022北京站邀请来自百度的王伟老师为大家介绍百度视频质量评测的发展之路 。

文/王伟

编辑/LiveVideoStack

大家好,我是来自百度的王伟,近几年我一直在开展视频质量评估方面的工作,并经历了百度视频质量评估从无到有,从不置信到置信,从小规模到大规模的整个过程。

目前来看,我们的视频质量评测服务为百度内部所有视频相关业务提供了基础支撑,2022年整体视频评估量级达到了十几万以上。回顾整个发展历程,我们遇到了很多问题,也进行了很多探索。今天很高兴可以与大家分享我们对视频评估的认知与实践。

整体会从四个方面进行介绍,首先介绍视频质量评估的重要性,其次是面临的问题和挑战,接下来介绍面对问题我们的解决方案,最后会介绍在百度业务线的实践情况。

-01-

视频质量评测的重要性

ff64794e0e4c988650ac66994aa6eefe.png

判断一件事的重要性,确定它是否值得去做,我总结了两点,首先是确认该事物的流行度和趋势。

针对视频质量评估,我整理了两项数据,一是谷歌搜索近二十年来关于视频质量关键词的搜索趋势。整体来看,从2022年至今搜索热度持续走高,未来也可能持续受到重视。二是LiveVideoStackCon自2017年至今关于视频质量评测的议题也呈逐年上升趋势。从趋势和流行度角度分析,视频质量评测已成为一项比较重要的工作。

b0c5a0b8c7820164ac6d892a72c83b5a.png

其次是分析视频质量评测工作在视频业务中的地位。视频质量评测体系是画质增强、编解码器优化和QoE工作的基石,可以说它是视频行业这片红海中的一块蓝岛,值得我们进行研究。对于TO B厂商,视频质量评测工作更是大有可为,拥有成熟的视频质量评测体系可以协助对各类增强算法和HDR等技术的优劣进行判断。相信该项工作后续在行业内会越加重要。

-02-

面临的问题和挑战

接下来介绍在视频质量评测工作中我们面临的问题和挑战。具体将从四个角度来分析,首先介绍视频质量评测体系,其次是传统算法在实践中遇到的问题,第三是主观评测在实践中存在的问题,最后是业务所面临的问题。

da0f44b4dd433da713f0ef326ad55aaf.png

大家对视频质量评测体系中的主观评测和客观评测比较了解,工程师出身的从业者可能会更重视算法,轻视主客观评测。

但实际上,经过实践分析发现,主观评测是视频质量评测体系中不可或缺的重要组成部分,例如在HDR/SDR评估场景下,视频质量和设备以及屏幕亮度等因素都有直接关系,难以仅从算法角度来衡量。另外如果涉及编解码器采购,无论销售方提供的算法跑分有多高,我们依然无法轻易信任,视频质量的好坏最终还是要通过主观评估的方式来判断。

检测&分析是我们结合实践在体系中加入的环节,因为很多编解码器不仅针对CODEC,也可能会对帧序列等方面进行优化。例如,在某次CODEC上线后,我们发现虽然视频画质得到了提升,但因为视频帧的间隔序列被调整,导致视频卡顿率暴增。所以,我们在主客观评测的基础上额外增加了检测&分析环节,形成了目前的视频质量评测体系。

3cd42402fb3dc42c23f9ee1d33d25d2e.png

接下来介绍传统算法在实践中遇到的问题。我们认为传统算法是一把双刃剑,使用不当会导致各种错误结论。以PSNR为例,由于它是在信号级别进行计算,并且是在整帧的范围内计算折损,导致它和主观感知的差异非常大。

从上图右侧的图像中可以发现,B视频中天空和云朵的位置发生了较大折损,但它的PSNR值达到了38,对应的MOS分几乎到4,评价结果反而不错,这明显不符合人眼的主观感知。

其次,如果两个视频的PSNR值一致,该如何处理?针对4K等高清晰度视频,在全局空间上计算PSNR值很可能会出现两个视频结果一致的情况。上图中左侧的图像,两个视频的PSNR值都为42,仅依据PSNR的结果难以判断哪个视频质量更优。

bb95f3ba02ac48d991ebf408e4363199.png

SSIM存在什么问题呢?SSIM解决了区块的问题,并且引入了亮度、对比度和结构信息,它总体要优于PSNR。但在实际使用过程中,我们发现了两个问题,一是SSIM的实现版本有多个,版本不同可能导致结果不同,在使用前必须要注意确定好版本。

第二是FFmpeg的SSIM滤镜存在BUG,我们对滤镜算法进行了逆向分析,对照公式审核代码实现,可以发现代码在亮度因素的计算上存在问题。上图右侧为对比结果,其中绿线为正常结果,红线为少乘64后的结果,虽然对整体结果没有太大影响,但还是要加以注意。

2eed8de1bce7ac15ee62fab9e26e034e.png

VMAF的情况更加复杂,整体计算过程如上所示。首先,业务视频类型和模型训练数据存在较大差异,VMAF的默认模型是基于Netflix的HDTV数据训练而来,这和我们目前的UGC场景不符,这会导致视频质量打分和主观评测结果差异较大。我们使用该标准模型在自己的数据集上进行了试验,打分一致性仅有60%,需要引起大家重视。

第二个问题是目前消费场景以手机居多,而VMAF的手机侧打分是利用二次函数来拟合HDTV的结果,这点也要特别注意。

cbf966b6c09deca82118cf354dda9f46.png

最后是传统算法在增强场景中的问题,在增强场景下很多传统算法会失效。以上图为例,我们将左侧图中的视频对比度提升一倍,并观察各种质量指标,结果如右图。从VIF数值上可以看出视频质量得到了增强,虽然PSNR和SSIM数值都较差,但并不代表视频质量差。VMAF数值虽然达到100,但与MOS分中5代表的含义是不同的,以上问题也要引起重视。

f14fbc0bec20cf846fcb55882afbde86.png

接下来介绍主观评测在实践中存在的问题,目前的主流方法是基于ITU-R BT.500的图像质量评价方法,但该方法存在成本高、评测效率低、不符合移动端体验等问题。

5576a7ba227356a43020a2d166156601.png

因此我们设计了一种网页版评测方法,但在使用过程中也存在较多问题,例如浏览器的观看体验和移动端体验之间也存在差异,上图分别为浏览器以及手机端的视频截图,可以发现图中蓝色的偏差较大。第二个问题是无法随时随地评测;第三是网页版无法对HDR和端超分等场景进行评测。最后是关于BT.500置信度筛选算法的问题,由于它的置信度是基于统计意义的置信度,针对部分特殊不具备统计意义的非随机场景会出现异常,假如针对一批质量较差的视频进行评测,算法会忽略用户打分的置信度。

187954cf7f2d0c498d7ef9b3bd2d6cc5.png

综上,在业务发展初期,百度的视频质量评测面临如下问题:

首先是评不准,其次是针对HDR等场景评不了,最终导致评不快

-03-

解决问题的实践之路

基于刚才提到的问题,接下来介绍我们解决问题的实践之路。具体将分为四部分,首先是工具优化,其次是工具整合,接下来是评测体系服务化,引入更多人参与,最后介绍当前的效果。

125b3fdfc16a9b03e064847bd9332d61.png

首先看工具优化,刚才提到了算法工具的正确使用是评测工作的关键,在优化算法和优化结果可分析两种思路中,我们最终采用了优化结果可分析的方案。

在优化过程中,我们尽可能将其嵌入到FFmpeg滤镜中,无法嵌入的则构建单独工具包,整体算子见上图,后面会详细进行介绍。

b8866ec9b256f26dfa273d3f88b77ecf.png

PSNR可视化解决了两个视频PSNR一致时如何选择的问题。我们采取了PSNR分块单独计算的优化方式。由于这将导致PSNR数据较多不好分析,于是将分块后的PSNR值进行灰度分级,把PSNR值所在的0~60这一区间映射为8位灰度图,并以视频的形式呈现出来,效果如上图所示,可以看到PSNR在每个像素点上的折损。

287b072fe8e5c9002185c9c0759d34ca.png

关于视觉信息,刚才提到PSNR值低不代表视频效果不好,于是我们另行关注了如HSL、对比度、色彩度、纹理度等指标。HSL中色调、饱和度这个点比较有意思,当时我们和UE开展项目合作,UE希望寻找一些badcase来分析色调、饱和度对画质的影响,我们提交了使用FFmpeg滤镜计算的结果后,UE反馈结果有误。

经过逆向分析发现,FFmpeg滤镜的色调、饱和度是在YUV的基础上计算,和真实的HSL空间计算差距相当大。

fc88e3d972b276e24055569dedfb525d.png

我们研究并重写了计算色调、饱和度的算法,上图为实际效果。对于上图中的色值,使用signalstats滤镜计算,它的色调和饱和度分别是130和77,实际上使用ColorSlurp工具计算,它的色调为30,饱和度为95%。使用我们的visualstats滤镜,可以看到结果和ColorSlurp工具的结果基本一致。

f6e45278efccad4ebbcb804fc65f7f24.png

关于对比度的计算,目前相关算法很多,我们借鉴了SSIM算法中的对比度评估方案,采用像素邻域内的标准差进行对比度估计,于是我们通过计算4x4局部空间的标准差并将其作为图像对比度,最终效果不错。

636a36511ba098eff2af719b41d12735.png

关于纹理计算我们设计了两种方式,第一种是使用颜色直方图的方法,这与Matlab的方法一致,第二种是先进行Sobel滤波,滤波后进行双阈值过滤,然后计算非黑像素占比。两种方案的计算结果差距并不大,所以建议使用更加简单的直方图计算方法。

对于色彩丰富度,即判断画面色彩的艳丽和丰富程度。我们采用了上图中论文的思路来进行计算,它的思想是先将色彩空间转为RGB,而后采用图中的公式来计算画面丰富度。

d6e579ac65e8c848140de1bb74b4b611.png

我们将以上指标的算法全部集成到FFmpeg滤镜中,采用之前提升一倍对比度的视频来计算各类指标,可以看到:对比度的计算结果符合实际情况,对比度提升带来的其他指标变化也基本符合人眼感知。

edb1055fdbb3f2f7dd422e7cb330ef88.png

接下来介绍主观评测工具的优化过程。基于百度强大的视频技术基建,我们自研了支持多端的主观质量评测APP,我们称其为灵镜(度知了)。通过将视频评测移动化,做到更符合用户消费场景,并且随时随地都可评。该工具的能力可以从几个方面来简单介绍,首先是支持PC、iOS和Android三大主要平台的评测设备,其次是支持全部的评测方法和评测方式,最后是支持SDR/HDR、端超分等各种媒体形态。

1f542c1715d7c41c56090a719177d590.png

灵镜APP的实机效果如上,其中左侧为单帧模式效果,从事编解码器优化的同仁可能会比较关注。中间为较常用的普通全屏模式,为了加强对比我们还设计了支持拖拽的横版同屏全屏模式。针对小视频,我们设计了右侧的竖版同屏全屏模式,同时支持对视频从不同维度进行专业化打分。灵镜已经正式上线,大家可以搜索“度知了”下载来体验其他功能。

9653fffdd7e7ca8258c2bf2307cb94f5.png

上面主要介绍了主观评估工具方面的问题,接下来是关于流程的问题。我们发现:在评估过程中人们存在惯性意识,评估者对评估序列中前面视频的打分会影响到对后续视频的质量判断,导致评测结果不准。

针对这个问题,我们调整了评测流程中的用户交互,首先是将评测方式转变为双盲评估,把视频顺序随机交换,混淆评测者对评测顺序的印象。其次是自建控制视频库,通过将控制视频随机插入到评测任务中来控制用户置信度。第三是进行打分信息上报,包括机型、屏幕亮度、全屏方式、打分时间等。

整体流程如上图所示,需要评测的视频在整合控制视频后形成测评任务,任务通过PC、iOS和Android端分发给评测者进行打分,完成置信筛选后,形成最终的视频MOS分。右下角为一个评测结果实例,是多位评测者对一个视频的打分情况,可以通过分析各类信息来综合判断打分置信度。

96005886d0480ac148ff404e08663c4f.png

在算法工具和评估流程完善后,我们迎来了大量的视频评测需求。按照原流程,每次评测均需手工拆分任务列表,按需创建评测任务并分发,最终手工合并任务结果,该流程无法满足大量评测需求。

644681c0dcc528ad8a22c6acf3d3c67c.png

于是我们考虑对算法工具进行平台化整合,将评测过程划分为多个不同的评测场景(它的作用类似于模板),并将场景具体拆分为任务类型、调度算子和结果分析三部分。具体结构如中间图所示,针对不同的任务类型由调度器来调度该类型下所有的算子,最后对应不同的结果聚合和解读方式,该方法极大提高了工作效率。

d1aae50d77075c508532a5a13478bed9.png

从整体架构上看,我们利用评测场景这一概念将优化后的客观算法和主观评估工具进行整合,在服务化的基础上对下层能力进行调度,最终达成任务自动拆分和结果智能分析的效果,运用该方式可以实现处理大量视频评测的需求。

6c8d02242afae29e3c1748f02b6554a9.png

整合后的视频评测流程如上所示,在接收评测需求后,首先选择合适的评测场景,然后由调度器调度相应的主观评估、SITI、客观算子、分析算子等进行计算,其中客观算子部署在百度内部的FaaS平台上并通过API接口暴露出来,主观评测通过内部工具或通知等方式进行用户招募,而后完成用户打分。同时另有调度算子实时检测各算子的工作进度,待全部计算结束后调动分析算子形成最终的测试报告。

6325bd13863f22f4de1563fd678d3e43.png

接下来举一个应用实例,上图中左侧为平时使用的一个评测场景,在选择对应的视频比例并上传视频后即可等待视频评测结果。结果如右图所示,它会按照百度的内部要求显示各类结论,例如右图中的主观分析结果显示了两个编解码器的GSB分布,正向(good)32%代表A编码器32%的视频质量优于B编码器,持平(same)代表A 66%的视频质量和B基本一致,负向(bad)为2%,由此可知A的此次优化是成功的,可以尽快上线。

除了解析结果外,评测结果还会提供很多可供分析的质量指标,包括码率分布和该场景对应所有算子的计算结果,以主观为主,客观为辅的机制协助业务侧进行分析。

9bec64720bac112c72a8f40be853f67b.png

随着算法工具优化和平台化整合完成,百度的视频质量主观评测任务量从22年开始飞速增长,于是评测人员数量成为了制约的主要瓶颈。

为了满足评测需求,我们计划从外部引入更多的评测人员,主要有三点理由。首先评测平台有完善的置信判断能力,其次公司内部用户的参与度和置信度有保障,第三是视觉和听觉是人类与生俱来的能力,大众对视频质量的好坏有天生的判断能力,这与需要后天养成的艺术鉴赏力不同。

c34632df4c4dd416c0730c67694eb8d8.png

因此我们构筑了组成评测人员的三级火箭模式,第一级由度知了团队内部人员组成,可以消化少量评测需求。如果评测量较大,达到300~500条/天,会以公司系统内部人员解决。如果任务量超过1000条/天,则采用外聘众包团队的方式解决。成本方面,在公司系统内由7人评测单条视频,其成本为0.2元。外聘方式成本较高,单条视频成本在1~2元左右。

在实践过程中,我们发现单条视频评测人数和对应的评测结果准确性也有关联,人数越多,评测结果和专业结论越一致,根据我们的实践,建议人数为17到19人,以上方法在实际工作中可以综合考虑成本、工期和质量等方面因素来运用。

49cb46f8bad1d109affe69c44e6fe019.png

以上是百度视频评测体系当前的运行效果,它目前支持80种以上的评测场景,内部评测效率可达到500条/天,如果使用外聘人员效率会更高,置信度达到了90%

4ee39ce855ab7ae8913d6deed7678f04.png

以上是视频评测体系服务化后承担的评测任务量趋势图,可以看到整体数量呈指数级增长

-04-

灵镜(度知了)的业务实践

接下来介绍灵镜(度知了)的业务实践。主要分三部分,第一是灵镜(度知了)的运营模式实践,第二是云转码阶段的实践,最终是用户播放阶段的实践。

d50884707b323a4936db075ebb183da5.png

相较于前面提到的视频评测体系,我们在运营阶段整合了众测用户运营,形成了度知了的服务体系,该体系对外仅有一个接口,用户付费,平台反馈视频评测结果。

3fb9c8086f5f46f25ba6a650dd4d0349.png

该模式被运用在百度视频业务的三个阶段中。第一是云转码,在编码阶段,目前百度所有编解码器的引入均由度知了判断准入标准,如昆仑芯、BD265、超分算法和第三方编解码等等。其次是审核阶段,度知了主要负责向策略提供模型训练的标注数据。第三是用户播放阶段,主要负责提供一些播放/转码优化策略。

63a97706cb15447a3ce630679bb0db2d.png

它整体上的技术价值为,将视频质量评测的算法、工具、人员整合为适用于多场景、高效、置信的视频质量评估服务。业务价值即有效控制成本,让业务线的每一分钱都花得值。

95d3c85f0f1c9c548ffbac7e9afdd92a.png

接下来介绍度知了在云转码阶段的业务实践,首先以刚才提到的两个PSNR相近的视频优化结果为例,右图为运用优化算法得出的PSNR可视化分析图。可以发现,A编码器在边缘上折损比较大,B编码的稳定性较好,可视化分析给出了更直观的结论。

f14695a1f08c1817b439bfecd3644ce8.png

在转码过程中我们发现,图片在颜色空间转换后亮度和对比度发生了很大变化,PSNR的可视化效果也较差。在进行编解码时可以将优化算法的计算结果作为依据来对原图进行调优,使优化后的视频质量转好。

ceb571eb920ffac5689d6c07f729c5b9.png

在用户播放阶段,我们利用度知了的视频质量评测体系对视频源进行特征分析,选择合适的转码策略,协助针对相应策略进行AB实验。

4ee3ed9fcd5c0dae92bcfb251e5a6a34.png

这种思路可以提升AB实验效率,例如:为了在保证用户观看体验的同时,合理控制视频的音频码率和需要画质增强的视频数量,节约公司成本。通过前置引入度知了视频评测体系,协助业务线开展小规模实验,可以为策略制定和AB实验策略提供有效决策支持。

3122698aa9637a119f84cfa9f5fa23ea.png

百度现行的AB实验流程如上所示,首先进行团队内部策略验证,之后进行公司内部的主观众测评估,将样本扩大,最后将样本推至线上进行AB实验,整个流程所需的时间较短,一个编解码器的实验目前可在10日左右完成,其中新编码的评估时间仅需1天。百度的视频评测已经彻底逆转了从前“评不快、评不准、评不了”的历史形势。

这就是我今天的分享,谢谢大家!


3e400d20cca452ca4b247e8ed12b099c.png

扫描图中二维码或点击“阅读原文 

查看更多LiveVideoStackCon 2023上海站精彩话题

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:如何用Python制作动画?

如何用Python制作动画? Python作为一种优秀的编程语言,可以用于不同领域的编程。其中,Python也可以被用于创建动画。使用Python的主要好处之一是其强大的Matplotlib库,它可以帮助我们更轻松地创建可视化效果。 什么是Matplotlib…

chatgpt赋能python:Python如何取出List中的数据

Python如何取出List中的数据 在Python中,列表(List)是一种非常常见的数据类型,它可以存储任意类型的数据,并且可以按照下标索引来访问其中的元素。本篇文章将介绍如何使用Python来取出List中的数据。 常规方法 在Py…

Android BlueToothBLE入门(一)——低功耗蓝牙介绍

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为3150字,预计阅读8分钟 前言 距上篇文章发布都一个多月了,先声明,我可不会停更。这么长时间没更新文章,其实原因就三点: 原因一是工作上事确实多&…

JavaScript之事件(十)

JavaScript之事件 1、事件绑定2、事件类型3、事件的传播4、事件对象1、事件对象常用的属性2、事件对象常用的方法 事件可用于处理、验证用户输入、用户动作和浏览器动作。 1、事件绑定 事件绑定就是给HTML标签绑定特定的事件,当该事件触发,则会执行相应的…

一款射频芯片的layout设计指导案例-篇章2

《一款射频芯片的layout设计指导案例-篇章1》中,我们阐述了RTL8762元件布局顺序、DC/DC电路元件布局走线、电源Bypass布局规范、外部flash布局走线、RF布局走线, 本篇阐述晶振、ESD、板层等相关指导建议—— 40MHz晶振布局走线规范 在没有结构限制情况下…

chatgpt赋能python:Python如何在同一行输入三个数?

Python如何在同一行输入三个数? Python语言是一门广泛使用的编程语言,被广泛应用于数据分析、机器学习、Web开发、科学计算、人工智能等领域。但是,有时候我们需要在同一行输入多个变量或数字,这可能给一些初学者带来一些困惑。本…

暑期实习开始啦「GitHub 热点速览」

作者:HelloGitHub-小鱼干 无巧不成书,刚好最近有小伙伴在找实习,而 GitHub 热榜又有收录实习信息的项目在榜。所以,无意外本周特推就收录了这个实习项目,当然还有国内版本。除了应景的实习 repo 之外,还有帮…

快手 | 后端Java实习生 | 一面

目录 1.Redis缓存和MySQL数据一致性如何保证?2.你使用缓存,在高并发的情况下,如果多个缓存同时过期了怎么办?3.消息队列积压了怎么办?4.jdk1.8之后Java内存模型分别哪几个部分?每个部分用一句话概括一下&am…

GaussDB云数据库SQL应用系列-定时任务管理

前言 GaussDB数据库定时任务主要可以用于实现定期的备份、统计信息采集、数据汇总、数据清理与优化等,它是指在指定的时间间隔内自动执行一次或多次SQL语句的程序。 一、GaussDB数据库定时任务介绍 GaussDB数据库兼容Oracle定时任务功能主要通过DBE_TASK高级功能…

POSTGRESQL PSQL 命令中如何使用变量带入查询和函数

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

chatgpt赋能python:Python如何删除已经写好的代码?

Python如何删除已经写好的代码? 在编程中,大多数时候写出来的代码都是需要保留的。但是,随着项目的发展和需求的变化,有些代码可能就没有用了。这时,我们需要删除这些无用的代码,以保持程序的简洁性和效率…

Nginx、location匹配、Rewrite重写模块

Nginx、location匹配、Rewrite重写模块 一、常用的Nginx正则表达式二、location匹配概述1、location大致可以分为三类2、location常用的匹配规则3、location 优先级4、location 示例说明5、实际网站使用中,至少有三个匹配规则定义 三、rewrite重写1、rewrite 跳转场…

记录--JavaScript 中有趣的 9 个常用编码套路

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1️⃣ set对象:数组快速去重 常规情况下,我们想要筛选唯一值,一般会想到遍历数组然后逐个对比,或者使用成熟的库比如lodash之类的。 不过,ES…

Spark RDD分区

文章目录 一、RRD分区(一)RDD分区概念(二)RDD分区作用 二、RDD分区数量(一)RDD分区原则(二)影响分区的因素(三)使用parallelize()方法创建RDD时的分区数量1、…

软件测试之环境搭建—苏汽web系统测试环境搭建

一、搭建环境的准备工作 1、安装好RedHat,输入用户名:root,密码:123456,右键点击桌面,打开终端输入“ifconfig”查询IP地址 2.打开xshell,点击文件,选择新建连接,在输入…

【数据分析之道-Matplotlib(七)】Matplotlib直方图

文章目录 专栏导读1、hist()基本语法2、使用 hist() 函数绘制多个数据组的直方图3、修改直方图的颜色及边框颜色4、六一儿童节为主题,使用直方图进行可视化 专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享pyth…

POI报表的高级应用

POI报表的高级应用 掌握基于模板打印的POI报表导出理解自定义工具类的执行流程 熟练使用SXSSFWorkbook完成百万数据报表打印理解基于事件驱动的POI报表导入 模板打印 概述 自定义生成Excel报表文件还是有很多不尽如意的地方,特别是针对复杂报表头,单元格…

我们世界中的10个算法

下面的图表展示了我们日常生活中最常用的算法。它们被应用在互联网搜索引擎、社交网络、WiFi、手机甚至卫星等各个领域。 1.排序算法 排序算法用于将一组数据按照特定的顺序进行排列。它们被广泛应用于各种场景,如搜索引擎中的搜索结果排序、数据分析中的数据整理和…

转转前端周刊第六十八期

转转前端周刊 本刊意在将整理业界精华文章给大家,期望大家一起打开视野 如果你有发现一些精华文章想和更多人分享,可以点击我们的公众号名称,将文章链接和你的解读文案发给我们!我们会对内容进行筛选和审核,保留你的推…

基于TensorFlow Object Detection API实现RetinaNet目标检测网络(附源码)

文章目录 一、RetinaNet简介1. Backbone网络2. FPN网络 二、RetinaNet实现1. tf.train.CheckPoint简介2. RetinaNet的TensorFlow源码 一、RetinaNet简介 RetinaNet是作者Tsung-Yi Lin和Kaiming He于2018年发表的论文Focal Loss for Dense Object Detection中提出的网络。Retina…