Автоматизированная сортировка с помощью компьютерного зрения

225
views

Автоматизированная сортировка с использованием компьютерного зрения — это технологический процесс, в котором системы компьютерного зрения используются для идентификации, классификации и сортировки предметов или материалов на основе определенных характеристик, таких как размер, форма, цвет, текстура, штрихкод или другие визуальные особенности. Этот подход широко применяется в таких отраслях, как производство, логистика, сельское хозяйство и переработка отходов, для повышения эффективности, снижения трудозатрат и минимизации ошибок.

Обработка изображений играет решающую роль во многих отраслях промышленности, будь то контроль качества, мониторинг производства или робототехника. Системы на основе ИИ открывают множество новых возможностей и решают задачи, которые ранее было трудно решить даже в существующих промышленных приложениях. Это связано с тем, что обученные нейронные сети могут распознавать сложные закономерности, выявлять аномалии и даже прогнозировать отказы инструментов, что приводит к значительному повышению производительности процессов. Но, несмотря на захватывающие возможности, у многих компаний остаются вопросы о том, как внедрить обработку изображений на основе ИИ в свои существующие приложения.

То, как именно работает эта технология и как её внедрить в собственное приложение, по-прежнему вызывает неопределённость и демонстрирует пробелы в знаниях во многих отраслях. Производители интеллектуальных систем ИИ и камер предлагают решения, упрощая использование встраиваемых систем машинного зрения на основе ИИ, среди прочего. Такая интегрированая платформа является примером — эта комплексная интеллектуальная система ИИ открывает путь к лёгкому использованию обработки изображений на основе ИИ не только для экспертов, но и для разработчиков-любителей. Это делает интеграцию в приложения не только проще, но и быстрее.

Обнаружение, сортировка, подсчёт, проверка комплектности

Обработка изображений на основе ИИ позволяет классифицировать изображения по различным категориям, что очень полезно при обнаружении и классификации товаров. Это позволяет автоматизировать многие задачи, которые до сих пор слишком часто выполняются людьми. К ним относятся выявление дефектов, сортировка объектов на конвейерных лентах и ​​проверка комплектности. В частности, способность распознавать сложные узоры и структуры на изображениях делает их важным инструментом контроля качества. Это связано с тем, что их обычно очень сложно обнаружить невооружённым глазом.

Проверка комплектности и качества многовариантных продуктов в лотках на конвейерной ленте — типичные задачи для интеллектуальных систем

Проверку блистерных упаковок также легче «обучить», чем «запрограммировать».

Анализ осуществимости для экспертов в данной области

Учитывая многочисленные возможности и проблемы в области обработки изображений, особенно при использовании ранее неизвестных технологий, инструментов и методов, проведение анализа осуществимости становится всё более важным. С одной стороны, он позволяет надёжно оценить осуществимость, но также несёт риск быстрого усложнения и увеличения затрат. Однако ключевые навыки работы с методами машинного обучения уже не те же, что и для обработки изображений на основе правил. Качество результатов теперь определяется не результатом ручной разработки программного кода экспертом по обработке изображений, а процессом обучения на подходящих выборочных данных. Прежде всего, это требует глубокого понимания соответствующего приложения.

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

Короткие циклы обучения благодаря стратегии небольших шагов

После получения первоначальных результатов анализа осуществимости можно внести корректировки в дальнейшую процедуру для повышения качества и производительности моделей ИИ. Важно отметить, что может потребоваться переход к более крупным наборам данных. Однако это должен быть постепенный процесс, чтобы гарантировать корректное и надежное обучение моделей. Небольшой набор данных на начальном этапе снижает риск переобучения, когда модель слишком хорошо «запоминает» обучающие данные и плохо обобщает их на новые, неизвестные данные. Кроме того, работа с меньшим количеством данных сокращает этапы обучения и позволяет проводить более быстрые эксперименты и итерации, что позволяет получать своевременную обратную связь и соответствующим образом адаптировать модель или наборы данных.

Удобные инструменты платформы,  доступные даже неопытным пользователям, также помогают оценивать результаты обучения с использованием подходящих выборочных данных непосредственно в облаке. Это означает, что вы теряете мало времени на старте проекта при экспериментах из-за трудоёмкой подготовки и проведения тестов на реальной машине, особенно если требуется несколько итераций.

