Raspberry Pi Computer Vision Made Simple

When the Raspberry Pi 4 was introduced, featuring four 1.5 GHz CPU cores and up to 8GB of RAM, it left the community astonished. This additional processing power opened up new possibilities for utilizing the Raspberry Pi in machine learning and AI projects. As time progressed, TensorFlow and TensorFlow Lite underwent numerous enhancements, solidifying the Raspberry Pi as an affordable and accessible platform for exploring these fields. However, the question remained: Where should one begin?

Charmed Labs addressed this challenge by introducing Vizy, a smart camera designed for beginners in machine learning. Available at a starting price of $259, the Vizy unit includes a Raspberry Pi 4 with either 2GB of RAM or 4-8GB of RAM for enhanced performance. Equipped with a high-quality camera, Vizy simplifies the process of building computer vision projects, catering to students and experienced makers alike.

Vizy Hardware Specifications

Raspberry Pi Model Raspberry Pi 4 2GB/4GB/8GB
Camera Sony IMX477 12.3 megapixel (Same as Raspberry Pi High Quality Camera)
Row 2 – Cell 0 Switchable IR filter for day or night use
Lens Wide-angle, distortion-free lens
GPIO 8 GPIO pins via screw terminal
Row 5 – Cell 0 1 x 12V
Row 6 – Cell 0 1 x 5V
Row 7 – Cell 0 2 x GND
Row 8 – Cell 0 4 x Input / output pins
Dimensions 4 x 6 x 4 inches (101 x 152.4 x 101 mm)

The included green case of the Vizy is visually appealing and made entirely of plastic. One notable feature on the underside of the case is a ¾ screw mount, which allows for convenient attachment to tripods. This feature sets Vizy apart from other Raspberry Pi cameras, as it securely positions the device on your desk. Power is supplied through the provided 120V 2.5A AC wall wart, which not only powers the Raspberry Pi (via a 5V buck converter on a custom addon board) but also offers external power for 12V devices. Alternatively, the unit can be powered through the Raspberry Pi 4’s USB-C port, which is the method we employed during our testing.

Located on the top of the Vizy unit is a transparent button, which also serves as a concealment for an RGB LED. This button functions as the power switch for Vizy and can be configured to toggle the unit on and off. Additionally, the button houses an RGB LED that can be controlled using Python code. Adjacent to the button, there is a cold shoe mount, a common feature in the photography world often found on DSLRs. Unlike a hot shoe, which provides power, a cold shoe is designed to securely hold accessories in place. In the case of Vizy, users have the option to purchase an LED mount kit separately, enabling them to illuminate the subject of their projects.

The Vizy case offers an impressive design and sturdy construction. However, it should be noted that it may not be suitable for outdoor projects. To cater to outdoor use cases, the Vizy outdoor package is available, which retails between $369 and $409.

Shifting focus to the software aspect, Vizy comes preloaded with a range of applications and examples. Nevertheless, it is advisable to update the operating system installation to access the latest apps and examples. Vizy’s control interface is accessed via a web browser, rather than a desktop application. By navigating to vizy.local in your browser and logging in with the default credentials (remember to change them promptly), you will be presented with the default AI bird feeder application. However, you have the flexibility to switch between different apps/examples using the menu located at the top right corner of the interface.

In addition to app management, the menu provides options to save images, videos, and models to a remote location, such as Google’s cloud or your own home server. Of particular interest, the menu also includes a Python shell, Linux terminal, and a Python editor. These features allow you to modify and customize the included apps/examples according to your preferences.

Regarding the applications and examples, the AI bird feeder app serves as an excellent demonstration of Vizy’s capabilities. The noteworthy feature of Vizy lies in its AI functionality. By employing a TensorFlow model specifically trained to recognize 20 distinct bird species, the bird feeder application can effectively identify, categorize, and capture photographs of birds while they engage in feeding activities.

All of the provided apps and examples can be customized according to individual preferences. The main menu includes a hidden editor button that, when clicked, launches an online Integrated Development Environment (IDE) where code can be edited and executed. This feature adds a sense of immediacy to the learning process, allowing for real-time modifications. Once an app or example is updated, the corresponding app window reflects the changes made.

However, during our testing, we discovered a limitation. While we were able to create a simple script for LED blinking using the editor, we encountered an issue: there was no direct way to execute the script within the editor itself. Instead, we had to exit the editor, open a Shell (Linux terminal), and manually run the code. Although not overly challenging, this hurdle could pose a difficulty for newcomers to the platform.

Getting started with creating your own projects on Vizy is quite straightforward. The online editor provided, along with Charmed Labs’ comprehensive documentation and API reference, offers ample support. These resources make it relatively easy to begin exploring and developing your own projects.

Vizy’s power board, an additional GPIO add-on board, features its own API for controlling various onboard components such as the buzzer, RGB LED, fan controller, and IR switch controller used for nocturnal photography with the included camera. The camera functionality is handled through a combination of OpenCV and Kritter. It appears that Kritter is the preferred module for camera control over PiCamera. However, the best approach to learning is to experiment with modifying the existing examples and observing the outcomes firsthand.

