Skip to content
Advertisement

OpenVINO API 2.0 output tensor cannot convert to image

This is the follow-up question from here.

I try to use YOLOv4 model to do the inference with OpenVINO API 2.0.

dcm_file = "1037973"
ds = dcmread(dcm_file, force=True)
ds.PixelRepresentation = 0
ds_arr = ds.pixel_array
        
core = ov.Core()
model = core.read_model(model="frozen_darknet_yolov4_model.xml")
model.reshape([ds_arr.shape[0], ds_arr.shape[1], ds_arr.shape[2], 3])
compiled_model = core.compile_model(model, "CPU")
infer_request = compiled_model.create_infer_request()
input_tensor = ov.Tensor(array=ds_arr, shared_memory=True)
#infer_request.set_input_tensor(input_tensor)
infer_request.start_async()
infer_request.wait()
output_tensor1 = infer_request.get_output_tensor(0)
output_tensor2 = infer_request.get_output_tensor(1)
output_tensor3 = infer_request.get_output_tensor(2)

Afterwards, I want to convert the output_tensor to image.

I have referenced Single Image Super Resolution and Super Resolution with PaddleGAN on OpenVINO docs but in vain.

And I also try to use Image.fromarray to convert it.

The error always happens below.

AttributeError: 'openvino.pyopenvino.Tensor' object has no attribute xxxxx

How can I deal with openvino.pyopenvino.Tensor propertly?

My environment is Windows 11 with openvino_2022.1.0.643 version.

Advertisement

Answer

Use the data attribute of the Tensor object to access the output tensor data.

output_tensor1 = infer_request.get_output_tensor(0)
output_tensor2 = infer_request.get_output_tensor(1)
output_tensor3 = infer_request.get_output_tensor(2)
output_buffer1 = output_tensor1.data
output_buffer2 = output_tensor2.data
output_buffer3 = output_tensor3.data
print(output_buffer1)
print(output_buffer2)
print(output_buffer3)
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement