deep-diver-following icon indicating copy to clipboard operation
deep-diver-following copied to clipboard

Deep learning-based diver detection and tracking modules. #RAL2018 #ICRA2019

This is a container for an autonomous diver-following project. Deep object detection models are used for diver (and other objects such as ROV) detection. A simplified version of that is utilized for autonomous tracking (and following) of a single diver by an underwater robot. The ROS version, tested on Aqua-8 robot, is provided in the diver_following_cnn folder.

  • Paper: https://ieeexplore.ieee.org/document/8543168
  • Dataset information: https://onlinelibrary.wiley.com/doi/full/10.1002/rob.21837
  • Frozen graph of a trained (SSD MobileNet) model: provided in model_data folder
  • Weights for the CNN-based model proposed in the paper: available on request
  • Important packages: Python 2.7, OpenCV 3, TensorFlow 1.11.0 (with object detection API)

Testing the detector

Use the test_detector.py file for testing detection performances on individual images.

Single diver Multiple divers Divers and ROVs
det-7 det-7 det-1

Testing the diver-tracker

For testing diver-tracking on a video or sequences of images, use the test_diver_tracker.py file. A couple of videos and image sequences are provided in the test_data folder. Change the argument values to test other files.

Demo: https://youtu.be/9xukzT8dqzQ

frame t frame t+n frame t+2n
det-86 det-96 det-106
det-1118 det-1138 det-1158

ROS version

  • The diver_following_cnn folder contain the ROS-kinetic package version
  • This version is currently running on the Aqua MinneBot robot (more details: http://irvlab.cs.umn.edu)
  • Feel free to cite the paper you find anything useful: https://ieeexplore.ieee.org/document/8543168
@article{islam2018towards,
  title={{Toward a Generic Diver-Following Algorithm: Balancing Robustness and Efficiency in Deep Visual Detection}},
  author={Islam, Md Jahidul and Fulton, Michael and Sattar, Junaed},
  journal={{IEEE Robotics and Automation Letters (RA-L)}},
  volume = {4},
  number = {1},
  pages = {113--120},
  year={2018},
  publisher={IEEE}
}