Exemple #1
0
        public frmVarianceClassifier(VarianceClassifier classifier, frmMain frmMain)
        {
            InitializeComponent();
            _frmMain = frmMain;

            _classifier = classifier;
            FillFormWithConfiguration();
        }
        public void RejectPatches_2scanningWindows()
        {
            // arrange - initialize classifier
            Image <Gray, byte> initialFrame = new Image <Gray, byte>(Path.Combine(_resourceDir, "violeta_1.jpg"));
            IBoundingBox       initialBb    = new BoundingBox(new PointF(168, 178), new SizeF(80, 40));

            // arrange - instantiate scanning window generator
            ScanningWindowGeneratorStub swg = new ScanningWindowGeneratorStub();
            IBoundingBox correctBb          = initialBb.CreateInstance(new PointF(294, 281), new SizeF(80, 40));

            swg.ScanningWindows = new IBoundingBox[]
            {
                correctBb,
                initialBb.CreateInstance(new PointF(133, 222), new SizeF(80, 40))
            };
            foreach (IBoundingBox bb in swg.ScanningWindows)
            {
                bb.ScanningWindow = bb.CreateScanningWindow();
            }

            // arrange - instantiate classifier
            VarianceClassifier classifier = new VarianceClassifier(swg, 0.5);

            classifier.Initialize(initialFrame, initialBb);

            // arrange - define future frame
            Image <Gray, byte> futureFrame = new Image <Gray, byte>(Path.Combine(_resourceDir, "violeta_4.jpg"));

            // define expected
            List <int> expected = new List <int>()
            {
                0
            };

            // get actual
            List <int> actual = classifier.AcceptedWindows(futureFrame, new List <int>()
            {
                0, 1
            });

            // assert
            CollectionAssert.AreEqual(expected, actual);
        }
Exemple #3
0
        private static IDetector LoadDetector(IObjectModel objectModel)
        {
            // scanning window generator
            IScanningWindowGenerator scanningWindowGenerator = new ScanningWindowGenerator
                                                               (
                1.2f,
                0.1f,
                0.1f,
                100
                                                               );

            // cascaded classifier

            //      variance classifier
            IClassifier varianceClassifier = new VarianceClassifier(scanningWindowGenerator, 0.5);

            //      ensemble classifier
            int width  = objectModel.PatchSize.Width;
            int height = objectModel.PatchSize.Height;
            IPixelComparisonScheduler pcs  = new PixelComparisonScheduler(12, 3, width, height);
            IClassifier ensembleClassifier = new EnsembleClassifier(scanningWindowGenerator, pcs, 2);

            //      nn classifier
            NnClassifier nnClassifier = new NnClassifier(scanningWindowGenerator, objectModel, 0.75f, 0.55f);

            // instantiate cascaded classifier
            IClassifier cascadedClassifier = new CascadedClassifier(varianceClassifier, ensembleClassifier, nnClassifier);

            IDetector detector = new Detector
                                 (
                scanningWindowGenerator,
                cascadedClassifier,
                Service.NonMaximalBoundingBoxSuppress
                                 );

            return(detector);
        }
Exemple #4
0
        public Learner(
            IObjectModel objectModel,
            IDetector detector,
            PositivePatchSynthesisInfo initPositivePatchSysthesisInfo,
            NegativePatchPickingInfo initNegativePatchPickingInfo,
            PositivePatchSynthesisInfo runtimePositivePatchSysthesisInfo,
            NegativePatchPickingInfo runtimeNegativePatchPickingInfo,
            float sameSimilarityThreshold,
            float validConservativeSimilarityThreshold
            )
        {
            _objectModel = objectModel;
            _detector    = detector;
            _initPositivePatchSynthesisInfo       = initPositivePatchSysthesisInfo;
            _initNegativePatchPickingInfo         = initNegativePatchPickingInfo;
            _runtimePosPatchSynthesisInfo         = runtimePositivePatchSysthesisInfo;
            _runtimeNegativePatchPickingInfo      = runtimeNegativePatchPickingInfo;
            _sameSimilarityThreshold              = sameSimilarityThreshold;
            _validConservativeSimilarityThreshold = validConservativeSimilarityThreshold;

            _varianceClassifier = ((_detector as Detector).CascadedClassifier as CascadedClassifier).VarianceClassifier as VarianceClassifier;
            _ensembleClassifier = ((_detector as Detector).CascadedClassifier as CascadedClassifier).EnsembleClassifier as EnsembleClassifier;
            _nnClassifier       = ((_detector as Detector).CascadedClassifier as CascadedClassifier).NnClassifier as NnClassifier;
        }