Skip to content

A Hyperspectral Underwater Target Detection Method Using Bathymetric Model

Notifications You must be signed in to change notification settings

Jiaxuan2021/Transfer-UTD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Hyperspectral Underwater Target Detection Method Using Bathymetric Model


Acknowledgements

This code is modified from TUTDF. I have adjusted and modified the code to make it runnable with a single command.

Reference:Li, Zheyong, et al. "A transfer-based framework for underwater target detection from hyperspectral imagery." Remote Sensing. 2023.

Introduction

Hyperspectral underwater target detection is a promising and challenging task in remote sensing image processing. The main difference between hyperspectral underwater target detection and hyperspectral land-based target detection is the spectral distortion caused by the underwater environment. Addressing this distortion is the primary challenge in hyperspectral underwater target detection.

We utilize the following bathymetric model to synthetic underwater target spectra using for training.

$$ r(\lambda) = r_{\infty}(\lambda) \left( 1 - e^{-(k_d(\lambda) + k^c_u(\lambda))H} \right) + \frac{r_B(\lambda)}{\pi} e^{-(k_d(\lambda) + k^b_u(\lambda))H} $$

Reference:Lee, Zhongping, et al. "Hyperspectral remote sensing for shallow waters. I. A semianalytical model." Applied optics. 1998.

The detection algorithm framework is shown in the figure below.

Framework

To solve the above bathymetric model, we need to estimate the inherent optical properties (IOPs) of the water. Here, we use IOPE-Net for this purpose. Which is implemented by lizheyong.

Reference:Qi, Jiahao, et al. "Hybrid sequence networks for unsupervised water properties estimation from hyperspectral imagery." IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing. 2021.

Then, use the bathymetric model to synthesize underwater target spectra as positive samples and randomly select spectra as negative samples for training. Finally, test on the input hyperspectral images.


Dataset

Due to the difficulty of deploying underwater targets and the high cost of data collection, research in this area has predominantly relied on simulated data. To advance the study of underwater target detection in real-world scenarios, we collected a dataset of real underwater scenes and conducted experiments on this data. The deployed underwater target is an iron plate, and the target's prior spectral data were collected onshore.

Framework

The River Scene data sets was captured by Headwall Nano-Hyperspec imaging sensor equipped on DJI Matrice 300 RTK unmanned aerial vehicle, and it was collected at the Qianlu Lake Reservoir in Liuyang (28◦18′40.29′′ N, 113◦21′16.23′′ E), Hunan Province, China on July 31, 2021.

  • Download the datasets from here, put it under the folder dataset.

  • Dataset format: mat

Framework

  • River Scene1: 242×341 pixels with 270 spectral bands

  • River Scene2: 255 × 261 pixels with 270 spectral bands

  • River Scene3: 137 × 178 pixels with 270 spectral bands

  • Simulated Data: The data set has a spatial resolution of 200 × 200 pixels, with wavelength coverage from 400 to 700 nm at 150 spectral bands.

  • Ningxiang & Ningxiang2: The Ningxiang dataset was collected in a reservoir with high mineral content and significant sediment, which may make detection challenging.

Keys:

  • data: The hyperspectral imagery contains underwater targets
  • target: The target prior spectrum collected on land
  • gt: The ground truth of underwater target distribution

Training

  1. Modify train.py
  2. Run python train.py

Training for new dataset need to generate NDWI mask (If land areas are included).

NDWI Water Mask (require gdal): You can check out the water_mask\NDWI.py file in another project NUN-UTD

  • water -- 0
  • land -- 255
  • selected bands get from envi
  • GREEN.tif: green band 549.1280 nm
  • NIR.tif: near-infrared band 941.3450 nm

Testing

  1. Modify pred.py
  2. Run python pred.py

You can download my model weights from here, put it in data_temp folder.

Note

According to the implementation of the original code, the number of neurons in the linear1 layer specified in the preprocess.py file may need to be adjusted.


There has been limited research in this field, and many challenges remain in applying these methods to real-world scenarios. We sincerely hope that this work contributes positively to the field, despite the theoretical and practical limitations that still exist. If you have any concerns, please do not hesitate to contact [email protected].

About

A Hyperspectral Underwater Target Detection Method Using Bathymetric Model

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages