Українська   Русский
DonNTU   Masters' portal

Contents

Introduction

Over the past few years, there has been an explosion in the availability of embedded hardware capable of performing machine learning tasks at the edge, and as a result, we have potentially witnessed the beginning of a sea change in how we think about both machine learning and how data communications can be built. .

But when we talk about hardware at the edge, we are increasingly talking about two different types of hardware. We're seeing machine learning run on impressively tiny hardware like the OpenMV camera board or the recently released SparkFun Edge, all the way down to Xnor's new batteryless solar-powered edge computing hardware.

However, we've also seen custom chips like the Intel Neural Compute Stick, BeagleBone AI, and Google's recently released Edge TPU hardware offering machine learning to accelerate inference to the edge. More power-hungry than tiny boards, these boards based on custom ASICs are blindingly fast by comparison.

1. Overview of modern microcomputers and their capabilities

1.1 General concept of modern computers

A microcomputer is usually a system on a chip, including the classic von Neumann architecture with a central processing unit, video card, RAM, WiFi/Bluetooth networks, and I/O ports. Modern microcomputers use operating systems such as Linux and Windows. As a rule, microcomputers have more processing power than microcontrollers, HDMI video output, high-speed Wi-Fi and Bluetooth, connection to flash memory cards and M.2, etc. The disadvantage of microcomputers is the higher price and higher power consumption compared to microcontrollers. Microcomputers are used in IoT projects when you need to perform high-level tasks, including video streaming, complex information systems, mini-servers, etc.

Size still matters in the personal computer world. Screen size, for example: on a large one it is much more convenient to surf the sites or work in Excel. But in one respect, size is no longer as important today as it used to be. I mean computing power. Yes, an overclocked Haswell quad-core processor with a powerful cooler is incomparably more productive than an ARM chip inside a popular mobile terminal. However, the number of those who continue to buy powerful stationary PCs has been declining for a quarter in a row, while sales of smartphones and tablets, on the contrary, are growing. Powerful computers, it seems, are now needed only by gamers who are not ready to compromise on the realism of the virtual worlds displayed on the displays and the speed of their drawing.

Real computer enthusiasts do not so much run programs written by someone, but they themselves strive to create new software products of varying degrees of complexity. There is plenty of room for self-written applications around - from a pocket "receiver" of Internet radio stations with the full range of necessary functionality to a personalized "smart home" control system for your own needs, from fire detectors to sentry robotic vacuum cleaners.

Raspberry Pi

One of the most successful solutions for enthusiasts was a cheap and at the same time tiny computer on an energy-efficient modern platform, equipped with an open source operating system on the Linux kernel, which just allows programmers to create at full strength.

The miniature size and simplicity of the design ensured the affordable price of the device. It was on these principles that the first mass computer of this kind, the Raspberry Pi, was built, which was released in mid-2011. (Fig. 1.1)

Module Raspberry Pi

Image 1.1 – Module Raspberry Pi

1.2 Strengths and benefits

As an embedded platform, the Raspberry Pi provides many benefits, including.

1. Low cost (from $5).

2. Low power consumption (no fan or heatsink required for many applications).

3. Reasonable performance of the processor, graphics core and memory.

4. Wide availability around the world

5. Good documentation: from schematic diagrams to source code for most programs.

6. A large ecosystem of developers, users and suppliers of additional equipment.

7. Proven design in the third generation.

8. Stable manufacturer (more than seven years).

9. Many operating system options, most of which are open source and do not require licensing costs.

1.3 Flaws

Performance

The Raspberry Pi managed to be affordable by cutting some corners. As a result, the board does not cope with some tasks compared to its competitors. In particular, it does not work well with both the network and USB.

The device uses an SMSC LAN9514 chip that connects to the SoC via a single USB link, acting as both a USB-to-Ethernet adapter and a USB hub. This means Ethernet and USB are shared and compete with each other, which breaks down the typical use case for a NAS to download something over the network and save it to a USB stick, not to mention adding RAID to the mix.

For the same reason, even when they finally introduced a model with Gigabit Ethernet last year, the actual network performance of the device is nowhere close to the actual performance of Gigabit Ethernet, but is about 40MB / s with a net network speed of 20MB / s maximum. if we are transferring to a USB device. For a while, there were boards available with true Gigabit Ethernet and USB3.

2. Description NVIDIA JETSON NANO

The Jetson Nano (Figure 2.1) is built on a 1.43GHz 64-bit quad-core Arm Cortex-A57 processor along with an NVIDIA Maxwell GPU with 128 CUDA cores capable of 472 gigaflops (FP16) and has 4GB of 64- bit LPDDR4 RAM on board. with 16GB eMMC storage and running Linux for Tegra. The 70×45mm module has a 260-pin SODIMM connector that separates interfaces including video, audio, USB, and network and allows it to be connected to a compatible carrier board.

Module Jetson Nano

Image 2.1 – Module Jetson Nano

