-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Feature/enet image segmenter #784
Conversation
-segmentation results in /image_segmented -blended result with sensor /image_segmented_blended Added README
|
||
2. Clone ENEt Caffe fork in your home directory | ||
``` | ||
% git clone https://github.com/TimoSaemann/ENet.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since caffe-enet is contained in submodule, recursive option is necessary.
git clone --recursive https://github.com/TimoSaemann/ENet.git
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yk-fujii Done
% git clone https://github.com/TimoSaemann/ENet.git | ||
``` | ||
|
||
3. Follow the authors' instruction to complete the requisites to compile. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add authors' instruction link
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
Package renamed as suggested by @shinpei0208 |
Node renamed to image_segmenter_enet
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed but didn't run because I do not have CUDA 8 in my docker yet.
Two Qs:
- what is the best instruction to install CUDA 8?
- it is not clear to me which steps in here do I need to follow: https://github.com/TimoSaemann/ENet/tree/master/Tutorial?
std_msgs | ||
autoware_msgs | ||
sensor_msgs | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem with this in ROS is that you would also need to have these dependencies in package.xml file to correctly resolve dependencies when releasing this package. See: http://wiki.ros.org/catkin/package.xml:
"
Your system package dependencies are declared in package.xml. If they are missing or incorrect, you may be able to build from source and run tests on your own machine, but your package will not work correctly when released to the ROS community.
"
In other words, Autoware should really maintain 2 branches: jade and kinetic.
<build_depend>autoware_msgs</build_depend> | ||
<run_depend>std_msgs</run_depend> | ||
<run_depend>geometry_msgs</run_depend> | ||
<run_depend>autoware_msgs</run_depend> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you are missing:
cv_bridge
image_transport
roscpp
image_transport | ||
roscpp | ||
std_msgs | ||
autoware_msgs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you are never using:
std_msgs
autoware_msgs
So, remove?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm planning to use them in a future release. But, I agree, I'm not using them, I'll remove them.
#include <memory> | ||
#include <string> | ||
#include <utility> | ||
#include <vector> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see google style guide for order of includes. cafffe and opencv should go after system libs.
#include <utility> | ||
#include <vector> | ||
|
||
using namespace caffe; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do not use, see https://google.github.io/styleguide/cppguide.html#Namespaces
if (sample.size() != input_geometry_) | ||
cv::resize(sample, sample_resized, input_geometry_); | ||
else | ||
sample_resized = sample; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use {} also around one line control structures
@dejanpan Done.
I recommend using the official installer from NVIDIA https://developer.nvidia.com/cuda-downloads
Added further instructions to the README file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is OK.
Status
DEVELOPMENT
Description
This PR adds image segmentation capabilities to Autoware using ENet segmentation network.
Related Issue
Defined in autowarefoundation/autoware_ai#968
Todos
Steps to Test or Reproduce
Follow the README file in the ENet PAckage to install, compile the corresponding Caffe Fork and download pretrained models.
https://github.com/CPFL/Autoware/blob/feature/enet_image_segmenter/ros/src/computing/perception/detection/packages/enet_image_segmenter/README.md
Play a ROSBag containing image data, make sure it's being published in
/image_raw
or change the launch file accordingly or relay.Launch the node
The node will subscribe to
/image_raw
, it will publish/image_segmented
and/image_segmented_blended
as shown in:https://drive.google.com/open?id=0BzYuVrO9pnh6MmNHVjJZSzZnUGc
Successfuly compiled on Ubuntu 14.04 and 16.04