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.
Tool/software:
Dear sir,
I'm working on J722S board with sdk 10. My application pipeline is scaler->Preproc->TIDL->Post-proc.
Unlike for J721E, it is known that we cant use pre and post-processing kernels which are part of img_proc kernels for c66 core in vision_apps.
So we have created custom kernels for both. We have developed a custom kernel for Nv12 to RGB planar conversion.It gives the expected output.But when it is given as input to TIDL node, not getting expected output.
Please not that we have taken the empirical formula for conversion.
int R = (298 * C + 409 * E + 128) >> 8;
int G = (298 * C - 100 * D - 208 * E + 128) >> 8;
int B = (298 * C + 516 * D + 128) >> 8;
Is the idea proper and will there be any difference in the output of pre-processing present in img_proc and our simple conversion from NV12->RGBPLanar?
Request you to help me with this issue!
Thanks,
Seetharama Raju.
Hi,
Could you write the output of the preproc node and check if you are getting the expected output. Please note that the input to the TIDL node should match with your model expectations such as the input size, tensor datatype etc.
Regards,
Nikhil
Hi sir,
Yes I have taken care of the parameters like input size,tensor datatype.
The model expects int_16 tensor datatype, 224x224 RGB planar. I have taken these parameters into consideration for the custom pre-processing logic.
Thanks,
Raju.
Hi Raju,
In this case, there should not be an error in the output, if parameters such as (padding, mean, scale etc) are taken care.
Can you dump the output of pre-proc and confirm that the data values are as expected?
Do you have a reference value for the input to the TIDL node, which would give correct output from the node?
Regards,
Nikhil
Hi sir,
As part of debugging, I integrated my custom pre-proc kernel in demo app_tidl_od application in 8.2 SDK. As the model size is 1024x512, I adjusted the custom logic to give 1024x512 BGR planar output. I dumped pre-proc output in both cases, one with SDK's preproc and other with custom logic.
When I dumped with sdk's pre-proc, I found the tenosr width and height as 1025 and 515. I assume it is due to the padding. I dumped the pre-proc outpur for one frame and checked the pattern. I could not understand the way of padding.
Please guide me how could I change my custom logic with respect to this?
Thanks,
Raju
Hi Raju,
The padding information is obtained from the imported model i.e. from the ioBufDesc., you can see function in app_update_pre_proc() in vision_apps/apps/dl_demos/app_tidl_od/app_pre_proc_module.c
Regards,
Nikhil
Hi sir,
We have found a source file vx_dl_pre_proc_target_no_dma.c avaible in SDK 10.1 at $vision_apps/kernels/img_proc/c66 and ported to a new custom kernel for pre-processing on C7x core. When this node is integrated in the demo application app_tidl_od( SDK 8.2) running on J721E, the application is giving proper bounding boxes on the display.When the same node is integrtaed in SDK 10.1 in our custom file based application, the pre-processing node is not giving expected outupt.
Note:
1)Custom pre-proc kernel is built on C7x core in both SDK 8.2 and 10.1
2)In the 8.2 SDK, eventhough the detections are proper on the display, I have verified the pre-proc dump using VOOYA app, it is not coming as expected.
3)In the experiment done with J721E, the reference application is "app_tidl_od" where the input resolution is 1024x512 whereas J722S experiment has our custom application where tidl expects 224x224, thats the reason you observed the size change in below attached files but output are from the same input YUV image.
Please find the pre-proc dump in both SDK 8.2(J721E) and 10.1(J722S) respectively.
Please provide any reliable source code available in SDK 10,1 for pre-processing(NV12->RGB) that can be ported on to J722s as there are no working demo available on J722S which has pre-processing module.
Thanks and Regards,
Raju
Hi sir,
Gentle reminder about the response!!
As we dont have preprocessing node validated on J722s, we would like to know the expected output from the preproc node. Is it same like J721E, a tensor( NCHW RGB/BGR planar) or different?
Please confirm this as well.
Thanks,
Raju.
Hi sir,
Could you please respond, as it is very important for our project.
Thanks,
Raju.
Hi sir,
Any update regarding the below requirement,
"Please provide any reliable source code available in SDK 10.1 for pre-processing(NV12->RGB) that can be ported on to J722s as there are no working demo available on J722S which has pre-processing module".
Thanks,
Raju.
Hi Raju,
We are working on enabling vision apps TIDL demos on J722S
by moving preproc and postproc kernels to A53 with neon optimization
This will be part of 11.0 release in April end
Meanwhile, we have another project called edgeai-tiovx-apps
which implements similar demos. It is part of the SDK and
packaged under /opt/edgeai-tiovx-apps
Please take a look at the documentation here
TexasInstruments/edgeai-tiovx-apps: Reference OpenVx based applications
Edge AI TIOVX Apps reference guide · TexasInstruments/edgeai-tiovx-apps Wiki
Regards
Rahul T R