本申请涉及图像检索领域,特别是涉及一种商品识别方法、装置、编解码器及存储装置。
背景技术:
随着越来越多的机器学习或深度学习技术应用于新零售领域,其中商品识别或商品检索是其中一项重要技术。尤其是在进行商品结算时,对场景中的商品进行精确的识别是重要的挑战。
传统的结算场景中,通过专用设备扫描二维码进行商品识别。新零售场景下通过普通摄像头加图像处理算法完成。在对拍摄到的商品图像进行识别时,通常使用传统图像颜色、纹理、边缘特征或者使用神经网络进行特征提取,然后再对数据库中的注册特征进行比对检索。目前,有的方案基于单个特征向量进行比对检索,容易出现比对错误;另有的方案基于图像中的商品的全部特征进行比对检索,如果商品被部分遮住将会严重识别错误;也有的方案使用距离传感器来应对商品放置位置离摄像头远近的差异,在进行检索时加入对距离的判断,该方法需要距离传感器辅助,识别过程复杂,计算量大;还有的方案使用图像识别模块、动作识别模块、压力传感器辅助rfid来识别用户拿取商品的类别和数量,该方案的识别模块过度冗余。因此,如何提供快捷、高效、可靠的商品识别方法是人们日益关心的问题。
技术实现要素:
本申请提供一种商品识别方法、装置、编解码器及存储装置,能够采用卷积神经网络模型提取待检索图像中待检索商品的局部特征,针对一组特征向量进行特征匹配,实现商品在部分被遮挡住的情况下仍可以进行有效检索,不需要借助除图像设备以外的其他硬件辅助,检索高效、结果可靠。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种商品识别方法,包括:
获取待检索图像,所述待检索图像包含待检索商品;
提取所述待检索图像中所述待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合;
将所述特征向量集合与预设数据库中每个注册样本的局部特征向量集合进行比对,获得比对结果,根据所述比对结果输出对应的商品类别。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种商品识别装置,包括:
图像获取模块,用于获取待检索图像,所述待检索图像包含待检索商品;
特征提取模块,与所述图像获取模块耦接,用于提取所述待检索图像中所述待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合;
检索模块,与所述特征提取模块耦接,用于将所述特征向量集合与预设数据库中每个注册样本的局部特征向量集合进行比对,获得比对结果,根据所述比对结果输出对应的商品类别。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种编解码器,该编解码器包括处理器、与处理器耦接的存储器,其中,存储器存储有用于实现上述商品识别方法的程序指令;处理器用于执行存储器存储的程序指令以识别商品。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储装置,存储有能够实现上述商品识别方法的程序文件。
本申请的有益效果是:本申请提供了一种商品识别方法、装置、编解码器及存储装置,基于商品的局部特征检索,能够采用卷积神经网络模型提取待检索图像中待检索商品的局部特征,针对一组特征向量进行特征匹配,实现商品在部分被遮挡住的情况下仍可以进行有效检索,不需要借助除图像设备以外的其他硬件辅助,检索高效、结果可靠。
附图说明
图1是本发明第一实施例的商品识别方法的流程示意图;
图2是本发明第二实施例的商品识别方法的流程示意图;
图3是本发明第三实施例的商品识别方法的流程示意图;
图4是本发明第四实施例的商品识别方法的流程示意图;
图5是本发明第一实施例的商品识别装置的结构示意图;
图6是本发明第二实施例的商品识别装置的结构示意图;
图7是本发明实施例的编解码器的结构示意图;
图8是本发明实施例的存储装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明第一实施例的商品识别方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤s101:获取待检索图像,待检索图像包含待检索商品。
在步骤s101中,采用摄像头采集图像视频流,从图像视频流中获得单帧图像,即待检索图像,待检索图像中可以包含一种待检索商品或者多种待检索商品。
步骤s102:提取待检索图像中待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合。
在步骤s102中,首先将待检索商品输入至预先经过训练的卷积神经网络模型中;然后采用卷积神经网络模型对待检索商品的的局部特征进行提取,输出特征图;最后对特征图进行拆分处理,得到多个特征向量,待检索商品的特征向量集合包含多个特征向量。
本实施例中,一个商品对应多个局部特征,特征向量表示某个位置的一定范围内的局部特征,卷积神经网络模型采用delf局部特征模型,用于提取待检索商品的局部特征,输出结果为一个特征图。特征图包括多个局部特征点,每一个局部特征点对应一个特征向量,在将对特征图进行拆分处理,得到多个特征向量还包括:判断每一个局部特征点对应的响应值是否在预设阈值范围之内;若是,保留局部特征点,输出对应特征向量,组成所述待检索商品的特征向量集合;若否,舍弃局部特征点。该方式可以使网络输出响应更高的特征向量,提高检索结果的准确性。
在本实施例中,当待检索图像中包含一种待检索商品时,特征向量集合包含一种待检索商品的多个局部特征,当待检索图像中包含多种待检索商品时,特征向量集合包含多种待检索商品的局部特征,每种待检索商品的局部特征可以是一个或多个。
步骤s103:将特征向量集合与预设数据库中每个注册样本的局部特征向量集合进行比对,获得比对结果,根据比对结果输出对应的商品类别。
本实施例中,预设数据库包括多个注册样本,每一个注册样本含有多个局部特性向量,多个局部特征向量组成局部特征向量集合,一个注册样本对应一种商品类别。
本发明第一实施例的商品识别方法通过采用卷积神经网络模型提取待检索图像中待检索商品的局部特征,针对一组特征向量进行特征匹配,实现商品在部分被遮挡住的情况下仍可以进行有效检索,不需要借助除图像设备以外的其他硬件辅助,检索高效、结果可靠。
图2是本发明第二实施例的商品识别方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括步骤:
步骤s201:获取待检索图像,待检索图像包含待检索商品。
在本实施例中,图2中的步骤s201和图1中的步骤s101类似,为简约起见,在此不再赘述。
步骤s202:提取待检索图像中待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合。
在本实施例中,图2中的步骤s201和图1中的步骤s102类似,为简约起见,在此不再赘述。
步骤s203:将特征向量集合与预设数据库中每个注册样本的局部特征向量集合进行比对,获得比对结果,根据比对结果输出对应的商品类别。
在本实施例中,图2中的步骤s203和图1中的步骤s103类似,为简约起见,在此不再赘述。
步骤s204:将待检索商品的局部特征对应的特征向量集合保存至预设数据库,完成待检索商品的商品类别注册操作。
在本实施例中,将同一商品类别的所有特征向量保存至同一个注册样本中,即一个注册样本对应一种商品类别,商品类别注册操作可以丰富预设数据库中的商品类别,以便后续用户能够在预设数据库中成功检索到待检索商品的商品类别。
本发明第二实施例的步骤s203和步骤s204均在步骤s202之后执行,在步骤s202之后具体执行哪一个步骤由用户的设置决定。
本发明第二实施例的商品识别方法通过采用卷积神经网络模型提取待检索图像中待检索商品的局部特征,在预设数据库中不存在待检索商品的商品类别时,完成注册操作,丰富预设数据库中的商品类别,以便后续用户能够在预设数据库中成功检索到待检索商品的商品类别。
图3是本发明第三实施例的商品识别方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图3所示的流程顺序为限。如图3所示,该方法包括步骤:
步骤s301:获取待检索图像,待检索图像包含待检索商品。
在步骤s301中,采用摄像头采集图像视频流,从图像视频流中获得单帧图像,即待检索图像,待检索图像中包含一种待检索商品。
步骤s302:提取待检索图像中待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合。
在本实施例中,图3中的步骤s202和图1中的步骤s102类似,但特征向量集合包含一种待检索商品的多个局部特征。
步骤s303:计算特征向量集合与每个注册样本的局部特征向量集合之间的豪斯多夫距离。
在步骤s303中,首先依次将特征向量集合中的每一个特征向量与一个注册样本中的所有局部特征向量进行比对,获得每一个特征向量在该注册样本中的匹配向量;然后计算匹配向量集合中的每一个匹配向量与相匹配的特征向量之间的欧氏距离;最后将欧氏距离按照从小到大的顺序排列,获得第一欧氏距离和第二欧氏距离,当第一欧氏距离与第二欧氏距离的比值小于预设欧氏距离阈值时,将第一欧氏距离作为特征向量集合与该注册样本的局部特征向量集合之间的豪斯多夫距离;依次将特征向量集合与每个注册样本的局部特征向量集合进行比对,获得特征向量集合与每个注册样本的局部特征向量集合之间的豪斯多夫距离。
在本实施例中,豪斯多夫距离的计算公式如下:
h(a,b)=max(a∈a)min(b∈b)||a-b||,其中,h(a,b)表示集合a与集合b的豪斯多夫距离,a表示集合a的一个元素,b表示集合b的一个元素。
举例来说,预设数据库中包含注册样本的局部特征集合b、c、d,其中,b包括局部特征向量b1、b2…bi,待检索商品的特征向量集合为a,a包括特征向量a1、a2…ai,步骤s203需要计算注册样本的局部特征集合b与特征向量集合a之间、注册样本的局部特征集合c与特征向量集合a之间、注册样本的局部特征集合d与特征向量集合a之间的豪斯多夫距离。例如,计算注册样本的局部特征集合b与特征向量集合a之间的豪斯多夫距离时,对特征向量集合a中的每一个特征向量ai,寻找在注册样本的局部特征集合b中的匹配向量bi,计算特征向量ai与与之匹配的bi之间的欧氏距离,将欧氏距离按照从小到大的顺序排列,获得第一欧氏距离和第二欧氏距离,当第一欧氏距离与第二欧氏距离的比值小于预设欧氏距离阈值时,将第一欧氏距离作为特征向量集合a与注册样本的局部特征集合b之间的豪斯多夫距离。按照同样的方法计算注册样本的局部特征集合c与特征向量集合a之间、注册样本的局部特征集合d与特征向量集合a之间的豪斯多夫距离。
在本实施例中,在进行特征向量集合与一个注册样本的局部特征向量集合比对时,判断特征向量集合中特征向量的个数是否小于该注册样本的局部特征向量,若是,用特征向量集合中特征向量来匹配该注册样本的局部特征向量,若否,调换匹配次序,用该注册样本的局部特征向量来匹配待检索商品的特征向量集合。该方式避免用较多的特征向量匹配较少的特征向量产生的错误匹配。
步骤s304:将豪斯多夫距离按照从小到大的顺序排列,获得第一距离和第二距离,当第一距离与第二距离的比值小于预设距离阈值时,将第一距离对应的注册样本作为匹配注册样本,输出匹配注册样本对应的商品类别。
本发明第三实施例的商品识别方法在第一实施例的基础上,通过采用卷积神经网络模型提取待检索图像中待检索商品的局部特征,针对一组特征向量进行特征匹配,实现单个商品进行检索,在部分被遮挡住的情况下仍可以进行有效检索,不需要借助除图像设备以外的其他硬件辅助,检索高效、结果可靠。
图4是本发明第四实施例的商品识别方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图4所示的流程顺序为限。如图4所示,该方法包括步骤:
步骤s401:获取待检索图像,待检索图像包含待检索商品。
在步骤s401中,采用摄像头采集图像视频流,从图像视频流中获得单帧图像,即待检索图像,待检索图像中包含多种待检索商品。
步骤s402:提取待检索图像中待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合。
在本实施例中,图4中的步骤s402和图1中的步骤s102类似,但特征向量集合包含多种待检索商品的局部特征,每种待检索商品的局部特征可以是一个或多个。
步骤s403:分别计算特征向量集合中的每一个特征向量与所有注册样本中的每一个局部特征向量的欧氏距离,对特征向量集合中的每一个特征向量获得对应的欧氏距离集合。
步骤s404:将每个欧氏距离集合所包含的欧氏距离按照从小到大的顺序排列,获得第一欧氏距离和第二欧氏距离,当第一欧氏距离与第二欧氏距离的比值小于预设欧氏距离阈值时,将第一欧氏距离对应的局部特征向量作为匹配向量,将每个匹配向量所在的注册样本作为匹配注册样本,输出与匹配注册样本对应的商品类别。
在本实施例中,在输出与匹配注册样本对应的商品类别的步骤包括:当多个匹配向量均在同一个匹配注册样本内时,判断一个注册样本所在的匹配向量的个数是否大于预设个数阈值时;若是,输出与匹配注册样本对应的商品类别;若否,输出检索错误。
举例来说,当待检索图像中包括待检索商品1和待检索商品2,其中,待检索商品1与注册样本1对应,待检索商品2与注册样本2对应,提取到的待检索商品的特征向量集合包括待检索商品1的特征向量和待检索商品2的特征向量,计算该特征向量集合中的每一个特征向量与所有注册样本中的每一个局部特征向量之间的欧氏距离,对特征向量集合中的每一个特征向量获得对应的欧氏距离集合,根据欧氏距离集合,对特征向量集合中的每一个特征向量都找到匹配向量,当有k个匹配向量属于注册样本1,m个匹配向量属于注册样本2,判断k和m是否大于预设个数阈值时;若是,输出注册样本1对应的商品类别1,注册样本2对应的商品类别2;若否,输出检索错误。
本发明第四实施例的商品识别方法在第一实施例的基础上,通过采用卷积神经网络模型提取待检索图像中待检索商品的局部特征,针对一组特征向量进行特征匹配,实现多个商品进行检索,在部分被遮挡住的情况下仍可以进行有效检索,不需要借助除图像设备以外的其他硬件辅助,检索高效、结果可靠。
图5是本发明第一实施例的商品识别装置的结构示意图。如图5所示,该装置50包括图像获取模块51、特征提取模块52和检索模块53。
图像获取模块51用于获取待检索图像,待检索图像包含待检索商品。
本实施例中,图像获取模块51采用摄像头采集图像视频流,从图像视频流中获得单帧图像,即待检索图像,待检索图像中可以包含一种待检索商品或者多种待检索商品。
特征提取模块52与图像获取模块51耦接,用于提取待检索图像中待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合。
进一步地,特征提取模块52首先将待检索商品输入至预先经过训练的卷积神经网络模型中;然后采用卷积神经网络模型对待检索图像中的待检索商品进行特征提取,输出特征图;最后对特征图进行拆分处理,得到多个特征向量,待检索商品的特征向量集合包含多个特征向量。
本实施例中,一个商品对应多个局部特征,特征向量表示某个位置的一定范围内的局部特征,卷积神经网络模型采用delf局部特征模型,用于提取待检索商品的局部特征,输出结果为一个特征图。特征图包括多个局部特征点,每一个局部特征点对应一个特征向量。
可选地,在将对特征图进行拆分处理,得到多个特征向量还包括:判断每一个局部特征点对应的响应值是否在预设阈值范围之内;若是,保留局部特征点,输出对应特征向量,组成所述待检索商品的特征向量集合;若否,舍弃局部特征点。该方式可以使网络输出响应更高的特征向量,提高检索结果的准确性。
在本实施例中,当待检索图像中包含一种待检索商品时,特征向量集合包含一种待检索商品的多个局部特征,当待检索图像中包含多种待检索商品时,特征向量集合包含多种待检索商品的局部特征,每种待检索商品的局部特征可以是一个或多个。
检索模块53与特征提取模块52耦接,用于将特征向量集合与预设数据库中每个注册样本的局部特征向量集合进行比对,获得比对结果,根据比对结果输出对应的商品类别。
可选地,当待检索图像中包含一种待检索商品时,检索模块53计算特征向量集合与每个注册样本的局部特征向量集合之间的豪斯多夫距离,将豪斯多夫距离按照从小到大的顺序排列,获得第一距离和第二距离,当第一距离与第二距离的比值小于预设距离阈值时,将第一距离对应的注册样本作为匹配注册样本,输出匹配注册样本对应的商品类别。
本实施例中,在计算特征向量集合与每个注册样本的局部特征向量集合之间的豪斯多夫距离时,首先将特征向量集合中的每一个特征向量与一个注册样本中的所有局部特征向量进行比对,获得匹配向量集合;然后计算匹配向量集合中的每一个匹配向量与相匹配的特征向量之间的欧氏距离;最后将欧氏距离按照从小到大的顺序排列,获得第一欧氏距离和第二欧氏距离,当第一欧氏距离与第二欧氏距离的比值小于预设欧氏距离阈值时,将第一欧氏距离作为特征向量集合与该注册样本的局部特征向量集合之间的豪斯多夫距离;依次将特征向量集合与每个注册样本的局部特征向量集合进行比对,获得特征向量集合与每个注册样本的局部特征向量集合之间的豪斯多夫距离。
在本实施例中,在进行特征向量集合与一个注册样本的局部特征向量集合比对时,判断特征向量集合中特征向量的个数是否小于该注册样本的局部特征向量,若是,用特征向量集合中特征向量来匹配该注册样本的局部特征向量,若否,调换匹配次序,用该注册样本的局部特征向量来匹配待检索商品的特征向量集合。该方式避免用较多的特征向量匹配较少的特征向量产生的错误匹配。
可选地,当待检索图像中包含多种待检索商品时,检索模块53分别计算特征向量集合中的每一个特征向量与所有注册样本中的每一个局部特征向量的欧氏距离,对特征向量集合中的每一个特征向量获得对应的欧氏距离集合;将每个欧氏距离集合所包含的欧氏距离按照从小到大的顺序排列,获得第一欧氏距离和第二欧氏距离,当第一欧氏距离与第二欧氏距离的比值小于预设欧氏距离阈值时,将第一欧氏距离对应的局部特征向量作为匹配向量,输出每个匹配向量所在的注册样本对应的商品类别。
在本实施例中,输出每个匹配向量所在的注册样本对应的商品类别包括:判断一个注册样本所在的匹配向量的个数是否大于预设个数阈值时;若是,输出与注册样本对应的商品类别;若否,输出检索错误。
图6是本发明第二实施例的商品识别装置的结构示意图。如图6所示,该装置60包括图像获取模块61、特征提取模块62、检索模块63和注册模块64。
图像获取模块61用于获取待检索图像,待检索图像包含待检索商品。
在本实施例中,图6中的图像获取模块61和图5中的图像获取模块51类似,为简约起见,在此不再赘述。
特征提取模块62与图像获取模块61耦接,用于提取待检索图像中待检索商品的局部特征,获得与待检索商品的局部特征对应的特征向量集合。
在本实施例中,图6中的特征提取模块62和图5中的特征提取模块52类似,为简约起见,在此不再赘述。
检索模块63与特征提取模块62耦接,用于在预设数据库中存在待检索商品的商品类别时,将特征向量集合与预设数据库中每个注册样本的局部特征向量集合进行比对,获得比对结果,根据比对结果输出对应的商品类别。
在本实施例中,图6中的检索模块63和图5中的检索模块53类似,为简约起见,在此不再赘述。
注册模块64与特征提取模块62耦接,用于将待检索商品的局部特征对应的特征向量集合保存至预设数据库,完成待检索商品的商品类别注册操作。
本实施例的检索模块63和注册模块64由用户的设置决定执行。
请参阅图7,图7为本发明实施例的编解码器的结构示意图。如图7所示,该编解码器70包括处理器71及和处理器71耦接的存储器72。
存储器72存储有用于实现上述任一实施例所述的商品识别方法的程序指令。
处理器71用于执行存储器72存储的程序指令以识别商品。
其中,处理器71还可以称为cpu(centralprocessingunit,中央处理单元)。处理器71可能是一种集成电路芯片,具有信号的处理能力。处理器71还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图8,图8为本发明实施例的存储装置的结构示意图。本发明实施例的存储装置存储有能够实现上述所有方法的程序文件81,其中,该程序文件81可以以软件产品的形式存储在上述存储装置中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储装置包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。