Классифицировать новые объекты в изображениях Live - PullRequest
0 голосов
/ 28 октября 2018

У меня есть веб-камера, микрофон и графический интерфейс Python.Пользователь показывает камере объект и с помощью голосовой команды спрашивает «что это за объект?».Веб-камера делает фотографию кадра камеры и выдвигает ее в конечную точку колбы.У меня есть модель VGG16, размещенная в приложении колбы, которая отвечает классом объекта, основанным на изображении с камеры.

Теперь я хочу, чтобы, если объект не был распознан, должен быть запущен цикл обучения.,В этом цикле я расскажу модели, что это за объект (голос в текст), который будет меткой для объекта.Я понял, что это работает.

Что не работает, так это в следующий раз (после завершения обучения), если я покажу объект на камеру, модель сможет сказать мне, что это за объект.

Может ли кто-нибудь посоветовать мне следующее:

  1. Является ли VGG16 (изначально обученный на 2 предметах с использованием трансферного обучения) лучшей моделью для этого типа задач?В настоящее время он классифицирует невидимые объекты как один из двух классов.

  2. Как вы будете реализовывать это решение в облаке (AWS, Azure и т. Д.)

Спасибо.

1 Ответ

0 голосов
/ 28 октября 2018
  1. Является ли VGG16 (обученный первоначально по 2 предметам с использованием трансферного обучения) лучшей моделью для этого типа задач?В настоящее время он классифицирует невидимые объекты как один из двух классов.

Во-первых, причина, по которой он классифицирует невидимые объекты как один из двух классов, заключается просто в том, чтовы позволяете ему классифицировать только два класса, так что даже если вы покажете ему неизвестный объект, он должен поместить его в один из классов и опубликовать лучший прогноз, что вам нужно сделать, это обучить егона 3 отличительных класса {object1, object2, unknownObject}, так что вы можете правильно предсказать неизвестные объекты, теперь это может быть немного проблематично и потребует переобучения модели, другое, что вы могли бы сделать, - это установить порог,в основном, когда вы даете ему невидимый объект, он может дать уверенность в предсказании следующим образом {75%, 25%} или, возможно, {51%, 49%}, вам следует установить здесь порог, если ваша модель не превышает 90-95%.уверен в предсказании, вы принимаете его за неизвестный объект, теперь я никоим образом не говорю, что это должно быть вашимпороговое значение, ваш порог может быть или .9 / .95, как упомянуто выше, или даже может быть 0,75, что является гиперпараметром, и вы должны использовать способы для определения этого порога

Как вы будете реализовывать это решение в облаке (AWS, Azure и т. Д.)

У вас уже есть флеш-сервер, просторазверните флеш-сервер на компьютере AWS и сделайте его напрямую доступным через статический публичный внешний IP-адрес, поэтому вы можете отправить / получить запрос на этот конкретный IP-адрес и запустить вашу модель с любого интерфейса

...