Image Processing Embedded Systems with Modular Hardware
Image processing embedded systems can be deployed quickly thanks to modular design tools
With advances in industrial automation, automotive technology, remote sensing, and much more, image processing is taking center stage in many embedded systems. Image processing with older video systems was difficult or impossible due to the low quality of many imaging systems with perpetual uptime. As a result, older camera systems could be developed for sensing location and motion (e.g., automated security systems), but little else could be done with the captured images due to the low video frame rates and low quality.
Newer systems provide video with higher frame rates and higher resolution images, but these systems still needed to connect directly to a computer in order to enable any useful image processing applications. Today, newer hardware modules with specialized GPUs are enabling image processing tasks in embedded systems without a direct connection to a desktop, server, or the cloud. These embedded systems still require the right board to interface with these hardware modules, but with the right design tools, you can easily create a new board for your image processing embedded systems and deploy it at the edge.
Image Processing Applications in Embedded Systems
Embedded systems for advanced image processing applications, especially applications involving machine learning or AI models, require significant processing power and memory alongside high resolution video. Ideally, these capabilities should be integrated into a single package with a small form factor and plenty of onboard memory for storing data. Add to this network or wireless connectivity, and you have all the elements required for a powerful machine learning-based image processing system.
Many designers that are looking to develop new products in this area can certainly design a custom board for their product, but there are other options available. Most development boards (e.g., Arduino) constrain your allowed form factor and functionality to modules that can be connected through standard headers or USB. You’ll also be limited to running rather simple machine learning models with low latency. This is fine for processing still images, but these simpler systems are unsuitable for video processing.
A better route is to design a board around a more powerful GPU module. NVIDIA’s AI-specialized boards are an ideal hardware platform for building image processing embedded systems. These modules run on an ARM Cortex architecture, and the embedded software developer will find plenty of resources for building firmware for these modules. Right out of the box, they can be used to run multiple neural networks in parallel. Here are some applications you can build and run in an embedded environment with NVIDIA’s modules:
- Image identification. This involves identifying specific features within an image. This is a fundamental part of the two image processing techniques listed below. Some common tasks include edge detection (e.g., with Canny filtering or a Laplacian) or face detection.
- Image segmentation. This task is meant to segment an image into specific features. An excellent example is pose identification, where specific body parts in an image must be identified, and then the arrangement of those body parts is used to determine the pose of a human body.
- Image classification. Here, images are categorized based on the features they contain. Example applications include sentiment analysis based on facial features and quality control on a production line. I recently reviewed a research article on the use of tumor detection using image classification with a neural network; this type of application could be easily deployed on one of NVIDIA’s modules.
Image identification and classification using an imaging system in a smart vehicle.
Models for these applications can be built on top of neural networks or using other machine learning techniques. There are plenty of open-source libraries you can use with your embedded system; take a look at OpenCV for Python and this tutorial for some image processing examples for embedded systems. These days, Python is the language of choice for these applications thanks to the huge number of machine learning, image processing, AI, and analytics libraries available. With a powerful GPU-based COM like the Jetson Nano, you’ll have the processing power you need to perform the image processing applications mentioned above on successive video frames with low latency.
Board Design for Image Processing Embedded Systems
If you’re interested in quickly deploying scalable image processing embedded systems, the Jetson Snapshot board from Gumstix is an ideal system for a variety of applications. This board includes a quad-core ARM A57 processor with 4 GB RAM, providing plenty of memory for running image processing models. This board also includes 4 slots for Jetson Nano COMs, each of which supports 4 vertical camera connectors that are compatible with the Raspberry Pi Camera Module V2. This system can then be connected to a local network using gigabit Ethernet or WiFi.
Jetson Snapshot board from Gumstix. This board offers up to 16 1080p 30fps video streams in a single board.
If you need a custom board for a Jetson Nano COM, then you should look at taking a modular design approach. This allows you to build a custom board for image processing applications around a powerful GPU-based COM. You can also integrate an array of sensors, wireless communication capabilities (WiFi, LoRaWAN, ZigBee, Bluetooth, etc.), power regulation modules, and other peripherals.
A modular design approach allows you to take advantage of standardized electrical connections between modules when designing your board. If you’re an AI entrepreneur but you’re not a PCB design expert, you can focus on designing the functionality and user experience for your product; your design tools will handle the rest. If you’re a software engineer, you can focus on developing code for your product using standardized libraries. The modular design tools in Geppetto are ideal for modular SBC design; these powerful design tools allow you to create a fully-functional, fully-manufacturable AI-based image processing solution in a matter of minutes.
An AI-capable board for image processing in Geppetto
If you’re interested in developing image processing embedded systems with modular design tools, the Jetson Nano COM in Geppetto is a great place to start creating your next product. This particular COM packs huge processing power for cutting-edge AI and image processing applications. Geppetto also gives you access to a broad range of industry-standard COMs and popular modules, allowing you to create production ready hardware for nearly any embedded AI application.