CCF BDCI|算能赛题决赛选手说明论文-02

文章介绍了如何在TPU平台上优化人群密度估计算法,通过对比预训练模型、调整数据预处理、模型输入大小和量化方法,实现了精度与速度的平衡。团队通过网格搜索和人工先验知识,选择了VGG模型并取得了B榜第二的成绩。比赛中,他们认识到INT8量化可能带来的精度损失,并表达了对国产TPU工具更深入学习的愿望。
摘要由CSDN通过智能技术生成
周伟伟
 智能边缘事业部&算法工程师
 天翼云科技有限公司
 中国-广州
 zhouweiwei@chinatelecom.cn
黄宇生
智能边缘事业部&算法工程师
 天翼云科技有限公司
中国-广州
 huangyush@chinatelecom.cn
林瑞玉
智能边缘事业部&算法工程师
 天翼云科技有限公司
中国-广州
 linry@chinatelecom.cn

团队简介

深藏blue团队成员来自于天翼云科技有限公司智能边缘事业部大数据与AI产品线。团队成员包括周伟伟、黄宇生、林瑞玉,成员长期从事人工智能算法开发,在计算机视觉方向积累了丰富的经验。

摘要

人群密度估计是计算机视觉中的一项重要任务,旨在同时识别各种情况下的任意大小的目标,包括稀疏和杂乱的场景。它主要应用于现实生活中的自动化公共监控,能够在公共安全管理、公共空间设计、数据收集分析等方面发挥重要的作用。

“基于TPU平台实现人群密度估计”比赛致力于人群密度估计算法在算能TPU平台的落地,对于给定的预训练模型,通过优化预处理、模型推理方式、模型量化等,兼顾推理精度与推理速度。本赛题的难点在于精度和推理速度的平衡,对于给出的四个预训练模型,我们先通过同等输入大小和同等预处理下,分别比较FP32和INT8模型的综合分数,选择VGG作为后续模型;引入网格搜索的方法,进行最优参数区间确定;结合人工先验知识,确定最后的预处理方法和推理形式。与官方的基线模型相比,我们的方案取得了非常显著的综合提升,最终获得了B榜排名第二的成绩。

关键词

人群密度估计,TPU,算能

1. 赛题分析

人群密度估计与计数是指对拥挤场景中人群分布及数量进行统计,对安全系统、交通控制等具有重要意义。

本赛题不需要参赛选手训练人群密度估计模型,给定4个预训练模型CANNet【1】、CSRNet[2]、MCNN[3]、VGG[4],选手需要通过实验自主选择预训练模型,在数据预处理、模型输入、模型量化等几个方面进行优化,兼顾推理精度和推理速度。算法推理过程需要在算能云空间中使用TPU卡实现,可选的模型格式包括FP32和INT8的BModel。

评测指标包括精度和速度两个方面:

在精度方面,通过Mean Absolute Error(MAE)、Root Mean Squared Error(RMSE)和Normalized Absolute Error(NAE)三个指标评估模型精度。

在速度方面,通过模型推理时间TIME评估模型性能,为数据集图片推理的平均时间,单位为s。

最终得分计算公式为:

SCORE=(250-MAE)*0.2+(500-RMSE)*0.1+(0.4-NAE)*200+(2-TIME)*100

从分数加权公式可以看出,对于推理精度有多方位的考察,推理速度占据了较高的权重。

因此,在处理该赛题时不能一味追求精度或者速度,必须在两者之间取得平衡。

2. 解决方法

我们认真分析了数据集与任务的特点,从数据处理、模型选取、量化方式、推理方式几个层面进行优化。

2.1 数据分析

图1:测试图片0067.jpg 

图2:测试图片0009.jpg 

图3:测试图片0008jpg 

通过分析测试数据集的特点,发现存在着不同尺度、不同数量级人群密度的图片,如图1、图2和图3,人群密度相差巨大,大密度的图片尺寸往往也较大。 对于人群密度估计模型,能搞较好处理图1、图2这类目标面积较大的图片。由于卷积神经网络下采样作用,会使得原始图片上的区域在经过卷积后尺寸变小,图3中的人头区域将会丢失特征,导致无法获得准确计数,因此有必要将大尺寸图片进行分割后进行推理,同时,为保证高密度人群图片的推理效果,不适宜将图片缩放至统一尺寸,而应该缩放到一个区间内,使得原始尺寸较大的图片缩放后也有较大尺寸。

按照通用经验,先对数据集进行尺寸和宽高比分析,有助于确定模型的输入大小或者比例。

图4:测试图片宽度直方图 

图5:测试图片高度直方图 

图6:测试图片宽高比直方图 

由图4可知,大部分图片宽度集中在500-5000。由图5可知,测试图片的高度集中在4000以内。由图6可知,测试集的宽高比主要分布在1.5附近,因此,选择一个宽高比在1.5左右的模型输入大小,推理图片的缩放形变较小。

2.2 模型选择

本赛题提供了四个预训练权重CANNet、CSRNet、MCNN、VGG,无需训练模型。因此,必须先确定好预训练权重才能更好开展后续优化工作,为此我们采取一种非常直接的方法,即固定数据集、预处理方法、模型输入大小情况下,只更换预训练模型,来测试各个模型在测试数据集上的综合表现。对于本次实验,选用官方给定的10张带标签的图片进行分数计算。将图片的尺寸(H*W)缩放到(576,768)~(2048,2048),模型输入大小为(3,576,768),分别测试FP32和INT8模型的综合分数。由于提供的CANNet权重无法正常加载,故忽略该模型。

