Как создать приложение для робототехники с использованием python в реальном времени? - PullRequest
0 голосов
/ 16 октября 2019

Я создал программное обеспечение для машинного обучения, которое обнаруживает объекты (дух!), Обрабатывает объекты на основе некоторых параметров компьютерного зрения, а затем запускает некоторое оборудование, которое помещает объект в соответствующую корзину. Объекты размещаются на конвейерной ленте, а камера устанавливается в точке, позволяющей делать снимки объектов (по одному объекту за раз), когда они проходят под камерой. У меня нет контроля над скоростью ремня.

Теперь проблема в том, что мне нужно настроить кучу вещей, чтобы машина работала правильно.

Первая проблемавременная модель, необходимая для создания масок сегментации, варьируется от одного объекта к другому.

Другая проблема заключается в том, как мне поддерживать сигналы, которые генерируются после обработки компьютерного зрения, посылать их в исполнительные механизмы таким образом, чтобы он выиграл 'Вы не можете выровняться с выводом, основанным на компьютерном зрении.

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

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

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

Дополнительные детали:

  1. ПрограммированиеКаркасы и библиотека: Tensorflow, OpenCV и python
  2. Разрешение камеры: 1920P
  3. Максимальная скорость накопления: 3 триггера в секунду
  4. Модели глубокого обучения: MaskRCNN / UNet

PS: Вы также можете комментировать технологии или ключевые слова, которые я должен искать, потому что ванильный поиск ничего хорошего не дает.

1 Ответ

1 голос
/ 21 октября 2019

Позвольте мне сначала подвести итог.

  • Что вы хотите сделать

    1. «Объект» находится на конвейерной ленте
    2. Камера будет снимать объект
    3. MaskRCNN будет запущен для анализа
  • Вот некоторые проблемы, с которыми вы сталкиваетесь

    1. "Первая проблема - этоВремя, необходимое модели для создания масок сегментации, варьируется от одного объекта к другому ».

    -> если вы хотите сократить время обработки каждого изображения, тогда необходим ускоритель (FPGA, чип и т. Д.) Или какой-либо метод ускорения. Intel OpenVino и Intel DL Stick - это хорошее начало.

    -> если слишком много изображений для обработки, у вас будет 2 варианта: 1) поставить много машин, чтобы можно было выполнить всю работу, или 2) выбрать только важную работу и отказаться от других. Тот факт, что вы установили «Максимальное накопление» на фиксированное число (3 / сек), заставил меня думать, что это проблема, с которой вы сталкиваетесь. Вычитатель фона - хорошее начало для создания триггеров захвата изображений.

  • «Другая проблема заключается в том, как мне поддерживать сигналы, которые генерируются после обработки компьютерного зрения, отправлять их на исполнительные механизмы таким образом, чтобы они не смещались при выводе на основе компьютерного зрения.»

Несколько советов:

  1. система технического зрения также включает в себя аппаратные части, поэтому спецификация аппаратного обеспеченияявляется обязательным.
  2. Уточнение требований
  3. Невозможные вещи существуют, поэтому иногда вы можете уменьшить некоторые факторы (надежные, стоимость) вашего проекта.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...