7.6 KiB
Позовите ваш детектор објеката са IoT уређаја - Виртуелни IoT хардвер и Raspberry Pi
Када ваш детектор објеката буде објављен, можете га користити са вашег IoT уређаја.
Копирајте пројекат класификатора слика
Већина вашег детектора залиха је иста као класификатор слика који сте креирали у претходном часу.
Задатак - копирајте пројекат класификатора слика
-
Направите фасциклу под називом
stock-counter
на вашем рачунару ако користите виртуелни IoT уређај, или на вашем Raspberry Pi. Ако користите виртуелни IoT уређај, уверите се да сте поставили виртуелно окружење. -
Поставите хардвер камере.
- Ако користите Raspberry Pi, потребно је да поставите PiCamera. Можда ћете желети да фиксирате камеру у једној позицији, на пример, тако што ћете кабл обесити преко кутије или конзерве, или фиксирати камеру на кутију помоћу двостране траке.
- Ако користите виртуелни IoT уређај, потребно је да инсталирате CounterFit и CounterFit PyCamera shim. Ако ћете користити статичне слике, онда снимите неке слике које ваш детектор објеката још није видео. Ако ћете користити веб камеру, уверите се да је позиционирана тако да може видети залихе које детектујете.
-
Реплицирајте кораке из лекције 2 пројекта производње да бисте снимали слике са камере.
-
Реплицирајте кораке из лекције 2 пројекта производње да бисте позвали класификатор слика. Већина овог кода ће бити поново коришћена за детекцију објеката.
Промените код из класификатора у детектор слика
Код који сте користили за класификацију слика је веома сличан коду за детекцију објеката. Главна разлика је метода која се позива на Custom Vision SDK и резултати позива.
Задатак - промените код из класификатора у детектор слика
-
Обришите три линије кода које класификују слику и обрађују предвиђања:
results = predictor.classify_image(project_id, iteration_name, image) for prediction in results.predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
Уклоните ове три линије.
-
Додајте следећи код за детекцију објеката на слици:
results = predictor.detect_image(project_id, iteration_name, image) threshold = 0.3 predictions = list(prediction for prediction in results.predictions if prediction.probability > threshold) for prediction in predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
Овај код позива
detect_image
методу на предиктору да би покренуо детектор објеката. Затим прикупља сва предвиђања са вероватноћом изнад прага и штампа их на конзолу.За разлику од класификатора слика који враћа само један резултат по ознаци, детектор објеката ће вратити више резултата, па је потребно филтрирати оне са ниском вероватноћом.
-
Покрените овај код и он ће снимити слику, послати је детектору објеката и штампати детектоване објекте. Ако користите виртуелни IoT уређај, уверите се да имате одговарајућу слику постављену у CounterFit, или да је ваша веб камера изабрана. Ако користите Raspberry Pi, уверите се да ваша камера показује на објекте на полици.
pi@raspberrypi:~/stock-counter $ python3 app.py tomato paste: 34.13% tomato paste: 33.95% tomato paste: 35.05% tomato paste: 32.80%
💁 Можда ћете морати да прилагодите
threshold
на одговарајућу вредност за ваше слике.Моћи ћете да видите слику која је снимљена и ове вредности у картици Predictions у Custom Vision.
💁 Овај код можете пронаћи у фасцикли code-detect/pi или code-detect/virtual-iot-device.
😀 Ваш програм за бројање залиха је био успешан!
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.