Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. Software Development
  3. Video and Image Sensors
  4. Calibration for EIS

Calibration for EIS

Scheduled Pinned Locked Moved Video and Image Sensors
11 Posts 2 Posters 4.5k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S SKA

    Hi! When I follow the instructions on here to calibrate at half resolution for EIS, I'm noticing that the output video is zoomed in. Even setting misp_zoom to 0, and resolution to 4040x3040 for an imx412 camera is not giving me the full camera view.

    I'm using voxl-camera-server_2.2.4
    Here is my voxl-camera-server.conf file:

    {
                            "type": "imx412",
                            "name": "hires",
                            "enabled":      true,
                            "camera_id":    1,
                            "fps":  10,
                            "en_preview":   true,
                            "en_raw_preview":       true,
                            "en_misp":      true,
                            "preview_width":        4040,
                            "preview_height":       3040,
                            "misp_width":   2020,
                            "misp_height":  1520,
                            "misp_awb":     "auto",
                            "misp_zoom":    0,
                            "en_eis":       false,
                            "eis_mode":     "full-follow",
                            "eis_view":     "eis-only",
                            "eis_follow_rate":      0.01,
                            "en_large_video":       false,
                            "en_small_video":       true,
                            "en_snapshot":  false,
                            "ae_mode":      "lme_msv",
                            "en_rotate":    false,
                            "misp_venc_enable":     true,
                            "misp_venc_mode":       "h264",
                            "misp_venc_br_ctrl":    "cbr",
                            "misp_venc_Qfixed":     30,
                            "misp_venc_Qmin":       15,
                            "misp_venc_Qmax":       51,
                            "misp_venc_nPframes":   29,
                            "misp_venc_mbps":       3,
                            "ae_desired_msv":       100,
                            "exposure_min_us":      25,
                            "exposure_max_us":      5000,
                            "gain_min":     100,
                            "gain_max":     32000,
                            "exposure_soft_min_us": 5000,
                            "snapshot_jpeg_quality":        75,
                            "small_video_width":    1024,
                            "small_video_height":   768,
                            "small_venc_mode":      "h264",
                            "small_venc_br_ctrl":   "cqp",
                            "small_venc_Qfixed":    30,
                            "small_venc_Qmin":      15,
                            "small_venc_Qmax":      40,
                            "small_venc_nPframes":  9,
                            "small_venc_mbps":      2,
                            "small_venc_osd":       false,
                            "large_video_width":    4056,
                            "large_video_height":   3040,
                            "large_venc_mode":      "h264",
                            "large_venc_br_ctrl":   "cqp",
                            "large_venc_Qfixed":    40,
                            "large_venc_Qmin":      15,
                            "large_venc_Qmax":      50,
                            "large_venc_nPframes":  29,
                            "large_venc_mbps":      40,
                            "large_venc_osd":       false,
                            "en_snapshot_width":    4056,
                            "en_snapshot_height":   3040,
                            "exif_focal_length":    3.0999999046325684,
                            "exif_focal_length_in_35mm_format":     17,
                            "exif_fnumber": 1.2400000095367432,
                            "misp_venc_osd":        false,
                            "misp_gamma":   1.6,
                            "ae_filter_alpha":      0.600000023841858,
                            "ae_ignore_fraction":   0.20000000298023224,
                            "ae_slope":     0.05000000074505806,
                            "ae_exposure_period":   1,
                            "ae_gain_period":       1
                    }
    
    Alex KushleyevA Offline
    Alex KushleyevA Offline
    Alex Kushleyev
    ModalAI Team
    wrote on last edited by
    #2

    @SKA , the minimum zoom should be 1.0, not 0.0. Can you try to see if that works?

    Alex

    S 1 Reply Last reply
    0
    • Alex KushleyevA Alex Kushleyev

      @SKA , the minimum zoom should be 1.0, not 0.0. Can you try to see if that works?

      Alex

      S Offline
      S Offline
      SKA
      Contributor
      wrote on last edited by
      #3

      @Alex-Kushleyev I tried 1.0 as well, it didn't make a difference.

      Alex KushleyevA 1 Reply Last reply
      0
      • S SKA

        @Alex-Kushleyev I tried 1.0 as well, it didn't make a difference.

        Alex KushleyevA Offline
        Alex KushleyevA Offline
        Alex Kushleyev
        ModalAI Team
        wrote on last edited by Alex Kushleyev
        #4

        @SKA ,

        Does the zoom level change if you change misp_zoom param from 1.0 to a higher number? You can also adjust zoom via voxl-portal when you view the stream and enable the check box for camera controls (bottom left). Did you try changing zoom that way?

        Alex

        S 1 Reply Last reply
        0
        • Alex KushleyevA Alex Kushleyev

          @SKA ,

          Does the zoom level change if you change misp_zoom param from 1.0 to a higher number? You can also adjust zoom via voxl-portal when you view the stream and enable the check box for camera controls (bottom left). Did you try changing zoom that way?

          Alex

          S Offline
          S Offline
          SKA
          Contributor
          wrote on last edited by SKA
          #5

          @Alex-Kushleyev No, it doesn't change. Let me try adjusting in voxl-portal.

          Alex KushleyevA 1 Reply Last reply
          0
          • S SKA

            @Alex-Kushleyev No, it doesn't change. Let me try adjusting in voxl-portal.

            Alex KushleyevA Offline
            Alex KushleyevA Offline
            Alex Kushleyev
            ModalAI Team
            wrote on last edited by
            #6

            @SKA , you are probably looking at the wrong stream, since you have small video enabled, which does not use misp. Use hires_misp_ streams

            S 1 Reply Last reply
            0
            • Alex KushleyevA Alex Kushleyev

              @SKA , you are probably looking at the wrong stream, since you have small video enabled, which does not use misp. Use hires_misp_ streams

              S Offline
              S Offline
              SKA
              Contributor
              wrote on last edited by
              #7

              @Alex-Kushleyev I'm looking at hires_misp_grey. I know I've been looking at the misp streams all along because they haven't been fisheye, like the hires_small_grey stream.
              Also, just checked out the zoom slider in voxl-portal, it doesn't seem to work

              Alex KushleyevA 1 Reply Last reply
              0
              • S SKA

                @Alex-Kushleyev I'm looking at hires_misp_grey. I know I've been looking at the misp streams all along because they haven't been fisheye, like the hires_small_grey stream.
                Also, just checked out the zoom slider in voxl-portal, it doesn't seem to work

                Alex KushleyevA Offline
                Alex KushleyevA Offline
                Alex Kushleyev
                ModalAI Team
                wrote on last edited by Alex Kushleyev
                #8

                @SKA , just to clarify, if you disable EIS, then undistortion is disabled, you will see fisheye image. If EIS is enabled, the output will be undistorted (zoomed in a bit). Part of EIS figures out the minimum zoom level such that the undistorted image is maximized (no black pixels at the edges), so if EIS is enabled and you set misp_zoom to 1.0, the image will appear slightly zoomed in because it is undistorted (and parts of the image are no longer visible, what used to be the corners).

                if you set misp_zoom to 1.0 and eis is disabled, you will see the image that is not zoomed in. If your misp width and height aspect ratio differs from the raw preview aspect ratio, then misp will crop the top+bottom (usually), to get the correct aspect ratio. For example, if your raw preview size is 4040x3040 and your misp output is 1920x1080, then misp will first crop the top and bottom of the raw image to get the 16:9 aspect ratio and then resize the image to 1920x1080 (well actually all the steps are happening at the same time, not sequentially).

                I have to ask, how do you know that your image is zoomed in and not original? btw since you have the small video stream enabled, you can look at that image (hires_small_color) to see if the zoom level is the same - this is coming from the ISP and it should also crop + resize to your resolution for small video stream you have selected (you can make the small video resolution the same as misp output resolution and compare images, they should look identical zoom-wise)

                Alex

                S 1 Reply Last reply
                0
                • Alex KushleyevA Alex Kushleyev

                  @SKA , just to clarify, if you disable EIS, then undistortion is disabled, you will see fisheye image. If EIS is enabled, the output will be undistorted (zoomed in a bit). Part of EIS figures out the minimum zoom level such that the undistorted image is maximized (no black pixels at the edges), so if EIS is enabled and you set misp_zoom to 1.0, the image will appear slightly zoomed in because it is undistorted (and parts of the image are no longer visible, what used to be the corners).

                  if you set misp_zoom to 1.0 and eis is disabled, you will see the image that is not zoomed in. If your misp width and height aspect ratio differs from the raw preview aspect ratio, then misp will crop the top+bottom (usually), to get the correct aspect ratio. For example, if your raw preview size is 4040x3040 and your misp output is 1920x1080, then misp will first crop the top and bottom of the raw image to get the 16:9 aspect ratio and then resize the image to 1920x1080 (well actually all the steps are happening at the same time, not sequentially).

                  I have to ask, how do you know that your image is zoomed in and not original? btw since you have the small video stream enabled, you can look at that image (hires_small_color) to see if the zoom level is the same - this is coming from the ISP and it should also crop + resize to your resolution for small video stream you have selected (you can make the small video resolution the same as misp output resolution and compare images, they should look identical zoom-wise)

                  Alex

                  S Offline
                  S Offline
                  SKA
                  Contributor
                  wrote on last edited by SKA
                  #9

                  @Alex-Kushleyev Thanks!

                  04202f30-bd7c-4232-a431-f94a51ef3502-image.png

                  This is what I'm seeing with voxl-camera-server set to the following:

                                          "en_misp":      true,
                                          "preview_width":        4040,
                                          "preview_height":       3040,
                                          "misp_width":   2020,
                                          "misp_height":  1520,
                                          "misp_awb":     "auto",
                                          "misp_zoom":    1.,
                                          "en_eis":       false,
                                          "eis_mode":     "full-follow",
                                          "eis_view":     "eis-only",
                                          "eis_follow_rate":      0.01,
                                          "en_large_video":       false,
                                          "en_small_video":       true,
                  

                  I'll keep debugging why this is happening. Will EIS accept an intrinsics file calibrated from hires_small_grey setting the width and height to 2020x1520?

                  Alex KushleyevA 1 Reply Last reply
                  0
                  • S SKA

                    @Alex-Kushleyev Thanks!

                    04202f30-bd7c-4232-a431-f94a51ef3502-image.png

                    This is what I'm seeing with voxl-camera-server set to the following:

                                            "en_misp":      true,
                                            "preview_width":        4040,
                                            "preview_height":       3040,
                                            "misp_width":   2020,
                                            "misp_height":  1520,
                                            "misp_awb":     "auto",
                                            "misp_zoom":    1.,
                                            "en_eis":       false,
                                            "eis_mode":     "full-follow",
                                            "eis_view":     "eis-only",
                                            "eis_follow_rate":      0.01,
                                            "en_large_video":       false,
                                            "en_small_video":       true,
                    

                    I'll keep debugging why this is happening. Will EIS accept an intrinsics file calibrated from hires_small_grey setting the width and height to 2020x1520?

                    Alex KushleyevA Offline
                    Alex KushleyevA Offline
                    Alex Kushleyev
                    ModalAI Team
                    wrote on last edited by Alex Kushleyev
                    #10

                    @SKA , can you please try to set the FPS to 30 (instead of 10) and see if the issue persists? I am wondering if incorrect resolution is selected by the camera pipeline somehow. Also please try to disable the small video and see if the issue persists.

                    I just tested with 30fps on camera server version 2.2.4 and it worked fine, no zoom.

                    Also, which IMX412 camera drivers are you using?

                    Alex

                    Alex KushleyevA 1 Reply Last reply
                    0
                    • Alex KushleyevA Alex Kushleyev

                      @SKA , can you please try to set the FPS to 30 (instead of 10) and see if the issue persists? I am wondering if incorrect resolution is selected by the camera pipeline somehow. Also please try to disable the small video and see if the issue persists.

                      I just tested with 30fps on camera server version 2.2.4 and it worked fine, no zoom.

                      Also, which IMX412 camera drivers are you using?

                      Alex

                      Alex KushleyevA Offline
                      Alex KushleyevA Offline
                      Alex Kushleyev
                      ModalAI Team
                      wrote on last edited by
                      #11

                      Another question.. did this work for you before or is this the first time trying to calibrate at half resolution? if you request the full resolution, do you get the non-zoomed image? i know it will be slow to display in voxl-portal, but you could still check.

                      If you enable EIS with default camera calibration (no intrinsics cal file). does EIS and zoom work as expected? note that your version of voxl-portal may not have the browser support for zooming, but the config file zoom should still work. If you want to use the latest voxl-portal for EIS, please use this branch : https://gitlab.com/voxl-public/voxl-sdk/services/voxl-portal/-/tree/eis-integration . however the initial zoom of the image coming from the camera server is not dependent on the version of voxl-portal.

                      Alex

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      ModalAI
                      Categories Recent Tags ModalAI.com Docs
                      © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups