Finding Pre-Trained AI In A Modelzoo Using Python

Training a machine learning model is not a task for mere mortals, as it takes a lot of time or computing power to do so. Fortunately there are pre-trained models out there that one can use, and [Max Bridgland] decided it would be a good idea to write a python module to find and view such models using the command line.

For the uninitiated, Modelzoo is a place where you can find open source deep learning code and pre-trained models. [Max] taps into the (undocumented) API and allows a user to find and view models directly. When you run a utility, it goes online and retrieves the categories and then details of the available models. From then on, the user can select a model and the application will simply open the corresponding GitHub repository. Sounds simple but it has a lot of value since the code is designed to be extendable so that users working on such projects may automate the downloading part as well.

We have seen projects with machine learning used to detect humans, and with AI trending community tools such as this one help beginners get started even faster.

An Apartment-Hunting AI

Finding a good apartment is a lot of work and includes searching websites for available places and then cross-referencing with a list of characteristics. This can take hours, days or even months but in a world where cars drive themselves, it is possible to use machine learning in your hunt.

[veesot] lives in a city between Europe and Asia and was looking for a new home, and his goal was to create a model that can use historical data to not only suggest if an advertised price was right, but also recommend waiting by predicting the decrease in the the future. The data-set includes parameters such as “area”, “district”, “number of balconies” etc and tried to determine an optimal property to view.

There is a lot that [veesot] describes in his post which includes cleaning the data in terms of removing flats that are tool small or tool large. This is essentially creating a training data-set for the machine learning system that will allow the system to generate usable output. [veesot] also added parameters such districts which relate to the geographical location, age of the building and even the materials used in the construction.

There is also an interesting bit about analyzing the data variables and determining cross-correlation which ultimately leads to the obvious conclusions that the central/older districts have older apartments and newer ones are larger. It makes for a few cool graphs but the code can certainly come in handy when dealing with similar data-sets. The last part of the writing discusses applying Linear Regression and then testing its accuracy. Interpreting the model produces interesting results about the trained model and the values of the coefficients.

Continue reading “An Apartment-Hunting AI”

Millenium Falcon HID: Get Unity To Talk To Teensy

Here’s one that proves a hardware project can go beyond blinking LEDs and dumping massive chunks of data onto a serial console. Those practices are fine for some, but [dimtass] has found a more elegant hack for a more civilized age. His 3D Millennium Falcon model gets orientation data from his IMU as an an HID device.

The hardware involved is an MPU6050 6-axis sensor that is interfaced with a Teensy 3.2 board. [dimtass] documents his approach to calibrating the IMU going a bit further by using a Python script to generate offsets. We’ve advocated using Jupyter notebooks in the past and this is a good example of Jupyter plotting the data and visualizing the effect of the offsets in a second pass.

When in action, the Teensy reads IMU data and sends it over a USB RAW HID interface. For the uninitiated, HID transfers are more reliable than USB CDC transfers (virtual serial port) because they use smaller data chunks per event/transaction and usually don’t require special driversOn the computer side, [dimtass] has written a small application that gets the IMU values over the RAW HID and then provides it to the visualization application.

A 3D Millennium Falcon model is rendered in Unity, the popular open source game development engine. Even though Unity has an API, this particular approach is more OS specific using a shared-memory technique. The HID application writes to a file (/tmp/hid-shared-buffer) which is then read by Unity to make orientation changes to the rendered model.

[dimtass] provides lots of details on the tools used to bring his project to life and it can be a great starting point for more projects that need interfacing sensors with a visualization system. We have seen ways to turn a person’s head into a joystick and if you need a deeper dive into Unity, look no further.

Continue reading “Millenium Falcon HID: Get Unity To Talk To Teensy”

From An Eye To An Eye: Human Muscles As A Joystick

The interface between humans and machines has been a constantly evolving field. Sure the computer mouse was a game-changer, but time moves on. We are now looking at integrating machines via soft HMIs for personal applications. A research team led by the University of California, San Diego has presented a paper interfacing a soft lens with the human eye.

