广东工业大学学报  2020, Vol. 37Issue (4): 9-14.  DOI: 10.12052/gdutxb.200051.
0

引用本文 

战荫伟, 朱百万, 杨卓. 车辆颜色和型号识别算法研究与应用[J]. 广东工业大学学报, 2020, 37(4): 9-14. DOI: 10.12052/gdutxb.200051.
Zhan Yin-wei, Zhu Bai-wan, Yang Zhuo. Research and Application of Vehicle Color and Model Recognition Algorithm[J]. JOURNAL OF GUANGDONG UNIVERSITY OF TECHNOLOGY, 2020, 37(4): 9-14. DOI: 10.12052/gdutxb.200051.

基金项目:

广东省自然科学基金资助项目(2018A030313802)

作者简介:

战荫伟(1966–),男,教授,博士,主要研究方向为图像处理、人机交互、虚拟现实、增强现实。

通信作者

朱百万(1985–),男,硕士研究生,主要研究方向为图像处理和深度学习,E-mail:2428278928@qq.com

文章历史

收稿日期:2020-04-01
车辆颜色和型号识别算法研究与应用
战荫伟, 朱百万, 杨卓    
广东工业大学 计算机学院,广东 广州 510006
摘要: 针对目前基于机器学习的车辆颜色和型号识别方法的识别准确率低问题, 提出基于卷积神经网络的车辆颜色和型号识别方法。该方法使用Darknet网络中YOLOv3(You Only LookOnce Version 3)算法对车辆图片的车脸进行检测与定位, 再对车脸区域使用车辆颜色和型号识别算法同时识别车辆颜色和型号, 这是对车辆多属性同时识别的方法, 不同于车辆单一属性识别的方法。在公开车辆数据集(Peking University Vehicle Datasets, PKU-VD)上进行实验, 实验结果表明, 车辆颜色和型号同时识别准确率为93.75%, 车辆颜色单一属性识别准确率为94.98%, 车辆型号单一属性识别准确率98.38%, 明显优于基于机器学习的车辆属性识别算法, 从而验证该算法是可行且有效的。最后将车辆颜色和型号识别技术应用在智能停车场收费系统中。
关键词: 车辆颜色识别    车型识别    车脸    卷积神经网络    智能停车场收费系统    
Research and Application of Vehicle Color and Model Recognition Algorithm
Zhan Yin-wei, Zhu Bai-wan, Yang Zhuo    
School of Computers, Guangdong University of Technology, Guangzhou, 510006, China
Abstract: In order to solve the problem of low recognition accuracy of current vehicle color and model recognition methods based on machine learning, a vehicle color and model recognition method based on convolutional neural network is proposed. The method uses YOLOv3(You Only LookOnce Version 3) algorithm in Darknet network to detect and locate the vehicle face, and then the vehicle color and model recognition algorithm based on convolutional neural network is used to identifythe vehicle color and model. This is a multi-attribute recognition method for vehicle, it is different from the recognition method of single vehicle attribute. On public traffic data collection of Peking University Vehicle Datasets experiment, the experimental results show that the vehicle color and model recognition accuracy of 93.75% at the same time, the recognition accuracy of vehicle color is 94.98%, the recognition accuracy of vehicle model attribute recognition is 98.38%, It is obviously better than the vehicle attribute recognition algorithm based on machine learning, the algorithm is proved to be feasible and effective. Finally, the vehicle color and model recognition technology is applied to the intelligent parking fee system.
Key words: vehicle color recognize    vehicle model recognize    vehicle face    convolutional neural networks(CNN)    intelligent parking fee system    

随着现代社会生活水平的不断提高,汽车数量高速增长,交通监管面临巨大挑战[1]。车辆颜色与型号识别已经成为智能交通领域重要的研究内容,为路况分析、拥挤检测、交通事故责任判定等方面提供有力的技术支持,同时也可以将车辆颜色和型号识别技术应用在停车场收费领域。

由于受到光照、摄像机拍摄角度、图像畸变等因素的影响,从而导致基于机器学习的车辆颜色和型号识别方法的识别准确率低。因此,本文提出基于卷积神经网络(Convolutional Neural Network,CNN)的车辆颜色和型号识别方法,首先使用Darknet网络中的YOLOv3(You Only LookOnce Version 3)[2]算法对车脸区域进行检测和定位,然后利用改进的VGGNet[3]网络模型提取车脸的特征,最后利用Softmax分类器训练特征实现对车辆颜色和型号的分类识别。

