public void TestProcessChipResults() { var offset = new SKPointI(300, 600); var observations = new[] { new Observation(_categoryManager.GetOrCreate(1, "Car"), 0.9, new SKRect(0.1f, 0.2f, 0.3f, 0.4f)), new Observation(_categoryManager.GetOrCreate(2, "Building"), 0.78, new SKRect(.2f, 0.3f, 0.5f, 0.8f)) }; PostProcessingService.ProcessChipResults(offset, observations); AssertUtils.AreEqualIEnumerable(new[] { new Observation( _categoryManager.GetOrCreate(1, "Car"), 0.9, new SKRect(offset.X + 0.1f * SharedConstants.DefaultChipWidth, offset.Y + 0.2f * SharedConstants.DefaultChipHeight, offset.X + 0.3f * SharedConstants.DefaultChipWidth, offset.Y + 0.4f * SharedConstants.DefaultChipHeight)), new Observation( _categoryManager.GetOrCreate(2, "Building"), 0.78, new SKRect(offset.X + 0.2f * SharedConstants.DefaultChipWidth, offset.Y + 0.3f * SharedConstants.DefaultChipHeight, offset.X + 0.5f * SharedConstants.DefaultChipWidth, offset.Y + 0.8f * SharedConstants.DefaultChipHeight)), }, observations, AssertUtils.AreEqualObservation); }
public void TestNonMaximumSuppression_IOUGreaterThanThreshold() { var observation1 = new Observation(_category, 0.78, new SKRect(1f, 1f, 7f, 7f)); var observation2 = new Observation(_category, 0.9, new SKRect(0f, 0f, 6f, 6f)); var observations = new[] { observation1, observation2 }; var result = PostProcessingService.NonMaximumSuppression(observations, IOUThreshold, ConfidenceThreshold) .ToList(); AssertUtils.AreEqualIEnumerable(new[] { observation2 }, result); }
public void TestNonMaximumSuppression_NonOverlapping() { var observation1 = new Observation(_category, 0.9, new SKRect(0.1f, 0.2f, 0.3f, 0.4f)); var observation2 = new Observation(_category, 0.78, new SKRect(0.4f, 0.5f, 0.5f, 0.6f)); var observations = new[] { observation1, observation2 }; var result = PostProcessingService.NonMaximumSuppression(observations, IOUThreshold, ConfidenceThreshold) .ToList(); AssertUtils.AreEqualIEnumerable(observations, result); }
public void TestNonMaximumSuppression_CompletelyOverlappingIOUEqualToThreshold() { var observation1 = new Observation(_category, 0.9, new SKRect(1f, 2f, 5f, 8f)); var observation2 = new Observation(_category, 0.78, new SKRect(2f, 3f, 5f, 7f)); var observations = new[] { observation1, observation2 }; var result = PostProcessingService.NonMaximumSuppression(observations, IOUThreshold, ConfidenceThreshold) .ToList(); AssertUtils.AreEqualIEnumerable(observations, result); }