一眼揪出你有没有超速!世界第一对象侦测技术:YOLOv4

“只要让我看一眼,我就知道这是什么!”(You Only Look Once,YOLO)YOLO,是目前当红的AI对象侦测算法。中研院信息科学研究所所长廖弘源及博士后研究员王建尧,与俄罗斯学者博科夫斯基(Alexey Bochkovskiy)共同研发最新的YOLO第四版(简称YOLOv4),一举成为目前全世界最快、最高精准度的对象侦测系统,引爆全球AI技术社群,已改写对象侦测算法的发展。究竟,他们对算法动了哪些手脚?又是什么样的契机,打开这项研究?

产业出难题,学界来解题

故事是从产学合作开始。前几年,科技部提出“产学共创”机制:产业出题、学界解题,中研院合作对象义隆电子,出了一个考题给信息所:如何增进十字路口的交通分析?也就是即时侦测车流量、车速等等。当时义隆电子已在十字路口架设监视器,包括全景摄影机及单一方向枪型摄影机,接下来最需要的,就是识别车辆的对象侦测技术。

“但我们需要的不只是识别车辆”,王建尧说。马路运行中的车速度很快,对象识别必须非常即时,短时间内就能识别出车辆,并能持续关注,计算车速。换句话说,这个技术对对象的侦测必须“快、狠、准”。此外,因为图片资料不断产生,如果把资料都上传云计算,不但比较耗时,也会给云计算计算机带来太大负担,因此这个侦测技术还得做到一件事──计算量必须够小,小到可装在十字路口监视器上的小型计算器,即可完成对象侦测的任务。

要做到交渠道况的即时分析,必须有一种速度快、能精准识别,但又可应用在生活小型计算器的对象侦测技术。

YOLOv4算法就做到不可能的任务!它是目前世界最快、最精准的对象侦测算法,又能小到放在十字路口的监视器内,已实际应用于如“智慧城市交通车流解决方案计划”,即时侦测车辆、停等车列、车速等等。

对象识别的阿基里斯腱:梯度消失问题

怎么办到的?首先,王建尧着手研究著名对象侦测系统YOLOv3,“我们想找出创建对象侦测系统时,哪个步骤最关键?如果改善,效率和精确度会提升最多?”廖弘源强调:“虽然是工程问题,但我们要把科学思考带来来。”

先来认识对象侦测技术。它是卷积神经网络(Convolutional Neural Network, 简称CNN),具许多网络层,每层负责抽取某些图像特征。一个输入的图片通过层层层层层层……分析,最后找出最有可能的答案。理论上,层数越多,判断结果应该越精确。

先教计算机定义每个图片的值,再通过神经网络的层层非线性函数运算,判断图片最可能为哪个数字,信心水准比值最高者为答案。(Source:李宏毅)

训练卷积神经网络的方法是:先倒入大量已标记正确答案的学习材料(如标记好各种车辆的图片),让机器学习如何判断。每次机器判断结果与正确答案不符,就将这个信息反馈到前面网络层,调整每层参数,以期下次达到更准确的判断。

那么,哪步改善后可大幅提升表现?王建尧找到的关键是:学习的反馈过程。当卷积神经网络的网络层数愈多,在训练阶段因反馈计算方式,每回传一层就会损失一些信息,越前面的网络层学到的东西越少,称为“梯度消失问题”(vanishing gradient problem)。

为了解决梯度消失问题,前人曾经提出ResNet、DenseNet等卷积神经网络,简单来说,即是将后面资料备份后往前“跳级”传递。以ResNet为例,可想象成“含水传话”,从最后一个人往前传,愈前面的人信息愈缺失。但如果最后一层开始,每层都备份录音,再把录音跳过一层直接往前传,那么前面所有层都可接收信息,前面网络层就不会学不到东西。

上图为原始的卷积神经网络(CNN),假设只有3层,资料回传过程会逐层递减,称为梯度消失问题。下图为改良版ResNet,从最后一层开始,每层都备份,再把备份越过一层“跳级”传递,前面网络层就能接收到后面的信息。(Source:王建尧)

然而ResNet有太多重复拷贝,不但浪费计算量,且不同层的参数学习重复多余的信息,换句话说,每层能学到的东西都差不多。“是否有更好的方式,不改参数量,让机器运算变快,省下来的资源(参数)还能让机器多学一点,提高精确度?”廖弘源说。