Ниже перечислены ключевые компоненты автоматизированной системы сортировки на основе компьютерного зрения:

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

Алгоритмы компьютерного зрения: Эти алгоритмы анализируют визуальные данные для идентификации и классификации объектов. Такие технологии, как сверточные нейронные сети (CNN) или модели машинного обучения, часто лежат в основе этих систем.

Механизм сортировки: исполнительные механизмы, роботизированные руки, воздушные струи или диверторы физически сортируют предметы по соответствующим категориям на основе анализа.

Автоматизированная система сортировки и оценки плодов манго на основе компьютерного зрения

Примеры использования автономной сортировки на основе компьютерного зрения

Сортировка на основе компьютерного зрения применяется в различных отраслях. Ниже приведены некоторые примеры использования.

Сельское хозяйство: сортировка и оценка фруктов

Эти системы на основе компьютерного зрения могут сортировать фрукты, такие как яблоки, апельсины и бананы, по их размеру, форме, цвету или другим физическим характеристикам. Система использует камеры для захвата изображений фруктов на конвейерных лентах, анализирует их качество и сортирует их по категориям, таким как «премиум», «стандарт» или «отбраковка». Эта система повышает эффективность, обеспечивает единообразие и сокращает ручной труд при сортировке.

Система классификации и сортировки фруктов

Сельское хозяйство: Сортировка семян

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

Система сортировки семян

Сельское хозяйство: Сортировка овощей на наличие дефектов

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

Система сортировки дефектов овощей

Производство: сортировка бракованной продукции

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

Система обнаружения дефектов производственной продукции

Производство: Сортировка металлолома

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

Система сортировки металлолома

Производство: Классификация и сортировка электронных компонентов

Эта система классификации и сортировки электронных компонентов использует компьютерное зрение для идентификации электронных компонентов, таких как резисторы, конденсаторы или микросхемы, и сортировки их по типу, размеру и требованиям к размещению. Эта система повышает эффективность сборки печатных плат и снижает количество ошибок при размещении компонентов.

Система классификации и сортировки электронных компонентов

Логистика: Сортировка посылок на складах

Эта система на основе компьютерного зрения оптимизирует сортировку посылок в логистике, автоматизируя обнаружение и классификацию различных видов упаковки, включая коробки, конверты с мягкой подкладкой и полиэтиленовые пакеты. Обрабатывая данные с помощью компьютерного зрения, система различает типы упаковки, предотвращая неправильную маршрутизацию и застревание оборудования. Система отслеживает посылки на конвейерных лентах, а роботизированные манипуляторы перемещают их в нужный контейнер. Это повышает скорость сортировки и снижает количество ошибок при доставке.

Система сортировки пакетов

Цепочка поставок: сортировка мусора и вторсырья

Эта система использует компьютерное зрение для управления отходами, повышая эффективность и точность процессов сортировки мусора и вторсырья. Используя камеры и модели искусственного интеллекта, эта система может идентифицировать и классифицировать различные материалы (такие как пластик, стекло, металлы и бумагу) на конвейерных лентах, обеспечивая их направление в соответствующие категории переработки. Такая автоматизация не только повышает точность сортировки, но и значительно снижает потребность в ручном вмешательстве, что приводит к более высокой степени извлечения вторсырья и уменьшению количества отходов на свалках. Роботы с искусственным интеллектом были разработаны для высокоточной сортировки вторсырья, повышая общую эффективность предприятий по переработке.

Система сортировки мусора

Фармацевтика: Сортировка таблеток

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

Сортировка таблеток с использованием компьютерного зрения

Здесь мы обсудили некоторые примеры использования систем сортировки на основе компьютерного зрения. Сферы применения безграничны и охватывают множество других областей. Компьютерное зрение значительно улучшает процессы сортировки в различных отраслях, автоматизируя их и повышая точность. Интеграция компьютерного зрения в операции сортировки позволяет добиться повышения эффективности, точности и производительности.

Как создать автоматизированную систему сортировки

В этом разделе рассматривается, как одна из платформ для создания систем машинного зрения упрощает создание автоматизированных систем сортировки с использованием компьютерного зрения на примере сортировки яблок. Как отмечалось в предыдущих разделах, основным компонентом любой системы сортировки является модель компьютерного зрения, которая управляет процессом принятия решений. Здесь мы покажем, как платформа помогает в построении такой модели. Описанные ниже шаги представляют собой чёткий путь к разработке автоматизированной системы сортировки.

