将多线程与 dlib 的shape_predictor结合使用



我正在使用dlib训练一个形状预测器,用于对图片进行地标检测。到目前为止一切都很好,我的成绩也不错。我正在使用

options = dlib.shape_predictor_training_options()

options.num_threads = 12

这是我的cpu线程数。我试过其他数字,但在训练时只使用了1个核心。

我想用我所有的核心力量进行训练,因为这只需要1分。

我在windows 10上使用conda-env、python 3.5.6和dlib 18.18。我在网上找不到这个问题的任何解决方案。希望得到你们的帮助。

这里也有类似的问题。我在做人脸识别,而不是训练。我使用的是函数dlib.get_frontal_face_detector((.

或多或少我是这样解决的。

我有脚本my_script.py.

里面有函数my_script((。

在my_script((中有几个指令,特别是dlib函数。

import dlib
def my_script():
dlib.get_frontal_face_detector().

在my_script.py中有函数my_script((,还有一个经典的多线程代码块。

此多线程代码适用于每个线程函数,但不适用于my_script((,因为它包含DLIB FUNCTIONS。

因此,我删除了多线程代码,并在后台的bash shell中运行了几个my_script.py实例。

my_script.py &
my_script.py &
my_script.py &
etc..

更好的解决方案是使用SUBPROCESS。

所以我创建了另一个脚本my_script2.py。里面有两个代码块。

A。下面定义的函数my_script2((。

B。一个经典的多线程代码块。

作为线程函数,我使用函数my_script2((。

在my_script2((中有命令subprocess.run.

命令subprocess.run调用my_script.py.

在my_script.py中只有函数my_script((。

正如您在前面的示例中看到的,在my_script((中有函数dlib.get_frontal_face_detector((.

def my_script2():
command='python my_script.py'
os.chdir(directory_of_myscript)
subprocess.run(command,shell=True)

我只是想观察一下,有些人也有类似的问题。

  1. OpenCV/Python:实时人脸识别的多线程

  2. 如何使用多线程优化人脸检测?