Commit graph

741 commits

Author SHA1 Message Date
Michael Mayer
717ea83553 People: Improve subject and marker entity logs #22 2021-10-06 12:16:52 +02:00
Michael Mayer
07ae9b83f4 Backend: Add index update mutex to reduce database locking 2021-10-06 11:50:48 +02:00
Michael Mayer
444c94bf9e People: Improve performance & add counter to new faces page #1576 #1594 2021-10-06 11:19:07 +02:00
Eng Zer Jun
44f7700c0c
Enable module graph pruning and deprecate io/ioutil (#1600)
* Backend: Enable Go module graph pruning and lazy module loading

This commit applies the changes by running `go mod tidy -go=1.17` to
enable module graph pruning and lazy module loading supported by Go 1.17
or higher.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* Backend: Move from io/ioutil to io and os package

The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-10-06 07:10:50 +02:00
Michael Mayer
a5c2794611 CLI: Improve help for purge command 2021-10-05 22:44:27 +02:00
Michael Mayer
de63227767 CLI: Update help texts for commands and flags 2021-10-05 22:33:29 +02:00
Michael Mayer
a141665a6d Index: Reset file error when hash changes 2021-10-05 20:51:18 +02:00
Michael Mayer
f7153cdd21 People: Improve logging, command help, and handling of broken files #22 2021-10-05 18:42:39 +02:00
Michael Mayer
57aa8811fc People: Add additional face cluster config options #22 2021-10-05 10:12:48 +02:00
Michael Mayer
9a88d7fc6a Logs: Tweak messages and log levels for improved readability 2021-10-02 14:24:44 +02:00
Michael Mayer
ac70e0f324 Labels: Improve photo count accuracy for MariaDB / MySQL users #584 2021-10-01 19:23:08 +02:00
Michael Mayer
74233809b9 Covers: Rename "preview images" to "cover thumbs" for consistency #383 2021-10-01 16:44:50 +02:00
Michael Mayer
f6c18f7767 People: Count the number of photos for each subject #22
Also fixes issues with older versions of MariaDB, see #1544
2021-10-01 16:34:29 +02:00
Michael Mayer
e50ede6368 Covers: Improve performance of update queries #383 2021-10-01 00:05:49 +02:00
Michael Mayer
0d772c4dc3 Index: Purge orphan file entries #1559 2021-09-30 15:50:10 +02:00
Michael Mayer
582a330837 People: Add embeddings blacklist to reduce false positives #22 2021-09-30 13:44:23 +02:00
Michael Mayer
24eff21aa4 Search: Default to photo names and keywords #1517 #1560
Default to photo name when search term is too short or on the stop list.
Search full text index otherwise, which now include names of people
(requires reindexing).
2021-09-29 20:09:34 +02:00
Michael Mayer
771bcb1582 MariaDB: Improve queries and logs for MDEV-25362 bug #1544 2021-09-24 22:46:03 +02:00
Michael Mayer
e1d19f72f2 Index: Don't update subject face crops hashes for now 2021-09-24 13:34:37 +02:00
Michael Mayer
7c3f78284f Index: Improve logs 2021-09-24 13:18:54 +02:00
Michael Mayer
f23d288380 Index: Replace changed file hashes and remove orphan markers 2021-09-24 13:13:59 +02:00
Michael Mayer
eb8bc7b709 Backend: Improve resilience #1544 2021-09-23 23:46:17 +02:00
Michael Mayer
cd9b9f7da2 Album: Append ; to entity gorm tags 2021-09-23 17:05:56 +02:00
Michael Mayer
7767d0c892 People: Update photo and file counts after faces have been updated #22 2021-09-23 16:06:59 +02:00
Michael Mayer
03c9e82211 Albums: Fix share expiration date in field label #621
Looks like a pure frontend issue: It tried finding a date in
"UpdatedAt" while the actual field name is "ModifiedAt".
2021-09-23 15:38:55 +02:00
Michael Mayer
b6e4aa23d0 People: Add face dist to marker API JSON #22 2021-09-23 14:03:35 +02:00
Michael Mayer
ee2b49ef4b People: Add config options for face detection and clustering #22 2021-09-23 13:16:05 +02:00
Michael Mayer
4dd09f4502 People: Add "photoprism faces index" command for indexing faces only #22 2021-09-22 19:33:41 +02:00
Michael Mayer
6503008cc0
People: Prepare for release #22 (#1541) 2021-09-21 12:11:51 +02:00
theresa
a23cb0bf17 Tests: Add fixtures 2021-09-21 11:04:48 +02:00
Michael Mayer
8882cf0c61 People: Tweak face detection thresholds #22 2021-09-21 11:03:07 +02:00
Michael Mayer
ebe22d7bb7 People: Improve marker entity logs #22 2021-09-21 09:23:17 +02:00
Michael Mayer
11f7e76ca3 People: Remove orphan face crop thumbnails #22 2021-09-21 08:56:35 +02:00
Michael Mayer
4df0e4167a People: Upgrade dev database table names #22 2021-09-20 23:37:27 +02:00
Michael Mayer
070efcbc66 Search: Improve "year", "month", and "day" filters 2021-09-20 23:32:35 +02:00
Michael Mayer
534517a3d7 People: Improve face detection #22 2021-09-20 22:19:54 +02:00
Michael Mayer
8e5a97ed4a People: Simplify thumbnail API for face crops #22 2021-09-20 16:17:10 +02:00
theresa
895d41cd61 People: Add unit tests #22 2021-09-20 14:05:44 +02:00
theresa
9e786a42f0 People: Add unit tests #22 2021-09-20 13:12:28 +02:00
Michael Mayer
6c555457a0 People: Improve face thumbnail selection #22 2021-09-19 15:59:29 +02:00
Michael Mayer
1f92f294dd People: Normalize names #22 2021-09-19 13:35:44 +02:00
Michael Mayer
f7cc61edbc People: Shorten names in titles #22 2021-09-18 21:40:57 +02:00
Michael Mayer
e82533cdf0 People: Add unknown faces overview page #22 2021-09-18 20:41:30 +02:00
Michael Mayer
ed22f245db People: Add faces API endpoint & JS model #22 2021-09-18 15:32:39 +02:00
Michael Mayer
8492efebcf People: Improve face thumbnails on overview page #22 2021-09-17 18:51:24 +02:00
Michael Mayer
6bcfb29fa2 Labels: Show photo count #584 #1444 2021-09-17 16:13:47 +02:00
Michael Mayer
79961ec11b MySQL: Fix compatibility issues #22 #1519 2021-09-17 14:39:08 +02:00
Michael Mayer
ece15c6ade People: Add overview page with search and context menu #22 2021-09-17 14:26:12 +02:00
Michael Mayer
deaca4b588 Backend: Fix typo in comment 2021-09-06 14:39:30 +02:00
Michael Mayer
24107eef82 People: Remove deprecated development database tables #22 2021-09-06 14:32:31 +02:00
Michael Mayer
92748180c1 Calendar: Improve hiding empty months #1456 2021-09-06 11:19:18 +02:00
Michael Mayer
fb10bda98f People: Limit sample radius to reduce false positives #22 2021-09-06 05:25:20 +02:00
Michael Mayer
aae4997da1 People: Avoid adding duplicates faces #22 2021-09-06 05:13:53 +02:00
Michael Mayer
b853317cdf People: Tweak face clustering parameters #22 2021-09-06 03:24:11 +02:00
Michael Mayer
527a3ff015 People: Refresh photo metadata after faces got identified #22 2021-09-06 01:16:36 +02:00
Michael Mayer
0ebff285e5 People: Refresh photo metadata when subjects change #22 2021-09-06 00:52:10 +02:00
Michael Mayer
bd8f8b1ddb People: Remove review flag from markers with recognized faces #22 2021-09-05 21:34:51 +02:00
Michael Mayer
6d1179dc03 People: Refactor face cropping #22 2021-09-05 17:10:52 +02:00
Michael Mayer
6f5e839e2f People: Move crop package to internal #22 2021-09-05 11:05:33 +02:00
Michael Mayer
2bde7e5696 Panoramas: Increase projection type string limit to 32 characters #1508 2021-09-03 19:02:26 +02:00
Michael Mayer
34c8f9d7b1 People: Implement crop thumbnail API #22 2021-09-03 17:42:37 +02:00
Michael Mayer
57b79f983a People: Upgrade temp dev table names #22 2021-09-03 16:26:01 +02:00
Michael Mayer
c520cb4ee4 People: Add autocomplete for selecting a person #22 2021-09-03 16:14:09 +02:00
Michael Mayer
02932c3758 People: Change field order in marker_json.go #22 2021-09-02 23:50:39 +02:00
Michael Mayer
c179a790b8 People: Improve face crop caching #22 2021-09-02 23:47:37 +02:00
theresa
c61a0f7d0e Tests: Add unit tests 2021-09-02 17:44:27 +02:00
theresa
157823e65d Tests: Update fixtures 2021-09-02 17:43:46 +02:00
Michael Mayer
97af133763 People: Add subjects API #22 2021-09-02 16:12:31 +02:00
Michael Mayer
5f07b8bb10 Config: Refactor client data types 2021-09-02 14:45:26 +02:00
Michael Mayer
9acd4a25b9 People: Generate photo titles from subject names #22 2021-09-02 14:23:40 +02:00
Michael Mayer
1be409d654 People: Add SubjectNames() to file entity #22 2021-09-02 11:12:42 +02:00
Michael Mayer
e923391427 People: Improve collision handling and subject renaming #22 2021-09-01 21:16:08 +02:00
Michael Mayer
69014e8216 People: Switch to UIDs for marker API and entity #22 2021-09-01 20:46:15 +02:00
theresa
995b87373c Tests: Refactor tests to prevent nil pointer 2021-09-01 14:05:15 +02:00
Michael Mayer
fd785faf68 People: Automatically resolve face cluster collisions #22 2021-09-01 12:48:17 +02:00
Michael Mayer
a2ff0477c9 People: Fix face cluster optimization #22 2021-08-31 20:08:53 +02:00
Michael Mayer
86f8bf58a7 People: Improve MergeFaces() resilience and logging #22 2021-08-31 15:33:42 +02:00
theresa
6b10ae5511 People: Add unit tests #22 2021-08-31 14:59:53 +02:00
Michael Mayer
bc3036599b People: Refactor album, subject, and label previews #22 2021-08-30 18:58:27 +02:00
theresa
052ff011ac People: Add unit tests #22 2021-08-30 17:20:39 +02:00
theresa
1e33ce9e17 People: Add unit tests #22 2021-08-30 15:34:41 +02:00
theresa
5e88c386b6 People: Add unit tests #22 2021-08-30 14:58:37 +02:00
theresa
fb5cf1b9c0 People: Add unit tests #22 2021-08-30 13:40:14 +02:00
theresa
6187525f07 People: Add fixtures #22 2021-08-30 13:39:53 +02:00
Michael Mayer
11d1034752 People: Add keywords, subjects, and albums search filters #22 #882 2021-08-29 16:16:49 +02:00
Michael Mayer
a0f49f2d56 People: Sync subject name with markers table #22 2021-08-29 13:42:34 +02:00
Michael Mayer
d198a056a7 People: Improve face matching performance and accuracy #22
By default, matching is now limited to unmatched faces and markers.
2021-08-29 13:26:05 +02:00
Michael Mayer
0503011f87 People: Add "faces audit" command #22 2021-08-28 15:26:26 +02:00
Michael Mayer
327cd20a50 Run "make fmt" 2021-08-28 13:55:37 +02:00
theresa
630a599955 People: Add unit tests #22 2021-08-27 16:21:10 +02:00
theresa
64ad674f5f Tests: Add user fixtures and unit test 2021-08-27 15:33:33 +02:00
theresa
3bdabdedef People: Add fixtures unit tests #22 2021-08-27 15:33:06 +02:00
theresa
49ad7bb64a People: Add unit tests #22 2021-08-27 09:53:47 +02:00
theresa
af83a51496 Tests: Add unit tests 2021-08-26 18:02:53 +02:00
theresa
d0d62f470a Tests: Add unit tests 2021-08-26 17:26:48 +02:00
theresa
cfa105d3d6 Tests: Add file fixture 2021-08-26 17:24:48 +02:00
theresa
a2671b3428 People: Add unit tests #22 2021-08-26 16:31:05 +02:00
theresa
29be2cca27 People: Throw correct error in ReportCollision when embedding is empty #22 2021-08-26 16:00:11 +02:00
theresa
1761e139de People: Add unit tests #22 2021-08-26 15:51:21 +02:00
theresa
3a601f3953 People: Add unit tests #22 2021-08-26 11:58:52 +02:00
theresa
01742c13ea People: Add face + subject fixtures #22 2021-08-26 11:58:28 +02:00
theresa
c51452a90a People: Add unit tests #22 2021-08-25 17:54:06 +02:00
theresa
c99059567a People: Skip midpoint calculation if dimensions don't match #22 2021-08-25 17:53:45 +02:00
theresa
7a90c0209e Tests: Add tests for internal/entity 2021-08-25 15:29:00 +02:00
Michael Mayer
06835a3c5c People: Optimize face clustering and matching #22 2021-08-24 20:15:36 +02:00
Timo Volkmann
e71c398b1e Auth: Set role admin on user creation #98 2021-08-24 18:17:03 +02:00
Michael Mayer
3fc7b1b523 People: Match faces less often by default #22 2021-08-24 15:20:05 +02:00
Michael Mayer
03cdc8bb7d People: Improve edit UI and stability #22 2021-08-24 14:27:34 +02:00
theresa
9238d569e4 Tests: Update fixtures 2021-08-23 17:20:03 +02:00
Michael Mayer
fefe70f9a4 People: Improve face clustering and matching #22 2021-08-23 16:22:01 +02:00
Timo Volkmann
5442c04c75 Auth: Add user delete Tests #98 2021-08-23 11:52:37 +02:00
Michael Mayer
981c51f977 People: Optimize manually clustered faces #22 2021-08-22 21:06:44 +02:00
Michael Mayer
2e85b3cccd People: Split facial recognition into smaller functions #22
Clustering and matching have been improved along the way. This opens
the door for further optimizations while keeping the code readable.
2021-08-22 16:14:34 +02:00
Michael Mayer
acde5c2dae People: Reset related fields when clearing marker subject #22 2021-08-21 17:11:02 +02:00
Michael Mayer
d88d9b3781 People: Add API endpoint for removing marker subject associations #22 2021-08-21 16:36:00 +02:00
Michael Mayer
fa8e02b430 Auth: Refactor user management commands #98 2021-08-20 00:10:26 +02:00
Michael Mayer
5cec098524 People: Improve face matching #22 2021-08-19 23:12:51 +02:00
Michael Mayer
885024d592 People: Improve face clustering and indexing #22 2021-08-19 21:12:38 +02:00
Michael Mayer
29a65dbaab People: Fork clusters library with fixed dbscan implementation #1478 2021-08-19 14:24:30 +02:00
Michael Mayer
6911c9f78b People: Change unknown face id #22 2021-08-19 11:36:45 +02:00
Timo Volkmann
da7e4fbc97 Auth: Refactor user entity functions #98 2021-08-18 20:18:39 +02:00
Michael Mayer
6a450c463e People: Add PhotoUID to Subject entity #22 2021-08-18 11:33:23 +02:00
Michael Mayer
db95ceba65 People: Add threshold option for faces worker #22 2021-08-17 22:49:32 +02:00
theresa
e8d07e070c Tests: Update fixtures 2021-08-17 17:26:47 +02:00
theresa
b2fe042cf3 Tests: Update file fixtures 2021-08-17 17:26:47 +02:00
theresa
e27d363c3e Tests: Update photo fixtures 2021-08-17 17:26:47 +02:00
Timo Volkmann
19e9c7560e Auth: Add user entity functions and tests #98 2021-08-16 20:51:55 +02:00
theresa
35869c6620 Tests: Adapt tests to fixture updates 2021-08-16 18:19:23 +02:00
theresa
2a02bf74e8 Tests: Update file fixtures 2021-08-16 18:18:55 +02:00
theresa
cb427cf5d5 Tests: Update photo fixtures 2021-08-16 18:18:37 +02:00
theresa
41f0e08ba6 Tests: Adapt tests to updated fixtures 2021-08-16 17:15:06 +02:00
theresa
8895f95841 Tests: Update file fixtures 2021-08-16 17:14:37 +02:00
theresa
6c86800d97 Tests: Update photo fixtures 2021-08-16 17:14:18 +02:00
theresa
b877c14ada Tests: Adapt tests to fixture updates 2021-08-16 15:19:10 +02:00
theresa
2f674c5bb7 Tests: Update places fixtures 2021-08-16 15:18:30 +02:00
theresa
49c40b9d9a Tests: Update file fixtures 2021-08-16 15:18:06 +02:00
theresa
0deba0d4c7 Tests: Update photo fixtures 2021-08-16 15:17:43 +02:00
Michael Mayer
003982afe0 People: Remove face embeddings and landmarks from JSON response #22
Improves performance by reducing response size.
2021-08-16 01:45:36 +02:00
Michael Mayer
da94e9ed0f People: Refactor faces worker and related entities #22 2021-08-16 00:29:36 +02:00
Michael Mayer
39856657d5 People: Refactor faces worker and related entities #22 2021-08-15 20:57:26 +02:00
Michael Mayer
b7d9557f67 People: Automatically update faces and people on user input #22 2021-08-14 21:37:57 +02:00
Michael Mayer
41cc0c596d People: Match markers with known faces and people #22 2021-08-14 20:48:38 +02:00
Michael Mayer
57c5f1f2fb People: Match known faces in one go #22
This commit also adds additional test fixtures.
2021-08-14 18:13:03 +02:00
Michael Mayer
b6b38b54bb People: Move detectFaces() to index_faces.go #22 2021-08-14 16:01:44 +02:00
Michael Mayer
9057e39fb2 People: Add sample threshold to faces worker #22 2021-08-14 15:45:51 +02:00
Michael Mayer
45355c7303 People: Update entity database table names #22
Work in progress.
2021-08-13 20:31:41 +02:00
Timo Volkmann
754a48c8d5 Auth: adapt tests for recent changes 2021-08-12 20:33:14 +02:00
Timo Volkmann
7f90e3615b Auth: Add tests for finding users by uid #98 2021-08-12 20:33:14 +02:00
Michael Mayer
e78c4df22e People: Create person based on existing marker labels #22
Work in progress.
2021-08-12 17:49:48 +02:00
Michael Mayer
d767e50b37 People: Improve face clustering #22
Work in progress.
2021-08-12 12:05:10 +02:00