我创建了一个简单的人脸检测程序,它使用Haar Cascade来检测人脸。我的代码如下:
def main():
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
while 1:
ret, frame = cap.read()
img = rescale_frame(frame, percent=50)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
bColor = (255,0,0)
gColor = (0,255,0)
rColor = (0,0,255)
for (x,y,w,h) in faces:
if (len(faces)%3 == 0):
cv2.rectangle(img,(x,y),(x+w,y+h),rColor,2)
if (len(faces)%3 == 1):
cv2.rectangle(img,(x,y),(x+w,y+h),gColor,2)
if (len(faces)%3 == 2):
cv2.rectangle(img,(x,y),(x+w,y+h),bColor,2)
cv2.imshow('Detected face',img)
k = cv2.waitKey(30) & 0xff
if (k == 27) or (k == 13):
break
cap.release()
cv2.destroyAllWindows()
我想在GPU上执行 face_cascade.detectMultiScale()。 有人可以建议我如何使用PythonOpenCV的OpenCL指令来实现它吗?
我尝试使用OpenCL for OpenCV:https://opencv.org/platforms/opencl.html和https://docs.opencv.org/2.4/modules/ocl/doc/introduction.html,但Python集成的示例非常有限。