Пакетная загрузка фотографий через консоль
Помимо веб-интерфейса для пакетной загрузки фотографий в картотеку можно использовать консольную утилиту findface-security-uploader. Рекомендуется предпочесть данную утилиту веб-интерфейсу, если количество загружаемых фотографий превышает 10 000.
Предупреждение
В текущей версии утилита findface-security-uploader не поддерживает автомобили и силуэты, только лица.
Совет
Для вызова справки findface-security-uploader выполните команду:
findface-security-uploader --help
Usage: findface-security-uploader [OPTIONS] COMMAND [ARGS]...
Options:
--job PATH Job file (default: enroll-job.db)
--log-level TEXT Log level
--fsync BOOLEAN Call fsync() to prevent data loss on power failure
--help Show this message and exit.
Commands:
add Add items from CSV or TSV file to job
print Print contents of job file as JSON
run Run upload job
findface-security-uploader add --help
Usage: findface-security-uploader add [OPTIONS] FILES...
Options:
--format [csv|tsv] Input file format - CSV or TSV
--delimiter TEXT Field delimiter - by default it's "\t" for TSV and ","
for CSV
--help Show this message and exit.
findface-security-uploader print --help
Usage: findface-security-uploader print [OPTIONS]
Print contents of job file as JSON
Options:
--failed Show only failed images
--noface Show only images without detection
--help Show this message and exit.
findface-security-uploader run --help
Usage: uploader.py run [OPTIONS]
Run upload job
Options:
--parallel INTEGER Number of enroll threads (default: 10)
--api TEXT API url (default: http://127.0.0.1:80/) [required]
--user TEXT API username [required]
--password TEXT API password [required]
--watch-lists TEXT Comma-separated list of card list ids [required]
--inactive Mark new cards as inactive
--failed Include failed images
--noface Include images without detection
--all-faces Enroll all found faces on each image
--logging-delta INTEGER Logging period delta
--help Show this message and exit.
Выполните следующие действия:
Подготовьте CSV- или TSV-файл со списком фотографий и метаданными.
Важно
В качестве источника метаданных файл должен иметь следующий формат:
путь к фотографии | метаданные
.Для подготовки TSV-файла можно использовать скрипт, аналогичный
данному
или командуfind
.Примечание
Как скрипт, так и команда в примерах создают файл
images.tsv
с данными в форматеполный путь к файлу с фотографией | метаданные
. В качестве метаданных будет создана строка с именем файла.Для запуска скрипта на создание TSV-файла со списком фотографий из указанного каталога (
/home/user/25_celeb/
в примере) выполните следующую команду:python3 tsv_builder.py /home/user/25_celeb/
Пример использования команды
find
:find photos/ -type f -iname '*g' | while read x; do y="${x%.*}"; printf "%s\t%s\n" "$x" "${y##*/}"; done
Создайте файл задания (job-файл) из CSV- или TSV-файла, используя метод
add
утилиты. В результате в текущем каталоге будет создан файлenroll-job.db
.findface-security-uploader add images.tsv
Опции
add
:--format
: формат файла, по умолчаниюtsv
,--delimiter
: используемый разделитель, по умолчанию”\t”
для TSV-файла,”,”
для формата CSV.
Примечание
Файл job представляет собой sqlite-базу, которая может быть открыта в консоли sqlite3.
Выполните задание job, используя метод
run
утилиты.findface-security-uploader run --watch-lists 2 --api http://127.0.0.1:80 --user admin --password password
Важные опции
run
:--parallel
: количество потоков загрузки фотографий, по умолчанию 10. Чем больше потоков, тем быстрее будет завершена загрузка, однако также потребуется и большее количество ресурсов.--all-faces
: загрузить все лица, если на фотографии их несколько.--api
: URL API компонентаfindface-security
, по умолчаниюhttp://127.0.0.1:80/
. Обязательная опция.--user
: имя пользователя. Обязательная опция.--password
: пароль. Обязательная опция.--watch-lists
: перечень разделенных запятой id списков наблюдения, в которые нужно добавить фотографии. Обязательная опция.--failed
: в случае неудачи при обработке job-файла исправьте ошибку и повторите попытку с данной опцией.--inactive
: отметить новые карточки как неактивные.--noface
: по умолчанию изображения, классифицированные как не имеющие лиц, получают статусNOFACE
и автоматически исключаются из загрузки. Чтобы попытаться повторно обнаружить лица на таких изображениях, перезапустите job-задание с данной опцией. Если повторное обнаружение снова даст отрицательный результат, изображение будет пропущено, а в журнале загрузки появится соответствующая запись.
(Опционально) Выведите в формате JSON результаты обработки задания job. При необходимости можно вывести только изображения, которые не удалось загрузить, и изображения без обнаруженных лиц.
findface-security-uploader print --failed findface-security-uploader print --noface