【发布时间】:2019-10-21 12:35:04
【问题描述】:
我创建了一个机器学习软件,它可以检测对象(呃!),根据一些计算机视觉参数处理对象,然后触发一些硬件,将对象放入相应的 bin 中。物体被放置在传送带上,相机安装在一个点上,以便在物体通过相机下方时拍摄物体(一次一个物体)的照片。我无法控制传送带的速度。
现在,挑战是我必须配置大量的东西才能让机器正常工作。
第一个问题是模型创建分割掩码所需的时间,它因对象而异。
另一个问题是我如何维护计算机视觉处理后生成的信号,以不会与基于计算机视觉的推理不一致的方式将它们发送到执行器。
我的初始设计包括创建负责特定任务的流程,然后根据需要让它们相互通信。但是,同步问题依然存在。
到目前为止,我正在考虑将软件堆栈视为一组服务,就像我们通常在后端做的那样,并使用 celery 和 Redis 队列之类的东西使它们进行通信。
我是系统设计方面的菜鸟,来自数据科学背景。我探索了 python 的多线程模块,发现它无法用于我的目的(所有线程都在单核上运行)。我担心如果我使用多处理,由于消息传递,单个进程可能会出现额外的延迟,因此会给程序增加另一个不确定性。
其他细节:
- 编程框架和库:Tensorflow、OpenCV 和 python
- 相机分辨率:1920P
- 最大加速速度:3 次触发器/秒
- 深度学习模型:MaskRCNN/UNet
P.S:您还可以评论我应该搜索的技术或关键字,因为普通搜索不会产生任何好处。
【问题讨论】:
-
对于这是否过于宽泛,或者是否适合迁移到软件工程站点,我有两种看法。不过,这绝对是题外话。
-
@Useless 我认为你是对的。这是一个适当的软件工程问题。我应该把这个问题留在这里,然后在那个交流中写一个新问题吗?
-
如果您无法迁移它,我只需将文本复制到那里的一个新问题并关闭这个问题 - 老实说,它更有可能吸引反对票而不是答案。这仍然是一个大问题,我不确定你是否真的可以拆分它,但至少它会成为话题。
-
非常感谢。结束这个问题。
标签: python tensorflow deep-learning robotics