001package javax.visrec.ml.detection;
002
003import javax.visrec.util.BoundingBox;
004import java.util.List;
005import java.util.Map;
006
007/**
008 * Interface to perform object detection in image.
009 * Returns a map of object labels/classes and corresponding location in image outlined by BoundingBox-es
010 *
011 * @author Zoran Sevarac
012 * @param <T> Class used to represent image that will be analyzed
013 * @since 1.0
014 */
015@FunctionalInterface
016public interface ObjectDetector<T> {
017
018    /**
019     * Detects object in specified image
020     *
021     * @param image image to search for object
022     * @return a map of multiple {@link BoundingBox}
023     */
024    Map<String, List<BoundingBox>> detectObject(T image);
025
026}