Skip to main content
. 2021 Apr 10;21(8):2664. doi: 10.3390/s21082664
Algorithm 1. Vessel Recognition and Tracking Algorithm.
  • 1:

    Start ()

  • 2:

    Step 1: While (mission has not started) {}

  • 3:

    {Starts Main Mission Mode (MMM)}

  • 4:

    Step 2: If (mission has ended)

  • 5:

    {End ()}

  • 6:

    Else

  • 7:

    {Navigate follow defined mission}

  • 8:

    {Select the right AI image recognition source (AIsource) through SAAO}

  • 9:

    {Acquire frames from 4 cameras and send to AIsource}

  • 10:

    {Get the answer of every frame and add label with camera position (bow, stern, starboard, port) of detected vessel, called camera position (CP)}

  • 11:

    If ((accuracy of detected vessel > acceptable limits) AND (type of vessel == classified as potential risk))

  • 12:

    {Go to step 3}

  • 13:

    Else

  • 14:

    {Go to step 2}

  • 15:

    Step 3: 

  • 16:

    {Starts Fixed Buoy Mode (FBM)}

  • 17:

    {Get the answer of every frame and add label with camera position (bow, stern, starboard, port) of detected vessel, called camera position (CP)}

  • 18:

    Switch (CP)

  • 19:

    Case (CP == bow)

  • 20:

    If (accuracy < accuracy results acceptable)

  • 21:

    {Discard detected vessel. No risk.}

  • 22:

    {Go to step 2}

  • 23:

    Else 

  • 24:

    {Set new heading pointing detected vessel. Keep current position and heading}

  • 25:

    {Start study of target behavior by analyzing bounding box of images for a specific period}

  • 26:

    If (Detected vessel is in the same position)

  • 27:

    {Discard detected vessel. No risk}

  • 28:

    {Go to step 2}

  • 29:

    Else

  • 30:

    {Target vessel in the same position. Risk (anchoring, fishing)}

  • 31:

    {Go to step 4}

  • 32:

    Case (CP == stern)

  • 33:

    {Vehicle turns +180°}

  • 34:

    {Go to step 3}

  • 35:

    Case (CP == starboard)

  • 36:

    {Vehicle turns +90°}

  • 37:

    {Go to step 3}

  • 38:

    Case (CP == port)

  • 39:

    {Vehicle turns −90°}

  • 40:

    {Go to step 3}

  • 41:

    Default:

  • 42:

    {Go to step 2}

  • 43:

    Step 4:

  • 44:

    {Start Tracking Mode (TM)}

  • 45:

    {Navigate to track target vessel}

  • 46:

    {Acquire new frame from bow camera and send to AIsource}

  • 47:

    {Calculate the bounding box center and vessel position in order to fix heading while tracking}

  • 48:

    If (LiDAR detects vessel at 20 m)

  • 49:

    {Stop navigation. Target reached}

  • 50:

    {Go to step 5}

  • 51:

    Else If (vessel leaves integral reserve while tracking)

  • 52:

    {Target not reached}

  • 53:

    {Go to step 2}

  • 54:

    Else

  • 55:

    {Go to step 4}

  • 56:

    Step 5:

  • 57:

    {Starts Inspection Mode (IM)}

  • 58:

    {Acquire new frame from bow camera and send to AIsource}

  • 59:

    {Calculate the bounding box center and vessel position in order to fix heading and keep distance}

  • 60:

    While (Target vessel is stopped)

  • 61:

    {Record videos, save vessel’s position, obtain additional information, send data and alerts to cloud station}

  • 62:

    If (Vessel starts moving)

  • 63:

    {Stage finished. Information collected}

  • 64:

    {Go to Step 2}

  • 65:

    Security Step:

  • 66:

    If (Energy == 25%)

  • 67:

    {Return back to port area. Send alert to cloud station}

  • 68:

    If (Energy == 50%)

  • 69:

    {Send alert to cloud station}

  • 70:

    End ()