001//
002// This file is auto-generated. Please don't modify it!
003//
004package org.opencv.video;
005
006import org.opencv.video.Tracker;
007import org.opencv.video.TrackerGOTURN;
008import org.opencv.video.TrackerGOTURN_Params;
009
010// C++: class TrackerGOTURN
011/**
012 * the GOTURN (Generic Object Tracking Using Regression Networks) tracker
013 *
014 * GOTURN (CITE: GOTURN) is kind of trackers based on Convolutional Neural Networks (CNN). While taking all advantages of CNN trackers,
015 * GOTURN is much faster due to offline training without online fine-tuning nature.
016 * GOTURN tracker addresses the problem of single target tracking: given a bounding box label of an object in the first frame of the video,
017 * we track that object through the rest of the video. NOTE: Current method of GOTURN does not handle occlusions; however, it is fairly
018 * robust to viewpoint changes, lighting changes, and deformations.
019 * Inputs of GOTURN are two RGB patches representing Target and Search patches resized to 227x227.
020 * Outputs of GOTURN are predicted bounding box coordinates, relative to Search patch coordinate system, in format X1,Y1,X2,Y2.
021 * Original paper is here: <http://davheld.github.io/GOTURN/GOTURN.pdf>
022 * As long as original authors implementation: <https://github.com/davheld/GOTURN#train-the-tracker>
023 * Implementation of training algorithm is placed in separately here due to 3d-party dependencies:
024 * <https://github.com/Auron-X/GOTURN_Training_Toolkit>
025 * GOTURN architecture goturn.prototxt and trained model goturn.caffemodel are accessible on opencv_extra GitHub repository.
026 */
027public class TrackerGOTURN extends Tracker {
028
029    protected TrackerGOTURN(long addr) { super(addr); }
030
031    // internal usage only
032    public static TrackerGOTURN __fromPtr__(long addr) { return new TrackerGOTURN(addr); }
033
034    //
035    // C++: static Ptr_TrackerGOTURN cv::TrackerGOTURN::create(TrackerGOTURN_Params parameters = TrackerGOTURN::Params())
036    //
037
038    /**
039     * Constructor
040     *     @param parameters GOTURN parameters TrackerGOTURN::Params
041     * @return automatically generated
042     */
043    public static TrackerGOTURN create(TrackerGOTURN_Params parameters) {
044        return TrackerGOTURN.__fromPtr__(create_0(parameters.nativeObj));
045    }
046
047    /**
048     * Constructor
049     * @return automatically generated
050     */
051    public static TrackerGOTURN create() {
052        return TrackerGOTURN.__fromPtr__(create_1());
053    }
054
055
056    @Override
057    protected void finalize() throws Throwable {
058        delete(nativeObj);
059    }
060
061
062
063    // C++: static Ptr_TrackerGOTURN cv::TrackerGOTURN::create(TrackerGOTURN_Params parameters = TrackerGOTURN::Params())
064    private static native long create_0(long parameters_nativeObj);
065    private static native long create_1();
066
067    // native support for java finalize()
068    private static native void delete(long nativeObj);
069
070}