Embedded Vision on Digilent Zybo Z7Zybo Z7, Xilinx Zynq SoC Platform
Digilent host student design contest every year. The contest provides an opportunity to inspire future engineers in Europe. As we know, the automotive industry is leaning towards self-driving cars. The technology is evolving, and new sustainable and innovative tracking systems are created to make the road (and the passengers) safer. A student team from Transylvania University of Brasov leverage the power of Xilinx Zynq SoC and Digilent PCAMPCAM, 5MP camera sensor to create an Infra-Red Image Processing Unit. The team wants to use infra-red technology as a safe alternative to other types of detecting radars.
Let’s dive in and see how the project came to life.
Required Parts
The control platform for the Infra-Red processing unit is Digilent Zybo Z7Zybo Z7, Xilinx Zynq SoC Platform. The Zybo Zybo Z7's video-capable feature set, including a MIPI CSI-2 compatible PcamPcam connector, HDMI input, HDMI output, and high DDR3L bandwidth makes it as the perfect platform for the project. In addition, the student used an OV5647 night vision camera.
Hardware and Software Design
The team modify the embedded vision project example provided by Digilent. What they did was to add a second Video Direct Memory Access (VDMA) instance to split the screen to show both of the unprocessed image and the processed one. The interrupt for this handler is generated by the ir_filters module, at each end of the processed frame.
By doing so, the team made the Direct Memory Access (DMAs) as two circular buffers. This makes the buffer frame number increase and have a bigger gap between the read and write pointer. In that gap, the with memcpy instruction the original image is copied and overwrites the half of the processed one. The copy action must be completed before the read pointer gets to that memory zone. To make sure the read pointer will not be faster than the copy action, both read and write pointers where parked at the current buffer frame until the overwriting is completed. At the same time, the interrupt is disabled.
Algorithms implemented
•Dead/stuck pixel correction
•Median filter
•Edge detection
•Image smoothing
•Image sharpening
Did you like the project?
Discover more interesting projects made by students, using Zybo Z7Zybo Z7 and other Digilent devices, on https://digilentdesigncontest.com.
The community, consisting of students and professors replied with a positive feedback. The project is complex, and it had a lot of effort put into it. Just by understanding a flow of an existing project and extending it both hardware and software side is challenging, but it is always easier to do something from scratch.
Other big point is the interfacing of the Raspberry Pi camera. These products are widely spread in the market and the Raspberry Pi has a lot of different cameras with different resolutions, color space, functionalities. This project showcases that it is possible to connect any commercial camera with CSI-2 standard connector to the Zybo Z7Zybo Z7 board and make functional and innovative projects.
The architecture part is extensible the algorithm showcased are relatively simple ones, used today in preprocessing techniques for some beefy algorithm based on neural network for different type of detections mostly. But it is possible to replace or add an existing block to some more complicated algorithm.