在弗吉尼亚州的夏洛茨维尔,有一位热衷于DIY硬件项目、3D打印以及机器学习与计算机视觉的人。他虽然已经快乐地工作,但总是乐于合作,解决创新或独特的问题。
如果对卡片收藏品感兴趣,那么对这些卡片进行鉴定或评估其真实性和质量是非常理想的。然而,获取卡片鉴定服务的机会是有限的,这些服务通常由训练有素的专业人员提供。但这种对此类服务的依赖也带来了巨大的成本。
这些服务可能既慢又昂贵。专业的鉴定可以在拍卖中将物品的价值提高数倍,有时甚至超过10倍。在这种情况下,每张卡片的价格通常在50美元或更高,这是可以被证明的。
但这就引出了一个问题:如果是业余收藏家,怎么知道哪些卡片值得鉴定呢?在许多情况下,eBay上的列表充斥着卖家,他们可能拥有非常有价值的卡片,但并不知道他们正在出售的是什么。这可能导致定价过高或过低的列表,以及误导性的标题,旨在夸大价格,例如对它可能的价值或可能获得的鉴定等级的猜测。
此外,收藏品的价格可能会随着时间的推移而大幅上涨。一个例子是2020年复古宝可梦卡片价格的快速上涨。不幸的是,专业的鉴定服务可能需要数月甚至超过一年的时间来完成一张卡片的鉴定。如果试图利用价格的上涨,那显然是不够的。
计算机视觉可以帮助解决鉴定收藏卡片的一些常见问题,如边缘磨损、角落磨损、卡片居中和卡片表面的损伤。就是这么做的!
构建了一个概念验证模型,使用了大约150张不同外观状况的宝可梦卡片的图像,包括已鉴定和未鉴定的。每张图像包含一张大致居中且平放在框架中的宝可梦卡片图像。
编写了几个网络爬虫,从eBay上抓取数据,并存储了与列表价格、成交价格、日期以及当然,每个相关的图像的映射。这些网络爬虫是从头开始用Python和BeautifulSoup库编写的。最初,使用LabelImg标记图像,但后来转而使用Roboflow的内置注释器。
Roboflow的“数据集健康检查”帮助比想象的更多地理解了数据!它不仅帮助保持了核心类别的代表性,而且大致相等的数量,而且还遇到了一个问题,模型在检测卡片左上角的磨损边缘时遇到了更大的困难。Roboflow的热图工具显示,与其它三个相比,所有磨损或折痕边缘的例子中,左上角的代表性极低。
大部分的预处理步骤都是通过Python脚本手动完成的。感到舒适地过滤掉任何不符合可能稍后需要的上传图像的某些预期标准的图像。这样的限制之一是卡片需要完全平放,不能在框架中出现倾斜。依靠OpenCV算法进行边缘检测,围绕卡片的边缘和框架,很容易计算出每条线的斜率,确保卡片在图像中是平放的,没有倾斜。
为了考虑到用户拍照时可能存在的各种光照条件,使用了Roboflow的图像增强技术。还对模糊、曝光和饱和度进行了增强,以适应最终产品中可能提供图像的各种类型的相机和智能手机。
尝试了VGG-16的瓶颈,然后使用Roboflow自己的教程和Jupyter笔记本在数据集上训练了YOLOv5。YOLOv5最终被证明是项目的更好的长期方法。
模型仍在开发中;最终打算将这个模型托管在一个API后面,允许用户上传他们的个人卡片照片,并接收有关卡片估计质量的信息,以及过去15/50/200天的平均价格。