This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: VX_ZONE_ERROR:[vxFinalizeKernel:460] Invalid kernel signature type

Part Number: TDA4VM

Hi Team,

I have created a custom kernel and added the functionality required to kernel and rebuilded tiovx successfully.

Later I integrated kernel to my application and ran the command "make sdk" and it got succesfully built.

While testing the application on board facing the errors as shown in attached file.(PFA for the error log).

5850.txt


root@j7-evm:/opt/vision_apps# 
root@j7-evm:/opt/vision_apps# 
root@j7-evm:/opt/vision_apps# 
root@j7-evm:/opt/vision_apps# ./run_app_tidl_rci_od.sh 
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=4) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
   160.689424 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
   160.701868 s:  VX_ZONE_INIT:Enabled
   160.701890 s:  VX_ZONE_ERROR:Enabled
   160.701903 s:  VX_ZONE_WARNING:Enabled
   160.702683 s:  VX_ZONE_INIT:[tivxInitLocal:145] Initialization Done !!!
   160.702815 s:  VX_ZONE_INIT:[tivxHostInitLocal:93] Initialization Done for HOST !!!
Default param set! 
Parsed user params! 
Updated user params! 
   160.730945 s:  VX_ZONE_ERROR:[vxFinalizeKernel:460] Invalid kernel signature type
   160.730975 s:  VX_ZONE_ERROR:[vxLoadKernels:206] Publish function for module rci_postproc_a72 failed
Scaler Init Done! 
Computing checksum at 0x0000FFFFAA0094C0, size = 12712900
TIDL Init Done! 
Pre Proc Update Done! 
Pre Proc Init Done! 
APP_INIT Number of Input Tensors in draw detections 3
rci postproc Update Done! 
rci postproc Init Done! 
Img Mosaic Init Done! 
Display Init Done! 
App Init Done! 
TIDL Create Done! 
   161.363442 s:  VX_ZONE_ERROR:[tivxCreateNodeByKernelName:124] Call to vxGetKernelByName failed; kernel may not be registered
   161.363453 s:  VX_ZONE_ERROR:[vxGetStatus:700] Reference is NULL
Postproc node create failed
RCI Create Postproc Done!
App Create Graph Done! 
App Run Graph Done! 
   161.363526 s:  VX_ZONE_ERROR:[ownReleaseReferenceInt:294] Invalid reference
App Delete Graph Done! 
Input image release Done! 
Scaler deinit Done! 
Pre-Proc deinit Done! 
TIDL deinit Done! 
Post_proc deinit Done! 
Mosaic deinit Done! 
Display deinit Done! 
Graphics deinit Done! 
TIDL unload Done! 
ImgProc unload Done! 
   161.864419 s:  VX_ZONE_ERROR:[vxUnloadKernels:251] Unable to unload kernels for module rci_postproc_a72
RCIPostProc unload Done! 
HWA unload Done! 
   161.864643 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5ee49e8 of type 0000080f at external count 1, internal count 0, releasing it
   161.864651 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=image_108) now as a part of garbage collection
   161.864661 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5f6bb10 of type 00000815 at external count 1, internal count 0, releasing it
   161.864668 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_119) now as a part of garbage collection
   161.864677 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5f6b4b0 of type 00000815 at external count 1, internal count 0, releasing it
   161.864684 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_120) now as a part of garbage collection
   161.864692 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5f6b6d0 of type 00000815 at external count 1, internal count 0, releasing it
   161.864698 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_121) now as a part of garbage collection
   161.864707 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5f6bd30 of type 00000815 at external count 1, internal count 0, releasing it
   161.864713 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tidl_node_output_tensors_1) now as a part of garbage collection
   161.864722 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5f6bf50 of type 00000815 at external count 1, internal count 0, releasing it
   161.864728 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tidl_node_output_tensors_2) now as a part of garbage collection
   161.864737 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5f6c170 of type 00000815 at external count 1, internal count 0, releasing it
   161.864743 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_125) now as a part of garbage collection
   161.864751 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb5ee4ca0 of type 0000080f at external count 1, internal count 0, releasing it
   161.864757 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=image_132) now as a part of garbage collection
Context released! 
App De-init Done! 
   161.864792 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:107] De-Initialization Done for HOST !!!
   161.869166 s:  VX_ZONE_INIT:[tivxDeInitLocal:223] De-Initialization Done !!!
APP: Deinit ... !!!
REMOTE_SERVICE: Deinit ... !!!
REMOTE_SERVICE: Deinit ... Done !!!
IPC: Deinit ... !!!
IPC: DeInit ... Done !!!
MEM: Deinit ... !!!
DDR_SHARED_MEM: Alloc's: 14 alloc's of 17342992 bytes 
DDR_SHARED_MEM: Free's : 14 free's  of 17342992 bytes 
DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
DDR_SHARED_MEM: Total size: 536870912 bytes 
MEM: Deinit ... Done !!!
APP: Deinit ... Done !!!
root@j7-evm:/opt/vision_apps# 
CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7.1 | VT102 | Offline | ttyUSB0                                                                                                                           


Kindly suggest me what could be the possible reason and solution.

Thanks,

