Please restore aml_npu_nnsdk_app demos

Hi,
in the repository khadas / aml_npu_nnsdk_app · GitLab the demos:

  • person detect
  • body pose

were dropped with the move from version 6.4.3 to 6.4.4.3 of the nnsdk api.
The comment reports: ‘Remove unusable demo’

Now, provided that I agree with the rationale behind this nnsdk api breaking change, I’m totally lost trying to post processing the results returned by the NPU.
I cannot find any doc that explains how to translate the FP32 blob to the detected person or object.
The provided Classify example is quite different from the object detection example and doesn’t allow me to make the object detection work.
So I kindly ask to restore the original examples to show me how to post process the NPU results.

This is what the updated object detection currenlty returns:

outdata = {nn_output * | 0x55555895e8} 0x55555895e8
 typeSize = {int} 0
 num = {unsigned int} 1
 out = {outBuf_t [32]} 
  [0] = {outBuf_t} 
   size = {unsigned int} 287300
   buf = {unsigned char * | 0x55557c42e0} "\356\005\204>\254\206\224\277\356\005\004?\356\005\204>\356\005\204>"
    *buf = {unsigned char} 238 '\356'
   param = {nn_buffer_params_t * | 0x5555614590} 0x5555614590
    num_of_dims = {unsigned int} 4
    sizes = {unsigned int [4]} 
     [0] = {unsigned int} 13
     [1] = {unsigned int} 13
     [2] = {unsigned int} 425
     [3] = {unsigned int} 1
    data_format = {nn_buffer_format_e} NN_BUFFER_FORMAT_FP32
    quant_format = {nn_buffer_quantize_format_e} NN_BUFFER_QUANTIZE_NONE
    quant_data = {union {...}} 
     dfp = {struct {...}} 
      fixed_point_pos = {unsigned char} 85 'U'
     affine = {struct {...}} 
      scale = {float} 1.19110369e-43
      zeroPoint = {unsigned int} 0
   name = {char [64]} 
    [0] = {char} 111 'o'
    [1] = {char} 117 'u'
    [2] = {char} 116 't'
    [3] = {char} 112 'p'
    [4] = {char} 117 'u'
    [5] = {char} 116 't'
    [6] = {char} 95 '_'
    [7] = {char} 51 '3'
    [8] = {char} 52 '4'
    [9] = {char} 95 '_'
    [10] = {char} 55 '7'
    [11] = {char} 54 '6'
    [12] = {char} 0 '\000'
    [13] = {char} 0 '\000'
    ...
  [1] = {outBuf_t} 
   size = {unsigned int} 0
   buf = {unsigned char * | 0x0} NULL
   param = {nn_buffer_params_t * | 0x0} NULL
   name = {char [64]}

@fguerzoni You can choose to revoke this submission, but it is useless. The original code is unusable due to the massive access of the api interface. My current value has been restored for a demo. Other demos need time to debug and can only be opened after success.

Thank you for the reply,
Could you provide some docs to let us understand how to post process the output?

@fguerzoni Only one doc , and I had push it in SDK.

Are you referring to DDK_6.4.4.3_SDK_V1.8.0 API Description.pdf ???
If so there’s no the required level of details.
In case I’ll wait for the release of updated demos