This brings us to the Jetson Nano development kit (Figure 2.2). Released with the Jetson Nano module, the kit acts as an evaluation board for the module and as a sample carrier board. Among other things, it supports Gigabit Ethernet, 4 USB 3.0 connectors, HDMI and DisplayPort ports, MIPI-CSI camera connector, microSD card slot and Power-over-Ethernet (PoE).

Jetson Nano Developer Kit Top Down View

Module 2.2 – Jetson Nano Developer Kit Top Down View

Технические характеристики Nvidia Jetson Nano (рис. 2.3)

The board also offers GPIO, I2C, I2S, SPI, PWM, and UART via a 40-pin GPIO header block suspiciously similar to the one used on the Raspberry Pi.

The board's power consumption is rated between 5W and 10W, and it can be powered by a single micro USB port next to the Ethernet jack. However, looking at the requirements for the kit, I immediately catch my eye with regard to the new board - these are potentially problematic high requirements for the characteristics of the power supply.

NVIDIA рекомендует, чтобы комплект Jetson Nano Developer Kit питался от источника питания micro-USB от 5 В / 2 А до 5 В / 3,5 А, с дополнительной рекомендацией использовать источник питания 5 В / 4 А, если вы «… выполняете тесты или выполняете большую нагрузку».

Specifications Nvidia Jetson Nano

Module 2.3 – Specifications Nvidia Jetson Nano

3. Artificial intelligence

Literally 10-15 years ago, disputes around artificial intelligence (AI, AI - Artificial Intelligence) flared up only in the vein of hypothetical theories and ideas about it as something fantastic and unrealistically distant. However, the explosive development of technologies and speeds of computer computing in our time leaves no chance for fantasy to remain a fairy tale and more and more confirms that devices and technologies that are effective in terms of the benefits they bring must definitely be implemented and serve for the benefit of people.

The very concept of AI is a rather vague substance, at least modern thinkers have not yet come to an unambiguous definition of what it is, but at the same time they are divided into 2 camps: some are pessimistic and believe that AI threatens humanity and can replace and oust a person from civilization .

To substantiate the second conclusion, an approach is used that analyzes the unique differences of a person from all other forms of matter. It is based on the principle of analyzing communication in the form of words that allow us to communicate with each other and initiate real events, and dividing them into 3 main levels according to the degree of importance and influence:

Level 1 (lowest in priority) - words-functions that define a set of commands and movements (for example: “bring”, “give”, “lift”, etc.);

2nd level - words-systems that allow you to describe, create, implement a system, technology, processes (for example: "performance", "efficiency", "quality", "system", "goal", "algorithm", "process" , "project", "product", "manage", etc.);

3rd level - words-relationships that define the key meanings that form a person as a person, especially the perception of oneself, people, nature and the world as a whole (for example: "respect", "dignity", "honor", "God", “love”, “freedom”, “joy”, “resentment”, “man”, “man”, “woman”, etc.).

So, computers and AI (meaning a collective image) can work, surpassing a person at the 1st and 2nd levels, since they are directly related to the level of command processing and the operation of complex data analysis algorithms. But computers are not able to get to the 3rd level, since relationships in the understanding of a person are impossible for a computer to create them, especially given the often irrational behavior of a person. A computer can reproduce the relationships programmed into it, but these will not be primary human relationships as such, and, therefore, it is impossible in principle to completely replace a person.

Conclusions

In the course of the work, Raspberry Pi and Nvidia Jetson Nano single-board computers were considered together with the Raspberry Pi V2 camera for object detection.

Nvidia Jetson Nano was used, the strengths of which are that with a sufficiently small size, we get decent performance, the ability to work with neural networks and any supported programming language. I used the Python programming language due to the simple syntax.

The OpenCV library was used as image classification, object detection and segmentation, which also supports any programming language.

I also gained and consolidated experience in programming in Python, deploying the necessary libraries for neural networks, installing drivers, selecting a power supply board and servos for the Nvidia Jetson Nano, and integrating program code with servos.

The board from NVIDIA turned out to be quite interesting and very productive. It's a bit bigger and more expensive than the Raspberry Pi, but if someone needs a lot of processing power in a compact size, then it's well worth it.

References

  1. Анучин А.С. Системы управления электроприводов/ Анучин А.С .: Издательский дом МЭИ, 2015. – 54 с.
  2. Raspberry Pi 4 Model B specifications [Электронный ресурс]. – Режим доступа: https://www.raspberrypi.org/....
  3. PCA9685 [Электронный ресурс]. – Режим доступа: https://micro-pi.ru/....
  4. OpenCV [Электронный ресурс]. – Режим доступа: https://opencv.org/about/.
  5. NumPy [Электронный ресурс]. – Режим доступа: https://numpy.org/.
  6. SciPy [Электронный ресурс]. – Режим доступа: https://www.scipy.org/.
  7. Adafruit CircuitPython [Электронный ресурс]. – Режим доступа: https://circuitpython.readthedocs.io/projects/servokit/en/latest/.
  8. Simulink. [Электронный ресурс]. – Режим доступа: https://matlab.ru/products/Simulink.