首页 > 专利 > 北京市商汤科技开发有限公司 > 图像处理方法、装置、智能驾驶系统和车载运算平台专利详情

图像处理方法、装置、智能驾驶系统和车载运算平台   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2018-12-29
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2020-07-31
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-08-02
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2038-12-29
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201811643406.6 申请日 2018-12-29
公开/公告号 CN111383156B 公开/公告日 2022-08-02
授权日 2022-08-02 预估到期日 2038-12-29
申请年 2018年 公开/公告年 2022年
缴费截止日
分类号 G06T1/00G06T1/20G06T1/60G06N3/04 主分类号 G06T1/00
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 27
权利要求数量 28 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2018.06.07陈俊保 等.卷积神经网络的定点化研究. 《信息技术》.2018,(第7期),第94-96、102页. Xi Chen 等.FxpNet: Training a DeepConvolutional Neural Network in Fixed-Point Representation《.2017 InternationalJoint Conference on Neural Networks》.2017,第2494-2501页.;
引用专利 US2018157969A 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 北京市商汤科技开发有限公司 当前专利权人 北京市商汤科技开发有限公司
发明人 温拓朴、程光亮、石建萍 第一发明人 温拓朴
地址 北京市海淀区中关村东路1号院3号楼7层710-712房间 邮编 100084
申请人数量 1 发明人数量 3
申请人所在省 北京市 申请人所在市 北京市海淀区
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
北京同立钧成知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
张子青、刘芳
摘要
本发明提供一种图像处理方法、装置、智能驾驶系统和车载运算平台。该方法包括:根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,获取待处理的图像,控制运算单元根据定点化处理后的网络参数处理图像,得到图像的处理结果。通过对卷积神经网络的网络参数进行定点化,采用2的幂次来定点化表示网络参数,可减少内存占用,提高运算速度。
  • 摘要附图
    图像处理方法、装置、智能驾驶系统和车载运算平台
  • 说明书附图:图1
    图像处理方法、装置、智能驾驶系统和车载运算平台
  • 说明书附图:图2
    图像处理方法、装置、智能驾驶系统和车载运算平台
  • 说明书附图:图3
    图像处理方法、装置、智能驾驶系统和车载运算平台
  • 说明书附图:图4
    图像处理方法、装置、智能驾驶系统和车载运算平台
  • 说明书附图:图5
    图像处理方法、装置、智能驾驶系统和车载运算平台
  • 说明书附图:图6
    图像处理方法、装置、智能驾驶系统和车载运算平台
  • 说明书附图:图7
    图像处理方法、装置、智能驾驶系统和车载运算平台
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2022-08-02 授权
2 2020-07-31 实质审查的生效 IPC(主分类): G06T 1/00 专利申请号: 201811643406.6 申请日: 2018.12.29
3 2020-07-07 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种图像处理方法,其特征在于,包括:
根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数;
获取待处理的图像;
控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。

2.根据权利要求1所述的方法,其特征在于,所述M等于2。

3.根据权利要求2所述的方法,其特征在于,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。

4.根据权利要求3所述的方法,其特征在于,所述将卷积神经网络使用浮点表示的网络参数定点化处理之后,所述方法还包括:
根据所述k与所述j,以及,二进制值映射表,获取所述定点化处理后的网络参数对应的二进制值,所述二进制值映射表用于指示不同k与j取值组合对应的二进制值;
存储所述二进制值。

5.根据权利要求4所述的方法,其特征在于,所述控制所述运算单元根据定点化处理后的网络参数处理所述图像,包括:
控制所述运算单元根据所述二进制值和所述二进制值 映射表,确定所述卷积神经网络的定点化处理后的网络参数;
根据所述卷积神经网络的定点化处理后的网络参数处理所述图像。

6.根据权利要求1‑5任一项所述的方法,其特征在于,所述控制所述运算单元根据定点化处理后的网络参数处理所述图像之前,还包括:
采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正。

7.根据权利要求1‑5任一项所述的方法,其特征在于,所述图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。

8.一种图像处理装置,其特征在于,包括:
参数定点化模块,用于根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数;
图像获取模块,用于获取待处理的图像;
图像处理模块,用于控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。

9.根据权利要求8所述的装置,其特征在于,所述M等于2。

