Optronic projects often require computing resources for analytical image processing or embedded AI. For these purposes, Jetson modules are ideal, enabling a certain amount of computing power to be embedded, using the Edge computing method. By coupling these platforms with the use of Docker software, we make the development and industrial deployment processes more reliable, for the most relevant solution possible. Jetson NVIDIA modules with Docker containers are therefore of great interest in optronics!
Why use an NVIDIA Jetson platform for your projects?
NVIDIA's Jetson modules are ideal platforms for embedded image processing and AI models. These are small modules, generally under 150x100mm. They have the advantage of high performance thanks to their integrated GPUs, while consuming very little power. On the face of it, they're just what's needed to bring computing power to an ambitious optronics project! As far as AI performance is concerned, they offer a few TFlops (1.33 TFlops on the Jetson TX2).
The different Jetson modules
Depending on the needs of a project (calculation capacity, energy efficiency, footprint, etc.), we have a choice of different Jetson modules (the individual capacities of the different modules will certainly be detailed in another article):
GPU acceleration
All modules embed a Linux environment and they are all based on the NVIDIA software stack. NVIDIA JetPack™ technology makes it possible to implement projects quickly with, for example, a fast and efficient AI system. This means you can concentrate on the essentials, i.e. developing your optronics application. NVIDIA CUDA-X tools are also natively installed: libraries and frameworks are GPU-accelerated. This is the case, for example, with the well-known OpenCV graphics library.
With all these elements, Jetson modules are ideal solutions for a wide variety of products and configurations, while offering excellent energy efficiency.
For more information, please visit the specialized page on the NVIDIA website.
What's Docker?
Docker is open-source software for running applications in software containers. It enables you to create, deploy and run containers efficiently in production/industrialization mode.
What is a Docker container?
A container can be seen as an independent, executable unit in which an application and its runtime dependencies can all be grouped into a single entity. In other words, it encapsulates the application in an invisible box, with everything it needs to run. All independently of the host it's running on.
The container is therefore made up of an operating system, runtimes/frameworks, system tools, libraries and, of course, the application. The advantage of a Docker container is that it provides a certain degree of isolation from its host. This greatly facilitates deployment and installation of the application and its environment. You don't have to worry about the application's environment and dependencies.
A container allows an application to be packaged and moved easily, increasing the simplicity of an infrastructure.
Lightness and speed are the watchwords
Docker containers are built from Docker images. They are lightweight, portable and enable research engineers to efficiently create, deploy and run distributed applications. Docker also offers reduced start-up times, improving resource utilization.
Docker Compose for multi-service management
If we need to use several services simultaneously, we can develop them in individual containers. Thanks to the Docker Compose tool, we can easily orchestrate these containers as a set of interconnected services.
NVIDIA Jetson modules with Docker containers, the winning combo in Computer Vision
As you can see, NVIDIA Jetson platforms have become (almost) indispensable when it comes to Computer Vision projects with embedded processing. Add to this the use of Docker, and you have an efficient recipe that greatly facilitates development (whether collaborative or not) and, above all, production deployment. Whether we're talking about small or large production runs, it's just as important to think about this when drawing up specifications.
All projects requiring image processing (or development in general) are Docker-compatible, and use on the Jetson NVIDIA platform will make the final product robust and reliable.
How can we work together?
As an optronics design office, we can help you determine the best approach for your project.
Depending on your needs, we'll suggest the best choice of embedded processing platform. We can help you implement your solution under Docker. Whether in Python and/or C/C++ with OpenCV, Tensorflow, PyTorch, Keras, Scikit Learn, ... we're sure to find the best recipe for your project!
After identifying your needs, we can offer you several ways of working together:
- Spot service: need for a one-off, well-defined service
- Projects from A to Z: from drawing up specifications to product industrialization
- Tailor-made and specific development: for a one-shot product
If you need optronics, we can help. Just ask Imasolia!