Here I did some experiments targeted to PYNQ Embedded Vision applications. It includes reading the USB camera in FPGA and projecting the image output via HDMI display on PC, testing the real time edge detection with the USB camera interfaced to the FPGA, and testing the face recognition software code on the HDMI display.
What is PYNQ?
The Zynq All Programmable device is an SOC based on a dual-core ARM Cortex-A9 processor (Processing System or PS), with FPGA part (referred as Programmable Logic or PL). Overlays or hardware libraries are programmable FPGA designs that extend the user application from the Processing System of the Zynq into the Programmable Logic. PYNQ provides a Python interface to allow overlays in the PL to be controlled from Python running in the PS.
More details are here https://pynq.readthedocs.io/en/latest/pynq_overlays.html
As done by other road-testers I also setup my PYNQ-Z1 using the guide from https://pynq.readthedocs.io/en/latest/getting_started/pynq_z1_setup.html#pynqz1-board-setup I downloaded the .img file into the Micro-SD card which I per-programmed from my PC using Etcher. The planted the Micro-SD card on the Digilent ARTY Z7 Dev Board.
The Jupyter Notebook is already installed in the PYNQ Z1 image file which is in the SD card.
I also tried to connect to the router network and it was also successful but my router is located in a hidden place above a large book shelf so I didn't want to leave the FPGA board there as I also had to connect the camera to the fpga.
So I created a static ip connection between my PC and the Digilent ARTY Z7 Dev Board. And also connected the USB camera and the HDMI cable to my PC monitor.
Accessing the FPGA board via jupyter Notebook from the SD Card.
The Setup is as below
The USB camera setup and HDMI with the Digilent ARTY Z7 Dev Board
My PC Setup. The Digilent ARTY Z7 Dev Board is powered from USB cable
Display image via USB Camera to HDMI display
Here I used the HDMI and camera code on the SD Card and used it to project the image on the PC
The camera is connected to the FPGA board. And it pointing to the picture on the wall held by a friend. All the details on how to run the code are given in the code and commented well.
Real time edge detection with the USB camera
Here I did real-time edge detection of the video and projected it on the PC display via HDMI cable. There is significant lag in the video output of the HDMI as can been seen below. I tried to change the settings for the video transfer to the HDMI output display to remove the video lag but ended up losing packets and so I dialed it back to the settings
After playing around with the HDMI resolution of the display and the camera mount on the Digilent ARTY Z7 Dev Board the setup worked somewhat.
Real time edge detection with the USB camera on Digilent ARTY Z7 Dev Board
Testing the Face Recognition Software
The test setup for the face recognition software. The image is sent via USB Camera to the HDMI on the PC.
In conclusion all tests available for the PYNQ Embedded Vision applications worked very well. Although it may take some time to get a hang of the the PYNQ setup and understand how controls work.