python DLib實時性不夠,通過多執行緒來解決

2021-09-01 23:44:40 字數 2070 閱讀 5861

# created at 2017-11-27

# updated at 2018-09-06

# author: coneypo

# dlib:

# blog:

# github:

import dlib

import time, threading

import queue

#from skimage import io

import cv2

import time

imglist = queue.queue(maxsize=1000)

url = ''

# 使用 dlib 的正面人臉檢測器 frontal_face_detector

detector = dlib.get_frontal_face_detector()

# dlib 的 68點模型

predictor = dlib.shape_predictor("../face_lib/shape_predictor_68_face_landmarks.dat")

# 所在路徑

# 生成 dlib 的影象視窗

#win = dlib.image_window()

#win.set_image(img)

cap = cv2.videocapture(url)

# 使用 detector 檢測器來檢測影象中的人臉

#s = time.clock()

print(cap.isopened())

#imglist =

def get_img():

while (cap.isopened()):

iss,frame = cap.read()

frame = cv2.resize(frame,(640,320))

imglist.put(frame)

def get_face():

while true:

if not imglist.empty():

img = imglist.get()

faces = detector(img, 1)

for i, d in enumerate(faces):

print("第", i+1, "個人臉的矩形框座標:",

"left:", d.left(), "right:", d.right(), "top:", d.top(), "bottom:", d.bottom())

cv2.rectangle(img,(d.left(),d.top()),(d.right(),d.bottom()),(0, 255, 0), 2)

shape = predictor(img, faces[i])

for i in range(68):

cv2.circle(img, (shape.part(i).x, shape.part(i).y), 2, (0, 255, 0), -1, 3)

#

cv2.imshow('face2', img)

cv2.waitkey(1)

# faces = detector(frame, 1)

#cv2.waitkey(0)

#cv2.waitkey(0)

#print(time.clock()-s)

# 繪製面部輪廓

# win.add_overlay(shape)

ts = threading.thread(target=get_img,name='getimg')

td = threading.thread(target=get_face,name='disimg')

ts.start()

td.start()

# 繪製矩陣輪廓

#win.add_overlay(faces)

# 保持影象

#dlib.hit_enter_to_continue()

多執行緒,單佇列的思路來,充分利用cpu,這個時候,體驗較流暢。

python dlib 面部輪廓實時檢測

coding utf 8 import cv2 import os import dlib def assure path exists path dir os.path.dirname path if not os.path.exists dir os.makedirs dir vid cam c...

實時性之硬實時與軟實時

什麼是實時性?實時性指時鐘訊號能夠準確的定時,各處的時鐘能夠達到一致。什麼是硬實時?硬實時系統有乙個剛性的 不可改變的時間限制,它不允許任何超出時限的錯誤。超時錯誤會帶來損害甚至導致系統失敗 或者導致系統不能實現它的預期目標。什麼是軟實時?軟實時系統是乙個柔性靈活的,它可以容忍偶然的超時錯誤。失敗造...

Storm 實時性分析

都說storm是乙個實時流處理系統,但storm的實時性體現在什麼方面呢?首先有乙個前提 這裡的實時性和我們通常所說的實時系統 晶元 彙編或c編寫的實時處理軟體 的實時性肯定是沒法比的,也不是同乙個概念。這裡的實時性應該是乙個相對的實時性 相對於hadoop之類 從網上找了一些資料 總結一下,sto...