Versions in this module Expand all Collapse all v0 v0.1.1 Dec 18, 2025 v0.1.0 Dec 3, 2025 Changes in this version + var AvailableModels = map[string]ModelInfo + var SupportedImageFormats = []string + func GetImageInfo(filepath string) (width, height, channels int, err error) + func GetModelPath(outputDir, modelKey string) (string, error) + func IsSupportedImageFormat(filename string) bool + func ListAvailableModels() + func LoadImage(filepath string) (gocv.Mat, error) + func LoadImageFromBytes(data []byte) (gocv.Mat, error) + func LoadImageFromStdImage(img image.Image) (gocv.Mat, error) + func SaveImage(filepath string, img gocv.Mat) error + type Config struct + FaceEncoderConfig string + FaceEncoderModel string + PigoCascadeFile string + type DownloadProgress struct + Downloaded int64 + Elapsed time.Duration + Percentage float64 + Speed float64 + Total int64 + type FaceFeature struct + Feature []float32 + PersonID string + type FaceRecognizer struct + func NewFaceRecognizer(config Config, opts ...Option) (*FaceRecognizer, error) + func (fr *FaceRecognizer) AddFaceSample(personID string, img gocv.Mat) error + func (fr *FaceRecognizer) AddPerson(id, name string) error + func (fr *FaceRecognizer) Close() error + func (fr *FaceRecognizer) DetectFaces(img image.Image) []image.Rectangle + func (fr *FaceRecognizer) ExtractFeature(faceImg gocv.Mat) ([]float32, error) + func (fr *FaceRecognizer) GetModelConfig() ModelConfig + func (fr *FaceRecognizer) GetPerson(id string) (*Person, error) + func (fr *FaceRecognizer) GetSampleCount(personID string) (int, error) + func (fr *FaceRecognizer) GetStorage() FaceStorage + func (fr *FaceRecognizer) GetThreshold() float32 + func (fr *FaceRecognizer) ListPersons() []*Person + func (fr *FaceRecognizer) LoadDatabase(filepath string) error + func (fr *FaceRecognizer) Recognize(img gocv.Mat) ([]RecognizeResult, error) + func (fr *FaceRecognizer) RemovePerson(id string) error + func (fr *FaceRecognizer) SaveDatabase(filepath string) error + func (fr *FaceRecognizer) SetThreshold(threshold float32) + type FaceStorage interface + Close func() error + DeletePerson func(id string) error + LoadAllPersons func() ([]*Person, error) + LoadPerson func(id string) (*Person, error) + PersonExists func(id string) (bool, error) + SavePerson func(person *Person) error + type FileStorage struct + func NewFileStorage(baseDir string) (*FileStorage, error) + func (s *FileStorage) Close() error + func (s *FileStorage) DeletePerson(id string) error + func (s *FileStorage) LoadAllPersons() ([]*Person, error) + func (s *FileStorage) LoadPerson(id string) (*Person, error) + func (s *FileStorage) PersonExists(id string) (bool, error) + func (s *FileStorage) SavePerson(person *Person) error + type JSONStorage struct + func NewJSONStorage(filepath string) (*JSONStorage, error) + func (s *JSONStorage) Close() error + func (s *JSONStorage) DeletePerson(id string) error + func (s *JSONStorage) LoadAllPersons() ([]*Person, error) + func (s *JSONStorage) LoadPerson(id string) (*Person, error) + func (s *JSONStorage) PersonExists(id string) (bool, error) + func (s *JSONStorage) SavePerson(person *Person) error + type MemoryStorage struct + func NewMemoryStorage() *MemoryStorage + func (s *MemoryStorage) Close() error + func (s *MemoryStorage) DeletePerson(id string) error + func (s *MemoryStorage) LoadAllPersons() ([]*Person, error) + func (s *MemoryStorage) LoadPerson(id string) (*Person, error) + func (s *MemoryStorage) PersonExists(id string) (bool, error) + func (s *MemoryStorage) SavePerson(person *Person) error + type ModelConfig struct + Crop bool + FeatureDim int + InputSize image.Point + MeanValues gocv.Scalar + ScaleFactor float64 + SwapRB bool + Type ModelType + type ModelDownloader struct + OnProgress ProgressCallback + OutputDir string + ProxyURL string + SkipVerification bool + Timeout time.Duration + func NewModelDownloader(outputDir string) *ModelDownloader + func (md *ModelDownloader) Download(modelKey string) error + func (md *ModelDownloader) DownloadAll() error + func (md *ModelDownloader) DownloadModel(model ModelInfo) error + func (md *ModelDownloader) DownloadRequired() error + type ModelInfo struct + Description string + Filename string + MD5 string + ModelType ModelType + Name string + Size int64 + URL string + type ModelType string + const ModelArcFace + const ModelCustom + const ModelDlib + const ModelFaceNet + const ModelOpenFace + type Option func(*FaceRecognizer) + func WithCustomModel(config ModelConfig) Option + func WithMaxFaceSize(size int) Option + func WithMinFaceSize(size int) Option + func WithModelType(modelType ModelType) Option + func WithPigoParams(params PigoParams) Option + func WithSimilarityThreshold(threshold float32) Option + func WithStorage(storage FaceStorage) Option + type Person struct + Features []FaceFeature + ID string + Name string + type PigoParams struct + MaxSize int + MinSize int + QualityThreshold float32 + ScaleFactor float64 + ShiftFactor float64 + type ProgressCallback func(progress DownloadProgress) + type RecognizeResult struct + BoundingBox image.Rectangle + Confidence float32 + PersonID string + PersonName string + type StorageMetadata struct + LastUpdated time.Time + TotalFeatures int + TotalPersons int + func GetStorageMetadata(storage FaceStorage) (*StorageMetadata, error)