Home

Awesome

Underwater Color Enhancement Method

Dartmouth Reality and Robotics Lab

Authors: Monika Roznere and Alberto Quattrini Li

NOTE: Current application should work well. There are some small issues that need to dealt with, see below.

Related Publications

M. Roznere and A. Quattrini Li, “Real-time model-based image color correction for underwater robots,” IROS, 2019. PDF

License

If you use our underwater color enhancement application in an academic work, please cite:

@inproceedings{RoznereColor2019,
  title={Real-time Model-based Image Color Correction for Underwater Robots},
  author={Monika Roznere and Alberto {Quattrini Li}},
  booktitle={Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems},
  year={2019}
 }

Work in Progress

Overall:

New Model Method:

Getting Started

This package has been tested on Ubuntu 16.04.

Set up your catkin workspace

mkdir -p catkin_ws/src
cd catkin_ws/src/
catkin_init_workspace

Install

Clone repository:

git clone https://github.com/dartmouthrobotics/underwater_color_enhance

Clone and build this repository as well:

git clone https://github.com/dartmouthrobotics/ORB_SLAM2
cd ORB_SLAM2/
cd Thirdparty/
git clone https://github.com/stevenlovegrove/Pangolin
cd Pangolin/
mkdir build
cd build/
cmake ..
cmake --build .
cd ../../../
chmod +x build.sh
./build.sh
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Examples/ROS/ORB_SLAM2ROS
chmod +x build_ros.sh
./build_ros.sh

Third-party Packages

Run:

cd underwater_color_enhance/
mkdir third-party
cd third-party/

In the third-party directory, clone these repositories:

git clone https://github.com/jbeder/yaml-cpp
git clone https://github.com/wxFormBuilder/ticpp
git clone https://github.com/davisking/dlib
<!-- In its CMakeLists.txt, comment out: ``` ### Extras if(YAML_CPP_BUILD_TESTS) enable_testing() add_subdirectory(test) endif() if(YAML_CPP_BUILD_TOOLS) add_subdirectory(util) endif() ``` -->

Build

catkin_make
source devel/setup.bash

Configuration

config/image_config.yaml (note all paths are with respect to $ROOT_PATH, see image_color_enhance.launch):

<br><br> config/ros_config.yaml: <br><br> Note: optimize option will not color correct any images. Instead it will go through and calculate optimized attenuation values, which can then be used later through the prior data option. <br><br>

Run

For one image (no ROS implementation), based on the parameters in image_config.yaml:

roslaunch underwater_color_enhance image_color_enhance.launch

For rosbag files, based on the parameters in ros_config.yaml:

roslaunch underwater_color_enhance ros_color_enhance.launch