CN110852826A - 基于简化二维码标签识别的超市购物车的商品推荐系统 - Google Patents
基于简化二维码标签识别的超市购物车的商品推荐系统 Download PDFInfo
- Publication number
- CN110852826A CN110852826A CN201910885230.3A CN201910885230A CN110852826A CN 110852826 A CN110852826 A CN 110852826A CN 201910885230 A CN201910885230 A CN 201910885230A CN 110852826 A CN110852826 A CN 110852826A
- Authority
- CN
- China
- Prior art keywords
- commodity
- weight
- item
- label
- pattern
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/224—Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
- G06V30/2247—Characters composed of bars, e.g. CMC-7
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Multimedia (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
一种基于简化二维码标签识别的超市购物车的商品推荐系统,包括两大模块:图像部分模块,对图案标签的设计而言,设计一个图案用于识别,该图案具有定位码,用于锁定图案的位置以及判断图案的方向,对于定位码图像的定位与识别而言,通过定位图案,再生成轮廓树,进行解析其中的数据部分,得到数据并提取被标签商品的信息;商品推荐模块,根据识别结果,基于关联性、热度、价位的综合考虑对消费者进行商品推荐。本发明对倾斜或轻微扭曲的多标签具有较好识别效果,适用于购物车中存在重叠摆放的不同商品的应用场景。
Description
技术领域
本发明涉及矩阵二维码标签的设计与生成、图像识别、以及推荐系统。
背景技术
作为一个便民的采购中心,超市与民众的生活密切相关。市场上的绝大多数实体超市并没有开发在顾客购物期间向其推荐商品,从而引导顾客去购买其他商品的系统。为了使顾客在庞大的超市购物时更快地获得相关商品信息,同时促进超市销售量,有必要开发基于购物车识别系统的商品推荐。由于购物车中物品摆放随机,相互之间位置复杂,用现有识别技术对商品图片直接进行识别比较困难。通过把商品信息存储在二维码标签,从而识别二维码来提取商品信息可以提高识别准确率。然而现有二维码标签一般用于单个标签的识别,不符合购物车中需要同时识别多个商品的二维码标签的应用背景。所以,需要针对这一具体应用开发相应的标签设计、识别、以及推荐方法,从而构成基于购物车商品的推荐系统。
发明内容
为了针对购物车应用场景下多个商品标签存在一定程度重叠、倾斜、以及扭曲等复杂情况,本发明提供一种基于简化二维码标签识别的超市购物车的商品推荐系统,借鉴QR code结构设计了一种更加易于定位和识别的二维码图案来生成标签图像。然后根据所识别到的商品信息,结合商品以及种类关联性、热度、价位等多个方面对消费者进行有效的商品推荐;对存在标签重叠、倾斜、扭曲的购物车场景具有较好的识别率;提出基于关联性、热度、价位等多方面的推荐算法,最终实现应用于超市购物的推荐系统。
本发明解决其技术问题所采用的技术方案是:
一种基于简化二维码标签识别的超市购物车的商品推荐系统,包括两大模块:
图像部分模块,对图案标签的设计而言,设计一个图案用于识别,该图案具有定位码,用于锁定图案的位置以及判断图案的方向,对于定位码图像的定位与识别而言,通过定位图案,再生成轮廓树,进行解析其中的数据部分,得到数据并提取被标签商品的信息;
商品推荐模块,根据识别结果,基于关联性、热度、价位的综合考虑对消费者进行商品推荐。
进一步,所述图像部分模块包括:
标签图案生成单元,借鉴QR code的结构来生成标签图像,所使用的标签图像分为定位码区域和数据存储区域,包含以下三个部分:
1)最外层的框,是一个边长为26单位,厚度1单位的空心正方形,用于包围标签图案的所有内容,用以区分不同的标签图案;
2)分为4个子部分,每个子部分又可以分为一个边长为6单位,厚度1单位的空心正方形和一个边长为2单位的实心正方形,其中每个正方形对应一个角落,分别用于确定标签图案四个角落对应的位置;
3)由一个宽度为1单位,长度为8单位的实心矩形组成,该部分用于判断标签图案的朝向;
数据存储区域总共有8*8+4*5*8=224个平方单位的面积,总共可以存储224个二进制数据,先把商品编号转成若干位二进制,其中二进制位为1的以黑色表示,二进制位为0的用白色表示;如果商品编号长度小于224,则按行从上到下,从左到右重复填充以增加识别准确率;
标签图案的识别单元,用于确定位置、形变还原和提取信息;
S1确定位置过程为:对输入的图像进行二值化处理,基于二值图像进行标签图案的定位,如下:
S1-1确定轮廓,步骤如下:
1-1-1寻找二值图像中编号为1-14的轮廓,并且建立起轮廓树;
1-1-2遍历轮廓树中的所有节点,对于每个节点,判断以该节点为根节点的子树,是否符合设定结构;如果符合,则判断为标签图案的定位码;
S1-2:根据轮廓矩计算得到四个角正方形中心点的坐标,通过选取定位码四个角落中正方形的中心点后计算获取当前点具体的坐标,步骤为:
1-2-1对某一轮廓A,其中心坐标(xc,yc)由以下式子计算得到:
1-2-2四个角正方形中心点的坐标如图5中的红色点:
在得到轮廓中心坐标后,把轮廓3,4,5的中心坐标求平均得到左上角正方形中心坐标,依次地,从轮廓6,7,8的中心坐标得到右上正方形中心坐标,从9,10,11的中心坐标得到左下正方形中心坐标,从12,13,14的中心坐标得到右下正方形中心坐标;
S2:形变还原过程如下:
S2-1:基于4个角正方形中心点坐标(x,y)以及变换后的坐标计算透视变换矩阵用以进行透视变换,得到一个未确定方向的24*24像素二值标签图案,步骤为:
2-1-1对这4个点变换后的坐标(xp,yp)按左上,右上,左下,右下顺序,取值分别为(52,52),(52,260),(260,52),(260,260)。基这四个点的关系得到3*3透视变换矩阵M,然后根据(xp,yp,1)=(x,y,1)M进行透视变换,对于透视变换的结果,取点(0,0),(0,311),(311,0),(311,311)所围成的边长为312的正方形的区域作为结果,该区域即为所求的标签图案所在的区域,透视变换矩阵计算以及进行透视变换步骤可以使用openCV中的getPerspectiveTransform函数以及warpPerspective实现;
2-1-2将312*312像素的正方形标签图形缩放成24*24像素大小的图像,考虑312*312像素图像中坐标为(x*13+6,y*13+6)的点的值,若该值大于或等于256/2,则将255作为24*24像素图像中点(x,y)的值,否则取0值;
S2-2:确认该标签图案的方向并且进行旋转,使其获得正确的朝向;首先利用编号15的轮廓确定该标签图案的朝向,该部分轮廓由8个黑色(像素值为0)的像素格组成。通过统计4处位置黑色(像素值为0)的像素格的数量,数量最多的位置则为图形轮廓15所在位置,并以此来判断旋转角度情况;判断完了所需要的旋转角度之后,对于非正确位置的情况,通过对图像乘以旋转矩阵进行旋转,从而便得到朝向正确的24*24像素二值标签图案的新坐标,过程如下:
对于任意一个原图像上的坐标(x,y),生成一个1*3的矩阵(x,y,1),并且通过将这个矩阵和一个3*2的旋转矩阵相乘,得到一个新的1*2的矩阵(x’,y’),并将坐标(x’,y’)作为该点旋转后的新坐标。需要旋转的情况分为以下3种:
1)顺时针旋转90度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(y,23-x)。通过简单计算可以得到此时的旋转矩阵M1表示如式(1)所示:
2)顺时针旋转180度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(23-x,23-y)。通过简单的计算可以得到这时候的旋转矩阵M2表示如式(2)所示:
3)顺时针旋转270度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(23-y,x)。通过简单的计算可以得到这时候的旋转矩阵M3表示如式(3)所示:
S3:信息提取过程如下:根据设计的数据存储区位置以及存储规则,从上到下,对于每一行,从左到右,读取每一个像素格中的二进制数据;因为存在大量重复的数据,使用ID_BIT×2的矩阵bit_value_cnt来存储二进制编号中每一位的0和1值出现的次数,其中ID_BIT值即用来表示商品编号的二进制位的个数,然后把每一位确定为出现次数多的值,即如果1的次数多于0的次数则该位为1,否则为0,最后把得到的二进制转化为10进制便可得到标签图案对应的商品编号;
商品推荐模块中,推荐商品分为3个部分,第一部分为基于购物记录的关联商品的推荐,在通过FP-growth算法获得频繁二项集之后,得到二项对应的提升度来表示物品之间的关系的评分;
第二部分是基于商品种类之间关联关系的推荐,以商品种类销售记录用FP-growth算法找出相关联的种类,记录评分较高的关联种类,基于销量和价格水平比率获得商品权重后进行随机推荐;
第三部分:对关联类别以及相同类别中的商品,基于销量和价格水平比率获得商品权重后进行随机推荐。
进一步,所述FP-growth算法是用来有效地发现频繁项集的算法,对于频繁项集的评估,有以下三个标准,其中,X,Y表示需要分析的2个商品,P(A)表示A出现的概率;
支持度如以下公式所示,表示该组的两个商品同时出现的概率:
Support(X,Y)=P(XY)
置信度如以下公式所示,表示商品Y出现后商品X出现的条件概率:
提升度如以下公式所示,表示在其中一个数据出现的条件下,另外数据的出现概率的提升率:
某一类别所有商品的权重item_weight,根据以下步骤得到:
第一步:通过商品销量来初始化权重,记sale_cnti为ID是i的商品的销售总量,item_weighti代表的是id为i的商品的权重,则其初始值item_weight_initi为:
item_weight_initi=1+sale_cnti
第二步:通过价格水平调整权重,首先,对于每个商品,计算该类商品的平均价格,以及每个商品价格与同类商品平均价格之比rate;
假设rate0为数据库中某物品与其同类商品平均价格的比值,rate1为购物车中被检测出的商品与其同类商品的平均价格的比值,则rate3计算为:
对于数据库中每个商品i,累加其价格水平比率的影响参数item_weight_coei,可以根据以下公式得到:
随后根据以下公式来确定最终的item_weighti:
以上公式中found_items_num表示参与推荐的商品数量;
根据所得到的商品权重来随机获取推荐商品:枚举每一个需要进行推荐的种类,根据该类所有商品的权值item_weight进行随机选择,即权重越大,被选中的概率越大,步骤为:建立“权重和”数组SZ,该数组为一维数组,数组中的第i项的值为第i个商品的权重累加“前缀和”数组中第i-1项的值,且“前缀和”数组中的第一项的值等于item_weight数组中的第一项,由于商品的权值始终为正数,可知当前数组后一项的值必定比前一项的值要大;
对于第Z类商品的“前缀和”数组有如下的递推式:
SZ,i=SZ,i-1+item_weight[i],i>1
SZ,i=item_weight[i],i=1
同时,以sum_SZ来表示种类为Z的商品的权值和,同时也为SZ数组的最后一项;
之后,生成一个随机数R的取值范围为[1,sum_SZ],对于种类Z而言,其对应的“前缀和”数组SZ中的值组成的数列为递增数列,则可使用二分查找快速地找出目标商品t,且t满足以下递推公式:
SZ,t-1<R≤SZ,t,t>1
0<R≤SZ,t,t=1。
本发明的有益效果为:借鉴QR code结构设计了一种更加易于定位和识别的二维码图案来生成标签图像。然后根据所识别到的商品信息,结合商品以及种类关联性、热度、价位等多个方面对消费者进行有效的商品推荐;对存在标签重叠、倾斜、扭曲的购物车场景具有较好的识别率;提出基于关联性、热度、价位等多方面的推荐算法,最终实现应用于超市购物的推荐系统。
附图说明
图1为系统功能结构。
图2-a为标签图案中定位码的轮廓。
图2-b为数据存储区域的结构与位置。
图3为图像处理流程图。
图4为定位码轮廓之间的树形关系。
图5为四个正方形的中心点。
图6为推荐模块三个部分的流程图。
图7为实施例中编号1644商品的标签图案。
具体实施方式
下面结合附图对本发明做进一步说明。
参照图1~图7,一种基于简化二维码标签识别的超市购物车的商品推荐系统,包括两大模块:
图像部分模块,对图案标签的设计而言,设计一个图案用于识别,该图案具有定位码,用于锁定图案的位置以及判断图案的方向,对于定位码图像的定位与识别而言,通过定位图案,再生成轮廓树,进行解析其中的数据部分,得到数据并提取被标签商品的信息;
商品推荐模块,根据识别结果,基于关联性、热度、价位的综合考虑对消费者进行商品推荐。
进一步,所述图像部分模块包括:
标签图案生成单元,借鉴QR code的结构来生成标签图像,所使用的标签图像分为定位码区域和数据存储区域,包含以下三个部分:
1)最外层的框,是一个边长为26单位,厚度1单位的空心正方形,用于包围标签图案的所有内容,用以区分不同的标签图案;
2)分为4个子部分,每个子部分又可以分为一个边长为6单位,厚度1单位的空心正方形和一个边长为2单位的实心正方形,其中每个正方形对应一个角落,分别用于确定标签图案四个角落对应的位置;
3)由一个宽度为1单位,长度为8单位的实心矩形组成,该部分用于判断标签图案的朝向;
数据存储区域总共有8*8+4*5*8=224个平方单位的面积,总共可以存储224个二进制数据,先把商品编号转成若干位二进制,其中二进制位为1的以黑色表示,二进制位为0的用白色表示;如果商品编号长度小于224,则按行从上到下,从左到右重复填充以增加识别准确率;
标签图案的识别单元,用于确定位置、形变还原和提取信息;
S1确定位置过程为:对输入的图像进行二值化处理,基于二值图像进行标签图案的定位,如下:
S1-1确定轮廓,步骤如下:
1-1-1寻找二值图像中编号为1-14的轮廓,并且建立起轮廓树;
1-1-2遍历轮廓树中的所有节点,对于每个节点,判断以该节点为根节点的子树,是否符合设定结构;如果符合,则判断为标签图案的定位码;
S1-2:根据轮廓矩计算得到四个角正方形中心点的坐标,通过选取定位码四个角落中正方形的中心点后计算获取当前点具体的坐标,步骤为:
1-2-1对某一轮廓A,其中心坐标(xc,yc)由以下式子计算得到:
1-2-2四个角正方形中心点的坐标如图5中的红色点:
在得到轮廓中心坐标后,把轮廓3,4,5的中心坐标求平均得到左上角正方形中心坐标,依次地,从轮廓6,7,8的中心坐标得到右上正方形中心坐标,从9,10,11的中心坐标得到左下正方形中心坐标,从12,13,14的中心坐标得到右下正方形中心坐标;
S2:形变还原过程如下:
S2-1:基于4个角正方形中心点坐标(x,y)以及变换后的坐标计算透视变换矩阵用以进行透视变换,得到一个未确定方向的24*24像素二值标签图案,步骤为:
2-1-1对这4个点变换后的坐标(xp,yp)按左上,右上,左下,右下顺序,取值分别为(52,52),(52,260),(260,52),(260,260)。基这四个点的关系得到3*3透视变换矩阵M,然后根据(xp,yp,1)=(x,y,1)M进行透视变换,对于透视变换的结果,取点(0,0),(0,311),(311,0),(311,311)所围成的边长为312的正方形的区域作为结果,该区域即为所求的标签图案所在的区域,透视变换矩阵计算以及进行透视变换步骤可以使用openCV中的getPerspectiveTransform函数以及warpPerspective实现;
2-1-2将312*312像素的正方形标签图形缩放成24*24像素大小的图像,考虑312*312像素图像中坐标为(x*13+6,y*13+6)的点的值,若该值大于或等于256/2,则将255作为24*24像素图像中点(x,y)的值,否则取0值;
S2-2:确认该标签图案的方向并且进行旋转,使其获得正确的朝向;首先利用编号15的轮廓确定该标签图案的朝向,该部分轮廓由8个黑色(像素值为0)的像素格组成。通过统计4处位置黑色(像素值为0)的像素格的数量,数量最多的位置则为图形轮廓15所在位置,并以此来判断旋转角度情况;判断完了所需要的旋转角度之后,对于非正确位置的情况,通过对图像乘以旋转矩阵进行旋转,从而便得到朝向正确的24*24像素二值标签图案的新坐标,过程如下:
对于任意一个原图像上的坐标(x,y),生成一个1*3的矩阵(x,y,1),并且通过将这个矩阵和一个3*2的旋转矩阵相乘,得到一个新的1*2的矩阵(x’,y’),并将坐标(x’,y’)作为该点旋转后的新坐标。需要旋转的情况分为以下3种:
1)顺时针旋转90度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(y,23-x)。通过简单计算可以得到此时的旋转矩阵M1表示如式(1)所示:
2)顺时针旋转180度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(23-x,23-y)。通过简单的计算可以得到这时候的旋转矩阵M2表示如式(2)所示:
3)顺时针旋转270度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(23-y,x)。通过简单的计算可以得到这时候的旋转矩阵M3表示如式(3)所示:
S3:信息提取过程如下:根据设计的数据存储区位置以及存储规则,从上到下,对于每一行,从左到右,读取每一个像素格中的二进制数据;因为存在大量重复的数据,使用ID_BIT×2的矩阵bit_value_cnt来存储二进制编号中每一位的0和1值出现的次数,其中ID_BIT值即用来表示商品编号的二进制位的个数,然后把每一位确定为出现次数多的值,即如果1的次数多于0的次数则该位为1,否则为0,最后把得到的二进制转化为10进制便可得到标签图案对应的商品编号;
商品推荐模块中,推荐商品分为3个部分,第一部分为基于购物记录的关联商品的推荐,在通过FP-growth算法获得频繁二项集之后,得到二项对应的提升度来表示物品之间的关系的评分;
第二部分是基于商品种类之间关联关系的推荐,以商品种类销售记录用FP-growth算法找出相关联的种类,记录评分较高的关联种类,基于销量和价格水平比率获得商品权重后进行随机推荐;
第三部分:对关联类别以及相同类别中的商品,基于销量和价格水平比率获得商品权重后进行随机推荐。
进一步,所述FP-growth算法是用来有效地发现频繁项集的算法,对于频繁项集的评估,有以下三个标准,其中,X,Y表示需要分析的2个商品,P(A)表示A出现的概率;
支持度如以下公式所示,表示该组的两个商品同时出现的概率:
Support(X,Y)=P(XY)
置信度如以下公式所示,表示商品Y出现后商品X出现的条件概率:
提升度如以下公式所示,表示在其中一个数据出现的条件下,另外数据的出现概率的提升率:
某一类别所有商品的权重item_weight,根据以下步骤得到:
第一步:通过商品销量来初始化权重,记sale_cnti为ID是i的商品的销售总量,item_weighti代表的是id为i的商品的权重,则其初始值item_weight_initi为:
item_weight_initi=1+sale_cnti
第二步:通过价格水平调整权重,首先,对于每个商品,计算该类商品的平均价格,以及每个商品价格与同类商品平均价格之比rate;
假设rate0为数据库中某物品与其同类商品平均价格的比值,rate1为购物车中被检测出的商品与其同类商品的平均价格的比值,则rate3计算为:
对于数据库中每个商品i,累加其价格水平比率的影响参数item_weight_coei,可以根据以下公式得到:
随后根据以下公式来确定最终的item_weighti:
以上公式中found_items_num表示参与推荐的商品数量;
根据所得到的商品权重来随机获取推荐商品:枚举每一个需要进行推荐的种类,根据该类所有商品的权值item_weight进行随机选择,即权重越大,被选中的概率越大,步骤为:建立“权重和”数组SZ,该数组为一维数组,数组中的第i项的值为第i个商品的权重累加“前缀和”数组中第i-1项的值,且“前缀和”数组中的第一项的值等于item_weight数组中的第一项,由于商品的权值始终为正数,可知当前数组后一项的值必定比前一项的值要大;
对于第Z类商品的“前缀和”数组有如下的递推式:
SZ,i=SZ,i-1+item_weight[i],i>1
SZ,i=item_weight[i],i=1
同时,以sum_SZ来表示种类为Z的商品的权值和,同时也为SZ数组的最后一项;
之后,生成一个随机数R的取值范围为[1,sum_SZ],对于种类Z而言,其对应的“前缀和”数组SZ中的值组成的数列为递增数列,则可使用二分查找快速地找出目标商品t,且t满足以下递推公式:
SZ,t-1<R≤SZ,t,t>1
0<R≤SZ,t,t=1。
以第1644号物品(ID=1644)为实施例给出对该物品对应标签设计、识别以及推荐的过程。
标签图案生成单元,以第1644号物品为例(ID=1644),该物品所需要在标签图案中存储的信息为1644这一数字。首先将1644转化为二进制,得到011001101100,转化为标签图案数据存储区域的表现方式则为“白黑黑白白黑黑白黑黑白白”。将该排列重复填充于数据存储区域(见图2-b的红色区域),并且加上定位码,则可以得到最终的标签图案如图7。
标签图案识别单元,图3给出了基本流程,主要包括确定位置、形变还原、提取信息三个步骤。
S1确定位置过程:对输入的图像进行二值化处理得到二值图像。
按照S1-1中的步骤确定定位码轮廓;
根据S1-2中步骤计算得到四个角正方形中心点的坐标。
S2:形变还原过程:
根据S2-1中的步骤先得到312*312像素的正方形标签图形,然后转成24*24像素二值标签图案。
再根据S2-2判断是否需要旋转变换得到最终的标签图案。
S3:信息提取过程:根据设计的数据存储区位置以及存储规则,从上到下,对于每一行,从左到右,读取每一个像素格中的二进制数据。因为存在大量重复的数据,使用ID_BIT×2的矩阵bit_value_cnt来存储二进制编号中每一位的0和1值出现的次数。其中ID_BIT值即用来表示商品编号的二进制位的个数,在实施例中为12。然后把每一位确定为出现次数多的值,即如果1的次数多于0的次数则该位为1,否则为0。最后把得到的二进制转化为10进制便可得到标签图案对应的商品编号1644。
商品推荐模块中,推荐商品:识别出来的编号为1644的商品信息。
推荐商品包括以下3个部分。第一部分是通过FP-growth算法获得频繁二项集直接寻找商品间的关联关系得出推荐商品。
第二部分是用FP-growth算法寻找种类间的关联关系之后得出需要推荐的种类,然后根据商品销量和价格水平比率随机选出推荐商品。
第三部分是选定与检测到的商品相同的种类,根据商品销量和价格水平比率随机选出商品。
Claims (4)
1.一种基于简化二维码标签识别的超市购物车的商品推荐系统,其特征在于,所述商品推荐系统包括两大模块:
图像部分模块,对图案标签的设计而言,设计一个图案用于识别,该图案具有定位码,用于锁定图案的位置以及判断图案的方向,对于定位码图像的定位与识别而言,通过定位图案,再生成轮廓树,进行解析其中的数据部分,得到数据并提取被标签商品的信息;
商品推荐模块,根据识别结果,基于关联性、热度、价位的综合考虑对消费者进行商品推荐。
2.如权利要求1所述的基于简化二维码标签识别的超市购物车的商品推荐系统,其特征在于,所述图像部分模块包括:
标签图案生成单元,借鉴QR code的结构来生成标签图像,所使用的标签图像分为定位码区域和数据存储区域,包含以下三个部分:
1)最外层的框,是一个边长为26单位,厚度1单位的空心正方形,用于包围标签图案的所有内容,用以区分不同的标签图案;
2)分为4个子部分,每个子部分又可以分为一个边长为6单位,厚度1单位的空心正方形和一个边长为2单位的实心正方形,其中每个正方形对应一个角落,分别用于确定标签图案四个角落对应的位置;
3)由一个宽度为1单位,长度为8单位的实心矩形组成,该部分用于判断标签图案的朝向;
数据存储区域总共有8*8+4*5*8=224个平方单位的面积,总共可以存储224个二进制数据,先把商品编号转成若干位二进制,其中二进制位为1的以黑色表示,二进制位为0的用白色表示;如果商品编号长度小于224,则按行从上到下,从左到右重复填充以增加识别准确率;
标签图案的识别单元,用于确定位置、形变还原和提取信息;
S1 确定位置过程为:对输入的图像进行二值化处理,基于二值图像进行标签图案的定位,如下:
S1-1 确定轮廓,步骤如下:
1-1-1 寻找二值图像中编号为1-14的轮廓,并且建立起轮廓树;
1-1-2 遍历轮廓树中的所有节点,对于每个节点,判断以该节点为根节点的子树,是否符合设定结构;如果符合,则判断为标签图案的定位码;
S1-2:根据轮廓矩计算得到四个角正方形中心点的坐标,通过选取定位码四个角落中正方形的中心点后计算获取当前点具体的坐标,步骤为:
1-2-1 对某一轮廓A,其中心坐标(xc,yc)由以下式子计算得到:
1-2-2 四个角正方形中心点的坐标如图5中的红色点:
在得到轮廓中心坐标后,把轮廓3,4,5的中心坐标求平均得到左上角正方形中心坐标,依次地,从轮廓6,7,8的中心坐标得到右上正方形中心坐标,从9,10,11的中心坐标得到左下正方形中心坐标,从12,13,14的中心坐标得到右下正方形中心坐标;
S2:形变还原过程如下:
S2-1:基于4个角正方形中心点坐标(x,y)以及变换后的坐标计算透视变换矩阵用以进行透视变换,得到一个未确定方向的24*24像素二值标签图案,步骤为:
2-1-1 对这4个点变换后的坐标(xp,yp)按左上,右上,左下,右下顺序,取值分别为(52,52),(52,260),(260,52),(260,260),基这四个点的关系得到3*3透视变换矩阵M,然后根据(xp,yp,1)=(x,y,1)M进行透视变换,对于透视变换的结果,取点(0,0),(0,311),(311,0),(311,311)所围成的边长为312的正方形的区域作为结果,该区域即为所求的标签图案所在的区域,透视变换矩阵计算以及进行透视变换步骤可以使用openCV中的getPerspectiveTransform函数以及warpPerspective实现;
2-1-2 将312*312像素的正方形标签图形缩放成24*24像素大小的图像,考虑312*312像素图像中坐标为(x*13+6,y*13+6)的点的值,若该值大于或等于256/2,则将255作为24*24像素图像中点(x,y)的值,否则取0值;
S2-2:确认该标签图案的方向并且进行旋转,使其获得正确的朝向;首先利用编号15的轮廓确定该标签图案的朝向,该部分轮廓由8个黑色的像素格组成,通过统计4处位置黑色(像素值为0)的像素格的数量,数量最多的位置则为图形轮廓15所在位置,并以此来判断旋转角度情况;判断完了所需要的旋转角度之后,对于非正确位置的情况,通过对图像乘以旋转矩阵进行旋转,从而便得到朝向正确的24*24像素二值标签图案的新坐标,过程如下:
对于任意一个原图像上的坐标(x,y),生成一个1*3的矩阵(x,y,1),并且通过将这个矩阵和一个3*2的旋转矩阵相乘,得到一个新的1*2的矩阵(x’,y’),并将坐标(x’,y’)作为该点旋转后的新坐标,需要旋转的情况分为以下3种:
1)顺时针旋转90度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(y,23-x),通过简单计算可以得到此时的旋转矩阵M1表示如式(1)所示:
2)顺时针旋转180度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(23-x,23-y),通过简单的计算得到这时候的旋转矩阵M2表示如式(2)所示:
3)顺时针旋转270度
在这种情况下,对于初始点(x,y),旋转后的新点坐标为(23-y,x),通过简单的计算得到这时候的旋转矩阵M3表示如式(3)所示:
S3:信息提取过程如下:根据设计的数据存储区位置以及存储规则,从上到下,对于每一行,从左到右,读取每一个像素格中的二进制数据;因为存在大量重复的数据,使用ID_BIT×2的矩阵bit_value_cnt来存储二进制编号中每一位的0和1值出现的次数,其中ID_BIT值即用来表示商品编号的二进制位的个数,然后把每一位确定为出现次数多的值,即如果1的次数多于0的次数则该位为1,否则为0,最后把得到的二进制转化为10进制便可得到标签图案对应的商品编号。
3.如权利要求1或2所述的基于简化二维码标签识别的超市购物车的商品推荐系统,其特征在于,商品推荐模块中,推荐商品分为3个部分,第一部分为基于购物记录的关联商品的推荐,在通过FP-growth算法获得频繁二项集之后,得到二项对应的提升度来表示物品之间的关系的评分;
第二部分是基于商品种类之间关联关系的推荐,以商品种类销售记录用FP-growth算法找出相关联的种类,记录评分较高的关联种类,基于销量和价格水平比率获得商品权重后进行随机推荐;
第三部分:对关联类别以及相同类别中的商品,基于销量和价格水平比率获得商品权重后进行随机推荐。
4.如权利要求3所述的基于简化二维码标签识别的超市购物车的商品推荐系统,其特征在于,所述FP-growth算法是用来有效地发现频繁项集的算法,对于频繁项集的评估,有以下三个标准,其中,X,Y表示需要分析的2个商品,P(A)表示A出现的概率;
支持度如以下公式所示,表示该组的两个商品同时出现的概率:
Support(X,Y)=P(XY)
置信度如以下公式所示,表示商品Y出现后商品X出现的条件概率:
提升度如以下公式所示,表示在其中一个数据出现的条件下,另外数据的出现概率的提升率:
某一类别所有商品的权重item_weight,根据以下步骤得到:
第一步:通过商品销量来初始化权重,记sale_cnti为ID是i的商品的销售总量,item_weighti代表的是id为i的商品的权重,则其初始值item_weight_initi为:
item_weight_initi=1+sale_cnti
第二步:通过价格水平调整权重,首先,对于每个商品,计算该类商品的平均价格,以及每个商品价格与同类商品平均价格之比rate;
假设rate0为数据库中某物品与其同类商品平均价格的比值,rate1为购物车中被检测出的商品与其同类商品的平均价格的比值,则rate3计算为:
对于数据库中每个商品i,累加其价格水平比率的影响参数item_weight_coei,可以根据以下公式得到:
item_weight_coei←item_weight_coei+max(1,10*(max(0,2-rate3)))
随后根据以下公式来确定最终的item_weighti:
以上公式中found_items_num表示参与推荐的商品数量;
根据所得到的商品权重来随机获取推荐商品:枚举每一个需要进行推荐的种类,根据该类所有商品的权值item_weight进行随机选择,即权重越大,被选中的概率越大,步骤为:建立“权重和”数组SZ,该数组为一维数组,数组中的第i项的值为第i个商品的权重累加“前缀和”数组中第i-1项的值,且“前缀和”数组中的第一项的值等于item_weight数组中的第一项,由于商品的权值始终为正数,可知当前数组后一项的值必定比前一项的值要大;
对于第Z类商品的“前缀和”数组有如下的递推式:
SZ,i=SZ,i-1+item_weight[i],i>1
SZ,i=item_weight[i],i=1
同时,以sum_SZ来表示种类为Z的商品的权值和,同时也为SZ数组的最后一项;
之后,生成一个随机数R的取值范围为[1,sum_SZ],对于种类Z而言,其对应的“前缀和”数组SZ中的值组成的数列为递增数列,则可使用二分查找快速地找出目标商品t,且t满足以下递推公式:
SZ,t-1<R≤SZ,t,t>1
0<R≤SZ,t,t=1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885230.3A CN110852826B (zh) | 2019-09-19 | 2019-09-19 | 基于简化二维码标签识别的超市购物车的商品推荐系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885230.3A CN110852826B (zh) | 2019-09-19 | 2019-09-19 | 基于简化二维码标签识别的超市购物车的商品推荐系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110852826A true CN110852826A (zh) | 2020-02-28 |
CN110852826B CN110852826B (zh) | 2022-07-26 |
Family
ID=69595526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910885230.3A Active CN110852826B (zh) | 2019-09-19 | 2019-09-19 | 基于简化二维码标签识别的超市购物车的商品推荐系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110852826B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427888A (zh) * | 2020-03-18 | 2020-07-17 | 西安交通大学 | 一种自动零售机拣货方法 |
CN112381611A (zh) * | 2020-11-16 | 2021-02-19 | 苏州商数时代信息科技有限公司 | 一种线下市场销售匹配系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016186289A1 (ko) * | 2015-05-18 | 2016-11-24 | 김동주 | 이미지인식기술을 이용한 정보제공시스템 및 방법 |
CN106599961A (zh) * | 2016-09-13 | 2017-04-26 | 江苏图码信息科技有限公司 | 一种手绘图案或文字的二维码产品及其应用组件 |
CN106991460A (zh) * | 2017-01-23 | 2017-07-28 | 中山大学 | 一种qr码快速定位检测算法 |
CN108009897A (zh) * | 2017-12-25 | 2018-05-08 | 北京中关村科金技术有限公司 | 一种商品的实时推荐方法、系统及可读存储介质 |
CN108596656A (zh) * | 2018-04-10 | 2018-09-28 | 王大江 | 一种构建基于大数据分析的智能购物车的方法和装置 |
CN109977715A (zh) * | 2019-03-05 | 2019-07-05 | 哈尔滨工业大学(深圳) | 基于轮廓识别的二维码识别方法及二维码 |
CN110148042A (zh) * | 2019-05-23 | 2019-08-20 | 北京小米移动软件有限公司 | 智能购物车、购物辅助方法、装置、设备及可读存储介质 |
-
2019
- 2019-09-19 CN CN201910885230.3A patent/CN110852826B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016186289A1 (ko) * | 2015-05-18 | 2016-11-24 | 김동주 | 이미지인식기술을 이용한 정보제공시스템 및 방법 |
CN106599961A (zh) * | 2016-09-13 | 2017-04-26 | 江苏图码信息科技有限公司 | 一种手绘图案或文字的二维码产品及其应用组件 |
CN106991460A (zh) * | 2017-01-23 | 2017-07-28 | 中山大学 | 一种qr码快速定位检测算法 |
CN108009897A (zh) * | 2017-12-25 | 2018-05-08 | 北京中关村科金技术有限公司 | 一种商品的实时推荐方法、系统及可读存储介质 |
CN108596656A (zh) * | 2018-04-10 | 2018-09-28 | 王大江 | 一种构建基于大数据分析的智能购物车的方法和装置 |
CN109977715A (zh) * | 2019-03-05 | 2019-07-05 | 哈尔滨工业大学(深圳) | 基于轮廓识别的二维码识别方法及二维码 |
CN110148042A (zh) * | 2019-05-23 | 2019-08-20 | 北京小米移动软件有限公司 | 智能购物车、购物辅助方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
仟人斩: "二维码的特征定位和信息识别", 《HTTPS://BLOG.CSDN.NET/IAMQIANRENZHAN/ARTICLE/DETAILS/79117119》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427888A (zh) * | 2020-03-18 | 2020-07-17 | 西安交通大学 | 一种自动零售机拣货方法 |
CN111427888B (zh) * | 2020-03-18 | 2022-10-25 | 西安交通大学 | 一种自动零售机拣货方法 |
CN112381611A (zh) * | 2020-11-16 | 2021-02-19 | 苏州商数时代信息科技有限公司 | 一种线下市场销售匹配系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110852826B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wei et al. | Deep learning for retail product recognition: Challenges and techniques | |
CN107463946B (zh) | 一种结合模板匹配与深度学习的商品种类检测方法 | |
US7406200B1 (en) | Method and system for finding structures in multi-dimensional spaces using image-guided clustering | |
CN109961101A (zh) | 货架状态确定方法及装置、电子设备、存储介质 | |
CN110852826B (zh) | 基于简化二维码标签识别的超市购物车的商品推荐系统 | |
US20120106787A1 (en) | Apparatus and methods for analysing goods packages | |
CN107403128B (zh) | 一种物品识别方法及装置 | |
CN103617420A (zh) | 基于图像特征匹配的商品快速识别方法及系统 | |
US7980473B2 (en) | Camera based code reading | |
JP2019046484A (ja) | 画像認識システム | |
JP2019045909A (ja) | 画像認識システム | |
EP3016028A1 (en) | Systems, methods and articles for reading highly blurred machine-readable symbols | |
CN110472486B (zh) | 一种货架障碍物识别方法、装置、设备及可读存储介质 | |
Bobbit et al. | Visual item verification for fraud prevention in retail self-checkout | |
Gothai et al. | Design features of grocery product recognition using deep learning | |
CN113344012A (zh) | 物品识别方法、装置及设备 | |
CN112232334B (zh) | 一种智能售货商品识别检测方法 | |
CN115018492A (zh) | 一种基于人工智能的智慧校园自动结账方法及系统 | |
US11715292B2 (en) | Methods and apparatus to perform image analyses in a computing environment | |
CN115619791B (zh) | 一种物品陈列检测方法、装置、设备及可读存储介质 | |
JP2771201B2 (ja) | 商品情報分析方法 | |
CN113505156A (zh) | 一种基于改进PrefixSpan算法的交易数据频繁序列模式挖掘方法 | |
CN111783627A (zh) | 商品存量确定方法、装置及设备 | |
CN111126110A (zh) | 一种商品信息识别方法、结算方法、装置及无人零售系统 | |
Hamandi et al. | Comparative Study of Moments Shape Descriptors and propose a new hybrid Descriptor technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |