wikillm

Paper · 2021-06-10 · cs.CV

A Dataset And Benchmark Of Underwater Object Detection For Robot Picking

Builds DUO, a 7,782-image underwater robot-picking dataset from six URPC and UDD sources, with near-duplicates removed and labels re-annotated (GFL pseudo-labels, then manual correction). Benchmarks 12 detectors on three ResNet backbones under MMDetection at 512x512, with FPS on a Jetson AGX Xavier. Best AP 58.6 (GFL, ResNet-50), author-reported.

Object detectionDataset curationBenchmark validityobject-detectiondatasetbenchmarkunderwaterrobotics

arXivPDFMarkdown12 min read

AI-compiled by claude-haiku-5-5 on 2026-11-05, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

In plain words

A robot that picks sea creatures from underwater farm nets needs a camera model that finds each creature. The public training data for this task had three problems: the test labels were withheld, many photos were near copies of each other, and some labels were wrong or missing.

The authors merged six of these datasets, removed the near copies, and relabelled every remaining image with a detector that was then corrected by hand. The result is a single dataset with one agreed test split, so different methods can be compared on the same images. They also trained twelve common detectors on it and measured both accuracy and speed on an embedded board of the kind a robot could carry.

TL;DR

DUO is a cleaned and relabelled underwater dataset of 7,782 images with four creature classes, plus a benchmark of twelve detectors on three ResNet depths under MMDetection. Accuracy is reported as COCO AP, and speed as FPS on a Jetson AGX Xavier. Use it when you need a public underwater detection baseline with a fixed test split. Check the dataset's own terms before reuse, because the paper's CC BY 4.0 license covers the paper, not the released data.

Problem

Existing underwater datasets for robot picking, the URPC series from 2017 to 2020, do not publish test-set annotations. Researchers therefore carve their own test sets out of the training data, and results cannot be compared across papers §1 tab. 1. Within the URPC data, many images are near duplicates: URPC2017 keeps only 15% of its images after similar images are removed §1 tab. 1. Labels are also incomplete, since some sets lack the starfish class and errors and misses are common §1.

Method

The paper has two parts: a dataset (DUO) and a benchmark.

Source data. Six sources are merged: URPC2017, URPC2018, URPC2019, URPC2020 (two releases, labelled ZJ and DL) and UDD §2 tab. 1. Table 1 gives the size of each source, the number of classes it labels and its retention after near-duplicate removal tab. 1.

DatasetTrainTestClassesRetentionYearTest labels published
URPC201717,655985315%2017no tab. 1
URPC20182,901800499%2018no tab. 1
URPC20194,7571,029486%2019no tab. 1
URPC2020_ZJ5,5432,000482%2020no tab. 1
URPC2020_DL6,5752,400480%2020no tab. 1
UDD1,827400384%2020yes tab. 1

Table 1 marks the URPC test sets with an asterisk, meaning their annotations are unavailable tab. 1. The "Classes" column counts holothurian, echinus and scallop; the four-class sources add starfish tab. 1 §2.

Near-duplicate removal (§3.1). The authors use perceptual hashing (PHash), whose hash changes little when an image's content changes only slightly. Within one scene, images with close hashes are treated as duplicates and one is removed §3.1. The paper reports the result as 7,782 images, 6,671 for training and 1,111 for testing §3.1. The hash-distance threshold and the rule for choosing which copy to keep are not stated.

Re-annotation (§3.2). The labels are rebuilt in three stages.

  1. Train a GFL detector on the original labels §3.2.
  2. Predict boxes on all 7,782 images, then retrain GFL with those predictions as ground truth. The output of this model is the coarse annotation §3.2.
  3. Manually correct the coarse annotation. The result is the fine annotation, stored in COCO format §3.2.
Pseudocode
# DUO construction  [§3.1] [§3.2]
# Input:  images and labels from six source datasets
# Output: unique images and fine labels (COCO format)

def build_duo(source_images, source_labels):
    # 1. Remove near-duplicate images with perceptual hashes  [§3.1]
    # (distance threshold not stated)
    unique_images = deduplicate_phash(source_images)

    # 2. Train GFL on the original labels  [§3.2]
    detector = train_gfl(unique_images, source_labels)

    # 3. Predict on all images; the predictions become ground truth  [§3.2]
    pseudo_labels = detector.predict(unique_images)

    # 4. Retrain GFL on the predictions; this output is the coarse set  [§3.2]
    detector = train_gfl(unique_images, pseudo_labels)
    coarse_labels = detector.predict(unique_images)

    # 5. Manual correction gives the fine labels  [§3.2]
    fine_labels = manual_correct(coarse_labels)
    return unique_images, fine_labels

