一种基于混合精度量化的行人跌倒检测方法及存储介质
技术领域
本发明涉及计算机视觉技术领域,尤其涉及一种基于混合精度量化的行人跌倒检测方法及存储介质。
背景技术
行人的跌倒检测是安防系统的重要组成部分,用于检测监控区域中的行人是否处于跌倒状态,及时发现监控区域中的处于跌倒状态的行人,采取相应的措施。目前,神经网络模型被应用于行人跌倒检测。
现有的神经网络模型都有一个特点,即大而复杂、适合在服务器端进行推理,并不适合应用在手机、摄像头等移动端嵌入式设备中,而工业应用场景中又通常需要将这些复杂的模型部署在一些低成本的嵌入式设备中,为了解决这个问题,模型量化应运而生,它可以在损失少量精度的前提下对模型进行压缩,使得将这些复杂的模型应用到手机、机器人等嵌入式终端中变成了可能。模型量化主要是通过使用定点数表示模型中的权值(weights)和运行时的激活值(activations)来实现对模型尺寸的压缩和运行的加速。
就目前而言,通常采用混合精度量化来平衡模型推荐精度和模型尺寸。混合精度量化是将神经网络各层的权重量化成不同的精度,如将部分网络层的浮点计算转成低比特定点计算,其它网络层仍采集浮点计算,从而获得体积更小的模型。混合精度量化可以有效降低模型计算强度、参数大小和内存消耗,但往往带来较大的精度损失。
一般来说,智能摄像头内部搭载的模型处理芯片的算力和存储空间都十分有限。如果直接采用浮点型(位宽为32bit)神经网络模型,则会导致模型体积过大,并且会严重影响模型处理的速度。如果采用混合精度量化的低位宽模型(4bbit),虽然模型体积减小了,且处理速度提高了,但是模型运算精度就会收到严重影响。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有行人跌倒检测采用的混合量化精度模型在模型体积、精度和处理速度上都难以达到最佳平衡。
发明内容
本发明的目的在于提供一种基于混合精度量化的行人跌倒检测方法及存储介质,以解决现有技术中存在的现有行人跌倒检测采用的混合量化精度模型在模型体积、精度和处理速度上都难以达到最佳平衡。本发明提供的诸多技术方案中的优选技术方案所能产生的诸多技术效果详见下文阐述。
为实现上述目的,本发明提供了以下技术方案:
本发明提供的一种基于混合精度量化的行人跌倒检测方法,包括:
S1、对获取的行人图像集进行训练,得到浮点型的行人神经网络,对所述行人神经网络进行编码并量化成基础神经网络;
S2、初始化所述基础神经网络,得到K个不同个体,根据所述个体的适应度对K个所述个体的染色体进行选择和交叉操作,生成第一种群;
S3、对所述第一种群中的个体进行博弈变异操作,生成第二种群;
S4、重复步骤S2-S3,直至迭代次数达到预设的最大迭代次数或满足迭代终止条件,从所述第二种群中得到最优混合精度量化的行人神经网络模型。
优选的,步骤S3包括:
S31、将所述行人图像集作为验证数据集,在所述验证数据集上随机选择一定批次的数据进行推理,计算个体推理精度;
S32、随机选择一个个体染色体上的两个基因点位分别进行变异操作,并根据所述验证数据集计算两种变异个体的推理精度;
S33、根据变异前的推理精度和变异后的推理精度分别计算两种变异个体的推理差异值;
S34、所述推理差异值最优的基因点位获得变异机会,另一个基因点位不进行变异。
优选的,步骤S4所述的迭代终止条件为:
种群中存在个体的比特资源≤a*mp且个体的推理精度满足预设推理精度;其中,0.5≤a≤1,mp为个体的参数总量。
优选的,步骤S2中所述适应度的函数为:
适应度=λ*(个体推理精度-基础推理精度)/(个体比特量/基础比特量);其中,λ为大于零的自定义参数;所述基础推理精度为所述基础经网络的推理精度,所述基础比特量为所述基础神经网络的比特量。
优选的,步骤S2所述的初始化所述基础神经网络包括:
S21、将所述基础神经网络作为初始个体,随机选择一个基因点位进行变异得到一个新个体;
S22、所述初始个体再随机选择一个未选择过的基因点位进行变异再得到一个新个体;
S23、重复步骤S22,直到得到K个不同个体。
优选的,步骤S1还包括:将所述行人神经网络中每一个待量化的卷积作为遗传算法的基因点位,所述卷积的位宽作为基因,整个所述行人神经网络作为个体。
优选的,所述基础神经网络为最低位宽神经网络或最高位宽神经网络;所述最低位宽神经网络的所有基因点位均为最低的位宽;所述最高位宽神经网络的基因点位均为最高的位宽。
优选的,当所述基础网络为所述最低位宽神经网络时,规定变异操作的方向为从低比特向高比特进行单步变异,若当前点位对应的卷积位宽已是最高比特的位宽,则当前点位不再参与变异操作;当所述基础网络为所述最高位宽神经网络时,规定变异操作的方向为从高比特向低比特进行单步变异,若当前点位对应的卷积位宽已是最低比特的位宽,则当前点位不再参与变异操作。
优选的,所述方法还包括:通过最优混合精度量化的行人神经网络模型检测行人状态,并输出检测结果。
一种计算机可读的存储介质,所述存储介质上存储有计算机程序,所述计算机程序被执行时实现以上任一项所述的一种基于改进遗传算法的混合精度量化方法。
实施本发明上述技术方案中的一个技术方案,具有如下优点或有益效果:
(1)本发明通过引入遗传算法提高随机搜索的效率,从而可以提高模型的处理速度,从而提高行人跌倒检测速度;
(2)综合考虑量化敏感度和资源利用率,在混合精度量化过程中实现对模型各层的权值和激活值的bit位宽进行合理分配,得到最优秀的神经网络模型;
(3)通过引入博弈论算法改进的遗传算法,将混合精度量化中基于搜素的方法和基于优化的方法进行了综合,使得混合精度量化后的模型能够在模型体积、精度和处理速度上都达到最佳平衡,使得进行行人跌倒检测提升检测速度的同时不带来过大的精度损失。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,附图中:
图1是本发明实施例的一种基于改进遗传算法的混合精度量化方法流程图;
图2是本发明实施例的一种基于改进遗传算法的混合精度量化方法步骤S3的流程图;
图3是本发明实施例的初始化基础神经网络步骤的流程图;
图4为本发明实施例的一种神经网络混合进度量化模型的编码;
图5为本发明实施例的两个待交叉染色体;
图6为本发明实施例的两个交叉后染色体;
图7为本发明实施例的待变异的染色体;
图8为本发明实施例的点位A变异后的染色体;
图9为本发明实施例的点位B变异后的染色体;
图中:图5的虚线框中为待交叉部分;图6的虚线框中为已交叉部分。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下文将要描述的各种示例性实施例将要参考相应的附图,这些附图构成了示例性实施例的一部分,其中描述了实现本发明可能采用的各种示例性实施例。除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。应明白,它们仅是与如所附权利要求书中所详述的、本发明公开的一些方面相一致的流程、方法和装置等的例子,还可使用其他的实施例,或者对本文列举的实施例进行结构和功能上的修改,而不会脱离本发明的范围和实质。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”等指示的是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的元件必须具有的特定的方位、以特定的方位构造和操作。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。术语“多个”的含义是两个或两个以上。术语“相连”、“连接”应做广义理解,例如,可以是固定连接、可拆卸连接、一体连接、机械连接、电连接、通信连接、直接相连、通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明,仅示出了与本发明实施例相关的部分。
实施例一:
如图1所示,本发明提供了一种基于改进遗传算法的混合精度量化方法,包括:
S1、对获取的行人图像集进行训练,得到浮点型的行人神经网络,对行人神经网络进行编码并量化成基础神经网络;其中,智能摄像头拍摄的行人视频,将视频的每一帧转换为行人图像集;
S2、初始化基础神经网络,得到K个不同个体,根据个体的适应度对K个个体的染色体进行选择和交叉操作,生成第一种群,其中,K>2;
S3、对第一种群中的个体进行博弈变异操作,生成第二种群;
S4、重复步骤S2-S3,直至迭代次数达到预设的最大迭代次数或满足迭代终止条件,从第二种群中得到最优混合精度量化的行人神经网络模型。第二种群中适应度最高的个体即为最优混合精度量化的行人神经网络模型,最大迭代次数可根据实际情况进行灵活设置。
本实施例采用通过博弈论算法改进的遗传算法进行混合精度量化,提高了随机搜索的效率,使得混合精度量化后的模型能够在模型体积、精度和处理速度上达到最佳平衡。
作为可选择的实施方式,步骤S1还包括:将行人神经网络中每一个待量化的卷积(如二维卷积、三维卷积、深度分离卷积等)作为遗传算法的基因点位,卷积的位宽作为基因,整个神经网络作为为个体。遗传算法与混合精度量化的对应关系如表1所示:
| 遗传算法 |
混合精度量化 |
| 染色体 |
混合量宽的深度学习神经网络的编码 |
| 基因 |
神经网络中每个卷积的位宽 |
| 个体 |
混合量宽的深度学习神经网络 |
| 种群 |
选定的一组混合量宽的深度学习神经网络 |
| 适应度 |
适应度函数(推理精度、比特量) |
| 选择 |
选取神经网络到下一代系的种群 |
| 交叉 |
不同神经网络的对应卷积相互交换 |
| 变异 |
神经网络的卷积位宽发生变化 |
表1遗传算法与混合精度量化的对应关系
基础神经网络为最低位宽神经网络或最高位宽神经网络;最低位宽神经网络的所有基因点位均为最低的位宽;最高位宽神经网络的基因点位均为最高位宽;最低位宽神经网络为精度最低的神经网络,因此在遗传算法过程中需要提升精度直到能和硬件指标达到最佳平衡,硬件指标关系着模型体积和处理速度能否符合硬件设备要求;而最高位宽神经网络的精度已是最好的,因此在遗传算法中需要适当降低精度直到能和硬件指标达到最佳平衡。当基础网络为最低位宽神经网络时,规定变异操作的方向为从低比特向高比特进行单步变异,若当前点位对应的卷积位宽已是最高比特的位宽,则当前点位不再参与变异操作;当基础网络为最高位宽神经网络时,规定变异操作的方向为从高比特向低比特进行单步变异,若当前点位对应的卷积位宽已是最低比特的位宽,则当前点位不再参与变异操作。假设在某次混合精度量化的过程中,涉及x种量宽,基础神经网络进行4bit、6bit、8bit这3种量宽的混合量化,则x=3,每个基因点位共有3种可选的表现形式,如图4所示;若基础神经网络为最低位宽神经网络,则初始个体的所有基因点位的量宽均为4bit,变异时只能先从4bit变异到6bit,才能从6tit变异到8bit;若基础神经网络为最高位宽神经网络,则初始个体的所有基因点位的量宽均为8bit,变异时只能先从8bit变异到6bit,才能从6tit变异到4bit。
如图3所示,步骤S2所述的初始化所述基础神经网络包括:
S21、将基础神经网络作为初始个体,随机选择一个基因点位进行变异得到一个新个体;
S22、初始个体再随机选择一个未选择过的基因点位进行变异再得到一个新个体;
S23、重复步骤S212,直到得到K个不同个体。
步骤S2中进行选择交叉操作具体为:K个不同可个体组成初始种群,根据适应度对初始种群进行选择操作,使得初始种群被更新;选择操作依据适应度选择再生个体,适应度高的个体被选中的概率高,适应度低的个体可能被淘汰,优良的个体才能够有更大的机会保留到下一代。本实施例的选择操作采用锦标赛选择法。每次随机选择若干个个体,挑选适应度最好的保留下来,迭代M次生成新种群;其中,最差个体一定被淘汰。再对选择操作后的初始种群进行交叉操作,生成第一种群;交叉操作用于结合双亲的遗传信息,以产生后代;本实施例采用单点交叉法,从种群中随机选择两个个体,然后通过单点交叉进行染色体交换;如图6-7所示,染色体1和染色体2点位P部分进行交叉,得到两个子代染色体,两个子代染色体取代染色体1和染色体2进入第二种群;没有进行交叉操作的染色体直接复制进入第二种群;交叉操作能够提高收敛速度,高效的交叉方式能组合两个父代个体的优良基因,构造出更优秀的子代个体。
如图2所示,步骤S3包括:
S31、将行人图像集作为验证数据集,在验证数据集上随机选择一定批次的数据进行推理,计算个体推理精度;
S32、随机选择一个个体染色体上的两个基因点位分别进行变异操作,并根据所述验证数据集计算两种变异个体的推理精度;
S33、根据变异前的推理精度和变异后的推理精度分别计算两种变异个体的推理差异值;
S34、推理差异值最优的基因点位获得变异机会,另一个基因点位不进行变异。
如图7-9所示,随机选择某一染色体的点位A和点位B进行博弈变异操作,得到点位A变异的染色体和点位B变异的染色体,计算两种变异染色体的推理差异值,若以最低位宽神经网络为基础神经网络,推理差异值越大带来的精度提升量更大,则变异越有利;假设点位A变异的染色体的推理差异量更大,说明点位A变异的染色体带来的精度提升量更大,则该染色体的点位A获得变异机会,进行变异,而点位B恢复为原来的位宽,不进行变异。若以最高位宽神经网络为基础神经网络,推理差异量越小带来的精度下降量更小,则变异越有利;同样假设A变异的染色体的推理差异量更大,说明点位A变异的染色体带来的精度下降量更大,不是有利变异,则点位B获得变异机会,进行变异,点位A恢复为原来的位宽,不进行变异。
步骤S4的迭代终止条件为:种群中存在个体的比特资源≤a*mp且个体的推理精度满足预设推理精度;其中,0.5≤a≤1,mp为个体的参数总量。当a=1时,则神经网络的卷积全是8bit量宽;当a=0.5时,则神经网络的卷积全是4bit量宽。为了得到混合量宽的神经网络,可以根据实际情况设定,如a=0.75。
步骤S2中适应度的函数为:
适应度=λ*(个体推理精度-基础推理精度)/(个体比特量/基础比特量);其中,λ为大于零的自定义参数,可以自适应调节适应度值,使得每个个体的适应度有较大的区分度,在进行选择、交叉操作时易于区分;基础推理精度为基础经网络的推理精度,基础比特量为基础神经网络的比特量。
该方法还包括:通过最优混合精度量化的行人神经网络模型检测行人状态,并输出检测结果。
本实施例通过引入遗传算法不但提高了随机搜索的效率和行人跌倒检测速度,还综合考虑量化敏感度和资源利用率,在混合精度量化过程中实现对模型各层的权值和激活值的bit位宽进行合理分配;最重要的是通过引入博弈论算法改进的遗传算法,将混合精度量化中基于搜素的方法和基于优化的方法进行了综合,使得混合精度量化后的模型能够在模型体积、精度和处理速度上都达到最佳平衡,进而使得进行行人跌倒检测提升检测速度的同时不带来过大的精度损失。
实施例仅是一个特例,并不表明本发明就这样一种实现方式。
实施例二:
一种计算机可读的存储介质,存储介质上存储有计算机程序,计算机程序被执行时实现以上任一项所述的一种基于改进遗传算法的混合精度量化方法。
本领域普通技术人员可以理解,实现上述各方法实施例的全部或部分特征/步骤可以通过方法、数据处理系统或计算机程序来实现,这些特征可不采用硬件的方式、全部采用软件的方式或者采用硬件和软件结合的方式来实现。前述的计算机程序可以存储于一种或多种计算机可读的存储介质中,存储介质上存储有计算机程序,所述计算机程序被(如处理器)执行时,执行包括上述的一种基于改进遗传算法的混合精度量化方法实施例的步骤。
前述的可以存储程序代码的存储介质包括:静硬态盘、固态硬盘、随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、光存储设备、磁存储设备、快闪存储器、磁盘或光盘和/或上述设备的组合,即可以由任何类型的易失性或非易失性存储设备或者它们的组合实现。
以上所述仅为本发明的较佳实施例而已,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等同替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明的保护范围。