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/ru/5-retail/lessons/2-check-stock-device/single-board-computer-objec...

8.2 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 у предсказателя для запуска детектора объектов. Затем он собирает все предсказания с вероятностью выше порогового значения и выводит их в консоль.

    В отличие от классификатора изображений, который возвращает только один результат на тег, детектор объектов возвращает несколько результатов, поэтому предсказания с низкой вероятностью нужно отфильтровать.

  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. Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.