10.根据权利要求9所述的装置,其特征在于,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。

11.根据权利要求10所述的装置,其特征在于,还包括:
存储模块,用于根据所述k与所述j,以及,二进制值映射表,获取所述定点化处理后的网络参数对应的二进制值,所述二进制值映射表用于指示不同k与j取值组合对应的二进制值;存储所述二进制值。

12.根据权利要求11所述的装置,其特征在于,所述图像处理模块,具体用于:
控制所述运算单元根据所述二进制值和所述二进制值 映射表,确定所述卷积神经网络的定点化处理后的网络参数;
根据所述卷积神经网络的定点化处理后的网络参数处理所述图像。

13.根据权利要求8‑12任一项所述的装置,其特征在于,所述装置还包括:
训练模块,用于在控制所述运算单元根据定点化处理后的网络参数处理所述图像之前,采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正。

14.根据权利要求8‑12任一项所述的装置,其特征在于,所述图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。

15.一种智能驾驶系统,其特征在于,包括:车载摄像头,卷积神经网络子系统和控制子系统;其中,所述控制子系统用于:
根据运行所述卷积神经网络子系统的运算单元的定点位宽硬件资源量,将所述卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数;
控制所述卷积神经网络子系统根据定点化处理后的网络参数处理所述车载摄像头采集到的车辆行驶路面的图像,得到所述图像的处理结果;
根据所述图像的处理结果进行车辆智能驾驶。

16.根据权利要求15所述的系统,其特征在于,所述M等于2。

17.根据权利要求16所述的系统,其特征在于,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。

18.根据权利要求17所述的系统,其特征在于,所述控制子系统还用于,根据所述k与所述j,以及,二进制值映射表,获取所述定点化处理后的网络参数对应的二进制值,所述二进制值映射表用于指示不同k与j取值组合对应的二进制值;
还包括:存储子系统;
所述存储子系统,用于存储所述二进制值。

19.根据权利要求18所述的系统,其特征在于,所述控制子系统具体用于,控制所述卷积神经网络子系统根据所述存储子系统中存储的二进制值和二进制值映射表,确定所述卷积神经网络的定点化处理后的网络参数;
根据定点化处理后的网络参数处理所述车载摄像头采集到的车辆行驶路面的图像,得到所述图像的处理结果。

20.根据权利要求15‑19任一项所述的系统,其特征在于,还包括:训练子系统;
所述训练子系统用于,采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正。

21.根据权利要求15‑19任一项所述的系统,其特征在于,所述图像的处理结果包括:车牌识别结果、可行驶区域检测结果、车道线检测结果、车道线属性检测结果、车载摄像头姿态检测结果中的至少之一。

22.一种基于FPGA的车载运算平台,其特征在于,包括:处理器、外部存储器、内存和FPGA运算单元;
所述外部存储器中存储有神经网络的定点化处理后的网络参数,或者,存储有所述神经网络的定点化处理后的网络参数对应的二进制值和查找表,所述查找表用于指示不同的网络参数的幂次值对应的二进制值;定点化处理后的网络参数为采用2的幂次表示的值;所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数;
所述处理器将所述神经网络的定点化处理的网络参数读入所述内存,或者,将根据所述二进制值和所述查找表,查找得到定点化处理的网络参数读入所述内存,将所述内存上的数据和待处理的图像信息输入到所述FPGA运算单元;
所述FPGA运算单元根据待处理的图像信息和定点化处理的网络参数得到移位运算结果,对多次结果求和运算,得到所述图像的处理结果。

23.根据权利要求22所述的平台,其特征在于,所述M等于2。

24.根据权利要求23所述的平台,其特征在于,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。

25.根据权利要求24所述的平台,其特征在于,所述外部存储器中存储有所述k与所述j;
所述查找表指示了不同的k和j的取值组合对应的二进制值。

26.根据权利要求22‑25任一项所述的平台,其特征在于,所述图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。

27.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行权利要求1‑7任一项所述的方法步骤。

28.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1‑7任一项所述的方法步骤。
说明书

技术领域

[0001] 本发明涉及定点化技术,尤其涉及一种图像处理方法、装置、智能驾驶系统和车载运算平台。

背景技术

