Skip to content

Review: Vizy Linux-Powered AI Camera

Review: Vizy Linux-Powered AI Camera

Vizy is a Linux-based “AI camera” based on the Raspberry Pi 4 that uses machine learning and machine vision to work out some neat tricks, and has a design centered around hackability. I found it very easy to get it working, and it was very easy to make the changes myself and start getting ideas.

Person and cat with auto-generated tags that you identify
Out of the box, Vizy is just two lines from Python away from being a functional Cat Detector project.

I was running pre-installed examples written in Python within minutes, and editing the same code in about another 30 seconds. Even better, I did it all without installing a development environment, or even leaving my web browser, for that matter. I must say, it was made for a very hacker friendly experience.

Vizy comes from the folks at Charmed Labs; This isn’t their first stab at smart cameras, and it shows. They also made Pixy and Pixy 2 cameras, many of which I owned. I’ve always gobbled up anything that makes the machine more visible and easier to incorporate into projects, so when Charmed Labs kindly offered to send me one of their latest machines, I was eager to find out what was new.

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

looking inside

Vizy is based on the Raspberry Pi 4, which somewhat distinguishes it from most other embedded machine vision platforms. Like many other platforms, all Vizy’s code processing and visibility are run locally. However, running on a Raspberry Pi 4 also means access to a familiar Linux environment, and this functionality brings some benefits that we’ll explore in a bit.

Smart Camera with Open Top and Side View
Vizy is an onboard device by default, but for more demanding environments there is an optional external enclosure.

Inside the enclosure is a Raspberry Pi 4, a fan, lens and camera assembly (which uses the same Sony IMX477 sensor as the high-end Raspberry Pi camera), a small power and I/O management board attached to the top of the 40-pin GPIO header in the pi. This board handles on and off, controls a switchable IR filter, accepts 12V DC input, provides feedback with alarm and RGB LED lighting, and has an I/O connector with screw terminals for easy communication with other devices.

The Vizy can be thought of as a camera case for the Raspberry Pi, as it provides full access to all of the Raspberry Pi 4’s ports, all of which work as one would expect. One can connect a monitor and keyboard and watch the Linux desktop environment, and adding a feature like cellular wireless is as simple as connecting and configuring a cellular USB modem. Communication with other systems or devices – an expected task of a smart camera – is made easier by being able to use familiar interfaces and methods.

Hacker-friendly features

One of the things I loved the most about exploring Vizy was how quickly I started modifying the sample code without having to leave my web browser, thanks to the built-in web terminal interfaces. All examples and implementations are written in Python, and while it is certainly possible to use any method one would like to modify Python code and push changes to the terminal, it is very easy to launch an editor in a new browser tab.

Here are some of the more interesting features I’ve found in Vizy, each of which has something useful to offer. Its usefulness is enhanced by excellent documentation.

Hardware Features

Software-controlled and switchable infrared filter It is independent of the lens itself. An infrared filter is usually included in most lenses because it provides better images. However, there are times when going without an IR filter is desirable (the camera tends to see better at night without one, for example.) Vizy allows enabling (or disabling) the IR filter with a simple software command.

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

I/O plug with screw terminals It provides a way for the camera to interact directly with other devices and devices. The pins allow for robust digital input and output including serial communication, and software-switchable 5V and 12V current outputs are available for controlling external devices (more details on pinout here.)

The usual camera standards are there Such as a tripod, mounting shoe for camera accessories and an optional outer case.

All the usual Raspberry Pi interfaces are exposed Which means Vizy doesn’t get in the way of anything a Raspberry Pi would normally do. It’s also possible to connect a keyboard and monitor (or connect via VNC, for that matter) and work on Vizy from a regular Linux desktop environment.

Software Features

Simple setup. It takes almost no time at all to boot up or configure the device to connect to a local network. Every part of Vizy’s functionality can be accessed via a web browser.

The built in apps and examples are easy to modify. Two apps and a number of examples come pre-installed and ready to run: Birdfeeder automatically detects and identifies different types of birds, MotionScope detects moving objects, measures the acceleration and velocity of each, and displays the data as interactive graphs. Examples include things like TensorFlow object detection, which runs locally and provides a simple framework for projects.

The development can be done entirely in the browserand any example or application that can be launched in the Python editor in a new browser tab with a few clicks, without the need for a separate development environment (although Vizy also allows SMB/CIFS-based file sharing on the local network.)

Remote web sharing for access from outside a person’s network It is a useful feature that creates a custom URL through which one can access the device remotely. The URL created in this way is only valid for an hour, but the created remote sessions will not be terminated; The generated URL simply stops being valid. All the usual features can be accessed through web sharing – including web-based terminal windows and file editing – and the system handles simultaneous access by multiple users safely.

Turn on the camera

The Vizy is nominally powered by the included 12V wall adapter but there are a number of options to power 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 doing so means that the 12V output on the I/O connector will not work. Speaking of which, this 12V output can also act as an input, allowing one to power the camera from an external 12V source applied to the right-hand screw terminals. Power over Ethernet (PoE) is also an option.

Power consumption mirrors the Raspberry Pi 4’s internal hardware, consuming around 3W to 5W depending on what it’s doing. I measured between 500mA and 600mA at 5V when idle, jumping to about 1A while streaming the TensorFlow object detection results into the camera view.

In the browser…everything

Viewing live video or changing hardware parameters from within the browser is one thing, but even better is the ability to edit Python code directly from the browser tab, complete with app console output. It’s a great system that really makes editing or writing camera code much easier. Do you need to create new files, or even open a terminal window on the Pi itself? This can be launched in a new tab as well.

Of course, one can use any method one would like to develop on the device. file sharing, sshand remote desktop (via VNC) are all options, as is simply by connecting a keyboard and monitor.

Loving this trend

I’ve been working for a short while with Vizy, and the default app is a bird feeder monitor that detects birds, identifies their species, and uploads their photos to a Google Photos album. However, it is capable of more than that. Want an idea of ​​what goes into developing your own app? Here’s a tutorial on rolling your pet companion, with a 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 at the same time giving the average hacker an operational start in doing things like detecting objects in the project. In fact, thanks to the pre-installed TensorFlow examples, Vizy is just a couple of lines of code far from being a functional Cat detector like this one.

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

Source link