CoolFace
Datasetpublic

Potestates/focus-frame-point-annotation

FOCUS — Foreign-Object Point Annotation What you are doing For every foreign object in a surgical frame, drop one point on it and pick its class. You are not counting. We already have the counts. What the model is missing is where the objects are — it knows "this frame contains 5" but not which 5 pixels, which is exactly why it cannot learn to count. Getting started (1 minute) unzip shardN.zip -d shardN cd shardN python3 -m http.server 8000 Open… See the full description on the dataset page: https://huggingface.co/datasets/Potestates/focus-frame-point-annotation.

sourceHugging Faceupdated 17d agoView on Hugging Face
0likes63downloads
Dataset Card

FOCUS — Foreign-Object Point Annotation

What you are doing

For every foreign object in a surgical frame, drop one point on it and pick its class.

You are not counting. We already have the counts. What the model is missing is where the objects are — it knows "this frame contains 5" but not which 5 pixels, which is exactly why it cannot learn to count.

Getting started (1 minute)

bash
unzip shardN.zip -d shardN
cd shardN
python3 -m http.server 8000

Open http://localhost:8000 in Chrome or Firefox.

(Double-clicking index.html also works, but the local server is more reliable — some browsers disable local storage on file://, which would lose your progress.)

Controls

ActionHow
Add a pointClick on the image
Delete a pointClick that point
Change classClick it on the right, or press <kbd>1</kbd>–<kbd>8</kbd>
Next frame<kbd>Space</kbd> or <kbd>→</kbd>
Previous frame<kbd>←</kbd>
Undo last point<kbd>U</kbd>

Every edit autosaves in your browser. Closing the tab loses nothing. When you finish, click Export JSON and send back the downloaded shardN_points.json.

The eight classes

1  Clip            surgical clip — small metal/plastic clip closing a duct or vessel
2  Sponge          gauze / swab
3  Needle          suture needle
4  Specimen        excised tissue
5  Specimen bag    retrieval bag
6  External drain  drainage tube
7  Silicone loop   silicone retraction loop / vessel loop
8  Gallstone       gallstone

Three rules that matter most

1. Instruments are NOT foreign objects

Graspers, scissors, hooks, suction devices, needle holders, trocars — these are surgical instruments held by the surgeon. Do not annotate them. A foreign object is something that stays in, or could be left behind in, the body.

Rule of thumb: attached to a shaft coming in from the edge of the frame → instrument, skip it. Sitting on tissue on its own, or clipped/sutured onto tissue → foreign object, annotate it.

This is the single easiest mistake to make, and it is exactly the error our model already makes — it confuses graspers with clips. Mislabelling here feeds the bug straight back in.

2. One point per object, at its centre

Three clips in a row = three points. One gauze, however large = one point. Half-occluded but still visible = annotate it. Completely hidden = do not annotate.

3. The reference counts are a check, not a quota

The panel shows e.g. Clips 2 / 3 — you placed 2, our label store says 3.

If you look carefully and only see 2, leave it at 2. We need real positions. Invented points to hit a number will actively teach the model the wrong thing. If a whole frame is unclear, skip it (leave it with no points) — we can detect those when we merge.

Pace

About 440 frames and ~1,870 points per shard, roughly 2 hours.

No need to rush. A wrong point hurts far more than a slow one — a point with the wrong class corrupts both "how many clips" and "how many classes" at the same time.

Shards

ShardFramesVideos
shard144522
shard244422
shard344422
shard443921

No video is split across two people — frames from the same video look very similar, so splitting one would bake in per-annotator differences as noise.