所以我正在研究车道检测模型的部署。开发模型的团队提供了一个测试脚本,该脚本使用文本文件中给出的图像来推断模型。
现在,我想用从相机抓取的图像推断模型。 为此,我需要更改需要图像路径的process_image函数的参数。我想将通过相机读取的图像传递给它。
这是我要更改的process_image函数:
always @* val = u_intf.values;
我想做的是这样的:
def process_img(img_path):
img_raw = tf.read_file(img_path)
img_decoded = tf.image.decode_jpeg(img_raw, channels=3)
img_resized = tf.image.resize_images(img_decoded, [CFG.TRAIN.IMG_HEIGHT, CFG.TRAIN.IMG_WIDTH],
method=tf.image.ResizeMethod.BICUBIC)
img_casted = tf.cast(img_resized, tf.float32)
return tf.subtract(img_casted, VGG_MEAN)
我想我必须在解码之前执行一项任务,因为我从相机抓取的img被保存为一个数组(我想),decode_Jpeg接受的内容是0-D字符串。编码的图像字节。但是我不知道该怎么办。
相机的代码是这样的:
from utils.camera import Camera
import numpy as np
import cv2
import tensorflow as tf
def process_img(img):
#this will not work because decoded expects a jpeg string but the img I grabbed from the camera is an array??
img_decoded = tf.image.decode_jpeg(img, channels=3)
img_resized = tf.image.resize_images(img_decoded, [CFG.TRAIN.IMG_HEIGHT, CFG.TRAIN.IMG_WIDTH],
method=tf.image.ResizeMethod.BICUBIC)
img_casted = tf.cast(img_resized, tf.float32)
return tf.subtract(img_casted, VGG_MEAN)
cam = Camera(args)
cam.open()
cam.start()
img = cam.read()
processed_img = process_img(img)
答案 0 :(得分:0)
我认为您不需要解码图像,因为它已经是数组形式了。只需直接输入数组