|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago |
README.md
Обучение детектора товаров
Скетчнот от Nitya Narasimhan. Нажмите на изображение, чтобы увидеть его в большем размере.
Это видео дает обзор обнаружения объектов с помощью сервиса Azure Custom Vision, который будет рассмотрен в этом уроке.
🎥 Нажмите на изображение выше, чтобы посмотреть видео
Викторина перед лекцией
Введение
В предыдущем проекте вы использовали ИИ для обучения классификатора изображений — модели, которая может определить, содержит ли изображение что-то, например, спелый или неспелый фрукт. Другой тип модели ИИ, который можно использовать с изображениями, — это обнаружение объектов. Эти модели не классифицируют изображение по тегам, а обучаются распознавать объекты и находить их на изображениях, не только определяя, что объект присутствует, но и где он находится. Это позволяет подсчитывать объекты на изображениях.
В этом уроке вы узнаете об обнаружении объектов, включая его использование в розничной торговле. Вы также научитесь обучать детектор объектов в облаке.
В этом уроке мы рассмотрим:
- Обнаружение объектов
- Использование обнаружения объектов в розничной торговле
- Обучение детектора объектов
- Тестирование детектора объектов
- Повторное обучение детектора объектов
Обнаружение объектов
Обнаружение объектов включает в себя распознавание объектов на изображениях с помощью ИИ. В отличие от классификатора изображений, который вы обучали в последнем проекте, обнаружение объектов не связано с предсказанием лучшего тега для изображения в целом, а с поиском одного или нескольких объектов на изображении.
Обнаружение объектов vs классификация изображений
Классификация изображений связана с классификацией изображения в целом — каковы вероятности того, что все изображение соответствует каждому тегу. Вы получаете обратно вероятности для каждого тега, использованного для обучения модели.
В приведенном выше примере два изображения классифицируются с использованием модели, обученной классифицировать упаковки кешью или банки томатной пасты. Первое изображение — упаковка кешью, и имеет два результата от классификатора изображений:
Тег | Вероятность |
---|---|
кешью |
98.4% |
томатная паста |
1.6% |
Второе изображение — банка томатной пасты, и результаты таковы:
Тег | Вероятность |
---|---|
кешью |
0.7% |
томатная паста |
99.3% |
Вы могли бы использовать эти значения с пороговым процентом, чтобы предсказать, что находится на изображении. Но что, если изображение содержит несколько банок томатной пасты или и кешью, и томатную пасту? Результаты, вероятно, не дадут вам желаемого. Здесь на помощь приходит обнаружение объектов.
Обнаружение объектов включает обучение модели распознавать объекты. Вместо того чтобы предоставлять ей изображения, содержащие объект, и говорить, что каждое изображение соответствует одному тегу или другому, вы выделяете часть изображения, содержащую конкретный объект, и присваиваете ей тег. Вы можете тегировать один объект на изображении или несколько. Таким образом, модель учится, как выглядит сам объект, а не только как выглядят изображения, содержащие объект.
Когда вы затем используете модель для предсказания изображений, вместо списка тегов и процентов вы получаете список обнаруженных объектов с их ограничивающими рамками и вероятностью того, что объект соответствует назначенному тегу.
🎓 Ограничивающие рамки — это рамки вокруг объекта.
На изображении выше содержится упаковка кешью и три банки томатной пасты. Детектор объектов обнаружил кешью, вернув ограничивающую рамку, содержащую кешью, с процентной вероятностью того, что рамка содержит объект, в данном случае 97.6%. Детектор также обнаружил три банки томатной пасты и предоставил три отдельные ограничивающие рамки, одну для каждой обнаруженной банки, каждая из которых имеет процентную вероятность того, что рамка содержит банку томатной пасты.
✅ Подумайте о различных сценариях, для которых вы могли бы использовать модели ИИ, основанные на изображениях. Какие из них потребуют классификации, а какие — обнаружения объектов?
Как работает обнаружение объектов
Обнаружение объектов использует сложные модели машинного обучения. Эти модели работают, разделяя изображение на множество ячеек, а затем проверяют, находится ли центр ограничивающей рамки в центре изображения, которое соответствует одному из изображений, использованных для обучения модели. Вы можете представить это как своего рода запуск классификатора изображений по различным частям изображения для поиска совпадений.
💁 Это сильное упрощение. Существует множество техник для обнаружения объектов, и вы можете узнать больше о них на странице обнаружения объектов в Википедии.
Существует ряд различных моделей, которые могут выполнять обнаружение объектов. Одна из особенно известных моделей — YOLO (You only look once), которая невероятно быстра и может обнаруживать 20 различных классов объектов, таких как люди, собаки, бутылки и автомобили.
✅ Ознакомьтесь с моделью YOLO на pjreddie.com/darknet/yolo/
Модели обнаружения объектов могут быть переобучены с использованием переноса обучения для обнаружения пользовательских объектов.
Использование обнаружения объектов в розничной торговле
Обнаружение объектов имеет множество применений в розничной торговле. Некоторые из них включают:
- Проверка и подсчет запасов — распознавание, когда запасы на полках заканчиваются. Если запасы слишком низкие, можно отправить уведомления сотрудникам или роботам для пополнения полок.
- Обнаружение масок — в магазинах с политикой ношения масок во время общественных мероприятий по охране здоровья обнаружение объектов может распознавать людей с масками и без них.
- Автоматизированная оплата — обнаружение товаров, взятых с полок в автоматизированных магазинах, и правильное выставление счетов клиентам.
- Обнаружение опасностей — распознавание разбитых предметов на полу или разлитых жидкостей, оповещение уборочных бригад.
✅ Проведите исследование: Какие еще случаи использования обнаружения объектов в розничной торговле вы можете придумать?
Обучение детектора объектов
Вы можете обучить детектор объектов с помощью Custom Vision, аналогично тому, как вы обучали классификатор изображений.
Задача — создать детектор объектов
-
Создайте группу ресурсов для этого проекта под названием
stock-detector
. -
Создайте бесплатный ресурс обучения Custom Vision и бесплатный ресурс предсказания Custom Vision в группе ресурсов
stock-detector
. Назовите ихstock-detector-training
иstock-detector-prediction
.💁 У вас может быть только один бесплатный ресурс обучения и предсказания, поэтому убедитесь, что вы очистили проект из предыдущих уроков.
⚠️ Вы можете обратиться к инструкциям по созданию ресурсов обучения и предсказания из проекта 4, урока 1, если это необходимо.
-
Запустите портал Custom Vision на CustomVision.ai и войдите в систему с учетной записью Microsoft, которую вы использовали для своей учетной записи Azure.
-
Следуйте разделу Создание нового проекта в быстром старте по созданию детектора объектов в документации Microsoft, чтобы создать новый проект Custom Vision. Интерфейс может измениться, и эта документация всегда является наиболее актуальным источником.
Назовите ваш проект
stock-detector
.При создании проекта убедитесь, что вы используете ресурс
stock-detector-training
, который вы создали ранее. Используйте тип проекта Обнаружение объектов и домен Продукты на полках.✅ Домен продуктов на полках специально предназначен для обнаружения запасов на полках магазинов. Узнайте больше о различных доменах в документации по выбору домена на Microsoft Docs
✅ Потратьте время на изучение интерфейса Custom Vision для вашего детектора объектов.
Задача — обучить ваш детектор объектов
Для обучения вашей модели вам понадобится набор изображений, содержащих объекты, которые вы хотите обнаружить.
-
Соберите изображения, содержащие объект для обнаружения. Вам понадобится как минимум 15 изображений, содержащих каждый объект для обнаружения, с разных углов и при разных условиях освещения, но чем больше, тем лучше. Этот детектор объектов использует домен Продукты на полках, поэтому постарайтесь расположить объекты так, как если бы они находились на полке магазина. Вам также понадобится несколько изображений для тестирования модели. Если вы обнаруживаете более одного объекта, вам понадобятся тестовые изображения, содержащие все объекты.
💁 Изображения с несколькими различными объектами учитываются в минимуме 15 изображений для всех объектов на изображении.
Ваши изображения должны быть в формате png или jpeg, размером менее 6 МБ. Если вы создаете их, например, с помощью iPhone, они могут быть высококачественными изображениями HEIC, поэтому их нужно будет преобразовать и, возможно, уменьшить. Чем больше изображений, тем лучше, и у вас должно быть примерно одинаковое количество спелых и неспелых.
Модель предназначена для продуктов на полках, поэтому постарайтесь фотографировать объекты на полках.
Вы можете найти примеры изображений, которые можно использовать, в папке images с кешью и томатной пастой.
-
Следуйте разделу Загрузка и тегирование изображений в быстром старте по созданию детектора объектов в документации Microsoft, чтобы загрузить ваши обучающие изображения. Создайте соответствующие теги в зависимости от типов объектов, которые вы хотите обнаружить.
Когда вы рисуете ограничивающие рамки для объектов, держите их плотно вокруг объекта. Это может занять некоторое время, чтобы обрисовать все изображения, но инструмент обнаружит предполагаемые ограничивающие рамки, что сделает процесс быстрее.
💁 Если у вас есть более 15 изображений для каждого объекта, вы можете обучить модель после 15 изображений, а затем использовать функцию Предложенные теги. Это позволит обученной модели обнаруживать объекты на нетегированных изображениях. Вы можете подтвердить обнаруженные объекты или отклонить и перерисовать ограничивающие рамки. Это может значительно сэкономить время.
-
Следуйте разделу Обучение детектора в быстром старте по созданию детектора объектов в документации Microsoft, чтобы обучить детектор объектов на ваших тегированных изображениях.
Вам будет предложен выбор типа обучения. Выберите Быстрое обучение.
Детектор объектов начнет обучение. Это займет несколько минут.
Тестирование вашего детектора объектов
После того как ваш детектор объектов обучен, вы можете протестировать его, предоставив ему новые изображения для обнаружения объектов.
Задача — протестировать ваш детектор объектов
-
Используйте кнопку Быстрое тестирование, чтобы загрузить тестовые изображения и проверить, обнаружены ли объекты. Используйте тестовые изображения, которые вы создали ранее, а не те, которые использовались для обучения.
-
Попробуйте все тестовые изображения, которые у вас есть, и наблюдайте за вероятностями.
Повторное обучение вашего детектора объектов
Когда вы тестируете ваш детектор объектов, он может не дать ожидаемых результатов, как и классификаторы изображений в предыдущем проекте. Вы можете улучшить ваш детектор объектов, переобучив его на изображениях, где он ошибается.
Каждый раз, когда вы делаете предсказание с помощью опции быстрого тестирования, изображение и результаты сохраняются. Вы можете использовать эти изображения для повторного обучения вашей модели.
-
Используйте вкладку Предсказания, чтобы найти изображения, которые вы использовали для тестирования.
-
Подтвердите любые точные обнаружения, удалите неверные и добавьте недостающие объекты.
-
Переобучите и повторно протестируйте модель.
🚀 Задача
Что произойдет, если вы используете детектор объектов с похожими предметами, например, банки томатной пасты и нарезанных томатов одного бренда?
Если у вас есть похожие предметы, протестируйте их, добавив изображения в ваш детектор объектов.
Викторина после лекции
Обзор и самостоятельное изучение
- Когда вы обучали свой детектор объектов, вы могли видеть значения Precision (Точность), Recall (Полнота) и mAP (Средняя точность), которые оценивают созданную модель. Ознакомьтесь с тем, что означают эти значения, используя раздел "Оценка детектора" в быстром старте по созданию детектора объектов на сайте Microsoft
- Узнайте больше о детекции объектов на странице "Детекция объектов" в Википедии
Задание
Отказ от ответственности:
Этот документ был переведен с использованием сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.