Мы разрабатываем модель обнаружения объектов для сортировки яблок с использованием компьютерного зрения, чтобы отличать годные яблоки от испорченных. Классы для этого проекта определены как «apple» и «damaged_apples». Начните с создания проекта на платформе для обнаружения объектов, чтобы управлять набором данных и оптимизировать процесс разработки модели.

Шаг 1: Сбор и аннотирование набора данных

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

После сбора изображений выполняется аннотирование с помощью инструмента «Ограничивающая рамка». Нарисуйте прямоугольники вокруг яблок, обозначив их как «apple» или «damaged_apples». Эти маркированные ограничивающие рамки служат эталонными данными, позволяя модели точно распознавать и классифицировать объекты во время обучения.

Маркировка наборов данных

Шаг 2: Обучение модели

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

Модель сортировки яблок

На изображении выше показан результат работы модели обнаружения объектов, обученной с использованием платформы для сортировки яблок. Модель идентифицирует и классифицирует яблоки как «яблоко» (хорошее) или «поврежденное_яблоко» с соответствующими оценками достоверности. Показатели производительности (mAP: 79,1%, точность: 71,1%, полнота: 77,0%) указывают на эффективность модели в идентификации и классификации яблок.

Шаг №3: Создание скрипта вывода

На этом этапе мы научимся создавать скрипт вывода с использованием API вывода платформы и библиотеки Supervision. Скрипт обрабатывает поток с камеры в реальном времени для определения годных и поврежденных яблок и отправляет результаты на контроллер для автоматической сортировки. Идентифицированные метки используются для передачи команд управления сортировочным механизмом через последовательный порт на подключенный контроллер, например, на комплект разработчика Arduino. Код обеспечивает бесшовную интеграцию с механизмом сортировки для отделения годных и поврежденных яблок.

api_key = "YOUR_API_KEY"

from inference import InferencePipeline
from inference.core.interfaces.camera.entities import VideoFrame

import cv2
import supervision as sv

import serial
import time
import sys

# Initialize serial communication with Arduino
arduino = serial.Serial('COM4', 9600, timeout=1)
time.sleep(2)  # Allow Arduino to reset

def send_command_to_arduino(command: str):
    """Send a command to Arduino via serial."""
    try:
        arduino.write(command.encode())  # Send command as bytes
        print(f"Sent to Arduino: {command}")
    except Exception as e:
        print(f"Error sending data to Arduino: {e}")

# Initialize annotators
label_annotator = sv.LabelAnnotator()
box_annotator = sv.BoxAnnotator()
# Initialize a variable to store the last sent command
last_command = None

def my_custom_sink(predictions: dict, video_frame: VideoFrame):
    global last_command  # Declare the variable as global to 
    retain its value across calls
    
    # Extract labels from predictions
    labels = [p["class"] for p in predictions.get("predictions", [])]
    # Convert predictions to Supervision Detections
    detections = sv.Detections.from_inference(predictions)
    # Annotate the frame
    image = label_annotator.annotate(
        scene=video_frame.image.copy(), detections=detections, 
        labels=labels
    )
    image = box_annotator.annotate(image, detections=detections)
    # Display the annotated image
    cv2.imshow("Predictions", image)
    
    # Determine the appropriate command based on the labels
    if "apple" in labels:
        current_command = "G_APPLE"  # Command for damaged apples
    elif "damaged_apple" in labels:
        current_command = "D_APPLE"  # Command for good apples
    else:
        current_command = None  # No command for other cases

    # Send the command only if it has changed
    if current_command != last_command:
        if current_command is not None:  # Only send if there's a 
        valid command
            send_command_to_arduino(current_command)
        last_command = current_command  # Update the last command
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        return

pipeline = InferencePipeline.init(
    model_id="apple-sorting-2bfhk/2",
    video_reference=0,  # Use the default webcam
    on_prediction=my_custom_sink,
    api_key=api_key,
)

pipeline.start()
pipeline.join()
Шаг №4: Сборка сортировочного механизма

Система, показанная на изображении, представляет собой автоматизированный механизм сортировки яблок, в котором сервоприводы направляют яблоки в соответствующие контейнеры в зависимости от их классификации как «хорошие» или «испорченные».

