Machine Learning

Robot Vision Embedded Solutions and Applications

muController Image Processing

Vision is an incredibly powerful way for robots to navigate, detect and deal with objects, read instructions (e.g., bar-codes), and generally see. If you don't believe me, close your eyes (I am not allowed to say 'and walk around' since this may put you at harm). Up until quite recently robot vision has required the use of powerful microprocessors, well beyond the processing power of our beloved Arduino technology. But this has changed with the introduction of dedicated camera-processor boards which communicate with an Arduino using the high-speed SPI interface, such as "Pixy 2". Even more exciting is the introduction of professional Arduino boards, the 'Portenta H7', a dual-core Arduino which still uses the Arduino API. There is also a Vision Shield (with built-in camera) which is capable of Machine Learning using OpenMV and micro-Python. Another board is the AURIX ShieldBuddy TC275 which is a tri-core board (with the Mega2560 pinout), again this can be programmed using the standard Arduino API. These boards operate at serious speeds, 200MHz for the AURIX, 480MHz for the Portenta; compare this with a typical 16MHz of the Mega2560, a real leap!

In this project you will study these advanced microcontroller boards (and others) and you will also research applications of machine vision to robots. Then you will chose a board and a problem to solve, and design build and test your solution.

Primary research will involve collecting data from your system and evaluating its performance against your specification. Alternatively, your primary research could be based on your design-build-test process, where you record and evaluate the success of each stage. Please note I have little experience of using these boards, yet.


Automatic Detection of Emerging Social Media Trends

The project will use simple Computational Intelligence techniques to automatically detect emerging trends on Twitter.

New trends are often identifiable by: 
 - Density of tweets/retweets sharing hashtags
 - Novelty of hashtag

The resulting application should identify any tweets that belong to an emerging trend and present them to the user. 


Exploiting QR codes using an Evolutionary Algorithm

qr code example

This project will investigate the feasibility of using Evolutionary Computation to generate QR codes which contain aesthetically appealing patterns or shapes. 

QR codes typically appear to contain a random black and white grid of squares. However this pattern is carefully crafted to ensure that a URL can be encoded in a robust fashion. Its therefore very difficult to create a QR code with a desirable pattern or structure.

This project will attempt to create QR codes that contain patterns of black and white squares that form an identifiable pattern or shape that is aesthetically appealing. The resulting QR codes may have a significant commercial value as compared to apparently randomly generated codes.