/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
internal/entity/faces.go
61 строка
1 KB
Michael Mayer
Backend: Rename /internal/tensorflow to /internal/ai
02 июл 2024, 09:08
02 июл 2024, 09:08
3c6006d
Код
Авторство
О чём код?
package entity import ( "fmt" "github.com/photoprism/photoprism/internal/ai/face" ) // Faces represents a Face slice. type Faces []Face // Embeddings returns all face embeddings in this slice. func (f Faces) Embeddings() (embeddings face.Embeddings) { for _, m := range f { embeddings = append(embeddings, m.Embedding()) } return embeddings } // IDs returns all face IDs in this slice. func (f Faces) IDs() (ids []string) { for _, m := range f { ids = append(ids, m.ID) } return ids } // Delete (soft) deletes all subjects. func (f Faces) Delete() error { for _, m := range f { if err := m.Delete(); err != nil { return err } } return nil } // OrphanFaces returns unused faces. func OrphanFaces() (Faces, error) { orphans := Faces{} err := Db(). Where(fmt.Sprintf("id NOT IN (SELECT DISTINCT face_id FROM %s)", Marker{}.TableName())). Find(&orphans).Error return orphans, err } // DeleteOrphanFaces finds and (soft) deletes all unused face clusters. func DeleteOrphanFaces() (count int, err error) { orphans, err := OrphanFaces() if err != nil { return 0, err } return len(orphans), orphans.Delete() }