VEYE IMAGING Forum
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc
    • Register
    • Login

    Using veye-mipi-327 with opencv

    Scheduled Pinned Locked Moved VEYE MIPI camera
    9 Posts 2 Posters 2.1k Views 1 Watching
    Loading More Posts
    • 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.
    • N Offline
      Nathan Sinclair
      last edited by

      I'm piping the contents of this command to a python program which accepts a numpy array for displaying to screen.

      veye_raspivid -t -1 -o -

      In what raw data format is this command transmitting raw video?

      veye_xummV 1 Reply Last reply Reply Quote 0
      • veye_xummV Offline
        veye_xumm @Nathan Sinclair
        last edited by

        @nathan-sinclair
        I think veye_raspivid transmitting h.264 encoded data.
        I think maybe V4L2 mode is a proper option.
        http://wiki.veye.cc/index.php/V4L2_mode_for_Raspberry_Pi

        Questions will be answered as soon as possible, please be patient.
        如果你使用中文,请直接用中文提问。
        May the force be with YOU. (This is the translation of the mysterious Chinese symbol above.)

        N 1 Reply Last reply Reply Quote 0
        • N Offline
          Nathan Sinclair @veye_xumm
          last edited by Nathan Sinclair

          @veye_xumm
          Has issues running on pi zero. When installing:
          usage: sudo ./install_driver.sh veyecam2m/veye327/csimx307/cssc132
          Enable i2c0 adapter...
          ./install_driver.sh: line 81: 741 Segmentation fault sudo modprobe i2c-dev
          Add dtoverlay=veye327 to /boot/config.txt
          Add gpu=400M to /boot/config.txt
          Add cma=128M to /boot/cmdline.txt
          Installing the veye327.ko driver
          install: cannot stat './driver_bin/5.10.63+/veye327.ko': No such file or directory
          install: cannot stat './driver_bin/5.10.63+/veye327.dtbo': No such file or directory
          ./install_driver.sh: line 116: 769 Segmentation fault sudo /sbin/depmod -a $(uname -r)

          N 1 Reply Last reply Reply Quote 0
          • N Offline
            Nathan Sinclair @Nathan Sinclair
            last edited by

            @nathan-sinclair @veye_xumm
            Okay here's the progress i've made.
            command uses MJPEG codec and rgb rawformat.
            Pythoncode:
            start_pipe

            LiveCamera.pipe = subprocess.Popen(['/home/pi/veye/veye_raspcam/bin/veye_raspivid', '-cd', 'MJPEG', '-rf', 'rgb', '-n',  '-t', '0', '-o', '-'], stdout=subprocess.PIPE)
            

            read from pipe

            raw_image = LiveCamera.pipe.stdout.read(LiveCamera.width * LiveCamera.height * 3)
            a = raw_image.find(b'xffxd8')  # JPEG start
            b = raw_image.find(b'xffxd9')  # JPEG end
            if a != -1 and b != -1:
                jpg = raw_image[a:b + 2]  # actual image
                bytesarray = raw_image[b + 2:]  # other informations
            
                # decode to colored image
                image = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.IMREAD_COLOR)
            

            Doesn't read any data at the moment.

            1 Reply Last reply Reply Quote 0
            • veye_xummV Offline
              veye_xumm
              last edited by

              @nathan-sinclair
              You can try using the D-SDK:
              http://wiki.veye.cc/index.php/VEYE-MIPI-290/327_for_Raspberry_Pi#D-SDK
              program: capture2opencv or capture2opencv.py

              Of course veye_raspividyuv is another option.

              Questions will be answered as soon as possible, please be patient.
              如果你使用中文,请直接用中文提问。
              May the force be with YOU. (This is the translation of the mysterious Chinese symbol above.)

              N 2 Replies Last reply Reply Quote 0
              • N Offline
                Nathan Sinclair @veye_xumm
                last edited by Nathan Sinclair

                @veye_xumm I think from previous correspondence capture2opencv was only capable of capturing 1 frame per second, we're needing a live feed. I should have said that earlier. I'll have a look at it though. Trying out the YUV. will report what i find.

                1 Reply Last reply Reply Quote 0
                • N Offline
                  Nathan Sinclair @veye_xumm
                  last edited by Nathan Sinclair

                  @veye_xumm
                  I'm not familiar with the raspividyuv program.
                  I am using the following command piped to my python program:

                  LiveCamera.pipe = subprocess.Popen(['/home/pi/veye/veye_raspcam/bin/veye_raspividyuv', '-t', '0','-o', '-'], stdout=subprocess.PIPE)
                  

                  Got it going but it appears only to run maybe a few frames per second.
                  Also I'm neeeding a time frame in order to get this working. It's very important that we get this flipping going for a client. To be specific:
                  We're using a pi zero with a usb camera and MIPI-327 and both of these cameras need to be able to be flipped in the event the camera goes upside down. We're using python because a library exists for it that allows us to display the video streams without a gui. Arducam software needs to be able to run at 30fps at 1080p.
                  Isn't MJPEG an option that can be used? i just need a way to get the right data from the mjpeg stream and then i'm okay.
                  What data is being sent based on the codec option MJPEG or H264. I just need to know where the data is and use opencv to convert it to an image.

                  veye_xummV 1 Reply Last reply Reply Quote 0
                  • veye_xummV Offline
                    veye_xumm @Nathan Sinclair
                    last edited by

                    @nathan-sinclair

                    1. You can use http://wiki.veye.cc/index.php/VEYE-MIPI-290/327_i2c/ mirrormode function to set MIPI-327 output flip image. No need to flip it via opencv.
                    2. MIPI-327 output format is UYVY(a type of YUV422), which is not supported by opencv originally. Using the cpu to do the format conversion resulted in a lower frame rate.
                      If you just need PREVIEW, why not use veye_raspipreview? It also allows for display position adjustment scaling etc. without the need for a gui.

                    Questions will be answered as soon as possible, please be patient.
                    如果你使用中文,请直接用中文提问。
                    May the force be with YOU. (This is the translation of the mysterious Chinese symbol above.)

                    N 1 Reply Last reply Reply Quote 0
                    • N Offline
                      Nathan Sinclair @veye_xumm
                      last edited by

                      @veye_xumm I was just looking at the i2c program. Call this resolved.

                      1 Reply Last reply Reply Quote 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
                      • First post
                        Last post