Go to Post I never cease to be amazed at the creative engineering employed by some teams. - Karthik [more]
Home
Go Back   Chief Delphi > Technical > Programming > Java
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 11-13-2016, 02:19 PM
YairZiv YairZiv is offline
Registered User
FRC #5951
 
Join Date: Oct 2016
Location: Tel Aviv, Israel
Posts: 6
YairZiv is an unknown quantity at this point
Most recommended way/application for Image Processing?

Hey, my name is Yair from team M.A 5951, head of programming team.
This year we want to learn Vision Processing, but we don't know what program to use, should we even use a program or use the NIVision libraries for the image processing? If you guys could share from your experience we will be very thankful.
Reply With Quote
  #2   Spotlight this post!  
Unread 11-13-2016, 03:03 PM
Hitchhiker 42's Avatar
Hitchhiker 42 Hitchhiker 42 is offline
Roboter
AKA: Mark Lavrentyev
FRC #4557 (FullMetal Falcons)
Team Role: Programmer
 
Join Date: Oct 2015
Rookie Year: 2015
Location: Cromwell, CT
Posts: 466
Hitchhiker 42 is a splendid one to beholdHitchhiker 42 is a splendid one to beholdHitchhiker 42 is a splendid one to beholdHitchhiker 42 is a splendid one to beholdHitchhiker 42 is a splendid one to beholdHitchhiker 42 is a splendid one to beholdHitchhiker 42 is a splendid one to beholdHitchhiker 42 is a splendid one to behold
Re: Most recommended way/application for Image Processing?

A word of advice from what we did this year:

We did our vision processing on the dashboard this year. If you do, be prepared to work with latency. This means calculating angles and using the gyro as your sensor, not the camera.
__________________



2016 - NE District Championship Entrepreneurship Award
2016 - Hartford District Industrial Design Award
2016 - Waterbury District Engineering Inspiration Award
Reply With Quote
  #3   Spotlight this post!  
Unread 11-13-2016, 09:18 PM
euhlmann's Avatar
euhlmann euhlmann is offline
CTO, Programmer
AKA: Erik Uhlmann
FRC #2877 (LigerBots)
Team Role: Leadership
 
Join Date: Dec 2015
Rookie Year: 2015
Location: United States
Posts: 298
euhlmann has much to be proud ofeuhlmann has much to be proud ofeuhlmann has much to be proud ofeuhlmann has much to be proud ofeuhlmann has much to be proud ofeuhlmann has much to be proud ofeuhlmann has much to be proud ofeuhlmann has much to be proud of
Re: Most recommended way/application for Image Processing?

NI Vision, onboard
NI has their own image processing libraries (meant for industrial automation of course), and conveniently these are already installed on the roboRIO.
Start with Vision Assistant. It's a graphical image processing pipeline editor where you can load in images saved from your robot. Add a color filter to identify the target, then add some more filters to smooth out the contour and remove noise, and then add a particle measurement step to get the information you need about the target. Then, you can generate C code from Vision Assistant to integrate into your project.
Documentation is located in C:\Program Files (x86)\National Instruments\Vision\Help
WPILib also has some wrappers over NI Vision USB camera capture, image objects and basic operations.
Pros:
- Easy to integrate into your code since it's directly onboard the roboRIO
- Supported by WPILib
- Integrates with USB cameras (through IMAQdx)
Cons:
- Image processing onboard the RIO can be slow
- From what I've seen, NI vision doesn't really expose its internal data. For example, I don't think it's possible to get the actual point array of a detected particle/contour, only the summary statistics that the analysis functions give
- If you screw something up, you might get an undocumented error code "21" and nobody will be able to help you
- NI Vision is proprietary. No source code for you!

OpenCV
There are many ways to use OpenCV: onboard, on the drive laptop, or on Android or a Raspberry Pi.
OpenCV is an open source vision library in C++, but it has bindings for Python, and Java (both desktop and Android). IMO, OpenCV is much more sophisticated than NI Vision (right now I'm playing with the perspective solver, something I don't believe NI Vision has)
Start with GRIP, WPILib's own graphical OpenCV processing pipeline editor. Similar to Vision Assistant, load in some sample images and add filtering steps, and an analysis step. GRIP can even upload results to NetworkTables so your robot code can easily get them. Unfortunately, GRIP can only deploy to the roboRIO or a Raspberry Pi, so you won't be able to use it if you want to run OpenCV on Android.
Pros:
- Open source; community support
- Extremely powerful. If you want to dive into it, there are some very sophisticated features such as 3D reconstruction, object detection, and even face recognition
- Available in virtually any language you want
- Runs on virtually any platform
Cons:
- Steep learning curve if you want to go beyond the basics (ie what GRIP offers). And the official tutorials don't even begin to cover all of the features. Alas, this is the problem the plagues many open source projects
__________________
Creator of SmartDashboard.js, an extensible nodejs/webkit replacement for SmartDashboard


https://ligerbots.org
Reply With Quote
Reply


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 08:40 AM.

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