The lens itself is a pair of electroactive elastomer films that encapsulates a small quantity of saltwater. These films constitute the muscle and are controlled by an external source of electrical pulses. The signals are generated when electrodes placed around the eye of a subject and detect movement. Actions such as blinking are converted to a zoom-in-zoom-out activity which is designed to mimic human squinting.

The suggested potential applications are visual prostheses, adjustable glasses, VR, and even soft robots eyes. Yes, we are heading from whirring robots to squishy robots, but that also means that people with disabilities can get a second chance. This approach is non-invasive as opposed to brain implants.

[via Phys.org]

[Thanks for the tip Qes]

Continue reading “From An Eye To An Eye: Human Muscles As A Joystick”

The Theremin Gets A Voice

Every once in a while, we come across a project that adds a ridiculously good twist on an existing design. This is exactly what [Xiao Xiao] and the team at LAM research group at the Institut d’Alembert in Paris have done. Their project T-VOKS is a singing and Speaking Theremin that is sure to drive everyone in the office crazy. (YouTube link, embedded below for your viewing pleasure.)

For the uninitiated, the Theremin is an electronic music instrument that does not require physical contact. Instead, it uses two antennas to sense the distance of the operators hands and uses that to modulate the pitch and volume of the output audio. From music concerts to movie background music to even scaring the neighbours, this instrument can do it all.

T-VOKS is a different take on the instrument, and it interfaces with a voice synthesizer to sing. There is an additional sensor that is used for the syllable sequencing, and the video below shows the gadget in operation. The icing on the cake is the instrument playing, or should that be singing in an actual concert. There is also a research paper detailing the operation on Dropbox[PDF] if you need the nitty-gritty.

We wonder how a TTS engine would work with this idea and hope to see some more projects like it in the future. Fore those looking to get started, have a look at the build guide for a DIY theremin.

Continue reading “The Theremin Gets A Voice”

Making An Update Server For PythonAnywhere And GitHub

Cloud based IDEs and development tools have grown over the years, though most have limitations in their free tiers and may not be fully compatible with other services such as GitHub. [Aadi Bajpai] loved using PythonAnywhere and to collaborate using GitHub, so he made a update server that automatically updates the running code once you make a push to Github

PythonAnywhere gives you access to a python shell over a web browser, and also lets you run a web app that can be accessed via a custom sub-domain. Even though it does not have direct integration with GitHub, you can drop to the bash shell to and get access to a git client.

For this hack, [Aadi Bajpai] utilizes the webhooks from GitHub that are triggered when a push event is detected. A flask server running on PythonAnywhere is written such that once triggered by the get POST request, it locally executes a git pull from the repository. There a bit more work that allows adding a bit of security sauce to the recipe but it is a pretty elegant solution and can be used for other cases as well.

Setting up alert notifications has been demonstrated to be an interesting task, though integrating Discord or Slack for notifications adds a little more bragging rights.

Captivating ESP32 Camera Hack

You can never have enough DIY devices at home, so when you look at an ESP32 module that comes with the camera, you automatically start getting ideas. [Daniel Padilla] wanted a way to deploy DIY camera modules without the hassle of configuring them so he made one that looks like an access point and starts streaming as soon as you connect to it.[GitHub]

The code he provides allows the ESP32 to appear as an Open Access Point which you can connect to from a PC or smartphone. The awesome sauce here is that the ESP32 resolves all DNS requests to a redirect in a similar manner to what happens when someone connects to an open Wi-Fi access point in a mall, Instead of a captive portal page that asks the user to authenticate or accept terms and conditions, [Daniel Padilla]’s code instead redirects to the streaming page et voila! Instant camera stream, and it is that simple.

We love this project because it is an elegant way to solve a problem, and it also teaches newbies about captive portals and their implementation. We covered a cheap ESP32 Webcam in the past and this project also comes with code for you to get started. We would love to see what you come up with next.