首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生产线上找出异步的

在生产线上找出异步的
EN

Stack Overflow用户
提问于 2018-11-16 14:39:44
回答 1查看 54关注 0票数 0

有两个摄像头Cam1和Cam2安装在一条生产线上。他们配备了传感器,一旦产品接触到其中的一个,就会发出信号。这些摄像机放在另一个后面。

经过Cam2,一个平衡B被安装,并提供一个传感器以及。当产品到达那里时,产品将被称重,并用重量向我的程序发出信号。然后,我的程序必须根据从B(重量)接收到的两个捕获图像和数据对此产品进行评估。

实际上,一个或两个产品可以适合于Cam1和Cam2之间。Cam2和B之间也有一、两个产品可供选择。

我遇到了一些困难,以找到一个稳定的算法,以确定图像,以及权重,是否属于同一产品。工厂内部有一些条件是无法改变的:

  1. 线路的速度未定。(该线路可因任何原因随时停止,可加速/减速,可由那里的工人手动移动,.)
  2. 产品可以在Cam1:之后删除
    • Cam1 & Cam2 ==>之间只被Cam1捕获,没有从Cam2获取的图像,也没有来自B的数据
    • 在Cam2和B之间,==>被Cam2和Cam1捕获,但没有从B中获取数据

  1. 没有办法把这种可读的芯片贴上唯一的号码,这样我们就可以在Cam2 &B上读取,以确保同步。

这个问题必须解决programmatically.工厂有完全的障碍,使我无法在那里做任何修改。

我最初的解决方案是为每台相机( FIFO_Cam1 & FIFO_Cam2 )分配一个FIFO。一旦我的程序接收到来自其中一个摄像机的信号,方便的FIFO就会将所捕获的产品图像排在队列中。然后,当我收到来自B的信号时,我从每个FIFO中排出最上面的图像,并认为它们属于同一个产品,它的权重也与最后一个信号相同。

不幸的是,我的考虑只能解决速度问题(Nr.1),而不能解决(Nr.2)的所有情况。

当保存到FIFO_Cam1中的产品数量超过5个时,我试着设定一个阈值,我会用反同步发出信号,但是不能正常工作,无法解决大多数情况。

任何帮助或想法都将不胜感激!

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-11-16 16:05:35

你需要一个信号,让你知道,线停止或急剧减慢。

因此,为了处理丢失的产品,我会存储图片/测量时的时间戳。

如果直线以相同的速度运行,那么您应该始终看到事件之间的相同时间差。如果一个产品丢失了,那么下一个度量值将达到所需时间的大约2倍,因此您可以在fifo中查找与您预期的时间增量相匹配的项目。您还可以跟踪同一队列中的连续时间戳。它还会告诉你有多少产品可能被跳过。

为了允许行速度发生一些变化,您应该在持续的基础上更新时间增量(最后一个成功项)。显然,如果线路停止,您需要考虑停止时间(这就是为什么您需要一个信号为它,我认为这将更容易标记每一个产品)。如果你能测量线的速度,它将是更好的,因为你可以更准确地调整你的预期三角洲。

这仍然是一些近似的解决办法。一定要考虑到测量中的一些错误。如果线路速度发生了巨大的变化,或者被删除的产品数量太高,这可能仍然无法工作。例如,假设第一个摄像头扫描了10种产品,然后这条线停了一会儿,然后以不同的速度启动,有人把8种产品踢出了线,现在你得到了下一张2张照片。要确定如何把后来的照片和第一张画配对是不可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53339963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档