Jetson Camera Coding is the associated code for the upcoming “In Practice” series on working with cameras. There are three repositories:
camera-caps
The JetsonHacks Github repository camera-caps provides a graphical user interface over the v4l2-ctl command line tool. You may find it handy for examining the capabilities of a V4L2 camera that is attached to your Jetson. This works for both CSI cameras and USB cameras. Here’s a beauty shot:
In the snapshot, there are three cameras running simultaneously from the camera-caps tool. A Logitech C920, a Stereolabs ZED camera and an Intel Realsense D435i. The Realsense is showing both an RGB stream and an infrared camera stream.
USB-Camera
USB-Camera is a Github repository with sample Python scripts for working with V4L2 cameras and the Jetson Development kits. The examples use OpenCV (included with JetPack) to capture the camera and display it on the screen. One example shows how to use the V4L2 camera front end to interface with the camera. Another example uses a GStreamer front end to interface with the camera. GStreamer is important in the Jetson ecosystem, as it provides the foundation for DeepStream for Intelligent Video Analysis (IVA).
The third example uses Haar cascades for face and eye detection. This is an example of how to grab video frames from a camera and process them.
CSI-Camera
Another way to interface a camera with the Jetson is through the MIPI Camera Serial Interface (CSI). MIPI is the name of the organization that publishes standards for embedded systems. The CSI-Camera code is an update to an earlier JetsonHacks articles, Jetson Nano + Raspberry Pi Camera and Jetson Nano B01 – Dual Raspberry Pi Cameras
The GStreamer pipeline has been streamlined for better frame rates. We also add exception handling to the Python code, along with some other cleanup, to make the code more robust.
Jetson Camera Coding. Check it out!