一种进行神经网络运算的处理装置的制作方法

文档序号:15853385发布日期:2018-11-07 10:32阅读:132来源:国知局
一种进行神经网络运算的处理装置的制作方法

本公开涉及信息处理技术领域,具体涉及一种智能领航设备。

背景技术

目前在驾驶或航海领域,特别是在领航领域,在航道密集,水面状况复杂的情况下,船只一般通过激光雷达与传统雷达进行激光标识物来规避航行风险。而对于微小的漂浮物,则主要靠领航员在航行中不断地观察细小的漂浮物,从而对水面以及水下的障碍物进行规避。

现有的技术一种为声呐水下探测技术,可参考声呐探鱼器,但其只对水下目标有效,复杂水域对探测的准确率影响较大;一种为雷达探测技术,例如传统雷达或激光雷,但是雷达存在近距离目标探测盲区,无法及时发现周围水面存在的漂浮物;还有一种是视觉系统探测技术,主要是水面目标特征提取,但传统视觉探测技术只能分辨岛屿轮船等具有显著辨识特点的物体,对于复杂的水面环境无法起到作用;再有一种是人工辨识,但人工辨识成本太高,而且对领航员的要求较高。



技术实现要素:

(一)要解决的技术问题

有鉴于此,本公开的目的在于提供一种智能领航设备,以解决至少部分技术问题。

(二)技术方案

为实现上述目的,本公开提供一种智能领航设备,包括:目标识别装置,用于对航行时拍摄的图像进行处理,并且与样本库进行比对,识别图像中的障碍物类型;信息处理装置,用于接收处理后的图像和识别的障碍物类型,并通过神经网络运算,输出航行选择数据。

在进一步的方案中,信息处理装置包括:神经网络芯片,用于执行所述神经网络运算。

在进一步的方案中,所述神经网络芯片包括:存储单元,用于存储输入数据,存储神经网络参数以及计算指令,所述输入数据包括处理后的图像和识别的障碍物类型;控制单元,用于从所述存储单元提取计算指令,解析该计算指令得到多个运算指令;运算单元,用于依据该多个运算指令对该输入数据执行计算得到航行选择数据。

在进一步的方案中,所述存储单元包括:输入输出模块,用于获取输入数据、神经网络参数以及计算指令;标量数据存储模块,用于存储标量数据;存储介质,用于存储数据块,且所述存储介质为片上存储。

在进一步的方案中,所述神经网络芯片还包括:直接内存存取dma,用于存入存储单元中的数据,神经网络参数和计算指令,以供控制单元和/或运算单元调用。

在进一步的方案中,所述神经网络芯片还包括:指令缓存,用于从所述直接内存存取dma缓存指令,供控制电路调用,所述指令缓存为片上缓存。

在进一步的方案中,所述神经网络参数包括输入神经元、输出神经元和权值,所述处理器还包括:输入神经元缓存,用于从所述直接内存存取dma缓存输入神经元,供运算单元调用;权值缓存,用于从所述直接内存存取dma缓存权值,供运算单元调用;输出神经元缓存,用于存储从所述运算单元获得运算后的输出神经元,以输出至直接内存存取dma;其中所述输入神经元缓存模块、权值缓存模块和输出神经元缓存模块均为片上缓存。

在进一步的方案中,所述信息处理装置还包括:输入数据编码器,用于将处理后的图像和识别的障碍物类型转变为神经网络可以处理的数字信息。

在进一步的方案中,所述信息处理装置还包括:存储器,用于存储当前时间段内的航行状况以及不同时间段的航行选择数据;运算器,用于根据航行选择队列数据,计算航行的风险和/或当前航行的损耗。

在进一步的方案中,所述信息处理装置还包括:数据输入输出端:用于接收输入数据编码器的信号,并将其传入人工神经网络芯片作为输入;还用于接收神经网络芯片输出端输出的航行选择数据,并存入存储器;以及用于从存储器读取航行选择队列和当期时间段内的航行状况,输入到运算器。

在进一步的方案中,所述信息处理装置还包括:输出数据转换器,用于将运算器计算的航行的风险和/或当前航行的损耗数据重新编码后传输给外部设备。

在进一步的方案中,所述输出数据转换器将运算器计算的结果回传至目标识别装置,以及更新所述样本库。