2006年以卷积神经网络为主体的深度学习模型的提出在图像识别任务上取得了重大突破[4]。卷积神经网络包括:输入层、卷积层、池化层、全连接层和Softmax层。输入层是整个神经网络的数据输入;卷积层是卷积神经网络中的核心部分,它将神经网络中的每一个小块进行更加深入的分析从而得到抽象程度更高的特征;池化层夹在连续的卷积层中间,用于压缩数据和减少参数的数量,有效控制过拟合,根据计算方式不同,分为最大池化层、局部平均池化层和全局平均池化层;全连接层在整个卷积神经网络中起到“分类器”的作用;Softmax层是将分类结果进行归一化。经典的卷积神经网络模型有:AlexNet[5]、ResNet[6]、IceptionNet[7]、MobileNet[8]和VGGNet等。

由于卷积神经网络训练的模型对图像缩放、平移、旋转等畸变具有不变性,且有很强的泛化性,能很好地解决基于机器学习的车辆颜色与型号识别方法识别准确率低的问题。本文提出的卷积神经网络模型还能够同时识别车辆颜色与型号,对该网络模型稍加调整,还可以支持车辆更多属性的同时识别。

1 相关研究

目标检测是在图片中对可变数量的目标进行查找和分类。目标检测的任务是要分割“我们不关心”的背景从而获取“我们所关心”的前景目标[9]。由于视角、遮挡、姿态等因素引起目标发生形变,导致目标检测成为一个具有挑战性的任务[10]。车辆检测是目标检测在智能交通系统中的重要应用之一,受到国内外研究者的广泛关注。车辆可以通过典型的外观特征进行检测,诸如颜色、车脸等。目前常用的车辆检测方法分为2类:传统方法和基于深度学习的方法。文献[11]采用方向梯度直方图(Histogram of Oriented Gradient,HOG)方法提取图像中的车辆类型特征,再利用支持向量机(Support Vector Machine,SVM)对这些特征进行分类,从而实现车辆检测。文献[12]提出基于可变阈值的三角模式识别方法用于车辆检测,取到良好的检测效果。文献[13]使用背景差分法实现车辆检测,解决背景的复杂性问题,提高对多车道上运动车辆检测的正确率。国内对车辆检测的研究也不断跟进与发展:文献[14]提取车脸HOG特征,用投影定位和形态学粗定位相结合的方法提取视频中车脸区域;文献[15]提出可变形部件模型(Deformable Part Model,DPM)用于车辆检测,很好地解决光照因素对检测结果的影响,同时在模糊可视性方面占有较大的优势,具有极高的检测正确率。传统的车辆检测方法虽然具有较高的检测正确率,但是这些方法都存在几个问题,概括如下:手动设计的特征不鲁棒会导致分类错误率高;通过滑动窗口方式提取目标框,并对目标框进行分类判定,这个过程繁琐且耗时。

2012年,随着卷积神经网络的兴起,使用卷积神经网络进行车辆检测开始成为研究热点。文献[16]结合Faster-RCNN、VGG16和ResNet-152进行车辆检测,虽然取得较好的车辆检测准确率,但是检测速度慢,无法满足车辆检测实时性要求。本文选择使用Darknet网络中YOLOv3算法实现对车脸的检测,并对YOLOv3网络结构进行优化,实现对车脸快速、准确的检测。

文献[17]提出稀疏SIFT特征的车型识别方法,但是SIFT实时性不强,对边缘光滑目标的特征点提取能力较弱,从而影响车型识别准确率。文献[18]提出通过提取车辆图像的车脸特征,训练SVM网络模型来进行套牌车型识别,但是遮挡、环境等干扰因素的影响导致车型识别准确率大幅降低。文献[19]针对交通执法摄像系统中车辆颜色识别问题,提出了一种基于多分类器组合的车辆颜色识别方法,但该方法不仅操作步骤复杂,而且耗时较长。文献[20]提出基于多颜色空间卷积神经网络的车辆颜色分类,但是针对车辆颜色单一属性的识别算法。

