Could not render correct predicted coordinate of an image using cv2

问题描述 投票:0回答:0

我正在微调 VGG-16 以进行面部检测,输入形状 = (120,120,3)。当我在测试集中预测它并绘制坐标时,一切看起来都是正确的。但是当我执行一些实时检测时,坐标无法正确渲染。

在这里,我绘制了一批测试集的预测坐标。

fig,axes = plt.subplots(ncols=4,nrows=4,figsize=(60,60))

for idx,ax in enumerate(axes.flatten()):

  img = test_X[idx].copy()

  cv2.rectangle(img,
          tuple(np.multiply(coords[idx][:2], [120,120]).astype(int)),
          tuple(np.multiply(coords[idx][2:],[120,120]).astype(int)),
         (255,0,0),1)
  ax.imshow(img)

  plt.tight_layout()

输出: Predicted Coordinates of Image

这是我尝试进行实时检测的地方:

cap = cv2.VideoCapture(0)
while cap.isOpened():
  _ , frame = cap.read()

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

  rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
  resized = tf.image.resize(rgb, (120,120))

  classes,coords = facetracker.predict(np.expand_dims(resized/255.0,0))

  if classes > 0.5: 
    # Controls the main rectangle
    cv2.rectangle(frame, 
                  tuple(np.multiply(coords[0][:2], [640,380]).astype(int)),
                  tuple(np.multiply(coords[0][2:], [640,380]).astype(int)), 
                        (255,0,0), 2)
    

  cv2.imshow('EyeTrack', frame)

  if cv2.waitKey(10) & 0xFF == ord('q'):
    break
    
cap.release()
cv2.destroyAllWindows()

输出:实时预测截图

machine-learning deep-learning computer-vision conv-neural-network cv2
© www.soinside.com 2019 - 2024. All rights reserved.