在Python(Pyzbar)中利用多个CPU核进行QR读取

2024-05-13 21:25:06 发布

您现在位置:Python中文网/ 问答频道 /正文

背景:

我们需要解析许多二维码。我们有一个主要的过程,可以产生像消防水带一样的图像流(见下面的示例)。对于解析,我们使用Pyzbar。到目前为止,这是我们在Python中发现的最快的库,也是对低质量照片最宽容的库。硬件是NVidia Jetson Nano,具有4核CPU和4GB内存。我们可以选择在本地网络上的两个不同Jetson Nano上部署主进程和QR解析。云不是一个选项,我们离线运行

enter image description here

问题:

我们如何将QR码解析扩展到多个CPU核?就我所见,Python中的多线程不是答案

我的(假设)解决方案:

我的想法是运行4个相同的进程来解析QR码,使用RAM驱动器在它们之间分配工作负载。主进程会将图像放入RAM驱动器。将图像移动到其自己文件夹的第一个QR读取过程将获得作业。将文件系统视为信号量假定文件移动是一个原子操作,并且可以安全地抵抗多个饥饿进程(是吗?)。解析的结果可以通过使用文件名作为ID的简单HTTP调用传回主进程

问题:

  1. 关于文件移动是原子的,我的假设正确吗
  2. 对我来说,我的解决方案似乎设计过度了。同样的工作也可以通过C#中的一个简单线程池调用来完成。欢迎任何更简单/更好的解决方案。除了硬件是Nvidia Jetson Nano之外,我们的手是相当自由的。为了使我们的代码库、开发环境和部署过程保持简单,最好使用Python

Tags: 文件图像硬件nano进程过程部署cpu