无法让darkflow实时处理截图

Can’t get darkflow to process screenshots in realtime

我试图创建一个简单的程序来捕获屏幕截图(使用 mss)并将张量流获取到图像中的 predict/detect 元素,但它不起作用。这是代码的一部分:

import cv2
import mss
import numpy as np
from PIL import Image

#Import TFNet
from darkflow.net.build import TFNet
import matplotlib.pyplot as plt

#Specify the dictonary.
options = {
    'model':'cfg/yolo.cfg',
    'load':'bin/yolov2.weights',
    'threshold': 0.3
}
tfnet = TFNet(options)

#Creates an endless loop for high-speed image acquisition...
while (True):
    with mss.mss() as sct:

    #Get raw pixels from the screen
    sct_img = sct.grab(sct.monitors[1])

    #Convert image to a numpy array
    img = np.array(sct_img)
    result = tfnet.return_predict(img)

    print(result)

有人能告诉我哪里错了吗?它 returns 每次都出现以下错误:

ValueError: Cannot feed value of shape (1, 608, 608, 4) for Tensor 'input:0', which has shape '(?, 608, 608, 3)'

请给出代码示例。提前致谢。

您的输入数据的形状似乎与预期的不同:

 (1, 608, 608, 4) 

而不是

(?, 608, 608, 3)

看来你在谈论图像。通常彩色图像以 RGB 编码,因此有 3 个通道。您可能需要从数据

中删除 alpha/transparency 频道