去年7月7日,YOLOv7问世,一举打败各大SOTA物件侦测模型。问起YOLOv7为何能做到这一点,核心开发者中研院资讯所所长廖弘源与中研院资讯所助研究员王建尧亲自揭露,关键在於更好的类神经网路架构、具备多任务的能力,以及更有效率的训练策略。
这些突破,始於世界第一物件侦测模型YOLOv4。2020年,他们与YOLO Darknet框架维护者Alexey Bochkovskiy共同打造这个模型,拿下MSCOCO资料集物件侦测大赛第一,无论速度、准确度,都完胜Google、微软等科技巨头开发的模型。
但廖弘源与王建尧并未停下脚步,而是继续朝2方向精进,一是开发更有效率的网路架构,也就是ELAN,二是打造能执行多任务的模型,也就是YOLOR(You Only Learn One Representation)。这两项突破,构成了YOLOv7的主体,由轻巧高效的ELAN执行影像辨识分析工作,YOLOR则统一整合特徵,两相加成之下,赋予YOLOv7执行多任务的能力。
关键1:轻巧有效率的网路架构ELAN
ELAN是一款特别优化的类神经网路架构,最大特色是省时省力,能更有效率执行物件侦测任务,还能让模型在硬体资源受限的低阶设备或是边缘装置上执行。
一般来说,模型要准确辨识出物件,通常得使用复杂的网路架构,比如非常多层的卷积(Convolution),来处理影像特徵,但这就得消耗更多运算资源,因此要在资源有限的低阶设备,执行这种高准确度的模型,也就更加困难。
但是,中研院所设计的ELAN架构,只用了1X1卷积和3X3卷积,以及连结(Concatenate)来整合卷积层特徵。这个架构不仅精简,也只使用最简单通用的运算单元,能更进一步好好分配运算资源,善用硬体既有资源。这是因为,许多顶尖电脑视觉模型,经常使用数种到数十种不同的运算单元,增加专属硬体的设计难度和成本,甚至,这些运算单元所需的硬体资源,也不尽相同,反而导致硬体使用率低下。而ELAN架构精简,解决了这个问题。
不只如此,ELAN架构还改善了前一代模型中耗费记忆体频宽的设计,比如残差(Residual)。王建尧指出,电脑视觉模型中的残差,所需的运算量低、只有卷积的数十万分之一,但它在边缘运算设备所需的运算时间,却是卷积的几十分之一,浪费了有限的硬体资源。於是,团队设计ELAN时,就排除残差,让类神经网路架构更精简、更有效率。
不仅去芜存菁,ELAN还展现王建尧的设计巧思,也就是梯度路径分析(Gradient path analysis)方法,来提高类神经网路效能。传统常见的模型优化方法,不外乎是从运算单元设计下手,或是设计一套方法,来让模型提取符合任务需求的特徵,再整合这些特徵来取得最终结果,但这就偏向传统机器学习特徵工程思维。梯度路径分析方法跳脱这个思维,从特徵学习下手,直接「告诉」模型如何学习特徵,并从层(Layer)、阶段(Stage)和网路(Network)三层面,来优化模型学习方法。而ELAN,正是网路层级的梯度路径分析实作。
这些特点,使ELAN成为高效率网路架构,一如其名:高效率层聚合网路(Efficient Layer Aggregation Networks)。团队也在2020年11月完成开发。
中研院团队在YOLOv7论文中,解释他们如何设计扩展版架构E-ELAN的梯度路径分析方法。这个方法是提高模型学习效率的训练策略,图中,E-ELAN并未改变原有架构的梯度传递路径,而是利用分组卷积,来增加特徵基数,并用随机洗牌与合并等方式来整合特徵组,强化模型学习表徵的能力。图片来源/王建尧
关键2:执行多任务的外挂YOLOR
与前几代YOLO模型不同,YOLOv7最大特色是一心多用,看一眼就能执行3种任务,包括物件侦测任务、实例分割(Instance segmentation)以及关节点侦测(Keypoint estimation)。
也就是说,YOLOv7可在画面中用框框框出特定物件,像是行人、建筑、交通号志,也能更细致地用颜色表示特定物件,就像是替这些物件着色般(这个上色动作也称为遮罩),此外还能定位画面中人体的关节点,如头部、手肘、膝盖,并将这些关节点连线,就像火柴人一样,可用来辨识动作和姿态。
YOLOv7为何如此强大?原来它加入了YOLOR。YOLOR是王建尧在2021年5月发表的模型,可以保存所有输入资料的特徵;它就像一个外挂,能用来提取模型中的隐性知识(Implicit knowledge),让原本专精单一任务的模型,透过保存起来的特徵,来学习其他任务,而不必针对其他新任务,一一重新训练。
廖弘源比喻,就像是受过专业训练的谍报员,被赋予一个任务,要找出照片中的车辆,他会专心记住照片中每辆车,这就是显性知识(Explicit knowledge),但若突然换个题目,改问照片中有几位行人,他也能凭记忆正确回答,即便一开始并未被赋予这个任务;这就是隐性知识。对电脑来说,「它就像经专业训练的谍报员,看一眼就记住所有资讯,就能用这些资讯来执行各种任务,」他说。只不过,目前大多数物件侦测模型,仍仰赖给定的显性知识来学习任务,很少善用隐性知识执行多任务。
了解YOLOR概念,再从模型架构角度来谈,如何实现一心多用的能力。物件侦测模型通常由骨干(Backbone)、颈(Neck)和头(Head)三部分组成,其中,骨干是将任务所需特徵,从不同隐藏层(Hidden layers)抽取出来,编码至骨干里,再由颈部进行特徵组织(Feature organization),最後交给头部下决策。
假设模型要侦测物件,骨干得从第1、3、5层提取特徵,再由颈部整合处理;若模型要执行影像分割任务,骨干可能得提取第2、4、5层特徵。但是,藉由YOLOR这个统一的网路(Unified network),就能在骨干一次处理不同任务所需的特徵,赋予模型执行多任务的能力。YOLOv7成功问世,也反过来证实了YOLOR外挂模式的可行性。
甚至,YOLOR这种善用模型隐性知识的技术,还能用於近期爆红的生成式AI。王建尧指出,一些文字转图像的生成式AI,会产出6只手指头的人像,但若加上类似YOLOR的技术,将已存在於模型的隐性知识提取出来,就能避免产出不合逻辑的图像。他甚至点出,这类技术研究,也许是台湾最适合投入发展的领域。
关键3:自动学习和具备泛化能力的训练策略
YOLOv7打败其他SOTA模型的第3个关键,是更好的训练策略,也就是YOLOv7论文标题强调的Trainable bag-of-freebies。
这个名词看似复杂,但拆分来看,Bag-of-freebies泛指用来提高模型准确度的训练方法,亦即模型训练时常用的技术或策略,这些技术或策略虽会增加训练成本,但不会增加模型推论时的运算成本,还能提高模型表现,因此称为免费礼品或赠品(Freebies)。常见的BoF有几种,如资料增强、正规化(Regularization)、权重初始化等,开发者可用来训练模型,让模型更容易调整和优化,达到更好的表现。
但,一般的BoF仍有其局限。举例来说,资料增强是用来增加训练资料的多样性,比如用於物件侦测时,可针对一些小物件来设计资料增强,让特定物件的训练资料更多,进而提高模型辨识力。「但这就有所局限,」王建尧解释,若模型任务与小物件侦测无关,这样的BoF就无法发挥作用,还可能引起反效果。
於是,团队设计YOLOv7的BoF时,决定让它更灵活,让训练策略也可以「受训练」,能根据任务需求自动学习、自动调试,而非生硬地只适用於特定目的。
进一步来说,YOLOv7的BoF包含模型重参数(Model re-parameterization)和动态标签分配(Dynamic label assignment)两种,其中,动态标签分配是近期物件侦测模型的主流优化趋势,能提高模型对图像特徵的学习能力,让模型更准确分辨物件侦测框(Bounding box)中的像素,是否属於该物件。
有了这个能力,模型就能进一步泛化(Generalize),运用已知知识来解决新任务。也就是说,一个已经由Trainable BoF训练过的物件侦测模型,不必再透过新资料重新训练,也可用来执行其他新任务,比如影像分割。
这种泛化能力,也在YOLOR中展现过。王建尧解释,其实,Trainable BoF最初就用於YOLOR,而YOLOR的成功,证实了这个优化策略可行,能用来改善物件侦测任务表现。这次的YOLOv7,则更进一步证明,Trainable BoF不只能优化模型在物件侦测任务的表现,还能优化实例分割、关节点侦测等不同任务的表现,是发展多任务AI的基石。
兼具这些技术突破的YOLOv7,不论是速度还是准确度,一问世就胜过所有主流物件侦测模型,在每秒5帧到每秒160帧范围内,表现优於YOLO系列模型和Transformer系列模型。而且,在使用GPU V100、每秒30帧或更多的条件下,YOLOv7平均精度(AP)达到56.8%,是当时所有物件侦测器中,准确度最高的模型。
下一步瞄准多模态多任务,也要用GNN提高解释性
尽管YOLOv7已经拿下亮眼成绩、突破许多瓶颈,中研院团队的目光,并不止於此。因为,YOLOv7的成功,证实YOLOR单一模型执行多任务的可行性,王建尧甚至直言,YOLOv7和YOLOR就是为多模态、多任务的统一模型铺路。这句话揭示团队接下来的研究方向,他们将以YOLOR为基础,发展更通用的电脑视觉模型,物件追踪就是其一。
与此同时,廖弘源透露,团队也瞄准知识图谱和图神经网路(GNN)两种技术,一方面要用擅长处理关联性的图学,来提高模型处理多任务的能力,一方面也要透过知识图谱,来强化模型的可解释性。
他解释,一般类神经网路就像黑盒子,当网路出现问题时,开发者通常难以找出原因,但透过知识图谱或GNN,可将原本的大黑盒子拆解为好几个小黑盒子,更容易推导出问题所在。
从YOLOR统一网路和GNN双管齐下发展多任务AI,就是廖弘源与王建尧眼中的下一个目标。
YOLOv7单一模型可执行3大任务
任务1:物件侦测 YOLOv7可执行3种任务,一种是物件侦测(Object detection),能将画面中辨识到的物件,以边界框(Bounding box)框出,并在框上显示预测的物件名称与机率。图片来源/viso.ai
任务2:实例分割 YOLOv7可执行的任务还有实例分割(Instance segmentation),也就是将辨识到的物件着色,这个动作也称为遮罩(Mask),比物件侦测只以边界框框出物件还要细致。图片来源/Rizwan Munawar
任务3:关节点侦测 YOLOv7可执行的另一种任务是关节点侦测(Keypoint estimation)。以人来说,模型可将画面中辨识到的关节点标示并连线,就像个火柴人,可用来预测动作和姿态,如跌倒侦测。图片来源/Aleskandr Snorkin
精简的模型设计大力推进AIoT应用
物件侦测模型YOLOv7的成功,不只证实新技术可行,更能推动AIoT发展。YOLOv7共同开发者中研院资讯所所长廖弘源指出,YOLOv7模型速度快又准,架构还很精简,只采用3×3卷积、1×1卷积和连结(Concatenation),因此耗电量低,只有约30瓦,非常适合部署在运算资源有限的边缘装置上,来发展AIoT应用。他认为,从AI模型下手改良,使用者不必受限於晶片设计,等於企业不必客制化或采用小奈米晶片来执行特定AI模型,用低成本的硬体设备也能享有高准确度的模型效果。
YOLOv7核心开发者中研院助研究员王建尧进一步解释,YOLOv7因为架构精简,采用非常少的运算单元,因此可直接在硬体上取样,不需额外的运算单元。而越少运算单元,就能使用更简单的架构来设计晶片;因为,晶片8、9成的电路面积,都属於控制单元,这些控制单元专门连接所有运算单元,让这些运算单元能互相沟通,所以,只要运算单元越简单,控制电路也就越简单,晶片设计也就越单纯。再加上,模型使用运算密度高的3×3卷积,能进一步减少硬体运算资源。
这说明,低阶设备采用高准确度模型的门槛降低了,一般边缘装置更容易部署物件侦测模型,也更容易推广到各种应用场景,比如疫情时的社交距离侦测、零售商场人流侦测、路况侦测、基础设施损坏侦测等。这也意味着,设计精简的AI模型,能更容易将AIoT更普及到生活中。
相关报导