在进一步的方案中,所述神经网络芯片还用于在外部设备或船员做出航行选择后,收集输入-输出信息组,自适应地更新神经网络参数,训练生成新的神经网络参数。

在进一步的方案中,所述目标识别装置包括:图像处理单元,用于将输入图像进行预处理、二值化以及选择子区域提取特征;比对单元,用于将提取的特征与样本库中的样本进行必读,初步识别图像中的障碍目标类型。

(三)有益效果

(1)本公开的设备可以应用于智能领航,能够节约人力成本,同时降低了交通工具(例如船只)航行过程中的风险;

(2)本公开的智能领航设备使用专门的神经网络芯片实现了领航,可以更好的适应不同的水域状况,同时解决了实时运行的神经网络的延迟问题(而普通硬件上神经网络运行速度较慢,导致ai领航算法运行速度较慢,导致船只无法及时收到航行状态的反馈,不具备实时性)。

附图说明

图1是本公开实施例的一种信息处理装置方框示意图。

图2是图1中神经网络芯片的方框示意图。

图3是本公开实施例的智能领航设备的方框示意图。

图4是智能领航系统的一种应用场景示意图。

图5是智能领航系统的另一种应用场景示意图。

图6是本公开实施例的一种智能领航方法的运行流程图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。

在下文中,将提供实施例以详细说明本公开的实施方案。本公开的优点以及功效将通过本公开所公开的内容而更为显著。在此说明所附的附图简化过且作为例示用。附图中所示的组件数量、形状及尺寸可依据实际情况而进行修改,且组件的配置可能更为复杂。本公开中也可进行其他方面的实践或应用,且不偏离本公开所定义的精神及范畴的条件下,可进行各种变化以及调整。

图1是本公开实施例的一种信息处理装置方框示意图。根据本公开实施例的一方面,提供一种信息处理装置110,用于接收未处理或处理后的图像和/或识别的障碍物类型,并通过神经网络运算,输出航行选择数据。其中,该图像可以来自航行时拍摄的交通工具(陆地或者海上)航行时周边所拍摄的视频帧或图像;可以是经过预处理的含提取特征的图像数据或者未经处理的图像数据。通过对该图像和图像中障碍物类型进行神经网络运算分析,确定障碍物类型进而确定航行选择,例如是否避开该障碍物,以何种方式避开。通过该信息处理装置,能够在高效分析图像中是否有障碍物,以及障碍物准确类型,并给出航行选择,可以节约人力成本,同时降低了交通工具航行过程中的风险。

该信息处理装置110可以根据输入数据以及一段时间内的历史图像信息以及在这些历史图像情况下所选择的航行信息进行训练,通过lstm模型初始化参数与相关输入数据的运算结果,得到损失函数,计算在该状况下代价最小的航行选择,接着对外返回并呈现智能领航所判断的最优航行选择。同时在船员做出航行选择后,收集输入-输出信息组,自适应地更新神经网络(例如lstm长短期记忆网络)中的参数(如权值、偏置等),进而生成训练生成新的神经网络参数。

在一些实施例中,信息处理装置110包括:神经网络芯片111,其用于执行神经网络运算。通过采用专用的神经网络芯片,能够加速神经网络运算的速度,以提供及时的航行策略。

在一些实施例中,信息处理装置110提供的航行选择数据,包括但不限于:是否有障碍物、障碍物的类型、天气情况、是否应该躲避、前进方向、前进速度和/或状况紧急程度。

图2是图1中的一种实施方式的神经网络芯片方框示意图。如图2所示,在一些实施例中,神经网络芯片200包括存储单元201、控制单元202和运算单元203,其中,存储单元201用于存储输入数据(可以作为输入神经元),神经网络参数和指令;控制单元202用于从所述存储单元中读取专用指令,并将其译码成运算单元指令并输入至运算单元203;运算单元203用于根据运算单元指令对所述数据执行相应的神经网络运算,得到输出神经元。其中,存储单元201还可以存储经运算单元运算后获得的输出神经元。这里的神经网络参数包括但不限于权值、偏置和激活函数。