模型

FP32

INT8

CANNet

/

/

CSRNet

68.34

65.19

MCNN

169.76

161.49

VGG

186.74

177.64

表1:4个预训练权重在相同条件下的得分

通过表1可以得出VGG和MCNN均远高于CSRNet的得分,且VGG综合表现优于MCNN,因此选择VGG作为后续实验的预训练模型。

2.3 参数选择

在确定模型结构之后,需要确定模型输入大小。此外,根据先前的分析,需要将大图切割成小图再输入模型进行推理,因此,原始图片缩放范围也是一个重要的超参数。经过总结,确定以下参数可能会影响综合得分。

参数名称

作用

模型输入大小

影响推理速度与精度

Batch Size

影响推理速度

图片缩放范围

影响推理数量和精度

FP32或INT8

影响推理速度与精度

表2:影响综合得分的因素

由于将模型进行INT8量化需要一定时间,包含在参数搜索中将耗费较长时间,且根据先前模型选择实验,INT8综合分数通常低于FP32,因此在进行网格搜索时只考虑模型输入大小,Batch Size和图片缩放范围,后续确定超参数后再进行量化过程的优化策略。

对于模型输入大小,采取16的倍数,从112x112到576x768,选取几个有代表性的输入尺寸作为搜索范围。Batch Size从1到16,逐次乘以2。测试图片的宽度在500-5000,高度集中在4000以内,因此选择宽度最小值一半左右且为16倍数的位置作为最小搜索尺寸,即288。最大尺寸同样选择介于宽高最大值4000~5000一半的位置,选取2048这个值作为最大搜索尺寸。参数搜索范围如表3所示。

参数名称

参数范围

模型输入大小

[H,W]

[[112,112],[144,144],[144,192],

[224,224],[288,384],[576,768]]

Batch Size

[1,2,4,8,16]

图片缩放范围

[minH,minW,

maxH,maxW]

[[224,224,768,768],

[288,384,1024,1024],

[288,384,2048,2048],

[432,576,1536,1536],

[576,768,2048,2048]]

表3:网格搜索参数范围

使用以上参数在10张测试图片上进行实验,得到每组参数的综合分数。

在经过网格参数搜索后,可得到以下结论:

  1. Batch Size对推理速度影响较小,Batch推理耗时跟单张图片推理几乎是线性关系,因此固定Batch Size为1。
  2. 若模型输入大小一定,随着图片尺寸增加,精度提升,但是切割后小图数量增加导致推理次数增多,速度分降低更快。
  3. 较小的模型输入大小对精度影响较小。

因此,最终选择较小的图片尺寸和较小的模型输入,即:将测试图片统一缩放到最小为288x384,最大为768x768的范围;模型输入大小固定为144x192;Batch Size固定为1。使用上述参数进行实验,基于FP32 BModel模型测试,即可获得较高综合分数。

2.4 模型量化

官方提供了一键量化命令 auto_cali对FP32模型进行量化,需要先生成lmdb数据集,推荐使用200张训练数据集进行校准。

我们尝试了两种方案准备lmdb数据集:

  1. 直接使用200张训练数据集进行校准。
  2. 将200张训练图片按预处理方式进行缩放并根据模型输入大小进行裁剪,得到更多数量的小图,并随机选取不同数量小图进行校准。

对于方案1和方案2,FP32转为INT8综合得分均有所降低,故最终放弃INT8的方案。受限于时间,未能进行更多的尝试。

最终,我们选择将图片统一缩放到最小为288x384,最大为768x768的范围,模型输入大小固定为144x192,Batch Size固定为1,FP32 BModel模型推理作为最终方案,在B榜获得了第二名。

3. 比赛总结

本次比赛我们很快就确定了优化方向,通过分析数据和任务特点确定了可优化的参数和策略,使用网格搜索的方式很快确定了一组较好的参数,获得了显著提升。

通过该比赛了解到人群密度估计模型落地的困难点,针对任务特点设计优化策略,学习使用国产TPU进行量化和推理,使个人算法能力得到较大提升。但是,受限于时间,我们没有对INT8量化造成较大精度损失原因进一步分析,没有更加深入研究官方量化工具中的一些自定义参数,这也限制了分数的进一步提升。希望日后能更加深入理解和使用TPU的量化工具。

致谢

感谢主办方和承办方等各单位提供本次竞赛的平台和资源,在后续的工作中,我们将会更多支持国产框架和芯片,共同推动国内人工智能产业的发展。

参考

[1] Liu W ,  Salzmann M ,  Fua P . Context-Aware Crowd Counting:, 10.48550/arXiv.1811.10452[P]. 2018.

[2]    Li Y ,  Zhang X ,  Chen D . CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes[J]. IEEE, 2018.

[3]  Zhang Y ,  Zhou D ,  Chen S , et al. Single-Image Crowd Counting via Multi-Column Convolutional Neural Network[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016.

[4]   Gao J ,  Lin W ,  Zhao B , et al. C^3 Framework: An Open-source PyTorch Code for Crowd Counting:, 10.48550/arXiv.1907.02724[P]. 2019.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值