/TISC-Net

sea cucumber

Primary LanguagePython

TISC-Net: Towards the in-situ Trunk Identification and Length Measurement of Sea Cucumbers via Bezier Curve Modelling

  • 🔭 I’m currently working on something cool.

Examples of trunk identification with the proposed TISC-Net. Outcomes of TISC-Net-m are presented. Each image is followed by the enlarged slice of the target, with B´ezier curve control points marked by solid circles. The images have been slightly resized for alignment.

Installation

You need to install Ultralytics and configure your environment according to YOLOv8's official procedures.

Install

Pip install the ultralytics package including all requirements in a Python>=3.8 environment with PyTorch>=1.8.

pip install ultralytics

Models

Name Params(M) download DUO download ISTI
TISC-Net-m 26.4 DUO_model ISTI_model
TISC-Net-xP6 99.3 DUO_model ISTI_model

Dataset preparation

  1. You need to prepare datasets for following training and testing activities. Datasets
  2. The SC-ISTI dataset comprises 462 RGB images captured by an underwater robot in real habitat of sea cucumbers, with 670 sea cucumbers.
  3. The SC-DUO dataset consists of 1, 023 images containing 1, 856 sea cucumbers, which is created by selecting images containing sea cucumbers from DUO dataset.

Quick Start

Inference with Pre-trained Models

  1. Pick a model and its config file, for example, yolov8-pose-FEE.yaml.
  2. Download the model m_DUO.pt
  3. Run the "test.py".
    model = YOLO('/data/m_DUO.pt')
    img_path = 'fig/2258.jpg'
  1. You need to replace the address of the model and images.

Train Your Own Models

To train a model with "train.py", first prepare the custom dataset and set up the corresponding dataset yaml file sc_DUO-pose.yaml, then run "train.py":

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8m-pose-FEE.yaml')  # build a new model from YAML


# Train the model
model.train(data='sc_DUO-pose.yaml', epochs=100, imgsz=640, device = 3, batch = 32 )
metrics = model.val()  # evaluate model performance on the validation set
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list con

You are my Visitor Count visitor,Thank You!