不只最快,还要最精准

2019年年初,廖弘源与王建尧团队首先研发出局部残差网络PRNet(partial residual networks,PRNet),将信息“分流”,减少无谓计算量,使运算速度增加两倍。“一开始做出PRNet,我还是觉得效果不够好。虽然减少计算量,大幅加快计算速度,但正确率和原本相比并没有提升太多。”廖弘源自信的说:“我觉得这样没什么意思,因为我们的目标,是做出全世界最好的对象侦测技术!”

2019年11月,在PRNet的基础上,紧接着研发出跨阶段局部网络CSPNet(cross stage partial network,CSPNet),利用分割─分流─整合路径,成功做到大幅减少计算量,又增加学习多样性的目标。

从PRNet与CSPNet,一步步把对象侦测计算量降低,但学习却更多样,因此也得到更高精确度。

以上为CSPNet简化结构的一部分,三色箭头代表机器学习过程,后面资料如何反馈往前传。设计重点在于信息分流与多了过渡层(Transtion),让反馈的学习信息在分流后产生差异,提高每网络层参数的利用率,目标是让机器学到更多样东西,提高判断精确度。另一方面因资料分流的关系,有部分直接往后传,不经过分析计算,使整个计算量变少,运算速度也因此加快。(Source:王建尧)

“我们发布CSPNet之后,吸引了YOLO技术的维护者博科夫斯基(Alexey Bochkovskiy)的注意”,廖弘源说。他们很快与博科夫斯基(Alexey Bochkovskiy)展开合作,将CSPNet用于开发新一代YOLO,并于今年4月发布YOLOv4,成为目前全世界最快、最准的对象侦测技术,引爆全球AI社群。廖弘源笑说:“我们4月发布的论文,短短不到3个月,阅读次数就超过1,400次,比我以往发布的任何论文都多。”关键技术正是CSPNet。

此外,由于YOLOv4技术开源,各式各样的应用也如雨后春笋般快速出现。举例来说,YOLOv4可即时侦测人们的社交距离,或是快速判断路上行人有没有戴口罩。

计算社交距离。

YOLO v4甚至能识别并捕捉滑雪中的人,廖弘源进一步解释:“滑雪的人姿势以及运动轨迹都不断变换,甚至可能抛物线飞起,侦测难度相当高,但YOLOv4都能关注非常精准。”

捕捉滑雪运动的人。

带学生的第一要求:把科学带来来

中研院信息所所长廖弘源长期研究多媒体视频处理,从鸡尾酒浮水印到脸部数据库、数字化视频修补等,再到这次YOLOv4对象侦测技术,研究成果卓越。每项成果背后,都是廖弘源带领信息所前后届学生一起努力的成果。

想在廖弘源的实验室工作,可不是件轻松的事。他说:“做研究,不该只想着工程问题,应该本着科学家的精神,找出最具科学价值的关键下手。”许多学生一到廖弘源的实验室,必须将过去狭隘、僵化的工程解题模式打掉重练,重新以科学看待问题。例如本次YOLOv4的成功关键,即在于一开始问了个好问题,找到最值得改善的环节。

不论面对何种问题,我的第一个要求,就是把科学带来来。

尽管治学甚严,个性海派的廖弘源和学生也有也师也友的关系。他喜欢和学生一起找出好的研究议题后,一起埋首投入研究工作的热血感,也喜欢在研究遭遇瓶颈时,与学生一起“大吃一顿解忧愁”。如今学生遍布国际级知名公司与研究单位,持续发挥“廖式思考”的深刻影响力,开发更多如YOLOv4顶尖的科研成果。

虽然团队屡屡创造具商机的研究成果,但廖弘源对奖项或是申请专利等却看得很淡。“我的目的本来就不是赚钱,”廖弘源说:“我只希望我们对世界的好奇与探索,能真正转化为对人类的贡献。”

左起为义隆电子叶仪皓董事长、中研院周美吟副院长、中研院信息所廖弘源特聘研究员、中研院信息所王建尧博士后研究员、科技部前瞻司杨琇雅司长、台大人工智能研究中心陈信希主任、杜维洲首席执行官。(Source:中研院秘书处)

(本文由研之有物授权转载;首图来源:pixabay)