自动化交易卡库存系统:树莓派、乐高与 AWS Rekognition 实战
利用树莓派、乐高搭建的平台以及 AWS 服务,为您的交易卡和收藏卡构建数字化目录。
项目背景
当我发现一盒《万智牌》卡牌时,我想知道自己拥有多少张卡以及它们的价值。手动记录每张卡太繁琐,因此我着手实现自动化。该方案结合了树莓派、定制乐高平台、AWS S3 与 Rekognition 服务。
工作流程
- 使用安装在乐高平台上的树莓派摄像头拍摄卡牌标题。
- 将图片上传至 AWS S3 存储桶进行存储和批量处理。
- 运行 AWS Rekognition 提取文字,再通过定价 API 查询当前市场价值。
乐高平台设计
我选择了一个中型乐高收纳盒,而非木工制作——这是一种低成本、低损耗且能保护卡牌的方案。设计灵感源自一款 7 美元的卡牌分拣器。后部伺服电机驱动轮子每次仅推进一张卡牌,前部轮子保持卡组稳定。我将几张卡粘合增加重量,确保每个循环只移动单张卡。摄像头位于平台上方几英寸处,角度精准对准标题区域。
排线长度曾是个小挑战;使用更长的排线可提高可靠性。
硬件清单
树莓派非常适合运行控制伺服电机和拍照的 Python 脚本。所需组件:两个伺服电机、Pi Camera、5V 电源(接在面包板上以便供电)。
代码实现
所有代码基于 Python 2.7 编写。一个脚本控制伺服电机并拍照;另一个处理存储在 S3 中的图片并调用 Rekognition。
将一套卡牌放入平台后,运行:
python mtg_servo.py <set_abbreviation>
脚本会驱动伺服电机扫描卡牌,并将每张图片保存到以套装缩写命名的文件夹(如 M13)。吞吐量约为每分钟 20–25 张卡。
AWS S3 与 Rekognition
虽然 Tesseract 和 OpenCV 功能强大,但 Rekognition 在光照和定位容错性上更胜一筹,且上手更容易。注册 AWS 账号(免费)即可在免费额度内每月处理 5,000 张图片。图片需手动上传至 S3 存储桶(目录结构为 /set_name/file.jpg)。
以下截图展示了 Rekognition 在照片不完美时依然保持的高识别率。
所有图片上传至 S3 后,自动执行 OCR 并导出 CSV:
python Rekognize_S3.py <set_abbreviation>
在 920 张扫描卡牌中:
- 619 张完全匹配(67.3%)
- 201 张仅相差一个字母(21.8%)
- 100 张相差多个字母(10.9%)
OCR 完成后,我调用 TCGplayer API 获取实时价格。除已估价卡牌外,普通、非普通和稀有卡总价值约 275 美元。
更新(2018-05-27): Rekognition 脚本现可实时将识别文字流式传输至 TCGplayer API 并写入文件。API 访问需简短申请流程。
结语
希望这个项目能激发您探索数字化卡牌目录的兴趣。我计划将系统扩展至体育卡和其他收藏套装。祝扫描愉快!
来源: 交易卡扫描/整理器
制造工艺