July's Hackathon Recap

METHODOLOGIES

By
Vika

July 27, 2018


After a brief break in the past two months, WATTx hackathon recap is back on: As usual, we organized a two-day internal hackathon during which WATTx-ers dedicated their time to working on side projects and got a chance to explore new trends in design, tech, and data science. This month’s projects were versatile and prolific: From two research projects and a workshop, to an AI-based game, to a Berlin map showcasing things to do - and much more: read about what we did.


Bot or Human or Turing Test - The Game

As a data scientist, Christian is naturally drawn to the advances in Machine Learning or AI as well as their hazards.

From this starting point, he came up with the idea to create a multiplayer game environment in which humans and bots compete against each other, with the goal of not only winning the game, but to also label the fellow players correctly - as other humans or bots. Extra points are earned if the opponents can be tricked into believing you are a robot. His long-term vision of the environment is for humans trying to act like bots and vice versa, until the player cannot easily identify which is which anymore.

Christian dedicated his time during the July hackathon, to explore different game options, as well as their respective pros and cons, that could serve as a base for his idea. The initial brainstorm yielded two first options: In “Draw me a cat!” the user would try to identify whether a scribble of a cat was created by a human or a bot (see image below); while in “Pong” the user would play ping pong against another player, trying to guess whether it was a bot or not.

Ultimately Christian’s idea could lead to a platform in which data scientists can submit models and have them compete against each other.


Generating Artificial Data

Kevin is a new member of the Data Science team and for his first hackathon, he dedicated his two days to exploring Generative Adversarial Networks (GANs) and their suitability for the generation of artificial data that could prove useful for upcoming WATTx projects.

The general benefits of GANs that Kevin discovered were, apart from their ability to generate synthetic data; to create images from text; to transfer the artistic style of one image to another; and lastly, to infer missing data.

Kevin started experimenting with a simple vanilla GANs in pytorch and was able to reproduce a MNIST dataset, or in other words handwritten digits. See his results below:

MNIST Real vs MNIST Fake

When he tried to experiment with CIFAR-10, which essentially are 10 different classes of colour images, he considered the results as not as great.

After having implemented deep convolutional GAN (DC-GAN), Kevin was able to achieve better results on CIFAR-10, which, however, were not recognizable as a particular class.

Kevin concluded, that synthetic images were better for DC-GAN than simple GAN, but those take longer to train. For future hackathons, he will attempt to explore many more variations that exist on GAN and that can be tailored to different, specific tasks.


Pi Spy Box - Keylogger

Our Software Engineer Blake had the idea of turning a Raspberry Pi into a keylogger that could capture the sound of user’s typing and by analysing the sound waves captured, identify which key has been pressed.

Blake’s initial research yielded that he’d have to firstly remove background noise and isolate that from keyboard noise. In a second step, he would need to use the sound clip in order to train a machine learning model. As the first step required additional knowledge about signal processing, Blake took the time to learn the basics first, such as the Fast Fourier transform (FFT) and the Mel Frequency Cepstral Coefficient (MFCC).

After two days, Blake had acquired enough knowledge, that’ll allow him to tackle the experiment from a more empirical perspective in the next hackathons.


Berlinfo

In past hackathons, some of our engineers, out of their adoration for canteen lunches, created a map of all known facilities in and around Berlin.

Developers Franzi and Wen picked up that project for this hackathon, as they were missing some essential references to more locations, such as markets, or to more summerly places like ice cream shops, swimming pools, or street festivals. The data they used to inform and expand the map came from Berlin Open Data. Their impressive results can be admired at: wattx.io/berlinfo.

For the upcoming hackathons, the pair is aiming at implementing even more data sources such as bike routes for instance to cover all possible preferences of colleagues within the team.

On a more technical level, Fran and Wen think about implementing more API capabilities to be able to show all data in a specified time range, or save and store favorites in a personal list.


Looking into faster Image Classification

Our Data Scientist Kostya and UX Designer Quentin, who are currently supporting our latest venture deevio, an AI-driven solution for industrial quality control, paired up for this hackathon to tackle an issue Kostya is facing.

As one key functionality of deevio is object classification, labeling images appropriately first as “good” or “bad” is required as a prerequisite. His problem is that the current tools available in the market involve a lot of manual work, which is extremely time-consuming.

Classifying apples

That issue inspired Kostya to think of a better way to label images. He developed features that allow users to outline objects in an image, and in a next step select and classify those objects in a short period of time.

He spent two days building out his idea, with Quentin’s support in designing the interface, and compared it to existing softwares. Their first results were promising, having achieved a big potential for time savings.

The next steps? Seeing if this idea is worth dedicating more time and resources to, and then actually building the tool into something we could use everyday here at WATTx.


IoT Workshop

A few people at WATTx, namely our Office Manager Wayne, UX Designer Quentin, and our Venture Developers Leander, Kata, Yannick and Tristan showed interest in learning more about the technical side of IoT.

So for this hackathon, Pedro, our Hardware Engineer, decided to teach his fellow colleagues about the basics of sensors using an Arduino.

During the first day, the group was mainly following Pedro’s instructions on how to set up different sensors on a circuit board and on controlling those sensors with some basic code, using the Arduino interface. They managed to set up a blinking LED, then a motion sensor, and in a final step, built a basic interface displaying a histogram of the temperature and humidity levels in the room they were hacking in, and displaying that information through the Blynk app.

After having learnt the basics of the technology, on day two, the workshop participants - in typical WATTx fashion - set out to look for an actual problem to solve. They decided to install motion sensors in our bathrooms, that would send a signal to a lamp on another circuit board via the Cloud, that was supposed to light up that lamp whenever the respective bathroom was occupied. In the end of the day, and with a good amount of help from Pedro, the team was able to make it work - at least for the men’s bathroom.

For the next Hackathon, the plan is to go a step further, and to integrate the data generated by the sensors in the bathrooms into Slack, so that people needing to use the room would easily get that information through a simple check via Slack.


Gobot + IoT

At WATTx we use GoLang on a daily basis - for our infrastructure and microservices. During our hackathon Rafal decided to use ESP8266 chip together with Go (Gobot framework) and build an IoT device which can track motion & humidity in the rooms.

On the first day of the Hackathon, Rafal decided to focus only on the Gobot Platform and explore possibilities of it.

On his second day, he was ready to take it further. He not only set up monitoring platform using InfluxDB and Chronograf for storing and showing historic data but also used NATS as a message bus for sending and ingesting information from ESP devices.

At the end of the day, he got a working infrastructure which was ready for monitoring our entire office environment (temperature, humidity, luminosity) and displaying all data on a single dashboard. Adding new devices was as simple as uploading Gobot code to new devices – using Firmata protocol.