Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable OpenVINO option for GPD #47

Merged
merged 6 commits into from
Sep 6, 2018
Merged

Conversation

sharronliu
Copy link

I've spent some efforts to enable this algorithm with OpenVINO technology as an option. https://software.intel.com/en-us/openvino-toolkit

  • A build option "USE_OPENVINO" is added to enable OpenVINO for GPD
  • A launch option "device" is added to specify the target device to execute grasp detection
    By default, "USE_OPENVINO=OFF" and "device=0 (CPU)".

I tested my patches with 15 channels, single view.

Sharron LIU added 2 commits September 4, 2018 11:15
This patch added the OpenVINO models for grasp detection.
The OpenVINO models are converted from the original Caffe models
by OpenVINO Model Optimizer (MO), following the process here:
https://software.intel.com/en-us/articles/OpenVINO-InferEngine#inpage-nav-8-1-2

Signed-off-by: Sharron LIU <sharron.liu@intel.com>
This patch added CMake configures for openvino:
+ build option "USE_OPENVINO" added to enable openvion
+ message added to remind where to install openvino toolkit
+ configure "MODELS_DIR" added to specify the location of openvino models
+ split "caffe dependency" and "openvino dependency", so that each dependency
  can be added per build option
+ build flag "c++11" added, which is required by ROS and OpenVINO

Signed-off-by: Sharron LIU <sharron.liu@intel.com>
This patch added "device" option and removed "use_gpu" option.
The option "device" extends the target devices beyond gpu, as mentioned
in its documents:
[0: CPU]|1:GPU|2:VPU|3:FPGA

Signed-off-by: Sharron LIU <sharron.liu@intel.com>
Sharron LIU added 2 commits September 6, 2018 10:47
This patch updated the "GraspDetector" to use the base Classifier.
The base Classifier was created as a shared pointer, which will be
released by system. Thus no need to explitly release "classifier_"
in the destructor "~GraspDetector()".

The base Classifer will create the right classifier (Caffe or OpenVINO)
based on build option.

The Caffe Classifer is modified to be derived from the base Classifer.

Signed-off-by: Sharron LIU <sharron.liu@intel.com>
This patch tells the steps to enable openvino:
+ guides to install OpenVINO
+ guides to verify OpenVINO installation
+ build GPD with OpenVINO
+ launch GPD with target device

Signed-off-by: Sharron LIU <sharron.liu@intel.com>
This patch contains headers and sources for grasp detection with OpenVINO.
An OpenVINO Classifier is added to manage the detection with OpenVINO
InferenceEngine (IE), following the process defined here:
https://software.intel.com/en-us/articles/OpenVINO-InferEngine#inpage-nav-8-1-2

An commone Classifier is added, as an abstract base class, to create the
specific classifier (Caffe Classifier, or OpenVINO Classifier) per build option
"USE_OPENVINO".

Signed-off-by: Sharron LIU <sharron.liu@intel.com>
@atenpas
Copy link
Owner

atenpas commented Sep 6, 2018

Awesome! Thank you for contributing!

@atenpas atenpas merged commit 11ebd16 into atenpas:master Sep 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants