|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago | |
pi-camera.md | 4 weeks ago | |
single-board-computer-classify-image.md | 4 weeks ago | |
virtual-device-camera.md | 4 weeks ago | |
wio-terminal-camera.md | 4 weeks ago | |
wio-terminal-classify-image.md | 4 weeks ago |
README.md
Проверка качества фруктов с помощью IoT-устройства
Скетчноут от Nitya Narasimhan. Нажмите на изображение, чтобы увидеть его в большем размере.
Викторина перед лекцией
Введение
В прошлом уроке вы узнали о классификаторах изображений и о том, как обучить их для определения хороших и плохих фруктов. Чтобы использовать этот классификатор изображений в IoT-приложении, необходимо уметь захватывать изображение с помощью камеры и отправлять его в облако для классификации.
В этом уроке вы узнаете о сенсорах камер и о том, как использовать их с IoT-устройством для захвата изображения. Вы также научитесь вызывать классификатор изображений с вашего IoT-устройства.
В этом уроке мы рассмотрим:
- Сенсоры камер
- Захват изображения с помощью IoT-устройства
- Публикация вашего классификатора изображений
- Классификация изображений с вашего IoT-устройства
- Улучшение модели
Сенсоры камер
Сенсоры камер, как следует из названия, — это камеры, которые можно подключить к вашему IoT-устройству. Они могут делать статические снимки или записывать потоковое видео. Некоторые из них возвращают необработанные данные изображения, другие сжимают данные в файлы изображений, такие как JPEG или PNG. Обычно камеры, работающие с IoT-устройствами, намного меньше и имеют более низкое разрешение, чем те, к которым вы привыкли, но существуют камеры высокого разрешения, которые могут соперничать с топовыми смартфонами. Вы можете найти сменные объективы, многокамерные установки, инфракрасные тепловизоры или ультрафиолетовые камеры.
Большинство сенсоров камер используют сенсоры изображения, где каждый пиксель представляет собой фотодиод. Объектив фокусирует изображение на сенсоре, и тысячи или миллионы фотодиодов фиксируют свет, падающий на каждый из них, записывая это как данные пикселей.
💁 Объективы переворачивают изображение, а сенсор камеры затем возвращает его в правильное положение. То же самое происходит и с вашими глазами — то, что вы видите, фиксируется перевернутым на задней части глаза, а ваш мозг исправляет это.
🎓 Сенсор изображения известен как сенсор с активными пикселями (APS), и наиболее популярный тип APS — это сенсор на основе комплементарного металлооксидного полупроводника, или CMOS. Вы могли слышать термин CMOS-сенсор, используемый для сенсоров камер.
Сенсоры камер являются цифровыми сенсорами, передающими данные изображения в цифровом формате, обычно с помощью библиотеки, обеспечивающей связь. Камеры подключаются с использованием таких протоколов, как SPI, чтобы передавать большие объемы данных — изображения значительно больше, чем одиночные числа от сенсора, такого как сенсор температуры.
✅ Какие ограничения существуют по размеру изображения для IoT-устройств? Подумайте о возможностях, особенно на аппаратном обеспечении микроконтроллеров.
Захват изображения с помощью IoT-устройства
Вы можете использовать свое IoT-устройство для захвата изображения, которое будет классифицировано.
Задание — захват изображения с помощью IoT-устройства
Выполните соответствующее руководство для захвата изображения с вашего IoT-устройства:
- Arduino - Wio Terminal
- Одноплатный компьютер - Raspberry Pi
- Одноплатный компьютер - Виртуальное устройство
Публикация вашего классификатора изображений
Вы обучили свой классификатор изображений на прошлом уроке. Прежде чем использовать его с IoT-устройства, необходимо опубликовать модель.
Итерации модели
Когда ваша модель обучалась на прошлом уроке, вы могли заметить, что на вкладке Performance отображаются итерации. Когда вы впервые обучали модель, вы видели Iteration 1 в процессе обучения. Когда вы улучшали модель, используя изображения для предсказаний, вы видели Iteration 2.
Каждый раз, когда вы обучаете модель, создается новая итерация. Это позволяет отслеживать разные версии вашей модели, обученные на разных наборах данных. Когда вы выполняете Quick Test, вы можете выбрать итерацию из выпадающего списка, чтобы сравнить результаты между несколькими итерациями.
Когда вы довольны итерацией, вы можете опубликовать ее, чтобы сделать доступной для использования внешними приложениями. Таким образом, вы можете иметь опубликованную версию, используемую вашими устройствами, а затем работать над новой версией через несколько итераций, публикуя ее, когда будете довольны результатом.
Задание — публикация итерации
Итерации публикуются через портал Custom Vision.
-
Откройте портал Custom Vision на CustomVision.ai и войдите в систему, если он еще не открыт. Затем откройте ваш проект
fruit-quality-detector
. -
Выберите вкладку Performance в верхнем меню.
-
Выберите последнюю итерацию из списка Iterations сбоку.
-
Нажмите кнопку Publish для выбранной итерации.
-
В диалоговом окне Publish Model выберите ресурс Prediction resource, созданный на прошлом уроке, например,
fruit-quality-detector-prediction
. Оставьте имя какIteration2
и нажмите кнопку Publish. -
После публикации нажмите кнопку Prediction URL. Здесь будут показаны детали API для предсказаний, которые вам понадобятся для вызова модели с вашего IoT-устройства. В нижней части окна, помеченной If you have an image file, находятся нужные вам данные. Скопируйте URL, который будет выглядеть примерно так:
https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/classify/iterations/Iteration2/image
Где
<location>
— это местоположение, которое вы указали при создании ресурса Custom Vision, а<id>
— это длинный идентификатор, состоящий из букв и цифр.Также скопируйте значение Prediction-Key. Это защищенный ключ, который необходимо передать при вызове модели. Только приложения, передающие этот ключ, могут использовать модель, все остальные будут отклонены.
✅ Когда публикуется новая итерация, у нее будет другое имя. Как вы думаете, как можно изменить итерацию, используемую IoT-устройством?
Классификация изображений с вашего IoT-устройства
Теперь вы можете использовать эти данные подключения для вызова классификатора изображений с вашего IoT-устройства.
Задание — классификация изображений с вашего IoT-устройства
Выполните соответствующее руководство для классификации изображений с вашего IoT-устройства:
Улучшение модели
Вы можете заметить, что результаты, полученные при использовании камеры, подключенной к вашему IoT-устройству, не соответствуют вашим ожиданиям. Предсказания могут быть менее точными, чем при использовании изображений, загруженных с компьютера. Это связано с тем, что модель была обучена на данных, отличающихся от тех, которые используются для предсказаний.
Чтобы получить лучшие результаты от классификатора изображений, необходимо обучить модель на данных, максимально похожих на те, которые используются для предсказаний. Например, если вы использовали камеру телефона для захвата изображений для обучения, качество, резкость и цвет изображения будут отличаться от камеры, подключенной к IoT-устройству.
На изображении выше банан слева был снят с помощью камеры Raspberry Pi, а справа — с помощью iPhone в том же месте. Разница в качестве заметна: изображение с iPhone более четкое, с яркими цветами и лучшим контрастом.
✅ Что еще может привести к некорректным предсказаниям изображений, захваченных вашим IoT-устройством? Подумайте об условиях, в которых может использоваться IoT-устройство, и о факторах, влияющих на качество изображения.
Чтобы улучшить модель, вы можете переобучить ее, используя изображения, захваченные с IoT-устройства.
Задание — улучшение модели
-
Классифицируйте несколько изображений как спелых, так и неспелых фруктов с помощью вашего IoT-устройства.
-
В портале Custom Vision переобучите модель, используя изображения на вкладке Predictions.
⚠️ Вы можете обратиться к инструкциям по переобучению классификатора в уроке 1, если это необходимо.
-
Если ваши изображения сильно отличаются от оригинальных, использованных для обучения, вы можете удалить все оригинальные изображения, выбрав их на вкладке Training Images и нажав кнопку Delete. Чтобы выбрать изображение, наведите на него курсор, и появится галочка. Нажмите на галочку, чтобы выбрать или снять выбор.
-
Обучите новую итерацию модели и опубликуйте ее, следуя описанным выше шагам.
-
Обновите URL конечной точки в вашем коде и перезапустите приложение.
-
Повторяйте эти шаги, пока не будете довольны результатами предсказаний.
🚀 Задание
Насколько разрешение изображения или освещение влияет на предсказания?
Попробуйте изменить разрешение изображений в коде вашего устройства и посмотрите, влияет ли это на качество изображений. Также попробуйте изменить освещение.
Если бы вы создавали устройство для продажи на фермах или фабриках, как бы вы обеспечили его стабильные результаты?
Викторина после лекции
Обзор и самостоятельное изучение
Вы обучили свою модель Custom Vision с помощью портала. Это требует наличия доступных изображений, но в реальном мире вы можете не иметь данных для обучения, соответствующих изображениям, которые захватывает камера вашего устройства. Вы можете обойти это, обучая модель напрямую с устройства, используя API для обучения, чтобы обучить модель на изображениях, захваченных с вашего IoT-устройства.
- Ознакомьтесь с API для обучения в руководстве по быстрому старту с использованием Custom Vision SDK
Задание
Реагирование на результаты классификации
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.