Chaitanya Prakash Uppala

  • Hi Chaitanya,

    Could you let me know which SDK version are you facing this issue?

    It would be great if you could provide the changes that you made to integrate this kernel.

    Regards,

    Nikhil

  • Hi Nikhil

    I'm using SDK v 08_05_00_11. I have derived my application from the existing sample dl_demo "app_tidl_od" application.

    I have created a post_proc kernel in tiovx under kernels_j7 folder and added my post_proc functionality in the kernel and built it successfully.

    Inside the config file(app_od.cfg) I haven't made any changes apart from location of network,config,input and output files path, image resolution and enabled display option 

    And changes in aplplication file are

    1)app_common.h: Included the header file related to kernel(#include <TI/tivx_rci_postproc_a72.h>) ; uncommented  #define APP_DEBUG and added macros #define DISPLAY_WIDTH (1920)
    #define DISPLAY_HEIGHT (1080)

    2)concerto.mak: added STATIC_LIBS and IDIRS += $(IMAGING_IDIRS)

    3)main.c: I have commented the part of code which uses DrawDetectionsObj drawDetectionsObj and functions present inside app_draw_detections_module.h and app_draw_detections_module.c files, and I have created .c and .h files with same functionalities but a change in functionality of "app_create_graph_draw_detections" function.

    I have added tivxRciPostprocA72LoadKernels(obj->context); inside "app_init" function and changed the places drawDetectionsObj with the object I created(rcipostprocObj)

    I have register,unregister, loaded, update,init, deinit , unLoadKernels, delete,create_graph for my developed kernel at every place w.r.t draw_detections loaded, update,init, deinit , unLoadKernels, delete,create_graph functionalities.

    Added tivxSetNodeParameterNumBufByIndex under app_create_graph function

    Added tivxExportGraphToDot under app_verify_graph function

    Added update_postproc_defaults in place of update_draw_detections_defaults

    Added update_postproc_defaults under app_update_param_set function

    And finally in app_rci_create_graph_postproc(as per sample application "app_create_graph_draw_detections") function I have added the below mentioned for loop as my DL model produces 3 output vectors

    for(i = 0; i < rcipostprocObj->num_input_tensors; i++)
    {
    input_tensor[i] = (vx_tensor)vxGetObjectArrayItem((vx_object_array)input_tensor_arr[i], 0);
    }

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Mr,Nikhil

    could you please respond some fast on the issue mentioned above.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

    In the host side implementation, could you please share the parameters you have added to the kernel using the API vxAddParameterToKernel() in the tivxAddKernelxxx function?

    I would like to know the data_types you have used there for the input and output parameters.

    Regards,

    Nikhil

  • Hi Nikhil

    The parameters and data types are as mentioned below

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_USER_DATA_OBJECT,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_TENSOR,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_IMAGE,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_OUTPUT,(vx_enum)VX_TYPE_IMAGE,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_OUTPUT,(vx_enum)VX_TYPE_TENSOR,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

    Regarding the error log, VX_ZONE_ERROR:[vxFinalizeKernel:460] Invalid kernel signature type

    All the above parameter types looks valid (i.e., VX_TYPE_USER_DATA_OBJECT, VX_TYPE_TENSOR and VX_TYPE_IMAGE)

    Could you please check in the vxFinalizeKernel() function, what is the value of kernel->signature.num_parameters? Is it more than number of Parameters you have defined using vxAddParameterToKernel()?

    Could you please check in which iteration in vxFinalizeKernel(), is this error log seen?

    vxFinalizeKernel() could be found in tiovx/source/framework/vx_kernel.c

    Regards,

    Nikhil

  • Hi Nikhil,

    The value of kernel->signature.num_parameters is 7.

    The log for the vxFinalizeKernel() function call by the my custom kernel is attached below

    rci_postproc Finalize Kernel start
    Entered vxFinalizeKernel
    7
    p value is 0
    sign_num_params : 7
    p value is 1
    sign_num_params : 7
    p value is 2
    sign_num_params : 7
    p value is 3
    sign_num_params : 7
    p value is 4
    sign_num_params : 7
    p value is 5
    sign_num_params : 7
    92.013453 s: VX_ZONE_ERROR:[vxFinalizeKernel:465] Invalid kernel signature type
    rci_postproc Finalize Kernel end
    entered else
    92.013477 s: VX_ZONE_ERROR:[vxLoadKernels:211] Publish function for module rci_postproc_a72 failed

    From log, we can conclude that 6 iterations are performed successfully and getting error in 7th iteration.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_USER_DATA_OBJECT,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_TENSOR,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_IMAGE,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_OUTPUT,(vx_enum)VX_TYPE_IMAGE,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_OUTPUT,(vx_enum)VX_TYPE_TENSOR,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    Is there a reason, why you have mentioned 7 parameters and only defined 5 of them?

    Could you change the number of parameters to how much you have added using vxAddParameterToKernel()?

    Regards,

    Nikhil

  • Hi Nikhil,

    After making that change from 7 to 5, the VX_ZONE_ERROR:[vxFinalizeKernel:460] Invalid kernel signature type is disappeared from the log.

    PFA for the updated log after running on EVM.

    updated_error_log.txt
    root@j7-evm:/opt/vision_apps# ./run_app_tidl_rci_od.sh 
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
        58.629978 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
        58.642601 s:  VX_ZONE_INIT:Enabled
        58.642631 s:  VX_ZONE_ERROR:Enabled
        58.642643 s:  VX_ZONE_WARNING:Enabled
        58.643424 s:  VX_ZONE_INIT:[tivxInitLocal:145] Initialization Done !!!
        58.644402 s:  VX_ZONE_INIT:[tivxHostInitLocal:93] Initialization Done for HOST !!!
    owncheck
    entered for 
    entered if 1
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    5 
    p value is 0 
    sign_num_params : 5 
    p value is 1 
    sign_num_params : 5 
    p value is 2 
    sign_num_params : 5 
    p value is 3 
    sign_num_params : 5 
    p value is 4 
    sign_num_params : 5 
    Entered vxFinalizeKernel
    5 
    p value is 0 
    sign_num_params : 5 
    p value is 1 
    sign_num_params : 5 
    p value is 2 
    sign_num_params : 5 
    p value is 3 
    sign_num_params : 5 
    p value is 4 
    sign_num_params : 5 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    5 
    p value is 0 
    sign_num_params : 5 
    p value is 1 
    sign_num_params : 5 
    p value is 2 
    sign_num_params : 5 
    p value is 3 
    sign_num_params : 5 
    p value is 4 
    sign_num_params : 5 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    8 
    p value is 0 
    sign_num_params : 8 
    p value is 1 
    sign_num_params : 8 
    p value is 2 
    sign_num_params : 8 
    p value is 3 
    sign_num_params : 8 
    p value is 4 
    sign_num_params : 8 
    p value is 5 
    sign_num_params : 8 
    p value is 6 
    sign_num_params : 8 
    p value is 7 
    sign_num_params : 8 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    7 
    p value is 0 
    sign_num_params : 7 
    p value is 1 
    sign_num_params : 7 
    p value is 2 
    sign_num_params : 7 
    p value is 3 
    sign_num_params : 7 
    p value is 4 
    sign_num_params : 7 
    p value is 5 
    sign_num_params : 7 
    p value is 6 
    sign_num_params : 7 
    Entered vxFinalizeKernel
    6 
    p value is 0 
    sign_num_params : 6 
    p value is 1 
    sign_num_params : 6 
    p value is 2 
    sign_num_params : 6 
    p value is 3 
    sign_num_params : 6 
    p value is 4 
    sign_num_params : 6 
    p value is 5 
    sign_num_params : 6 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    10 
    p value is 0 
    sign_num_params : 10 
    p value is 1 
    sign_num_params : 10 
    p value is 2 
    sign_num_params : 10 
    p value is 3 
    sign_num_params : 10 
    p value is 4 
    sign_num_params : 10 
    p value is 5 
    sign_num_params : 10 
    p value is 6 
    sign_num_params : 10 
    p value is 7 
    sign_num_params : 10 
    p value is 8 
    sign_num_params : 10 
    p value is 9 
    sign_num_params : 10 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    0 
    entered if 2
    owncheck
    entered for 
    entered for 
    entered if 1
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    5 
    p value is 0 
    sign_num_params : 5 
    p value is 1 
    sign_num_params : 5 
    p value is 2 
    sign_num_params : 5 
    p value is 3 
    sign_num_params : 5 
    p value is 4 
    sign_num_params : 5 
    Entered vxFinalizeKernel
    9 
    p value is 0 
    sign_num_params : 9 
    p value is 1 
    sign_num_params : 9 
    p value is 2 
    sign_num_params : 9 
    p value is 3 
    sign_num_params : 9 
    p value is 4 
    sign_num_params : 9 
    p value is 5 
    sign_num_params : 9 
    p value is 6 
    sign_num_params : 9 
    p value is 7 
    sign_num_params : 9 
    p value is 8 
    sign_num_params : 9 
    Entered vxFinalizeKernel
    6 
    p value is 0 
    sign_num_params : 6 
    p value is 1 
    sign_num_params : 6 
    p value is 2 
    sign_num_params : 6 
    p value is 3 
    sign_num_params : 6 
    p value is 4 
    sign_num_params : 6 
    p value is 5 
    sign_num_params : 6 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    10 
    p value is 0 
    sign_num_params : 10 
    p value is 1 
    sign_num_params : 10 
    p value is 2 
    sign_num_params : 10 
    p value is 3 
    sign_num_params : 10 
    p value is 4 
    sign_num_params : 10 
    p value is 5 
    sign_num_params : 10 
    p value is 6 
    sign_num_params : 10 
    p value is 7 
    sign_num_params : 10 
    p value is 8 
    sign_num_params : 10 
    p value is 9 
    sign_num_params : 10 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    13 
    p value is 0 
    sign_num_params : 13 
    p value is 1 
    sign_num_params : 13 
    p value is 2 
    sign_num_params : 13 
    p value is 3 
    sign_num_params : 13 
    p value is 4 
    sign_num_params : 13 
    p value is 5 
    sign_num_params : 13 
    p value is 6 
    sign_num_params : 13 
    p value is 7 
    sign_num_params : 13 
    p value is 8 
    sign_num_params : 13 
    p value is 9 
    sign_num_params : 13 
    p value is 10 
    sign_num_params : 13 
    p value is 11 
    sign_num_params : 13 
    p value is 12 
    sign_num_params : 13 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    5 
    p value is 0 
    sign_num_params : 5 
    p value is 1 
    sign_num_params : 5 
    p value is 2 
    sign_num_params : 5 
    p value is 3 
    sign_num_params : 5 
    p value is 4 
    sign_num_params : 5 
    entered if 2
    owncheck
    entered for 
    entered for 
    entered for 
    entered if 1
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    6 
    p value is 0 
    sign_num_params : 6 
    p value is 1 
    sign_num_params : 6 
    p value is 2 
    sign_num_params : 6 
    p value is 3 
    sign_num_params : 6 
    p value is 4 
    sign_num_params : 6 
    p value is 5 
    sign_num_params : 6 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    10 
    p value is 0 
    sign_num_params : 10 
    p value is 1 
    sign_num_params : 10 
    p value is 2 
    sign_num_params : 10 
    p value is 3 
    sign_num_params : 10 
    p value is 4 
    sign_num_params : 10 
    p value is 5 
    sign_num_params : 10 
    p value is 6 
    sign_num_params : 10 
    p value is 7 
    sign_num_params : 10 
    p value is 8 
    sign_num_params : 10 
    p value is 9 
    sign_num_params : 10 
    Entered vxFinalizeKernel
    6 
    p value is 0 
    sign_num_params : 6 
    p value is 1 
    sign_num_params : 6 
    p value is 2 
    sign_num_params : 6 
    p value is 3 
    sign_num_params : 6 
    p value is 4 
    sign_num_params : 6 
    p value is 5 
    sign_num_params : 6 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    Entered vxFinalizeKernel
    9 
    p value is 0 
    sign_num_params : 9 
    p value is 1 
    sign_num_params : 9 
    p value is 2 
    sign_num_params : 9 
    p value is 3 
    sign_num_params : 9 
    p value is 4 
    sign_num_params : 9 
    p value is 5 
    sign_num_params : 9 
    p value is 6 
    sign_num_params : 9 
    p value is 7 
    sign_num_params : 9 
    p value is 8 
    sign_num_params : 9 
    Entered vxFinalizeKernel
    3 
    p value is 0 
    sign_num_params : 3 
    p value is 1 
    sign_num_params : 3 
    p value is 2 
    sign_num_params : 3 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    4 
    p value is 0 
    sign_num_params : 4 
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
    Entered vxFinalizeKernel
    2 
    p value is 0 
    sign_num_params : 2 
    p value is 1 
    sign_num_params : 2 
    entered if 2
    before
    before if 
    entered if 
    cmpltd tivx 
    owncheck
    entered for 
    entered for 
    entered for 
    entered for 
    entered if 1
    rci_postproc Finalize Kernel start
    Entered vxFinalizeKernel
    5 
    p value is 0 
    sign_num_params : 5 
    p value is 1 
    sign_num_params : 5 
    p value is 2 
    sign_num_params : 5 
    p value is 3 
    sign_num_params : 5 
    p value is 4 
    sign_num_params : 5 
    rci_postproc Finalize Kernel end
    entered if 2
    cmpltd load 
    after if 
    after
    Computing checksum at 0x0000FFFFA84904C0, size = 12712900
    Entered vxFinalizeKernel
    10 
    p value is 0 
    sign_num_params : 10 
    p value is 1 
    sign_num_params : 10 
    p value is 2 
    sign_num_params : 10 
    p value is 3 
    sign_num_params : 10 
    p value is 4 
    sign_num_params : 10 
    p value is 5 
    sign_num_params : 10 
    p value is 6 
    sign_num_params : 10 
    p value is 7 
    sign_num_params : 10 
    p value is 8 
    sign_num_params : 10 
    p value is 9 
    sign_num_params : 10                                                                                                  
    Entered vxFinalizeKernel                                                                                              
    4                                                                                                                     
    p value is 0                                                                                                          
    sign_num_params : 4                                                                                                   
    p value is 1 
    sign_num_params : 4 
    p value is 2 
    sign_num_params : 4 
    p value is 3 
    sign_num_params : 4 
        60.303840 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:239] Invalid type 0x00000815!
        60.303870 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:287] Specified: parameter[2] type:00000815 => 0xffffb43f04b0
        60.303892 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:289] Required: parameter[2] dir:0 type:0000080f
        60.303902 s:  VX_ZONE_ERROR:[vxGetStatus:700] Reference is NULL
        60.303959 s:  VX_ZONE_ERROR:[ownReleaseReferenceInt:294] Invalid reference
        60.812592 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb43699e8 of type 0000080f at external count 1, internal count 0, releasing it
        60.812612 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=image_109) now as a part of garbage collection
        60.812637 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb43f0b10 of type 00000815 at external count 1, internal count 0, releasing it
        60.812643 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_120) now as a part of garbage collection
        60.812653 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb43f04b0 of type 00000815 at external count 1, internal count 0, releasing it
        60.812659 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_121) now as a part of garbage collection
        60.812669 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb43f06d0 of type 00000815 at external count 1, internal count 0, releasing it
        60.812675 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_122) now as a part of garbage collection
        60.812684 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb43f0d30 of type 00000815 at external count 1, internal count 0, releasing it
        60.812690 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tidl_node_output_tensors_1) now as a part of garbage collection
        60.812699 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb43f0f50 of type 00000815 at external count 1, internal count 0, releasing it
        60.812705 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tidl_node_output_tensors_2) now as a part of garbage collection
        60.812714 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb43f1170 of type 00000815 at external count 1, internal count 0, releasing it
        60.812721 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tensor_126) now as a part of garbage collection
        60.812729 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffb4369ca0 of type 0000080f at external count 1, internal count 0, releasing it
        60.812736 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=image_133) now as a part of garbage collection
        60.812763 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:107] De-Initialization Done for HOST !!!
        60.817120 s:  VX_ZONE_INIT:[tivxDeInitLocal:223] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 14 alloc's of 17342992 bytes 
    DDR_SHARED_MEM: Free's : 14 free's  of 17342992 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    DDR_SHARED_MEM: Total size: 536870912 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    root@j7-evm:/opt/vision_apps# 
    CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7.1 | VT102 | Offline | ttyUSB0                                                                                                                           
    
    
    

    Kindly help us in resolving those remaining errors too. Those errors are getting generated from the function call "vxSetParameterByIndex" in vx_parameter.c file.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

    It is mentioned in the below error log what is sent to this API and what is required to be sent

        60.303870 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:287] Specified: parameter[2] type:00000815 => 0xffffb43f04b0
        60.303892 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:289] Required: parameter[2] dir:0 type:0000080f

    This means, it is looking for type 80f -> vx_image, but the type you have sent is 815 -> vx_tensor.

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_USER_DATA_OBJECT,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_TENSOR,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_INPUT,(vx_enum)VX_TYPE_IMAGE,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_OUTPUT,(vx_enum)VX_TYPE_IMAGE,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    vxAddParameterToKernel(kernel,index,(vx_enum)VX_OUTPUT,(vx_enum)VX_TYPE_TENSOR,(vx_enum)VX_PARAMETER_STATE_REQUIRED);

    As per above index 2 is VX_TYPE_IMAGE, hence please check your node API and please provide the parameters in the same order as above.

    Regards,

    Nikhil

  • Hi Nikhil,

    Actually the DL model we are using produces three tensor outputs instead of one.

    So value of the parameter MAX_PARAMS will be 7U.

    The input tensors are added to kernel as shown in below snippet.

    if (status == (vx_status)VX_SUCCESS)

    {
    for(i = 0; i < TIVX_KERNEL_RCI_POSTPROC_A72_BASE_PARAMETERS; i++)
    {
    if ( status == (vx_status)VX_SUCCESS)
    {
    status = vxAddParameterToKernel(kernel,
    index,
    (vx_enum)VX_INPUT,
    (vx_enum)VX_TYPE_TENSOR,
    (vx_enum)VX_PARAMETER_STATE_REQUIRED
    );
    index++;
    }
    }
    }

    The latest error log is as shown in attached file.

    latest_error_log.txt
    
    root@j7-evm:/opt/vision_apps# ./run_app_tidl_rci_od.sh 
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
        56.071452 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
        56.084278 s:  VX_ZONE_INIT:Enabled
        56.084331 s:  VX_ZONE_ERROR:Enabled
        56.084337 s:  VX_ZONE_WARNING:Enabled
        56.085226 s:  VX_ZONE_INIT:[tivxInitLocal:145] Initialization Done !!!
        56.085377 s:  VX_ZONE_INIT:[tivxHostInitLocal:93] Initialization Done for HOST !!!
    Main Started 
    def param set enter
    def param set exit
    parse_cmd_line enter 
    parse_cmd_line exit
    update_param_set enter 
    update_param_set exit
    app_init enter 
    Computing checksum at 0x0000FFFFA29E94C0, size = 12712900
    entering vxCreateNodeByStructure
    app_init exit
    app_create_graph enter 
    app_create_graph_scaler enter 
    app_create_graph_scaler exit 
    app_create_graph_pre_proc enter 
    app_create_graph_pre_proc exit 
    app_create_graph_tidl enter 
    app_create_graph_tidl exit 
    app_rci_create_graph_postproc enter 
    app_rci_create_graph_postproc exit 
    app_create_graph_img_mosaic enter 
    app_create_graph_img_mosaic exit 
    app_create_graph_display enter
    app_create_graph_display exit 
    add_graph_parameter_by_node_index enter 
    add_graph_parameter_by_node_index exit 
    add_graph_parameter_by_node_index enter 
    add_graph_parameter_by_node_index exit 
    scalerObj 1 enter 
    scalerObj 1 exit 
    scalerObj 2 enter 
    scalerObj 2 exit 
    preProcObj enter 
    preProcObj exit 
    tidlObj 1 enter 
    tidlObj 1 exit 
    tidlObj 2 enter 
    tidlObj 2 exit 
    rcipostprocObj enter 
        56.746177 s:  VX_ZONE_ERROR:[tivxSetNodeParameterNumBufByIndex:2309] Invalid parameters
    rcipostprocObj exit 
    app_create_graph exit
    app_delete_graph enter 
    app_delete_graphe exit
    app_delete_graphenter 
        57.255550 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffae94bd30 of type 00000815 at external count 1, internal count 0, releasing it
        57.255572 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tidl_node_output_tensors_1) now as a part of garbage collection
        57.255598 s:  VX_ZONE_WARNING:[vxReleaseContext:1060] Found a reference 0xffffae94bf50 of type 00000815 at external count 1, internal count 0, releasing it
        57.255604 s:  VX_ZONE_WARNING:[vxReleaseContext:1062] Releasing reference (name=tidl_node_output_tensors_2) now as a part of garbage collection
    app_delete_graph exit
    Main end    57.255636 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:107] De-Initialization Done for HOST !!!
        57.260004 s:  VX_ZONE_INIT:[tivxDeInitLocal:223] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 14 alloc's of 17342992 bytes 
    DDR_SHARED_MEM: Free's : 14 free's  of 17342992 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    DDR_SHARED_MEM: Total size: 536870912 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    root@j7-evm:/opt/vision_apps# 
    
    

    Kindly help us in resolving these errors.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

    The current error you are facing is below

    VX_ZONE_ERROR:[tivxSetNodeParameterNumBufByIndex:2309] Invalid parameters

    The node API is vx_status VX_API_CALL tivxSetNodeParameterNumBufByIndex(vx_node node, vx_uint32 index, vx_uint32 num_buf)

    This condition checked here is

                if( (index < ownNodeGetNumParameters(node))                                        --> index passed should be less than number of parameters in the node
                    && (num_buf < TIVX_OBJ_DESC_QUEUE_MAX_DEPTH)                  --> Maximum buffer depth is 32
                    && (ownNodeGetParameterDir(node, index) == (vx_enum)VX_OUTPUT)  --> The parameter should only be an "OUTPUT" parameter
                    )

    Please check which one of the following condition is failing in your case.

    Regards,

    Nikhil

  • Hi Nikhil,

    All the errors have been resolved and the application has built successfully.

    But due to some additional functionality that need to be added in the custom kernel, I included one .cpp file and the code uses OpenCV functionalities.

    Can I know how to include the OpenCV libraries? I have developed the custom kernel for A72 core.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi,

    Actually I looked into the link you have shared above, but I hope it doesn't help me out as I'm facing issue at the custom kernel under tiovx side and the one you gave for reference is for vision_apps.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

    Could you let me know if you have tried the below?

    Step 1 - 3 is for generating the library. (if you have the library generated then you can skip this.)

    1. Clone the public OpenCV repo and checkout the master branch

    2. Set up your CMAKE build with the command "cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=../aarch64-gnu.toolchain.cmake ../../.." (Note: if you use the wrong toolchain, you will see the error you are observing)

    3. Build OpenCV using "make"

    4. Add the path to the generated static libs to your concerto makefile using LDIRS flag.

        for eg. LDIRS += ${PATH_TO_YOUR_OPENCV_LIB)

    5. Link the opencv_core lib by adding "SYS_STATIC_LIBS += opencv_core" to your concerto file

    Please let me know if you are facing any issue with the above step?

    This should be same for TIOVX or vision_Apps

    Regards,

    Nikhil

  • Hi Nikhil,

    Actually while running the OD application we have generated, we are getting some unwanted detections as shown in below attached video.

    So I just want to confirm the drawDetection functionality written by me is working as same as drawDetection present inbuilt in the SDK v 08_05.

    For confirming, could you please let us know where can I get the functionality of drawDetections present inside TI SDK?

    Thanks,

    Chaitanya Prakash Uppala

  • Hi,

    In the SDK, we are using the tivxDrawBoxDetectionsNode in the OD application.

    You could find the target implementation of this node in the path ${PSDKRA}/vision_apps/kernels/img_proc/c66/vx_draw_box_detections_target.c

    Regards,

    Nikhil

  • Hi Nikhil,

    As you have seen the display output in above video, I have assumed that either the post processing or draw detections functionality present in the custom kernel I have created. But I figured out that heat_map values are not matching. The heat_map values generated after tidl function in application is not matching with the out.bin file generated from target inference.

    1) Could you please let me know what might be the cause of mismatch of heat_map values and how to resolve that?

    2) Also we are using the passing the same resolution image, so we are trying to eliminate the Scaler functionality from the application. In this case, where I need to add the inmean and inscale parameters in the application?

    3)Could you please let us know how to remove scalar functionality from the application, so that we can cross verify with the things we have done?

    Thanks,

    Chaitanya Prakash Uppala 

  • I have assumed that either the post processing or draw detections functionality present in the custom kernel I have created.

     I have assumed that either the post processing or draw detections functionality present in the custom kernel I have created causing the issue.

  • Hi Chaitanya,

    Could you please let me know what might be the cause of mismatch of heat_map values and how to resolve that?

    I would let a TIDL expert respond to this.

    Also we are using the passing the same resolution image, so we are trying to eliminate the Scaler functionality from the application. In this case, where I need to add the inmean and inscale parameters in the application?

    mean and scale parameters are present in the pre proc node i.e. tivxImgPreProcNode() in the OD demo. The scalar node is used to get two outputs, one is sent to pre-proc and the other one to the draw detection. May I know how have you taken care of this part?

    Could you please let us know how to remove scalar functionality from the application, so that we can cross verify with the things we have done?

    If we remove the scalar node from the beginning then you would have to feed the image to pre-proc node as well as the drawdetection node. Also we would have to ensure the sync between this.

    May I know what is the vizualisation threshold that you have set in the cfg file for the draw detection?
    In the SDK demo, it is 0.95.

    Regards,

    Nikhil

  • Hi Nikhil,

    I would let a TIDL expert respond to this.

    Thanks for this, hope he will get in touch soon.

    If we remove the scalar node from the beginning then you would have to feed the image to pre-proc node as well as the drawdetection node. Also we would have to ensure the sync between this.

    May I know what is the vizualisation threshold that you have set in the cfg file for the draw detection?
    In the SDK demo, it is 0.95.

    yes, the vizualisation threshold is set the same. and we are feeding the image to both the nodes.

    Also we are trying to dump the output generating from tidl node, but facing some invalid format specifier issue. Could you help out by the snippet if possible to dump the tidl node output.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi,

    Also we are trying to dump the output generating from tidl node, but facing some invalid format specifier issue. Could you help out by the snippet if possible to dump the tidl node output.

    Please refer the function writeTIDLOutput() available in ${PSDKRA}/vision_apps/modules/src/app_tidl_module.c

    Regards,

    Nikhil

  • Hi Nikhil,

    Please find the attached log for current status of our application.

    56568.log.txt
    root@j7-evm:/opt/vision_apps# ./run_app_tidl_rci_od.sh 
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
        60.038874 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
        60.051250 s:  VX_ZONE_INIT:Enabled
        60.051278 s:  VX_ZONE_ERROR:Enabled
        60.051292 s:  VX_ZONE_WARNING:Enabled
        60.052297 s:  VX_ZONE_INIT:[tivxInitLocal:145] Initialization Done !!!
        60.052447 s:  VX_ZONE_INIT:[tivxHostInitLocal:93] Initialization Done for HOST !!!
    Main Started 
    def param set enter
    def param set exit
    parse_cmd_line enter 
    parse_cmd_line exit
    update_param_set enter 
    update_param_set exit
    app_init enter 
    entered app_init
    entered if app_init
    entered tivxRciPostprocA72LoadKernels entered tivxAddTargetKernelRciPostprocA72
    exit tivxAddTargetKernelRciPostprocA72
    exit tivxRciPostprocA72LoadKernels
    exited if app_init
    Computing checksum at 0x0000FFFF747EA4C0, size = 12712900
    exited if app_init
    app_init exit
    app_create_graph enter 
    *********************
    TIDL:num_input_tensors:1
    TIDL:num_output_tensors:3
    vxsetrefername executed
    app_create_graph exit
    app_verify_graph enter 
    app_verify_graph exit
    app_run_graph enter 
    entered inside of app_run_graph_for_one_frame_sequential
    appPerfPoints are done
    [C7x_1 ]     61.239846 s:    0         1.00000         0.00000       255.00000 1
    [C7x_1 ]     61.374257 s:    1        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     61.514616 s:    2        16.00000         0.00000        16.00000 0
    [C7x_1 ]     61.789206 s:    3        32.00000         0.00000         8.00000 0
    [C7x_1 ]     62.082539 s:    4        32.00000         0.00000         8.00000 0
    [C7x_1 ]     62.587590 s:    5        32.00000         0.00000         4.97426 0
    [C7x_1 ]     62.745945 s:    6        32.00000         0.00000         8.00000 0
    [C7x_1 ]     62.904380 s:    7        32.00000         0.00000         8.00000 0
    [C7x_1 ]     63.028154 s:    8        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     63.213657 s:    9        32.00000         0.00000         8.00000 0
    [C7x_1 ]     63.363496 s:   10        32.00000         0.00000         8.00000 0
    [C7x_1 ]     63.479962 s:   11        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     63.665128 s:   12        16.00000         0.00000        16.00000 0
    [C7x_1 ]     63.817440 s:   13        64.00000         0.00000         4.00000 0
    [C7x_1 ]     63.877219 s:   17        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     63.970615 s:   14        32.00000         0.00000         7.53922 0
    [C7x_1 ]     64.014769 s:   16        32.00000         0.00000         8.00000 0
    [C7x_1 ]     64.059214 s:   18        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     64.152662 s:   19        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.208156 s:   20        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.265374 s:   21        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     64.357723 s:   22        32.00000         0.00000         8.00000 0
    [C7x_1 ]     64.423478 s:   23        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.451193 s:   27        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     64.497988 s:   24        32.00000         0.00000         5.01716 0
    [C7x_1 ]     64.518321 s:   26        32.00000         0.00000         8.00000 0
    [C7x_1 ]     64.538639 s:   28        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     64.585530 s:   29        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.611692 s:   30        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.638903 s:   31        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     64.685558 s:   32        32.00000         0.00000         4.00000 0
    [C7x_1 ]     64.717155 s:   33       128.00000         0.00000         2.00000 0
    [C7x_1 ]     64.728021 s:   37        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     64.749606 s:   34        64.00000         0.00000         3.15411 0
    [C7x_1 ]     64.759650 s:   36        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.769703 s:   38        64.00000        -2.00000         2.00000 1
    [C7x_1 ]     64.791560 s:   39        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.804287 s:   40       128.00000         0.00000         2.00000 0
    [C7x_1 ]     64.816224 s:   41        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     64.839126 s:   42        64.00000         0.00000         4.00000 0
    [C7x_1 ]     64.854614 s:   43        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     64.866321 s:   44        16.00000        -3.59804         3.23897 1
    [C7x_1 ]     64.912298 s:   35        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     64.958459 s:   45        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     65.004932 s:   46        16.00000        -6.45221         5.77451 1
    [C7x_1 ]     65.189917 s:   25        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     65.373212 s:   47        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     65.559076 s:   48        16.00000        -7.39338         7.03064 1
    [C7x_1 ]     66.302794 s:   15        32.00000        -4.00000         4.00000 1
    [C7x_1 ]     67.048948 s:   49        16.00000        -8.00000         8.00000 1
    [C7x_1 ]     67.795420 s:   50        32.00000         0.00000         7.34191 0
    [C7x_1 ]     68.273396 s:   51        16.00000         0.00000        16.00000 0
    [C7x_1 ]     68.389230 s:   54         8.00000       -16.00000        16.00000 1
    [C7x_1 ]     68.410441 s:   52         8.00000         0.00000        32.00000 0
    [C7x_1 ]     68.543835 s:   55         2.00000       -64.00000        64.00000 1
    [C7x_1 ]     68.550263 s:   53        16.00000         0.00000        16.00000 0
    [C7x_1 ]     68.641318 s:   56        64.00000        -2.00000         2.00000 1
    entered process
    
    Tensor ID:0
    nOutput Size 129 134 7  128 80
    
    Padding information of Draw node is L:1 T:1 R:0 B:53
    
    Tensor ID:1
    nOutput Size 129 134 2  128 80
    
    Padding information of Draw node is L:1 T:1 R:0 B:53
    
    Tensor ID:2
    nOutput Size 129 134 2  128 80
    
    Padding information of Draw node is L:1 T:1 R:0 B:53
    line before main
    end read_multi_TIDL_dumps
    start num_valid_predictions
    inside score_filter num_valid_boxes: 8
    Inside post_process num_valid_predictions 8
    end num_valid_predictions
    end main_postproc
    line after main
    
    PostProc::x_min=357 y_min=110 x_max=493 y_max=254 width=512 height=320 label=1 score=0.851953
    
    PostProc::x_min=357 y_min=113 x_max=493 y_max=257 width=512 height=320 label=1 score=0.851953
    
    PostProc::x_min=230 y_min=129 x_max=236 y_max=147 width=512 height=320 label=0 score=0.468791
    
    PostProc::x_min=151 y_min=140 x_max=155 y_max=148 width=512 height=320 label=4 score=0.437824
    
    PostProc::x_min=111 y_min=146 x_max=119 y_max=168 width=512 height=320 label=2 score=0.407333
    
    PostProc::x_min=166 y_min=116 x_max=190 y_max=142 width=512 height=320 label=1 score=0.377541
    
    PostProc::x_min=150 y_min=126 x_max=158 y_max=142 width=512 height=320 label=0 score=0.377541
    
    PostProc::x_min=344 y_min=125 x_max=356 y_max=159 width=512 height=320 label=0 score=0.320821
    exited process
    entered inside of APP_TIDL_TRACE_DUMP
    exited from APP_TIDL_TRACE_DUMP
    entered ifdef WRITE_INTERMEDIATE_OUTPUTS
    before WRITE_INTERMEDIATE_OUTPUTS
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    tidl 128
    after WRITE_INTERMEDIATE_OUTPUTS
    exited ifdef WRITE_INTERMEDIATE_OUTPUTS
    executed writeMosaicOutput
    exiting from app_run_graph_for_one_frame_sequential
    executed app_run_graph_for_one_frame_sequential
    app_tidl_od: Iteration 0 of 1 ... Done.
    app_run_graph exit
    app_delete_graph enter 
    app_delete_graph exit
    app_deinit enter 
    start of de-init
    end of de-init
    app_deinit exit
    Main end    70.169235 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:107] De-Initialization Done for HOST !!!
        70.173607 s:  VX_ZONE_INIT:[tivxDeInitLocal:223] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 26 alloc's of 441675077 bytes 
    DDR_SHARED_MEM: Free's : 26 free's  of 441675077 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    DDR_SHARED_MEM: Total size: 536870912 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    root@j7-evm:/opt/vision_apps#
    

    If u observe from lines 104-117 the padding information is present.

    PadB value is 53, I'm not sure from where that value is taken by application.

    Could you please help by knowing us how to change that value and where it is coming from?

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

    The values of padB and other pad related parameters are obtained from the ioBufDesc which is obtained from config.bin file that you have provided.

    Regards,

    Nikhil

  • Hi Nikhil,

    While importing the model we have nowhere mentioned about padding information, so I'm unsure that from where the padB 53 is coming into picture.

    Please find the import log attached here.

    2553.tidl_import_centernet_resnetC3_23_01_QAT_8b.txt
    modelType          = 2
    numParamBits       = 8
    numFeatureBits     = 8
    quantizationStyle  = 3
    calibrationOption = 64
    inputNetFile      = "/home/prakash/TI_SDK_8/ti-processor-sdk-rtos-j721e-evm-08_05_00_11/tidl_j721e_08_05_00_16/ti_dl/test/testvecs/models/public/onnx/QAT/ResNet_CenterNet_FR_TI_QAT_15bestepoch_W512_H320_C3_05_05_2023_simplified.onnx"
    outputNetFile     = "../../test/testvecs/config/tidl_models/onnx/CenterNet_ResNet18_FR_W736_H512_C3_23_01_2023/QAT/11_07_23/Without_QuantRange/8/tidl_net_centernetresnet_qat_Inelem0_34_8.bin"
    outputParamsFile   = "../../test/testvecs/config/tidl_models/onnx/CenterNet_ResNet18_FR_W736_H512_C3_23_01_2023/QAT/11_07_23/Without_QuantRange/8/tidl_io_centernetresnet_qat_Inelem0_34_8"
    inDataNorm  = 1
    inMean = 97.155 96.39 94.605
    inScale =  0.029935638 0.031372549 0.031882672
    inWidth  = 512
    inHeight = 320
    inNumChannels = 3
    inDataFormat = 0
    inFileFormat = 2
    inElementType = 1
    writeTraceLevel = 3
    debugTraceLevel = 1
    writeOutput = 2
    inData  =   "../../test/testvecs/config/import_resnet_ABC_50_vis.txt"
    outDataNamesList = "heat_map,wh_map,reg_map"
    

    So let me know how it is taking from config.bin and how to change it.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

        pad parameters are decided by TIDL and user is expected to use the same to provide input or read output of TIDL. You can refer the following document to understand pad related parameters : 

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_05_00_11/exports/docs/tidl_j721e_08_05_00_16/ti_dl/docs/user_guide_html/md_tidl_fsg_io_tensors_format.html#did_tidl_io_format_Types

    Regards,

    Anshu

  • Hello,

    While running the application the display output is not matching with the target inference output. Please find the images attached below representing same.

    1)output obtained from target inference

    2)output from application

    As you observe, some detections are not getting recognised. Also there are mismatches in map values generating from application. Suppose if one value of heat map is 6.5 from target inference, the corresponding heat map value is  6.9 from application

    Kindly help us in resolving these issues.

    Thanks & Regards,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

         Can you confirm if you get the right output in PC emulation mode?

    Regards,

    Anshu

  • Hi Anshu,

    Yes, we are able to get the right output in PC emulation mode. Please find the attached image for your reference.

    Thanks,

    Chaitanya Prakash Uppala

  • Chaitanya,

          Can you generate layer level traces from PC and EVM and compare to identify which specific layer is mismatching.


    Regards,

    Anshu

  • Hello Anshu,

    As you have seen in the above image, the PC inference result is matching with target inference.

    So Can I know the need of comparing the traces of those at the moment?

    Also we are not able to get the same detections from the application we have derived, which is supposed to give the results similar to inference output.

    Thanks,

    Chaitanya Prakash Uppala

  • Hi Chaitanya,

        I think I misunderstood the problem. Can you tell what is the difference between these two: output obtained from target inference and output from application? Is target inference here is TIDL test application?

    Regards,

    Anshu

  • Hello Anshu,

    We are able to get the detections, but the accuracy is very less. Please find the accuracies below.

    Standalone on target-61%

    Application on target-49%

    What might be the cause of this high drop in accuracy level as far as you know? And how to increase the accuracy in such case?

    We are assuming pre-proc block is modifying the value in a different way than we expected. So we are trying to pass the input buffer of an image directly in the last argument of "app_create_graph_tidl(obj->context, obj->graph, &obj->tidlObj,obj->preProcObj.output_tensor_arr);" function call.

    I have added  "vx_object_array  passing_arr[APP_PRE_PROC_MAX_TENSORS];" in PreProcObj struct, and also app_create_graph the following changes are done.

    FILE *fp3=fopen("image50_arr_rowwise.bin","rb");
    fread((vx_object_array)obj->preProcObj.passing_arr,497097,1,fp3);
    status = app_create_graph_tidl(obj->context, obj->graph, &obj->tidlObj,obj->preProcObj.passing_arr); 

    But while running the application we are getting segmentation fault.

    Could you please help us by letting us know how to create and pass buffer by de-eliminating the connection between pre-proc and tidl block.

    Thanks,

    Chaitanya Prakash Uppala