Dataset statistics (§3.3). DUO has 74,515 objects: 7,887 holothurian, 50,156 echinus, 1,924 scallop and 14,548 starfish §3.3. Echinus is 67.3% of objects, and the paper calls the class distribution long-tailed §3.3 fig. 2. Most objects cover 0.3% to 1.5% of the image area, and most images contain 5 to 15 objects, with a mean of 9.57 per image §3.3 fig. 3. The paper compares these numbers with PASCAL VOC and COCO, citing COCO at 7.7 and VOC at 3 objects per image §3.3. Figure 1 shows example scenes fig. 1.

Benchmark protocol (§4). The benchmark uses MMDetection V2.5.0 §4.2. Each detector is trained with the settings in the pseudocode below, then scored on the test split with COCO AP over IoU 0.50 to 0.95, AP at 0.50 and 0.75, AP for small, medium and large objects, and AP per class §4.1. Efficiency is reported as parameter count, FLOPs at 512x512 input, and FPS on a Jetson AGX Xavier in its 30 W mode §4.1 tab. 2.

Pseudocode
# Benchmark training  [§4.2]
# Input:  train split (6,671 images), 512 x 512 after resizing
# Output: trained detector, scored on the test split (1,111 images)

def train_benchmark(detector, train_set):
    # 1. Start the backbone from ImageNet-pretrained weights  [§4.2]
    detector.backbone.load_imagenet_weights()

    # 2. Run 12 epochs with batch size 4 on one GTX 1080Ti  [§4.2]
    for epoch in range(12):
        # 3. Learning rate 0.005, divided by 10 after epochs 8 and 11  [§4.2]
        learning_rate = lr_schedule(epoch, base=0.005, steps=(8, 11))
        for images, boxes in batches(train_set, size=4):
            # 4. Resize to 512 x 512; flip horizontally with p = 0.5  [§4.2]
            images = resize(images, (512, 512))
            images = random_horizontal_flip(images, probability=0.5)

            # 5. Normalise RGB by channel mean and std  [§4.2]
            images = normalise_rgb(images)

            # 6. SGD step; linear warmup over the first 500 iterations  [§4.2]
            # (warmup form not stated)
            loss = detector.loss(images, boxes)
            sgd_step(loss, learning_rate)
    return detector

Step 5 uses the values in the hyperparameter table below. Testing uses no flip and no multi-scale augmentation §4.2.

Hyperparameters

Values from the paper's text, not from code. The code repository has no training configs (see "Paper vs code").

NameValueWhereNotes
frameworkMMDetection V2.5.0§4.2version named; configs not stated
backbone initImageNet pretraining (ResNet50 named as example)§4.2other backbones: not stated
input size512 x 512, train and test§4.2plain resize described; no padding mentioned
horizontal flipprobability 0.5, training only§4.2
RGB normalisationsubtract 123.675, 116.28, 103.53; divide by 58.395, 57.12, 57.375§4.2order as written, RGB
optimiserSGD§4.2momentum and weight decay not stated
initial learning rate0.005§4.2
batch size4§4.2"single GTX 1080Ti"; GPU count not stated
learning-rate stepsx0.1 at epoch 8 and epoch 11§4.2
epochs12§4.2
warmupfirst 500 iterations§4.2warmup form and start factor not stated
test-time augmentationnone (no flip, no multi-scale)§4.2
FLOPs input512 x 512§4.1
FPS deviceJetson AGX Xavier, MODE_30W_ALL§4.1
FPS batch size1 whenever possibletab. 2 captionexceptions not listed
random seeds, number of runsnot statedno variance reported
per-detector settings (anchors, assigners, NMS, neck)not stated"standard configurations" only §4.2
PHash distance thresholdnot stated§3.1
manual-correction effort (annotators, agreement, share of labels changed)not stated§3.2

Results

Author-reported. Setup: the DUO test split of 1,111 images §3.1; each detector is a single model at a single scale with no test-time augmentation, 512x512 input, MMDetection V2.5.0 tab. 2 §4.2. Full table below, all rows from tab. 2. Bold marks in the source were not reproduced, because some are misplaced (see Pitfalls).

