Exemple #1
0
func testPos(tmpl *detect.FeatTmpl, dir string, pyrStep float64, hogBin int, opts featpyr.DetectOpts, valMinInter float64) (*detect.ResultSet, error) {
	// Load list of annotations.
	anns, err := loadLines(path.Join(dir, "Test", "annotations.lst"))
	if err != nil {
		return nil, err
	}

	// Test each image and combine.
	var results *detect.ResultSet
	for i := range anns {
		imfile, refs, err := loadAnnotation(path.Join(dir, anns[i]))
		if err != nil {
			return nil, err
		}
		im, err := loadImage(path.Join(dir, imfile))
		if err != nil {
			return nil, err
		}
		// Get detections.
		dets := evalImage(tmpl, im, pyrStep, hogBin, opts)
		x := detect.ValidateMatch(dets, refs, valMinInter)
		results = results.Merge(x)
	}
	return results, nil
}
Exemple #2
0
// Runs detector across a single image and validates results.
func testImage(tmpl *detect.FeatTmpl, annot inria.Annot, dir string, opts DetectOpts, mininter float64) (*detect.ResultSet, error) {
	im, err := loadImage(path.Join(dir, annot.Image))
	if err != nil {
		return nil, err
	}
	// Get detections.
	dets := detectImage(tmpl, im, opts.Margin, opts.PyrStep, opts.HOGBin, opts.LocalMax, opts.MaxIOU)
	val := detect.ValidateMatch(dets, annot.Rects, mininter)
	return val, nil
}