Bildverarbeitungs-Applikationen mit Machine-Learning und neuronalen Netzwerken sind sehr rechenintensiv
und verbrauchen viel Energie sowie Bandbreite, wenn die Daten an einen zentralen Server übermittelt
werden.
Neue ARM Cortex M7 Microcontroller sind in der Lage diese anspruchsvollen Applikationen auszuführen.
Es gibt für die STM32H7 Controller von STMicroelectronics das Open Source Bildverarbeitungsframework
OpenMV. Bildverarbeitung auf Microcontroller-Basis ermöglichen kleine, energiesparend Edge-Computing-
Device. Da die Bildverarbeitung direkt im Controller «on-the-Edge» durchgeführt wird, werden keine
sensitiven Daten übertragen. Dies führt zu weniger Privacy-Bedenken und Bandbreitenvorteilen.
Die neue Microcontrollerfamilie i.MX RT von NXP mit ARM Cortex M7 Core ermöglicht Clockfrequenzen
bis 1GHz. Um die i.MX RT Controller zu evaluieren wurde OpenMV portiert. Es wurden Performance und
Energiemessungen durchgeführt, die komplexe Speicherarchitektur wurde analysiert und es wurden
Vergleiche zu OpenMV auf dem STM32H7 gezogen. Da OpenMV auf MicroPython basiert, wurde dieses,
unter Verwendung der NXP SDK, für die i.MX RT Familie portiert. Die Software wurde in einer Linux
Umgebung mit VisualStudio Code und GCC Compiler entwickelt. Für die Entwicklungs-Plattform (Seeed-
Arch-Mix Board mit i.MX RT1052) wurde ein PCB designt um verschiedene Hardware-Erweiterungen
anzuschliessen (Kameras, LCD, Servos und Erweiterungsheaders).
Es wurde ein vollständiger OpenMV Port für den i.MX RT1052 erstellt. Verschiedene Kameras werden
unterstützt, so können auch Thermobilder mit einer FLIR Lepton Kamera ausgewertet werden. OpenMV auf
dem i.MX RT1052 verbraucht 0.5W und hat eine vergleichbare Performance wie auf dem STM32H7. Die
Geschwindigkeit von OpenMV auf dem i.MX RT1052 wird durch die externe Anbindung des Flashmemorys
negativ beeinflusst, da die L1 Caches des i.MX RT1052 in dieser Anwendung nicht ausreichen, um die
Flashzugriffe zu buffern. Die entwickelte Hard- und Software ermöglicht eine vollumfängliche OpenMV
Plattform auf der Basis des i.MX RT1052 und kann als alternative zu STM32H7-OpenMV für
weiterführende Arbeiten eingesetzt werden.
Image processing applications with machine learning and neural networks are very computationally intensive
and consume a lot of energy and bandwidth when the data is transferred to a central server.
New ARM Cortex M7 microcontrollers are capable of running these demanding applications. The open
source image processing framework OpenMV is available for the STM32H7 controllers from
STMicroelectronics. Microcontroller-based image processing enables small, energy-saving edge computing
devices. Since image processing is performed "on-the-edge" directly in the controller, no sensitive data is
transmitted. This leads to less privacy concerns and bandwidth advantages.
The new microcontroller family i.MX RT by NXP with ARM Cortex M7 Core allows clock frequencies up to
1GHz. To evaluate the i.MX RT controllers OpenMV was ported. Performance and power measurements
were performed, the complex memory architecture was analyzed and comparisons were made to OpenMV on
the STM32H7. Since OpenMV is based on MicroPython, it was ported to the i.MX RT family using the NXP
SDK. The software was developed in a Linux environment with VisualStudio code and GCC compiler. For
the development platform (Seeed-Arch-Mix Board with i.MX RT1052) a PCB was designed to connect
various hardware extensions (cameras, LCD, servos and extension headers).
A complete OpenMV port for the i.MX RT1052 was created. Different cameras are supported, even thermal
images can be evaluated with a FLIR lepton camera. OpenMV on the i.MX RT1052 consumes 0.5W and has
a performance comparable to the STM32H7. The speed of OpenMV on the i.MX RT1052 is negatively
affected by the external connection of the flash memory, as the L1 caches of the i.MX RT1052 are not
sufficient to buffer the flash accesses in this application. The developed hardware and software enable a
comprehensive OpenMV platform based on the i.MX RT1052 and can be used as an alternative to
STM32H7-OpenMV for further work.