Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Load an image in QVGA format into a ARM Compute Library ICTensor.

Hi.
I am trying to load an image in QVGA format into a ARM Compute Library ICtensor. This is my current code:

CLTensor in0;
in0.allocator()->init(TensorInfo(TensorShape(320U, 240U), 1, DataType::U8));

But in Compute Library "Image" are dined with a Format and dimensions expressed as [width, height, batch].
And a Tensor is defined by a DataType plus a number of channels (Always expected to be 1 for now) and their dimensions are expressed as [width, height, feature_maps, batch].

So, what is suggested to use for the parameters "batch" and feature_maps?

Thanks.

Parents
  • Hi ,

    and thanks for using Arm Compute Library. In order to use the RGB or RGBA format, you should initialize your tensor in the following manner:

    CLTensor in0; 
    in0.allocator()->init(TensorInfo(320U, 240U, Format::RGB));

    in this manner you create a 2D tensor with 3 channels (RGB) interleaved. However, just few operations are supported with this data layout so I suggest to convert your input QVGA in a planar data layout (each plane stores the values of each channel). In this manner you can use most of the functions available for Compute Library.

    You might have something like:

    CLTensor in0; 
    in0.allocator()->init(TensorInfo(320U, 240U, Format::RGB));

     // Convert to data layout to planar using CLChannelExtract and CLChannelCombine

    The output of CLChannelCombine should be:

    CLTensor out; 
    out.allocator()->init(TensorInfo(TensorShape(320U, 240U, 3U), 1, DataType::U8));

    Hope this can help.

    Do not hesitate to write on github (github.com/.../issues) if you need any further information.

    Gian Marco

Reply
  • Hi ,

    and thanks for using Arm Compute Library. In order to use the RGB or RGBA format, you should initialize your tensor in the following manner:

    CLTensor in0; 
    in0.allocator()->init(TensorInfo(320U, 240U, Format::RGB));

    in this manner you create a 2D tensor with 3 channels (RGB) interleaved. However, just few operations are supported with this data layout so I suggest to convert your input QVGA in a planar data layout (each plane stores the values of each channel). In this manner you can use most of the functions available for Compute Library.

    You might have something like:

    CLTensor in0; 
    in0.allocator()->init(TensorInfo(320U, 240U, Format::RGB));

     // Convert to data layout to planar using CLChannelExtract and CLChannelCombine

    The output of CLChannelCombine should be:

    CLTensor out; 
    out.allocator()->init(TensorInfo(TensorShape(320U, 240U, 3U), 1, DataType::U8));

    Hope this can help.

    Do not hesitate to write on github (github.com/.../issues) if you need any further information.

    Gian Marco

Children
No data