[0002] 随着深度卷积神经网络技术在计算机视觉识别中的性能提升,卷积神经网络技术越来越频繁的被应用到如图像处理、无人驾驶系统、辅助驾驶系统等产品中。由于卷积神经网络处理的是图像数据,卷积神经网络技术通常应用依赖于高性能的图形处理器(Graphics Processing Unit,GPU),且需要巨大的运算量,消耗较大的内存,因此卷积神经网络技术的应用存在内存资源、硬盘存储资源以及电量消耗较大的问题。

发明内容

[0003] 本发明实施例提供一种图像处理方法、装置、智能驾驶系统和车载运算平台。
[0004] 第一方面,本发明实施例提供一种图像处理方法,包括:
[0005] 根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;
[0006] 获取待处理的图像;
[0007] 控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。
[0008] 在第一方面的一种可行的实施方式中,所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数。
[0009] 在第一方面的一种可行的实施方式中,所述M等于2。
[0010] 在第一方面的一种可行的实施方式中,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。
[0011] 在第一方面的一种可行的实施方式中,所述将卷积神经网络使用浮点表示的网络参数定点化处理之后,所述图像处理方法还包括:
[0012] 根据所述k与所述j,以及,二进制值映射表,获取所述定点化处理后的网络参数对应的二进制值,所述二进制值映射表用于指示不同k与j取值组合对应的二进制值;
[0013] 存储所述二进制值。
[0014] 在第一方面的一种可行的实施方式中,所述控制所述运算单元根据定点化处理后的网络参数处理所述图像,包括:
[0015] 控制所述运算单元根据所述二进制值和所述二进制映射表,确定所述卷积神经网络的定点化处理后的网络参数;
[0016] 根据所述卷积神经网络的定点化处理后的网络参数处理所述图像。
[0017] 在第一方面的一种可行的实施方式中,所述控制所述运算单元根据定点化处理后的网络参数处理所述图像之前,图像处理方法还包括:
[0018] 采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正。
[0019] 在第一方面的一种可行的实施方式中,所述图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。
[0020] 第二方面,本发明实施例还提供一种图像处理装置,用于执行上述第一方面任一可行的实施方式中的图像处理方法,具有相同或相似的技术效果。
[0021] 在第二方面的一种可行的实施方式中,图像处理装置包括:
[0022] 参数定点化模块,用于根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;
[0023] 图像获取模块,用于获取待处理的图像;
[0024] 图像处理模块,用于控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。
[0025] 在第二方面的一种可行的实施方式中,所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数。
[0026] 在第二方面的一种可行的实施方式中,所述M等于2。
[0027] 在第二方面的一种可行的实施方式中,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。
[0028] 在第二方面的一种可行的实施方式中,图像处理装置还包括:
[0029] 存储模块,用于根据所述k与所述j,以及,二进制值映射表,获取所述定点化处理后的网络参数对应的二进制值,所述二进制值映射表用于指示不同k与j取值组合对应的二进制值;存储所述二进制值。
[0030] 在第二方面的一种可行的实施方式中,所述图像处理模块,具体用于:
[0031] 控制所述运算单元根据所述二进制值和所述二进制映射表,确定所述卷积神经网络的定点化处理后的网络参数;
[0032] 根据所述卷积神经网络的定点化处理后的网络参数处理所述图像。
[0033] 在第二方面的一种可行的实施方式中,所述图像处理装置还包括:
[0034] 训练模块,用于在控制所述运算单元根据定点化处理后的网络参数处理所述图像之前,采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正。
[0035] 在第二方面的一种可行的实施方式中,所述图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。
[0036] 第三方面,本发明实施例还提供一种智能驾驶系统,包括:车载摄像头,卷积神经网络子系统和控制子系统;其中,所述控制子系统用于:
[0037] 根据运行所述卷积神经网络子系统的运算单元的定点位宽硬件资源量,将所述卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;
[0038] 控制所述卷积神经网络子系统根据定点化处理后的网络参数处理所述车载摄像头采集到的车辆行驶路面的图像,得到所述图像的处理结果;
[0039] 根据所述图像的处理结果进行车辆智能驾驶。
[0040] 在第三方面的一种可行的实施方式中,所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数。
[0041] 在第三方面的一种可行的实施方式中,所述M等于2。
[0042] 在第三方面的一种可行的实施方式中,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。
[0043] 在第三方面的一种可行的实施方式中,所述控制子系统还用于,
[0044] 根据所述k与所述j,以及,二进制值映射表,获取所述定点化处理后的网络参数对应的二进制值,所述二进制值映射表用于指示不同k与j取值组合对应的二进制值;
[0045] 智能驾驶系统还包括:存储子系统;
[0046] 所述存储子系统,用于存储所述二进制值。
[0047] 在第三方面的一种可行的实施方式中,所述控制子系统具体用于,[0048] 控制所述卷积神经网络子系统根据所述存储子系统中存储的二进制值和二进制值映射表,确定所述卷积神经网络的定点化处理后的网络参数;
[0049] 根据定点化处理后的网络参数处理所述车载摄像头采集到的车辆行驶路面的图像,得到所述图像的处理结果。
[0050] 在第三方面的一种可行的实施方式中,智能驾驶系统还包括:训练子系统;
[0051] 所述训练子系统用于,采用训练数据再次训练包括定点化处理后的网络参数的所述卷积神经网络子系统,以对定点化处理后的网络参数进行修正。
[0052] 在第三方面的一种可行的实施方式中,所述图像的处理结果包括:车牌识别结果、可行驶区域检测结果、车道线检测结果、车道线属性检测结果、车载摄像头姿态检测结果中的至少之一。
[0053] 第四方面,基于FPGA的车载运算平台,包括:处理器、外部存储器、内存和FPGA运算单元;
[0054] 所述外部存储器中存储有所述神经网络的定点化处理后的网络参数,或者,存储有所述神经网络的定点化处理后的网络参数对应的二进制值和查找表,所述查找表用于指示不同的网络参数的幂次值对应的二进制值;定点化处理后的网络参数为采用2的幂次表示的值;
[0055] 所述处理器将所述神经网络的定点化处理的网络参数读入所述内存,或者,将根据所述二进制值和所述查找表,查找得到定点化处理的网络参数读入所述内存,将所述内存上的数据和待处理的图像信息输入到所述FPGA运算单元;
[0056] 所述FPGA运算单元根据待处理的图像信息和定点化处理的网络参数得到移位运算结果,对多次结果求和运算,得到所述图像的处理结果。
[0057] 在第四方面的一种可行的实施方式中,所述定点化处理后的网络参数为M个2的幂次之和,所述M为大于1的整数。
[0058] 在第四方面的一种可行的实施方式中,所述M等于2。
[0059] 在第四方面的一种可行的实施方式中,所述定点化处理后的网络参数为2的k次幂与2的j次幂之和,所述k和所述j均为整数,所述k大于所述j、且所述k与所述j之差小于预设阈值。
[0060] 在第四方面的一种可行的实施方式中,所述外部存储器中存储有所述k与所述j;
[0061] 所述查找表指示了不同的k和j的取值组合对应的二进制值。
[0062] 在第四方面的一种可行的实施方式中,所述图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。
[0063] 第五方面本发明实施例还提供一种电子设备,包括:
[0064] 存储器,用于存储程序指令;
[0065] 处理器,用于调用并执行所述存储器中的程序指令,执行上述第一方面任一可行的实现方式中的方法步骤。
[0066] 第六方面,本发明实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行上述第一方面任一可行的实现方式中的方法步骤。
[0067] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
[0068] 本发明实施例提供一种图像处理方法、装置、智能驾驶系统和车载运算平台,图像处理方法包括:根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,获取待处理的图像,控制运算单元根据定点化处理后的网络参数处理图像,得到图像的处理结果。通过对卷积神经网络的网络参数进行定点化,采用2的幂次来定点化表示网络参数,可减少存储空间占用以及运算过程中对内存空间的占用,节约了FPGA等硬件平台的资源。同时,采用2的幂次来表示网络参数可大大降低运算复杂度,提高运算速度,实现快速实时响应,降低运算过程中的功耗,尤其在运算单元为FPGA等硬件资源有限的硬件时,可解决卷积神经网络无法应用在硬件上或者无法在硬件上实现加速运算的问题。

