We are proud to announce the release of a PYNQ - Alveo Edition project in collaboration with NECSTLab, Politecnico di Milano: 5-point Relative Pose Problem for PYNQ .
The purpose of this application is to identify the possible relative camera motions given five matching points from two calibrated views. This is a classical problem in computer vision, which in this case is tackled using Nistér’s algorithm, first presented by David Nistér in this paper.
The project is a porting of the original submission from the NECSTLab at Politecnico di Milano that won the Xilinx European Open Hardware Design Contest in 2018, for the AWS EC2 F1 Category . You can watch their presentation video by clicking the thumbnail below to get an overview of how it works.
We released the code as open source , with the code available on GitHub, and we made available a pip-installable Python package that includes notebooks and overlay to check out the project in an easy way. The project is also listed in the official Community Page on our website pynq.io, under the Alveo section, where you can also find more projects to try out.
Quick Start
To get started, Install the fivepoint-pynq
package using pip
, then get a copy of the notebooks and run Jupyter. All of that can be achieved with only 4 commands :
pip install fivepoint-pynq
pynq get-notebooks 5point
cd pynq-notebooks
jupyter notebook
Project structure and included notebooks
The projects is divided into two parts, a server and a client . They communicate through usage of websockets :
- The server side solves the relative pose problem provided by the client. It is also where the FPGA accelerator is run. The related notebook is available in the
5point\server
folder once you have retrieved the notebooks using thepynq get-notebooks
command. - The client side provides the user interface for running the application and is responsible for sending input data to the server. The related notebook is available in the
5point\client
folder once you have retrieved the notebooks using thepynq get-notebooks
command. Example data to run the client demo can be downloaded from the web following the get-demo-data notebook, also available in the5point\client
folder.
Resources
More info on the original Open Hardware submission can be found at the following links: