基于机器视觉室内定位的智能购物车设计
扫描二维码
随时随地手机看文章
引 言
当前,大多超市由于存在商品导购技术落后、购物车需要手推等问题,降低了用户的购物体验。随着互联网技术的发展,线上交易营销方式的冲击导致实体销售企业的发展更加艰难,迫切需要通过提供更好的购物环境来吸引消费者。由于技术的限制,现有的智能购物车存在识别精度不高、复杂环境出错率较大和成本较高等问题 [1],不能在市场中广泛推广应用。因此,提供更加便捷智能的自动跟随购物车代替人工导购模式,将成为现阶段各大商店提高用户消费体验、吸引顾客愉快购物的重要技术手段。
本文针对目前实体超市行业存在的问题,设计了一种新型智能购物车。该购物车采用了成本较低、识别精度较高的室内机器视觉识别技术,配合使用 AprilTag 标志能在环境复杂的超市内完成智能导购以及自动跟随。方便用户选用自动跟随模式 [2] 后在解放双手的同时带给用户和超市极大的便利,节约人力资源及时间成本,大大提高了实体销售行业的竞争力。
1 系统总体结构
如图 1 所示,STM32 作为各模块通信的桥梁,是购物车系统的运行中枢。WiFi 模块 ESP8266[3] 将购物车的数据上传和下载到云端服务器,顾客手机的 APP 连接云端服务器后便可实现购物车与手机的通信。显示器作为顾客与购物车交互的一种方式,在完成手机 APP 已有功能的同时,还能避免用户暂时无法使用手机而无法启动购物车的情况出现。视觉模块 OpenMV 用于识别 AprilTag 标志,获得 ID 和 3D 数据完成室内定位和跟随 [4],电机驱动模块用来控制减速电机完成车体运动 [5]。
图 1 系统结构
2 功能与设计
本文所设计的购物车共有 2 个模式,分别为跟随模式和导购模式。在跟随模式下,顾客只需在背部佩带 AprilTag 标签,购物车便能实时跟随顾客,解放顾客的双手。导购模式需要在超市地板上铺设导航地图,顾客通过手机 APP 选择自己需要的商品,购物车引导顾客走到商品处,方便顾客寻找商品。两种模式均通过识别 AprilTag 标志读取 AprilTag 的3D 数据和 ID。
2.1 跟随模式设计
购物车的跟随模式基于 AprilTag 的 3D 定位 [6] 技术实现。通过 OpenMV[7] 读取 AprilTag 的 3D 数据定位顾客与购物车的空间位置。
如图 2 所示, 通过 OpenMV 寻找 AprilTag 函数就能得到 AprilTag 相对于 OpenMV 空间上的 6 个 3D 数据, 分别是 3 个旋转量 Rx,Ry,Rz 和 3 个坐标 Tx,Ty,Tz,用于用户跟踪。
2019年 / 第6期 物联网技术 77
图 2 AprilTag 输出的 3D 数据
跟随模式流程如图 3 所示,顾客通过手机或显示器选择跟随模式,此时购物车启动跟随模式,并等待顾客输入领取的 AprilTagID。顾客输入完毕后,购物车首先识别顾客背上的 ApilTagID 号是否为要跟随的 ID 号,以避免跟错。如果是,则读取 3D 数据,使用 Rx,Ry,Rz 调整购物车转向,使购物车朝向顾客 ;使用 Tx,Ty,Tz 调整顾客与购物车的距离, 使顾客与购物车的相对位置保持不变,实现智能跟随。将上述数据作为测量值与经过试验测得的设定角度、距离值作为设定值代入 PID 算法 [8],经 PID 算法使输出值在遇到较大偏差时及时进行调整,若偏差较小则根据累计误差使跟随变得更加平缓,将 PID 输出值转换成电机驱动数据,主控板根据电机驱动数据驱动电机,保持顾客与购物车的相对距离不变。
2.2 导购模式设计
购物车导购模式是基于循迹 [9] 以及识别 AprilTag 的 ID实现的。
AprilTag 与 QRCode 均通过在一个矩阵空间中的黑色和白色方块进行信息表示,但由于组成 QRCode 的像素比AprilTag 多,所以 QRCode 可以存储上百个字节的数据,一般用来存储网站的地址数据 ;AprilTag 存储的数据一般用于识别 AprilTag 的 ID。也正是如此,识别 AprilTag 的准确度和抗干扰能力要比 QRCode 高很多,AprilTag 中的TAG36H10 有 2 319 个 ID,即使是大型超市,AprilTag 也有能力进行室内定位标记。图 4 所示为 10 个 AprilTag 及其ID 号
图 4 AprilTag 图
导购模式需要在超市铺设导航地图。超市地图如图 5 所示。在超市地面上的每个转弯口和每个货架旁都放置一个AprilTag 标志,当购物车行驶到某个 AprilTag 标志时,读取其 ID,从而获悉购物车所处位置,并根据路径数组得到此处的 AprilTag 转向指令。将相邻两个 AprilTag 标志用黑线连接, 给购物车循迹,引导购物车到下一个 AprilTag 标志处。
当顾客通过手机 APP 或显示器选择了导购模式并输入想要买的商品后,购物车的主控板就能接收到商品信息。一个商品信息对应一个路径数组,路径数组的每一个位对应一个 AprilTagID,每一位值指示到达对应 AprilTag 时的转向或停止指令。购物车在导购时,执行黑线循迹程序,同时判断是否检测到 AprilTag。当检测到 AprilTag 并获得 AprilTagID后,就从路径数组中获得对应 AprilTagID 的转向指令,根据转向指令驱动电机转向,如果转向指令为左转,则购物车左转 ;如果转向指令为右转,则购物车右转。当检测到停止指令时,购物车便到达了指定地点并停止。至此,购物车就完成了一段路径的行走。导购流程如图 6 所示。
3 购物车软件设计
购物车的交互方式如图 7 所示,主要由两种方式操控。一种是手机 APP[10] 控制,APP 主界面如图 8 所示 ;另一种是由购物车上的显示器控制,显示器界面如图 9 所示。
顾客可以使用手机连接超市的 WiFi,进入 APP 后便能对购物车下达指令。也可以使用购物车上的显示器,选择显示器上的其中一种模式来操控购物车。
3.1 手机 APP 设计
手机 APP 在 Android Studio 环境中开发,将云服务器和WiFi 模块作为中枢进行数据的发送和接收,主要实现的功能包括跟随模式或导购模式选择、商品搜索、商品浏览等。
(1)手机 APP 的主界面包括智能跟随模式界面和智能导购模式界面,用户只需根据需求或喜好点击相应的模式即可。若选择智能导购模式,则界面会出现输入框,用户在输入框中输入想购买的商品并搜索,或点击底部按钮切换界面。
(2)无论选择哪种模式,用户都可以切换至商品界面,在该界面中,用户可以在搜索框中输入自己想了解或者购买的商品,也可以浏览该界面下的商品。
3.2 显示器界面设计
显示器为智能购物车上的控制面板,用户使用交互界面可方便快捷地操作购物车,对购物车提出对应的任务要求。
(1)用户只需点击相应图标即可选择智能跟随模式或智能导购模式。
(2)显示器交互界面显示当前购物车所在区域、所购买商品总价以及商店的商品推送,以增强用户的消费体验。
4 结 语
随着物联网的迅速发展,万物联网是未来的必然趋势,无人超市等新型超市的出现也说明了这一点。本文设计的集跟随、导购于一身的智能购物车,最大程度解决了顾客寻找商品不便的问题,同时还解决了孕妇、老人等手脚不方便的顾客难以携带商品等问题。与其他智能购物车相比,本文设计的购物车在室内定位方面拥有成本低、精度高、适用范围广等优点。综上所述,本购物车具有较高的实用价值以及较广阔的市场前景。