Go to Post Dean's "All Denim" (now referred to as "Deanim") look is apparently catching on. - AndyB [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 17-01-2014, 22:17
sparkytwd's Avatar
sparkytwd sparkytwd is offline
Registered User
FRC #3574
Team Role: Mentor
 
Join Date: Feb 2012
Rookie Year: 2012
Location: Seattle
Posts: 102
sparkytwd will become famous soon enough
Announcing ocupus, a toolkit for working with onboard vision processors

I'm a mentor on FRC 3574. We started onboarding computer vision in 2012, and haven't stopped since. ocupus is built around solving the consistent problems we've had year to year. The software is built on top of Ubuntu running on ARM platforms with NEON support (sorry Rasp-pi's).

The biggest feature of this toolkit is realtime streaming. Using WebRTC this gives both humans and vision processor realtime access to any cameras on the system.

The super high tech GUI:


There's a handful of other features planned, mostly around easing system management and in-browser coding, but I feel that's the big one.

At this time, at the git repo the only thing of substance are the ARM binaries for the WebRTC peer senders. Please reach out to me if you're interested in playing with this, I'd like more teams input on this.

As extra incentive, if you send me a pull request with any helpful change (even just good documentation!), I'll accept your change of the subject material of the screenshot.
  #2   Spotlight this post!  
Unread 17-01-2014, 22:50
SoftwareBug2.0's Avatar
SoftwareBug2.0 SoftwareBug2.0 is offline
Registered User
AKA: Eric
FRC #1425 (Error Code Xero)
Team Role: Mentor
 
Join Date: Aug 2004
Rookie Year: 2004
Location: Tigard, Oregon
Posts: 487
SoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant future
Re: Announcing ocupus, a toolkit for working with onboard vision processors

What part of this is ARM-specific?
  #3   Spotlight this post!  
Unread 17-01-2014, 23:16
sparkytwd's Avatar
sparkytwd sparkytwd is offline
Registered User
FRC #3574
Team Role: Mentor
 
Join Date: Feb 2012
Rookie Year: 2012
Location: Seattle
Posts: 102
sparkytwd will become famous soon enough
Re: Announcing ocupus, a toolkit for working with onboard vision processors

Quote:
Originally Posted by SoftwareBug2.0 View Post
What part of this is ARM-specific?
Only the precompiled binaries so far. You can run this on an x86 with no trouble. I'll be adding those binaries soon.

Actually, it's a bit easier, since the modules are a little saner. DKMS doesn't work on most ARM platforms, so v4l2loopback is tricky.
  #4   Spotlight this post!  
Unread 18-01-2014, 00:18
sparkytwd's Avatar
sparkytwd sparkytwd is offline
Registered User
FRC #3574
Team Role: Mentor
 
Join Date: Feb 2012
Rookie Year: 2012
Location: Seattle
Posts: 102
sparkytwd will become famous soon enough
Re: Announcing ocupus, a toolkit for working with onboard vision processors

Another thing that's mentioned on git, but I meant to mention here. WebRTC is around 10x more efficient with compression than the AXIS camera. Right now I use 256kbps for my video, and that seems to be about the same quality as 3.7mbps mjpeg.
  #5   Spotlight this post!  
Unread 18-01-2014, 05:45
Greg McKaskle Greg McKaskle is offline
Registered User
FRC #2468 (Team NI & Appreciate)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,756
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: Announcing ocupus, a toolkit for working with onboard vision processors

The more modern Axis cameras support better compression standards, but the licensing of the codecs is potentially an issue on a FIRST team. Also, the benefit of the newer codecs goes down as the robot starts to move and virtually no content from frame to frame is the same.

For these reasons, we kept the WPILib libraries using MJPEG.

There were teams who used H.264 on the field last year streaming to a browser. Of course, the one I dealt with determined their camera bandwidth with a stationary robot. They severely underestimated, and made the FTA very nervous in their matches.

The high variability of the encoding versus the predictability of MJPEG was also a consideration.

Greg McKaskle
  #6   Spotlight this post!  
Unread 18-01-2014, 13:03
sparkytwd's Avatar
sparkytwd sparkytwd is offline
Registered User
FRC #3574
Team Role: Mentor
 
Join Date: Feb 2012
Rookie Year: 2012
Location: Seattle
Posts: 102
sparkytwd will become famous soon enough
Re: Announcing ocupus, a toolkit for working with onboard vision processors

Quote:
Originally Posted by Greg McKaskle View Post
The more modern Axis cameras support better compression standards, but the licensing of the codecs is potentially an issue on a FIRST team. Also, the benefit of the newer codecs goes down as the robot starts to move and virtually no content from frame to frame is the same.
ocupus uses VP8 as its codec, which is available under a BSD license and as such free for anyone to use.

As for frame-to-frame variance, at 30fps, there is usually enough interframe redundancy to still beat mjpeg pretty handily. You can tell this by looking at the relative size of the P-frames in the encoded stream.

One of the most useful things chrome has for me while testing this is at chrome://webrtc-internals which provides bandwidth graphs. Here's one that resulted from me quickly moving the camera from looking at my .. ahem .. "visually noisy" desk and the view outside my window:



Quote:
Originally Posted by Greg McKaskle View Post
There were teams who used H.264 on the field last year streaming to a browser. Of course, the one I dealt with determined their camera bandwidth with a stationary robot. They severely underestimated, and made the FTA very nervous in their matches.

The high variability of the encoding versus the predictability of MJPEG was also a consideration.

Greg McKaskle
I can see that being an issue, and until ocupus gets more real world testing and performance characterization, teams should stick to existing size suggestions as well as having a very large safety margin. For 3574, we'll be using no more than 2mbps.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 03:36.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi