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: TDA4 VM

Part Number: TDA4VM

Hi,

We are working on intelligent driving with TDA 4V.

Recently, we update the TI SDK from 7.2 to 8.2, and we found a problem.

With 7.2-version TI SDK, the model can output the angle slots corretly, but after we update to 8.2, the angle slots can not be detected.

Basically, we are using funcions in this way:

PSD_Vision_Module{

          OdOutput Detect{

                    app_run_graph{

                          postProcess();

}

}

         PSD_Postproc();

}

We have confirmed that the postProcess() function works fine and correctly, so as far as we know, the problem may happened with the app_run_graph() function.

So, we would like to know what the diffenece between the 7.2 TI SDK and 8.2 and how it affects the output of the model or the funtion app_run_graph() .

Best Regards.

  • Hi,

    app_run_graph() is an application level API and not part of TIOVX framework. Hence implementation of the same is different for different applications.

    Could you please let me know if this something that is in the SDK? If yes, could you provide me to the path of the same in the SDK?

    Regards,

    Nikhil

  • Hi,

    Do you mean that firstly we should make sure that the function app_run_graph() is in the SDK and you need the path/position of the function in the SDK? I am a little confused.

    1. And also, I would like to know the diffenece between the 7.2 TI SDK and 8.2. Maybe it's the update affect the usage of app_run_graph().

    2. If the app_run_graph() is not a part of TIOVX framework, whether TI is responsible for the maintennance of the function or not.

    Best Regards,

    Yang

  • Hi,

    Do you mean that firstly we should make sure that the function app_run_graph() is in the SDK and you need the path/position of the function in the SDK? I am a little confused.

    Sorry for the confusion here.

    so as far as we know, the problem may happened with the app_run_graph() function.

    From the above statement, you mentioned that the issue is with app_run_graph(). I would like to know where could I find the function definition of this API?

    Is this something you have implemented? If yes, please provide the function implementation.

    If it is taken or referred to an implementation in SDK, please let me know from which application have you referred the implementation of this API.

    And also, I would like to know the diffenece between the 7.2 TI SDK and 8.2. Maybe it's the update affect the usage of app_run_graph().

    There are a lot of differences between these 2 SDKs. You could refer the SDK release notes for the same. Again, without know what is the implementation inside app_run_graph(), I would be unable to comment on the same.

    If the app_run_graph() is not a part of TIOVX framework, whether TI is responsible for the maintennance of the function or not.

    If it is part of the SDK release, then the functions would be maintained. If it is a custom implementation from your end, then you would have to port it during SDK migration.

    Regards,

    Nikhil

  • This time I understand it clearly. I would ask the related colleague about the function. And, I would reply to you later about the information of app_run_graph(). Thank you so much for your patience!

    Best Regards,

    Yang

  • Thank you Yang.

  • Hi, 

    The function, App_run_graph(), contains three functions, i.e. preprocess(), vxProcessGraph(), and postprocess(). The preprocess() inputs image data to inputtensor(), and vxProcessGraph() is TI's model inference funcion. The postprocess() is to get results from outputtensor(). 

    This process is a standard one, written according to TI's examples, the aim of which is to accomplish the model inference and get the results.

    Do you need more detailed information about the funcion or you could find the definition in the TI examples, maybe?

    Yang.

  • Hi Yang,

    preprocess(), vxProcessGraph(), and postprocess().

    From the above three APIs, vxProcessGraph() is a TI API. Are you seeing a hang in this?

    If yes, this means that the hang could be somewhere in the model layers.

    Could you confirm if the hang is seen in vxProcessGraph()?

    Regards,

    Nikhil

  • Hi, I have confirmed that, the function vxProcessGraph() didn't fail, which means we can still get the processed results from the model. If it had failed, we would not get any results from it. So, during the test, the whold process did not fail, and we can get the results, if that is what you what. And, if you have further questions about it, please let me know. We will reply as soon as possible. And also, I am so sorry for the time gap. Too busy on other work.

  • Hi,

    We have confirmed that the postProcess() function works fine and correctly, so as far as we know, the problem may happened with the app_run_graph() function.

    So, we would like to know what the diffenece between the 7.2 TI SDK and 8.2 and how it affects the output of the model

    Sorry, I thought your initial problem was a graph or application hang based on your above comments.

    Could you please elaborate what your exact issue is? 

    From 7.2 to 8.2 there is a lot of differences which could be seen from the respective release notes, but I would like to understand in a bit more brief what is the change that you are observing?

    Regards,

    Nikhil

  • Could we arrange a meeting to discuss those question clearly? You, me, the developer, the tester? Is there any chance we could do that? Because the back and forth message way is a little inefficient.

  • We are working on an intelligent driving and parking project. after we updated the TI SDK from 7.2 to 8.2, some function couldn't work fine, specifically, we could not detect the tilting slot.

  • Hi,

    Before moving to a call, I would suggest that you could give an overview here on the thread like below 

    1. the OpenVX graphs and nodes involved in the application. (A flowchart or diagram of the nodes would be better)

    2. The issue that you are facing currently i.e. good case vs bad case

    3. A video recording (if available) or any observations how you are differentiating the good case (7.2) with the bad case (8.2)

    From the above information, I could check if the issue is with the OpenVX framework or your Deep learning algorithm. Based on this I could loop in relevant experts if a call is required.

    Regards,

    Nikhil

  • Hi,

    Thank you so much. I believe that we could tackle the problem together!

    I need some time to prepare for the questions. Please wait.

    Thank you again.

  • Sure. No worries. Please take your time.

  • Hi,

    Thank you for your waiting. We have collected the information that you need. 

    The attachment contains the model structure, bad case and good case that we are facing in this project.

    the file named "model", containing bufinfolog.csv and tidl_net_448x448_psd.bin_netLog.txt, shows the basic structure of the model.

    and the good case shows that we are doing the detection of the parking slot and if it is rectangular, it works fine (ti-7.1> TI-SDK 7.1);

    and the bad case is that if it is Parallelogram, the output of the model is ok, but the results cannot be transmitted out correctly, most of which are 0's (ti-8.2> TI-SDK 8.2);

     Please check the attachment and if you have any questions, please let me know. And also, we would like to know when we could arrange a meeting to push forward the solving process quickly.

    reply_TI.zip

  • Thank you for sharing the contents. Let me take a look at it and get back to you by Friday.

    Regards,

    Nikhil

  • Hi,

    Upon initial observation, it seems to be a TIDL issue. I have looped in the TIDL expert here for more analysis.

    Could you also provide the layer level dump for the expert to analyse?

    In the TIDL node, there is a flag "traceWriteLevel" which has to be set to 1 for this. This also requires additional changes. You could refer the implementation under "APP_TIDL_TRACE_DUMP" in the vision_apps DL demo in vision_apps/apps/dl_demos/app_tidl/main.c

    Regards,

    Nikhil