Rnicklas-tfg

From jderobot
Jump to: navigation, search

Project Card[edit]

Project Name: Optimization with CUDA

Author: Richard Nicklas Rzepka [r.nicklas@alumnos.urjc.es / rnicklasr@gmail.com]

Academic Year: 2017/2018

Degree: Degree in Telematics Engineering

GitHub Repositories: [1]

Tags: CUDA, Optimization, C, C++, GPU

Project Scope [edit]

CUDA[2] gives us the ability to harness the power of parallel computing provided by Nvidia GPUs. In this project I'll use this platform and application programming interface to achieve major improvements in algorithm efficiency and use of resources.

Most of the testing will be done in an NVidia GPU "GeForce GTX 750 Ti" running CUDA Version 9.0 and CUDA Capability Major/Minor version 5.0

Week 1[edit]

Tasks:

Number Task Comments
1 Setup Development Environment
2 Test sample code
  • Setup Development Environment

As an IDE I will be using Nsight Eclipse Edition Version: 7.5 included in the CUDA Toolkit, it provides C/C++ support and also really useful diagnostic and performance tools.

I also will be using the latest CUDA Toolkit[3] stable release to date version 9.0, which includes everything needed to use GPU and graphics development.

Week 2[edit]

Tasks:

Number Task Comments
1 Install/Setup JdeRobot, run examples. Examples: 1.1,1.3,3.1,4.1 & 10
2 Create simple JdeRobot Component/Node Using OpenCV to calculate Keypoints from sample images/QT to visualize.
3 Modify simple JdeRobot Component/Node Implement different image pairing algorithms
  • Install/Setup JdeRobot, run examples.

JdeRobot installation is pretty straightforward, following the steps shown in http://jderobot.org/Installation, tested JdeRobot capabilities executing some examples from http://jderobot.org/index.php/Examples

Simulated ArDrone + UAVViewer

  • Create simple JdeRobot Component/Node

2.0 Running some openCV code that let you take photos from video feed and calculates their Keypoints via FAST

Extracting Keypoints

2.1 Keypoint/descriptor extraction with ORB(Oriented FAST and Rotated BRIEF) and matching with FLANN ( Fast Approximate Nearest Neighbor Search Library )

Keypoint Matching

2.2 Image matching with FLANN on live camera feed

Live Keypoint Matching