Page tree
Skip to end of metadata
Go to start of metadata

Package summary

An annotation is ROI inside an image. It can be a polygon, multipolygon, point,...
Different kinds of data can be added to an annotation: 

  • Terms from the project ontology,
  • Key-values
  • Description
  • AttachedFile (no UI for that now)


Package main classes


DomainDescriptionMain properties

An abstract class storing properties for all annotation types.

The project property is redundant (project = image.project) for perf reason.
A wktLocation is redundant too (= location.toString()) for same reason. 

Geometry location
ImageInstance image
Project project
Double geometryCompression
def area, perimeter,... 

UserAnnotationAn annotation created by a "human" user.
It can be an annotation created from the web interface (draw) or added from a client with user credential 
User user
AlgoAnnotationAn annotation created by a "software" user.
Usually an annotation created by an algorithm. 
UserJob user
ReviewedAnnotationA user/software annotation that has been reviewed by a user.
This create a copy of the annotation (that the user can modify).
Properties parentIdent and parentClassName are usefull to keep a link the the annotation that has been reviewed.
Long parentIdent
String parentClassName
Set Term

Package description

The user can draw an annotation using the toolbox or using a client an a WKT location (ex: POLYGON (( x y ,....))).


One of the key feature is the ability to add a term to an annotation. See Package Ontology page.


Each annotation is simplify before the insert. An algorithm in SimplifyGeometryService reduce the number of point in the polygon.


An image may contains a lot of annotations. Some algorithm (e.g. cell detector) can add millions of annotation. The web client / browser cannot show all these annotations.
We use two method to deals with big amount of annotations:

  • clustering: when you explore an image, you only get from the server the visible annotations. The web client will not ask all annotation on the visible layer(s). The request area is bigger than the screen view to provide a kind of cache if the user move.
  • k-means: when you are at the min zoom leven, you see the full image and need the full annotations set (clustering is useless).  

Zoom out, k-means is enabled and you only see big polygon with the number of annotation inside

Zoom in, k-means in disabled and you only get the annotation set inside the screen area (+ overflow)



  • No labels

1 Comment

  1. Manque un schéma dans package summary ? Avec différents types d'annotations (user/job/reviewed/jobtemplate?) et liens avec autres entités (image,user,...)