GAITC 2021 马思伟:人工智能技术推动智能编码的发展
6月6日,由中国人工智能学会(以下简称CAAI)主办,新浪新闻联合中国传媒大学共同承办的2021全球人工智能技术大会(GAITC 2021)“发展与挑战”专题论坛在杭州举行。北京大学教授、国家杰青获得者马思伟先生在本次专题论坛上,与来自业界、学术界的嘉宾们分享了关于《智能图像编码》的研究。
马思伟作主题演讲。
马思伟认为,智能编码主要面向视觉内容内容分析和理解,采用基于特征或语义的编码方法。当下数据驱动、算力提升,都在推动智能编码的快速发展。从对象模型编码、到知识、语义模型模型编码,再到现在的深度学习编码,智能编码的发展始终与人工智能技术的发展密切相关。
以下为马思伟演讲实录,内容经编辑略有删减:
非常高兴有机会来这儿汇报自己的工作。图像编码可以说是一个老技术问题,实际上编码从数字图像诞生时就开始了,这个是计算机上的第一幅图像,图像分辨率是176×176×1bit,一个像素要么是黑,要么是白。
中间这幅图像被称为JPEG的守护神,图像压缩或图像处理的应该都知道,这时的图像分辨率是512×512,1972年的扫描仪只能扫描这个分辨率。后面这幅图像就是今天说的比较多的4K、8K超高清分辨率的图像。在8K分辨率图像上我们可以看清狗的毛发,一根一根的精细了。8K分辨率即7680×4320,位宽是10bit,这个数据量跟1957年比是一万多倍。
即便是和70年代的图像相比,数据量增长也是近200倍,可以说分辨率提升带来巨量的数据量增加。图像采集是更精细准确的记录时空信息,图像编码则是为了降低数据量的储存带宽。智能编码一方面是提高压缩效率,另一方面是支持更方便、更智能的图像处理。
最早熟知的图像编码技术是JPEG,现在数码相机都还一直在使用。JPEG是1988年开始启动,1992年成为标准,到现在接近30年,后来还有JPEG2000,性能比JPEG提升接近30%。由于技术专利问题并没有获得广泛使用,我们看到很多技术是成功的,但实际成功应用是受很多因素影响的。后来虽然图像编码标准听说的少些,但这些视频编码标准的帧内编码也通常用于图像编码,像h.264这代标准是2003年制定的,h.265/HEVC是2013年制定的,BPG图像就是基于h.265编码技术。最新的就是h.266了,是2020年制定完成的,像HEIF图像就是基于H.266的。对图像压缩来讲,从1992年开始,近30年压缩效率提升还不到两倍。刚刚提到数据量是上百倍的增长,所以可以说压缩技术很难,编码压缩是很有需求的。
编码的难题是什么?这个是现在的编码技术的通用手段,一个是预测这块降低数据的空间冗余,还有从空域变换到频域进行信号的分解去掉高频信息。目前提高编码效率是用很多的变换核,很多的预测技术手段综合起来去选一个最优的,选优的过程是很复杂的,通常基于率失真优化理论进行决策选定编码参数,这种优化编码是比较有限的,采用一些简单的线性预测或者线性变换很难达到最优的编码效果,因为实际的数据情况太多太复杂了。
所以就有了现在做的比较多的非线性预测、变换编码技术,也就是现在讲的比较多的神经网络编码、深度学习编码,可以通过更复杂的非线性预测变换,降低数据冗余度,这是一个新的研究方向。简单讲下深度学习神经网络做预测编码,我们传统编码里面通常取几个像素做加权预测,一般是固定几套滤波器,从中选择一种,但实际信号组合情况太复杂了,很难依靠几套简单的滤波器解决这个问题,相比之下神经网络可以做更复杂的优化预测。通常在编码里面我们都很喜欢0.5这个数,0.5很简单,运算时就是(A+B)÷2,我们也知道这个0.5肯定不是最优的,但到底是0.1、0.2、0.7、0.8,一下子多了更多选择之后,优化就变的很难解决了,所以通过神经网络去求解更复杂的优化编码问题,能够对底层的信号特征处理更好,提高编码效率,这个是深度学习编码工作的背后机理。
基于神经网络做优化编码主要是两方面的问题,一方面是尽量少的去编码信息,编码较少的元素,比如神经网络输出的特征尽量少,这样降低码率比较直观,比如编8个数比编1个数考虑的情况要多的多,还有本身这个编码元素的信息熵要低,这个是基本优化的思想。
基于这些优化思想现在可以看到基于神经网络编图像性能提升,这些工作是在2016年,这个时候性能超过JPEG2000,2018年性能超过了h.265编码。最后面的就是2020年的结果,它这个性能超过最新的VVC。前面说过编码是个很有难度的问题,30年编码效率只提升了一倍多。现在这些基于神经网络编码的方法比前面积累了几十年的工作效果都好,但也有问题,神经网络编码数据的依赖性还有复杂度目前还是比较大的问题。
前面我们看到用深度学习去解决更复杂的优化编码问题,是可以提升编码性能的。现在还有另外一个变化,原来传统编码为了追求压缩效率提升,主要是面向人观看的影视节目,包括我们手机上刷的视频,都是人去看它。
对于这类视频做编码的目的是为了节省存储空间和带宽,但是现在越来越多的视频不只是人去观看,而是越来越多的机器都要对这些视频和图像分析处理,这是传统编码并没有太多考虑的。所以提出智能编码,采用基于语义或者是特征的编码手段,能够更好地面向内容分析与理解。
原来的图像视频是由机器记录之后呈现给我们人看,是人和机器之间的一种交互形式。机器之前或者人机之间,可以有有更高级的通信方式,比如像神经脉冲,不一定就是图像视频。
传统编码和智能编码在数据获取以及表示处理的时候有很大的差别,首先传统编码的对象,就是图像视频,它都是基于CCD、CMOS阵列刷新,对像素块进行处理编码。后续基于图像视频的分析理解,目前基本都是基于深度学习的算法,有些方面比人做的都好了,与人的视觉系统相比效率还比较低。比如让机器看了很多猫,后来一个猫它认成了狗,这是普遍存在的问题。对小孩子来说,给他看两三只猫认出来的还是猫。
对人类视觉系统的研究也有很多,比如很早就有许多很基础的理论研究,基本上我们编码里面用到的比较多的理论一个是多通道,即对色彩、对比敏感度等的多通道处理。还有就是非线性,非线性可以更好对图像视频内容实现更好的表示,这是背后的机理。
我们现在对比下传统编码和智能编码,传统编码都是基于像素块的处理,对像素块做预测变换编码,处理的时候我们不知道里面是什么,都是一样的,无非就是说数据有的是方差大一点或者是小一点,都是信号层面的底层特征。我们人看内容是从边缘结构特征入手,再到轮廓、对象,它是这样一个信息处理模式。人看东西实际上也是一个编码过程,可以看到面向理解的编码和信号保证的编码之间差别是很大的。
那么是不是可以从更多利用特征层面进行编码呢?也就是说的智能编码。智能编码概念其实并不是现在才有的,也有20多年了,只不过它的进展一直没有达到我们所要的智能。比如早些年提得比较多的基于模型的编码,对图像的内容进行区域分割和编码。MPEG-4提出了基于对象的编码,但是它依赖对象的很精细的分割,为了实现对象交互。现在我们回头思考下如果想要实现内容的分析理解,需要准确的分割吗?不需要,只要对象的特征就足够了。后来还有基于知识和语义的编码,大概是在80年代末期到90年代中期,再后来就提出了综合信号和视觉系统的智能编码。其实还有很多工作是与智能编码密切相关的,如MPEG-7中定义的视觉对象的描述,以及CDVS、CDVA,通过在图像、视频上附加上一些特征信息,可以基于特征进行图像检索,不需要再处理原始的图像。近期还有一个称为面向机器视觉的编码叫video coding for machine,简称VCM,也是面向机器进行分析和处理的编码。
下面我们在深入了解下深度学习编码和特征编码之间的关系。对于像素层面的编码进行DCT变换,变换分解成不同信号进行编码,这是很底层的特征。再高层些的特征是边缘轮廓,也可以通过学习得到,可以模拟人一样对视觉信息的处理。到高层这里我们看到类似于人脸的特征。由此可见基于深度学习的编码,实际上包含了很多视觉特征特征信息在里面。
这里我们提出了一个视觉信息分层的编码框架。一个是结构层面,比如轮廓信息,还有纹理层,就是颜色等信息,还有是语义层,最后是残差信号层。基于这些层次信息的融合表示实现智能编码,用相应的特征去做更多的智能处理。
这是一个具体实现的网络框架,有时特征的数据量也很大,这部分负责去除语义冗余降低码率,后面这里是解码重建过程。对这种编码方法,我们在一些大规模的图像数据集上进行了测试。
首先在编码效率方面,和VVC比在同等视觉视觉量下,压缩效率差不多可以提高到2-3倍。刚才说了智能编码不只是为了提升压缩效率,还在内容分析方面具有优势。
这个工作是训练网络的时候不只是面向压缩,同时面向图像分割、人脸属性预测这些分析识别任务,网络编码提取的特征信息在达到压缩的同时可以同时支撑分析识别任务,不需要解码图像重建,不需要回到像素层次。
通过视觉信息分层编码还可以做一些其他有意思的工作。像这里图像结构和纹理分开了,可以把一幅图像的轮廓信息和另一幅图像的色彩信息做组合,能够很快变化出更多的图像内容甚至其他东西来,这些工作类似于图像风格化,但这里主要是讲定义了底层的数据表示,可以基于这一表示去进行更多的处理。
还有一个是我们现在在做的工作,打通智能编码和更多智能处理之间的联系。一个是视频的生成,可以用一副图像生成一段视频出来,还有一种是做图像之间的变化效果,目前都还在进行中。
最后,谈谈智能编码的未来趋向,最顶层是编码的理论基础,包括信息论、视觉表示理论等,我想人的视觉系统是很好的编码器,这个是有相应的生理智能基础的,中间是早期的感知机编码,其实一开始神经网络刚出来的既有很多的编码工作,人看东西的过程也是编码。后面到模型编码,再后面是深度学习编码,包括最近概念压缩、生成压缩等工作。从这里我们可以看到数据驱动、算力提升,推动了智能编码的发展。智能编码不是新东西,是在更多的计算资源、人工智能技术发展下有了更新的进展,这里也体现了从对象到内容、越来越语义化的螺旋式发展。
与传统编码定义编解码方法达到压缩的目的类似,智能编码的目标是定义更高效的数据表示形式,为更智能的数字媒体处理提供高层级的接口,我想这是智能媒体编码未来的工作方向。