Jetson Nano Visionworks Live Camera Feature Detection C/C++ Example

I was impressed by the Visionworks examples. Looking for a C/C++ example on Feature Detection using Visionworks with a live camera. Is Visionworks the preferred method over OpenCV?

Hi xplanescientist, you can launch the VisionWorks demos with the --source=“device:///nvcamera” parameter and it will run from MIPI CSI camera.

For example, I tested it with IMX219 sensor and the feature tracker demo:

$ ./nvx_demo_feature_tracker --source="device:///nvcamera"

Already have the executable demos. I’m looking to build an external C/C++ VisionWorks example with feature detection. I’m looking for a sample CMakeLists.txt file to go with “feature_tracker_nvxcu.cpp”. I tried typing “make” in this folder:

~/VisionWorks-1.6-Samples/demos/feature_tracker_nvxcu

But no luck.

Also, I have an RPi v2.1 camera installed (so /dev/video0 is available). What is the proper argument in the --source=“” statement?

Before running make from that folder, you need to run make from ~/VisionWorks-1.6-Samples so that the utility libraries under ~/VisionWorks-1.6-Samples/nvxio get compiled, which are used by the samples.

Try using --source=“device:///nvcamera” – I also was using RPI v2.1 camera when testing this yesterday.

Okay, the “make” process in ~/VisionWorks-1.6-Samples/demos/feature_tracker_nvxcu finally worked after first cleaning out the “obj” subdirectory, otherwise it says "make: Nothing to be done fore ‘all’ ".

Regarding using the RPI v2.1 camera, the following statement works:

./nvx_demo_feature_tracker --source="device:///nvcamera?index=0"

The Makefile is almost more complicated than the sample nvx_demo_feature_tracker.cpp program. When invoked, it sends the executable to a different directory. There must be a much simpler approach for compiling this demo program like the “Hello AI World” examples.

Do you plan on adding the VisionWorks samples to the “Hello AI World” github page?

Since the jetson-inference project (aka Hello AI World) is focused on DNN inferencing with TensorRT, I don’t have plans to integrate VisionWorks at this time. However, after you have compiled the VisionWorks samples (which builds nvxio), you should be able to write a CMakeLists.txt that uses VisionWorks by including the nvxio header and library directories.

Do you already have a bare-bones CMakeLists.txt that will work with the feature_tracker.cpp example? It will save me several days.

Or, is it possible to simply compile the *.cpp files on the command line? This is my preferred approach. Less is more. The simpler, the better. Eventually, I want to couple-in the object and feature trackers with a feedback control system.

Back to the Hello AI World that’s based on DNN/TensorRT, is there a feature tracker example?

It looks like there is some CMakeLists.txt being worked on to build VisionWorks application:

https://devtalk.nvidia.com/default/topic/1037512/jetson-tx2/problem-to-compile-visionworks-example/post/5272305/#5272305
https://devtalk.nvidia.com/default/topic/1064190/jetson-agx-xavier/linking-nvxio-ovxio-libraries-into-own-cmake-project

I would keep an eye on those threads to try it out with CMake.

Technically yes, you would just need to add the linker and include paths that the existing makefile project or CMakeLists also does.