B站【我是程序汪】
开发人员前端 技术栈 vue 主要任务小程序及PC端页面后端 技术栈 springbootAI商品识别硬件 售货机 锁 摄像头 电子秤开发周期60天开发人数 3人 整体研发费用是20万走的公司合同云服务器2台
后端技术选型

售货机目前市面上已经很多了,特别是风景区车站地铁等,无人售货机目前市面上的成品相对较少,我们利用视频流进行AI自动识别来判断顾客购买了具体什么商品,相比其他售货机体验更好操作也更简单。
本项目涉及3个硬件联调对接 摄像头(成品)、电子秤、门锁
核心流程程序汪还是画个简单的流程图吧,方便大家理解
摄像头这里的摄像头用于监控同时也方便AI识别商品,摄像头本身不需要然后开发,只需要购买市面上的成品就可以。视频推流AI去分析识别出具体商品
摄像头实时捕捉客户取货过程,从而判断客户拿的是什么。与静态识别相比,这项技术需要的摄像头更少,不需要检测所有产品,只需要看客户拿走或放回的产品。摄像头较少,一般都设在门上,空间利用率高。
顾客拿出来商品的瞬间AI就可以识别出商品,如下图
摄像头的文档主要就是配置好网络设置好推流基本操作
电子秤
这里电子秤的作用主要是验证 AI识别的正确性,算双重验证吧。当开门时和拿走商品时,计算重量的变化来确定商品。电子秤会主动上报重量给后端,这里核心的参数是 订单ID
后端系统上架商品会输入相应的重量
电子秤的接口文档
设备登录(A1)
命令报文数据域:
代码
长度
格式
数据
描述
SN
6
HEX
ICCID
10
HEX
CSQ
1
HEX
响应报文数据域:成功响应:
代码
长度
格式
数据
描述
ReturnCode
1
HEX
80
80表示成功
ErrorCode
1
HEX
00
00正常
设备心跳(A2)命令报文数据域:代码
长度
格式
数据
描述
服务响应
代码
长度
格式
数据
描述
Heart
1
Hex
80
服务开启命令(A0)
后端服务通过订单ID 识别具体是哪次交易
命令报文数据域:
代码
长度
格式
数据
描述
timeId
10
HEX
订单ID
relay1_on_off
4
HEX
00,01
00关闭设备 01开启设备 大端序排列
Relay2_on_off
4
HEX
00,01
00关闭设备 01开启设备 大端序排列
Relay3_on_off
4
HEX
00,01
00关闭设备 01开启设备 大端序排列
fan_on_off
4
HEX
00,01
00关闭设备 01开启设备 大端序排列
led_on_off
4
HEX
00,01
00关闭设备 01开启设备 大端序排列
Fan_water
1
HEX
0,1
风机喷雾 0关闭 1开启
fan_speed
1
HEX
1,2,3
1慢速 2中速 3快速
left_right
1
HEX
0-200
对应 0-270度
up_down
1
HEX
0-200
对应 0-270度
led_pwm
1
HEX
30,60,90
30低 60中 90高(亮度)
led_mode
1
HEX
1,2
1冷光 2暖光
响应报文数据域:成功响应:
代码
长度
格式
数据
描述
ReturnCode
1
HEX
80
80表示成功
relay1_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
Relay2_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
Relay3_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
fan_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
led_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
Fan_water
1
HEX
0,1
风机喷雾 0关闭 1开启
结束数据上传(A3)代码
长度
格式
数据
描述
timeId
10
HEX
订单ID
relay1_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
Relay2_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
Relay3_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
fan_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
led_time
4
HEX
0x64000000十进制100
时间秒 正常数据为时间
Fan_water
1
HEX
0,1
风机喷雾 0关闭 1开启
fan_speed
1
HEX
1,2,3
1慢速 2中速 3快速
left_right
1
HEX
0-200
对应 0-270度
up_down
1
HEX
0-200
对应 0-270度
led_pwm
1
HEX
1,2,3
1低 2中 3高(亮度)
led_mode
1
HEX
1,2
1冷光 2暖光
water_error
1
HEX
无水预警
moto_error
1
HEX
升降超时预警
AC_moto_error
1
HEX
防堵预警
DC_error
1
HEX
断电预警
响应报文数据域:成功响应:
代码
长度
格式
数据
描述
ReturnCode
1
HEX
80
80表示成功
Errorcode
1
HEX
00
00
数据
#A01234567890681C02A064000000C80000002C01000090010000F4010000010232323C012516
A0 设备开启指令
设备ID 123456789068
64000000 100 秒 继电器一通道时间
。。。。
。。。。
。。。。
25数据校验和
售货机的开锁
注意关闭门锁后需要后端调用AI 和 电子秤 获去商品信息进行验证,验证通过结算订单
AI商品识别
这里的AI商品识别是找的一个专业团队开发的,这里给大家一个参考吧,市面上成熟的也比较多,你花钱就行
文章最下面分享下腾讯 百度等AI商品识别能力项目资源
小程序以前开发的充电宝项目的小程序非常类似,拿过来改吧改吧就变无人售货机项目了,接私活项目如果你没有可以复用的项目,都是从零开始开发成本就非常高了。
PC端目前主要功能,跟以前充电宝项目基本差不多吧,拿来根据甲方要求,再改吧改吧
AI商品识别项目参考资料https://ai.baidu.com/solution/fmcg/sku
https://github.com/huggingface/pytorch-image-models
https://www.paddlepaddle.org.cn/modelbasedetail/vgg
https://cloud.tencent.com/document/product/865/36457
https://ai.baidu.com/tech/easydl/dkycommodity
程序汪其他私活项目分享
程序汪10万接的线上街机项目,开发周期30天
原文链接 (分享的案例项目和具体资料文档)https://mp.weixin.qq.com/s/nwjJ4i6JZhhvyJnl6NP_kw