Машинное зрение: Машинное зрение. Что это и как им пользоваться? Обработка изображений оптического источника
Осваиваем компьютерное зрение — 8 основных шагов / Хабр
Привет, читатель.
Для тебя уже не является новостью тот факт, что все на себе попробовали маски старения через приложение Face App. В свою очередь для компьютерного зрения есть задачи и поинтереснее этой. Ниже представлю 8 шагов, которые помогут освоить принципы компьютерного зрения.
Прежде, чем начать с этапов давайте поймём, какие задачи мы с вами сможем решать с помощью компьютерного зрения. Примеры задач могут быть следующими:
Минимальные знания, необходимые для освоения компьютерного зрения
Итак, теперь давайте приступим непосредственно к этапам.
Шаг 1 — Базовые методики работы с изображениями
Этот шаг посвящен техническим основам.
Посмотрите — отличный YouTube-плейлист «Древние секреты компьютерного зрения» от Joseph Redmon.
Прочтите — третью главу книги Ричарда Шелиски «Компьютерное зрение: Алгоритмы и приложения».
Закрепите знания — попробуйте себя в преобразовании изображений с помощью OpenCV. На сайте есть много пошаговых электронных пособий, руководствуясь которыми можно во всём разобраться.
Шаг 2 — Отслеживание движения и анализ оптического потока
Оптический поток — это последовательность изображений объектов, получаемая в результате перемещения наблюдателя или предметов относительно сцены.
Пройдите курс — курс по компьютерному зрению на Udacity, в особенности урок 6.
Посмотрите — 8-ое видео в YouTube-списке и лекцию об оптическом потоке и трекинге.
Прочтите — разделы 10.5 и 8.4 учебника Шелиски.
В качестве учебного проекта разберитесь с тем, как с помощью OpenCV отслеживать объект в видеофрейме.
Шаг 3 — Базовая сегментация
В компьютерном зрении, сегментация — это процесс разделения цифрового изображения на несколько сегментов (суперпиксели). Цель сегментации заключается в упрощении и/или изменении представления изображения, чтобы его было проще и легче анализировать.
Так, преобразование Хафа позволяет найти круги и линии.
Посмотрите эти видео:
Ознакомьтесь — отличный проект подобные задачи которого чрезвычайно важны для компьютерного зрения самоуправляемых электромобилей.
Шаг 4 — Фитинг
Для различных данных требуется специфичный подход к фитингу и свои алгоритмы.
Посмотрите видео:
Прочтите — разделы 4.3.2 и 5.1.1 учебника Шелиски.
В качестве задания для самостоятельной работы проанализируйте проблему определения координаты места схождения линий на горизонте перспективы.
Шаг 5 — Совмещение изображений, полученных с разных точек осмотра
Посмотрите Youtube-плейлист
Прочтите — сопроводительное письмо.
Для проекта можно взять собственные данные. Например, сфотографировать с разных сторон что-то из мебели и сделать в OpenCV из альбома плоских изображений 3D-объект.
Шаг 6 — Трёхмерные сцены
Умея создавать 3D-объекты из плоских изображений, можно попробовать создать и трёхмерную реальность.
Пройдите — курс по стереозрению и трекингу
Посмотрите видео:
В качестве проекта попытайтесь реконструировать сцену или сделать трекинг объекта в трехмерном пространстве.
Шаг 7 — Распознавание объектов и классификация изображений
В качестве фреймворка для глубокого обучения удобно использовать TensorFlow. Это один из наиболее популярных фреймворков, поэтому вы без труда отыщете достаточно примеров. Для начала работы с изображениями в TensorFlow пройдите этот туториал.
Далее, пользуясь ссылками, рассмотрите следующие темы:
В качестве проекта создайте в TensorFlow нейросеть, определяющую по изображению марку автомобиля или породу собаки.
Шаг 8 — Современное глубокое обучение
Прочитайте — лекции Стенфордского курса
Посмотрите видео:
На этом наши шаги в изучении компьютерного зрения подошли к концу. Надеюсь вы узнали для себя что-нибудь новое. Как принято на Хабре, понравился пост — поставь плюс. Не забудьте поделиться с коллегами. Также, если у вас есть то, чем вы можете поделиться сами — пишите в комментариях. Больше информации о машинном обучении и Data Science на Хабре и в телеграм-канале Нейрон (@neurondata).
Всем знаний!
Основы машинного зрения — Control Engineering Russia
Люди часто не вполне точно представляют, на что способно и чего не может сделать машинное зрение в составе производственной линии и в процессе изготовления продукции. Знание того, как действует эта технология, поможет вам определить, насколько полезной она окажется в решении проблем узких мест в конкретном технологическом и производственном процессе. Так что же представляет собой машинное зрение и как оно работает?
Если говорить в общем, машинное зрение — это применение одной или нескольких видеокамер в промышленной среде для автоматического анализа и проверки объектов производства на соответствие тем или иным требованиям. Полученные таким способом данные могут быть впоследствии использованы для управления производственным или технологическим процессом или в системе управления деятельностью предприятия. Одна из типичных областей применения систем машинного зрения — в составе конвейера. Здесь автоматически, после выполнения какой-либо операции над деталью, включается камера для захвата и обработки изображения интересующего объекта. Камера может быть запрограммирована для проверки положения чего-либо, в частности установленной детали, а также цвета, размера или формы объекта, а кроме того, сможет определить наличие или отсутствие самого объекта в зоне обзора. Система машинного зрения также может просматривать и расшифровывать стандартный или двумерный матричный штрихкод и считывать напечатанные специальные символы.
После проверки изделия обычно генерируется сигнал, позволяющий принять решение о дальнейших действиях. При отслеживании результатов проверки через систему деталь может быть забракована и сброшена в контейнер для изоляции брака, или направлена на отводящий конвейер, или передана для выполнения дополнительных сборочных операций. В любом случае, системы машинного зрения могут предоставить гораздо больше информации об объекте, чем простые датчики его отсутствия/присутствия.
Типичные области применения машинного зрения включают:
- контроль качества;
- управление роботом/машиной, станком или инструментом;
- тестирование и калибровку;
- управление производственным или технологическим процессом в режиме реального времени;
- сбор информации;
- мониторинг оборудования;
- сортировку/подсчет объектов.
Многие изготовители серийной продукции используют автоматическое машинное зрение вместо сотрудников службы контроля качества (отдела технического контроля), потому что оно предпочтительнее для решения монотонных повторяющихся задач. Эти системы работают быстрее, объективнее и, главное — непрерывно, без снижения производительности. Системы машинного зрения могут проверять сотни или даже тысячи деталей в минуту и обеспечивают более последовательные и надежные результаты проверки, чем при работе человека.
Сокращая количество дефектов, увеличивая объем выпуска качественной продукции и облегчая соблюдение правил контроля через отслеживание деталей с помощью машинного зрения, производители конечной продукции могут сэкономить расходы и повысить свою рентабельность, увеличив прибыль.
Аналоговые датчики в системах машинного зрения
Одним из основных датчиков в системах промышленной автоматизации является фотоэлемент с дискретным откликом. Причина, по которой мы называем его «дискретным» (иногда его именуют «цифровым», что не совсем корректно), заключается в том, что он имеет только два состояния: «включено» или «выключено» (рис. 1).
Рис. 1. Дискретный фотоэлектрический датчик, работающий на отражение, сообщает, измерено ли заданное значение (характеристика), идентифицирующее объект
Основная идея фотоэлемента, работающего на отражение, состоит в том, что он испускает луч света и определяет, отражается ли этот свет от какого-либо объекта. Если объект отсутствует, свет обратно в приемник фотоэлемента, естественно, не отражается. К приемнику подведено электрическое напряжение — как правило, это обычно стандартные для индустрии средств промышленной автоматизации 24 В. Если объект присутствует, то выход приемника активируется (включается), и сигнал может быть использован в системе управления, чтобы произошло то или иное заданное событие (отклик). Если объект вышел из зоны контроля датчика, приемник снова деактивируется (его выход выключается).
Фотоэлемент, работающий на отражение, может быть как с дискретным откликом, так и с аналоговым. Данный элемент не только имеет два состояния — «выключено» и «включено», но и дает на выходе число, показывающее, сколько света возвращается в приемник после отражения. Фотоэлемент (рис. 2) может содержать до 256 градаций (условных значений или единиц). При этом значение 0 означает отсутствие отражения света, то есть наличие темного или черного, а 255 — большое отражение света или наличие белого. Фотодатчик, расположенный с левой стороны (рис. 2), показывает значение 76 единиц или темно-серый оттенок. Это примерно 30% от максимального значения 255. Если перед датчиком поместить более светлый объект, то датчик даст нам большее число. Если это будет 217, что составляет около 85% от полного диапазона в 255 единиц, это указывает на гораздо более светлый оттенок по отношению к предыдущему темно-серому.
Рис. 2. Аналоговый фотоэлектрический датчик, работающий на отражение, может обеспечить необходимую шкалу измерений уровня отражения света от объекта
А теперь представим, что в виде квадратного или прямоугольного массива (матрицы) могут быть расположены и направлены на объект тысячи крошечных аналоговых фотоэлементов. Это (основываясь на отражательной способности того участка, куда был направлен такой датчик) создаст изображение объекта в черно-белом режиме.
Отдельные точки восприятия на этих изображениях называются «пиксели». Конечно, с практической точки зрения тысячи отдельных (в конструктивном исполнении) крошечных фотоэлектрических датчиков не используются для создания изображения. Вместо этого объектив фокусирует изображение на твердотельную матрицу со светочувствительными элементами. В такой матрице предусмотрены либо устройства с зарядовой связью — ПЗС (charge coupled device, CCD), либо комплементарная матрица на основе кремниевых металл-оксид-полупроводниковых — КМОП (metal-oxide-semiconductor, CMOS) светочувствительных твердотельных устройств. Отдельные датчики в матрице — это и есть пиксели.
Серия изображений, представленных на рис. 3, демонстрирует лишь небольшой фрагмент картинки, снятой камерой. Эта область считается «областью интереса» для конкретной инспекции.
Рис. 3. Датчики машинного зрения оборудования создают изображения, используя массивы (матрицы) пикселей
Машинное зрение может использовать и цветочувствительные ячейки-пиксели. Кроме того, в таких системах часто имеются матрицы из пикселей гораздо большего размера. К захваченным изображениям для определения размеров, расположения кромок, перемещения и взаимного расположения компонентов относительно друг друга применяются специальные программные инструменты. На рис. 4 показано изображение, полученное от матрицы технологии ПЗС.
Рис. 4. Изображение было получено с помощью устройства с зарядовой связью размером 640×480. Оно используется при осмотре стеклянных шприцев с пластиковым колпачком, а целью применения является определение того, достаточно ли плотно надет колпачок
Четыре основных компонента систем машинного зрения
Основными четырьмя составляющими системы зрения являются объектив и система освещения (подсветки объекта), датчик изображения или камера, процессор и способ передачи результатов, будь то с помощью физических входов/выходов (I/O) или с помощью других средств коммуникации на основе, как правило, стандартных протоколов и общепринятых интерфейсов.
Объектив захватывает изображение и передает его сенсору в виде световой проекции. Чтобы оптимизировать систему зрения, видеокамера должна иметь соответствующий объектив. Хотя существует много типов объективов, в приложениях машинного зрения для простоты управления обычно используются объективы с фиксированным фокусным расстоянием.
В процессе выбора важно учитывать три определяющих фактора:
- поле зрения;
- рабочее расстояние до объекта;
- размер сенсора (матрицы) камеры.
Для получения изображения, достаточного для его последующей обработки и достижения нужного качества, существует много разных способов передачи к целевому объекту необходимого уровня освещения. Направление, из которого исходит свет, его яркость, цвет или длина волны по сравнению с цветом объекта — все это важные элементы, которые следует учитывать при проектировании системы машинного зрения для конкретной среды применения. В то время как освещение является важной частью получения хорошего изображения, есть и другие моменты, оказывающие влияние на интенсивность отраженного света от объекта.
Так, объектив имеет регулируемый параметр, называемый апертурой, или диафрагмой, а если говорить точнее — это отверстие диафрагмы объектива, которое открывается или закрывается, чтобы позволить большему или меньшему количеству света проникать в объектив. В сочетании с временем экспозиции это определяет количество света на матрице пикселей, прежде чем будет проведен захват изображения объекта. Время срабатывания затвора, или экспозиция (иногда это называют «выдержка»), определяет, как долго изображение накладывается на массив пикселей. В машинном зрении затвор управляется электроникой, а время экспозиции составляет обычно миллисекунды.
После захвата изображения, как уже было сказано, в дело вступают программные инструменты. Некоторые из них применяются до анализа (предварительной обработки), другие используются для определения заданных свойств исследуемого объекта. На этапе предварительной обработки к изображению можно применить эффекты для повышения резкости краев, увеличения контрастности или заполнения пробелов (бликов). Это сделано для улучшения возможностей других программных инструментов, которые вступают в действие позже.
Цель машинного зрения
Ниже приведен перечень некоторых распространенных инструментов, которые можно применять для получения информации о целевом объекте:
- Подсчет пикселей: подсчитывает количество светлых или темных пикселей в объекте.
- Обнаружение краев (граней): поиск краев (граней) объекта.
- Измерение размеров: измерение размеров объекта в таких единицах, как пиксели, дюймы или миллиметры.
- Распознавание образов объектов или сопоставление их с шаблоном: поиск, сопоставление и/или подсчет определенных образцов целевых объектов. Это может включать определение местоположения объектов различного размера.
- Оптическое распознавание символов (Optical character recognition, OCR): автоматическое считывание текста, такого как, например, серийные номера.
- Считывание штрихкода, матричного и «двумерного»: сбор данных, содержащихся в различных стандартных штрихкодах.
- Обнаружение и извлечение blob-объектов: проверка изображения на наличие отдельных областей (blob — буквально «капель») на цифровом изображении, которые отличаются по своим свойствам, таким как яркость или цвет, по сравнению с окружающими областями.
- Цветовой анализ: идентификация деталей, продуктов и предметов путем использования цвета, а также оценка их качества и выявление особенностей.
Конечной целью сбора данных в системах оценки качества зачастую является их использование для сравнения с целевыми значениями и определения результата «пройден тест или не пройден» или «можно ли пропускать целевой объект дальше». Например, при проверке кода или штрихкода прочитанное значение сравнивается с сохраненным целевым значением, а для измерений полученные данные сравниваются с надлежащим значением и допусками. Для проверки буквенно-цифрового кода текстовое значение OCR сравнивается с правильным или целевым значением. Что касается проверки дефектов, измеренный размер дефекта можно сравнить с максимально допустимыми стандартами качества.
Связь систем машинного зрения с общей системой управления
После того как система машинного зрения извлекла информацию, эти сведения с помощью процессора и программных средств могут быть переданы в систему управления посредством целого ряда стандартных промышленных протоколов связи. Обычно системы машинного зрения поддерживают EtherNet/IP, Profinet и Modbus TCP. Также распространены и последовательные протоколы на основе RS-232 и RS-485. Часто в систему для запуска того или иного ответа или простого отчета о результатах встроен цифровой ввод/вывод. Также доступны стандарты связи, специально ориентированные на системы машинного зрения.
Понимание физики и возможностей систем машинного зрения может помочь определить, подходит данное приложение для систем на базе видеокамер или нет. В целом, то, что видит человеческий глаз, — это то, что может видеть и камера (иногда в большем или меньшем приближении), а вот расшифровка и передача информации могут быть уже более сложными процессами. Кроме того, использование надежного поставщика, хорошо осведомленного в системах, освещении и технологиях, может сэкономить много времени и денег и быть полезным не только на текущий момент, но и в долгосрочной перспективе.
Вконтакте
Google+
Машинное зрение и медицина / Блог компании Recognitor / Хабр
Прошло лет пять с того момента как нейронные сетки начали втыкать в каждую дырку. Есть масса примеров где всё работает почти идеально — биометрия, распознавание технической информации (номера, коды), классификация и поиск в массиве данных.
Есть области где всё хуже, но сейчас идёт большой прогресс — речь/распознавание текстов, переводы.
Но есть области загадочные. Вроде как и прогресс есть. И статьи регулярно выходят. Только вот до практического применения как-то особо и не доходит.
Давайте разберём то, как нейронные сеточки и машинное зрение работает в медицине.
Небольшая оговорка. В статье я буду говорить только про машинное зрение. Это когда мы пробуем распознать что-то по рентгенограмме, фотографии, картинке с УЗИ, КТ/МРТ, И.Т.Д.
Эти области которые сильно улучшились в последние годы. В других областях всё несколько запутаннее/хитрее, не хочу их касаться.
Небольшая оговорка 2. Я хочу обойтись тут без явных примеров, рассматривая общности, которые справедливы почти для всех нейронок. Если интересно почитать что нейронки в последнее время научились делать в медицине, то советую:
Распознавание флюорограмм
Распознавание мамограмм
Сетчатка
Рак кожи
И многое многое прочее.
Часть 1 — с наскоку
Медицина — очень специфическая область человеческого знания. В отличие от того что я перечислял выше (биометрия/номера/переводы) — тут есть ответственность. Если врач явно накосячил — человеческое общество предполагает что ему должно прилететь. Не сказать что эта установка всегда выполняется. Но есть некоторая парадигма и в сознании врачей и в сознании общества. С кем бы ты не говорил — люди всегда мыслят в этих рамках.
А теперь приходим мы со своей нейронной сеточкой. И говорим: «мы предсказываем с той же точностью что и врач!» (ниже мы рассмотрим это утверждение подробно). Врач смотрит на одну фоточку — ок. На вторую — шикарно. А вот на десятой он не согласен с мнением сети кардинальным образом. Врач бы написал «подозрительно», а сеть выдаёт «здоров». «Что это такое?!» — думает врач. «Неужели бы мы выпустили этого больного?!»
Глобально при подходе «нейронная сеть + врач» где цель сети «искать патологию» апостериорное распределение может быть следующим:
- Пациент имеет патологию -> нейронная сеть её нашла -> врач её увидел (плюс врачу в карму)
- Пациент имеет патологию-> нейронная сеть её не нашла -> врач её увидел (врач считает «ну и напридумывали тут хрени», минус в карму сети)
- Пациент имеет патологию -> нейронная сеть её не нашла -> врач тоже ничего не видит (все всё продолбали, никакого наказания никому)
- Пациент имеет патологию-> нейронная сеть её не нашла -> врач её не видит (врач считает «ну и напридумывали тут хрени», а дальше два варианта «врач уверен что он прав», находка уходит в утиль и «врач хочет спихнуть ответственность» — назначение дополнительных анализов/дополнительных исследований — и тогда победа)
- Пациент не имеет патологию -> нейронная сеть её не нашла -> врач тоже ничего не видит (плюс врачу в карму)
- Пациент не имеет патологию -> нейронная сеть её не нашла -> врач что-то видит («что же нейронка ваша не видит столь очевидных симптомов, даже если патологии тут не было — однозначно надо проверять!»)
- Пациент не имеет патологию -> нейронная сеть её нашла -> врач тоже что-то нашёл (все согласны, все в плюсе)
- Пациент не имеет патологию -> нейронная сеть её нашла -> врач ничего не видит (опять же два варианта событий «врач считает что он прав» — и всё ок «врач хочет спихнуть ответственность» — и запускает цепочку исследований. Результат — раздосадованный врач, что опять пришлось назначить кучу анализов а там ничего).
Давайте теперь просуммируем все исходы: 1,3,5,7 — нет никакого изменения в текущем протоколе исследования. Для скрининговых исследований это будет 95% случаев. Нейронная сеть ничего не меняет, а любые действия с ней связанные будут являться усложнением работы врача = > в глобальном смысле будут давить в минус.
Пункты 2 и 6 дают офигенный минус в карму нейронных сетей. Они будут создавать явный негатив каждый раз когда происходят.
Пункт 4 — единственная ситуация когда нейронка может отыграться. Но она должна пройти через негатив врача. И это полностью будет убиваться Пунктом 8. Чтобы врачи поняли что нейронка эффективна — число случаев описываемых пунктом 4 должно быть сравнимо или выше чем в пункте 8. Но это достижимо лишь в тех случаях когда число пациентов с патологией высоко. Для скрининга это не встречается.
Реальность выглядит ещё несколько хуже, если честно. Если нейронка видит чего не было в обучении, но что для врача однозначно — она будет выдавать какие-то рандомные ответы. Ну, например, остатки сложных медицинских вмешательств при флюорографии (швы/протезы/осколки). И, даже если сеть статистически лучше врача, но каждые пару недель врач видит одну и ту же очевидную ошибку — у него будет пригорать.
Ок. Мы пришли к выводу, что при интеграции с квалифицированным врачом нейронная сеть практически не способна повысить выявление заболеваний — она будет лишь добавлять проблемы. А давайте подумаем как нейронку можно прикрутить без врача? Реальная проблема поликлиник в России — очень много низкокачественных специалистов на местах. Я разговаривал с врачами федеральных центов — и там две жалобы:
- Врачи при малейшем сомнении отправляют в федеральный центр для диагностики
- Врачи не видят опухолей на пол груди (мало опыта)
Надо понимать, что в таких ситуациях любая нейронная сеть выдаёт точность на порядок выше чем такой врач.
Но при попытке притянуть к реальности всё становиться несколько печальнее:
- Заменить врача целиком не позволит законодательство — опять же «кто будет нести ответственность»
- Врач низкого уровня скорее всего будет идти по одному из двух путей:
- Считать себя умнее сети и не слушать её решения. Судя по тому что я видел — таких будет большинство.
- Полностью исполнять её решения. Это неплохо, но мы не сможем заставить врача делать это бюрократически, ибо врач -тот кто несёт ответственность.
- На низком уровне есть вполне хорошие врачи — и это надо учитывать. Такие врачи могут подорвать репутацию любой программы, указывая на её ошибки.
Самое печальное, что эта проблема «низкая квалификация врача» — решается другими способами, а не нейронными сетями. Грамотный системный подход, с постоянным обучением врача/проверкой квалификации/созданием сетевой инфраструктуры чтобы один врач мог обслуживать сразу много больниц / дублирование на 2-3 врача. Решать эту проблему нейронными сетями — примерно то же что и подходить к ремонту автомобиля со словами «у меня есть рулон скотча, почему бы не попробовать».
Тот же ДИТ в Москве идёт тоже по пути «сначала сведем всё в одно место, а потом распознаем». Своё решение с нейронками они пиарили на конференциях. Но начинают работу они именно с системных решений. Нейронки в такие места придут потом, где-то ускорив работу, где-то повысив качество. Начинать надо именно с инфраструктуры.
Конечно, есть способ как можно заткнуть эту проблему частично именно нейронкой. Автоматом проверять все снимки сделанные в учреждении. Поставить порог таким образом чтобы ложных срабатываний почти не было (да, пусть будем 20% больных пропускать). И, если мы уверены, что пациент болен — то в обход врача назначать ему дополнительные обследования.
Выглядит просто. В реальности это адовый вариант: он рушит логику принятия решений (больного отпустили, как его назад теперь звать), он рушит репутацию врачей (как это Василий Петрович косячит?!), он неприемлем администрации (как 20% пропускать?!). Он не будет работать в случае если врачи компетентны. Для больницы непонятен профит данной системы, зачем тратиться на установку. И он возможен только если в медучреждении где уже есть хорошая информационная система.
Но, в эту сторону смотрит половина проектов с которыми я сталкивался…
Ещё неплохой вариант — подсвечивать врачу то что видит сеть. Опухоли/органы/какие-то характеристики. Но это не является задачами первоочередной необходимости. И в первую очередь нужно производителям оборудования. В какой-то момент такие «ассистенты» смогут сдать стандартом в области. Такой подход не требует жёсткого лицензирования, частично разгружает врача, является неплохим конкурентным преимуществом для аппарата/софта. Я видел несколько таких проектов. Но, опять же, это про другое. Это не заменяет врача, не улучшает выявляемость.
Часть 2. А что со статистикой
Недавно вышла офигенная статья. Мета-исследование на тему того какую точность нейронные сети достигают и как оно бьётся с людьми. Оно не содержит в себе ответов на то как что-то можно внедрить/использовать. Но хотя бы позволяет оценить современный передний край в науке.
Итоговый график статьи примерно такой (оценка точности для всех исследований):
Вроде даже люди ощутимо проигрывают! Но не стоит забывать, что это мета-исследование, где точки на графике — это итоговая точность алгоритмов.
Если оставить те статьи где оценка людей и алгоритма идёт по идентичному набору данных (таких всего 14), то итоговый график будет куда интереснее:
Видно, что при адекватном сравнении алгоритмы выдают почти ту же точность которую дают профессиональные врачи.
Но не стоит забывать несколько моментов:
- Обучить нейронку можно только по чётко поставленной задаче. Если вдруг на снимке есть какая-то непонятная хрень — врач сразу будет разбираться, а выход нейронки будет не определён
- Точность врача зависит от квалификации. Об этом будет пример чуть ниже. Нейронка, скорее всего, даст какую-то усреднённую точность.
- Нейронка может быть зависима на метод/на обучающую выборку. Инвариантность врача значительно больше.
Про точности врачей. Я натыкался на несколько исследований где анализировали точность врачей. По сути реально хорошую нейронку нельзя сделать без такого исследования. Из последних мне очень понравилось вот это. Чтение маммограмм одно из самых сложных направлений в рентгенологии. Надо пространственно восстановить 4 снимка снятых с разных направлений и понять всё ли ок или нет. Нейронка даёт где-то 87% точность при классификации больной/здоровый. Врачи — от 70% до 86%. При этом, согласно исследованию, врачи имели опыт в данной задаче.
Не надо обобщать данное исследование на все другие задачи. Но виден прикольный момент — «плохим врачам нейронка однозначно помогает». А вот хороших — немного тормозит.
Часть 3. О том, где нейронки в медицине реально помогают
Всё что я говорил выше — были рассуждения на тему «нейронки и поиск паталогий». Отвлечёмся на несколько минут и поговорим про более общую тему — нейронки и медицина. Могут ли помочь нейронки в медицине, в анализе изображений?
И тут ответ — однозначно да. И это уже активно используется. Из свежих примеров, что попадалось (привожу тут российские чисто медицинские стартапы которые дошли до продукта):
UNIM — сеть лабораторий выполняющая исследования образцов биопсии (врачи называют это патанатомическими исследованиями). Эти исследования достаточно долгие и муторные. Врач садится и считает число клеток одного типа, другого типа, число окрашенных клеток, и.т.д. Ещё пару лет назад все эти подсчёты делались в микроскопы и с счётчиком в руке.
Через нейронки это решается быстро и хорошо. Повышается точность (уж что-то а число клеток алгоритмически подсчитать сильно проще чем глазами + можно обрабатывать больший участок за меньшее время). А главное — очень сильно ускоряется время работы врача.
DiagnoCat — анализ КТ на предмет заболеваний в зубах. Зубов у человека много. Лечащий врач обычно обращает внимание на тот зуб который лечит + на то что бросится в глаза. Никто не описывает все 32 зуба полноценно. Но алгоритм может. Такой подход повышает конверсию, улучшает итоговое состояние пациентов.
Только в России я видел ещё 3-4 фирмы/стартапа которые успешно внедрили машинное обучение в околомедицинские технологии. И эти решения повысили качество услуг/уменьшили их цену.
Главная особенность таких стартапов — они идут не от «решения всех проблем», а от «ускорения обработки данных»/«повышения эффективности».
Эпилог
Нейронные сети сейчас идут не от идеи вида «а давайте распознавать X». А от идеи вида «мы тратим кучу на Y — > можем ли мы как-то это оптимизировать?». Ну, например, автоматически заполнять диагноз, если тратим много времени на писанину. К сожалению, многие это не понимают.
Изменится ли медицина в следующие 10 лет? Думаю что да. Но не за счёт нейронных сетей, а за счёт информатизации. Автоматическое управление потоками, виртуальные рабочие места, объединение всех данных в общую базу. А машинное зрение… Оно само появится в тех проектах которые до него дорастут. Тихо и незаметно.
что и как видят автомобили / Блог компании WayRay / Хабр
Автоиндустрия считается «первопроходцем» в области применения технологий машинного зрения и самым крупным их потребителем. По данным аналитиков, автомобильная индустрия формирует 23% рынка продуктов компьютерного зрения в Германии. А по данным VDMA, для Европы эта цифра составляет 21%.
Поэтому не удивительно, что алгоритмы машинного зрения постепенно начали использоваться в самих автомобилях, а не только на этапах их производства. В настоящее время они применяются в технологиях автопилотирования и распознавания полос.
В сегодняшнем материале мы начнем говорить о том, что «видят» автомобили и как они это делают, используя базовые алгоритмы и методы в качестве отправной точки цикла рассказов.
Welcome on board! / изображение WayRay
Видят препятствия
Используя массивы датчиков и камер, автомобили научились распознавать вокруг себя бортики, деревья, столбы и припаркованный транспорт. Принцип определения расстояния до объектов основывается на параллаксе движения.
Когда мы двигаемся влево или вправо, предметы вдалеке смещаются меньше, чем ближние. На основании этого смещения и определяется расстояние от наблюдателя.
Техника получила название structure from motion. На соответствующей странице в «Википедии» предложены несколько инструментов для воссоздания трехмерных моделей из видео или набора фотографий. В основе лежит анализ стереопары.
Стереопара, заснятая двумя камерами / фото cobravictor / PD
Стереопара позволяет идентифицировать пары сопряженных точек в пространстве, на основании которых строится карта расстояний. На ней дистанция до объекта обозначается оттенками серого — чем дальше, тем темнее. Пример такого изображения есть в работе Райнхарда Клетте (Reinhard Klette) из Оклендского технологического университета. Когда карта построена, производится анализ движения объектов (скорость, траектория) — это нужно для определения вероятных конфликтов.
Анализ движения начинается с расчета оптического потока, который используется для вычисления карты смещений. Он позволяет отследить смещение точек, то есть найти их на втором изображении стереопары. Обычно этот метод используется для слежения за объектами, обнаружения столкновений и в дополненной реальности.
Из простых методов определения сдвига выделяют метод фазовой корреляции — это вычисление преобразования Фурье для обоих изображений и нахождение их свертки. Также применяется поблочное сравнение: находится сдвиг, минимизирующий норму разности изображений в окне.
Классическим подходом для вычисления потока является алгоритм Лукаса — Канаде. В его основу ложится предположение, что значения пикселей переходят из одного кадра в следующий без изменений. Таким образом, мы делаем допущение, что пиксели, относящиеся к одному и тому же объекту, могут сместиться в сторону, но их значение останется неизменным.
Конечно же, в реальных условиях постоянно меняется освещенность, однако на практике это допущение не сильно сказывается на результате. Теория работы алгоритма Лукаса — Канаде подробно расписана в этой статье.
Этот метод хорошо определяет маленькие сдвиги, в рамках которых картинка похожа на свое линейное приближение. Но есть и другие подходы: метод Гуннара Фарнебака, который рассчитывает поток для всего изображения сразу, и алгоритм Хорна — Шранка, основанный на гипотезе об ограничении изменения проекций векторов оптического потока.
Почитать дополнительно о построении карт смещений и расстояний можно здесь и здесь.
На основании полученных карт алгоритмы строят маршруты и оценивают траектории: уход от столкновений, маневрирование. Алгоритмы строят вероятностные модели для предсказания маршрутов объектов вокруг.
При автопилотировании система выстраивает примерный план маршрута до точки назначения и регулярно мониторит окружение. Транспортное средство определяет направления движения, в которых может проследовать, с учетом текущей скорости и углового положения.
Затем отсеивает маршруты, пересекающиеся с препятствиями или подходящие к ним слишком близко. Также оценивается безопасность маневра. Например, автомобиль, двигающийся со скоростью 90 км/ч, не сможет через 5 метров резко повернуть направо.
Когда путь выбран, то контроллер автомобиля подает команды акселератору, тормозам, рулевой системе и силовым приводам.
Отметим, что есть и другие способы определения расстояния до препятствий и избегания столкновений. Их появление и реализация станут возможными при распространении интернета вещей. Эти алгоритмы работают по-другому — их авторы предлагают использовать не камеры, а системы связи «автомобиль-автомобиль» и «автомобиль-инфраструктура».
DRCA-алгоритм
Алгоритм Decentralized Reactive Collision Avoidance предполагает, что если автомобили находятся на большом расстоянии друг от друга, они следуют по намеченным маршрутам. Если машины сближаются, то система выполняет маневр по избеганию столкновения. Блок-схема выглядит следующим образом:
/ Блок-схема DRCA-алгоритма
Для определения того, столкнутся ли автомобили, DRCA использует концепцию «конуса столкновения» (collision cone), описываемого векторами скорости. Если угол β между вектором относительного положения r⌄ij и вектором относительной скорости v⌄ij больше или равен α — углу между вектором относительного положения и концом конуса столкновения — то конфликта маршрутов нет.
/ Конус столкновения — это угол между пунктирными линиями. Если вектор v оказывается в этой зоне, то автомобили «конфликтуют»
Алгоритм помогает объехать и статичные объекты, однако не годится, если транспортные средства двигаются в формации. DRCA предложит автомобилям набрать безопасное расстояние относительно друг друга и «разобьёт» строй.
Метод искусственных силовых полей
Может применяться в комбинации с DRCA. Он основывается на вычислении искусственных силовых полей. Автомобили — это заряженные частицы. Частицы с одинаковым зарядом отталкиваются, а с противоположным — притягиваются. Поэтому автомобилям назначаются отрицательные заряды, а их желаемым маршрутам — положительные. Силовые векторы вычисляются на основании этих зарядов, а затем используются для определения направления движения.
Для оценки векторов силы притяжения применяются несколько способов. Yunior I. Cruz из Вашингтонского университета в своей работе описывает прием, который также был предложен для прокладывания маршрута самолетов с неизменяемой геометрией крыла.
Вокруг транспортного средства формируется овальная «зона безопасности», за пределами которой влияние «зарядов» других ТС становится незначительным. Сила притяжения точки назначения считается константой. Все это позволяет оценить силу притяжения, которую «ощущают» автомобили, и на основании этих данных корректировать маршрут.
Распознают полосы
Автомобили также используют компьютерное зрение для определения полосы движения. Они научились предупреждать водителя о наезде на разметку и даже самостоятельно корректировать траекторию. Ученые рассматривают несколько вариантов реализации этого функционала. Первый — когда инфраструктура является частью интеллектуальных систем (используются умные маячки), однако он связан со сложностью и дороговизной перестройки дорог. Второй — автомобили сами анализируют дорогу и принимают решения.
Такие системы используют камеры и методы выделения характерных признаков для обозначения границ полосы. Сперва на картинке с камеры находят линии, расположенные под определенным углом к объективу. После чего у выделенных полос выделяют крайние пиксели с использованием троичного поиска.
Далее проводится выделение полезной информации. Дело в том, что система отмечает все линии, которые удовлетворяют заданным условиям. Как это выглядит, вы можете увидеть в работе Люка Флетчера (Luke Fletcher) по ссылке.
К решению этой проблемы компании подходят по-разному. Например, в Suzuki используют проективное преобразование. Камера проецирует две линии, которые сходятся в точке перспективы. Система учитывает только те полосы, которые параллельны спроецированным. Однако это не спасает от выделения трещин на асфальте, которые идут вдоль дороги.
Еще один способ определения полос получил название «Птичий глаз» (Bird’s Eye) и описан в книге «Mathematical Morphology and Its Application to Signal and Image Processing». Алгоритм начинает работу с того, что преобразует изображение в ортографическую проекцию, как бы поворачивая изображение вертикально. После чего также происходит выделение полос и вычисляются поля расстояния, например, с помощью Евклидова преобразования.
Другие алгоритмы полагаются на поиск регионов, изменяющих цвет с черного на белый, однако использовать только этот подход не следует, поскольку качество разметки на разных дорогах отличается. Поэтому исследователи рекомендуют использовать комбинированные методы.
Алгоритм распознавания с построением бинарных изображений и кодом можно найти по ссылке на GitHub. Представленный проект является частью программы Udacity Self-Driving Car Nanodegree. Еще один пример с кусками кода из библиотеки алгоритмов OpenCV вы можете найти здесь.
Компьютерное зрение. Лекция для Малого ШАДа Яндекса / Блог компании Яндекс / Хабр
Область применения компьютерного зрения очень широка: от считывателей штрихкодов в супермаркетах до дополненной реальности. Из этой лекции вы узнаете, где используется и как работает компьютерное зрение, как выглядят изображения в цифрах, какие задачи в этой области решаются относительно легко, какие трудно, и почему.
Лекция рассчитана на старшеклассников – студентов Малого ШАДа, но и взрослые смогут почерпнуть из нее много полезного.
Возможность видеть и распознавать объекты – естественная и привычная возможность для человека. Однако для компьютера пока что – это чрезвычайно сложная задача. Сейчас предпринимаются попытки научить компьютер хотя бы толике того, что человек использует каждый день, даже не замечая того.
Наверное, чаще всего обычный человек встречается с компьютерным зрением на кассе в супермаркете. Конечно, речь идет о считывании штрихкодов. Они были разработаны специально именно таким образом, чтобы максимально упростить компьютеру процесс считывания. Но есть и более сложные задачи: считывание номеров автомобилей, анализ медицинских снимков, дефектоскопия на производстве, распознавание лиц и т.д. Активно развивается применение компьютерного зрения для создания систем дополненной реальности.
Разница между зрением человека и компьютера
Ребенок учится распознавать объекты постепенно. Он начинает осознавать, как меняется форма объекта в зависимости от его положения и освещения. В дальнейшем при распознавании объектов человек ориентируется на предыдущий опыт. За свою жизнь человек накапливает огромное количество информации, процесс обучения нейронной сети не останавливается ни на секунду. Для человека не представляет особой сложности по плоской картинке восстановить перспективу и представить себе, как бы все это выглядело в трех измерениях.
Компьютеру все это дается гораздо сложнее. И в первую очередь из-за проблемы накопления опыта. Нужно собрать огромное количество примеров, что пока что не очень получается.
Кроме того, человек при распознавании объекта всегда учитывает окружение. Если выдернуть объект из привычного окружения, узнать его станет заметно труднее. Тут тоже играет роль накопленный за жизнь опыт, которого у компьютера нет.
Мальчик или девочка?
Представим, что нам нужно научиться с одного взгляда определять пол человека (одетого!) по фотографии. Для начала нужно определить факторы, которые могут указывать на принадлежность к тому или иному объекту. Кроме того, нужно собрать обучающее множество. Желательно, чтобы оно было репрезентативным. В нашем случае возьмем в качестве обучающей выборки всех присутствующих в аудитории. И попробуем на их основе найти отличительные факторы: например, длина волос, наличие бороды, макияжа и одежда (юбка или брюки). Зная, у какого процента представителей одного пола встречались те или иные факторы, мы сможем создать достаточно четкие правила: наличие тез или иных комбинаций факторов с некоей вероятностью позволит нам сказать, человек какого пола на фотографии.
Машинное обучение
Конечно, это очень простой и условный пример с небольшим количеством верхнеуровневых факторов. В реальных задачах, которые ставятся перед системами компьютерного зрения, факторов гораздо больше. Определять их вручную и просчитывать зависимости – непосильная для человека задача. Поэтому в таких случаях без машинного обучения не обойтись никак. Например, можно определить несколько десятков первоначальных факторов, а также задать положительные и отрицательные примеры. А уже зависимости между этими факторами подбираются автоматически, составляется формула, которая позволяет принимать решения. Достаточно часто и сами факторы выделяются автоматически.
Изображение в цифрах
Чаще всего для хранения цифровых изображений используется цветовое пространство RGB. В нем каждой из трех осей (каналов) присваивается свой цвет: красный, зеленый и синий. На каждый канал выделяется по 8 бит информации, соответственно, интенсивность цвета на каждой оси может принимать значения в диапазоне от 0 до 255. Все цвета в цифровом пространстве RGB получаются путем смешивания трех основных цветов.
К сожалению, RGB не всегда хорошо подходит для анализа информации. Эксперименты показывают, что геометрическая близость цветов достаточно далека от того, как человек воспринимает близость тех или иных цветов друг к другу.
Но существуют и другие цветовые пространства. Весьма интересно в нашем контексте пространство HSV (Hue, Saturation, Value). В нем присутствует ось Value, обозначающая количество света. На него выделен отдельный канал, в отличие от RGB, где это значение нужно вычислять каждый раз. Фактически, это черно-белая версия изображения, с которой уже можно работать. Hue представляется в виде угла и отвечает за основной тон. От значения Saturation (расстояние от центра к краю) зависит насыщенность цвета.
HSV гораздо ближе к тому, как мы представляем себе цвета. Если показать человеку в темноте красный и зеленый объект, он не сможет различить цвета. В HSV происходит то же самое. Чем ниже по оси V мы продвигаемся, тем меньше становится разница между оттенками, так как снижается диапазон значений насыщенности. На схеме это выглядит как конус, на вершине которого предельно черная точка.
Цвет и свет
Почему так важно иметь данные о количестве света? В большинстве случаев в компьютерном зрении цвет не имеет никакого значения, так как не несет никакой важной информации. Посмотрим на две картинки: цветную и черно-белую. Узнать все объекты на черно-белой версии не намного сложнее, чем на цветной. Дополнительной нагрузки для нас цвет в данном случае не несет никакой, а вычислительных проблем создает великое множество. Когда мы работаем с цветной версией изображения, объем данных, грубо говоря, возводится в степень куба.
Цвет используется лишь в редких случаях, когда это наоборот позволяет упростить вычисления. Например, когда нужно детектировать лицо: проще сначала найти его возможное расположение на картинке, ориентируясь на диапазон телесных оттенков. Благодаря этому отпадает необходимость анализировать изображение целиком.
Локальные и глобальные признаки
Признаки, при помощи которых мы анализируем изображение, бывают локальными и глобальными. Глядя на эту картинку, большинство скажет, что на ней изображена красная машина:
Такой ответ подразумевает, что человек выделил на изображении объект, а значит, описал локальный признак цвета. По большому счету на картинке изображен лес, дорога и немного автомобиля. По площади автомобиль занимает меньшую часть. Но мы понимаем, что машина на этой картинке – самый важный объект. Если человеку предложить найти картинки похожие на эту, он будет в первую очередь отбирать изображения, на которых присутствует красная машина.
Детектирование и сегментация
В компьютерном зрении этот процесс называется детектированием и сегментацией. Сегментация – это разделение изображения на множество частей, связанных друг с другом визуально, либо семантически. А детектирование – это обнаружение объектов на изображении. Детектирование нужно четко отличать от распознавания. Допустим, на той же картинке с автомобилем можно детектировать дорожный знак. Но распознать его невозможно, так как он повернут к нам обратной стороной. Так же при распознавании лиц детектор может определить расположение лица, а «распознаватель» уже скажет, чье это лицо.
Дескрипторы и визуальные слова
Существует много разных подходов к распознаванию.
Например, такой: на изображении сначала нужно выделить интересные точки или интересные места. Что-то отличное от фона: яркие пятна, переходы и т.д. Есть несколько алгоритмов, позволяющих это сделать.
Один из наиболее распространенных способов называется Difference of Gaussians (DoG). Размывая картинку с разным радиусом и сравнивая получившиеся результаты, можно находить наиболее контрастные фрагменты. Области вокруг этих фрагментов и являются наиболее интересными.
Далее эти области описываются в цифровом виде. Области разбиваются на небольшие участки, определяется, в какую сторону направлены градиенты, получаются векторы.
На картинке ниже изображено, как это примерно выглядит. Полученные данные записываются в дескрипторы.
Чтобы одинаковые дескрипторы признавались таковыми независимо от поворотов в плоскости, они разворачиваются так, чтобы самые большие векторы были повернуты в одну сторону. Делается это далеко не всегда. Но если нужно обнаружить два одинаковых объекта, расположенных в разных плоскостях.
Дескрипторы можно записывать в числовом виде. Дескриптор можно представить в виде точки в многомерном массиве. У нас на иллюстрации двумерный массив. В него попали наши дескрипторы. И мы можем их кластеризовать – разбить на группы.
Дальше мы для каждого кластера описываем область в пространстве. Когда дескриптор попадает в эту область, для нас становится важным не то, каким он был, а то, в какую из областей он попал. И дальше мы можем сравнивать изображения, определяя, сколько дескрипторов одного изображения оказались в тех же кластерах, что и дескрипторы другого изображения. Такие кластеры можно называть визуальными словами.
Чтобы находить не просто одинаковые картинки, а изображения похожих объектов, требуется взять множество изображений этого объекта и множество картинок, на которых его нет. Затем выделить из них дескрипторы и кластеризовать их. Далее нужно выяснить, в какие кластеры попали дескрипторы с изображений, на которых присутствовал нужный нам объект. Теперь мы знаем, что если дескрипторы с нового изображения попадают в те же кластеры, значит, на нем присутствует искомый объект.
Совпадение дескрипторов – еще не гарантия идентичности содержащих их объектов. Один из способов дополнительной проверки – геометрическая валидация. В этом случае проводится сравнение расположения дескрипторов относительно друг друга.
Распознавание и классификация
Для простоты представим, что мы можем разбить все изображения на три класса: архитектура, природа и портрет. В свою очередь, природу мы можем разбить на растения животных и птиц. А уже поняв, что это птица, мы можем сказать, какая именно: сова, чайка или ворона.
Разница между распознаванием и классификацией достаточно условна. Если мы нашли на картинке сову, то это скорее распознавание. Если просто птицу, то это некий промежуточный вариант. А если только природу – это определенно классификация. Т.е. разница между распознаванием и классификацией заключается в том, насколько глубоко мы прошли по дереву. И чем дальше будет продвигаться компьютерное зрение, тем ниже будет сползать граница между классификацией и распознаванием.
Прошлое и будущее систем машинного зрения
В самом начале области применения машинного зрения включали примитивное распознавание контура объекта или расположения объектов в пространстве, но в 1980-е гг. оно эволюционировало в системы, способные различать двумерные символы и знаки при надлежащей ориентации по отношению к распознающему оборудованию. Первое поколение «умных камер» было ограниченным и сложным в настройке, но пользователям все равно нужна была гибкость, которую предлагала эта технология по сравнению с обычными датчиками, и они мирились со многими сложностями ее внедрения.
Рис. 1. Беспилотный дрон
Сегодня же программное (ПО) и аппаратное обеспечение предусматривают высокоскоростной трехмерный анализ. Это позволило Forbes прийти к обоснованному заключению о том, что «стремительное развитие машинного зрения, кажется, становится основной причиной приобретения компаниями все большего количества оборудования» [1]. Сейчас можно покупать камеры размером с монету, способные делать и обрабатывать высококачественные снимки, что было невозможным еще три года назад. Усовершенствование систем машинного зрения способствовало их применению в промышленности, а растущий спрос стал стимулом для новых разработок.
Особого внимания заслуживает такая сфера использования машинного зрения, как самоуправляемые автомобили и беспилотные летательные аппараты (дроны). Разработки в данной области продвинулись даже дальше, чем в промышленности, хотя базовые принципы и потребности остаются теми же.
Применение дронов в промышленности еще не так широко распространено, но их уже используют для проведения осмотра таких объектов, как линии электропередачи (рис. 1) [2]. Дронов также можно применять для мониторинга трубопроводов, резервуарных станций и систем водоочистки, водоподготовки и водоотведения.
Рис. 2. Компоненты для систем машинного зрения и сферы их использования
Кто интересуется системами технического зрения?
Понимание того, какие типы компаний внедряют системы машинного зрения и какие у них потребности, помогает определить направление развития этой технологии. Любое производство, требующее скрупулезной обработки или осмотра готовой продукции людьми, является хорошим кандидатом на модернизацию с применением таких систем (рис. 2). В области промышленности преимущества машинного зрения в первую очередь используют автомобилестроение, пищевая промышленность, производство напитков, фармацевтическая отрасль и производство полупроводников.
Поскольку транспортные средства включают множество деталей, автопроизводители применяют системы машинного зрения, чтобы отслеживать компоненты по маркировке или управлять роботами. Робототехнические комплексы с машинным зрением для сборки автомобилей являются быстрым и воспроизводимым производственным решением. Более того, техническое зрение стало важной частью процесса обеспечения качества. Оно используется для осмотра, калибровки, проверки размеров, диаметров, расстояний, а также для выравнивания деталей на линиях сборки автомобилей.
В производстве пищевой продукции, особенно с широким ассортиментом, системы машинного зрения могут проверять, все ли ингредиенты указаны на упаковке товара — что крайне важно для продуктов питания, содержащих распространенные аллергены. Фармацевтическое производство подразумевает еще более высокую степень ответственности за безопасность, поэтому совершенно необходимо надежно отслеживать все компоненты состава и качество готовой продукции.
В этих двух отраслях распознавание маркировки выходит далеко за пределы простого подтверждения местонахождения и пространственной ориентации объекта или проверки точности графического изображения. Наличие и точность штрихкодов крайне важны для скоропортящихся товаров, а код партии необходим на случай отзыва продукции из обращения. Системы машинного зрения предлагают точный и гигиеничный бесконтактный метод контроля уровня заполнения или размеров готовой продукции, который обеспечивает соответствующий уровень качества.
Некоторые отрасли предъявляют особые требования к считыванию данных там, где лучше избегать участия персонала из соображений безопасности и поддержания уровня чистоты. Например, при изготовлении полупроводников машинное зрение используют в чистых помещениях для осмотра маркировки и посадки кристалла, а также в тех процессах, где критическое значение имеют точность и быстрота реакции. С его помощью контролируют положение компонентов при сборке BGA-микросхем, следят за размещением полупроводниковых пластин, интегральных схем и других элементов и при необходимости их выравнивают.
Внимание к практическим проблемам
Конечные пользователи, внедрявшие машинное зрение до середины 2000-х гг., зачастую сталкивались с большими трудностями. Менее производительные аппаратные средства того времени часто не выдерживали нагрузку, что приводило к потере фокуса и изображения и делало полученные снимки ненадежными. Также существовали особые требования к подключению оборудования, и даже при использовании внутренней сети Ethernet было сложно настроить IP-адреса. С точки зрения ПО проприетарные протоколы и комплекты разработчика ПО (SDK) требовали кропотливой индивидуальной настройки, и такой масштаб проблем уничтожал все шансы на успех.
Ряд тенденций, существовавших как в аппаратном обеспечении, так и в ПО, привел к тому, что более производительные платформы стали использовать стандартизованные элементы. Подобная стратегия позволила пользователям сократить время на разработку и внедрение систем, сделать работу платформы более стабильной, снизить совокупную стоимость решения и увеличить срок рентабельной эксплуатации.
Особенности аппаратного обеспечения
На данный момент не существует универсального аппаратного обеспечения для систем машинного зрения, что усложняет выбор аппаратных средств и ПО. Тем не менее на рынке устройства с большим количеством опций и комбинаций, из которых пользователи смогут выбрать то, что наилучшим образом отвечает их потребностям, и составить собственное, уникальное решение.
Мозгом любой архитектуры систем машинного зрения является центральный процессор (ЦП). Безусловно, они широко применяются во многих видах цифровых устройств. Нынешние многоядерные процессоры обеспечивают исключительную производительность и простоту программирования. Кроме того, адаптивность машинного зрения позволяет успешно использовать его с компьютерами и соответствующими компонентами, оптимизированными под выполнение определенной задачи.
Для повышения производительности доступны различные сопроцессоры. Например, графические процессоры (ГП) представляют собой специализированные схемы, обеспечивающие высокую вычислительную способность при работе с плавающей точкой, что можно успешно применять для ускоренной обработки изображений. Также они способны быстрее обрабатывать сопутствующие данные, которые влияют на параметры таких изображений. Графические процессоры могут использовать общие инструкции для всех элементов больших пакетов данных, как те, что формируют изображение.
Программируемые пользователем вентильные матрицы (ППВМ) представляют собой другую форму интегрированной схемы, которую можно оптимизировать для оперативного выполнения различных инструкций. ППВМ отличаются прямым доступом к аппаратному обеспечению и могут применяться для быстрой реализации сложных функций и вычислений.
Процессоры и сопроцессоры можно комбинировать, чтобы создавать сборки типа ЦП+ГП, ЦП+ППВМ или ЦП+ГП+ППВМ. Архитектура обработки данных машинного зрения может подстраиваться под текущие нужды, благодаря чему достигается масштабируемая производительность. Функции распределяются следующим образом: ЦП выполняют алгоритмы; ГП кодируют, декодируют и отображают информацию; ППВМ производят предварительную обработку данных, особенно в области пространства/частот.
Данная стратегия оптимизирована в сочетании ЦП и ППВМ на одном чипе, известном как система на кристалле (SoC). Интегрированные SoC-схемы, благодаря миниатюрной конструкции и малому энергопотреблению, широко применяются в мобильных устройствах. Конфигурация ЦП+ППВМ SoC, как, например, в серии Zynq-7000 от компании Xilinx, обеспечивает надежную интеграцию программируемых логических схем и машинного зрения.
Рис. 3. Архитектура системы машинного зрения
Это, в свою очередь, позволяет проектировщикам разрабатывать программы на языке C и другое ПО с использованием программируемой логики, присущей ЦП и ППВМ, для ускорения отдельных частей алгоритма. При этом инструменты синтеза по высокоуровневому описанию становятся все более эффективными. Согласно [3]: «Машинное зрение является отличным примером того, как масштабируемая обработка данных улучшает работу приложений». На рис. 3 приведен пример архитектуры системы машинного зрения, а в таблице представлено сравнение различных типов процессоров на основе тех видов операции, которые они лучше выполняют. Для трехмерных систем машинного зрения самую большую производительность обеспечивает конфигурация ЦП+ГП. С другой стороны, при высокоскоростной проверке образцов на производственной линии в режиме реального времени предпочтительно использовать конфигурацию ЦП+ППВМ.
Параметр | ЦП | ГП | ППВМ |
Пиксельное изображение | + | ++ | ++ |
Гистограмма/просмотровая таблица | ++ | — | ++ |
Соседний узел/ядро | — | ++ | ++ |
Произвольный доступ | ++ | — | — |
Геометрическое преобразование | + | ++ | — |
Архитектура | SSID, SIMD | SIMD | MISD |
Построение платформы системы машинного зрения
Центральный процессор имеет большое значение, но это всего лишь один элемент большой мозаики из аппаратных средств. Еще один вопрос аппаратного обеспечения: следует ли все выполняемые функции включать в конечное устройство (камеру) или их можно частично распределить на соответствующий ПК? Решение основывается на потребностях конкретного использования.
Базовое применение машинного зрения с функционально-специализированным распознаванием (символов, знаков или наличия/отсутствия деталей) наиболее успешно реализуется с помощью встроенного устройства с одной камерой. Данное устройство подсоединяется к центральному контроллеру, такому как ПК или ПЛК, но исключительно для передачи результатов.
Более перспективные области применения, требующие адаптивных и сложных взаимосвязей, — осмотр поверхностей, проверка печати или объединение нескольких камер — лучше реализуются с использованием компьютеризированных систем, тесно интегрированных с камерами. В таком случае одна или несколько камер отправляют данные на ПК через высокоскоростной канал передачи цифровых данных, и ПК их обрабатывает, чтобы получить необходимую информацию.
Понимание решающей роли ПО столь же важно, как и выбор аппаратных средств. Интерфейсы камер определяют платформу системы машинного зрения, и в процессе развития технологии к этому было несколько конкурирующих подходов. Можно выделить два стандарта интерфейса, которые соответствуют требованиям промышленного применения: Gigabit Ethernet для СТЗ (GigE Vision) и универсальный интерфейс для камер (GeniCam).
Системы машинного зрения требуют высокой пропускной способности, однако для передачи изображений вполне достаточно стандартного интерфейса GigE. Интерфейс GigE Vision обладает открытой архитектурой и отличается высокой производительностью, широкой совместимостью и налаженным сервисным обслуживанием. По этим причинам он пользуется популярностью среди пользователей.
GeniCam, с другой стороны, представляет собой универсальный программный интерфейс, обеспечивающий гибкую конфигурацию при работе с изображениями независимо от используемых аппаратных средств. Доступен графический пользовательский интерфейс, и поддерживаются такие возможности, как настройка камер, захват изображения, передача дополнительных данных и событий. Благодаря интерфейсу GigE многие производители внесли свой вклад в формирование и дальнейшее обслуживание данного стандарта.
Кроме того, зачастую необходимо выбрать «триггер» для запуска работы камеры — как альтернативу непрерывной обработке постоянного потока данных. Этого можно достичь с помощью внешней системы управления или ПЛК, но многие системы машинного зрения сейчас поддерживают триггер через Ethernet. Такой триггер запускает работу одной или более камер (с достаточной скоростью и синхронным поведением) через тот же канал Ethernet, что связывает камеры с системой управления. Очевидно, это облегчает установку, поскольку один канал Ethernet можно использовать для системы запуска и получения данных.
В совокупности камера, аппаратные средства обрабатывающей платформы и интерфейсы дают все инструменты, необходимые для реализации машинного зрения. Сейчас эти компоненты как никогда прежде производительны и просты в использовании. Хотя, безусловно, пользователи все еще вынуждены адаптировать инструменты с помощью ПО для реализации решений в конкретной области.
Примеры применения
Несколько примеров использования систем машинного зрения могут продемонстрировать потенциал и гибкость, предлагаемые последними разработками в этой сфере.
Рассмотрим производство полупроводников (рис. 4). Конечная обработка включает разделение полупроводниковых пластин на отдельные кристаллы, которые необходимо проверить, собрать и упаковать. Перед производителями стояла цель поддержать высокую пропускную способность при 100%-ной проверке качества, даже с учетом того, что размеры кристаллов стали меньше и их стало сложнее распознавать. Решением стал выбор промышленного ПК с шасси и интерфейсной платой «захвата» изображения GigE Vision на базе PCI, включавшей также ППВМ.
Рис. 4. Цех для производства полупроводников
Эти аппаратные средства машинного зрения предварительно обрабатывают изображения, которые затем загружаются на ПК, что дает возможность избежать потери кадра или пакета при их получении. Сервоконтроллер PCI и плата ввода/вывода PCI позволяют платформе полностью контролировать оборудование. Такое сочетание обеспечивает пользователям гибкое и высокопроизводительное получение изображений и удобную платформу управления.
Как было сказано выше, еще один активный пользователь машинного зрения – автомобильная промышленность (рис. 5). Проверка готовых изделий чрезвычайно важна, но может представлять собой повторяющуюся и утомительную для персонала работу, что приводит к ошибкам, характерным для непосредственного осмотра. Именно поэтому автоматизированный оптический контроль является предпочтительным методом проверки качества, заменяющим осмотр операторами в различных производственных задачах.
Рис. 5. Цех по сбору автомобилей
В рассматриваемом случае проблема осложнялась тем фактом, что осмотр необходимо было производить под многочисленными углами. Решением стала установка в общей сложности 22 камер на двух роботах с шестью осями и соответствующими рабочими ячейками (рис. 6).
Рис. 6. Схема приложения
Промышленный ПК с платой адаптера PCI позволил использовать пять мегапиксельных камер с питанием через Ethernet (интерфейс PoЕ) для оперативной передачи изображений на ПК, который, в свою очередь, должным образом применял оборудование в режиме реального времени. Данный пакет повысил точность и скорость осмотра для заказчика и сократил расходы на оплату труда.
Выводы и прогнозы
Технология машинного зрения уже давно переместилась из научной фантастики в область практического применения в промышленности. Системы машинного зрения используют все шире. Каждый раз, когда требуется выполнять утомительную работу по распознаванию с высокой скоростью и точностью, особенно в труднодоступных местах, техническое зрение оказывается идеальным решением для оптимизации производства. Сокращение затрат привело к возросшей окупаемости и удешевлению совокупной стоимости владения, что способствовало и дальнейшему внедрению систем машинного зрения.
Новейшие платформы аппаратных средств обеспечивают большее удобство для пользователей и более высокую совместимость компонентов по сравнению с предыдущими поколениями. В свою очередь, развитие аппаратных мощностей предусматривает высокое разрешение, а также оперативную и полностью цифровую обработку данных. Системы с использованием сочетания интегрированных схем ЦП+ППВМ SoC предлагают еще более оптимизированное соотношение производительности и стоимости.
ПО и коммуникации идут в ногу с развитием аппаратных средств, особенно после того, как в промышленности приняли стандартизованные протоколы, что сильно облегчило пользователям подключение к сети, настройку и использование машинного зрения. Удобство останется основным фактором успеха для платформ систем технического зрения, и его реализация приведет к широкому использованию таких систем в производственных условиях для обеспечения качественной и безопасной работы.
Материал предоставлен компанией Advantech.
Вконтакте
Google+
Глазами робота: что такое «машинное зрение»
Иногда мы слышим словосочетание «машинное зрение». Многие думают, что это что-то вроде предвестника грядущего восстания машин или технология, позволяющая Терминатору смотреть сквозь стены. На деле же это огромный технологический сегмент, несущий в себе огромный потенциал для встраиваемых решений. Проще говоря, это раздел современной робототехники, который позволяет роботам эффективнее работать на человека.
Машинное зрение по своей сути предполагает анализ визуальной информации для дальнейшего принятия решения, какое действие совершить по отношению к объекту, который находится в фокусе. Простейший пример использования технологии: проверка состояния изделия на конвейере или перед отправкой посылки почтой. Также нередко машинное зрение используется для оценки качества печатных плат, моментально сравнивая каждый новый продукт с эталонной платой перед автоматическим переносом на следующий этап сборки. Эти технологии представляют собой бесценный ресурс для оценки качества и снижения уровня брака там, где человеческий глаз и мозг просто не в состоянии дать объективную оценку из-за необходимости просматривать одинаковые предметы сотни или тысячи раз в день.
Вычислительная потребность «машинного зрения»
По мере роста разрешения оптических систем потенциал машинного зрения также увеличивается, так как вместе с разрешением множится и количество деталей для оценки. Все более и более мелкие объекты могут быть обработаны по шаблонному принципу, что ведет к увеличению нагрузки на процессор, который должен проанализировать значительный массив данных и быстро принять решение о следующем шаге (соответствует/не соответствует, задержать, вернуть в начало и т. д.).
Например, при сортировке овощей простые решения о соответствии и размере оказываются уже неподходящими, потому что стандарты разных стран отличаются, а качество продукции варьируется в зависимости от сезона. Чтобы минимизировать количество брака для производителя и одновременно обеспечить нужное качество для потребителя необходимы более детальные алгоритмы и категории — а это практически невыполнимая задача для человеческих глаз и мозга.
Скажем, существует датская фирма Qtechnology, которая поставляет «умные камеры» для сортировки овощей. Они способны без участия человека обрабатывать до 25 тонн продукции в час. Такие объемы достигаются за счет анализа свыше 250 000 отдельных продуктов на базе более чем 500 000 изображений. И поскольку каждая картинка занимает примерно 6,2 Мб, получается, что в итоге требуется анализ свыше 2,5 терабайт графических данных в час — колоссальный объем информации! Только для передачи такого массива потребуется более 6 часов при использовании гигабитного подключения Ethernet.
Чтобы решить эту задачу с использованием более простых алгоритмов, требуется разбить ее на стадии и установить несколько камер, увеличить зоны освещения, выделить больше места на фабриках и так далее. В качестве альтернативы можно применить более производительные вычислительные системы: с централизованной мощностью и более скоростным соединением или распределенной обработкой информации «умными камерами», которые будут фиксировать данные в реальном времени на каждом этапе, поставляя в финальный механизм принятия решений только готовые параметры.
В стандартных системах визуального контроля качество и безопасность продуктов чаще всего определяются по внешним физическим признакам, таким как текстура и цвет. Гиперспектральная съемка дает пищевой промышленности возможность оценивать продукты по дополнительным химическим и биологическим параметрам, позволяющим определить уровень сахара, жира, жидкости и количество бактерий в каждом продукте.
При гиперспектральной визуализации трехмерные наборы пространственной и спектральной информации получаются из каждого пикселя. Дополнительные спектральные характеристики дают более подробное описание параметров, позволяя осуществлять их классификацию. Трехмерные наборы включают в себя интенсивность (отраженный или пропускаемый свет) каждого пикселя, которая высчитывается при измерении длины всех видимых волн света, в результате каждый набор данных несет в себе массу информации. Этот объем информации отражает экспоненциальный рост в вычислительной задаче для проведения качественного и количественного анализа состояния продукта в реальном времени.
Применение гетерогенных вычислений
Для удовлетворения запросов, а также решения будущих задач, необходимы высокопроизводительные и масштабируемые вычислительные системы.
Упомянутая Qtechnology использует гибридные процессоры APU компании AMD в платформах «умных камер». Эти процессоры сочетают в себе GPU (графический процессор) и CPU (центральный процессор) на одном кристалле. В результате система имеет возможность отправлять на обработку массивы графических данных непосредственно на GPU без какой-либо задержки на передачу между компонентами. А CPU получает возможность обрабатывать без задержек другие задачи, повышая производительность всей системы в реальном времени и обеспечивая необходимую мощность для современных требований систем с машинным зрением.
Объединение разных вычислительных модулей на одном кристалле или в одной системе позволяет передать каждому элементу соответствующую ему нагрузку — и это основа гетерогенных вычислений. Консорциум Heterogeneous System Architecture (HSA) Foundation был основан в 2012 году, чтобы сформулировать открытые отраслевые спецификации для процессоров и систем, которые используют все доступные вычислительные элементы для повышения конечной эффективности. Компания AMD продвигает концепцию гетерогенных вычислений, суть которой заключается в совместном использовании всех вычислительных ресурсов системы: как центральных, так и графических процессоров.
В частности, GPU представляет собой модуль параллельных вычислений, который может легко применять одни и те же инструкции для больших наборов данных (в нашем случае — пикселей) одновременно; и это именно то, что необходимо компаниям для работы установок с машинным зрением. К тому же производительность системы может быть увеличена за счет объединения возможностей APU с внешней дискретной видеокартой. Такой подход позволяет компаниям при необходимости добавлять вычислительные ресурсы GPU для поддержки еще более сложных задач машинного зрения.
Обширная поддержка экосистемой архитектуры x86 позволяет компаниям использовать библиотеки для обработки изображений с открытым кодом или подключать решения от сторонних компаний, такие как OpenCV, Mathworks Matlab и Halcon. Инструменты отладки, анализаторы задержек и профилировщики (perf, ftrace) сегодня так же широко доступны. Машинное зрение представляет собой самый свежий пример использования вычислительной мощности полупроводников для сокращения затрат, ускорения производства, повышения качества и получения ряда других полезных преимуществ, используемых во многих приложениях и отраслях. Таким образом, благодаря инновациям и успешным идеям инженеров по встраиваемым решениям возникает положительный эффект в целом для экономики, культуры и каждого из нас в частности.
Так или иначе, мы надеемся, что машинное зрения будет и впредь применяться для сортировки овощей, а не для подготовки восстания машин 🙂
Что такое машинное зрение | Cognex
Машинное зрение помогает надежно и последовательно решать сложные производственные задачи
По данным ассоциации Automated Imaging Association (AIA), машинное зрение охватывает все промышленные и непромышленные приложения, в которых комбинация аппаратного и программного обеспечения обеспечивает оперативное руководство для устройств при выполнении их функций на основе захвата и обработки изображений.Хотя промышленное компьютерное зрение использует многие из тех же алгоритмов и подходов, что и академические / образовательные и правительственные / военные приложения компьютерного зрения, ограничения различны.
Промышленные системы технического зрения требуют большей прочности, надежности и стабильности по сравнению с академическими / образовательными системами технического зрения и обычно стоят намного меньше, чем те, которые используются в правительственных / военных приложениях. Следовательно, промышленное машинное зрение подразумевает низкую стоимость, приемлемую точность, высокую надежность, высокую надежность и высокую механическую и температурную стабильность.
Системы машинного зрения
полагаются на цифровые датчики, защищенные внутри промышленных камер со специальной оптикой для получения изображений, чтобы компьютерное оборудование и программное обеспечение могли обрабатывать, анализировать и измерять различные характеристики для принятия решений.
В качестве примера рассмотрим систему контроля уровня заполнения на пивоваренном заводе (рис. 1). Каждая бутылка пива проходит через датчик проверки, который запускает систему технического зрения, которая мигает стробоскопом и делает снимок бутылки.После получения изображения и сохранения его в памяти программное обеспечение машинного зрения обрабатывает или анализирует его и выдает ответ «прошел-не прошел» в зависимости от уровня заполнения бутылки. Если система обнаруживает неправильно заполненную бутылку — отказ — она подает сигнал отклонителю, чтобы отклонить бутылку. Оператор может просматривать забракованные бутылки и текущую статистику процесса на дисплее.
Системы машинного зрения также могут выполнять объективные измерения, такие как определение зазора свечи зажигания или предоставление информации о местоположении, которая помогает роботу выравнивать детали в производственном процессе.На рис. 2 показаны примеры использования систем машинного зрения для прохождения или выхода масляных фильтров (справа) и измерения ширины центрального выступа на кронштейне (слева).
.
Компьютерное зрение и машинное зрение — в чем разница?
Искусственный интеллект — это общий термин, охватывающий несколько конкретных технологий. В этом посте мы рассмотрим машинное зрение (MV) и компьютерное зрение (CV). Оба они включают в себя прием и интерпретацию визуальных входов, поэтому важно понимать сильные стороны, ограничения и сценарии наилучшего использования этих перекрывающихся технологий.
Исследователи начали разрабатывать технологии компьютерного зрения еще в 1950-х годах, начав с простых двумерных изображений для статистического распознавания образов.Практическое применение CV стало очевидным только в 1978 году, когда исследователи из лаборатории искусственного интеллекта Массачусетского технологического института разработали восходящий подход к экстраполяции трехмерных моделей из двухмерных компьютерных «эскизов». С тех пор технологии распознавания изображений разделились на разные категории по общему сценарию использования.
И компьютерное зрение, и машинное зрение используют захват и анализ изображений для выполнения задач со скоростью и точностью, с которой человеческий глаз не может сравниться. Имея это в виду, вероятно, более продуктивно описывать эти тесно связанные технологии по их общности, выделяя их по их конкретным вариантам использования, а не различиям.
Системы компьютерного зрения и машинного зрения имеют большинство общих компонентов и требований:
- Устройство формирования изображения, содержащее датчик изображения и объектив
- Может использоваться плата захвата изображения или устройство захвата кадра (в некоторых цифровых камерах, которые используют современный интерфейс, фреймграббер не требуется)
- Подсветка, соответствующая приложениям
- Программное обеспечение, обрабатывающее изображения через компьютер или внутреннюю систему, как во многих «умных» камерах
Так в чем же реальная разница? Компьютерное зрение относится к автоматизации захвата и обработки изображений с упором на анализ изображений.Другими словами, цель CV — не только увидеть, но и обработать и предоставить полезные результаты на основе наблюдений. Машинное зрение относится к использованию компьютерного зрения в промышленных средах , что делает его подкатегорией компьютерного зрения.
Компьютерное зрение в действии
В 2019 году компьютерное зрение играет растущую роль во многих отраслях. В цифровом маркетинге компании начинают использовать технологии распознавания изображений, чтобы улучшить размещение рекламы и улучшить бизнес-результаты.Благодаря растущей точности и эффективности технологий резюме, маркетологи теперь могут обходить традиционные демографические исследования (которые могут быть проблематичными в свете проблем конфиденциальности данных) и быстро и точно просматривать миллионы онлайн-изображений. Затем они могут поместить таргетированный маркетинг в правильный контекст, за долю времени, необходимого человеку для достижения того же результата.
Кроме того, недавнее исследование показывает, что 59% маркетинговых агентств, использующих компьютерное зрение, используют его для обнаружения небезопасного контента бренда в Интернете.Нет ничего лучше, чем найти объявление вашего клиента о кустарной доставке мяса рядом со статьей о вспышке кишечной палочки, верно? Другие популярные варианты использования CV, представленные на Саммите потребительской электроники (CES) в 2019 году, включали широкий спектр приложений для автономных транспортных средств, обеспечение безопасности и многое другое.
Машинное зрение и умная фабрика
Способность визуально определять такие проблемы, как дефекты продукта и неэффективность процессов, имеет решающее значение для производителей, чтобы ограничить расходы и обеспечить высокую степень удовлетворенности клиентов.С 90-х годов системы машинного зрения были установлены на тысячах заводов по всему миру, где они используются для автоматизации многих важных функций обеспечения качества и повышения эффективности. Благодаря расширенным возможностям обмена данными и повышенной точности, основанным на инновационных облачных технологиях, использование систем на основе MV в производстве начало ускоряться. В Северной Америке в 2017 году продажи машинного зрения, роботизированных систем и компонентов были лучшими за всю историю: финансовые операции выросли на 14,6% по сравнению с предыдущим годом до 2 долларов США.633 миллиарда. Производители понимают, что системы машинного зрения — это важное вложение для достижения целей, касающихся качества, стоимости и скорости.
Машинное зрение на производственной линии
Выявление дефектов и быстрое устранение причин этих дефектов является важным аспектом любого производственного процесса. Компании обратились к решениям машинного зрения, чтобы проактивно устранять возникновение и первопричину дефектов. Установив камеры на производственной линии и обучив модель машинного обучения определять сложные переменные, которые определяют хороший продукт по сравнению сплохой продукт, можно выявить дефекты в реальном времени и определить, где в производственном процессе возникают дефекты, чтобы можно было предпринять упреждающие меры.
Аннотирование модели машинного обучения для технологий машинного зрения
Для достижения целей вашего компьютера или машинного зрения вам сначала нужно обучить модели машинного обучения, которые делают вашу систему машинного зрения «интеллектуальной». А чтобы ваши модели машинного обучения были точными, вам нужны большие объемы аннотированных данных, характерных для решения, которое вы создаете.Существуют бесплатные общедоступные наборы данных, которые хорошо подходят для тестирования алгоритмов или выполнения простых задач, но для успеха большинства реальных проектов требуются специализированные наборы данных, чтобы гарантировать, что они содержат правильные метаданные. Например, реализация моделей компьютерного зрения в автономных транспортных средствах требует обширных аннотаций к изображениям для маркировки людей, светофоров, автомобилей и других объектов. Все, что ниже абсолютной точности, станет огромной проблемой для беспилотного автомобиля.
Компании могут выбрать развертывание собственной группы аннотаций для выполнения аннотаций этого типа, но это может быть дорогостоящим и отвлекать ценных сотрудников от работы над основной технологией.Appen предоставляет комплексные услуги аннотирования данных, основанные на тысячах квалифицированных аннотаторов, а также опытных менеджеров проектов, которые помогают компаниям определять потребности в данных для их проектов и помогают поддерживать высокое качество и пропускную способность от аннотаторов. Аннотаторы Appen снимают нагрузку с вашей компании и предоставляют высококачественные наборы данных для обучения чрезвычайно точным моделям машинного обучения.
Связанные технологии с различными сценариями использования
Хотя грань между CV и MV размыта, обе они лучше всего определяются их вариантами использования.Компьютерное зрение традиционно используется для автоматизации обработки изображений, а машинное зрение — это приложение компьютерного зрения в реальных интерфейсах, таких как производственная линия.
—
Ищете высококачественные пользовательские наборы данных для вашего решения компьютерного или машинного зрения? Свяжитесь с нами , чтобы узнать, как Appen может помочь со сбором изображений и аннотациями.
.
Машинное зрение | Системы зрения | ADLNK
COM Express Тип 10
nanoX-AL
COM Express Mini Size Type 10 Module с Intel Atom E3900 series, Pentium и Celeron SoC (ранее Apollo Lake)
Учить больше
Промышленная шина
MNET-4XMO- (C)
Распределенные 4-осевые модули управления движением (с функцией высокоскоростного запуска)
Учить больше
Коммутатор AdvancedTCA Blade
aTCA-3430
Блейд-коммутатор интерфейса 10 Gigabit Ethernet AdvancedTCA
Учить больше
Коммутатор AdvancedTCA Blade
aTCA-3430
Блейд-коммутатор 10 Gigabit Ethernet AdvancedTCA Fabric
Учить больше
Платформа AdvancedTCA
aTCA-81514PA
15U 14-слотовая полка Dual-Star 40G AdvancedTCA
Учить больше
Блейд-процессор AdvancedTCA
aTCA-9710
Двойной блейд-процессор Intel Xeon E5-2600 v3 40G Ethernet AdvancedTCA
Учить больше
Серверы MEC
MECS-7210
Предварительный
19-дюймовая периферийная вычислительная платформа 2U с масштабируемыми процессорами Intel Xeon Scalable Silver / Gold
Учить больше
Устройство сетевой безопасности
CSA-7400
4U 19 » Сетевое устройство
Учить больше
Серверы обработки видео
MCS-2080
19-дюймовый медиаоблачный сервер высотой 2U с модульными вычислительными узлами и узлами коммутации
Учить больше
CompactPCI / PlusIO / последовательный
cPCI-6636
6U CompactPCI Intel Xeon E3 6-го / 7-го поколений и блейд-процессор Core i3 / i7
Учить больше
ПК / 104 SBC
CM5-P1000
Предварительная
PCIe / 104 Тип 1 Встроенный графический модуль с NVIDIA Quadro P1000
Учить больше
VPX, защищенные платформы OpenVPX
VPX6h20
Предварительная
Прочный блейд-процессор VPX 6U с графическим процессором NVIDIA Quadro для обработки графики и критически важных приложений на основе ИИ
Учить больше
COM Express Тип 6
Экспресс-CFR
COM Express Модуль базового размера тип 6 с процессорами Intel Xeon, Core, Pentium и Celeron 9-го поколения Hexacore Mobile
Учить больше
COM Express Тип 7
Экспресс-DN7
COM Express Модуль базового размера тип 7 с Intel Atom C3000 SoC
Учить больше
COM Express Тип 10
nanoX-AL
COM Express Mini Size Type 10 Module с Intel Atom E3900 series, Pentium и Celeron SoC (ранее Apollo Lake)
Учить больше
COM Express Тип 2
Экспресс-SL2
COM Express Модуль базового размера типа 2 с процессорами Intel Core 6-го поколения, Intel Xeon и Intel Celeron (прежнее кодовое название: Sky Lake-H)
Учить больше
SMARC
LEC-AL
Модуль короткого размера SMARC с процессором Intel Atom E3900 Series, Pentium N4200 или Celeron N3350 (кодовое имя: Apollo Lake)
Учить больше
Qseven
Q7-AL
Модуль стандартного размера Qseven с процессором Intel Atom E3900, Pentium N4200 и Celeron N3350 (кодовое имя: Apollo Lake)
Учить больше
Мониторинг состояния машин
МСМ-204
Автономный Ethernet DAQ с 4-канальным AI, 24-бит, 128KS / s, 4-канальным DI / O производительностью
Учить больше
Сбор данных (DAQ)
USB-2401
4-канальные 24-битные USB-модули DAQ с универсальным входом
Учить больше
Дигитайзеры
PXIe-9834
4-канальный 16-битный дигитайзер PXI Express 80 MS / s
Учить больше
GPIB
LPCIe-3488A
Низкопрофильный высокопроизводительный интерфейс GPIB IEEE488 для шины PCIe
Учить больше
PXI / PXIe
PXES-2785
18-слотовое шасси 3U 24 ГБ / с PXI Express — до 8 ГБ / с, мощность 50 Вт и охлаждающая способность на слот
Учить больше
AI Vision
NEON-2000-JT2 Series Предварительный
Предварительный
Серия NEON-2000-JT2, промышленная интеллектуальная камера с искусственным интеллектом на базе NVIDIA® Jetson ™ TX2 для Edge
Учить больше
Ускорители глубокого обучения
EDL-mPCIe-MA2485
Предварительный
Одинарный / двойной Intel Movidius Myriad X MA2485, встроенный модуль VPU
Учить больше
Платформы вывода глубокого обучения
DLAP-301-JNX
Предварительная
Встроенный сетевой видеорегистратор с поддержкой AI на базе NVIDIA Jetson Xavier NX
Учить больше
Встроенные модули MXM
EGX-MXM-P2000
Модуль
Mobile PCI Express со встроенным NVIDIA Quadro P2000
Учить больше
Встроенные модули MXM
EGX-MXM-P2000
Модуль
Mobile PCI Express со встроенным NVIDIA Quadro P2000
Учить больше
Встроенные модули MXM
EGX-MXM-P3000
Модуль
Mobile PCI Express со встроенным NVIDIA® Quadro® P3000
Учить больше
GPU серверов
ALPS-4400
Предварительная
Обычный сервер с графическим процессором 4U
Учить больше
Устройства машинного зрения
EGX-MXM-P1000
Предварительная
Модуль
Mobile PCI Express со встроенным NVIDIA® Quadro® P1000
Учить больше
Графические карты PCI Express
Quadro-E ПЭГ P1000
Графическая карта
PCI Express со встроенным NVIDIA Quadr P1000
Учить больше
Материнские платы Mini-ITX
AmITX-SL-G
Обновленная встроенная плата Mini-ITX с процессорами Intel Core i7 / i5 / i3 6-го / 7-го поколения, Pentium и Celeron для настольных ПК (прежнее кодовое название: Sky Lake)
Учить больше
Одноплатные компьютеры PICMG
NuPRO-E72
PICMG 1.3 SHB с процессором Intel Xeon E3-1200 v3 4-го поколения
Учить больше
Периферийные устройства для промышленных компьютеров
APS-935XA-EPS12
Промышленный блок питания переменного тока, форм-фактор PS2, 350 Вт
Учить больше
Шасси промышленного компьютера
RK-630
Промышленное шасси высотой 4U с поддержкой материнской платы ATX
Учить больше
Пассивные объединительные платы
WBP-13E4
1 ЦП PICMG, 1 PCI-E x16 (с полосой пропускания x8), 3 PCI-E x4 (с пропускной способностью x4), 8 слотов PCI Объединительная плата
Учить больше
Расширяемые безвентиляторные встраиваемые ПК
МВП-6100
Семейство
Value Расширяемый компьютер на базе процессоров Intel Xeon / Core i7 / i5 / i3 9-го поколения и процессоров Celeron 8-го поколения
Учить больше
Расширяемые безвентиляторные встраиваемые ПК
МВП-6100
Семейство
Value Расширяемый компьютер на базе процессоров Intel Xeon / Core i7 / i5 / i3 9-го поколения и процессоров Celeron 8-го поколения
Учить больше
Интегрированные безвентиляторные встраиваемые ПК
MVP-5100-MXM
Семейство Value 9-го поколения на базе процессоров Intel Core i7 / i5 / i3 Встроенные графические процессоры / платформы AI
Учить больше
Шлюз Интернета вещей
MXE-210 серии
Ультракомпактная встраиваемая платформа на базе процессора Intel Atom E3900
Учить больше
Медицинские панельные ПК
MLC 8-21 / 23/27
Самое универсальное семейство панельных медицинских компьютеров «все в одном» с возможностью выбора производительности процессора Intel Core 8-го поколения
Учить больше
Медицинские панельные ПК
MLC 8-21 / 23/27
Самое универсальное семейство панельных медицинских компьютеров «все в одном» с возможностью выбора производительности процессора Intel Core 8-го поколения
Учить больше
Машинное зрение
PCIe-U300 серии
4/8/12-канальный PCI Express x4 Gen3 USB3 Vision Самые высокопроизводительные устройства захвата кадров
Учить больше
Управление движением
PCIe-8158
Усовершенствованные 8/4-осевые серво и шаговые контроллеры движения с модульной конструкцией
Учить больше
Умная камера
НЕОН-1021-М
Интеллектуальная камера Value Series на базе процессора Intel Atom E3845
Учить больше
Таблетка медицинская
IMT-BT
10.1-дюймовый медицинский планшет с двухъядерным процессором Intel® Celeron® N2807
Учить больше
Решение EtherCAT / EtherNET
PCIe-8338
64-осевой главный контроллер движения PCIe EtherCAT
Учить больше
Решение EtherCAT / EtherNET
PCIe-8338
64-осевой главный контроллер движения PCIe EtherCAT
Учить больше
Панельный ПК IP69K
Titan-AL
Предварительная
15.Промышленный панельный компьютер 6 «/ 21,5» / 23,8 «IP69K
Учить больше
Панельный ПК IP69K
Titan-AL
Предварительная
Промышленный панельный компьютер 15,6 «/ 21,5» / 23,8 «IP69K
Учить больше
Умная панель
Серия SP-KL
Предварительная
Без вентилятора на базе процессора Intel Core 7 дюймов / 10.1 «/ 12,1» / 15,6 «/ 18,5 / 21,5» панельный компьютер
Учить больше
Компьютеры Smart Touch
STC-KL
Предварительная
Компьютеры Smart Touch с диагональю 15,6 дюйма / 18,5 дюйма / 21,5 дюйма
Учить больше
Серверы Extreme Outdoor
СЭТО-1000
Extreme Outdoor Server с процессором Intel Xeon E5-2400 v2 Series
Учить больше
Серверы Extreme Outdoor
СЭТО-1000
Extreme Outdoor Server с процессором Intel Xeon E5-2400 v2 Series
Учить больше
Прочные платформы SFF
HPERC-KBL-MH
Прочная система с конвекционным охлаждением, процессором Intel Xeon и разъемами MIL-DTL-38999
Учить больше
Железнодорожные системы повышенной прочности
AVA-5500 серии
Прочная безвентиляторная платформа AIoT со встроенным графическим процессором NVIDIA Quadro для анализа видео / графики в реальном времени
Учить больше
Решения ROS2
ROScube-I
Встроенный роботизированный контроллер реального времени с процессором Intel® Xeon® / Core ™
Учить больше
Машинное зрение AI
Умный поддон
Увеличьте скорость, эффективность и точность с помощью ADLINK Edge Smart Pallet — нашего решения искусственного интеллекта машинного зрения для складских помещений и логистики
Учить больше
Машинное зрение AI
Умный поддон
Увеличьте скорость, эффективность и точность с помощью ADLINK Edge Smart Pallet — нашего решения искусственного интеллекта машинного зрения для складских помещений и логистики
Учить больше
ADLINK Edge IoT
Цифровой эксперимент
Получите выгоду от промышленного развертывания Интернета вещей быстрее, проще и с меньшими затратами с помощью цифрового эксперимента ADLINK EDGE
Учить больше
Интеллектуальные решения
Состояние машины
Включите удаленный мониторинг оборудования, оценку состояния и прогнозный анализ отказов с помощью решений ADLINK Edge Machine Health.
Учить больше
DDS
ADLINK DDS
Интеллектуальная платформа обмена данными
Учить больше
Встроенная флеш-память
2.5-дюймовый твердотельный накопитель SATA серии
2,5-дюймовый твердотельный накопитель SATA для встраиваемых промышленных приложений
Учить больше
Встроенная флеш-память
2,5-дюймовый твердотельный накопитель SATA серии
2,5-дюймовый твердотельный накопитель SATA для встраиваемых промышленных приложений
Учить больше
Серверы MEC
MECS-7210
Предварительный
19-дюймовая периферийная вычислительная платформа 2U с масштабируемыми процессорами Intel Xeon Scalable Silver / Gold
Учить больше
CompactPCI / PlusIO / последовательный
cPCI-6636
6U CompactPCI Intel Xeon E3 6-го / 7-го поколений и блейд-процессор Core i3 / i7
Учить больше
Мониторинг состояния машин
МСМ-204
Автономный Ethernet DAQ с 4-канальным AI, 24-бит, 128KS / s, 4-канальным DI / O производительностью
Учить больше
AI Vision
NEON-2000-JT2 Series Предварительный
Предварительный
Серия NEON-2000-JT2, промышленная интеллектуальная камера с искусственным интеллектом на базе NVIDIA® Jetson ™ TX2 для Edge
Учить больше
Материнские платы Mini-ITX
AmITX-SL-G
Обновленная встроенная плата Mini-ITX с процессорами Intel Core i7 / i5 / i3 6-го / 7-го поколения, Pentium и Celeron для настольных ПК (прежнее кодовое название: Sky Lake)
Учить больше
ADi-SC1X
Игровая платформа
Полностью модульная слот-платформа с архитектурой объединительной платы, поддерживающая до 8 независимых дисплеев 4K / UHD
Учить больше
SDK ADLINK Edge
Edge SDK
Создавайте и интегрируйте готовые на рынок периферийные решения IoT быстрее с помощью комплекта разработки программного обеспечения ADLINK Edge
Учить больше
Начало работы
Цифровой эксперимент
Получите выгоду от промышленного развертывания Интернета вещей быстрее, проще и с меньшими затратами с помощью цифрового эксперимента ADLINK EDGE
Учить больше
Медицинский монитор
ASM24FHB
Предварительная
Хирургический монитор Full HD серии
Учить больше
Платформа видеоаналитики с ИИ
AVA-5500 серии
Прочная безвентиляторная платформа AIoT со встроенным графическим процессором NVIDIA Quadro® для анализа видео / графики в реальном времени
Учить больше
ETX
ETX-BT
Модуль ETX с процессором Intel Atom® серии E3800 SoC (прежнее кодовое название: Bay Trail)
Учить больше
Встроенные платы
Серия AMSTX-CF
Предварительная
Встроенная материнская плата
с поддержкой графического модуля MXM с процессором Intel® Core ™ i7 / i5 / i3 8-го / 9-го поколения в разъеме LGA1151
Учить больше
Материнские платы ATX
IMB-M45
Предварительный
Промышленная материнская плата
ATX с процессорами Intel® Core ™ i9 / i7 / i5 / i3 8-го / 9-го поколения или Xeon® E
Учить больше
.
Измерение размеров | Приложения машинного зрения | Основы машинного зрения
Измерение размеров
Контроль размеров — это вид контроля внешнего вида. Он играет важную роль в вынесении суждения о том, были ли детали или продукты обработаны или собраны в соответствии со спецификациями. Эти проверки размеров можно автоматизировать с помощью обработки изображений:
- Измерение максимальных / минимальных размеров деталей или изделий
- Измерение максимального / минимального / среднего внутреннего или внешнего диаметра или координат центра уплотнительных колец
- Измерение округлости или угла кончиков металлических деталей
- Измерение позиций кромок и этикеток
- Измерение ширины листовой / пленочной продукции
Измерение размеров является основой контроля; однако внедрить его было сложно, поскольку требовалось много времени и усилий.С расширением автоматизации производства (FA) измерение размеров с помощью обработки изображений увеличилось. Эта страница знакомит с основным принципом, преимуществами и практическим применением измерения размеров с помощью обработки изображений.
Изучите основы обработки изображений в автоматизации производства !
Эта публикация предлагает систематический подход к машинному зрению, начиная с введения в обработку изображений и заканчивая подробной информацией о различных проверках.
Скачать
Основной принцип измерения размеров для определения того, была ли продукция обработана в соответствии со спецификациями
Преимущества внедрения обработки изображений
Как правило, размеры деталей и изделий измеряются микроматическими манометрами или штангенциркулями или проверяются с помощью контрольных приспособлений, чтобы убедиться в отсутствии отклонений в точности. Измерения с использованием таких инструментов, как микрометры или штангенциркули, неизбежно связаны с ошибками из-за индивидуальных различий между рабочими и условиями измерения.Результат проверок с помощью контрольно-измерительных приспособлений может быть использован для определения соответствия продукта допустимому диапазону. Однако он не показывает точных измеренных значений.
Другие методы измерения размеров включают оптические компараторы, системы измерения GD&T и профиля, а также системы трехмерных измерений. Они разделяют проблемы, связанные с необходимостью ручного управления, а также трудоемкостью и дороговизной.
С помощью обработки изображений можно получить различные размеры из захваченных изображений.На основе этих данных легко измерить размеры различных секций деталей и изделий и судить, находятся ли они в пределах допусков. Еще одним преимуществом является то, что вы можете измерять углы или округлость окружности одновременно с длинами различных участков и сохранять их как числовые данные.
100% проверка для предотвращения оплошности и утечки дефектных деталей
Контроль размеров с использованием различных систем измерения и приспособлений, как правило, требует множества автономных процессов.Следовательно, 100% проверка требует значительных трудозатрат и затрат. С другой стороны, выборочная проверка может привести к пропуску проверки или утечке дефектных деталей. Контроль размеров с использованием системы обработки изображений может обеспечить измерение размеров всех объектов на линии. Это гарантирует стабильное качество продукции при низких затратах.
Более быстрый контроль для повышения производительности
Встроенное измерение размеров деталей и изделий позволяет значительно сократить время проверки.Системы обработки изображений ускоряют проверку и способствуют повышению производительности.
Хранение и управление информацией о качестве
Контроль размеров с помощью приспособлений не дает точных данных измерения. Он только проверяет, находится ли размер в пределах диапазона допуска или нет. Контроль размеров с использованием обработки изображений предоставляет не только результаты оценки «годен / не годен», но также числовые данные точных размеров нескольких секций, и эти данные можно легко сохранять и управлять ими.Такую информацию также можно эффективно использовать для управления прослеживаемостью или улучшения процессов.
Основы измерения размеров: Измерение на основе обнаружения кромок
Измерение на основе обнаружения краев обычно используется для контроля размеров с использованием обработки изображений. В этом разделе объясняется разрешение пикселей, основы обработки субпикселей и принцип обнаружения границ, чтобы помочь понять обнаружение границ.
Взаимосвязь между разрешением изображения и допуском суждения
Устройство приема изображения машинного зрения состоит из массива пикселей.При измерении размеров вы можете рассчитать допуск на размер на основе этого количества пикселей и поля обзора. Важным фактором для расчета является разрешение в пикселях, которое представляет собой фактическую длину, соответствующую одному пикселю устройства захвата изображения. Разрешение пикселей можно рассчитать по следующей формуле:
Разрешение пикселей = Поле зрения в направлении Y [мм] / Количество пикселей устройства приема изображения в направлении Y [пиксели]
Например, предположим, что вы используете 0.Камера 31 Мп и камера 2 Мп. Количество пикселей по оси Y составляет 480 для камеры с разрешением 0,31 мегапикселя и 1200 пикселей для камеры с разрешением 2 мегапикселя.
При поле зрения 100 мм:
- 【0,31 мегапикселя】
- Разрешение пикселей = 100 мм / 480 пикселей = 0,208 мм / пиксель
- 【2 мегапикселя】
- Разрешение пикселей = 100 мм / 1200 пикселей = 0,083 мм / пиксель
- 【21 мегапикселя】
- Разрешение пикселей = 100 мм / 4092 пикселей = 0.024 мм / пиксель
Таким образом можно рассчитать разрешение в пикселях. В таблице ниже приведены значения эталонного разрешения пикселей камер, используемых в типичных системах обработки изображений, от 0,31 до 21 мегапикселя.
Разрешение пикселей Контрольное значение
- * Количество пикселей в направлении Y ПЗС сенсора 0,31 мегапикселя = 480 пикселей
- * Количество пикселей в направлении Y ПЗС 2-мегапиксельного сенсора = 1200 пикселей
- * Количество пикселей в направлении Y ПЗС 5-мегапиксельного сенсора = 2050 пикселей
- * Количество пикселей устройства приема изображения в направлении Y 21-мегапиксельной камеры = 4092 пикселей
При контроле размеров допуск, используемый в качестве порогового значения для различения хороших и дефектных деталей, обычно рассчитывается в единицах ± 5 пикселей.Это основано на предположении, что количество пикселей, обеспечивающее стабильную оценку допуска, примерно в 10 раз превышает повторяемость. Поскольку повторяемость типичного машинного зрения составляет около 0,1 пикселя в идеальных условиях, практическая повторяемость считается равной 0,5 пикселя с некоторым запасом. Умножение этого числа на 10 дает ± 5 пикселей, и это значение можно рассматривать как минимальную единицу для установки допуска. Это значение можно использовать для расчета фактического допуска на размер по следующей формуле:
Фактический допуск на размер [мм] = Разрешение пикселей (поле зрения в направлении Y) [мм] / Количество пикселей ПЗС-матрицы в направлении Y x 5 пикселей
- 【0.31 мегапиксель】
- Допуск на размер = 0,208 мм / пиксель x 5 пикселей = 1,04 мм
- 【2 мегапикселя】
- Допуск на размер = 0,083 мм / пиксель x 5 пикселей = 0,415 мм
- 【21 мегапикселя】
- Допуск на размер = 0,024 мм / пиксель x 5 пикселей = 0,12 мм
Вам необходимо выбрать машинное зрение и поле зрения, обеспечивающие требуемую точность.
Оценка допуска
О разрешении изображения
Основы обработки субпикселей
Как объяснялось выше, разрешение в пикселях — это фактическое значение размера одного пикселя.В действительности, однако, измерение размеров с использованием обработки изображений может отображать размеры в единицах меньше пикселя посредством приблизительных вычислений. Это называется субпиксельной обработкой.
Субпиксель — это единица измерения меньше пикселя. Например, обработка изображений KEYENCE предлагает размерные данные в единицах 1/1000 пикселей.
Принцип обработки субпикселей
Обработка подпикселей определяет край, где контраст меняется между ярким и темным, преобразует его в форму волны проекции, а затем выполняет дифференциальную обработку.Пик дифференциального сигнала определяется как крайняя точка.
Измерение размеров на основе обнаружения кромок
Обнаружение краев особенно важно для измерения размеров с использованием высокого разрешения (высокая точность). В этом разделе описывается основной процесс обнаружения края.
1. Проекция
Сканируйте цель перпендикулярно направлению обнаружения, чтобы получить средний оттенок линий проекции.Форма волны среднего оттенка линий проекции называется формой волны проекции.
2. Дифференциация
Дифференциация формы сигнала проекции показывает большие значения разницы для точек, которые могут быть краями. Дифференциация — это процесс обнаружения изменений оттенков (уровней градации).
3. Поправка на максимальное значение дифференциала 100%
Примените коррекцию, чтобы максимальное значение дифференциала и абсолютное значение стали 100% для стабилизации фронта.Пик дифференциального сигнала, превышающий указанную граничную чувствительность, определяется как граничная точка.
4. Обработка подпикселей
Рассчитайте форму сигнала для трех пикселей, одного на пике дифференциального сигнала и двух соседних пикселей, и измерьте положение края в единицах 0,001 пикселя.
Практическое применение
По мере роста автоматизации производства экономия времени при проверке становится проблемой, и то же самое касается измерения размеров.Измерение с использованием обработки изображений стало основным методом улучшения такого рода процессов.
Контроль различных размеров микросхем конденсаторов
В дополнение к диаметру и длине корпуса конденсатора, его части могут быть разделены на сегменты для определения положения края и получения минимального диаметра сужающейся части или длины или изгиба подводящего провода. Размеры каждой детали можно точно измерить.
Измерение размеров горлышек бутылок
Размеры могут быть точно измерены даже при использовании встраиваемого устройства.Например, вы можете сделать снимок бутылки из ПЭТ, движущейся по линии сбоку, и измерить размер кольца горлышка бутылки, чтобы обнаружить дефектное формование, неправильный тип или сбой сборки. Такой вид встроенного контроля размеров повышает эффективность.
.