Моя цель - создать приложение, которое может иметь несколько пользователей. Каждая учетная запись пользователя должна быть защищена идентификацией лица приложения. Я знаю, что могу не понять концепцию тензорного потока, но есть ли способ в Android, с помощью которого мы можем обучить приложение распознавать чье-то лицо относительно того, кто этот пользователь? У меня сложилось впечатление, что мы должны заранее создать модель обучения и применить ее в приложении, но что касается моей цели, приложение должно будет динамически обучаться, чтобы определять, кто его пользователи. Заранее спасибо.
Идентификация лица Tensorflow во время выполнения для Android
Ответы (1)
Я не уверен, что это правильный способ сделать это. Я знаю, что этого можно добиться с помощью Eigenfaces, но Я никогда не пробовал, так что, возможно, вы тоже захотите это принять во внимание.
Возвращаясь к твоей идее. Я не знаю, каковы шансы на успех, но бывает, что я знаю несколько мест, где вы встретите множество проблем:
- Набор данных. Для каждого лица, которое вы хотите распознать, вам понадобится множество изображений с разных ракурсов и как можно более разных (с очками, разными стрижками, бородой, макияжем, разными условиями освещения и т. Д.). Если вы не предоставите подробный набор данных, могут произойти две вещи: либо лицо, которое следует распознать, не будет, либо лицо не должно быть, но оно будет распознано в конце. Такой набор данных создать сложно, потому что в лучшем случае у вас будет несколько фотографий пользователя, регистрирующего лицо. Я думаю, что с этими фотографиями вы можете работать над созданием новых фотографий в разных условиях, но это невозможно сделать на мобильном телефоне.
- Предполагая, что у вас есть приличный набор данных, теперь вам нужно обучить сеть. Здесь у вас есть два варианта: построить свою модель с нуля (не такая уж хорошая идея) или использовать модель, предоставленную Google, и переобучить только последний слой из сети. Насколько мне известно,
TensorFlow
не имеет возможности проводить обучение на мобильном устройстве (это было бы слишком дорого для системы), поэтому вам придется где-нибудь обучить модель, а затем загрузить ее на устройство.TensorFlow
имеет разработанную модель MobileNet для использования на мобильных устройствах, являясь хорошей отправной точкой для вашей сети, имея хорошую точность и не использую многие системные ресурсы. Вы также можете попробовать с Inception, но эта модель разработана для обеспечения точности, требует гораздо большего времени обучения и он тратит больше времени и ресурсов на оценку изображения.
Конечный сценарий для вашего приложения выглядит следующим образом: пользователь регистрирует свое лицо, делая несколько фотографий, которые отправляются на ваш сервер. Затем вам нужно переобучать сеть каждый раз, когда добавляется новое лицо и загружается модель внутри вашего приложения. Отсюда все просто, сфотографируйте пользователя и надейтесь, что его лицо обработано должным образом.
Может быть, вы хотите взглянуть на codelabs о TensorFlow
, которые научат вас обучать модель и запускать ее на Android
.