LabelMe demo annotating geospatial data with Segment Anything
Demo video showing how to annotate NAIP satellite imagery using LabelMe, including a full end-to-end workflow from loading GeoTIFF data to exporting geospatial labels. The session covers how to use AI-assisted tools like Segment Anything (SAM) for rapid annotation, how to refine results with manual edits, and how to convert outputs into GeoJSON for use in tools like QGIS. It also highlights practical considerations when working with large, multi-channel satellite imagery and demonstrates a scalable approach where models accelerate annotation and humans focus on validation. * https://github.com/wkentaro/labelme-satellite-image-demo π TIMELINE 0:00 β Intro: Kentaro returns and introduces the demo, starting with the LabelMe website overview. 0:18 β Core concept: LabelMe is an offline-first annotation tool; all processing happens locally with no cloud dependency. 0:33 β Local AI: Models like SAM run on-device, assuming sufficient hardware capability. 0:54 β Feature overview: Demonstrates click-based and text-prompt-based annotation examples. 1:28 β Open source: LabelMe is freely available on GitHub with install options via pip/UV or a paid executable for ease of use. 2:07 β Demo setup: Workflow will cover satellite image annotation β GeoJSON export β visualization in QGIS. 2:52 β Preprocessing: Image is downloaded, optionally cropped, then opened in LabelMe. 3:13 β Data format: GeoTIFF loads like a standard RGB image within the tool. 3:43 β SAM 3 demo: Uses a single bounding box prompt to detect and segment multiple objects. 4:00 β Under the hood: Image is encoded into an embedding space before querying (few seconds latency). 4:23 β Implementation detail: SAM provides multi-object outputs; Kentaro converts outputs to polygons and exports ONNX for usability. 5:18 β Refinement: Initial detection captures ~90β95% of objects; remaining ones are manually corrected. 5:49 β Key shift: SAM 3 enables batch annotation, unlike SAM 2 which requires per-object clicks. 6:48 β Paradigm change: Annotation becomes scalableβmodel handles bulk detection, human refines. 7:08 β YOLO support: Also supports YOLO for text-based detection, but less effective for satellite imagery. 7:40 β Model comparison: SAM preferred for flexibility (polygons/masks); YOLO faster but limited. 8:10 β Export: Annotations saved as LabelMe JSON, then converted to GeoJSON. 9:02 β QGIS integration: GeoJSON overlays correctly on GeoTIFF using coordinate transformation. 9:56 β Geo alignment: Script converts pixel coordinates to geospatial coordinates from GeoTIFF metadata. 10:27 β Limitation: Multi-class support in GeoJSON export is not fully implemented yet. 11:05 β Class management: Labels can be created dynamically or predefined via shared config files. 12:07 β Team workflows: Config files can be shared across teams for consistent labeling. 12:26 β App parity: Executable and Python versions provide identical UI/UX. 12:54 β Batch workflow: Can load directories and iterate through multiple images efficiently. 13:49 β Annotation types: Supports polygons, boxes, circles, points, lines, and AI-generated masks. 14:00 β Mask vs polygon: Masks are more precise but less editable; polygons are editable but approximate. 15:03 β Roadmap: Custom model integration planned but not yet supported. 15:24 β Vision: Future workflowβtrain model β annotate β identify failure cases β improve dataset. 15:43 β Wrap-up: Demo concludes with recap and pointer back to LabelMe resources.
Download
0 formatsNo download links available.