HsiaoRay / HOG-Human-Detector

HOG Human Detector

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C++ Boilerplate

Build Status Coverage Status

Overview

Perception is the key to intelligent behavior in Robotics, and situational awareness is crucial for safe operation in the real and dynamic environments. Our team propose a project to implement the perception module in Acme robotic system. Our design utilizes techniques of Harr cascade, HOG feature and SVM classifier for human detection upon images.

Haar cascade is a method which uses a cascade function to train from positive and negative images, and use the function to detect objects with similar features. Histograms of Oriented Gradients (HOG) is a feature which calculates frequency of gradient orientation in local part of an image. It allows the same object to produce similar feature descriptor whenviewed under different conditions. The Support Vector Machine (SVM) represents inputs as points in a mapped space and calculate largest decision boundary for each category. The SVM model takes features from Harr cascade and HOG feature, and creates a classifier to classify image objects.

After the processing input image with the above HOG detection algorithm, the program displays bounding boxes of detected humans, and prints the position of each bounding box. The printed bounding box positon resembles the coordinates between the humans and the robot. The software is implemented with C++ on Ubuntu 16.04. Libraries such as OpenCV are applied to enhance image processing.

Statement of Work

  • Create detection module and declare classes, class variables and class methods
  • Design unit tests for the module and each method
  • Implement methods to handle input image dataset and down sample images
  • Implement human detection algorithm using OpenCV library
  • Implement methods to calculate object location in robot reference and display human position and their sizes
  • Verify unit testing
  • Create comments using Doxygen style

Output Result

OutputImage1

Licence

  • Mit Licence
Copyright <2018> <Chin-Po Tsai> <Chien-Te Lee>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions
of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

Dependencies

  • Ubuntu 16.04
  • OpenCV 3.3
  • CMake

Standard install via command-line

  • clone from repository
  • create build folder
  • build program
git clone --recursive https://github.com/CP-TSAI/ENPM808X-Midterm-Project.git
cd <repository>
mkdir build
cd build
cmake ..
make
Run tests: ./test/cpp-test
Run program: ./app/shell-app

Run Demo Example

  • in /build directory
./app/shell-app

Run Unit Tests

  • in /build directory
./test/cpp-test

Pair Programming and SIP Process

The product backlog, iteration backlog, and worklog googlesheet is at: Product Backlog

About

HOG Human Detector

License:MIT License


Languages

Language:C++ 58.1%Language:CMake 27.4%Language:Python 14.5%