20 KiB
Проверка на качеството на плодове чрез IoT устройство
Скица от Nitya Narasimhan. Кликнете върху изображението за по-голяма версия.
Предварителен тест
Въведение
В последния урок научихте за класификаторите на изображения и как да ги обучите да разпознават добри и лоши плодове. За да използвате този класификатор на изображения в IoT приложение, трябва да можете да заснемете изображение с помощта на някакъв вид камера и да изпратите това изображение в облака за класификация.
В този урок ще научите за сензорите на камери и как да ги използвате с IoT устройство за заснемане на изображение. Ще научите също как да извикате класификатора на изображения от вашето IoT устройство.
В този урок ще разгледаме:
- Сензори на камери
- Заснемане на изображение с IoT устройство
- Публикуване на класификатора на изображения
- Класификация на изображения от вашето IoT устройство
- Подобряване на модела
Сензори на камери
Сензорите на камери, както подсказва името, са камери, които можете да свържете към вашето IoT устройство. Те могат да правят статични изображения или да заснемат видео поток. Някои връщат сурови данни за изображения, а други компресират данните в файлове като JPEG или PNG. Обикновено камерите, които работят с IoT устройства, са много по-малки и с по-ниска резолюция от тези, с които сте свикнали, но можете да намерите камери с висока резолюция, които съперничат на най-добрите телефони. Можете да получите различни сменяеми обективи, многокамерни настройки, инфрачервени термални камери или UV камери.
Повечето сензори на камери използват сензори за изображения, където всеки пиксел е фотодиод. Обективът фокусира изображението върху сензора за изображения, а хиляди или милиони фотодиоди откриват светлината, падаща върху всеки от тях, и я записват като данни за пиксели.
💁 Обективите обръщат изображенията, а сензорът на камерата след това ги връща обратно в правилната ориентация. Това е същото и с вашите очи - това, което виждате, се открива обърнато наопаки на задната част на окото ви, а мозъкът ви го коригира.
🎓 Сензорът за изображения е известен като сензор с активни пиксели (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
Задание
Отговорете на резултатите от класификацията
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.