背景
去年,我萌生了将古钱币对版工作自动化的想法,并在园地发表了一篇文章,记录了当时的探索过程(https://bbs.chcoin.com/show-16020084.html)。当时主要采用的是图像处理技术和一些图像匹配算法来实现相似度匹配。然而,由于古钱币在多年的流通、埋藏和磨损过程中,其图像特征变得复杂多变,给图像处理带来了不小的挑战,所以,基于图像尺度不变性算法进行相似度匹配来对版的方法失败了。尽管如此,我还是得到了园地许多泉友们的宝贵建议和支持,这让我决定采用机器学习的方法来解决这一难题。然而,由于生计的忙碌,我一直没有机会对此进行深入研究。最近在读书时,读到了马斯克的一段话,深感启发:"一个人应该追求他们所热爱的东西,这将使他们比其他人更加快乐。" 于是,我决定再次投身于这项工作中。
过程
首先,我明确了使用机器学习的方法来实现古钱币的自动化对版。我审视了自己手头的资源和技能(作为一个会编程的资深程序员,没有GPU,对钱币版别有一定的了解),便开始了这项工作。第一步,选择合适的预训练模型至关重要,我选择了近年来广受欢迎的残差神经网络(ResNet)模型作为基础模型,并编写了相应的训练代码。第二步,数据处理,也是最具挑战性的环节,由于个人难以收集到充足的数据,我决定专注于一个小类别中的一个子集,例如崇宁通宝的宽字和木崇离宝版别,我从各个渠道收集了一些用于训练和验证的图片。第三步,即使没有GPU,我也可以使用CPU进行训练,虽然速度慢了10倍,但时间对于我来说并不是问题。
用于训练和验证的图片:
结果与总结
模型训练完成后,准确率达到了85%,但在实际测试中并没有达到预期的准确度。为此,我查阅了更多资料,了解到使用ResNet作为基础模型需要大量的标注数据的支持。鉴于我采集的数据量有限,我最终更换了基础模型(vgg-16),并重新进行了训练。最终,模型的准确率达到了81%,在实际测试中,我用了13张图片,全部识别准确,准确率达到了100%。虽然在小样本的数据中得到了不错的结果,但是距离针对大量的古钱币对版的工程化应用还是有很大差距,但至少证明了这条路理论上是可以实现的,根据第一性原理,这条路理论上是可以走通的。也希望有资源、有能力的各位泉友们努力,争取实现高准确率的全品类古钱币自动对版功能。
程序和验证图