MethodBackboneParam.FLOPsFPSAPAP50AP75AP_SAP_MAP_LAP_HoAP_EcAP_ScAP_St
Faster R-CNNR-1828.14M49.75G5.750.172.657.842.951.948.749.160.131.659.7
Faster R-CNNR-5041.14M63.26G4.754.875.963.153.056.253.855.562.438.762.5
Faster R-CNNR-10160.13M82.74G3.753.875.461.639.055.252.854.362.038.560.4
Cascade R-CNNR-1855.93M77.54G3.452.773.460.349.054.750.951.462.334.962.3
Cascade R-CNNR-5068.94M91.06G3.055.675.563.844.957.454.456.863.638.763.5
Cascade R-CNNR-10187.93M110.53G2.656.076.163.651.257.554.756.263.941.362.6
Grid R-CNNR-1851.24M163.15G3.951.972.159.240.454.250.150.761.833.361.9
Grid R-CNNR-5064.24M176.67G3.455.975.864.340.957.554.856.762.939.564.4
Grid R-CNNR-10183.24M196.14G2.855.675.662.945.657.154.555.562.941.062.9
RepPointsR-1820.11M35.60G5.651.776.957.843.854.049.750.863.333.659.2
RepPointsR-5036.60M48.54G4.856.080.263.140.858.553.756.765.739.362.3
RepPointsR-10155.60M68.02G3.855.479.062.642.257.353.956.065.839.060.9
RetinaNetR-1819.68M39.68G7.144.766.350.729.347.642.546.954.223.953.8
RetinaNetR-5036.17M52.62G5.949.370.355.436.551.947.654.456.627.858.3
RetinaNetR-10155.16M72.10G4.550.471.757.334.652.849.054.657.033.756.3
FreeAnchorR-1819.68M39.68G6.849.071.955.338.651.746.747.262.828.657.6
FreeAnchorR-5036.17M52.62G5.854.476.662.538.155.753.455.365.235.361.8
FreeAnchorR-10155.16M72.10G4.454.676.962.936.556.552.954.065.138.460.7
FoveaBoxR-1821.20M44.75G6.751.674.957.440.053.649.851.061.934.659.1
FoveaBoxR-5037.69M57.69G5.555.377.862.344.757.453.457.964.236.462.8
FoveaBoxR-10156.68M77.16G4.254.777.362.337.757.152.455.363.638.960.8
PAAR-1818.94M38.84G3.052.675.358.841.355.150.249.964.635.660.5
PAAR-5031.89M51.55G2.956.879.063.838.958.954.956.566.939.964.0
PAAR-10150.89M71.03G2.456.578.563.740.958.754.555.866.542.061.6
FSAFR-1819.53M38.88G7.449.674.355.143.451.847.545.563.530.358.9
FSAFR-5036.02M51.82G6.054.979.362.146.256.753.353.766.436.862.5
FSAFR-10155.01M55.01G4.554.678.761.946.057.152.253.066.338.261.1
FCOSR-1818.94M38.84G6.548.472.853.730.750.946.346.561.529.156.6
FCOSR-5031.84M50.34G5.453.077.159.939.755.650.552.364.535.260.0
FCOSR-10150.78M69.81G4.253.277.360.143.455.451.251.764.138.558.5
ATSSR-1818.94M38.84G6.054.076.560.944.156.651.452.665.535.861.9
ATSSR-5031.89M51.55G5.258.280.166.543.960.655.958.667.641.864.6
ATSSR-10150.89M71.03G3.857.679.465.346.560.355.057.767.242.662.9
GFLR-1819.09M39.63G6.354.475.561.935.057.151.851.866.936.562.5
GFLR-5032.04M52.35G5.558.679.366.746.561.655.658.669.141.365.3
GFLR-10151.03M71.82G4.158.379.365.545.160.556.357.069.143.064.0

Headline numbers: the highest AP is GFL with ResNet-50, at 58.6 with 5.5 FPS and 52.35G FLOPs tab. 2. ATSS with ResNet-50 reaches 58.2 AP at 5.2 FPS tab. 2. The fastest row is FSAF with ResNet-18, at 7.4 FPS and 49.6 AP tab. 2. The paper's reading is that the multi-stage Cascade R-CNN is more accurate but slower than RetinaNet, and that ATSS and GFL combine accuracy with speed §4.3 tab. 2. It also finds that ResNet-101 is not clearly better than ResNet-50 §4.3 tab. 2, and that AP_Sc, the scallop class, is the weakest class in the paper's reading §4.3 tab. 2.

Paper vs code

No official code. The paper links a GitHub user page for the authors, and the repository it names, chongweiliu/DUO (default branch master, shallow clone at commit faad1b7caa35b32c02ca42aa420c0e3613ff324f), contains only a README. It has no LICENSE file, no training or model code, no configs and no annotation files. Its download links point to Baidu Yun and Google Drive README.md. The README reproduces the abstract and the BibTeX entry README.md. Searched: the GitHub link given in the paper's introduction §1, the authors' repository list, and a GitHub repository search for the title words and "DUO"; the search found no other repository. The benchmark's MMDetection configs and the GFL re-annotation code are not published, so the paper's settings cannot be compared with any code.

