Распознавание лица (howdy): различия между версиями

Материал из ALT Linux Wiki
 
(не показано 7 промежуточных версий 2 участников)
Строка 2: Строка 2:
Howdy обеспечивает аутентификацию пользователя по геометрии лица. Howdy использует встроенные ИК-излучатели и камеру в сочетании с функцией распознавания лиц.
Howdy обеспечивает аутентификацию пользователя по геометрии лица. Howdy использует встроенные ИК-излучатели и камеру в сочетании с функцией распознавания лиц.


Используя Howdy совместно с PAM, можно настроить аутентификацию по геометрии лица везде, где до этого работала парольная аутентификация: вход в систему, экран блокировки, sudo, su и т.д.
Используя Howdy совместно с PAM, можно настроить аутентификацию по геометрии лица везде, где до этого работала парольная аутентификация: вход в систему, экран блокировки, [[sudo]], [[su]] и т.д.
 
Список поддерживаемых камер и их настроек можно посмотреть [https://github.com/boltgolt/howdy/wiki/Cameras-that-have-been-verified-to-work-with-Howdy здесь].
 
{{Note|Рекомендуется использовать ИК(IR)-камеру, так как её нельзя обмануть фотографией или изображением на смартфоне.}}


== Установка ==
== Установка ==
Строка 9: Строка 13:
Для возможности настройки в графическом интерфейсе на платформах с KDE (дистрибутивы [[Kworkstation|Альт Рабочая станция К]], [[Образование|Альт Образование]]) установить пакет {{pkg|kde5-kcm-howdy}}:
Для возможности настройки в графическом интерфейсе на платформах с KDE (дистрибутивы [[Kworkstation|Альт Рабочая станция К]], [[Образование|Альт Образование]]) установить пакет {{pkg|kde5-kcm-howdy}}:
<syntaxhighlight lang="bash"># apt-get install kde5-kcm-howdy</syntaxhighlight>
<syntaxhighlight lang="bash"># apt-get install kde5-kcm-howdy</syntaxhighlight>
Для возможности настройки Howdy в графическом интерфейсе на платформах отличных от KDE можно установить пакет {{pkg|howdy-gtk}}:
<syntaxhighlight lang="bash"># apt-get install howdy-gtk</syntaxhighlight>


== Добавление модели лица в Howdy ==  
== Добавление модели лица в Howdy ==  
=== Графический интерфейс ===
=== Графический интерфейс ===
==== Модуль «Распознавание лица» (KDE) ====
В [[KDE]] для настройки параметров Howdy и создания моделей лица можно воспользоваться графическим интерфейсом:
В [[KDE]] для настройки параметров Howdy и создания моделей лица можно воспользоваться графическим интерфейсом:
«Параметры системы KDE5» → «Предпочтения пользователя» → «Распознавание лица».
«Параметры системы KDE5» → «Предпочтения пользователя» → «Распознавание лица».
Строка 25: Строка 33:


В этом же окне можно настроить:
В этом же окне можно настроить:
*«Порог яркости» — пропустить кадр, если нижняя 1/8 гистограммы превышает этот процент от общего числа (чем ниже этот параметр, тем больше темных кадров игнорируется);
*«Порог яркости» — кадр с яркостью ниже этого порога считается слишком тёмным и распознавание не производится (чем ниже этот параметр, тем меньше темных кадров игнорируется);
*«Достоверность» — уверенность в принадлежности обнаруженного лица пользователю аккаунта (чем значение ниже, тем точнее). Не рекомендуется устанавливать значения выше 5;  
*«Достоверность» — уверенность в принадлежности обнаруженного лица пользователю аккаунта (чем значение ниже, тем точнее должно быть совпадение). Не рекомендуется устанавливать значения выше 5;  
*«Предпросмотр» — включить камеру для предпросмотра изображения.
*«Предпросмотр» — включить камеру для предпросмотра изображения.


Строка 54: Строка 62:


[[Файл:Kde5-kcm-howdy-06.png|Список моделей]]
[[Файл:Kde5-kcm-howdy-06.png|Список моделей]]
==== Howdy GTK ====
Запуск (для пользователя должен быть настроен [[sudo]]):
<syntaxhighlight lang="bash">$ sudo howdy-gtk</syntaxhighlight>
При первом запуске будет запущен мастер настройки Howdy:
[[Файл:Howdy-gtk-01.png|Мастер настройки Howdy]]
{{Note|Мастер настройки Howdy будет запущен только если не существует ни одной модели (в {{path|/etc/howdy}} нет каталога {{path|models}}).}}
В ходе работы мастера настройки Howdy найдёт и покажет все доступные камеры. На этом шаге необходимо выбрать ИК-камеру («Рекомендуется, совместимая инфракрасная камера»):
[[Файл:Howdy-gtk-03.png|Howdy. Настройка камеры]]
На следующем шаге проверяется работа камеры:
[[Файл:Howdy-gtk-04.png|Howdy. Проверка камеры]]
Затем добавляется модель лица. Здесь необходимо нажать ссылку «Начать сканирование лица»:
[[Файл:Howdy-gtk-05.png|Howdy. Добавление образца лица]]
Если модель лица добавлена успешно, на следующем шаге настраивается политика достоверности (параметр <tt>certainty</tt>):
[[Файл:Howdy-gtk-06.png|Howdy. Настройка политики достоверности]]
При всех последующих запусках будет открываться окно «Настройка Howdy» где можно просмотреть настройки камеры (вкладка «Камера»), добавлять/удалять образцы для разных пользователей (вкладка «Образцы»):
[[Файл:Howdy-gtk-07.png|Настройка Howdy. Вкладка «Образцы»]]


=== Командная строка ===
=== Командная строка ===
Строка 59: Строка 98:


Синтаксис команды {{cmd|howdy}}:
Синтаксис команды {{cmd|howdy}}:
<syntaxhighlight lang="bash">howdy [-U пользователь] [-y] команда [аргумент]</syntaxhighlight>
<syntaxhighlight lang="bash"># howdy [-U пользователь] [-y] команда [аргумент]</syntaxhighlight>


где '''команда''' может принимать одно из следующих значений:
где '''команда''' может принимать одно из следующих значений:
Строка 105: Строка 144:
<syntaxhighlight lang="bash">$ v4l2-ctl -d /dev/video0 --all</syntaxhighlight>
<syntaxhighlight lang="bash">$ v4l2-ctl -d /dev/video0 --all</syntaxhighlight>


Устройство должно иметь возможность захвата видео, а не только захвата метаданных.}}
Устройство должно иметь возможность захвата видео, а не только захвата метаданных.
 
