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); }
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); }
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; }