As a result of the Corona pandemic i had a lot of time available during the period between the winter and the summer semesters. Some of this time was spent by implementing new features for our Toolbox-Plane flight computer. The flight computer is a Rasperry Pi which runs all high-level aspects of the plane such as sensor fusion, route planning and some parts of the feedback-control. Additionally it is the centre of our communication network: the flight computer communications with the flight controller, the power distribution board, the primary remote and the base station.
In my post “Getting started with the Google Coral EdgeTPU using C++” i described that models for the Google Coral EdgeTPU module need to be quantized to 8-bit fixed point numbers, instead of the commonly used 32 or 64-bit floating point numbers. This reduces the resolution of all values used in the model, that are the weights, the intermediate results and the predictions. Therefore the quality of the predictions of the neural networks is in most cases worse than without quantization.
I²C is a protocol which defines a bus used for the communication between multiple integrated circuits, such as processors and sensors. In this context a bus refers to a connection between multiple entitys using only one shared communication channel.
I still own one of the original Samsung Galaxy Tab 10.1 tablets, the old one which has been released in 2011. Obviously it does not receive any official android updates anymore, and there are not many custom ROMs available, for a good reason: the performance of the tablet is not sufficient for a recent android version. As our lectures for the university a purely digital this year i had the need to annotate the slides available as there are no printouts of the scripts available. Thus i decided to revive my old tablet for writing notes and annotating PDFs.
In the last post i compared the inference speed of two neural networks using C++ on the CPU of a desktop computer. I stated, that for many applications it is not possible to use accelerator devices such as GPUs. This changed in the last year with Google releasing an comparably cheap dedicated neural network accelerator: the Google Coral EdgeTPU module.
Machine learning started of as the research to emulate the human brain , in recent years the models developed moved further away from the structure of the human brain . On the other hand state of the art models are now able to perform certain tasks better than humans , these rapid improvements in the last five to ten years lead to the utilisation of deep neural networks outside of the research domain . Today most of the large tech companies, such as Google and Facebook, are using neural networks as part of their products.
This is a rant. In 1984 Apple released the Macintosh, the first widely available computer that featured a graphical user interface , this was 35 years ago. 35 years in which developers had the opportunity to implement GUI-Frameworks and Libraries, which will make it easy to develop applications with GUIs. And here we are, it is 2019, and this is still not the case.
While i was still at school i participated at RoboCup-Junior, most of the years in the soccer open discipline. Our team “Bodenseehaie” (sharks of lake constance) participated at the world cup four times from 2013 to 2016 and even won in 2016.
The SoPra (“Software Projekt”) is a module at Ulm University which requires groups of students to develop a software project over the course of a year. The module is mandatory for all students doing a computer science, software engineering or similar software development oriented programs. This includes “Informationssystemtechik”, the program i am doing. I did the project in the last year with a group of five fellow students and took the chance to try some new strategies, for the software development itself as well as for the project management. In this blog post i will review the differenct aspects and summarize my experiences. If you are interest in the actual code, it is available on github: github.com/SoPra-Team-10.
More and more people are interested in making their homes smarter. Lights are arguably the aspect most people tackle first primarily because they can be installed easily.
This is the second part of my series about converting CNNs to MLPs, the first part can be read here. In this post i will first study the time and space complexity of the converted CNN and then i will try to verify these results using actual CNNs converted to OpenCV-MLP models.
This is a follow-up post to my last blog-post (From OpenCV to TensorFlow and back: fast neural networks using OpenCV and C++) in which i wrote:
TensorFlow is the most used deep learning framework today (based on the number of github stars), for a good reason: all important models can be and probably are implemented in TensorFlow and the tooling is really good (especially TensorBoard). For “classic” computer vision, that is computer vision not utilising deep-learning, OpenCV is the most important library* by far.
For configuring an STM32 microcontroller there is arguably no easier way to configure the chip and periphery than using STM32CubeMx (in the following refered to as CubeMx). Sadly it is only possible to export the code to a small selection of proprietary IDEs, it is neither possible to use the Code with one of the important C/C++ IDEs (CLion, QtCreator, Code::Blocks, Visual Studio,…) or to use any editor (vim, emacs, nano,…) and an external build tool to build the project. This also limits the ability to integrate the build process in some form of continuous integration.
After having used the Dangerous Prototypes Logic Pirate with the recommended Open Logic Sniffer application for many years i decided to try a different client for a couple of reasons: primarily OLS is quite an old software, the latest release is from 2015 and everytime i wanted to use it i had to configure my computer to use java 8.
After having several problems with our last PCB-Stack used in the Toolbox-Plane (in no particular order: large size, problems with the mcu not starting, non standardized platform) we decided to design three new PCBs for our plane.
As you might have guessed after visiting this site i have a completly new website! After i had more or less abandonded my old website (i still believe the concept is really cool, so it still is available at aul12.me/old) i tried to develop a new website from scratch but pretty soon realized i’m not a designer. So in the third iteration i started using Jekyll as a static site generator.