Как декодировать изображение с помощью тензорного потока? - PullRequest
0 голосов
/ 26 мая 2020

После обнаружения изображения лица после обнаружения с помощью файла haarcasde. Но я получаю эту ошибку

/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/gen_string_ops.py in substr(input, pos, len, unit, name)
   1888       _result = pywrap_tfe.TFE_Py_FastPathExecute(
   1889         _ctx._context_handle, tld.device_name, "Substr", name,
-> 1890         tld.op_callbacks, input, pos, len, "unit", unit)
   1891       return _result
   1892     except _core._FallbackException:

ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).

Вот мой код

def detect_and_noise_face(img):

    # Watch solutions video for line by line explanation!

    face_img = img.copy()
    roi = img.copy()

    face_rects = face_cascade.detectMultiScale(face_img,scaleFactor=1.3, minNeighbors=3) 
    for (x,y,w,h) in face_rects: 

        roi = roi[y:y+h,x:x+w]
        image = tf.image.decode_image(roi)

    return face_img

, почему я декодирую изображение, потому что я пытаюсь создать состязательный пример для этого roi. https://www.tensorflow.org/tutorials/generative/adversarial_fgsm Спасибо.

1 Ответ

0 голосов
/ 26 мая 2020

tf.image.decode_image используется для декодирования необработанных входных байтов в тензор, что здесь не так.

Я предполагаю, что вы хотите преобразовать массив numpy (roi) в а tf.Tensor. Для этого вы можете просто использовать tf.convert_to_tensor https://www.tensorflow.org/api_docs/python/tf/convert_to_tensor

...