Я использую OpenCv и Dlib для выполнения распознавания лиц по ориентирам в прямом эфире из потока с веб-камеры. Язык — Python. Он отлично работает на моем ноутбуке MacBook, но мне нужно, чтобы он работал с настольного компьютера круглосуточно и без выходных. Компьютер представляет собой ПК с четырехъядерным процессором Intel® Core™2 Q6600, 32-разрядная частота 2,40 ГГц, работающий под управлением Debian Jessie. Производительность резко упала: из-за обработки происходит задержка в 10 секунд!
Поэтому я рассмотрел многопоточность< /strong> для повышения производительности:
Сначала я попробовал пример кода OpenCv, и результат отличный! Все четыре ядра загрузились на 100%, а производительность стала намного лучше.
Затем я заменил код обработки кадров своим кодом, и это совсем не улучшило производительность! Только одно ядро достигает 100%, остальные остаются на очень низком уровне. Я думаю, что с многопоточностью дела обстоят хуже.
Я получил код ориентира лица из dlib пример кода. Я знаю, что его, вероятно, можно оптимизировать, но я хочу понять, почему я не могу использовать всю мощность моего (старого) компьютера с многопоточностью?
Я оставлю свой код ниже, большое спасибо за внимание
Я использую OpenCv и Dlib для выполнения [b]распознавания лиц[/b] по ориентирам в прямом эфире из [b]потока с веб-камеры[/b]. Язык — [b]Python[/b]. Он отлично работает на моем ноутбуке MacBook, но мне нужно, чтобы он работал с настольного компьютера круглосуточно и без выходных. Компьютер представляет собой ПК с четырехъядерным процессором Intel® Core™2 Q6600, 32-разрядная частота 2,40 ГГц, работающий под управлением Debian Jessie. [b]Производительность резко упала[/b]: из-за обработки происходит задержка в 10 секунд!
Поэтому я рассмотрел [b]многопоточность< /strong> для повышения производительности:
[list] [*]Сначала я попробовал пример кода OpenCv, и результат отличный! Все четыре ядра загрузились на 100%, а производительность стала намного лучше. [*]Затем я заменил код обработки кадров своим кодом, и это совсем не улучшило производительность! Только одно ядро достигает 100%, остальные остаются на очень низком уровне. Я думаю, что с многопоточностью дела обстоят хуже.[/b] [/list]
Я получил код ориентира лица из dlib пример кода. Я знаю, что его, вероятно, можно оптимизировать, но я хочу понять, [b]почему я не могу использовать всю мощность моего (старого) компьютера с многопоточностью?[/b]
Я оставлю свой код ниже, большое спасибо за внимание :)
[code]from __future__ import print_function
import numpy as np import cv2 import dlib
from multiprocessing.pool import ThreadPool from collections import deque
from common import clock, draw_str, StatValue import video
class DummyTask: def __init__(self, data): self.data = data def ready(self): return True def get(self): return self.data
# This is where the facial detection takes place def process_frame(frame, t0, detector, predictor): # some intensive computation... gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) clahe_image = clahe.apply(gray) detections = detector(clahe_image, 1) for k,d in enumerate(detections): shape = predictor(clahe_image, d) for i in range(1,68): #There are 68 landmark points on each face cv2.circle(frame, (shape.part(i).x, shape.part(i).y), 1, (0,0,255), thickness=2) return frame, t0
Я использую OpenCv и Dlib для выполнения распознавания лиц по ориентирам в прямом эфире из потока с веб-камеры . Язык — Python . Он отлично работает на моем ноутбуке MacBook, но мне нужно, чтобы он работал с настольного компьютера круглосуточно и...
Я работаю над проектом распознавания лиц, в котором я могу сначала зарегистрироваться, а затем запустить сценарий распознавания, который запустит мою веб-камеру и она распознает меня. Я следую этой статье, и она работает отлично.
Я заметил, что если...
У меня есть скрипт распознавания лиц Python, который использует opencv и модуль face_recognition для обнаружения и сопоставления лиц.
Я хочу реализовать это через php-файл. Таким образом, при каждом открытии php-файла запускается сценарий...