Regrettably, if you were anticipating the integration of a HAT or other add-on board, we must inform you that it is not possible. The full 40-pin GPIO (General Purpose Input/Output) is not accessible on Vizy, which is unfortunate for those seeking such expansion options. Instead, a limited form of GPIO access is available through a removable screw terminal located on the side of the unit.

This screw terminal provides eight GPIO pins, out of which only four can be utilized as digital inputs or outputs. The first and last terminals are connected to Ground (GND). The second and third terminals supply 12V and 5V voltages, respectively, with a maximum capacity of 4A when used in conjunction with the included power supply. Terminals four to seven serve as the digital inputs/outputs, with each capable of sinking (providing a path to Ground) 1A of current. Additionally, terminals six and seven can function as a serial interface. The add-on board also features a battery-backed real-time clock, which proves useful for projects that involve Vizy being deployed in environments lacking reliable network connections.

Vizy is shipped with pre-installed heatsinks on its CPU, RAM, and PCIe chips, which helps in dissipating heat. However, active cooling is required to prevent thermal throttling, and this is where most Raspberry Pi case fans encounter difficulties. The smaller the fan, the harder it needs to work, resulting in increased fan noise. Vizy is not exempt from this issue, and its integrated fan becomes more noticeable when the CPU is under heavy load.

During idle periods, the CPU temperature of Vizy remains around 63.8 degrees Celsius, significantly higher than the 40.9 degrees Celsius observed on a bare Raspberry Pi 4. Under heavy workload, the fan activates to keep the temperature of the Raspberry Pi 4 below 80 degrees Celsius. To evaluate the impact of turning off the fan, we allowed the unit to operate without active cooling for some time. The temperature then climbed to 82.8 degrees Celsius, which is still below the critical limit of 85 degrees Celsius. However, it is important to note that a hot Raspberry Pi is generally not desirable as it may affect performance and overall stability.

The Camera

As enthusiasts who enjoy tinkering with devices, we were eager to explore the internals of Vizy, starting with its camera. We discovered that the camera used in Vizy is based on the Sony IMX477 sensor, which is also utilized in the official Raspberry Pi High-Quality Camera. However, it is important to note that Vizy features its own version of the camera, specifically the Arducam UC-768, with Vizy branding on its flat flex cable. This particular camera is available for purchase at a retail price of $85 and includes an IR filter switch, allowing us to toggle it on or off depending on lighting conditions.

To further investigate, we detached the camera from the unit and proceeded to unscrew the lens that came with it. This revealed a standard C/CS Mount, compatible with lenses designed for the official Raspberry Pi High-Quality Camera. We conducted tests using a 6mm CCTV lens, and with some adjustments, we were able to obtain a clear image. It’s worth mentioning that our 6mm lens exhibited slight distortion when objects were in close proximity to it, but for distant shots, the clarity improved significantly. Importantly, all of the apps and examples provided with Vizy worked as expected during our tests.

Utilizing the C/CS Mount on Vizy allows for more than just the attachment of standard camera lenses. With the aid of adapters, it becomes possible to directly connect microscopes and telescopes to Vizy. This opens up exciting possibilities for leveraging the capabilities of machine learning to delve into the intricacies of the microscopic realm and explore the vast expanse of stars above us. By combining the versatility of Vizy with different optical instruments, we can embark on fascinating journeys of discovery and analysis.

Projects with Vizy

Vizy’s true strength lies in its ability to facilitate the seamless creation of Python-based machine learning projects centered around computer vision. The camera that comes bundled with Vizy boasts impressive quality, and coupled with the robust capabilities of the Raspberry Pi 4, it empowers us to develop machine learning models capable of tracking objects and delivering valuable insights in nearly real-time. The preloaded apps and examples aptly demonstrate the prowess of Vizy, and based on these projects, we can effortlessly devise applications for tasks such as sorting M&Ms, bird counting in our backyard, or cataloging microscopic insects. The possibilities for leveraging Vizy’s capabilities are vast and brimming with potential.

Bottom Line

We hold a strong affinity for Vizy, although it’s worth discussing its pricing. The 4GB variant priced at $269 hits the sweet spot, offering an ample amount of RAM at a reasonable cost, particularly when considering the prevailing market prices of standalone Raspberry Pi 4s. Additionally, factoring in the cost of the camera ($85), the add-on board, case, and the exceptional resources provided, the equation becomes more favorable. While it’s true that we might be spending more compared to purchasing individual components, we are essentially investing in a comprehensive kit that is ready to use. By paying a little extra in dollars, we save precious time. Whether utilized in classrooms, science labs, or at home, Vizy serves as an excellent device to introduce camera-based AI applications.


About The Author

Muhammad Bilal

I am highly skilled and motivated individual with a Master's degree in Computer Science. I have extensive experience in technical writing and a deep understanding of SEO practices.