业务算法逻辑征求更优的解决方法
背景:
如图, 每隔一段时间就有一个物体从左或右经过图像获取区域,3个设备可以自主根据特征获取到最佳的画面(即物体在画面正中的画面),由于物体在轨道上位置前后左右并不固定,3个画面都有可能最先获得最佳画面也有可能最晚获得。最后当物体经过识别区时,会将它的名字返回到程序里面,那么应该如何设计算法组合数据呢?组合数据应当包括物体名字和3个设备获取到的画面信息。
例如: 物体名字-A.jpg, 物体名字-B.jpg, 物体名字-C.jpg这样3个图片即为一组数据
目前的解决方案:
由于上述信息获取的时间前后顺序并不确定(可能是先得到名字,然后得到ABC图片,也可能是先得到图片再得到名字)且物体与物体经过有一定的时间差,所以我设计了触发计时器,每个获得的信息都能触发这个计时器,计时器5分钟后执行判断程序,如果上述信息获得的时间差在一定时间范围内则把他们包装成一组信息存储下来。
但是我总感觉这样的解决方案不够优雅,故而提问是否有更优的解决方案
回答:
你是不是觉得5分钟计时器这一点不够优雅呢?
我的思路是,这个问题应该是一个消费者组装多个生产者生产的零件的模型。
那么采用多线程,3个画面识别和1个名称识别各自为一个线程,向4个队列/1个队列生产零件,另一个消费者线程从队列中获取并组装零件,每来一个零件就判断一下是不是拿齐了(这里可以采用线程通知,或者轮询等方式),如果拿齐了就判断是不是在一定时间范围内并组装。这样就能在抽象推广模型的同时消除5分钟这个魔数。
以上是 业务算法逻辑征求更优的解决方法 的全部内容, 来源链接: utcz.com/p/938389.html