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.

TDA2EG: 2D Surround View Geometric Alignment Issue

Part Number: TDA2EG

Hi

     I am working on the 2D surround view usecase, and have a question about geometric alignment.

     

     From the related docs, "geometric alignment function (block 101) is called only once by the system framework when the system is powered up, and generate the geometric LUT, then save it in the memory"

     So i think the main purpose of geometric alignment is to obtain the geometric LUT at a "on-line" mode.

     During the calibration of 2D surround view, we will use the vision_sdk\apps\tools\surround_vision_tools\2d_calibration_tool\surroundview\SurroundView.exe to generate the geometric LUT. Then we can update the GAlignLUT array of VSDK to use the newest calibration result. I think this is a "off-line" mode to obtain the geometric LUT.

     My question is that if we already have the "off-line" mode to generate the geometric LUT by calibration, why we still need to use the "on-line" mode geometric alignment function in the usecase of 2D surround view? I think their purposes are the same, is it a repetition?

Thanks

xuanbo

  • Hello
    If you do not want to perform the run time calibration, you do not need to do this. same can be done offline and use it.
    but if there is any minor shake of any cameras (real life its a most common problem) run time calibration is much more simpler and faster.
    off line method is preferred only once when you set-up the demo-car, any fine tuning (calibration on top of previously calibrated LUT) can be done via run-time calibration

    regards, Shiju'
  • Hi Shiju

    Thank you for your explaination~
    So can i understand SV calibration as follows:
    First, we use the off line calibration tool to get the initial geometric LUT.
    Then when the vehicle starts to park and surround view starts to work, the run time calibration (geometric alignment function (block 101) ) will receive the fish-eye camera images with minor shake. So run time calibration will start to tune the geometric LUT from initial value to a optimal value which will solve the problem of minor shake of cameras.
    Then SV app will use the optimal geometric LUT in the rest of time until the app is finished.
    Does my understanding is correct or not? And what do i need to do about run time calibration?

    Thanks
    xuanbo
  • xuanbo

    yes your understanding is right. run time auto-calibration is enabled by default and automatically happen in the beginning of the SRV run

    regards, Shiju

  • Hi Shiju

        OK, i got it. I am sorry that i still have some issues need to be cleared:

    1) Does the implement of run time auto calibration is the Alg_GeometricAlignmentProcess function?

    2) Since the run time auto calibration is automatically happen and done by the algorithm, i think we can not do any improvement about auto calibration. So if we want to improve the geometric alignment, what we can do is only to get a better intial geometric  LUT by offline calibration tool, as it is the start point of run time auto calibration?

    3) "geometric alignment function (block 101) is called only once by the system framework when the system is powered up"

         But in the line 761 of vision_sdk\apps\src\rtos\alg_plugins\surroundview\gAlignLink_algPlugin.c, there is a comment:

    /*

    * TBD - Currently this link will call algorithm only once for first
    * frame. Logic needs to change in future.
    */

        So currently, run time auto calibration (geometric alignment function (block 101)) is run every frame?

    4) What is the purpose of vision_sdk\apps\src\rtos\usecases\srv_calibration ?

    Thanks

    xuanbo

  • xuanbo

    <1>
    yes

    <2>
    Any auto calibration uses the previously loaded LUT and it update the same with fin tuned values

    <3>
    Current code support only one time calibration (LUT generation), if you want to do this in any regular interval its TDB

    <4>
    You need GA LUT and blend LUT to map the camera points. The calibration process generate or update these tables

    regards, Shiju
  • Hi Shiju

    OK, auto calibration will use the previously loaded LUT (stored in the GAlignLUT_tda2xx.c) to update.
    It seems that i have a misunderstanding about gAlignLink_algPlugin.c, i will read it again.

    Thanks
    xuanbo