/** * Train the annotator with the given grouped dataset. Internally, the * dataset is converted to a list containing exactly one reference to each * object in the dataset with (potentially) multiple annotations. * * @param dataset * the dataset to train on */ public void train(GroupedDataset<ANNOTATION, ? extends ListDataset<OBJECT>, OBJECT> dataset) { train(AnnotatedObject.createList(dataset)); } }
/** * {@inheritDoc} * * @see org.openimaj.ml.annotation.Annotator#getAnnotations() */ @Override public Set<ANNOTATION> getAnnotations() { return this.annotator.getAnnotations(); }
@Override public void train(Iterable<? extends Annotated<FACE, PERSON>> data) { annotator.train(data); }
/** * Train the annotator with the given grouped dataset. This method assumes * that each object can appear in multiple groups of the dataset (i.e. a * multi-label problem). Internally, the dataset is converted to a list * containing exactly one reference to each object in the dataset with * (potentially) multiple annotations. * <p> * If the dataset is actually multi-class (i.e. each object belongs to only * a single group), then calling this method is equivalent to calling * {@link #trainMultiClass(GroupedDataset)}, but is less efficient as the * dataset has to be converted into a list. * <p> * Some annotator implementations do not care whether the data is * multi-class or multi-label, and might choose to override this method to * just call {@link #trainMultiClass(GroupedDataset)} instead. * * @param dataset * the dataset to train on */ public void train(GroupedDataset<ANNOTATION, ? extends ListDataset<OBJECT>, OBJECT> dataset) { for (final AnnotatedObject<OBJECT, ANNOTATION> ao : AnnotatedObject.createList(dataset)) { train(ao); } } }
@Override public void train(Annotated<OBJECT, ANNOTATION> annotated) { objectCache.add(annotated.getAnnotations(), annotated.getObject()); isInvalid = true; }
@Override public void train(GroupedDataset<ANNOTATION, ? extends ListDataset<OBJECT>, OBJECT> dataset) { train(AnnotatedObject.createList(dataset)); } }
/** * @return the queries for constructing a {@link RetrievalEvaluator} */ private Set<ANNOTATION> getQueries() { final Set<ANNOTATION> testAnnotations = new HashSet<ANNOTATION>(); for (final Annotated<OBJECT, ANNOTATION> item : testData) { testAnnotations.addAll(item.getAnnotations()); } testAnnotations.retainAll(annotator.getAnnotations()); return testAnnotations; }
/** * {@inheritDoc} * * @see org.openimaj.ml.annotation.Annotator#annotate(java.lang.Object) */ @Override public List<ScoredAnnotation<ANNOTATION>> annotate(final SampleBuffer object) { return this.annotator.annotate(object); } }
/** * Create an {@link AnnotatedObject} with the given object and its * annotation. * * @param <OBJECT> * Type of object. * @param <ANNOTATION> * Type of annotations * @param object * the object * @param annotation * the object's annotation. * @return the new {@link AnnotatedObject} */ public static <OBJECT, ANNOTATION> AnnotatedObject<OBJECT, ANNOTATION> create(OBJECT object, ANNOTATION annotation) { return new AnnotatedObject<OBJECT, ANNOTATION>(object, annotation); }
@Override public List<ScoredAnnotation<PERSON>> annotate(FACE object) { return annotator.annotate(object); }
@Override public void reset() { annotator.reset(); }
@Override public Set<PERSON> getAnnotations() { return annotator.getAnnotations(); }
@Override public void train(Annotated<FACE, PERSON> annotated) { faceCache.add(annotated.getAnnotations(), annotated.getObject()); isInvalid = true; }
@Override public void train(Annotated<FACE, PERSON> annotedImage) { annotator.train(annotedImage); }
/** * {@inheritDoc} * * @see org.openimaj.ml.annotation.Annotator#annotate(java.lang.Object) */ @Override public List<ScoredAnnotation<ANNOTATION>> annotate(final SampleBuffer object) { return this.annotator.annotate(object); } }
/** * Create an {@link AnnotatedObject} with the given object and its * annotations. * * @param <OBJECT> * Type of object. * @param <ANNOTATION> * Type of annotations * @param object * the object * @param annotations * the objects annotations. * @return the new {@link AnnotatedObject} */ public static <OBJECT, ANNOTATION> AnnotatedObject<OBJECT, ANNOTATION> create(OBJECT object, Collection<ANNOTATION> annotations) { return new AnnotatedObject<OBJECT, ANNOTATION>(object, annotations); }
/** * {@inheritDoc} * * @see org.openimaj.ml.annotation.Annotator#getAnnotations() */ @Override public Set<ANNOTATION> getAnnotations() { return this.annotator.getAnnotations(); }
/** * Train the annotator with the given data. The default implementation of * this method just calls {@link #train(Object)} on each data item. * Subclasses may override to do something more intelligent if necessary. * * @param data * the training data */ @Override public void train(Iterable<? extends Annotated<OBJECT, ANNOTATION>> data) { for (final Annotated<OBJECT, ANNOTATION> d : data) train(d); }