All Projects → zhutmost → stereo-vision-fpga

zhutmost / stereo-vision-fpga

Licence: other
Real-time binocular stereo vision FPGA system with OV5640 cameras

Programming Languages

tcl
693 projects
VHDL
269 projects
C++
36643 projects - #6 most used programming language
Verilog
626 projects
c
50402 projects - #5 most used programming language
objective c
16641 projects - #2 most used programming language
SystemVerilog
227 projects

Projects that are alternatives of or similar to stereo-vision-fpga

hlsclt
A Vivado HLS Command Line Helper Tool
Stars: ✭ 35 (+75%)
Mutual labels:  fpga, vivado-hls
Semantic-Mono-Depth
Geometry meets semantics for semi-supervised monocular depth estimation - ACCV 2018
Stars: ✭ 98 (+390%)
Mutual labels:  stereo-vision
oscimpDigital
OscillatorIMP ecosystem for the digital characterization of ultrastable oscillators and Software Defined Radio (SDR) frontend processing
Stars: ✭ 41 (+105%)
Mutual labels:  fpga
DSGN
DSGN: Deep Stereo Geometry Network for 3D Object Detection (CVPR 2020)
Stars: ✭ 276 (+1280%)
Mutual labels:  stereo-vision
UAV-Stereo-Vision
A program for controlling a micro-UAV for obstacle detection and collision avoidance using disparity mapping
Stars: ✭ 30 (+50%)
Mutual labels:  stereo-vision
PatchMatchCuda
The PatchMatch stereo match algorithm implemented by CUDA.
Stars: ✭ 32 (+60%)
Mutual labels:  stereo-vision
icestick-lpc-tpm-sniffer
FPGA-based LPC bus sniffing tool for Lattice iCEstick Evaluation Kit
Stars: ✭ 41 (+105%)
Mutual labels:  fpga
openarty
An Open Source configuration of the Arty platform
Stars: ✭ 93 (+365%)
Mutual labels:  fpga
hdelk
Web-based HDL diagramming tool
Stars: ✭ 51 (+155%)
Mutual labels:  fpga
karuta
Karuta HLS Compiler: High level synthesis from prototype based object oriented script language to RTL (Verilog) aiming to be useful for FPGA development.
Stars: ✭ 89 (+345%)
Mutual labels:  fpga
fmh gpib core
GPIB IEEE 488.1 core
Stars: ✭ 15 (-25%)
Mutual labels:  fpga
amaranth-soc
System on Chip toolkit for Amaranth HDL
Stars: ✭ 40 (+100%)
Mutual labels:  fpga
Unsupervised-Adaptation-for-Deep-Stereo
Code for "Unsupervised Adaptation for Deep Stereo" - ICCV17
Stars: ✭ 59 (+195%)
Mutual labels:  stereo-vision
328eforth
328eForth for Arduino with mods for coinForth
Stars: ✭ 21 (+5%)
Mutual labels:  fpga
Comparison-of-Disparity-Estimation-Algorithms
Implementation of simple block matching, block matching with dynamic programming and Stereo Matching using Belief Propagation algorithm for stereo disparity estimation
Stars: ✭ 46 (+130%)
Mutual labels:  stereo-vision
TART
Transient Array Radio Telescope
Stars: ✭ 20 (+0%)
Mutual labels:  fpga
rodinia
AGM bitstream utilities and decoded files from Supra
Stars: ✭ 21 (+5%)
Mutual labels:  fpga
FpOC
FPGA-based Field Oriented Control (FOC) for driving BLDC/PMSM motor.
Stars: ✭ 138 (+590%)
Mutual labels:  fpga
FPGA NTP SERVER
A FPGA implementation of the NTP and NTS protocols
Stars: ✭ 27 (+35%)
Mutual labels:  fpga
eddr3
mirror of https://git.elphel.com/Elphel/eddr3
Stars: ✭ 33 (+65%)
Mutual labels:  fpga

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].