Documentation
¶
Overview ¶
Package objectdetection defines a functional way to create object detection pipelines by feeding in images from a gostream.VideoSource source.
Index ¶
- func ConnectedComponents(img image.Image, isValid func(image.Image, image.Point) bool) ([][]image.Point, []image.Rectangle)
- func Overlay(img image.Image, dets []Detection) (image.Image, error)
- func OverlayText(img image.Image, text string) image.Image
- type ColorDetectorConfig
- type Detection
- type Detector
- type Postprocessor
- type Preprocessor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConnectedComponents ¶ added in v0.59.0
func ConnectedComponents(img image.Image, isValid func(image.Image, image.Point) bool) ([][]image.Point, []image.Rectangle)
ConnectedComponents takes in an image frame and a function that determines if a point in the image is valid and returns two slices. The first returned slice is a 2D slice of Points, with each 1D slice corresponding to a contiguous set of valid Points within the image. The second returned slice contains Rectangles, each of which constitutes the bounding box for the set of valid Points at the same index.
Types ¶
type ColorDetectorConfig ¶
type ColorDetectorConfig struct { resource.TriviallyValidateConfig SegmentSize int `json:"segment_size_px"` HueTolerance float64 `json:"hue_tolerance_pct"` SaturationCutoff float64 `json:"saturation_cutoff_pct,omitempty"` ValueCutoff float64 `json:"value_cutoff_pct,omitempty"` DetectColorString string `json:"detect_color"` // hex string "#RRGGBB" Label string `json:"label,omitempty"` }
ColorDetectorConfig specifies the fields necessary for creating a color detector.
type Detection ¶
Detection returns a bounding box around the object and a confidence score of the detection.
type Detector ¶
Detector returns a slice of object detections from an input image.
func Build ¶
func Build(prep Preprocessor, det Detector, post Postprocessor) (Detector, error)
Build zips up a preprocessor-detector-postprocessor stream into a detector.
func NewColorDetector ¶
func NewColorDetector(cfg *ColorDetectorConfig) (Detector, error)
NewColorDetector is a detector that identifies objects based on color. It takes in a hue value between 0 and 360, and then defines a valid range around the hue of that color based on the tolerance. The color is considered valid if the pixel is between (hue - tol) <= color <= (hue + tol) and if the saturation and value level are above their cutoff points.
type Postprocessor ¶
Postprocessor defines a function that filters/modifies on an incoming array of Detections.
func NewAreaFilter ¶
func NewAreaFilter(area int) Postprocessor
NewAreaFilter returns a function that filters out detections below a certain area.
func NewLabelConfidenceFilter ¶ added in v0.26.0
func NewLabelConfidenceFilter(labels map[string]float64) Postprocessor
NewLabelConfidenceFilter returns a function that filters out detections based on label map. Does not filter when input is empty.
func NewLabelFilter ¶ added in v0.17.0
func NewLabelFilter(labels map[string]interface{}) Postprocessor
NewLabelFilter returns a function that filters out detections without one of the chosen labels. Does not filter when input is empty.
func NewScoreFilter ¶
func NewScoreFilter(conf float64) Postprocessor
NewScoreFilter returns a function that filters out detections below a certain confidence.
func SortByArea ¶
func SortByArea() Postprocessor
SortByArea returns a function that sorts the list of detections by area (largest first).
type Preprocessor ¶
Preprocessor will apply processing to an input image before feeding it into the detector.
func ComposePreprocessors ¶
func ComposePreprocessors(pSlice []Preprocessor) Preprocessor
ComposePreprocessors takes in a slice of Preprocessors and returns one Preprocessor function.
func RemoveColorChannel ¶
func RemoveColorChannel(col string) (Preprocessor, error)
RemoveColorChannel will set the requested channel color to 0 in every picture. only "R", "G", and "B" are allowed.