![]() |
Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Hi Everybody!
The student programmers here at Team 900 have done a wonderful job of getting a nVIDIA Jetson TK1 to process images from an HD(Logitech C920) USB camera, detect our Frisbee targets, and send the information to the roboRIO to act on. The code is a tad bit messy in a "few" places, and we could probably speed up the processing, but hey, it works. :D We have the Jetson TK1 powered through the VRM(Voltage Regulator Module) on the 12v@2A bus. nVIDIA Jetson TK1 Code: https://github.com/FRC900/OpenCV-Tes...risbeelocating roboRIO BETA Code: https://github.com/FRC900/2015Beta ![]() |
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Team 3826 is trying to use the Jetson. We pulled the source code from the link "nVIDIA Jetson TK1 Code:". We've tried to compile it and are getting the following errors:
$ make -- Configuring done -- Generating done -- Build files have been written to: /home/mgb/900_opencv/frisbeelocating Scanning dependencies of target testing [ 50%] Building CXX object CMakeFiles/testing.dir/gpuTesting.cpp.o c++: warning: ‘-mcpu=’ is deprecated; use ‘-mtune=’ or ‘-march=’ instead c++: error: unrecognized command line option ‘-mfpu=neon-vfpv4’ c++: error: unrecognized command line option ‘-mvectorize-with-neon-quad’ make[2]: *** [CMakeFiles/testing.dir/gpuTesting.cpp.o] Error 1 make[1]: *** [CMakeFiles/testing.dir/all] Error 2 make: *** [all] Error 2 [1]- Done emacs Makefile.cmake (wd: ~/900_opencv/frisbeelocating/CMakeFiles) (wd now: ~/900_opencv/frisbeelocating) [2]+ Done emacs CMakeCache.txt I've found the -mcpu can be changed to -mtune using the same parameter to remove the -mcpu error, however, we don't see a work around for the other two errors. We're compiling on ubuntu on a VirtualBox VM running on Win7 with the Jetson TK1 installed. Have this been seen before? Any suggestions? Thank you. |
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Quote:
If you're trying to cross-compile (build ARM binaries on an x86 Linux host machine) you'll need to point to the correct compiler. The compiler name is usually of the form "arm-none-linux-gnueabihf-g++" or the like. Sometimes "none" is called "unknown" instead, but the general idea is the same. If you are planning to run on x86, be aware that the code is written to run on the GPU. If I remember there are fallbacks to run on the CPU, but the CPU code wasn't the focus of our development effort so it may be different than the GPU code. |
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Thank you for your response and help.
We are compiling for the Jetson, but building on a Ubuntu system. We did take you suggestion and point to the correct compiler, we are not compiling. We are now working through some what I think are link problems and pointing to x86-65 linux libraries instead of ARM libraries. Thank you again for your help. |
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
We used a Jetson this year, and compiling OpenCV on the Jetson took about 40 minutes utilizing all 4 CUDA cores. I wouldn't worry too much if you have to do it on the board.
|
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Quote:
|
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Quote:
|
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Quote:
The kind folks at elinux.org have benchmarked power consumption for various tasks, looks like nothing draws more than 12 watts of power: http://elinux.org/Jetson/Computer_Vi...r_vision_tasks If you have additional peripherals, that may raise your power budget, but I'm comfortable running it off of the 12V regulated supply. |
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Thought I would take a moment to update this thread with some sample video from Palmetto this year:
https://www.youtube.com/watch?v=w1ZSzxw84So We're tracking the recycle bins. I can't talk a lot about the technical nitty gritty but I can tell you that it is using OpenCV and it is running on the GPU of the Jetson. There are another couple of folks who can shed more light on the technical details if you are interested. |
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
How many of the cuda cores are you using? What's the average fps?
|
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Quote:
|
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
I'd be more than happy to help you optimize the code, as 1706 is going to be getting a jetson board to experiment with.
You must be running some very inefficient code if you're only getting 5-10 fps with gpu accelerated opencv (http://opencv.org/platforms/cuda.html)....We are using a depth camera and are getting 26 fps on the odroid XU, which has the same amount of ram and an older arm based cpu and cannot be gpu accelerated. Anyways, the video you posted is really cool and seems to work very well. Good job on whoever wrote that. I'm sure many teams would eat up a whitepaper about it. |
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Quote:
I can't speak to the efficiency of the code but it was written largely by students and it is doing what we were aiming for. I suspect there are a lot of improvements we can make but I know the resolution has a lot to do with the lower frame rates. We'll keep perfecting it though and it will get published publicly at some point... likely alongside the white paper. |
Team 4534 used the same system this year, it might be worth building a library for the Rio. Let us know if you have any questions or want to compare how our systems worked.
|
Re: Team 900 - nVIDIA Jetson TK1 OpenCV Co-Processor
Hey all,
I just posted links to 900's code, including vision, over here. Ask questions if you have any there please. |
| All times are GMT -5. The time now is 08:08. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi