Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: frontiersin.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: perrettymea
  • License: agpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 78.7 MB
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

YOLO-WAL: Fluid-emission detection by Water-column Acoustics and a deep-Learning-approach

ifremer Image 2 Image 3
COUV
Neural network detections made on GHASS2 cruise water column data (Reson Seabat 7150)

YOLOv5-WAL is a YOLOv5-based deep learning supervised approach to automate the detection of fluids emitted from the seafloor (e.g. methane bubbles from cold seeps and liquid carbon dioxide from volcanic sites). It concerns the detection of fluids in water column images (echograms) acquired with multibeam echosounders. Several thousand annotated echograms from different seas and oceans and acquired during distinct surveys were used to train and test the deep-learning model. The tests were conducted on a dataset comprising hundreds of thousands of echograms i) acquired with three different multibeam echosounders (Kongsberg EM302 and EM122 and Reson Seabat 7150) and ii) characterized by varied water-column noise conditions related to sounder artefacts and the presence of biomass (e.g. fish, dolphins). This repository contains the code for inference with YOLOv5.

Models trained for fluid detection issued from several multibeam echosounders (Kongsberg EM122, EM302, Reson Seabat 7150) could be downloaded from SEANOE repository. This fluid detector was already used for near-real time acquisition detection during the MAYOBS23 (EM122 – 2022; Perret et al. 2023) and HAITI-TWIST (Seabat Reson 7150 - 2024) cruises.

How to install YOLOv5-WAL

Here is how to install the environment (assuming git is already a package in your anaconda distribution).

git clone https://github.com/perrettymea/YOLO-WAL-fluid-detection-WCI-data cd YOLO-WAL-fluid-detection-WCI-data cd requirements conda env create -f YOLOV5WAL.yml conda activate YOLOV5WAL

How to prepare multibeam data with GLOBE software (if necessary) for subsequent inference

Multibeam data are acquired in raw format (e.g, .all/.wcd, .kmall, .s7k datagrams). For inference with YOLOv5-WAL it is necessary to convert them to a Cartesian representation for each ping. This can be done using the GLOBE software. GLOBE (GLobal Oceanographic Bathymetry Explorer) is an innovative application for processing and displaying oceanographic data. GLOBE provides processing and display solutions for multi-sensor data (such as water column multibeam data). GLOBE can be downloaded here for Linux and Windows.

Manual method

Converting the raw file into a g3D file:

  • Load your raw file by clicking on: Data :arrowforward: Import :arrowforward:Load data file

  • Convert your raw file into XSF (following the SONAR-netcf4 convention for sonar data). Select xsf output format and where you want to save this new file.

export_xsf
Conversion from raw water column format to XSF format using GLOBE software
  • Convert the XSF file into G3D netcdf format (WC Polar Echograms) to obtain a cartesian representation
export_g3D
Conversion from XSF format to G3D format using GLOBE software

It is possible to configure: * Parameters for interpolation (from polar to cartesian representation) * Filtering for dB value, bottom detection, sidelobe, beam index, depth or across distance. We advise to use WCIs cut after bottom detection. * Subsampling * Layers you want to export: backscatter (mean, max). We do not advise to consider bacscatter_comp layers for this fluid detection case.

:heavycheckmark: This G3D contains the following information that you can access:

``` Groups: Group: [Ping number]

Variables: elevation: ('vector', 'position') float32 Attributes: units: meters longname: elevation standardname: elevation longitude: ('vector', 'position') float64 Attributes: units: degreeseast longname: longitude standardname: longitude latitude: ('vector', 'position') float64 Attributes: units: degreesnorth longname: latitude standardname: latitude backscattermean: ('height', 'length') float32 Attributes: units: dB longname: backscattermean standardname: backscatter_mean ```

This manual method must be used for all raw files before inference.

:arrow_forward:If you have software/code other than Globe that can extract pings from the water column and represent it as a 2D-cartesian-matrix format (numpy, as with g3D), you can direct it to the neural network for inference.

Bonus: Water-column visualization

GLOBE can also help you to visualize 2D water column data ping per ping by selecting the xsf file :arrowforward: Open with :arrowforward: Water Column 2D viewer.

