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/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

9.5 KiB

Захоплення зображення - Віртуальне IoT обладнання

У цій частині уроку ви додасте сенсор камери до вашого віртуального IoT пристрою та зчитуватимете зображення з нього.

Обладнання

Віртуальний IoT пристрій використовуватиме симульовану камеру, яка надсилатиме зображення або з файлів, або з вашої вебкамери.

Додайте камеру до CounterFit

Щоб використовувати віртуальну камеру, потрібно додати її до додатку CounterFit.

Завдання - додати камеру до CounterFit

Додайте камеру до додатку CounterFit.

  1. Створіть новий Python-додаток на вашому комп'ютері у папці fruit-quality-detector з одним файлом app.py та віртуальним середовищем Python, і додайте пакети CounterFit через pip.

    ⚠️ Ви можете звернутися до інструкцій зі створення та налаштування Python-проєкту CounterFit у уроці 1, якщо це необхідно.

  2. Встановіть додатковий пакет через pip для встановлення CounterFit shim, який може взаємодіяти з сенсорами камери, симулюючи деякі функції Picamera Pip package. Переконайтеся, що ви встановлюєте це з терміналу, де активоване віртуальне середовище.

    pip install counterfit-shims-picamera
    
  3. Переконайтеся, що веб-додаток CounterFit запущений.

  4. Створіть камеру:

    1. У вікні Create sensor на панелі Sensors розгорніть поле Sensor type і виберіть Camera.

    2. Встановіть Name як Picamera.

    3. Натисніть кнопку Add, щоб створити камеру.

    Налаштування камери

    Камера буде створена і з'явиться у списку сенсорів.

    Створена камера

Програмування камери

Тепер віртуальний IoT пристрій можна запрограмувати для використання віртуальної камери.

Завдання - програмування камери

Програмуйте пристрій.

  1. Переконайтеся, що додаток fruit-quality-detector відкритий у VS Code.

  2. Відкрийте файл app.py.

  3. Додайте наступний код на початок app.py, щоб підключити додаток до CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Додайте наступний код до вашого файлу app.py:

    import io
    from counterfit_shims_picamera import PiCamera
    

    Цей код імпортує необхідні бібліотеки, включаючи клас PiCamera з бібліотеки counterfit_shims_picamera.

  5. Додайте наступний код нижче, щоб ініціалізувати камеру:

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.rotation = 0
    

    Цей код створює об'єкт PiCamera, встановлює роздільну здатність 640x480. Хоча підтримуються вищі роздільні здатності, класифікатор зображень працює з набагато меншими зображеннями (227x227), тому немає потреби захоплювати та надсилати більші зображення.

    Рядок camera.rotation = 0 встановлює обертання зображення в градусах. Якщо потрібно повернути зображення з вебкамери або файлу, налаштуйте це відповідно. Наприклад, якщо ви хочете змінити зображення банана на вебкамері в ландшафтному режимі на портретний, встановіть camera.rotation = 90.

  6. Додайте наступний код нижче, щоб захопити зображення у вигляді бінарних даних:

    image = io.BytesIO()
    camera.capture(image, 'jpeg')
    image.seek(0)
    

    Цей код створює об'єкт BytesIO для зберігання бінарних даних. Зображення зчитується з камери як файл JPEG і зберігається в цьому об'єкті. Цей об'єкт має індикатор позиції, щоб знати, де він знаходиться в даних, тому рядок image.seek(0) переміщує цю позицію назад на початок, щоб усі дані могли бути зчитані пізніше.

  7. Нижче цього додайте наступний код для збереження зображення у файл:

    with open('image.jpg', 'wb') as image_file:
        image_file.write(image.read())
    

    Цей код відкриває файл під назвою image.jpg для запису, потім зчитує всі дані з об'єкта BytesIO і записує їх у файл.

    💁 Ви можете захопити зображення безпосередньо у файл, а не в об'єкт BytesIO, передавши ім'я файлу у виклик camera.capture. Причина використання об'єкта BytesIO полягає в тому, що пізніше у цьому уроці ви зможете надіслати зображення до вашого класифікатора зображень.

  8. Налаштуйте зображення, яке камера в CounterFit буде захоплювати. Ви можете встановити Source як File, потім завантажити файл зображення, або встановити Source як WebCam, і зображення будуть захоплюватися з вашої вебкамери. Переконайтеся, що ви натиснули кнопку Set після вибору зображення або вебкамери.

    CounterFit з файлом, встановленим як джерело зображення, і вебкамерою, що показує людину, яка тримає банан у попередньому перегляді вебкамери

  9. Зображення буде захоплено і збережено як image.jpg у поточній папці. Ви побачите цей файл у провіднику VS Code. Виберіть файл, щоб переглянути зображення. Якщо воно потребує обертання, оновіть рядок camera.rotation = 0 відповідно і зробіть ще одну фотографію.

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

😀 Ваша програма для камери була успішною!


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