Python openCL cv2.UMat对象不可编辑
事实上,我不太明白如何使用这个T-API opencl,而且在文档中还是新手 它使用cv2.UMat来读取.image文件,然后读取它。在我的问题中,我想将opencl T-API用于我的<代码>重建器。预测代码>行,因为图像是在流式摄影机时拍摄/处理的Python openCL cv2.UMat对象不可编辑,python,opencv,opencl,odroid,Python,Opencv,Opencl,Odroid,事实上,我不太明白如何使用这个T-API opencl,而且在文档中还是新手 它使用cv2.UMat来读取.image文件,然后读取它。在我的问题中,我想将opencl T-API用于我的重建器。预测行,因为图像是在流式摄影机时拍摄/处理的 recognizer = cv2.face.LBPHFaceRecognizer_create() #colec = cv2.face.MinDistancePredictCollector() recognizer.read("trainer_data_
recognizer = cv2.face.LBPHFaceRecognizer_create()
#colec = cv2.face.MinDistancePredictCollector()
recognizer.read("trainer_data_array.yml")
labels = {"persons_name":0}
with open("labels.pickle", "rb") as f:
og_labels = pickle.load(f)
labels = {v:k for k,v in og_labels.items()}
cap = cv2.VideoCapture(0)
while(True):
#video cap
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
for (x,y,w,h) in faces:
#print(x,y,w,h)
roi_gray = gray[y:y+h, x:x+w]
roy_color = frame[y:y+h, x:x+w]
#recognize how?
id_ , conf = recognizer.predict(roi_gray) #some error, some say cuz its opencv 3.1.0 bug
#solution : up opencv to 3.3 or just use MinDistancePredictCollector(...)
if conf>=45 and conf<=85:
print(idppl)
print(labels[idppl])
font = cv2.FONT_HERSHEY_SIMPLEX
name = labels[idppl]
color = (255,255,255)
stroke = 2
cv2.putText(frame,name,(x,y),font,1,color,stroke,cv2.LINE_AA)
elif conf > 85:
print("unknown")
recognizer=cv2.face.LBPHFaceRecognizer\u create()
#colec=cv2.face.MindDistancePredictCollector()
识别器读取(“trainer\u data\u array.yml”)
标签={“人员名称”:0}
打开(“labels.pickle”、“rb”)作为f:
og_标签=pickle.load(f)
labels={v:k代表k,在og_labels.items()中为v
cap=cv2.视频捕获(0)
虽然(正确):
#视频帽
ret,frame=cap.read()
灰色=cv2.CVT颜色(边框,cv2.COLOR\u BGR2GRAY)
faces=face_级联。检测多尺度(灰色,scaleFactor=1.5,minNeighbors=5)
对于面中的(x,y,w,h):
#打印(x、y、w、h)
roi_gray=灰色[y:y+h,x:x+w]
roy_color=frame[y:y+h,x:x+w]
#如何认识?
id_,conf=recognizer.predict(roi_gray)#有些错误,有些人说是因为opencv 3.1.0的缺陷
#解决方案:将opencv升级到3.3或仅使用MinDistancePredictCollector(…)
如果形态>=45和形态85:
打印(“未知”)
有人能帮我怎么做吗,如果只是把它像id\uu,conf=cv2.UMat(recognizer.predict(roi\u gray))
它给我错误cv2.UMat'对象不可编辑
在没有T-API mybe的情况下,这一行程序仍然可以提供很好的帧速率,但经过多次修改或实现/处理后,当检测/记录人脸时,它将以低帧速率运行
这就是为什么我想使用OpenCL,所以当它运行在GPU Mybe中会给我一个很好的帧率
也许考虑线程或多重处理- ODROID有4/8个内核。您可以在core 1上连续获取,然后在core 2上处理frame 1,在core 3上处理frame 2,在core 4上处理frame 3,然后在core 2上重新处理frame 4。我还在帧中实现多线程以增加fps,这确实提高了fps,但它仍然不在。。我不知道怎么说,默认fps为普通相机。我只是在想mybe,因为太多的进程在摄影机播放时工作。这就是为什么如果有一种方法,我也想在它上面实现T-API