[英]OpenCV - detecting missing coins from a tray using a live camera feed
我正在构建一个系统,该系统可以检测从托盘中拾取的硬币。 该托盘将保存在公共场所。 人们会捡起一个或多个硬币,但预计会在一段时间后将其保留。
我将通过顶部的摄像头进行实时直播。 我将在一天开始时进行一个校准步骤,例如,该步骤将捕获用于与实时数据进行比较的托盘的初始状态。 如示例图像所示,开始时可能有几个插槽是空的。
我需要检测最初具有硬币但在一天中任何给定时间点都没有硬币的插槽。
我正在尝试使用OpenCV的几种方法:
SSIM的区别 :我可以使用SSIM查找实时图像帧和初始状态之间的差异。 但是,插槽的数量大于相应的硬币大小(例如,前两行)。 这可能意味着,如果硬币最初放置在中心,但后来又放回接触边缘之一,我们可能会得到误报。
斑点检测 :或者,我可以预送(或检测)插槽坐标。 然后在每个插槽中进行斑点检测。 如果在原始状态下存在斑点,但在相机镜框中没有斑点,则意味着已捡起硬币。 但是,如果硬币和托盘之间的对比度较低,则准确的斑点检测可能会成为一个挑战。
我可能还需要注意照明的细微变化,因为人们四处走动时会产生阴影。
对这些想法有什么想法,或者对可以尝试的替代方法有何想法? 我可以从中学习类似的实现吗?
提前谢谢了。
编辑:感谢@ I.Newton的建议。 对于那些偶然发现此问题并将从示例实现中受益的人,请查看此处: https : //github.com/kewats/computer-vision-samples/tree/master/image-processing/missing-coins-detection
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.