@Override
  public PointTracker<GrayF32> createTracker() {
    DescribePointBrief<GrayF32> brief =
        FactoryDescribePointAlgs.brief(
            FactoryBriefDefinition.gaussian2(new Random(123), 16, 512),
            FactoryBlurFilter.gaussian(GrayF32.class, 0, 4));

    GeneralFeatureDetector<GrayF32, GrayF32> corner =
        FactoryDetectPoint.createShiTomasi(
            new ConfigGeneralDetector(100, 2, 0), false, GrayF32.class);

    InterestPointDetector<GrayF32> detector =
        FactoryInterestPoint.wrapPoint(corner, 1, GrayF32.class, GrayF32.class);
    ScoreAssociateHamming_B score = new ScoreAssociateHamming_B();

    AssociateDescription<TupleDesc_B> association = FactoryAssociation.greedy(score, 400, true);

    PointTracker<GrayF32> pointTracker =
        FactoryPointTracker.combined(
            detector,
            null,
            new WrapDescribeBrief<>(brief, GrayF32.class),
            association,
            null,
            20,
            GrayF32.class);

    return pointTracker;
  }