Классифицировать лица из VNFaceObservation

Я работаю с платформой Vision для обнаружения лиц и объектов на нескольких изображениях и работает фантастически.

Но у меня есть вопрос, который я не могу найти в документации. Приложение «Фотографии» на iOS классифицирует лица, и вы можете нажать на лицо и показать все изображения с этим лицом.

Как я могу классифицировать лица, как приложение «Фотографии»? Есть ли какой-либо уникальный идентификатор или аналогичный для этого?

Спасибо!


person mhergon    schedule 03.08.2017    source источник


Ответы (3)


Вы можете проверить этот репозиторий https://github.com/KimDarren/FaceCropper.

Я протестировал это и работает очень хорошо, вы даже можете настроить в соответствии с вашими потребностями.

person Paras Gorasiya    schedule 10.08.2017
comment
Но не идентифицировать уникальные лица и классифицировать, как приложение Apple Photos. Спасибо! - person mhergon; 10.08.2017
comment
Это действительно идентифицирует уникальные лица, как приложение для фотографий. - person Paras Gorasiya; 10.08.2017
comment
Я только что предоставил вам пример с этой ссылкой, вы должны найти что-то полезное. Эта демонстрация делает то же самое, что и вы. - person Paras Gorasiya; 13.08.2017
comment
Этот пример не идентифицирует лица однозначно. Он просто получает все лица на изображении, обрезает их, а затем отображает в формате UICollectionView. - person Jon Vogel; 13.09.2018

Чтобы однозначно распознавать лица, сначала вам нужно обнаружить лицо, а затем запустить его через модель CoreML (или другой тип модели классификации изображений, например модель Tensorflow), чтобы классифицировать изображение и определить вероятность того, что лицо захваченное вами соответствует одному из лиц, обученных вашей модели.

Apple Photos использует машинное обучение (как упоминалось в презентации iPhone в этом году), чтобы научить устройство распознавать лица на ваших фотографиях. Обучение будет выполняться локально на устройстве, однако Apple (пока) не предлагает никаких общедоступных API-интерфейсов, которые позволили бы нам это сделать.

Вы можете отправить фотоданные (обрезки лиц с помощью упомянутого выше инструмента Paras) на свой сервер и обучить его модели (используя тренер CoreML или что-то вроде Nvidia DIGITS на AWS или на вашем собственном сервере), преобразовать их в CoreML, скомпилировать модель, затем загрузите ее на свое устройство и загрузите модель. Это максимально приближено к «волшебному» распознаванию лиц, используемому Фото, пока устройство может считывать только скомпилированные модели.

person John Rogers    schedule 15.10.2018

Я не думаю, что это способ однозначно идентифицировать лица, возвращенные вам из системы видения. Я проверил свойство UUID на VNFaceObservation, и каждый раз это другой идентификатор.

Возможно, вам придется создать свою собственную модель CoreML или просто подождать/найти хорошую стороннюю модель.

Я надеюсь, что кто-то докажет, что я ошибаюсь, потому что я тоже хочу знать.

person Jon Vogel    schedule 12.09.2018