本文提出基于卷积神经网络的车辆颜色与型号识别方法,不仅解决了传统的机器学习的识别方法识别准确率低问题,而且支持车辆颜色和型号2种属性的同时识别。

2 算法流程

本文提出的车辆颜色与型号识别算法包括2个步骤:首先是从监控视频中实时检测出车脸区域,然后对车脸区域进行车辆颜色与型号识别。

2.1 车脸检测方法

YOLO算法最初是由REDMON等[21]在2016年提出的一种基于回归的目标识别方法,到2018年已经发布YOLOv3。YOLOv3是速度与精度最均衡的目标检测网络,它在YOLOv2的基础上进行一些适应性的改进,包括多尺度识别、多标签分类等,并使用基于ResNet网络改进的DarkNet-53网络作为特征提取器,使YOLO系列方法不擅长识别小物体的缺陷得到了改善[22]。YOLOv3依旧保持YOLOv2的快速检测的优点,并且检测准确率也得到很大的提高。

由于基于视频的车辆检测对检测准确率和实时性都有较高要求,虽然大多数车辆检测方式能够保证检测准确率,但是车辆检测速度远远达不到视频检测的要求。因为YOLOv3算法具有较快的检测速度和高准确率,所以本文使用YOLOv3算法实现基于视频的车辆检测功能。

训练YOLOv3网络模型时,BN层能够加速网络收敛,有效地控制过拟合,一般放在卷积层之后。BN层将数据归一化后,有效解决梯度消失与梯度爆炸问题。虽然BN(Batch Normalization)层在网络训练时有着积极作用,但在网络前向推断时增加一些层的运算,从而影响了模型的性能。因此,需要将BN层的参数合并到卷积层,来提升模型前向推断的速度。合并前BN层计算公式如式(1)所示。

${x_{{\rm{out}}}} = \frac{{\gamma \left(\sum\limits_{i = 0}^n {({x_i} {w_i})} - u\right)}}{{\sqrt {{\delta ^2}} + 0.000\;001}} + \beta $ (1)

其中, ${x_i}$ 为图像数据, ${w_i}$ 为权重, $\gamma $ 为缩放因子, $\mu $ 为均值, ${\delta ^2}$ 为方差,加上0.000 001是为了防止出现分母为零的情况, $\;\beta$ 为偏置。其中卷积计算公式如式(2)所示。

${x_{{\rm{conv}}}} = \sum\limits_{i = 0}^n {({x_i} {w_i})} $ (2)

为了摆脱BN层,需要将公式(1)进行调整。调整后公式见式(3)。

${x_{{\rm{out}}}} = \sum\limits_{i = 1}^n \left({{x_i} } \frac{{\gamma {w_i}}}{{\sqrt {{\delta ^2}} + 0.000\;001}}\right) - \frac{{\gamma u}}{{\sqrt {{\delta ^2}} + 0.000\;001}} + \beta $ (3)

调整后新的权重参数变为

