You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/uk/5-retail/lessons/2-check-stock-device/single-board-computer-objec...

8.1 KiB

Виклик детектора об'єктів з вашого IoT-пристрою - Віртуальне IoT обладнання та Raspberry Pi

Після того, як ваш детектор об'єктів буде опублікований, його можна використовувати з вашого IoT-пристрою.

Скопіюйте проект класифікатора зображень

Більшість вашого детектора запасів схожа на класифікатор зображень, який ви створили в попередньому уроці.

Завдання - скопіюйте проект класифікатора зображень

  1. Створіть папку під назвою stock-counter на вашому комп'ютері, якщо ви використовуєте віртуальний IoT-пристрій, або на вашому Raspberry Pi. Якщо ви використовуєте віртуальний IoT-пристрій, переконайтеся, що ви налаштували віртуальне середовище.

  2. Налаштуйте апаратне забезпечення камери.

    • Якщо ви використовуєте Raspberry Pi, вам потрібно буде встановити PiCamera. Ви також можете зафіксувати камеру в одному положенні, наприклад, підвісивши кабель над коробкою або банкою, або прикріпивши камеру до коробки за допомогою двостороннього скотчу.
    • Якщо ви використовуєте віртуальний IoT-пристрій, вам потрібно буде встановити CounterFit і CounterFit PyCamera shim. Якщо ви плануєте використовувати статичні зображення, захопіть кілька зображень, які ваш детектор об'єктів ще не бачив. Якщо ви плануєте використовувати веб-камеру, переконайтеся, що вона розташована так, щоб бачити запаси, які ви виявляєте.
  3. Повторіть кроки з уроку 2 проекту з виробництва для захоплення зображень з камери.

  4. Повторіть кроки з уроку 2 проекту з виробництва для виклику класифікатора зображень. Більшість цього коду буде повторно використано для виявлення об'єктів.

Змініть код з класифікатора на детектор зображень

Код, який ви використовували для класифікації зображень, дуже схожий на код для виявлення об'єктів. Основна відмінність полягає у методі, який викликається в Custom Vision SDK, та результатах виклику.

Завдання - змініть код з класифікатора на детектор зображень

  1. Видаліть три рядки коду, які класифікують зображення та обробляють передбачення:

    results = predictor.classify_image(project_id, iteration_name, image)
    
    for prediction in results.predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    Видаліть ці три рядки.

  2. Додайте наступний код для виявлення об'єктів на зображенні:

    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 у predictor для запуску детектора об'єктів. Потім він збирає всі передбачення з ймовірністю вище порогового значення, виводячи їх у консоль.

    На відміну від класифікатора зображень, який повертає лише один результат для кожного тегу, детектор об'єктів повертає кілька результатів, тому будь-які з низькою ймовірністю потрібно відфільтрувати.

  3. Запустіть цей код, і він захопить зображення, відправить його до детектора об'єктів і виведе виявлені об'єкти. Якщо ви використовуєте віртуальний 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.

    4 банки томатної пасти на полиці з передбаченнями для 4 виявлень: 35.8%, 33.5%, 25.7% і 16.6%

💁 Ви можете знайти цей код у папці code-detect/pi або code-detect/virtual-iot-device.

😀 Ваш програмний лічильник запасів був успішним!


Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.