Comments 79
По поводу защиты камер и прожекторов от пыли - а если подвести к ним чистый воздух? (на крыше цеха фильтр (электростатический или циклонный) и центробежный насос, вниз до камер вентиляционная гофра, перед камерами/прожекторами щелевые раструбы, оттуда поток условно чистого воздуха, не дающий осесть пыли).
Прожектора и камеры можно ставить в кожух и создавать внутри избыточное давление компрессором, пыль просто не будет залетать.
Думаю, камеры у них и так в кожухах стоят. Вопрос в том, что стекло кожуха быстро покрывается пылью - его и предлагаю обдувать чистым воздухом так, чтобы пыль на него не садилась (над формой насадки можно подумать).
Насадки для обдува стекла создают турбулентные потоки и пыль все равно будет оседать на стекле.
По опыту могу отметить что будут на стекле разводы от электролизованной пыли. Эффект всё же есть!!! Чистить стекло при обдуве придется сильно реже.
Извиняюсь, только дошло - да, если поставить камеру в кожух с отверстием вместо стекла и создать в нем повышенное давление, будет еще проще. :) Или надеть на камеру глубокую бленду с подводом воздуха сбоку (печатается на 3d-принтере за полчаса).
Хороша идея. В цехе уже существует собственная система разводки воздуха «Воздушная магистраль», но там есть влага и частицы масла. Поэтому мы сейчас думаем, как этот воздух очистить и использовать.
Идея точно хорошая. Мы делаем системы машинного зрения для ж/д. Линейные камеры в кожухе вешаются под вагон и ездят неделями без протирки стекол, а там тоже условия не сахар. Для "наддува" ставим какие-то околовоенные вентиляторы с фильтрами, воздух подводим параллельно плоскости внешнего стекла. В эксплуатации более сотни таких установок в разных странах (включая очень пыльные Индию, Монголию и Туркменистан), полет нормальный.
Камер там от 4 до 7 штук на вагон, плюс еще пара лазерных сканеров и лидаров высокоскоростных. Функциональность - автоматическое распознавание более 30 типов дефектов рельсов, шпал, скреплений, накладок, балласта и пр. Качественные показатели работы - не хуже 90% выявления (по некоторым дефектам 98%+) и не более 10% ложных срабатываний. Самая крутая действительно-работающая-система в мире у нас, без шуток :)
А на чем обсчитываете это все? И о какой стране речь? Не Австралия, случаем?
Ничего особенного - CPU+GPU. На скоростях до 120км/ч и один сервак справляется, выше - разносим функции анализа по 2-3 серверам или часть делаем в постобработке.
Страна - РФ, www.tvema.ru
Сервер на подвижной единице катается? Не ушатывается от вибрации?
Подвижной состав - переоборудованные пассажирские вагоны. Там нет таких вибраций внутри, которые всерьез стоило бы учитывать при проектировании. Средний срок жизни компьютерного оборудования 6 лет, иногда диски чуть раньше вылетают. Некоторые заказчики параноят и просят делать под серверные шкафы демпферы, но в реальности они не нужны. Все равно через 5-6 лет системы перебирать надо (и положено по руководству по обслуживанию и ремонту), вся электроника деградирует за это время. Хотя есть прецеденты (но не для видеосистем) работы и по 20 лет без капремонта.
сжатый азот/аргон/ углекислый газ. они пожаробезопасны. а генератор азота можно на месте расположить
Я недавно делал пневмо-магистраль дома и тоже сталкивался с разными жидкостями в воздухе. Для их отделения есть специальные осушители. Правда с осушителем появится другая задача - выгонять жидкость из его резервуара.
На ФОКе реализован обдув воздухом камер видеонаблюдения от воздушной магистрали. Правда там и пыли меньше чем на КПСах. А в гипербарических фильтрах вообще дворники стоят. Вроде-бы эффективно.
Есть еще вариант ультразвуковой очистки от пыли, который применяется в некоторых зеркальных камерах для очистки матрицы. Крупные фракции, скорее всего, сможет без проблем сбрасывать
Интересно узнать какая аппаратная часть используется для решения задач по распознаванию, обучению. Что-то специализированное железо для AI вычислений?
При экономическом эффекте в 115 миллионов рублей в год стоимость лидаров выглядит копейками, зато надёжность в разы выше и без как либо моделей, обучения и проблем с пылью и освещением. Обслуживать созданную систему будет гораздо дороже, а так хорошо поигрались :-)
Лидары, как я понимаю, будут аналогично страдать от пыли - плюс вопрос долговечности... А камеры и прожекторы - служат дольше и на порядок-другой дешевле ;)
К сожалению, лидары решают задачу только объемного показателя на текущем участке. Нам же требуется определение грансостава идущей руды, т.е. разделение по классам крупности. Обслуживание нашей текущей системы совсем незатратно — всё в рамках текущей операционной работы.
Для автоматической очистки от пыли может быть интересно применение электростатического подхода. На поверхность (например, стекло защитного кожуха камер) наносятся электроды на которые подаётся переменное высоковольтное напряжение, при этом на соседние электроды напряжение подаётся в разных фазах. Частички пыли из-за градиента напряжения мигрируют от электрода к электроду и в конце концов падают вниз. Есть набор работ которые используют этот подход для очистки солнечных панелей и как перспективный подход для очистки скафандров для Луны. Правда, я не знаю доступны ли какие-то готовые решения которые можно будет применить в ваших условиях.
Хорошее предложение, которое кажется перспективным. В эту сторону не думали. Нужно изучить рынок, понять доступность решения. Есть примеры фактической реализации и информация о вендорах?
С индустриальными продуктами реализующими данный принцип не знаком, проглядывал только научные статьи по данной теме. Если ничего подходящего не получится найти, то в идеале по этой теме было бы сделать небольшой R&D с каким-нибудь институтом или вашими силами, если есть люди увлекающиеся электроникой.
1. Для калибровки удобно использовать не линейку, а шахматную доску на 3 винтах. Ее удобно горизонтировать по обычному уровню и по ней можно посчитать перспективные искажения из-за кривоватого подвеса камеры.
2. Можно попробовать Shape from shading: если не получается ловить сам объект (сливается, например, с фоном), можно ловить его тень. У вас объект смещается относительно осветителя и есть возможность снять последовательно несколько фото с разной тенью, это повышает точность. Если есть возможность построить модель освещения по замерам, а не по обратному пересчету картинки, то жить становится еще немного радостнее :)
1. Шахматную доску мы использовали в самом начале. С ней проблемно, т.к. мы клали её на остановившийся конвейер, а это происходит достаточно редко. Устанавливать шахматку где-то рядом нет возможности , т.к. подходящего места нет, и к тому же могут проехать нестандартные негабариты и просто сбить все это. Не стоит забывать про сильную запыленность, за 2 дня там образуется приличный слой пыли, а в зону видимости камеры нельзя засовывать даже руки по ТБ, только если остановить конвейер. Добавлю, в процессе работы крайне редко может вообще порваться лента и тогда всю эту область может завалить камнями, один раз за период сбора данных такое произошло. В общем, установить что-то на постоянной основе не получится. Стоит также обратить внимание, что у нас камера наклонена под углом pitch, в то время как roll и yaw близки к нулю и их влияние минимально, мы это проверяли во время использования шахматки. Как итог сейчас съемная линейка выглядит оптимальным решением.
2. Shape from shading мог бы сработать, если бы расстояние между камнями было большим, у нас тень также накладывается на другие камни, что приведет к нестабильной работе системы. Здесь мы для себя во время тестов нашли ключевые проблемы и дособираем такие особые случаи, например бывает льется вода и образуется жижа из камней собираясь в причудливые формы, сильная запыленность, порезы или заклепки на ленте. В целом, для нас сейчас нет проблем с false negative мы находим все достаточно хорошо, а вот интересные случаи false positive проскакивают. Например, когда рабочие прошли по пустой остановившейся ленте, то система определяла отпечатки обуви на конвейере как отдельные камни, такие случаи сложно предугадать.
Второй идеей была камера с лазерным проектором — по проекции полоски можно понимать её геометрическое искажение, а по геометрическому искажению полоски — что именно под ней едет. Такой сканер называется «камера глубины». В целом неплохо, но не решается главная задача — определение гранулометрического состава.
Не очень понял почему было отброшен данный подход. Если вам для определения гранулометрического состава достаточно карты глубин, то в предположении что конвейер движется с постоянной скоростью и камни плюс-минус стационарны относительно конвейера вы могли бы собирать кадры с повышенной частотой и сшивать результаты анализа каждого из кадров в "скан" карты глубин на основе которого потом вычислялся бы гранулометрический состав. Повышенная частота не должна создавать проблем, т.к. анализ кадра будет на порядки проще по сравнению с ИНС.
Я могу только предположить, что есть еще и некоторые технические и оптические ограничения для реализации данного подхода:
Частота сканирования. У "готовых" сканеров профиля (т.е. лазер с камерой в одном корпусе, откалиброванные) частота обычно не превышает 100-200Гц. Если нужно быстрее - нужно разрабатывать кастомное решение. Быстрых 3д-камер, которые умеют снимать нормально хотя бы на 1-2кГц, на рынке реально всего две, они достаточно дорогие (8 тысяч евро одна, 14 - другая), и на сегодняшний день срок их поставки не менее 6 месяцев (я говорю про отгрузку от производителя в Германии), и тот не гарантирован.
Особенности объекта съемки и возможность установки - руда темная, соответственно имеет низкий коэффициент отражения. Систему измерения возможно установить лишь достаточно далеко от конвейера (метр? два?), что приводит к необходимости использовать крайне мощную лазерную подсветку. Серийных лазеров с нормальной линией и мощностью более 1Вт - тоже всего пара моделей в мире. Дорогие, с длинным сроком поставки. Остальное все наколеночное, я бы такое в промышленности не применял.
Требуемая точность измерения (миллиметры) диктует требования к оптической схеме. А это опять высокая стоимость оборудования (см. пункты 1 и 2) или невозможность достичь требуемой точности.
Думаю можно обойтись с 200-250 Гц. При скорости конвейера указанной в статье это даст развёртку в 12.6 мм, чего должно быть достаточно для анализа крупной фракции и нахождения "кирпичей". Используя несколько полосок на одну камеру плотность развёртки можно кратно увеличить (но тут начинают вылезать проблемы с точностью измерения скорости движения конвейера). Для мелкой фракции может быть достаточно анализа "шероховатости" полоски без сшивания в единую карту глубин.
Насчёт освещения, согласен, могут быть сложности.
В том то и дело, что камеры глубины не достаточно (она высчитывает и отображает объем), нам необходима фактически знать процент каждого класса камней на ленте.
Можете более детальнее описать подход с вшиванием кадров в скан, с дальнейшим вычислением грансостава?
Камера + полоска света даёт одномерный профиль высоты для содержимого конвейера, скажем, на каждые 5 мм. Представим, что конвейер движется со скоростью 2 м/с и камера снимает кадры со скоростью 200 Гц. В таких условиях вы сможете снимать одномерный профиль высоты каждые 10 мм. Объединив профиля вы получите двухмерную картинку высот с разрешением 5 на 10 мм. По сути получается своеобразная замена лидару. По профилю высот вам будет проще делать сегментацию больших гранул с большей надёжностью нежели чем анализируя монохромную картинку. В случае малых и средних гранул вероятнее будет лучше анализировать одномерные профиля сразу, без сшивания их в двухмерную картинку. Например, можно брать распределение Фурье по ним и из него оценивать распределение размера гранул.
Мне кажется что задачу белых камней можно решить за счёт отдельных R, G, B прожекторов направленных с разных сторон. Хотя модель вероятно придется менять.
Согласен с автором.
А отдельно целостность сита не думали проверять? На вскидку это должно быть проще в реализации
Пустяк, конечно, но режет глаз неправильная трактовка термина. Вертушка - это поезд, который ходит всегда по одному маршруту. И никак не потому, что может двигаться вперёд вагонами. Движение вперёд вагонами = осаживание.
«Потому что цена эффекта — 115 миллионов рублей».
Ох, как я не люблю подобого рода манипуляции. Вы умышленно упускаете относительный количественный показатель для данного эффекта? Для условного Васи из Урюпинска это огромная сумма и эффект вау с его стороны вам обеспечен, но для многомиллиардного сырьевого производства это капля в моря. Ваша цена эффекта не отражает ровным счетом почти ничего. Сэкономили n рублей?, но те же работники, что были затрачены на производстве потеряли все рубли. Но больше меня не это смущает, а именно давление на подсознание, вот мол смотрите какая большая сумма, по сравнению с вашими доходами нищеброды (условно).
Даже, если для предприятия какая-то сумма является мелочью, но есть вариант ее сэкономить, почему бы этого не сделать?
И да, ваше ранимое подсознание определенно требует работы со специалистом. Я, при словах "115 миллионов" подумал только о том, какие у нас хорошие инженеры, что прикрутили такую штуку и начали экономить бабки.
а если TOF камера типа Kinect? или она недостаточно быстрая? или у неё разрешение слишком маленькое для ваших задач?
пришла в голову идея чисто механическая, не знаю насколько она реализуема или целесообразна, но что если после конвейера поставить наклонный конвейер с дырочками разного размера, которые будут фильтровать исходный материал на разные потоки разного размера, и по соотношению количества материала в этих потоках можно будет понять куда смещать дробилку?
Бывает руда цвета ленты конвейера: у нас такой в карьере нет, но в природе встречается. Что с этим делать, пока непонятно.
Надо взять прожекторы разных цветов (красный и жёлтый меньше рассеиваются в пыли).
![](https://habrastorage.org/getpro/habr/upload_files/358/a93/325/358a93325d25072b501d0a5ddcbbf930.png)
И тогда правая и левая стороны камней будут иметь разный цвет, отличающийся от всего в кадре.
А что, если вместо линейки приспособить пару лазерных указок. Поставить их параллельно, с заданным расстоянием, а на фото уже смотреть сколько пикселей получается. Конечно их придется точно крепить, что в условиях постоянного дрожания конвеера, думаю будет не очень. Или через призму проецировать тогда уж.
для определения толщины потока можно поставить светодиодную планку сбоку перпендикулярно потоку и камеру. Чем больше нижних лампочек закрыты тем выше уровень потока. Также можно ловить валуны которые сильно выше потока. Если поставить планку заранее то можно детектировать "резкий скачок уровня" и в нужный тайминг фотографировать конвейер для подтверждения присутствия валуна. Планка (или любой другой датчик перекрытия) явно сможет работать быстрее основной камеры.
Техническая возможность реализации здесь есть, но во-первых, она осложняется высокой запылённостью (придется увеличивать обслуживание датчиков или как вариант подводить новую магистраль воздуха), а во-вторых, расчёт размеров крупных камней сделать не получится, т.к. лазерные датчики не имеют возможности посчитать размер, единственное, можем получить бинарное отличие камней — есть или нет.
В целом, да, возможен вариант с помощью лазера фиксировать наличие, и только потом с помощью камеры распознавать размер.
А что если другой подход к проблеме попробовать?
Вот, как понял, на данном этапе "сканируется" верхний слой на конвейерной ленте, полученное изображение сегментируется при помощи могучей математики в контуры и принимается решение - булыган по ленте едет или песок. Т.е. симулируется обычное человеческое зрение. Что не просто и ресурсозатратно, кмк.
А если так: сверху на ленту с рудой светит лазер с быстрой развёрткой (а-ля штрих-сканер в магазине ;) ). Если смотреть на эту лазерную полоску сбоку, то она примет вид уже не "полоски", а достаточно "мохнатой" кривой. Которую и нужно "смотреть" камерой. Согласны?
А теперь главное.
Если форму этой кривой проанализировать (да хоть БПФ для начала ;) ), то очевидно, что для мелкой фракции частота "зубчиков" лазерной кривой будет высокой. А амплитуда - нет. Для крупной фракции - частота низкой. Амплитуда - высокой. Это первый этап анализа.
Если нужно выделять "артефакты" (единичные "булыганы"), т.е. те самые места на кривой, где амплитуда вдруг выросла, а частота снизилась, то придётся уже разбирать форму этой кривой. А как - МО, вейлетами, сегментацией и т.д. - ТОС в помощь, это не сложнее, того что Вы уже сделали ;)
Думали реализовать данный вариант, что сравнимо с классическим машинным зрением. Нейронные сети нас устраивают намного больше, ввиду своей вариативности и скорости работы, и на текущем железе не уступают классическому машинному зрению, данные нейронные сети намного проще переобучить и не подбирать коэфф. А также легко масштабировать на аналогичные конвейера.
Спасибо за статью, вспомнил книги из детства, путешествия на чужие планеты и дивные миры, требующие новых решений.
Идеи, которые могут сработать:
1) нарисовать по бокам ленты узкие белые полоски по направлению хода ленты. Это должно уменьшить до нуля ложные срабатывания, как у вас на фото в статье, так как детектировать на полосатой фоне проще.
2) на камеру сонаправленно поставить зелёный лазер с рассеивающей линзой так, чтобы на пустом конвейере зайчик был во всю ширину конвейера, это позволит на финальной картинке для камеры по размеру этого зайчика передавать в систему данные о расстоянии до руды, что позволит нормировать размер прямо в ml. Решает проблему в два раза увеличенного объёма руды на ленте.
3) шипы на ленте, которые в зависимости от расстояния между ними, позволяют мелкой фракции проваливаться между шипами, а крупную фракцию оставляют сверху, таким образом сверху мы будем видеть крупную фракцию, решает проблему неоднородности по глубине руды на конвейере
1. На текущий момент побороли ложные срабатывания увеличением датасета в несколько раз.
2. Для корректного расчета размера объектов как уже писали подготовили тестовую/калибровочную линейку.
3. Для данного варианта необходимо рассчитать экономическую составляющую, которая вероятнее всего будет отрицательной.
А вы не пробовали искать кирпичи не по зрению а по силе удара при падении на конвеер (или куда там они сыпятся)?
Какая требуемая точность и какую вы получаете сейчас?
Что-то я не понял экономической составляющей. Если такой подход экономит до 115 миллионов в год, то купить 6 лидаров за 2-3 ляма штука, так это вроде как очень и очень выгодно. А так в вашем описании между строк читается, что - нам тут опять сверху спустили указание решить вопрос методом "из говна и палок". И делается это чтобы некоторые могли положить денег себе в карман ещё больше!
Если рабочий с тряпкой эффективно очищает стекло камеры, то напрашивается способ используемый в камерах Формулы-1: по стеклу ездит проматываемая пленка. Пока пленка снаружи -- собирает грязь и пыль, как картинка стала плохой -- проматываем. На камеру приезжает чистый кусок пленки, а грязный или в утиль или, если пленка закольцована, проходит через щетки/тряпку.
руда — это не шарики, и может образоваться «кирпич», то есть нечто с неравными пропорциями, что по двум габаритам меньше 350, а в третьем габарите больше длинное, чем широкое. Это случайный процесс, просто статистика.
Да это же Тетрис!
Тоссим руду: очень неочевидная ИТ-задача