$w_i^{'} = \frac{{\gamma {w_i}}}{{\sqrt {{\delta ^2}} + 0.000\;001}}$ (4)

调整后新的偏置变为

${\beta ^{'}} = \beta - \frac{{\gamma \mu }}{{\sqrt {{\delta ^2}} + 0.000\;001}}$ (5)

所以调整后公式也可以表示为

${x_{{\rm{out}}}} = \sum\limits_{i = 0}^n {({x_i} w_i^{'}) + {\beta ^{'}}} $ (6)

经过上述调整后就能删除BN层,但是要使用新的权重参数和偏置。

最后,经过测试证明,使用Faster-RCNN算法对车脸进行检测,车脸检测准确率虽然达到95%,但是每秒识别的帧数只有4帧,无法达到基于视频的车辆检测实时性的要求。使用优化后YOLOv3算法车辆检测准确率为97%,每秒识别的帧数为28帧,满足基于视频的车辆检测的所有要求。

2.2 车辆颜色与型号识别方法

VGGNet是牛津大学计算机视觉组合和Google DeepMind公司研究人员一起研发的深度卷积神经网络。VGGNet网络结构如图1所示。

图 1 VGGNet网络结构 Figure 1 VGGNet network structure

VGGNet网络模型具有以下特点:(1) 小卷积核。将卷积核全部替换为3×3。(2) 小池化核。将池化层替换为2×2。(3) 层数更深特征图更宽。VGGNet是卷积神经网络模型AlexNet的扩展。

本文是在VGGNet-16网络模型的基础上进行改进,改进后的网络结构如图2所示。

图 2 改进的VGGNet网络结构 Figure 2 Improved VGGNet network structure

为了减少全连接层参数量和计算量,将VGGNet-16网络模型中倒数第2个和第3个全连接层神经元数量4 096改为2 048,以倒数第2个全连接层为例:修改之前的上层神经元数为4 096,下层神经元数为4 096,全连接层可以视为一种特殊的卷积层,上层为1×1×4 096,下层为1×1×4 096,使用的1×1的卷积核进行卷积操作,计算量为1×1×4 096×1×1×4 096=16 777 216,参数量为1×1×4 096×4 096=16 777 216;修改之后的上层神经元数为2 048,下层神经元数为2 048,计算量为1×1×2 048×1×1×2 048=4 194 304,参数量为1×1×2 048×2 048=4 194 304,计算量和参数量都减少3/4,这也加快了神经网络模型训练的速度。

为了能够同时识别车辆颜色与型号,将最后一个全连接层替换为多分支的全连接层。

3 实验结果与分析 3.1 车辆数据集的构建

本文选用的数据集名称为PKU-VD[23],该数据集包含了2个大型车辆数据集(VD1和VD2)。其中VD1是从高分辨率交通摄像头获得的,VD2中的图像则是从监视视频中获取的。为了保护隐私,所有车牌号码都已被黑色覆盖遮挡。所有车辆图像均从前视图进行拍摄。本文选用了数据集中154 248张车辆图片,分别手动标注车辆颜色和车型,共有18 946辆车,训练集有138 670张车辆图片,测试集有15 578张车辆图片,两者比例约为9∶1。所用数据集中含有9种车辆颜色和1 112款车型。

3.2 实验环境说明

本次实验所需要硬件设备是图像处理服务器、它的硬件信息:Intel(R) Core(TM) i7-8700 CPU @ 3.20 GHz,GeForce GTX 1060 6G,SAMSUNG M393A2K DDR4 2666Mhz 16G。图像处理服务器安装的系统是Ubuntu16.04版本64位操作系统,本次实验使用的程序是Vehicle Color And Model Recognize,使用的深度学习平台为Pytorch[24]

本次训练网络的初始化参数是:学习率为0.001,权值衰减值为0.000 000 1,动量为0.9。

3.3 实验结果与分析

在深度学习中,识别准确率是用来评判分类的结果好坏,损失函数值是用来衡量数据拟合程度,它们都是衡量模型好坏的重要指标。

基于改进的VGGNet网络进行迭代训练28次,车辆颜色与型号识别准确率的变化情况如图3所示。

图 3 网络模型训练过程中准确率变化情况 Figure 3 The change of accuracy in network model training

损失函数值衡量数据的拟合程度。一般情况下,损失函数值越小,说明网络模型的鲁棒性就越好。在网络训练过程中损失函数值变化情况如图4所示。

图 4 网络训练过程中损失函数值变化情况 Figure 4 The change of loss function value during network training

图4所示,在网络训练过程中损失函数值未出现抖动,当迭代次数超过27次时,损失函数值几乎接近于零,说明该模型鲁棒性较好。

本文提及文献[18]是使用基于机器学习的识别方法对车型进行识别,按照文献[18]介绍的方法首先训练好网络模型,其次对测试集15578张车辆图片进行车型预测,然后计算预测结果准确率。计算结果为82.19%,这与本文设计的识别方法对比情况如表1所示。

表 1 车型识别准确率对比情况 Table 1 Comparison of vehicle model recognition accuracy results

表1所示,基于改进VGGNet网络的车型识别准确率明显高于文献[18]的识别方法。

文献[19]使用基于机器学习的识别方法对车辆颜色进行识别,首先对138 670张车辆图片进行车脸检测与定位,提取车脸区域的颜色直方图作为特征向量,将特征向量值和其对应的车辆颜色存入训练样本数据库,调用OpenCV自带的训练函CvSVM:train对训练样本数据库进行训练,训练完成后保存好网络模型;其次对15 578张车辆图片进行进行车脸检测和定位,提取车脸区域的颜色直方图作为特征向量,然后用训练好的网络模型来预测车辆颜色。测试完成后,对车辆颜色识别准确率进行计算,计算结果为85.32%,这与本文设计的识别方法对比情况如表2所示。

表 2 车辆颜色识别准确率对比情况 Table 2 Comparison of vehicle color recognition accuracy results

表2所示,基于改进VGGNet网络的车辆颜色识别准确率明显高于文献[19]的识别方法。

4 车辆颜色与型号识别算法的应用

本文将上述研究的技术应用在智能停车场收费系统中。将训练好的网络模型保存在网络模型文件中,车脸检测网络模型文件为vf_yolov3.weight,车辆颜色和型号识别的网络模型文件为epoch_all_10.pth。

图像处理服务子系统是使用Python语言开发的,它是部署在图像处理服务器,首先图像处理服务子系统启动时加载车脸检测网络模型文件、车辆颜色和型号识别网络模型文件,该子系统在运行过程中对车道视频出现的车脸进行实时检测,并将车脸检测结果实时推送给停车场车道管理子系统;其次车辆经过车道触发地感时,停车场车道管理子系统发送车辆识别请求,图像处理服务子系统接收车辆识别请求后,对车辆颜色与型号进行识别,并将识别结果返回给停车场车道管理子系统;然后停车场车道管理子系统将车辆颜色与型号识别结果显示在程序界面上。智能停车场收费系统中车脸检测、车辆颜色识别、车型识别的功能如图5所示。

图 5 车辆颜色与型号识别效果 Figure 5 The effect of vehicle color and model identification
5 总结

针对目前基于机器学习的车辆颜色和型号识别方法的识别准确率低问题,提出基于卷积神经网络的车辆颜色和型号识别方法,首先使用改进的YOLOv3算法对车辆图片的车脸区域进行又快又准的检测,然后使用改进的VGGNet算法同时识别车辆颜色和型号。最后将车辆颜色与型号识别技术应用在智能停车场收费系统中,实现智能停车场收费系统车脸实时检测、车辆颜色识别、车型识别等功能。车辆颜色和型号是很重要的车辆属性,它为车辆身份识别提供重要的补充信息,提高车辆身份识别的可靠性。

参考文献
[1]
邓柳. 基于深度卷积神经网络的车型识别[D]. 成都: 西南交通大学, 2015.
[2]
REDMON J, FARHADI A. YOLOv3: an incremental improvement[C]//2018 IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE Computer Society, 2018: 89-95.
[3]
SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[C]//Proceedi ng of the 3rd International Conference on Learning Representations. SanDiego: ICLR, 2015: 1409-1556.
[4]
陈旭, 张军, 陈文伟, 等. 卷积网络深度学习算法与实例[J]. 广东工业大学学报, 2017, 34(6): 20-26.
CHEN X, ZHANG J, CHEN W W, et al. Convolutional neural network algorithm and case[J]. Journal of Guangdong University of Technology, 2017, 34(6): 20-26. DOI: 10.12052/gdutxb.170093.
[5]
KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks[C]//26th Annual Conference on Neural Information Processing Systems. Lake Tahoe: Neur al Information Processing System Foundation, 2012: 1097-1105.
[6]
HEK, ZHANG X, REN S, et al. Deep residual learning for imagerecognition[C]//2016 IEEE Conference on Compute rVision and Pattern Recognition. Las Vegas: IEEE Computer Society, 2016: 770-778.
[7]
SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolueons[C]//2015 IEEE Conference on Computer Visi onand Pattern Recognition. Boston: IEEE Computer Society, 2015: 1-9.
[8]
HowarD A G, ZHU M, CHEN B, et al. Mobile Nets: efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint, 2017, 32(9): 100-108.
[9]
尹宏鹏, 陈波, 柴毅, 等. 基于视觉的目标检测与跟踪综述[J]. 自动化学报, 2016, 42(10): 1466-1489.
YIN H P, CHEN B, CHAI Y, et al. Vision-based object detection and tracking: a review[J]. Acta Automatica Sinica, 2016, 42(10): 1466-1489.
[10]
李旭冬, 叶茂, 李涛. 基于卷积神经网络的目标检测研究综述[J]. 计算机应用研究, 2017, 34(10): 2881-2886.
LI X D, YE M, LI T. Review of object detection based on convolutional neural networks[J]. Application of Computer Research, 2017, 34(10): 2881-2886. DOI: 10.3969/j.issn.1001-3695.2017.10.001.
[11]
LAOPRACHA N, SUNAT K. Comparative study of computational time that HOG-Based features used forvehicle detection[C]//2017 International Conference on Computing and Information Technology. Helsinki: IEEE Computer Society, 2017: 275-284.
[12]
El-KHOREBY MOHAMED, ABU-BAKAR SYED. Vehicle detection and counting for complex weather conditions[C]//2017 IEEE International Conference on Signal and Image Processing Applications. Beijing: IEEE Computer Society, 2017: 425-428.
[13]
MAQBOOL S, KHAN M, TAHIR J, et al. Vehicle Detection, Tracking and Counting[C]// 2018 IEEE 3rd International Conference on Signal and Image Processing (ICSIP). Shenzhen: IEEE, 2018: 126-132.
[14]
张红兵, 李海林, 黄晓婷, 等. 基于车前脸HOG特征的车型识别方法研究与实现[J]. 计算机仿真, 2015, 32(12): 119-123.
ZHANG H B, LI H L, HUANG X T, et al. Research and implementation of vehicle-type recognition method based on HOG features of vehicle frontal face[J]. Computer Simulation, 2015, 32(12): 119-123. DOI: 10.3969/j.issn.1006-9348.2015.12.025.
[15]
PAN C, SUN M, YANZ. The study on vehicle detection based on DPM in traffic scenes[C]//2016 International Conference on Frontier Computing. Tokyo: FC, 2016: 19-27.
[16]
SANG J, GUO P, XIANGZ, et al. Vehicle detection based on faster-RCNN[J]. Journal of Chongqing University, 2017, 40(7): 32-36.
[17]
张鹏, 陈湘军, 阮雅端, 等. 采用稀疏SIFT特征的车型识别方法[J]. 西安交通大学学报, 2015, 49(12): 137-143.
ZHANG P, CHEN X J, RUAN Y D, et al. A vehicle classification technique based on sparse coding[J]. Journal of Xi'an Jiaotong University, 2015, 49(12): 137-143.
[18]
贾晓. 套牌车辆的车型识别与检索技术研究[D]. 大连: 大连海事大学, 2016.
[19]
TANG Y, ZHANG C Z, GU R S, et al. Vehicle detection and recognition for intelligent traffic surveillance system[J]. Multimedia Tools & Applications, 2017, 76(4): 5817-5832.
[20]
李慧, 利齐律, 程良伦, 等. 基于多颜色空间卷积神经网络的车辆颜色分类[J]. 工业控制计算机, 2019, 32(11): 78-82.
LI H, LI Q L, CHENG L L, et al. Convolutional neural network based on multi-color space for vehicle color classification[J]. Industrial Control Computer, 2019, 32(11): 78-82. DOI: 10.3969/j.issn.1001-182X.2019.11.033.
[21]
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE Computer Society, 2016: 779-788.
[22]
陈正斌, 叶东毅, 朱彩霞, 等. 基于改进YOLOv3的目标识别方法[J]. 计算机系统应用, 2020, 29(1): 49-58.
CHEN Z B, YE D Y, ZHU C X, et al. Object recognition method based on improved YOLOv3[J]. Computer Systems and Applications, 2020, 29(1): 49-58.
[23]
YAN K, TIAN Y, WANG Y, et al. Exploiting multi-grain ranking constraints for precisely searching visually-similar vehicles[C]//2017 IEEE Conference on Computer Vision. Venice: IEEE, 2017: 562-570.
[24]
PASZKE A, GROSS S, MASSA F, et al. PyTorch: an imperative style, high-performance deep learning library[C]//33rd Conference on Neural Information Processing Systems (NeurIPS 2019). Vancouver: Curran Associates, 2019: 8024-8035.