Giter VIP home page Giter VIP logo

stereo-vision-fpga-1's Introduction

Binocular Stereo Vision FPGA System

This project implements a binocular stereo vision system on an FPGA platform. It uses a binocular module to capture images from different positions, caculates the positional deviation between the corresponding points in these two images, and outputs the diparity diagram and the depth information on a HDMI monitor.

This project is originally designed for a student contest in the 2019 SEU-Xilinx International Summer School.

Sincere appreciation to Xilinx for sponsoring this project.

Quick Instructions

Here are instructions about how to setup this stereo vision system on your FPGA board.

Prerequisites

  • Xilinx Vivado (including SDK & HLS) 2018.2
  • PYNQ-Z2 Development Board
  • A binocular vision module with two OV5640 cameras
  • A HDMI monitor

This project is developed and tested with Xilinx Vivado Suite 2018.2, but it should work with newer versions.

The PYNQ operating system is not used in this project, so you can port this project to other ZYNQ platforms at will.

This PYNQ-Z2 board has only two PMOD interfaces, so we connect the FPGA with the binocular module by the Raspberry PI GPIOs.

Generate HLS IPs

The stereo vision component is written in Vivado HLS, so please follow these steps to generate and export the IP core.

All the relevant HLS C++ files can be found in \$REPO_PATH/hls/src.

A Tcl script named make.tcl is included in \$REPO_PATH/hls. You can use vivado_hls to execute it in the Vivado HLS Prompt.

vivado_hls $REPO_PATH/hls/make.tcl

This project will create a HLS project in \$REPO_PATH/work/sv_hls, and you need to extract the exported IP to the IP repository folder (\$REPO_PATH/ip_repo). The following Vivado building scripts will search for third-part and user-defined IP cores in this folder.

Build Vivado Project

You can "source" scripts in your Vivado Tcl Console to build the Vivado project. These scripts will import RTL files, third-part IPs, SDK C++ files and other necessary files.

set argv [list project=sv_fpga sdk=yes version_override=yes]
set argc [llength $argv]
source "$REPO_PATH/hw/make.tcl" -notrace

Due to the maximum path length limitation on Windows (<260), do NOT specify a very long project name. The default building path is \$REPO_PATH/work/\$PROJ_NAME.

Contributors

This is an open-source project, so if you want to contribute, just open issues and create pull-requests.

stereo-vision-fpga-1's People

Contributors

zhutmost avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.