Получить список камер также можно, выполнив команду:
<syntaxhighlight lang="bash">$ find /dev/v4l/by-path/*
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.0-video-index0
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.0-video-index1
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.2-video-index0
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.2-video-index1</syntaxhighlight>
}}


После установки правильного пути к устройству, можно выполнить команду:
После установки правильного пути к устройству, можно выполнить команду:
Строка 184: Строка 231:


Запрос пароля, если лицо не распознано:
Запрос пароля, если лицо не распознано:
[[Файл:Kde5-kcm-howdy-11.png|Запрос пароля, если лицо не распознано]]
[[Файл:Kde5-kcm-howdy-11.png|Запрос пароля, если лицо не распознано]]


Строка 191: Строка 239:


Если для пользователя не созданы модели, будет сразу запрошен пароль.
Если для пользователя не созданы модели, будет сразу запрошен пароль.
=== Ограничение прав пользователей ===
По умолчанию при сохранении настроек howdy в модуле «Распознавание лица» запрашивается пароль администратора, а при создании и удалении модели — пароль пользователя (см. {{path|/usr/share/polkit-1/actions/org.kde.kcontrol.kcmhowdy.policy}}). Изменить это поведение можно при помощи средств [[Polkit|polkit]].
Например, чтобы запретить пользователю test удалять модели в модуле «Распознавание лица» можно создать файл {{path|/etc/polkit-1/rules.d/60-kcmhowdy.rules}} со следующим содержимым:
<syntaxhighlight lang="ini">
polkit.addRule(function (action, subject) {
  if (action.id == "org.kde.kcontrol.kcmhowdy.removefacemodel" &&
        subject.user == test) {
    return polkit.Result.NO;
  }
})</syntaxhighlight>


== Ссылки ==
== Ссылки ==
*https://github.com/boltgolt/howdy
*https://github.com/boltgolt/howdy
*Список поддерживаемых камер и их настроек: https://github.com/boltgolt/howdy/wiki/Cameras-that-have-been-verified-to-work-with-Howdy
*https://wiki.archlinux.org/title/PAM_(Русский)
*https://wiki.archlinux.org/title/PAM_(Русский)


[[Категория:HOWTO]]
[[Категория:HOWTO]]
{{Category navigation|title=Использование оборудования|category=использование оборудования|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Использование оборудования|category=использование оборудования|sortkey={{SUBPAGENAME}}}}

Текущая версия от 17:32, 13 декабря 2023

Введение

Howdy обеспечивает аутентификацию пользователя по геометрии лица. Howdy использует встроенные ИК-излучатели и камеру в сочетании с функцией распознавания лиц.

Используя Howdy совместно с PAM, можно настроить аутентификацию по геометрии лица везде, где до этого работала парольная аутентификация: вход в систему, экран блокировки, sudo, su и т.д.

Список поддерживаемых камер и их настроек можно посмотреть здесь.

Примечание: Рекомендуется использовать ИК(IR)-камеру, так как её нельзя обмануть фотографией или изображением на смартфоне.


Установка

Установить пакет howdy:

# apt-get install howdy

Для возможности настройки в графическом интерфейсе на платформах с KDE (дистрибутивы Альт Рабочая станция К, Альт Образование) установить пакет kde5-kcm-howdy:

# apt-get install kde5-kcm-howdy

Для возможности настройки Howdy в графическом интерфейсе на платформах отличных от KDE можно установить пакет howdy-gtk:

# apt-get install howdy-gtk

Добавление модели лица в Howdy

Графический интерфейс

Модуль «Распознавание лица» (KDE)

В KDE для настройки параметров Howdy и создания моделей лица можно воспользоваться графическим интерфейсом: «Параметры системы KDE5» → «Предпочтения пользователя» → «Распознавание лица».

Примечание: Запустить модуль настройки распознавания лица также можно из командной строки, выполнив команду:
$ kcmshell5 howdy


Параметры системы KDE5. Распознавание лица

В модуле «Распознавание лица» на вкладке «Устройство» необходимо выбрать ИК-камеру и нажать кнопку «Применить»:

Распознавание лица. Настройка камеры

В этом же окне можно настроить:

  • «Порог яркости» — кадр с яркостью ниже этого порога считается слишком тёмным и распознавание не производится (чем ниже этот параметр, тем меньше темных кадров игнорируется);
  • «Достоверность» — уверенность в принадлежности обнаруженного лица пользователю аккаунта (чем значение ниже, тем точнее должно быть совпадение). Не рекомендуется устанавливать значения выше 5;
  • «Предпросмотр» — включить камеру для предпросмотра изображения.

Нажатие кнопки «Сброс» приведёт к сбросу настроек к предыдущему сохранённому варианту, а нажатие кнопки «По умолчание» — к настройкам по умолчанию («Камера не выбрана», «Порог яркости»=60, «Достоверность»=3,5).

При сохранении настроек будет запрошен пароль пользователя root:

Запрос аутентификации от PolicyKit для сохранения настроек Howdy

Для добавления лица пользователя в базу данных на вкладке «Список моделей» модуля «Распознавание лица» необходимо нажать кнопку «Добавить». В открывшемся окне следует ввести имя модели и нажать кнопку «Сканировать»:

Создание модели для распознавания лица

Будет запрошен пароль текущего пользователя:

Запрос пароля пользователя

После ввода пароля начнётся процедура создания модели. Чтобы правильно создать модель следует смотреть в камеру.

В случае успешного создания модель появится в списке:

Модель лица успешно добавлена

Можно добавить еще несколько вариантов лица, повторно запустив процедуру создания модели (кнопка «Добавить»).

Для удаления модели следует выделить её в списке и нажать кнопку «Удалить»:

Список моделей

Howdy GTK

Запуск (для пользователя должен быть настроен sudo):

$ sudo howdy-gtk

При первом запуске будет запущен мастер настройки Howdy:

Мастер настройки Howdy

Примечание: Мастер настройки Howdy будет запущен только если не существует ни одной модели (в /etc/howdy нет каталога models).


В ходе работы мастера настройки Howdy найдёт и покажет все доступные камеры. На этом шаге необходимо выбрать ИК-камеру («Рекомендуется, совместимая инфракрасная камера»):

Howdy. Настройка камеры

На следующем шаге проверяется работа камеры:

Howdy. Проверка камеры

Затем добавляется модель лица. Здесь необходимо нажать ссылку «Начать сканирование лица»:

Howdy. Добавление образца лица

Если модель лица добавлена успешно, на следующем шаге настраивается политика достоверности (параметр certainty):

Howdy. Настройка политики достоверности

При всех последующих запусках будет открываться окно «Настройка Howdy» где можно просмотреть настройки камеры (вкладка «Камера»), добавлять/удалять образцы для разных пользователей (вкладка «Образцы»):

Настройка Howdy. Вкладка «Образцы»

Командная строка

Все настройки Howdy можно выполнить в командной строке.

Синтаксис команды howdy:

# howdy [-U пользователь] [-y] команда [аргумент]

где команда может принимать одно из следующих значений:

  • add — добавить новую модель лица пользователя;
  • clear — удалить все модели лица пользователя;
  • config — открыть файл конфигурации в редакторе по умолчанию;
  • disable — отключить или включить howdy;
  • list — вывести список всех сохраненных моделей лица пользователя;
  • remove — удалить определённую модель лица пользователя;
  • snapshot — сделайте снимок с камеры;
  • set — установить параметр конфигурации;
  • test — выполнить тест камеры и методов распознавания;
  • version — вывести версию howdy.

В конфигурации Howdy в параметре device_path необходимо указать устройство ИК-камеры, например:

device_path = /dev/video0

Сделать это можно:

  • отредактировав вручную файл /etc/howdy/config.ini;
  • открыв файл конфигурации для редактирования в текстовом редакторе по умолчанию командой:
    # howdy -U user config
    
  • выполнив команду:
    # howdy -U user set device_path /dev/video0
    
Примечание: При запуске команды howdy config можно указать нужный редактор:
# EDITOR=vim howdy -U user config


В большинстве случаев устройством для веб-камеры будет /dev/video0.

Примечание: Если камер несколько, можно воспользоваться утилитой v4l-utils, чтобы определить нужную.

Установить пакет v4l-utils:

# apt-get install v4l-utils

Вывести список устройств:

$ v4l2-ctl --list-devices
Integrated Camera: Integrated C (usb-0000:00:14.0-7):
	/dev/video0
	/dev/video1
	/dev/video2
	/dev/video3
	/dev/media0
	/dev/media1

Получить информацию по конкретному устройству:

$ v4l2-ctl -d /dev/video0 --all

Устройство должно иметь возможность захвата видео, а не только захвата метаданных.

Получить список камер также можно, выполнив команду:

$ find /dev/v4l/by-path/*
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.0-video-index0
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.0-video-index1
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.2-video-index0
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:7:1.2-video-index1


После установки правильного пути к устройству, можно выполнить команду:

# howdy -U user test

Будет открыто окно для тестирования (для выхода необходимо в терминале нажать <Ctrl>+<C>).

Для добавления лица пользователя в базу данных для распознавания следует выполнить команду:

# howdy -U user add
Добавление образца лица пользователя user
Использование метки по умолчанию "Модель №1", так как установлен флаг -y

Пожалуйста, смотрите прямо в камеру

Сканирование завершено
Добавлен новый образец лица пользователя user
Внимание! При добавлении образца лица пользователя окно с изображением не открывается, чтобы правильно создать модель следует смотреть в камеру.


Можно добавить еще несколько вариантов лица, повторно запустив команду howdy add.

Если для пользователя настроен sudo он может самостоятельно добавить образец своего лица, выполнив команду

$ sudo howdy add
Добавление образца лица пользователя user
Введите название для нового образца лица [Модель №2]: 

Пожалуйста, смотрите прямо в камеру

Сканирование завершено
Добавлен новый образец лица пользователя user

Получить список всех моделей для пользователя можно, выполнив команду:

# howdy -U user list
Найденные образцы лица для пользователя user:

ID  Date                 Label
0   2023-12-12 10:19:19  test1
1   2023-12-12 10:28:49  test2
2   2023-12-12 10:57:50  Модель №2
3   2023-12-12 11:04:23  Модель №3

Для удаления определённой модели лица пользователя необходимо указать идентификатор этой модели:

# howdy -U user remove 3
Это удалит образец лица с названием "Модель №3" для пользователя user
Вы все равно хотите продолжить? [y/N]: y

Удален образец лица 3

Удалить все модели лица пользователя можно, выполнив команду:

# howdy -U user clear
Будут удалены все модели для пользователя user
Вы все равно хотите продолжить? [y/N]: y

Образцы лица удалены

Изменить значение параметра конфигурации howdy можно, выполнив команду howdy set, например:

# howdy -U user set dark_threshold 70
Файл конфигурации обновлен

Данная команда установит для параметра dark_threshold («Порог яркости») значение 70.

Настройка аутентификации

Чтобы Howdy мог аутентифицировать пользователя, необходимо в тот файл конфигурации PAM, где может потребоваться использование Howdy добавить строку:

auth            sufficient      pam_howdy.so

Например, для настройки локальной аутентификации эту строку следует добавить в начало файла /etc/pam.d/system-auth-local-only:

#%PAM-1.0
auth            sufficient      pam_howdy.so
auth            required        pam_tcb.so shadow fork nullok
account         required        pam_tcb.so shadow fork
password        required        pam_passwdqc.so config=/etc/passwdqc.conf
password        required        pam_tcb.so use_authtok shadow fork nullok write_to=tcb
session         required        pam_tcb.so

В данном случае сначала будет проводится проверка распознавания лица, и в случае если лицо не распознано, будет запрошен пароль.

Аутентификация по лицу при входе пользователя в систему:

Аутентификация по лицу

Запрос пароля, если лицо не распознано:

Запрос пароля, если лицо не распознано

Аутентификация по лицу при регистрации пользователя в консоли:

Аутентификация по лицу при регистрации пользователя в консоли

Если для пользователя не созданы модели, будет сразу запрошен пароль.

Ограничение прав пользователей

По умолчанию при сохранении настроек howdy в модуле «Распознавание лица» запрашивается пароль администратора, а при создании и удалении модели — пароль пользователя (см. /usr/share/polkit-1/actions/org.kde.kcontrol.kcmhowdy.policy). Изменить это поведение можно при помощи средств polkit.

Например, чтобы запретить пользователю test удалять модели в модуле «Распознавание лица» можно создать файл /etc/polkit-1/rules.d/60-kcmhowdy.rules со следующим содержимым:

polkit.addRule(function (action, subject) {
  if (action.id == "org.kde.kcontrol.kcmhowdy.removefacemodel" &&
        subject.user == test) {
    return polkit.Result.NO;
  }
})

Ссылки