该存储单元201所存储的数据中,其中输入数据可以是外部传入的未处理或处理后的图像和识别的障碍物类型;神经网络可以是预存的或者后期存入的,该神经网络包括但不限于cnn(卷积神经网络)、rnn(循环神经网络)或者dnn(深度神经网络),优选的,采用rnn(循环神经网络)中的lstm长短期记忆网络模型;计算指令也可以是预存入存储单元201中或者后期从外部存入,以下将会对该计算指令进行进一步具体性说明。

在一些实施例中,存储单元201包括标量数据存储单元,该标量数据存储单元用于存储输入数据、神经网络参数以及指令中的标量数据,例如温度湿度等量数据,标量数据存储模块作用在于提升数据搬运的速度;存储单元201还可以包括输入输出模块,用于获取输入数据、神经网络参数以及计算指令(该计算指令可以通过控制单元编译后得到运算指令,控制运算单元执行相应神经网络运算)。

在一些实施例中,存储单元201还可以包括存储介质。该存储介质可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据块,该数据块具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。

在一些实施例中,运算单元203中执行相应的神经网络运算包括:将输入神经元和权值数据相乘,获得相乘结果;执行加法树运算,用于将所述相乘结果通过加法树逐级相加,得到加权和,对加权和加偏置或不做处理;对加偏置或不做处理的加权和执行激活函数运算,得到输出神经元。作为优选的,激活函数可以是sigmoid函数、tanh函数、relu函数或softmax函数。

在一些实施例中,如图2所示,神经网络芯片200还可以包括dma204(directmemoryaccess,直接内存存取),用于存入存储单元中的输入数据,神经网络参数和指令,以供控制单元202和运算单元203调用;进一步的还用于在运算单元203计算出输出神经元后,向存储单元201写入该输出神经元。

在一些实施例中,如图2所示,神经网络芯片200还包括指令缓存205,用于从所述直接内存存取dma缓存指令,供控制单元调用。该指令缓存205可以为片上缓存,其通过制备工艺集成于神经网络芯片上,可以在指令调取时,提高处理速度,节省整体运算时间。

在一些实施例中,神经网络芯片200还包括:输入神经元缓存206,其用于从所述直接内存存取dma缓存输入神经元,供运算单元203调用;权值缓存207,其用于从所述直接内存存取dma204缓存权值,供运算单元203调用;输出神经元缓存208,其用于存储从所述运算单元203获得运算后的输出神经元,以输出至直接内存存取dma204。上述输入神经元缓存206、权值缓存207以及输出神经元缓存208也可以为片上缓存,通过半导体工艺集成于神经网络芯片200上,可以在供运算单元203读写时提高处理速度,节省整体运算时间。

在一些实施例中,上述信息处理装置110除包括神经网络芯片111外,还包括输入数据编码器112,用于将处理后的图像和识别的障碍物类型转变为神经网络可以处理的数字信息。该可以处理的数字信息可以作为神经网络中输入神经元参与神经网络运算。

在一些实例中,上述信息处理装置110还可以包括:存储器114和运算器115,其中,存储器114用于存储当前时间段内的航行状况以及不同时间段的航行选择数据;运算器115用于根据航行选择队列数据,计算航行的风险(由海面信息、天气信息等多方面信息进行估计)和/或当前航行的损耗(包括所消耗的燃油、所花费的时间等)。

在一些实施例中,信息处理装置110还包括数据输入输出端113,该输入输出端113用于接收输入数据编码器112的信号,并将其传入神经网络芯片111作为输入;还用于接收神经网络芯片111输出端输出的航行选择数据,并存入存储器114;以及用于从存储器114读取航行选择队列和当期时间段内的航行状况,输入到运算器115。

在一些实施例中,信息处理装置110还包括输出数据转换器116,该输出数据转换器116用于将运算器115计算的航行的风险和/或当前航行的损耗数据重新编码后传输给外部设备。

在一些实施例中,所述输出数据转换器116将运算器计算的结果回传至外部,以及更新样本库;和/或将得到的结果回传至外部,以此更新外部的样本库。

在一些实施例中,所述神经网络芯片111还用于在外部设备或船员做出航行选择后,收集输入-输出信息组,自适应地更新神经网络参数,训练生成新的神经网络参数。优选的,上述训练过程是实时处理的。