实施方案

[0077] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0078] 下面结合具体实施例对本发明提供的技术方案进行详细说明。
[0079] 图1是本发明实施例一提供的图像处理方法的流程示意图。本发明实施例的执行主体示例性的可以为图像处理装置、处理器,还可以为应用图像处理方法的任意装置和系统,例如监控系统、智能驾驶系统等。如图1所示,图像处理方法,包括:
[0080] S101、根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理。
[0081] 其中,定点化处理后的网络参数为采用2的幂次表示的值。
[0082] 示例性的,本发明实施例中的运算单元可以为支持定点运算的计算单元,比如FPGA中的数据处理单元DSP等。当运算单元为FPGA等硬件平台时,为了发挥FPGA等硬件平台低功耗、加速运算等方面的综合优势,运算单元的定点位宽资源量通常较为有限。某些情形下,为了实现更低功耗往往会选择尽量小的定点位宽资源量,比如8比特或4比特位甚至更少宽资源量来实现定点运算。然而,定点位宽资源量少往往会影响运算速度,对于要求快速响应甚至是实时响应的平台,例如自动驾驶的车载运算平台等,则需要对卷积神经网络进行适配硬件定点位宽资源量方面的优化,以实现在有限资源平台上的高速运算。
[0083] 卷积神经网络通常包括多个卷积层,用于对待处理的图像进行特征提取,对提取到的特征进行分类,以实现卷积神经网络的各类功能。卷积神经网络中包含有多个网络参数,卷积神经网络中的网络参数的取值决定了卷积神经网络的性能。为提高卷积神经网络的性能,卷积神经网络的网络参数取值的形式通常为浮点数。本发明实施例中的卷积神经网络可以为经过训练的卷积神经网络。但是浮点数形式的网络参数存在占用存储空间,计算复杂度高问题,本发明实施例中对卷积神经网络使用浮点表示的网络参数进行定点化处理,使得定点化处理后的网络参数为采用2的幂次表示的值,一方面减少了网络参数对存储空间的占用,另一方面简化了基于卷积神经网络进行图像处理时所需的运算。
[0084] 例如,采用2的幂次来定点化表示网络参数,在存储时,可仅存储网络参数对应的幂次数值,进而可减少存储空间占用以及运算过程中对内存空间的占用,节约了FPGA等硬件平台的资源。同时,当采用2的幂次来表示网络参数时,对于卷积神经网络中大量的乘法运算,可使得运算单元可以采用移位与加和运算的方式来替代处理速度较慢且功耗较大的乘法运算,实现图像处理。采用2的幂次来表示网络参数可大大降低运算复杂度,提高运算速度,实现快速实时响应,降低运算过程中的功耗,尤其在运算单元为FPGA等硬件资源有限的硬件时,可解决卷积神经网络无法应用在硬件上或者无法在硬件上实现加速运算的问题。
[0085] 示例性地,在对卷积神经网络的网络参数进行定点化之前,可先检测网络参数的形式是否为浮点数,若是,则需对网络参数的取值进行定点化。
[0086] 示例性的,在一种可能的实现方式中定点化处理后的网络参数为M个2的幂次之和,M为大于1的整数。
[0087] 示例性的,本实施例中,对于一个浮点数,可采用M个2的次幂来表示。例如,对于浮5 2 4 2 1
点数36.11,可采用2+2来表示。例如,对于浮点数21.42,可采用2+2+2来表示。例如,对于
4 ‑2
浮点数16.25,可采用2+2 来表示。通过采用M个2的幂次之和来对网络参数的取值进行定点化,一方面在偏差较小的情况下,减少了网络参数对存储空间的占用,确保了卷积神经网络的性能,另一方面,可将卷积神经网络中的与网络参数相关的乘法操作简化为移位操作,简化了卷积神经网络的运算,提高了卷积神经网络的运算速率。
[0088] 可以理解的是,定点化后的网络参数也可以采用少于M个的2的幂次之和来表示。5
例如,对于浮点数32,可采用2来表示。
[0089] 可选的,在一种可能的实现方式中,M等于2。例如,对于某一网络参数的定点化结k j果,可采用2+2来表示。
[0090] 示例性的,通过均采用两个2的次幂来表示,可在确保网络参数的准确度的同时,不增加过多的计算量,避免了内存及存储资源的占用量提升。
[0091] 示例性的,在存储卷积神经网络的网络参数的取值时,由于网络参数数量较多,且每个网络参数的取值不同,在存储网络参数的取值时,存在占用存储空间较多的问题。为进一步减少存储空间占用,本发明实施例提供一种可能的定点化处理后的网络参数的存储方式,该种方式中:
[0092] 定点化处理后的网络参数为2的k次幂与2的j次幂之和,k和j均为整数,k大于j、且k与j之差小于预设阈值。
[0093] 具体的,对于任一浮点数,可采用2k+2j来进行定点化,其中k和j均为整数,且k大于j。为了简化网络参数的定点化过程,减少定点化处理后的网络参数存储时占用的空间,可限定k与j之差小于预设阈值。
[0094] 示例性的,确定预设阈值的过程首先可以确定卷积神经网络的所有网络参数的初始值,然后根据所有初始值的精度,确定最小精度值s,最小精度值s即为j的可能取值的最小值。然后根据所有初始值中最大的初始值,确定最大数值,最大数值可以为对最大初始值t进行向上取整。示例性的,可采用一个2的次幂,如2 表示最大数值,或M个2的次幂表示最大p q
数值,如2+2。t、p、q为整数,且p大于q。t或p即为k的可能取值的最大值。当k和j的差值大于预设阈值时,可将j的可能的最小取值增大,也即降低网络参数的定点化精度。
[0095] 可选的,在本实施例中,当定点化处理后的网络参数为2的k次幂与2的j次幂之和,存储定点化处理后的网络参数的具体方式可以包括:
[0096] 根据k与j,以及,二进制值映射表,获取定点化处理后的网络参数对应的二进制值,二进制值映射表用于指示不同k与j取值组合对应的二进制值;
[0097] 存储二进制值。
[0098] 示例性的,定点化处理后的网络参数为2的k次幂与2的j次幂之和,考虑到k和j为不相同的整数,且k与j之差小于预设阈值d,故可确定卷积神经网络的定点化处理后的网络参数,取值的所有可能性为 种。其中,d=l‑k+1。例如,当k和j之间差值的预设阈值为8,此时,网络参数的取值可能为28种。对于28个不同的数值,可采用5位比位数进行区分。因此,可建立二进制值映射表,二进制映射表中指示了不同k与j取值组合对应的二进制值,从而减少了定点化处理后的网络参数在存储时占用的存储空间。
[0099] 示例性的,在确定定点化处理后的网络参数对应的二进制值时,可采用2log(l‑k+1)比特位来编码定点化处理后的网络参数。具体为前log(l‑k+1)比特位用于表示第一个2的幂次,后log(l‑k+1)比特位表示后一个2的幂次。
[0100] S102、获取待处理的图像。
[0101] 示例性地,待处理的图像可以为监控摄像头拍摄得到的图像,还可以为车载摄像头拍摄得到图像,还可以为预存储在的图像库中的图像。
[0102] S103、控制运算单元根据定点化处理后的网络参数处理图像,得到图像的处理结果。
[0103] 示例性地,图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。
[0104] 示例性地,当采用存储二进制值的方式来指示定点化处理后的网络参数时,控制运算单元根据定点化处理后的网络参数处理图像,可具体包括:
[0105] S11、控制运算单元根据二进制值和二进制映射表,确定卷积神经网络的定点化处理后的网络参数。
[0106] 示例性地,控制运算单元根据存储的二进制值,在二进制映射表中通过查找确定卷积神经网络的定点化处理后的网络参数,或者,在二进制映射表中通过查找确定幂次k和k jj,从而可确定定点化处理后的网络参数2+2。
[0107] S12、根据卷积神经网络的定点化处理后的网络参数处理图像。
[0108] 本发明实施例提供的图像处理方法包括:根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,获取待处理的图像,控制运算单元根据定点化处理后的网络参数处理图像,得到图像的处理结果。通过对卷积神经网络的网络参数进行定点化,采用2的幂次来定点化表示网络参数,可减少存储空间占用以及运算过程中对内存空间的占用,节约了FPGA等硬件平台的资源。同时,采用2的幂次来表示网络参数可大大降低运算复杂度,提高运算速度,实现快速实时响应,降低运算过程中的功耗,尤其在运算单元为FPGA等硬件资源有限的硬件时,可解决卷积神经网络无法应用在硬件上或者无法在硬件上实现加速运算的问题。
[0109] 示例性地,在图1所示实施例的基础上,本发明实施例还提供一种图像处理方法,图2是本发明实施例二提供的图像处理方法的流程示意图。如图2所示,图像处理方法,包括:
[0110] S201、根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理。
[0111] S202、采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正。
[0112] 示例性的,训练数据示例性的可以为标注有标签的数据。例如,当采用卷积神经网络进行图像中的人脸检测、可行驶区域检测时,训练数据则为标注有人脸区域、可行驶区域的图像。
[0113] 示例性的,对卷积神经网络的网络参数的训练、定点化以及再训练过程可以多次执行,以提高网络参数的准确性。
[0114] S203、获取待处理的图像。
[0115] S204、控制运算单元根据修正后的网络参数处理图像,得到图像的处理结果。
[0116] 本实施例提供的图像处理方法中,在对卷积神经网络使用浮点表示的网络参数进行定点化处理后,采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正,可提高卷积神经网络的网络参数的准确性。
[0117] 本发明实施例另一方面还提供一种图像处理装置,用于执行上述实施例中的图像处理方法,具有相同或相似的技术特征和技术效果。
[0118] 图3是本发明实施例一提供的图像处理装置的结构示意图。如图3所示,图像处理装置包括:
[0119] 参数定点化模块301,用于根据运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;
[0120] 图像获取模块302,用于获取待处理的图像;
[0121] 图像处理模块303,用于控制运算单元根据定点化处理后的网络参数处理图像,得到图像的处理结果。
[0122] 可选的,定点化处理后的网络参数为M个2的幂次之和,M为大于1的整数。
[0123] 可选的,M等于2。
[0124] 可选的,定点化处理后的网络参数为2的k次幂与2的j次幂之和,k和j均为整数,k大于j、且k与j之差小于预设阈值。
[0125] 示例性的,在图3所示实施例的基础上,本发明实施例还提供一种图像处理装置。图4是本发明实施例二提供的图像处理装置的结构示意图。如图4所示,图像处理装置还包括:
[0126] 存储模块304,用于根据k与j,以及,二进制值映射表,获取定点化处理后的网络参数对应的二进制值,二进制值映射表用于指示不同k与j取值组合对应的二进制值;存储二进制值。
[0127] 可选的,上述图4所示实施例中的图像处理模块303,具体用于:
[0128] 控制运算单元根据二进制值和二进制映射表,确定卷积神经网络的定点化处理后的网络参数;
[0129] 根据卷积神经网络的定点化处理后的网络参数处理图像。
[0130] 示例性的,如图4所示,图像处理装置还包括:
[0131] 训练模块305,用于在控制运算单元根据定点化处理后的网络参数处理图像之前,采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络,以对定点化处理后的网络参数进行修正。
[0132] 可选的,图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。
[0133] 本发明实施例另一方面还提供一种智能驾驶系统,采用了上述实施例中的图像处理方法,具有相同或相似的技术特征和技术效果。
[0134] 图5是本发明实施例提供的智能驾驶系统的结构示意图。如图5所示,智能驾驶系统包括:车载摄像头501,卷积神经网络子系统502和控制子系统503;其中,控制子系统503用于:
[0135] 根据运行卷积神经网络子系统502的运算单元的定点位宽硬件资源量,将卷积神经网络使用浮点表示的网络参数定点化处理,定点化处理后的网络参数为采用2的幂次表示的值;
[0136] 控制卷积神经网络子系统502根据定点化处理后的网络参数处理车载摄像头501采集到的车辆行驶路面的图像,得到图像的处理结果;
[0137] 根据图像的处理结果进行车辆智能驾驶。
[0138] 示例性的,智能驾驶控制包括辅助驾驶和自动驾驶以及辅助驾驶和自动驾驶等多种驾驶模式之间的切换等多种情形。
[0139] 可选的,定点化处理后的网络参数为M个2的幂次之和,M为大于1的整数。
[0140] 可选的,M等于2。
[0141] 可选的,定点化处理后的网络参数为2的k次幂与2的j次幂之和,k和j均为整数,k大于j、且k与j之差小于预设阈值。
[0142] 可选的,控制子系统503还用于,根据k与j,以及,二进制值映射表,获取定点化处理后的网络参数对应的二进制值,二进制值映射表用于指示不同k与j取值组合对应的二进制值。
[0143] 对应的,智能驾驶系统还包括:存储子系统504;
[0144] 存储子系统504,用于存储二进制值。
[0145] 可选的,控制子系统503具体用于,
[0146] 控制卷积神经网络子系统根据存储子系统中存储的二进制值和二进制值映射表,确定卷积神经网络的定点化处理后的网络参数;
[0147] 根据定点化处理后的网络参数处理车载摄像头采集到的车辆行驶路面的图像,得到图像的处理结果。
[0148] 可选的,智能驾驶系统还包括:训练子系统505;
[0149] 训练子系统505用于,采用训练数据再次训练包括定点化处理后的网络参数的卷积神经网络子系统,以对定点化处理后的网络参数进行修正。
[0150] 可选的,图像的处理结果包括:车牌识别结果、可行驶区域检测结果、车道线检测结果、车道线属性检测结果、车载摄像头姿态检测结果中的至少之一。
[0151] 本发明实施例另一方面还提供一种基于FPGA的车载运算平台,采用了上述实施例中的图像处理方法,具有相同或相似的技术特征和技术效果。
[0152] 图6是本发明实施例提供的基于FPGA的车载运算平台的结构示意图。如图6所示,基于FPGA的车载运算平台包括:处理器601、外部存储器602、内存603和FPGA运算单元604;其中,
[0153] 外部存储器602中存储有神经网络的定点化处理后的网络参数,或者,存储有神经网络的定点化处理后的网络参数对应的二进制值和查找表,查找表用于指示不同的网络参数的幂次值对应的二进制值;定点化处理后的网络参数为采用2的幂次表示的值;
[0154] 处理器601将神经网络的定点化处理的网络参数读入内存603,或者,将根据二进制值和查找表,查找得到定点化处理的网络参数读入内存603,将内存603上的数据和待处理的图像信息输入到FPGA运算单元604;
[0155] FPGA运算单元604根据待处理的图像信息和定点化处理的网络参数得到移位运算结果,对多次结果求和运算,得到图像的处理结果。
[0156] 可选的,定点化处理后的网络参数为M个2的幂次之和,M为大于1的整数。
[0157] 可选的,M等于2。
[0158] 可选的,定点化处理后的网络参数为2的k次幂与2的j次幂之和,k和j均为整数,k大于j、且k与j之差小于预设阈值。
[0159] 可选的,外部存储器602中存储有k与j;
[0160] 查找表指示了不同的k和j的取值组合对应的二进制值。
[0161] 可选的,图像的处理结果包括:对象检测/跟踪结果、特征提取结果、分割结果、分类结果中的至少之一。
[0162] 本发明实施例另一方面还提供一种电子设备,图7是本发明实施例提供的电子设备的结构示意图,如图7所示,该电子设备包括:
[0163] 存储器701,用于存储程序指令;
[0164] 处理器702,用于调用并执行所述存储器中的程序指令,执行上述图1所示实施例中的方法步骤。
[0165] 示例性地,如图7所示,电子设备还包括运算单元703,运算单元703用于实现上述任一实施例中的卷积神经网络的运算。
[0166] 本发明实施例另一方面还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行上述图1或图2所示实施例中的方法步骤。
[0167] 本实施例中的装置与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构及实施过程,为了说明书的简洁,在此就不再赘述。
[0168] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0169] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0170] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0171] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

附图说明

[0069] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
[0070] 图1是本发明实施例一提供的图像处理方法的流程示意图;
[0071] 图2是本发明实施例二提供的图像处理方法的流程示意图;
[0072] 图3是本发明实施例一提供的图像处理装置的结构示意图;
[0073] 图4是本发明实施例二提供的图像处理装置的结构示意图;
[0074] 图5是本发明实施例提供的智能驾驶系统的结构示意图;
[0075] 图6是本发明实施例提供的基于FPGA的车载运算平台的结构示意图;
[0076] 图7是本发明实施例提供的电子设备的结构示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号