Inference with YOLOv5-WAL: an example

Python code for inference can be run using the following line (models could be downloaded from SEANOE repository:

python inference_on_G3D.py --name_acquisition DEMO --confidence_threshold 0.3 --name_model GHASS2_Reson_Seabat.pt --dB_min 20 --dB_max 70

Parameters to be set for the inference

  • G3D: Path to the folder containing G3D files for inference (default: 'G3D')
  • results: Path to save inference results (default: 'RESULTS')
  • folder_model: Path to the folder containing model weights (default: 'NETWORKS')
  • name_acquisition: Name of the inference experiment (default: 'TEST_INFERENCE')
  • name_model: Name of the model file to use, including .pt extension (default: 'trainingtestwith_G3D.pt')
  • confidence_threshold: Threshold for discriminating detections (default: 0.3)
  • size_img: Size to resize images before inference, must be a multiple of 32 as detailed in YOLOv5 documentation (automatically resized if not) (default: 960)
  • dB_min: Minimum dB value for data normalization (default: -50)
  • dB_max: Maximum dB value for data normalization (default: 10)

dB_min and dB_max allow to normalize data for inference. Values below dB_min and above dB_max will be clipped to these values. You must fix these limits to properly see fluid echoes as it will fix your colour bar. In the case of inadequately defined dBmin/dBmax values, the resulting inference will be of poor quality. This is due to an excessive discrepancy between the features of the training and inference data. For more YOLOv5 training documentation see: YOLOv5 documentation

Results

terminal
Terminal interface during the inference execution.

(Here db_min and dB_max are very high, due to a Reson Seabat 7150 specificity, for a Kongsberg multibeam -60 (db_min) to -10 (db_max) could be appropriate values). Two folders are created, one with the images for detections and the other with the coordinates of the detections, with a subfolder per G3D file.

detection
Example of a detection generated through YOLOv5 inference on a Reson Seabat 7150 multibeam echogram.

The coordinates of the detections correspond to the mid-point of the detection box and can be used for visualization for instance in a Geographic Information System. The following parameters are recorded for each detection:

| Parameter | Description | |-----------------------------------|---------------------------------------------------------| | Longitude (WGS84) | Longitude of the detected object (centre of the box). | | Latitude (WGS84) | Latitude of the detected object (centre of the box). | | Average Depth | Average water depth calculated as $\frac{(h{\text{min box}} + h{\text{max box}})}{2}$ | | File Name | Name of the file where the detection occurred. | | Ping | The specific ping number associated with the detection. | | Box Coordinates | Coordinates of the bounding box in the image (in pixels). | | Confidence Index | Confidence score of the detection from the model. |

This file (in coorddetectionscenter folder) can be loaded for instance in GLOBE using data > Import > Load data file. Then select “point cloud” to describe this data and select ASCII parameters.

ASCIIconfig
Configuration settings to load detection coordinates in Globe

Then right-click on your point-cloud file and "Go-to" to visualize these detections. Here a visualization of fluid detections with the Water column 2D Viewer player:

GIF_GLOBE_detection
WC 2D player with fluid echoes on Water Column Images, centre of boxes detected are in red

:star: For more details please refer to the following resources: * :newspaper: Deep-learning-based detection of underwater fluids in multiple multibeam echosounder data (Rules for training set composition) * :newspaper:Knowledge transfer for deep-learning gas-bubble detection in underwater acoustic water column data(How to train neural network without fluid echograms from the multibeam echosounder you use) * :computer: YOLOv5 documentation * :computer:GLOBE

Acknowledgements

The GAZCOGNE1 and PAMELA-MOZ01 marine expeditions were part of the PAMELA project and were co-funded by TotalEnergies and IFREMER for the exploration of continental margins. The GHASS2 marine expedition was co-funded by the Agence Nationale de la Recherche for the BLAck sea MEthane (BLAME) project and IFREMER. MAYOBS23 was conducted by several French research institutions and laboratories, namely IPGP, CNRS, BRGM, and IFREMER. The project was funded by the Mayotte volcanological and seismological monitoring network (REVOSIMA), a partnership between IPGP, BRGM, OVPF-IPGP, CNRS, and IFREMER. This study is part of a PhD project funded by IFREMER and the Brittany region through an ARED grant.

Licence

This repository is under AGPL-3.0 as YOLOv5 from Ultralytics. This OSI-approved open-source licence is ideal for students and enthusiasts, promoting open collaboration and knowledge sharing. See the licence file for more details.

Citation

If you use this work, include SEANOE repository and other relevant citations and please cite it as:

Perret, T., Le Chenadec, G., Gaillot, A., Ladroit, Y., Dupré, S. (2025). YOLO-WAL: Fluid-emission detection by Water-column Acoustics and a deep Learning approach (v1.0.2). Zenodo. doi: 10.5281/zenodo.14712210

Contact

:mailboxwithno_mail: For questions or support, please contact tymea.perret@ifremer.fr.

Owner

  • Name: Perret Tyméa
  • Login: perrettymea
  • Kind: user
  • Location: Brest

Étudiante ingénieur ENSTA Bretagne Promo 2022 Hydrographie Océanographie

Citation (CITATION.cff)

cff-version: 1.0.1
message: "If you use this software, please cite it using the following metadata."
title: "WAL: Fluid emission detection by Water-column Acoustics and deep Learning-approach"
authors:
  - family-names: "Perret"
    given-names: "Tyméa"
    orcid: "https://orcid.org/0009-0007-1336-4304"
    affiliation: "Ifremer, GeoOcean, Plouzané, France"
  - family-names: "Le Chenadec"
    given-names: "Gilles"
    orcid: "https://orcid.org/0000-0003-0868-2782"
    affiliation: "ENSTA Bretagne, LABSTICC, Brest, France"
  - family-names: "Gaillot"
    given-names: "Arnaud"
    affiliation: "Ifremer, NSE, Plouzané, France"
  - family-names: "Ladroit"
    given-names: "Yoann"
    orcid: "https://orcid.org/0000-0002-5723-9501"
    affiliation: "Kongsberg Discovery, Ocean Science, Horten, Norway"
  - family-names: "Dupré"
    given-names: "Stéphanie"
    orcid: "https://orcid.org/0000-0002-1021-8383"
    affiliation: "Ifremer, GeoOcean, Plouzané, France"
date-released: 2025-01-21
version: "1.0.1"
doi: "10.5281/zenodo.14712211" 
url: "https://github.com/perrettymea/YOLO-WAL-fluid-detection-WCI-data"
repository-code: "https://github.com/perrettymea/YOLO-WAL-fluid-detection-WCI-data"
keywords:
  - "Multibeam echosounder"
  - "Deep Learning"  
  - "Fluid emission"
  - "You Only Look Once (YOLO)"
  - "Automated Processing"
  - "Water Column Data"
  - "Underwater acoustic"

GitHub Events

Total
  • Create event: 5
  • Issues event: 1
  • Release event: 5
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 17
  • Public event: 2
  • Pull request event: 1
Last Year
  • Create event: 5
  • Issues event: 1
  • Release event: 5
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 17
  • Public event: 2
  • Pull request event: 1

Dependencies

yolov5/utils/docker/Dockerfile docker
  • pytorch/pytorch 2.0.0-cuda11.7-cudnn8-runtime build
yolov5/utils/google_app_engine/Dockerfile docker
  • gcr.io/google-appengine/python latest build
yolov5/pyproject.toml pypi
yolov5/requirements.txt pypi
  • Pillow >=9.4.0
  • PyYAML >=5.3.1
  • gitpython >=3.1.30
  • matplotlib >=3.3
  • numpy ==1.23.5
  • opencv-python >=4.1.1
  • pandas >=1.1.4
  • psutil *
  • requests >=2.23.0
  • scipy >=1.4.1
  • seaborn >=0.11.0
  • setuptools >=65.5.1
  • thop >=0.1.1
  • torchvision >=0.9.0
  • tqdm >=4.64.0
  • ultralytics >=8.0.232
  • wheel >=0.38.0
yolov5/utils/google_app_engine/additional_requirements.txt pypi
  • Flask ==2.3.2
  • gunicorn ==19.10.0
  • pip ==23.3
  • werkzeug >=3.0.1