Technical Specification
Planet’s Vessel Detection and Classification products leverage advanced machine learning and computer vision techniques to identify maritime activity over vast areas of interest. Derived from high-frequency PlanetScope imagery, this solution provides automated, oriented bounding box detections of vessels, enabling customers to monitor maritime domains, secure coastlines, and analyze economic activity with precision.
Planet supports three Vessel Detection offerings:
- Standard Vessel Detection: Only provides geojson feature collections containing polygons indicating the location and time vessels were detected along with associated metadata (for example, estimated length/width/heading, confidence score and other relevant information). This is a good fit for users with existing access to maritime data/imagery.
- Standard Vessel Detection with Open Water Monitoring: Includes everything for Standard Vessel Detection but also includes open water imagery over the area of interest.
- Enhanced Vessel Detection with Open Water Monitoring: Additional metadata is included for vessel classification and bunkering status
| Standard Vessel Detection | Standard Vessel Detection with Open Water Monitoring | Enhanced Vessel Detection with Open Water Monitoring | |
|---|---|---|---|
| Geojson Feature Collection of Vessel Detections | ✅ | ✅ | ✅ |
| Estimated Width, Length, Heading | ✅ | ✅ | ✅ |
| Confidence Score | ✅ | ✅ | ✅ |
| Imagery | ❌ | ✅ | ✅ |
| Vessel Classification | ❌ | ❌ | ✅ |
| Bunkered status | ❌ | ❌ | ✅ |
Methodology
Our vessel detection model provides reliable, high-quality results that you can trust to drive critical decisions. The process uses a sophisticated deep learning approach.
Validated Approach
- Segmentation: The model first performs a segmentation step on the PlanetScope imagery. It analyzes the image pixel by pixel to create a probability mask that highlights all areas likely to contain a vessel.
- Polygonization and feature extraction: The model then processes this mask to generate a precise, object-oriented bounding box around each probable vessel. During this step, it calculates key metadata for each detection, including the confidence score, estimated length, and heading. This two-step process is highly effective at identifying vessels longer than 25 m while minimizing false positives from other features on the ocean's surface.
- Classification and Bunkering: For Enhanced Vessel Detection, we apply a secondary classification step that adds a predicted class property to the result, including Tanker, Cargo, and Military classes. We also add a status indicating if the vessel is closely bunkered with another ship to highlight potential ship-to-ship transfers.
Robust Training Data
A model is only as good as the data it is trained on. Planet Vessel Detection is trained on a massive, hand-labeled training dataset curated from our extensive imagery archive. This dataset features a broad geographic and temporal distribution, encompassing thousands of images from different oceans, seasons, and times of day. This diversity ensures the model is robust and performs reliably across a wide variety of real-world conditions, including different sea states, atmospheric haze, sun angles, and vessel types. It is continually updated and expanded to reduce model drift and address issues as they arise.
Reliable Performance
Our model is rigorously tested to ensure it meets the demanding needs of our users. Planet leveraged 80% of the above dataset to train the segmentation model, holding out 20% of the labeled dataset for validation to measure the model's performance. By comparing the model's results over this 20% holdout dataset, we can calculate the following precision, recall, and F1 measurements specifically over open water areas for vessels greater than 25 m in length.
- Precision: 0.87 - This measures the accuracy of our detections. A high precision score means that when we identify a vessel, it is highly likely to be an actual vessel, minimizing false alarms.
- Recall: 0.85 - This measures the completeness of our detections. A high recall score means we successfully identify a high percentage of the actual vessels present in the imagery.
- F1-Score: 0.86 - This provides a single, balanced measure of the model's overall accuracy by combining both Precision and Recall.
Delivery Mechanisms
Results are available via the Analytics API and Feed Viewer. For more details please see:
Full Metadata Reference
Feature-level Fields
| Property | Format | Example | Definition |
|---|---|---|---|
| created | ISO 8601 DateTime | "2026-02-03T19:02:45.270966Z" | The timestamp when the feature was created in the system |
| geometry | GeoJSON Geometry | {"type": "Polygon", "coordinates": [...]} | The geographic polygon defining the location of the detected change |
| id | UUID | "17f21835-93c4-4664-b2ef-c2f57f5809a5" | The unique identifier for the feature |
| links | Array of Link Objects | [{"href": "...", "rel": "self", "type": "..."}] | Array of related resources including visual tiles, quads, process info, and observation data |
| type | String | "Feature" | The GeoJSON feature type |
Properties
| Property | Format | Example | Definition |
|---|---|---|---|
| angle | Float | 106.7 | The mathematical angle of the vessel bounding box in degrees (0-180) |
| area_m2 | Float | 2543.2 | The area of the detected vessel's bounding box in square meters |
| bunkered | Boolean | false | Indicates whether the vessel is engaged in ship-to-ship transfer activity Note: only available with Enhanced Vessel Detection |
| category | String | "vessel" | The category of the detected object |
| diagonal_m | Float | 115.96416084290871 | The diagonal length of the vessel bounding box in meters |
| heading | Integer | 162 | The estimated heading direction of the vessel in degrees (0-360) |
| length_m | Float | 113.79 | The estimated length of the vessel in meters |
| model_id | String | "cresi_vessel" | The identifier of the detection model used |
| model_version | String | "cresi2-vessel-ps-v1.2.0" | The version of the detection model used |
| object_class_label | String | "tanker" | The classification label assigned to the detected object Note: only available with Enhanced Vessel Detection |
| observed | ISO 8601 DateTime | "2025-10-16T07:21:48.627212Z" | The timestamp when the vessel was observed |
| score | Float | 0.943 | The model's confidence in the detection accuracy (0-1 scale, where higher values indicate greater certainty) |
| source_asset_type | String | "ortho_visual" | The type of asset used for detection |
| source_cloud_cover | Float | 0.4 | The cloud cover percentage in the source imagery (0-1 scale) |
| source_extent | WKT Polygon | "POLYGON ((55.9853058746303631 27.2509705260559514, 55.9467120017714379 27.0829579039142487, 56.2625643704127754 27.0239643873469042, 56.3020846152307257 27.1928634710108987, 55.9853058746303631 27.2509705260559514))" | The geographic extent of the source imagery as a polygon |
| source_image_mean_gsd | Float | 3.6 | The mean ground sample distance of the source imagery in meters |
| source_item_id | String | "20251016_072148_62_2507" | The unique identifier of the source imagery item |
| source_item_type | String | "PSScene" | The type of source imagery item |
| source_quality_category | String | "standard" | The quality category of the source imagery |
| source_sun_azimuth_angle | Float | 163.4 | The azimuth angle of the sun in the source imagery in degrees |
| source_sun_elevation_angle | Float | 52.5 | The elevation angle of the sun in the source imagery in degrees |
| width_m | Float | 22.35 | The estimated width of the vessel in meters |
With Planet Vessel Detection, you gain a robust, persistent, and reliable view of the maritime domain, empowering you to act with speed and confidence.