Review: Linux Vizy Powered AI Camera

vizy is a Linux-based “AI camera” based on the Raspberry Pi 4 that uses machine learning and machine vision to achieve some neat tricks, and has a design centered around hacking capability. I found it ridiculously easy to get up and running, and it was just as easy to make changes on my own and start coming up with ideas.

Out of the box, Vizy is only a few Python lines away from being a working Cat Detector project.

I was running pre-installed examples written in Python in minutes and modifying that same code in about 30 more seconds. Best of all, I did it all without installing a development environment, or even leaving my web browser, for that matter. I have to say, it created a very hacker-friendly experience.

Vizy comes from the people of Charmed Laboratories; this isn’t their first stab at smart cameras, and it shows. They also created the Fairy and pixie 2 cameras, of which I happen to own several. I’ve always devoured anything that makes machine vision more accessible and easier to incorporate into projects, so when Charmed Labs kindly offered to send me one of their newer devices, I was eager to see what was new.

I found Vizy to be a highly polished platform with a number of really useful hardware and software features, and a focus on accessibility and ease of use which I really hope to see more of in future products integrated. Let’s take a closer look.

look inside

Vizy is based on the Raspberry Pi 4, which sets it apart somewhat from most other embedded machine vision platforms. Like many other platforms, all code and vision processing for Vizy runs locally. However, running on a Raspberry Pi 4 also means having access to a familiar Linux environment, and this feature brings a few benefits that we’ll explore in a moment.

Smart camera with open top, side view
Vizy is by default an indoor device, but for more demanding environments there is an optional outdoor shelter.

Inside the case is a Raspberry Pi 4, a fan, the lens and camera (which uses the same Sony IMX477 sensor as the Raspberry Pi High Quality Camera), and a small power and data management board. I/O attached to the top of the Pi’s 40-pin GPIO header. This board handles power on and off, controls the switchable IR filter, accepts 12V DC input, provides feedback with a beeper and an RGB LED, and features an I/O header with screw terminals for easy interfacing with other devices.

Vizy can almost be thought of as a camera-like case for a Raspberry Pi, as it provides full access to all ports on the Raspberry Pi 4, all of which work as one would expect. One can plug in a monitor and keyboard and see a Linux desktop environment, and adding functionality like cellular wireless connectivity is as easy as plugging in and setting up a USB cellular modem. Interfacing with other systems or hardware – an expected task for a smart camera – becomes easier with the ability to use familiar interfaces and methods.

Features suitable for hackers

One of the things I loved most about exploring Vizy was how quickly I started editing sample code without even having to leave my web browser, thanks to the built-in web terminal interfaces. The samples and apps are all written in Python, and while it’s certainly possible to use whatever method you want to modify the Python code and make changes to the device, it’s also very simple to run an editor in a new browser tab.

Here are some of the coolest features I’ve found in Vizy, each with something useful to offer. Their usefulness is enhanced by excellent documentation.

Hardware Features

Software-controlled switchable IR filter which is independent of the lens itself. An IR filter is usually built into most lenses because it provides better photos. However, there are times when it is desirable to do without an IR filter (a camera tends to see better at night without a filter, for example.) Vizy allows you to activate (or deactivate) the IR filter with a simple software command.

The lens mount is M12 and C/CS compatible. Most cameras will accept either lens type or the other, but Vizy allows the use of either (although it is recommended to use lenses without IR filters, as Vizy supplies its own. )

I/O connector with screw terminals allows the camera to interface directly with other hardware and devices. The pins allow robust digital input and output, including serial communication, and software-switchable high-current 5 V and 12 V outputs are available for controlling external devices (more pinout details are here.)

The usual camera standards are present such as a tripod mount, mounting shoe for camera accessories and an optional outdoor case.

All the usual Raspberry Pi interfaces are exposed meaning that Vizy doesn’t interfere with anything a Raspberry Pi would normally be able to do. It is even possible to connect a keyboard and a monitor (or connect through VNCby the way) and work on Vizy from a normal Linux desktop environment.

Software features

Simple setup. It takes virtually no time to get up and running or configure the device to connect to a local network. Every part of Vizy’s functionality is accessible through a web browser.

Built-in applications and examples are easy to modify. Two applications and a number of examples are pre-installed and ready to run: bird feeder automatically detects and identifies different species of birds, and MotionScope detects moving objects, measures the acceleration and speed of each, and presents the data in interactive graphs. Examples include things like TensorFlow Object Detectionwhich runs locally and provides a simple framework for projects.

Development can be done entirely in the browserand any example or application can be launched in a Python editor in a new browser tab with just a few clicks, without the need for a separate development environment (although Vizy also allows SMB/CIFS file sharing over LAN.)

Remote web sharing for access from outside your network is a handy feature that creates a custom URL through which the device can be accessed remotely. A URL generated this way is only valid for one hour, but established remote sessions will not be terminated; a generated URL simply ceases to be valid. All the usual features are accessible via web sharing – including web terminal windows and file editing – and the system elegantly handles simultaneous access by multiple users.

Camera power supply

Vizy is normally powered by the included 12V wall adapter, but there are a number of options for powering the device, which gives the typical hacker some flexibility. For example, it is possible to power the device by applying 5V to the USB-C connector, although this means that the 12V output on the I/O connector will not be functional. Speaking of which, this 12V output can also function as an input, allowing the camera to be powered from an external 12V source applied to the straight screw terminals. Power over Ethernet (PoE) is also an option.

Power consumption reflects the internals of the device’s Raspberry Pi 4, consuming around 3W to 5W depending on what it’s doing. I measured between 500mA and 600mA at 5V quiescent, rising to around 1A while actively streaming TensorFlow object detection results into the camera view.

In the browser… All

It’s one thing to be able to view live video or change hardware settings from a browser, but what’s even better is to be able to edit Python code directly from a browser tab , with the output of the application console. It’s a nifty system that really makes modifying or writing code for the camera much more accessible. Need to create new files, or even open a terminal window on the Pi itself? This can also be launched in a new tab.

Of course, you can use any method you want to develop on the device. file sharing, sshand remote desktop (via VNC) are all options, as is simply plugging in a keyboard and monitor.

love this direction

I was up and running in no time with Vizy, and the default app is a bird feeder watcher that detects birds, identifies their species, and uploads their photos to a Google photo album. He is capable of more than that, however. Want an idea of ​​what goes into developing your own app? Here is a tutorial for rolling your own petcomplete with treat dispenser.

Vizy comes with a number of useful examples ready to be modified, and development requires nothing more than a web browser. This helps make it more accessible while giving the average hacker a good start in implementing things like object detection into a project. In fact, thanks to the pre-installed TensorFlow samples, Vizy is only a few lines of code away from being a working tool. Cat detector like this.

Vizy has a trim level and feature set that I really hope to see more of in future products like this. Does a device like this give you ideas for a new project, or perhaps breathe life into an old one? We really want to hear about it, so let us know in the comments.

Leave a Comment