图3是本公开实施例的智能领航设备的方框示意图。根据本公开实施例的另一方面,提供一种智能领航设备100,除包括上述实施例的信息处理装置110外,还包括目标识别装置120。其中,该目标识别装置120输入从影响摄录装置(包括但不限于摄像头、手机、数码相机)摄取的视频帧或者图片,作为输入图像,后可以经过一系列预处理过程(图像去雾、灰度化、稳像、平滑、分割等处理),并二值化后选择子区域提取特征(这些特征包括了纹理特征,不变矩特征,几何特征等),在提取如下特征后,与航行水面样本库进行比对,初步得出障碍物类型,将特征以及初步判断的障碍物类型作为进一步的输入传入信息处理装置110。本公开实施例的智能领航设备100使用专门的神经网络芯片实现了领航,可以更好的适应不同的水域状况,同时解决了实时运行的神经网络的延迟问题。

通过上述目标识别装置120以及信息处理装置110两个装置来实现智能领航。目标识别装置对图像进行处理,并且与样本库中的图像进行比对,识别障碍物的类型,而信息处理装置接收目标识别装置所传入的图像,并对外返回当前状态下船只的航行方案,从而实现智能领航。

在两者的交互上,信息处理装置110的存储单元20可以实时与目标识别装置120交互,接受目标识别装置120传入的特征以及障碍物类型信息,装置根据输入数据以及一段时间内的历史图像信息以及在这些历史图像情况下所选择的航行信息进行训练,通过神经网络(例如lstm)模型初始化参数与相关输入数据的运算结果,得到损失函数,计算在该状况下代价最小的航行选择,接着对外返回并呈现智能领航所判断的最优航行选择。同时在船员做出航行选择后,收集输入-输出信息组,自适应地更新神经网络(如lstm长短期记忆网络)中的参数(如权值、偏置等),进而生成训练生成新的神经网络参数。

对于信息处理装置110的内部设置方式参照上述实施例的设置方式,在此不予赘述。

在一些实施例中,对于目标识别装置120,在子区域特征提取过程中,纹理特征采用灰度共生矩阵进行提取,纹理特征描述因子包括四个;不变矩特征可以包括6个hu不变矩特征以及3个放射不变矩特征(一共9个特征);上述几何特征则可以包括了面积特征、细长度特征、紧密度特征、和凸包性特征。

在一些实施例中,目标识别装置120包括图像处理单元,用于对输入图像进行图像处理单元,用于将输入图像进行预处理、二值化以及选择子区域提取特征;比对单元,用于将提取的特征与样本库中的样本进行必读,初步识别图像中的障碍目标类型。

在一些实施例中,上述图像预处理过程中,图像去雾采用基于边缘检测的单尺度retinex算法,并利用基于边缘信息的高斯滤波估计亮度分量,具有较好的去雾效果。电子稳像则采用尺度不变特征变换(sift)算法提取特征点,结合放射模型和kalman滤波求取补偿参数,采用相邻帧补偿法对每帧图像进行补偿。

在一些实施例中,上述样本库的来源为实拍图像数据、网络图片数据、和/或3dmax软件制作的各种3d模型。

在一些实施例中,上述样本库中的障碍包括如下至少一种:船只、大型海洋生物、浮漂、礁石、冰川、岛屿、养殖场和渔网等。

在一些实施例中,上述损失函数的航行选择代价可以由如下几点来定义,船只可能造成的损害(以船只维护的价格来定量衡量)、对环境生态所造成的影响、航行时间的延误、船只消耗的油量,在定量衡量以上几个标准后,对以上标准进行加权,得到航行选择的损失函数。

本公开实施例还提供一种智能领航方法,包括:通过目标识别装置对航行时拍摄的图像进行处理,并且与样本库进行比对,识别图像中的障碍物类型;以及通过信息处理装置接收处理后的图像和识别的障碍物类型,并通过神经网络运算,输出航行选择数据。

图6是本公开实施例的一种智能领航方法的运行流程图。本公开实施例的人工指令领航设备工作的整体过程可以为:

步骤s1,目标识别装置120对图像进行处理,并且与样本库中的图像进行比对,识别障碍物的类型,形成输入数据;

步骤s2,将输入数据经输入数据编码器112编码后经输入输出端113存入存储单元201或直接传入存储单元201;

步骤s3,dma204(directmemoryaccess,直接内存存取)将存储单元201存储的指令、输入神经元(包含上述的符合神经网络输入格式的数据)和权值缓存、分别分批传入指令缓存,输入神经元缓存和权值缓存中;

