银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

作者:曾成训(CH.Tseng)

现实生活中除了单纯以「物品数量」结帐外,还有其他情况是以「秤重」来计算价格的,也就是「重量乘上单位价格」,这类的场景比如水果摊、糖果铺、自助餐、中药行、菜市场等。

如果有一台 POS 机,能够识别物品并自动切换以重量或数量的方式来结帐,该有多方便啊!下面我们就来实际操作一台自动 POS 机,能够识别商品并依据商品种类来决定所采用的计价方式,比如西瓜用斤,鸡蛋用颗数来计算等。

所需材料只要一块普通的树莓派,不需要任何硬件加速器,大约 1000 元就能搞定,对于不需要打印发票或链接后台 POS 系统的小商家可说是相当方便!

功能需求

  1. 自动识别商品
  2. 秤重功能

各个商品可设定自己的秤重单位和单位价格(如公斤、斤、克)

  1. 连续物品的结帐功能(一位顾客会购买多样商品,因此需一样样依次识别秤重后再一起结帐)
  2. 不同类商品但单位重量价格相同,可放在一起同时结帐

使用零件

  • 树莓派板子 x1 (约 350~500 元)

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

其实使用树莓派 3B 即可,识别秤重约 3 秒可完成,但当然如果能使用 4 版当然会更好,使用者体验会更佳!

  • 树莓派 7” 官方屏幕(含触控) x1 (约 450~600元)

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

您也可以使用其它种类的屏幕(只是后面我所附的 3D 打印外壳可能就不适用了),另外程序中的互动方式是以触控方式来设计,因此有触控功能会比较方便。

  • HX711 模组 5 kg 压力感测器 x1 (约 35~70元)

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

这类的压力感测器是将应变片贴附在钢或铝的柱状体上,主要是通过感应这个柱状体上微小的变化来探知物体的重量:另外,HX711 为 24 位元的 A/D 转换器,由于其感应的数值很小,需通过 HX711 模组来放大。

  • Web Camera x1 (约 60~200 元)

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

摄像头使用的是 C310(只要是标准的 USB WebCam 都可以使用),而由于 YOLO V3-Tiny 模型的图片尺寸需求为 416×416,因此使用一般最便宜的 VGA 即可。

3D 打印外壳

外壳设计如下,分别为主体和秤重盘,可一体化树莓派和秤重模组等零件;我是以白色来打印,不过由于屏幕为黑色,因此模型颜色使用黑色其实会更适合。

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

组装和接线

由于零件不多,因此组装相当容易,基本上就是把秤重模组放入圆形凹槽、树莓派含屏幕倒扣在方形凹槽即可。

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

HX711 模组与树莓派的接法如下:

  • VCC 5V
  • GND 接地
  • DT Pin 29(GPIO 5)
  • SCK Pin 31(GPIO 6)

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

组装后的样子:

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

程序设计

  • 使用者动作流程:同一位顾客的多个商品,可使用结帐按钮来累积其金额:清空按钮则可清除目前的购物车,开始下一位客人的结帐。

银联POS机:「人工智能」自制以「秤重」来计算价格的 AI POS 收款机

  • 秤重模组程序 :HX711 在网络上有现成的 python module 可直接使用,我参考的是这个,有稍加修改后再整合到程序中;这个程序每次执行时,会先侦测目前的重量,以其作为基准(代表重量为零),所以一开始执行程序时记得不要放任何东西在秤盘上。

程序和参数说明

如果您使用的零件都相同,基本上只要修改设定 pos.ini 的内容,并改成您自己训练好的模型即可。

各项参数说明如下:

[products]#格式为 Label ID: [品名, 单价(每重量单位或每个), 计价单位]#计价单位 --> g:斤, kg:公斤, gram:克, one:一个labels_tw={"v1":["橘子", 42, "g"], "v2":["鸡蛋", 10, "one"], "v3":["绿辣椒", 18, "g"], "v4":["玉米荀", 0.25, "gram"], "v5":["小蕃茄", 12, "g"], "v6":["枣子", 30, pos机套现 "one"], "v7":["哈密瓜", 65, "kg"], "v8":["苹果", 25, "one"], "v20": ["红萝卜", 8, "g"], "v22":["牛奶芭乐", 20, "one"], "v23":["带壳玉米荀", 0.15, "gram"] } [camera]cam_id=0#(H, V) 是否水平或垂直翻转画面flipFrame=(False,False) #是否将过程录制成影片record_video=True #影片名称video_out=output.avi #每秒帧数frame_rate=2 [desktop]#背景图片的路径名一清POS机称bg=images/bg.jpg #(y,x) 购物车的显示尺寸cart_list_size=(350,250) #仅仅显示用, 侦测种类detection_txt=蔬菜 [operation]#CN, ENlang=cn#seconds 商品结帐的结果, 要显示几秒wait_for_next=3 [yoloModel]# yolov3-tiny, yolov3 可选择YOLO-Tiny或YOLOV3版本modeltype=yolov3-tinyobjnames=model/obj.namesweights=model/yolov3-tiny_81000.weightscfg=model/yolov3-tiny.cfg [system]#是否切换到全屏幕来执行full_screen=Truename_win=AI_POS

小结

不同种类的物品可设定专属的秤重单位(公斤、克、斤),或换成以数量计价;商品的识别时间约为 4 秒,如果想要更快的速度,可将树莓派 3 替换成第四代,或者加上 NCS 加速棒甚至改用 Jetson Nano,相信能得到更好的识别效率。

编辑:AI智慧

拉卡拉POS机办理 养卡POS机

拉卡拉POS机免费申请,免费办理,卡拉合伙人,添加QQ/微信:191506129  备注:POS机

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至191506129@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.hhrkala.cn/46555.html