|
5 | 5 |
|
6 | 6 | A C++ module to detect and track humans which outputs location information directly in a robot's reference frame.
|
7 | 7 |
|
| 8 | +## Authors |
| 9 | + |
| 10 | + - Arunava Basu (Navigator) |
| 11 | + - Aditi Ramadwar (Driver) |
| 12 | + |
8 | 13 | ## Introduction
|
9 |
| -This repository contains a robust human obstacle detector and tracker using a monocular camera, directly usable in a robot’s reference frame. |
| 14 | +Human detection or person detection is the computer vision task of the localization and classification of human being(s) in an image. This is a key part in robotic applications for various reasons such as safety, obstacle avoidance, collaborative robotics, etc. |
| 15 | + |
| 16 | +We aim to design and deliver a robust robust human obstacle detector and tracker using a monocular camera, directly usable in a robot’s reference frame according to the requirement specifications provided to us by ACME robotics's RnD division for integration into a future product. |
| 17 | + |
| 18 | +Our system is built using C++ and will employ the robust YOLOv3 neural network model trained on the COCO dataset for human detection and tracking as it is one of the most accurate real-time object detection algorithms. A one time calibration is performed to calculate certain calibration metrics for the transformation of location info into the camera frame. An image from a monocular camera is pre-processed and passed to the model which outputs the location info in the image frame. It is then converted to the camera frame by using the calibration constants and then transformed into the robot's frame. |
| 19 | + |
| 20 | +## Project Collaterals |
| 21 | +The Agile Iterative Process will be used for the development of this system consisting of two sprints. |
| 22 | + |
| 23 | +The project proposal can be found [here](https://github.com/aditiramadwar/Human_Detection_Tracking-CPP/blob/Phase_1/documents/Human%20Detector%20&%20Tracker%20-%20Proposal.pdf). |
| 24 | +The quad chart can be found [here](https://github.com/aditiramadwar/Human_Detection_Tracking-CPP/blob/Phase_1/documents/Quad_Chart.pdf). |
| 25 | +The overall backlog table and the tables for each sprints can be found [here](https://docs.google.com/spreadsheets/d/1tjJKUd9B4bBSYAHnrwuMjWNl_lUBmqeB6lw7iTNKZSg/edit?usp=sharing). |
| 26 | +## Requirements |
| 27 | +| Name | Version | |
| 28 | +| :--- | :---: | |
| 29 | +| C++ | 14++ | |
| 30 | +| CMake | min 3.2.1 | |
| 31 | + |
| 32 | +Continuous integration is tracked by using Travis CI and code coverage is tracked using coveralls. |
| 33 | +## Dependencies |
| 34 | + |
| 35 | +| Name | Version | License | |
| 36 | +| :--- | :---: | ---: | |
| 37 | +| OpenCV | 4.5.1 | [Apache 2](https://github.com/opencv/opencv/blob/master/LICENSE) | |
| 38 | +| Eigen | 3.X.X | [MPL2](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) | |
| 39 | +| GTest | 1.X.X | [BSD 3-Clause](https://github.com/google/googletest/blob/master/LICENSE) | |
| 40 | + |
| 41 | +Run this command in the root directory to install the dependencies : |
| 42 | + |
| 43 | + chmod a+x install_dependencies.sh |
| 44 | + ./shell_scripts/install_dependencies.sh |
| 45 | + |
| 46 | + |
| 47 | +## System Architecture |
| 48 | +The following shows the activity diagram for our proposed schema : |
| 49 | +<img alt="activity" src="assets/activity.png" width="75%" /> |
| 50 | + |
| 51 | +*Fig 1 : Activity Diagram* |
10 | 52 |
|
11 |
| -The initial design is as follows : |
| 53 | +The corresponding class diagram can be found [here](https://github.com/aditiramadwar/Human_Detection_Tracking-CPP/blob/Phase_1/documents/Class_Diagram.pdf). |
| 54 | +## Testing |
| 55 | +Unit Testing will be used to test each submodule and ensure complete code coverage. For this Google Gtest will be leveraged and identical test classes and methods will be created with minimal modification in order to facilitate testing. |
12 | 56 |
|
13 |
| -<img alt="design" src="assets/design.gif" width="75%" /> |
| 57 | +Additionally, a small test subset of the COCO test data will be used to validate model accuracy. |
14 | 58 |
|
15 |
| -*Fig 1 : High Level Arhitecture Design* |
| 59 | +## Building without code coverage |
| 60 | +Execute these commands in the root folder : |
16 | 61 |
|
17 |
| -## Currently under development in the "development" branch [here](https://github.com/llDev-Rootll/Human_Detection_Tracking-CPP/tree/development) |
| 62 | + chmod a+x shell_scripts/build_without_coverage.sh |
| 63 | + ./shell_scripts/build_without_coverage.sh |
18 | 64 |
|
19 |
| -## Building for code coverage |
| 65 | +## Building with code coverage |
| 66 | +Execute these commands in the root folder : |
20 | 67 | ```
|
21 | 68 | sudo apt-get install lcov
|
22 |
| -cmake -D COVERAGE=ON -D CMAKE_BUILD_TYPE=Debug ../ |
23 |
| -make |
24 |
| -make code_coverage |
| 69 | +chmod a+x shell_scripts/build_with_coverage.sh |
| 70 | +./shell_scripts/build_with_coverage.sh |
25 | 71 | ```
|
0 commit comments