步骤s4,控制单元从指令缓存中读取指令,将其译码为运算单元指令后传入运算单元;

步骤s5,根据运算单元指令,运算单元执行相应的运算:在神经网络的各个层中,运算可以分为三步:步骤s5.1,将对应的输入神经元和权值相乘;步骤s5.2,执行加法树运算,即将步骤s5.1的结果通过加法树逐级相加,得到加权和,根据需要对加权和加偏置或不做处理;步骤s5.3,对步骤s5.2得到的结果执行激活函数运算,得到输出神经元,并将其传入输出神经元缓存中。

步骤s6,输出信号转换器116将得到的结果回传至目标识别装置120,以此更新航行水面样本库,同时将所得到的数字信号重新编码,通过显示设备呈现给船员。

步骤中涉及的具体功能模块/装置/单元等,可参照上述实施例中对应的功能元件进行设置。

图4是智能领航系统的一种应用场景示意图。如图4所示,本公开实施例提供一种智能领航系统,可以应用于海上的智能领航,一轮船可以搭载有一种智能领航系统,其包括影像摄录装置410(该影像摄录装置可以为相机或者摄影机),用于在航行时拍摄航行前方的图像;以及目标识别装置,用于对航行时拍摄的图像进行处理,并且与样本库进行比对,识别图像中的障碍物类型;信息处理装置,用于接收处理后的图像和识别的障碍物类型,并通过神经网络运算,输出航行选择数据;以及显示装置,用于将所述信息处理装置输出的航行选择数据展示给用户。对于上述装置的设置,可以参照上述实施例中智能领航设备中对应装置,在此不予赘述。应当说明的是,对于目标设备装置、信息处理装置和显示装置,三者可以是不同的主体,也可以集成为一体,例如图4中所示的计算机420。当影像摄录装置410拍摄到障碍物430时,可以通过图4所示计算机420计算并展示给用户(如船员),以辅助进行航行操作。

类似的,图5是智能领航系统的另一种应用场景示意图。稍有区别的是,图5中的智能领航系统应用于陆地的航行中,图5中的影像摄录装置510可以安装于汽车前挡风玻璃上(例如安装以摄像头在挡风玻璃内),对于信息处理装置、显示装置以及目标设备装置,三者可以是不同的主体,也可以集成为一体,例如图4中所示的主机520(其可以集成至汽车的操作系统中),当影像摄录装置510拍摄到障碍物530时,可以通过图5所示的主机520计算并提示驾驶员,以辅助驾驶。

本公开所提供的实施例中,应理解到,所揭露的相关装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述部分或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个部分或模块可以结合或者可以集成到一个系统,或一些特征可以忽略或者不执行。

本公开中,术语“和/或”可能已被使用。如本文中所使用的,术语“和/或”意指一个或其他或两者(例如,a和/或b意指a或b或者a和b两者)。

在上面的描述中,出于说明目的,阐述了众多具体细节以便提供对本公开的各实施例的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的某些也可实施一个或多个其他实施例。所描述的具体实施例不是为了限制本公开而是为了说明。本公开的范围不是由上面所提供的具体示例确定,而是仅由下面的权利要求确定。在其他情况下,以框图形式,而不是详细地示出已知的电路、结构、设备,和操作以便不至于使对描述的理解变得模糊。在认为适宜之处,附图标记或附图标记的结尾部分在诸附图当中被重复以指示可选地具有类似特性或相同特征的对应或类似的要素,除非以其他方式来指定或显而易见。

已描述了各种操作和方法。已经以流程图方式以相对基础的方式对一些方法进行了描述,但这些操作可选择地被添加至这些方法和/或从这些方法中移去。另外,尽管流程图示出根据各示例实施例的操作的特定顺序,但可以理解,该特定顺序是示例性的。替换实施例可以可任选地以不同方式执行这些操作、组合某些操作、交错某些操作等。设备的此处所描述的组件、特征,以及特定可选细节还可以可任选地应用于此处所描述的方法,在各实施例中,这些方法可以由这样的设备执行和/或在这样的设备内执行。

本公开中各功能单元/子单元/模块/子模块都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件神经网络芯片,比如cpu、gpu、fpga、dsp和asic等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如rram,dram,sram,edram,hbm,hmc等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1