James Ketrenos ccdfd2513f Fixed lots of issues
Signed-off-by: James Ketrenos <james_git@ketrenos.com>
2023-01-20 16:08:32 -08:00
2023-01-19 02:24:06 -08:00
2023-01-11 15:27:44 -08:00
2023-01-13 15:25:34 -08:00
2020-01-11 19:45:07 -08:00
2023-01-20 15:14:20 -08:00
2023-01-20 16:08:32 -08:00
2023-01-12 15:41:55 -08:00
2023-01-20 15:14:20 -08:00
2023-01-20 16:08:32 -08:00
2023-01-20 16:08:32 -08:00
2023-01-12 15:43:12 -08:00
2020-01-05 21:50:48 -08:00
2018-08-22 14:29:34 -07:00
2023-01-17 10:15:03 -08:00
2023-01-11 15:39:15 -08:00

Overview

This photo manager performs the following:

  1. Scan a target directory looking for any photo that has been updated, removed, or added
  2. Process that image, extracting EXIF data, and adding to the DB
  3. Schedule backend processing of all photos that have not been face scanned with the latest FACE_SCANNER version

Populating...

  1. App builds photo DB. This occurs via 'server/app.js' (npm start)
  2. Faces are identified in all photos. This occurs in 'ketrface/detect.py' (python3 detect.py)
  3. mtcnn finds faces (threshold > 0.95)
  4. vgg-face is used to generate detectors
  5. Faces are clustered into groups. This occurs in 'ketrface/cluster.py' (python3 cluster.py)
  6. DBSCAN generates first set of clusters
  7. Centroid calculated for all clusters
  8. Faces are pruned from clusters if they exceed a threshold
  9. Clusters are merged based on centroid distances
  10. Clusters are examined to ensure only one face per image is assigned an identity. This occurs in 'ketrface/split.py' (python3 cluster.py)
  11. echo "select f1.id,f2.id,f1.photoId,f1.identityId from faces as f1 join faces as f2 on f2.identityId=f1.identityId and f1.photoId=f2.photoId and f1.id!=f2.id;"
  12. For each face in the same photo, determine which face is closest to the cluster centroid. Move the other to cluster-1.{N} where N increases for each duplicate

To use the Docker

Edit the environment file '.env' and set PICTURES to the correct location of pictures.

Also change the PORT to the port that will be nginx redirected to from your main nginx server -- this allows you to run multiple instances of the photo application on different paths, with different image sets.

docker build . -t photos
docker-compose up -d

At this point, .env's PORT (default 8123) will be supporting the photo app.

NEF processing uses darktable

sudo apt install -y darktable

Create photos user for DB

Photos is currently using sqlite, which means you don't need to do anything fancy beyond having run 'npm install' to get sequelize and sqlite3 installed.

Description
ketrenos photo management system
Readme 36 MiB