Проектирование системы сортировки яблок

Схема системы сортировки яблок

Схема состоит из платы Arduino Uno и двух сервоприводов. Сервоприводы подключены к контактам ШИМ платы Arduino (контакт 5 для сервопривода «Хорошее яблоко» и контакт 6 для сервопривода «Поврежденное яблоко»).

Arduino взаимодействует с системой компьютерного зрения через USB-соединение, получая команды через последовательный порт. Эти команды определяют положение сервоприводов, позволяя им открывать или закрывать сортировочные ворота. Схема обеспечивает согласованную работу сервоприводов с результатами классификации, направляя яблоки в соответствующие контейнеры.

Вот код прошивки для Arduino:

#include <Servo.h>
int servoPin_1=5;
int servoPin_2=6;

Servo good_apple_servo, damaged_apple_servo;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  good_apple_servo.attach(servoPin_1);
  damaged_apple_servo.attach(servoPin_2);
  good_apple_servo.write(0);
  damaged_apple_servo.write(0);

}

void loop() {
  // put your main code here, to run repeatedly:
if (Serial.available() > 0) {
        String command = Serial.readStringUntil('\n'); // Read the 
        command
        command.trim(); // Remove extra whitespace

        // Debug: Print the received command
        Serial.print("Received command: ");
        Serial.println(command);

        if (command == "G_APPLE") {
          good_apple_servo.write(90); // Opens sort line for 
          good apple
          damaged_apple_servo.write(0); // closes sort line for 
          damaged apple
            
        } else if (command == "D_APPLE") {
          damaged_apple_servo.write(90); // Opens sort line for 
          damaged apple
          good_apple_servo.write(0); // closes sort line good apple
            
        } 
  }

}

Принцип работы автономной системы сортировки

Настройка компонентов

К Arduino Uno подключены два сервопривода, каждый из которых отвечает за управление маршрутом сортировки. Сервопривод «Good Apple» управляет маршрутом для яблок, классифицированных как «хорошие», а сервопривод «Davaged Apple» — для повреждённых.

Процесс классификации

Модель компьютерного зрения обрабатывает поток с камеры в реальном времени, чтобы классифицировать яблоки как «хорошие» или «повреждённые». С помощью скрипта вывода, описанного в шаге 3 выше. На основе классификации на Arduino через последовательный порт отправляется определённая команда (G_APPLE для хороших яблок или D_APPLE для повреждённых).

Управление сервоприводами

Arduino получает команду и соответствующим образом корректирует положение сервоприводов:

  • Для хорошего яблока сервопривод «Good Apple» поворачивается на 90° (открывается), чтобы яблоко прошло, а сервопривод «Davaged Apple» остаётся в положении 0° (закрывается).
  • В случае поврежденного яблока сервопривод поврежденного яблока перемещается в положение 90° (открыто), чтобы направить яблоко, в то время как сервопривод хорошего яблока остается в положении 0° (закрыто).
Сортировка в действии

Когда яблоко проходит через поле зрения камеры, система классификации запускает движение сервоприводов. Сервоприводы действуют как затворы, направляя яблоки в отдельные контейнеры или лотки, обеспечивая точную сортировку.

Автоматизация и обратная связь

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

Эта схема демонстрирует, как компьютерное зрение и сервоприводы, управляемые Arduino, работают вместе, создавая надежный автоматизированный механизм сортировки.

Примечание: в этой схеме показаны только ключевые компоненты, взаимодействующие со сценарием вывода. Для полной реализации системы могут потребоваться дополнительные компоненты (аппаратная настройка) и функции.

Заключение

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

Используя скрипт вывода, работающий на основе API вывода платформы для создания системы машинного зрения и библиотеки Supervision, мы добились классификации яблок в режиме реального времени на «хорошие» и «поврежденные». Интеграция простой схемы демонстрирует динамическое управление маршрутами сортировки на основе результатов классификации.

Эта установка демонстрирует потенциал объединения аналитических данных, полученных с помощью ИИ, с аппаратной автоматизацией для оптимизации процесса автоматизированной сортировки. С добавлением некоторых дополнительных компонентов и настройкой эта масштабируемая структура может быть адаптирована для различных задач сортировки в различных отраслях.