• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Register
  • Login
ModalAI Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
    • Register
    • Login

    Upgrade Tensorflow Version tflite-server

    FAQs
    3
    38
    3.4k
    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.
    • P
      Philemon Benner
      last edited by Philemon Benner 24 Feb 2022, 16:52 24 Feb 2022, 16:45

      @Eric-Katzfey
      lsusb:

      Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
      Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      Bus 003 Device 002: ID 09cb:4007  
      Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      

      voxl-uvc-server -s:

      *** START DEVICE LIST ***
      
      Found device 1
      
      Got device descriptor for 09cb:4007 134275
      
      Found device 09cb:4007
      
      DEVICE CONFIGURATION (09cb:4007/134275) ---
      Status: idle
      VideoControl:
      	bcdUVC: 0x0100
      VideoStreaming(1):
      	bEndpointAddress: 129
      	Formats:
      	UncompressedFormat(1)
      		  bits per pixel: 12
      		  GUID: 4934323000001000800000aa00389b71 (I420)
      		  default frame: 1
      		  aspect ratio: 0x0
      		  interlace flags: 00
      		  copy protect: 00
      			FrameDescriptor(1)
      			  capabilities: 02
      			  size: 640x512
      			  bit rate: 10592000-235929600
      			  max frame size: 491520
      			  default interval: 1/60
      			  interval[0]: 1/60
      			  interval[1]: 1/30
      	UncompressedFormat(2)
      		  bits per pixel: 16
      		  GUID: 5931362000001000800000aa00389b71 (Y16 )
      		  default frame: 1
      		  aspect ratio: 0x0
      		  interlace flags: 00
      		  copy protect: 00
      			FrameDescriptor(1)
      			  capabilities: 02
      			  size: 640x512
      			  bit rate: 10592000-629145600
      			  max frame size: 655360
      			  default interval: 1/60
      			  interval[0]: 1/60
      			  interval[1]: 1/30
      	UncompressedFormat(3)
      		  bits per pixel: 12
      		  GUID: 4e56313200001000800000aa00389b71 (NV12)
      		  default frame: 1
      		  aspect ratio: 0x0
      		  interlace flags: 00
      		  copy protect: 00
      			FrameDescriptor(1)
      			  capabilities: 02
      			  size: 640x512
      			  bit rate: 10592000-235929600
      			  max frame size: 491520
      			  default interval: 1/60
      			  interval[0]: 1/60
      			  interval[1]: 1/30
      	UncompressedFormat(4)
      		  bits per pixel: 12
      		  GUID: 4e56323100001000800000aa00389b71 (NV21)
      		  default frame: 1
      		  aspect ratio: 0x0
      		  interlace flags: 00
      		  copy protect: 00
      			FrameDescriptor(1)
      			  capabilities: 02
      			  size: 640x512
      			  bit rate: 10592000-235929600
      			  max frame size: 491520
      			  default interval: 1/60
      			  interval[0]: 1/60
      			  interval[1]: 1/30
      END DEVICE CONFIGURATION
      
      *** END DEVICE LIST ***
      

      voxl-uvc-server -d -m -r 640x512:

      Enabling debug messages
      Enabling MPA debug messages
      voxl-uvc-server starting
      Image resolution 640x512, 30 fps chosen
      UVC initialized
      Device found
      Device opened
      uvc_get_stream_ctrl_format_size succeeded for format 2
      Streaming starting
      Got frame callback! frame_format = 17, width = 640, height = 512, length = 491520, ptr = (nil)
      making new fifo /run/mpa/uvc/voxl-tflite-server0
      opened new pipe for writing after 3 attempt(s)
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 1
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
       * got image 30
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 40 errno: 0
      previous client state was 2
      write to ch: 0 id: 0 result: 491520 errno: 0
      
      Eric KatzfeyE 2 Replies Last reply 24 Feb 2022, 18:28 Reply Quote 0
      • P
        Philemon Benner
        last edited by Philemon Benner 24 Feb 2022, 16:59 24 Feb 2022, 16:51

        Just checked the camera on my laptop. Camera it self is working fine
        It's also working fine with nv12 format without the green lines:

        ffplay /dev/video4 -pixel_format nv12 
        

        Output:

        Input #0, video4linux2,v4l2, from '/dev/video4':B sq=    0B f=0/0   
          Duration: N/A, start: 33575.082223, bitrate: 235929 kb/s
            Stream #0:0: Video: rawvideo (NV12 / 0x3231564E), nv12, 640x512, 235929 kb/s, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
        
        1 Reply Last reply Reply Quote 0
        • Eric KatzfeyE
          Eric Katzfey ModalAI Team @Philemon Benner
          last edited by 24 Feb 2022, 18:28

          @Philemon-Benner It looks like voxl-uvc-server is working fine. The error messages seem to be related to voxl-tflite-server and not voxl-uvc-server. Can you use voxl-streamer to stream the output of voxl-uvc-server to VLC and see if there are still green lines? What are you currently using to stream the output of voxl-uvc-server?

          P 2 Replies Last reply 25 Feb 2022, 07:55 Reply Quote 0
          • Eric KatzfeyE
            Eric Katzfey ModalAI Team @Philemon Benner
            last edited by 24 Feb 2022, 18:33

            @Philemon-Benner I'm guessing that there may be a version mismatch somewhere in there.

            1 Reply Last reply Reply Quote 0
            • P
              Philemon Benner @Eric Katzfey
              last edited by 25 Feb 2022, 07:55

              @Eric-Katzfey Yeah i will try that today. I'm currently showing the stream with voxl Portal but with the voxl-tflite-server pipe. So voxl-uvc-server --> voxl-tflite-server --> voxl-portal(green lines output).

              P 1 Reply Last reply 25 Feb 2022, 07:58 Reply Quote 0
              • P
                Philemon Benner @Philemon Benner
                last edited by Philemon Benner 25 Feb 2022, 07:58 25 Feb 2022, 07:58

                @Eric-Katzfey what a exactly do you mean with version mismatch, and where. The thing i could think of is tflite server 0.2.0 as seen above in the first try of installation i had some errors because of existing dependencies.

                1 Reply Last reply Reply Quote 0
                • P
                  Philemon Benner @Eric Katzfey
                  last edited by 25 Feb 2022, 08:09

                  @Eric-Katzfey Ok so i tried using it with voxl-streamer. It's working completely fine. Any suggestions?

                  1 Reply Last reply Reply Quote 0
                  • P
                    Philemon Benner
                    last edited by 25 Feb 2022, 09:00

                    I also tried changing the model but still the same result.

                    1 Reply Last reply Reply Quote 0
                    • P
                      Philemon Benner
                      last edited by 25 Feb 2022, 10:57

                      Update:
                      So i stepped back to TF1 and trained the ssdlite_mobilenet_v2. It's working great on the drone with tflite-server 0.1.8. Thanks for all the suggestions ·@Matt-Turi . But i am looking forward to using the tflite-server 0.2.0. If you still have suggestions for fixing the green stripes in the new version please let me know, because for custom models the new tflite-version is way easier to integrate and the code is more understandable for me.

                      Eric KatzfeyE 1 Reply Last reply 25 Feb 2022, 17:00 Reply Quote 0
                      • Eric KatzfeyE
                        Eric Katzfey ModalAI Team @Philemon Benner
                        last edited by 25 Feb 2022, 17:00

                        @Philemon-Benner Thanks for the follow up on this! We'll take a look.

                        1 Reply Last reply Reply Quote 0
                        • P
                          Philemon Benner
                          last edited by 2 Mar 2022, 08:44

                          @Matt-Turi is there a way to change small stuff in tflite-server code without building from source? Or is there a way to do it over ssh?. I can't access the usb slot from the voxl of the drone. I just wanna change the box color and confidence threshhold.

                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User
                            last edited by 2 Mar 2022, 17:04

                            @Philemon-Benner If you make any changes to the code you will need to rebuild it from source. Once built, you can push this package over ssh either manually or using the deploy_to_voxl.sh script that is up on dev, which has an arg for ssh and send ip. Lines 106 and 107 of the script have the scp and opkg install commands that are used.

                            P 1 Reply Last reply 2 Mar 2022, 17:11 Reply Quote 0
                            • P
                              Philemon Benner @Guest
                              last edited by 2 Mar 2022, 17:11

                              @Matt-Turi Thank you for the fast answer. Then i will build it from source. 🤔 But could be a cool feature in the future, if Box Color, Box Thickness and Confidence Threshhold would be in the config file.

                              1 Reply Last reply Reply Quote 0
                              • ?
                                A Former User
                                last edited by 2 Mar 2022, 18:07

                                @Philemon-Benner great suggestion, I'll add that in soon. As for the green stripes issue seen with the dev version using a Flir Boson camera and voxl-uvc-server, I was able to successfully start and run tflite-server (mobilenetv2 w/gpu) with the same setup and only saw a few green "flickers" every few seconds due to the high input rate (60 fps) of the boson camera. I will work on some handling for this case, but have you tried your latest ssdlite_mobilenet_v2 model with the dev version of voxl-tflite-server (0.2.0)?

                                P 1 Reply Last reply 3 Mar 2022, 09:31 Reply Quote 0
                                • P
                                  Philemon Benner @Guest
                                  last edited by 3 Mar 2022, 09:31

                                  @Matt-Turi No i think because if you just update with opkg just the package is updatet and not the folders like the ones in /usr/bin/dnn where the models are stored. But yeah i will have a look at it. And also is the flickering happening on the in- or output? Because if it's happening in the input the inference results obviously will be less accurate, because of the green stripes.

                                  1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User
                                    last edited by 3 Mar 2022, 17:06

                                    @Philemon-Benner when you update with opkg, all included files will also be updated including the /usr/bin/dnn/ directory. In regards to v0.2.0, I pushed up a patch yesterday that should fix the flickering (was only on output). As long as the skip_n_frames parameter is set to at least 1 with the boson camera (since it comes in at a fixed 60fps), you should be good to go!

                                    A note on inference with the Boson 640 Black-White Thermal Camera, I had some interesting results as the included mobilenet/most general models are not trained on thermal datasets, so keep that in mind when evaluating inference.

                                    P 1 Reply Last reply 4 Mar 2022, 09:15 Reply Quote 0
                                    • P
                                      Philemon Benner @Guest
                                      last edited by 4 Mar 2022, 09:15

                                      @Matt-Turi yeah thanks for updating that i will definitely try it today. Yeah i know i already trained a complete dataset on thermal camera recordings and it's working like a charm. But really hot things are a source of false detection but i guess that just needs more training. Thank you for all the suggestions you made and for the fast response times. One last Question i'm really interested in how you made the boxes following so clean even with shakey Camera, as if we would inference every frame?

                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        Philemon Benner
                                        last edited by 4 Mar 2022, 13:47

                                        @Matt-Turi thanks for the update on the dev branch. It's now able to show the stream without any flickering. I also managed to add the conf_tresh and box_thickness to the config file and it works really nice.
                                        Screenshot from 2022-03-04 14-44-05.png

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          Philemon Benner
                                          last edited by 4 Mar 2022, 16:22

                                          @Matt-Turi is there a way that i can text you in private? I have a question and video material that i want to ask for but it shouldn't be publicly shown.

                                          1 Reply Last reply Reply Quote 0
                                          • ?
                                            A Former User
                                            last edited by 4 Mar 2022, 16:57

                                            Hey @Philemon-Benner, great to hear everything is running smoothly! For the smooth detections/ inference every frame, try playing around with the skip_n_frames parameter in the config file, this is there so we can adjust the input data rate to match the max output rate of the model. Running with the -t flag can give you an overview of how much time is needed to process a single frame, and then you can adjust from there.

                                            Feel free to send me an email at matt.turi@modalai.com for something non-public.

                                            P 1 Reply Last reply 8 Mar 2022, 12:46 Reply Quote 0
                                            18 out of 38
                                            • First post
                                              18/38
                                              Last post
                                            Powered by NodeBB | Contributors