Pitfalls

  • Retention figure does not reconcile. The paper gives 95% retention for DUO §3.1. Summing the train and test counts in Table 1 gives 46,872 images, and 7,782 is about 17% of that. The paper does not say what the 95% is measured against tab. 1 §3.1.
  • Split rule is not in the paper. The text gives 6,671 training and 1,111 test images §3.1, but the rule for picking the test set appears only in a commented-out passage of the LaTeX source, not in the compiled paper. The released split file is not in the repository. An implementer cannot reproduce the exact split from the paper.
  • Near-duplicate removal is underspecified. The PHash distance threshold and the rule for keeping one of two duplicates are not stated §3.1. Re-running the dedup will not give 7,782 images unless these are guessed.
  • Re-annotation is partly self-labelled. The coarse labels come from a GFL model trained on labels it then predicts on its own training images §3.2. The paper does not report how many labels manual correction changed, how many annotators worked, or any agreement measure §3.2. Treat the "fine" labels as unverified.
  • Misplaced bold marks in Table 2. The bold AP_S value for Cascade R-CNN ResNet-18 is 49.0 tab. 2, but Faster R-CNN ResNet-50 has 53.0 tab. 2. The bold AP50 for ATSS ResNet-50 is 80.1 tab. 2, but RepPoints ResNet-50 has 80.2 tab. 2. Compare values directly, not the bold marks.
  • Possible transcription error. FSAF ResNet-101 lists 55.01M parameters and 55.01G FLOPs, the same number in both columns tab. 2. The paper gives no check.
  • FLOPs definition. The paper defines FLOPs as "floating-point operations per second" §4.1. That is a rate, but Table 2 gives counts in G. Treat the column as an operation count at 512x512 input. The counting tool and whether multiply-accumulates count as two operations are not stated §4.1 tab. 2.
  • FPS depends on setup. FPS is measured on a Jetson AGX Xavier in MODE_30W_ALL §4.1, at batch size 1 "whenever possible" tab. 2. Exceptions are not listed. Figures from other hardware, power modes or batch sizes are not comparable.
  • Small-object thresholds. AP_S, AP_M and AP_L use absolute areas of 32² and 96² §4.1. The paper does not say whether areas are measured at 512x512 or at the original resolution. Source images range from 720x405 to 3,840x2,160 §2.
  • Resize without padding. All images are resized to 512x512 §4.2. For non-square inputs this changes the aspect ratio, and no padding is mentioned. The paper does not say whether this is intended.
  • Single runs, no variance. No seeds, repeat runs or confidence intervals are reported §4.2 tab. 2. Gaps of a few tenths of a point, such as GFL ResNet-50 at 58.6 against GFL ResNet-101 at 58.3, cannot be judged from the paper.
  • Per-detector settings are missing. The benchmark says "standard configurations" §4.2. Anchors, label assigners, NMS settings and neck details are not stated per detector, so the 36 configurations cannot be rebuilt from the paper alone.
  • Warmup is vague. "WarmUp" is applied for the first 500 iterations §4.2, but its form and starting factor are not stated.
  • Dataset licence is separate from the paper's. The paper is CC BY 4.0. The dataset is not licensed in the paper, and the repository has no LICENSE file README.md. Its images come from the URPC and UDD sources §2. Do not assume the dataset may be used commercially until its terms are checked.

Lineage

  • Builds on: the URPC challenge datasets for 2017 to 2020 and UDD, as source data and the baseline for re-annotation §2 tab. 1.
  • Uses: GFL for the coarse re-annotation step §3.2; MMDetection V2.5.0 for the benchmark §4.2; ImageNet pretraining for the backbones §4.2; the WarmUp schedule §4.2.
  • Compared against: Faster R-CNN, Cascade R-CNN, Grid R-CNN, RepPoints, RetinaNet, FreeAnchor, FoveaBox, PAA, FSAF, FCOS, ATSS and GFL, each with ResNet-18, 50 and 101 backbones tab. 2.
  • Related datasets named but not used: COCO and PASCAL VOC, for the statistics comparison only §3.3.

Source and license

Adapted from “A Dataset And Benchmark Of Underwater Object Detection For Robot Picking” by Chongwei Liu, Haojie Li, Shuchang Wang, Ming Zhu, Dong Wang, Xin Fan, Zhihui Wang (arXiv:2106.05681), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.