Дробилка с выдвигаемым конусом

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

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

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

И тут такие приходим мы из ИТ и говорим производству: а хотите в реальном времени? Производство сначала крутит пальцем у виска, а потом говорит, что хочет. Потому что цена эффекта — 115 миллионов рублей в год.

Техпроцесс


Про взрыв вы уже знаете. Дальше руда едет на специальном локальном поезде-вертушке из места временного хранения в загрузочный бункер крупной дробилки. Вертушкой поезд называется потому, что он ездит в обе стороны, то есть может вагонами вперёд.




Разгрузка руды в дробилку

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




Дробилка, вид сбоку: по бокам — два редуктора с электродвигателями, по центру — бункер с дробящим конусом внутри.

Чем выше вы выдвинете подвижный конус (который растирает камни о стенки «ямы»), тем мельче пойдёт фракция, но тем более энергозатратно это будет. Наша задача — получить 90% кусков размером до 350 миллиметров. Дробилка, фактически, сама сортирует руду — из нижнего отверстия может выпасть только то, что проходит под габарит. Проблема в том, что руда — это не шарики, и может образоваться «кирпич», то есть нечто с неравными пропорциями, что по двум габаритам меньше 350, а в третьем габарите больше длинное, чем широкое. Это случайный процесс, просто статистика. Чтобы уменьшить вероятность выпадения кирпича из дробилки, нужно уменьшить разгрузочную щель, и фракция станет оптимальной. Но важно соблюдать технологию, чтобы каждый камень не дробился мельче желанного габарита.

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

На крупной дробилке «кирпичи» видно глазами.


Руда крупной фракции – вид с камер машинного зрения

Дальше фракция (преимущественно размером до 350 мм) едет по двум конвейерам. Двум — это потому что резервирование. Если встанет один, то останется второй, и техпроцесс не остановится. Поэтому можно ремонтировать их и обслуживать без даунтайма.

Если по конвейеру едет брак — большой камень или много больших камней — мы не останавливаем ничего, а просто миримся с тем, что дальше дробить будет дороже. Но стараемся корректировать на дробилке щелевой режим и осматриваем прорывы сит.


Это нижняя чаша мелкой дробилки, в которой происходит третья стадия дробления

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


Так выглядит с камер машинного зрения руда средней фракции


А вот так – мелкой фракции

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

Где там оптимизация


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

До последнего времени мы получали данные механизированным способом, который я кратко описывал в самом начале: каждые 24 минуты с конвейера берется немного руды и высыпается в ведерко. Каждые два часа это ведерко, в котором накопилась руда от пяти таких «зачерпываний», просеивается через сита. Потом по формуле считается средневзвешенное за два часа. Проблема в том, что и этого недостаточно — и лаг измерений большой, и руда на конвейере сверху и снизу слоя отличается по размеру.

В идеале нам хотелось:

  1. Знать, что именно сейчас выдаёт дробилка,
  2. Чтобы понять, как именно поменять её режим.

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

В общем, нужна быстрая обратная связь.

Надо измерять камни, которые едут по конвейеру.

Первое, что мы попробовали — это поискать лидар. Лидар — крутая штука, но на такую скорость работы конвейера он стоит от пары миллионов рублей за единицу, а нам нужно минимум шесть единиц. Второй идеей была камера с лазерным проектором — по проекции полоски можно понимать её геометрическое искажение, а по геометрическому искажению полоски — что именно под ней едет. Такой сканер называется «камера глубины». В целом неплохо, но не решается главная задача — определение гранулометрического состава. Про ручной отбор руды уже говорил — не вариант. Ещё в нашей руде магнитного железа до 28%, а общего до 32%, но более-менее рациональных вариантов с магнитами мы не придумали. В итоге решили пробовать видеоаналитику, то есть машинное зрение.

Поначалу всё выглядело просто: снимаем тысячу картинок, грустные люди обводят там каждый камень прямоугольником (а грустные они потому, что камней несколько тысяч в кадре уже на втором участке среднего дробления и сотни тысяч на третьем мелкого), мы скармливаем в ML, модель жужжит и выдаёт нам идеальный результат.

Не сработало.

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

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


Освещение потока руды на конвейерной ленте

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


Данные с запылённой камеры на второй день


Протёрли камеру


«Кирпич» поехал


Ложноположительное срабатывание

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


Калибровка машинного зрения для точности детектирования размера куска. Металлическая линейка на ленте конвейера размечена известными интервалами для калибровки соотношения пикселей на миллиметр.


Снова линейка

В итоге мы пришли к следующей схеме:

  1. Взяли данные с механического отбора за два часа как эталон количественного распределения фракций.
  2. Взяли фотографии за эти два часа примерно в моменты отбора и поставили в соответствие числам распределения, то есть получили основу для обучения.
  3. Повторили несколько сотен раз — сколько позволяла скорость механических отборов.
  4. Затем в блендере нагенерили похожих материалов в 3D, чтобы обогатить выборку — там 3D-шаман смотрел на реальные фотографии и перемешивал моделируемые камни.
  5. Обучили математическую модель и провели тестовый анализ данных на разработанной математической модели.


Реальное фото


Синтетическое изображение

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

По моделям: instance segmentation Resnet50 maskrcnn на участках среднего и мелкого дробления (параллельно тестируем Yolact на участке крупного дробления, хотим ускориться и уменьшить занимаемую память), на среднем участке модель детекции Yolox, тестируем переход на TOOD. В модели предсказания распределения по фракциям используем resnet18 + head из нескольких линейных слоев. Более жирные архитектуры не дают прироста качества. Сейчас инференс гоняем на torch, но в планах переход на TensorRT и упаковка всего в DeepStream от Nvidia.

Это заработало. Дальше мы смотрели, насколько наша оценка совпадает или отличается от оценки СККР (механизированного отбора проб) — то есть, по сути, сделали мониторинг точности с возможностью ручной калибровки возможностей машинного зрения. Автокоррекции и переобучения на лету нет (как минимум пока) — если приезжает другая руда или модель начинает «гнать» по каким-то своим эмельным причинам, мы приходим и разбираемся. Пока точность в коридоре около полумиллиметра.



Если быть более точным, наше измерение (точнее, прогноз по сотням фотографий из видеопотока) и измерение механическим способом не совсем одинаковы. Из-за того, что размеры сита дискретны, и их всего четыре штуки, в механическом процессе фракции делятся на 0-5 мм, 5-10 мм, 10-15 мм и выше 15. Но если слишком большой процент кусков руды будут на верхнем пределе по размеру, то мы получим неверную оценку состава фракций. Особенно это неприятно в крупной фракции, потому что «больше 15» — это в теории может быть что угодно, включая Тунгусский метеорит. На практике там, конечно, большие камни не попадаются, но 15-350 мм встретить вполне можно. А разница между «из дробилки лезет преимущественно 200» и «в крупной фракции всё по 16» огромная.

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

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

Итого


  • Есть детектор негабарита по краям камней. Очень удобно считать «кирпичи», что решает задачу с пониманием, что, если дробилка работает нормально при этом, значит, прорвано сито, нужно останавливать грохот и идти смотреть, что там. И ещё ряд других вспомогательных задач оценки качества руды.
  • Есть модель, которая на основании обучающей выборки фотографий в момент забора и результатов этого забора умеет делать прогноз количества разных фракций в руде. Она служит для оперативного управления дробилкой.
  • Есть мониторинг, который связывает фактические данные отборов руды с данными прогнозов модели — и следит, чтобы модель не сильно врала. Если врёт сильно — зовёт нас разбираться. Например, может приехать вообще другая руда (да хоть другого цвета и другого состава), и тогда придётся думать, что делать с обучающей выборкой.
  • Есть оценка состояния камеры и света, чтобы прогнозировать, когда надо будет протирать, — и ставить такую задачу рабочим цеха хотя бы за смену до протирки.
  • Есть хранение фотографий — мы держим два месяца полной истории на всякий случай.
  • Есть модуль калибровки по линейке.

Чего мы не знаем — это как вся эта сборка будет работать на другом конвейере. Недавно вот проверили: модель третьего участка по поиску негабаритов умеет работать на первом с достаточным качеством. Модели двух конвейеров второго участка имели разные обучающие выборки (снятые на двух разных камерах двух разных конвейеров) — при объединении они улучшают качество прогноза, а не ухудшают его. Вполне возможно, что новые конвейеры с такими же прожекторами можно будет запускать довольно просто.

Не хватает оптимизации. Сейчас мы делаем 20-30 прогнозов в секунду, а надо быстрее, до 50 раз — иначе пропускаем часть быстро уезжающих камней. Надо оптимизировать код в паре мест, это просто время.

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

Так что на текущий момент всё это работает хорошо, но есть ещё много всего, как улучшать и докручивать.

Также спасибо команде rdl by red_mad_robot, специалистам в области решений на основе ИИ. Коллеги участвовали во всех этапах разработки и внедрения: от подбора оборудования и его монтажа до разработки и интеграции всех компонентов видеоаналитической системы.

Комментарии (72)


  1. YMA
    01.11.2022 10:18
    +4

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


    1. kenoma
      01.11.2022 10:32
      +2

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


      1. YMA
        01.11.2022 10:38
        +6

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


        1. kenoma
          01.11.2022 23:42

          Насадки для обдува стекла создают турбулентные потоки и пыль все равно будет оседать на стекле.


          1. YMA
            02.11.2022 09:11

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


      1. YMA
        01.11.2022 11:25
        +1

        Извиняюсь, только дошло - да, если поставить камеру в кожух с отверстием вместо стекла и создать в нем повышенное давление, будет еще проще. :) Или надеть на камеру глубокую бленду с подводом воздуха сбоку (печатается на 3d-принтере за полчаса).


        1. polearnik
          01.11.2022 11:49
          +13

          сворачивается из куска картона быстрее чем за полчаса. Ох уж эти свидетели 3д принтера


    1. nemirovskiy_av Автор
      01.11.2022 10:42
      +3

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


      1. woozle
        01.11.2022 11:42
        +5

        Идея точно хорошая. Мы делаем системы машинного зрения для ж/д. Линейные камеры в кожухе вешаются под вагон и ездят неделями без протирки стекол, а там тоже условия не сахар. Для "наддува" ставим какие-то околовоенные вентиляторы с фильтрами, воздух подводим параллельно плоскости внешнего стекла. В эксплуатации более сотни таких установок в разных странах (включая очень пыльные Индию, Монголию и Туркменистан), полет нормальный.


        1. Gryphon88
          01.11.2022 11:48
          +1

          Если не секрет, а что предполагается рассматривать этой камерой?


          1. woozle
            01.11.2022 11:52
            +15

            Камер там от 4 до 7 штук на вагон, плюс еще пара лазерных сканеров и лидаров высокоскоростных. Функциональность - автоматическое распознавание более 30 типов дефектов рельсов, шпал, скреплений, накладок, балласта и пр. Качественные показатели работы - не хуже 90% выявления (по некоторым дефектам 98%+) и не более 10% ложных срабатываний. Самая крутая действительно-работающая-система в мире у нас, без шуток :)


            1. kenoma
              01.11.2022 12:38
              -1

              А на чем обсчитываете это все? И о какой стране речь? Не Австралия, случаем?


              1. woozle
                01.11.2022 12:42
                +15

                Ничего особенного - CPU+GPU. На скоростях до 120км/ч и один сервак справляется, выше - разносим функции анализа по 2-3 серверам или часть делаем в постобработке.

                Страна - РФ, www.tvema.ru


                1. kenoma
                  01.11.2022 13:24

                  Сервер на подвижной единице катается? Не ушатывается от вибрации?


                  1. woozle
                    01.11.2022 13:27
                    +13

                    Подвижной состав - переоборудованные пассажирские вагоны. Там нет таких вибраций внутри, которые всерьез стоило бы учитывать при проектировании. Средний срок жизни компьютерного оборудования 6 лет, иногда диски чуть раньше вылетают. Некоторые заказчики параноят и просят делать под серверные шкафы демпферы, но в реальности они не нужны. Все равно через 5-6 лет системы перебирать надо (и положено по руководству по обслуживанию и ремонту), вся электроника деградирует за это время. Хотя есть прецеденты (но не для видеосистем) работы и по 20 лет без капремонта.


                    1. GoldGoblin
                      01.11.2022 13:36
                      +23

                      Статью бы с подробностями! А то надоело читать переводы или новости....


                      1. johnfound
                        01.11.2022 21:49
                        +1

                        Присоединяюсь!


                    1. zhulan0v
                      02.11.2022 09:05

                      Напишите пост!


      1. stanislavskijvlad
        01.11.2022 14:19

        сжатый азот/аргон/ углекислый газ. они пожаробезопасны. а генератор азота можно на месте расположить


      1. lobzik_88
        01.11.2022 15:56

        Я недавно делал пневмо-магистраль дома и тоже сталкивался с разными жидкостями в воздухе. Для их отделения есть специальные осушители. Правда с осушителем появится другая задача - выгонять жидкость из его резервуара.


      1. masv
        01.11.2022 19:52

        На ФОКе реализован обдув воздухом камер видеонаблюдения от воздушной магистрали. Правда там и пыли меньше чем на КПСах. А в гипербарических фильтрах вообще дворники стоят. Вроде-бы эффективно.


      1. MechanicusJr
        01.11.2022 23:28

        Поэтому мы сейчас думаем, как этот воздух очистить и использовать.

        Влагомалоотделитель с Т-72 или БМП ?


  1. prishol
    01.11.2022 10:53
    +2

    Интересно узнать какая аппаратная часть используется для решения задач по распознаванию, обучению. Что-то специализированное железо для AI вычислений?


    1. nemirovskiy_av Автор
      01.11.2022 14:19
      +2

      Мы используем достаточно стандартный подход, сервер GPU+CPU. Модель видеокарт Nvidia Quadro RTX 4000 8GB.


  1. masteryoda73
    01.11.2022 10:59
    +3

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


    1. YMA
      01.11.2022 11:17

      Лидары, как я понимаю, будут аналогично страдать от пыли - плюс вопрос долговечности... А камеры и прожекторы - служат дольше и на порядок-другой дешевле ;)


    1. nemirovskiy_av Автор
      01.11.2022 13:33

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


  1. newpavlov
    01.11.2022 11:21

    Для автоматической очистки от пыли может быть интересно применение электростатического подхода. На поверхность (например, стекло защитного кожуха камер) наносятся электроды на которые подаётся переменное высоковольтное напряжение, при этом на соседние электроды напряжение подаётся в разных фазах. Частички пыли из-за градиента напряжения мигрируют от электрода к электроду и в конце концов падают вниз. Есть набор работ которые используют этот подход для очистки солнечных панелей и как перспективный подход для очистки скафандров для Луны. Правда, я не знаю доступны ли какие-то готовые решения которые можно будет применить в ваших условиях.


    1. Gryphon88
      01.11.2022 11:26
      +1

      По рентабельности для солнечных панелей все ещё лидируют щетки/дворники и обдув воздухом под давлением :)


      1. newpavlov
        01.11.2022 11:31

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


        1. GDragon
          01.11.2022 13:34

          В цеху обдув воздухом выигрывает с большим запасом))


    1. nemirovskiy_av Автор
      01.11.2022 13:38

      Хорошее предложение, которое кажется перспективным. В эту сторону не думали. Нужно изучить рынок, понять доступность решения. Есть примеры фактической реализации и информация о вендорах?


      1. newpavlov
        01.11.2022 15:13

        С индустриальными продуктами реализующими данный принцип не знаком, проглядывал только научные статьи по данной теме. Если ничего подходящего не получится найти, то в идеале по этой теме было бы сделать небольшой R&D с каким-нибудь институтом или вашими силами, если есть люди увлекающиеся электроникой.


        1. Wolf4D
          01.11.2022 19:04

          Это же Люстра Чижевского, по сути. Помню, в качестве пылесборника (в хорошем смысле слова) она была совершенно фантастической.


      1. MechanicusJr
        01.11.2022 23:26
        +1

        вы учтите, что в тех же ЭФВА на коронирующие электроды подается выпрямленное высокое напряжение 12-13 кВ. Оно вам надо у камеры?


  1. Gryphon88
    01.11.2022 11:25
    +2

    Два приема, который могут быть вам полезны:
    1. Для калибровки удобно использовать не линейку, а шахматную доску на 3 винтах. Ее удобно горизонтировать по обычному уровню и по ней можно посчитать перспективные искажения из-за кривоватого подвеса камеры.
    2. Можно попробовать Shape from shading: если не получается ловить сам объект (сливается, например, с фоном), можно ловить его тень. У вас объект смещается относительно осветителя и есть возможность снять последовательно несколько фото с разной тенью, это повышает точность. Если есть возможность построить модель освещения по замерам, а не по обратному пересчету картинки, то жить становится еще немного радостнее :)


    1. nemirovskiy_av Автор
      01.11.2022 13:48
      +5

      1. Шахматную доску мы использовали в самом начале. С ней проблемно, т.к. мы клали её на остановившийся конвейер, а это происходит достаточно редко. Устанавливать шахматку где-то рядом нет возможности , т.к. подходящего места нет, и к тому же могут проехать нестандартные негабариты и просто сбить все это. Не стоит забывать про сильную запыленность, за 2 дня там образуется приличный слой пыли, а в зону видимости камеры нельзя засовывать даже руки по ТБ, только если остановить конвейер. Добавлю, в процессе работы крайне редко может вообще порваться лента и тогда всю эту область может завалить камнями, один раз за период сбора данных такое произошло. В общем, установить что-то на постоянной основе не получится. Стоит также обратить внимание, что у нас камера наклонена под углом pitch, в то время как roll и yaw близки к нулю и их влияние минимально, мы это проверяли во время использования шахматки. Как итог сейчас съемная линейка выглядит оптимальным решением.

      2. Shape from shading мог бы сработать, если бы расстояние между камнями было большим, у нас тень также накладывается на другие камни, что приведет к нестабильной работе системы. Здесь мы для себя во время тестов нашли ключевые проблемы и дособираем такие особые случаи, например бывает льется вода и образуется жижа из камней собираясь в причудливые формы, сильная запыленность, порезы или заклепки на ленте. В целом, для нас сейчас нет проблем с false negative мы находим все достаточно хорошо, а вот интересные случаи false positive проскакивают. Например, когда рабочие прошли по пустой остановившейся ленте, то система определяла отпечатки обуви на конвейере как отдельные камни, такие случаи сложно предугадать.


  1. newpavlov
    01.11.2022 12:01
    +1

    Второй идеей была камера с лазерным проектором — по проекции полоски можно понимать её геометрическое искажение, а по геометрическому искажению полоски — что именно под ней едет. Такой сканер называется «камера глубины». В целом неплохо, но не решается главная задача — определение гранулометрического состава.

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


    1. woozle
      01.11.2022 12:12

      Я могу только предположить, что есть еще и некоторые технические и оптические ограничения для реализации данного подхода:

      1. Частота сканирования. У "готовых" сканеров профиля (т.е. лазер с камерой в одном корпусе, откалиброванные) частота обычно не превышает 100-200Гц. Если нужно быстрее - нужно разрабатывать кастомное решение. Быстрых 3д-камер, которые умеют снимать нормально хотя бы на 1-2кГц, на рынке реально всего две, они достаточно дорогие (8 тысяч евро одна, 14 - другая), и на сегодняшний день срок их поставки не менее 6 месяцев (я говорю про отгрузку от производителя в Германии), и тот не гарантирован.

      2. Особенности объекта съемки и возможность установки - руда темная, соответственно имеет низкий коэффициент отражения. Систему измерения возможно установить лишь достаточно далеко от конвейера (метр? два?), что приводит к необходимости использовать крайне мощную лазерную подсветку. Серийных лазеров с нормальной линией и мощностью более 1Вт - тоже всего пара моделей в мире. Дорогие, с длинным сроком поставки. Остальное все наколеночное, я бы такое в промышленности не применял.

      3. Требуемая точность измерения (миллиметры) диктует требования к оптической схеме. А это опять высокая стоимость оборудования (см. пункты 1 и 2) или невозможность достичь требуемой точности.


      1. newpavlov
        01.11.2022 12:20

        Думаю можно обойтись с 200-250 Гц. При скорости конвейера указанной в статье это даст развёртку в 12.6 мм, чего должно быть достаточно для анализа крупной фракции и нахождения "кирпичей". Используя несколько полосок на одну камеру плотность развёртки можно кратно увеличить (но тут начинают вылезать проблемы с точностью измерения скорости движения конвейера). Для мелкой фракции может быть достаточно анализа "шероховатости" полоски без сшивания в единую карту глубин.

        Насчёт освещения, согласен, могут быть сложности.


        1. Gryphon88
          01.11.2022 12:27

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


          1. newpavlov
            01.11.2022 12:31

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


    1. nemirovskiy_av Автор
      01.11.2022 13:53

      В том то и дело, что камеры глубины не достаточно (она высчитывает и отображает объем), нам необходима фактически знать процент каждого класса камней на ленте.

      Можете более детальнее описать подход с вшиванием кадров в скан, с дальнейшим вычислением грансостава?


      1. newpavlov
        01.11.2022 15:23

        Камера + полоска света даёт одномерный профиль высоты для содержимого конвейера, скажем, на каждые 5 мм. Представим, что конвейер движется со скоростью 2 м/с и камера снимает кадры со скоростью 200 Гц. В таких условиях вы сможете снимать одномерный профиль высоты каждые 10 мм. Объединив профиля вы получите двухмерную картинку высот с разрешением 5 на 10 мм. По сути получается своеобразная замена лидару. По профилю высот вам будет проще делать сегментацию больших гранул с большей надёжностью нежели чем анализируя монохромную картинку. В случае малых и средних гранул вероятнее будет лучше анализировать одномерные профиля сразу, без сшивания их в двухмерную картинку. Например, можно брать распределение Фурье по ним и из него оценивать распределение размера гранул.


        1. thevlad
          01.11.2022 20:17

          Да, как мне кажется, преобразование Фурье, по 2D массиву высот, может дать интересный результат. Может быть даже удастся, как то связать спектральную плотность с необходимыми параметрами аналитически, или использовать ее для более простых статистических методов.


  1. ciuafm
    01.11.2022 16:34
    +4

    Мне кажется что задачу белых камней можно решить за счёт отдельных R, G, B прожекторов направленных с разных сторон. Хотя модель вероятно придется менять.


  1. Ivannoskov8
    01.11.2022 16:58
    -8

    Согласен с автором.


  1. kisskin
    01.11.2022 19:51

    А отдельно целостность сита не думали проверять? На вскидку это должно быть проще в реализации


    1. nemirovskiy_av Автор
      02.11.2022 17:42

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


  1. FLii
    01.11.2022 21:33

    Пустяк, конечно, но режет глаз неправильная трактовка термина. Вертушка - это поезд, который ходит всегда по одному маршруту. И никак не потому, что может двигаться вперёд вагонами. Движение вперёд вагонами = осаживание.


    1. nemirovskiy_av Автор
      02.11.2022 17:44

      Спасибо за корректировку.


  1. MechanicusJr
    01.11.2022 23:20

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

    А чего не как на танке, продувка сжатым воздухом под давлением? Гидропневмоочистка приборов наблюдения и прицеливания танка Т-72 на базе Компрессора АК-150СВ и редукторов?

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

    Цвет руды и конвейера будет одинаковым только при определенном спектре ламп. Добавьте цветовой палитры в лампы - чего будет?

    Тестовый стенд в виде макета куска конвейера и камеры для первичной калибровки на разные условия не собирали?


    1. nemirovskiy_av Автор
      02.11.2022 17:50

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


      1. MechanicusJr
        02.11.2022 22:38

        Тестовый стенд не собирали.

        а чего? рамку сколотили, в любом цеху поставили - проверять свет, модели.


  1. hbn3
    02.11.2022 01:42

    А что-нибудь типа ультразвука не пробовали? Или там разрешение не достаточное.


    1. nemirovskiy_av Автор
      02.11.2022 18:01

      Не пробовали.


  1. Silvestor
    02.11.2022 02:09

    «Потому что цена эффекта — 115 миллионов рублей».

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


    1. hbn3
      02.11.2022 02:52
      +2

      А каково контрпредложение? Не делать?

      Плюс существуют синергетические эффекиы, когда ты здесь сделал чуть-чуть. Там и ещё где-то, а в результате 2+2 получится равно 5. Или 10.


  1. 3263927
    02.11.2022 03:00

    а если TOF камера типа Kinect? или она недостаточно быстрая? или у неё разрешение слишком маленькое для ваших задач?

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


    1. nemirovskiy_av Автор
      02.11.2022 18:06

      Недостаточно скорости. Мы используем камеры Basler.
      Технически и физически нет такой возможности. И второй момент — отсутствует необходимость фильтрования поступающей руды. Наша задача получение на выходе однородного продукта для последующей стадии измельчения.


  1. svboobnov
    02.11.2022 09:27
    +2

    Бывает руда цвета ленты конвейера: у нас такой в карьере нет, но в природе встречается. Что с этим делать, пока непонятно.

    Надо взять прожекторы разных цветов (красный и жёлтый меньше рассеиваются в пыли).

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


  1. Jerry88
    02.11.2022 09:54
    +1

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


    1. nemirovskiy_av Автор
      02.11.2022 18:08

      Эту идею записали себе в бэклог, спасибо!


  1. asrtonom4ek
    02.11.2022 16:17

    для определения толщины потока можно поставить светодиодную планку сбоку перпендикулярно потоку и камеру. Чем больше нижних лампочек закрыты тем выше уровень потока. Также можно ловить валуны которые сильно выше потока. Если поставить планку заранее то можно детектировать "резкий скачок уровня" и в нужный тайминг фотографировать конвейер для подтверждения присутствия валуна. Планка (или любой другой датчик перекрытия) явно сможет работать быстрее основной камеры.


    1. nemirovskiy_av Автор
      03.11.2022 14:34

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

      В целом, да, возможен вариант с помощью лазера фиксировать наличие, и только потом с помощью камеры распознавать размер.


  1. Angry_Vedmed
    02.11.2022 16:17

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

    А если так: сверху на ленту с рудой светит лазер с быстрой развёрткой (а-ля штрих-сканер в магазине ;) ). Если смотреть на эту лазерную полоску сбоку, то она примет вид уже не "полоски", а достаточно "мохнатой" кривой. Которую и нужно "смотреть" камерой. Согласны?

    А теперь главное.

    Если форму этой кривой проанализировать (да хоть БПФ для начала ;) ), то очевидно, что для мелкой фракции частота "зубчиков" лазерной кривой будет высокой. А амплитуда - нет. Для крупной фракции - частота низкой. Амплитуда - высокой. Это первый этап анализа.
    Если нужно выделять "артефакты" (единичные "булыганы"), т.е. те самые места на кривой, где амплитуда вдруг выросла, а частота снизилась, то придётся уже разбирать форму этой кривой. А как - МО, вейлетами, сегментацией и т.д. - ТОС в помощь, это не сложнее, того что Вы уже сделали ;)


    1. nemirovskiy_av Автор
      03.11.2022 14:46

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


  1. valmont2k
    03.11.2022 07:47

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

    Идеи, которые могут сработать:

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

    2) на камеру сонаправленно поставить зелёный лазер с рассеивающей линзой так, чтобы на пустом конвейере зайчик был во всю ширину конвейера, это позволит на финальной картинке для камеры по размеру этого зайчика передавать в систему данные о расстоянии до руды, что позволит нормировать размер прямо в ml. Решает проблему в два раза увеличенного объёма руды на ленте.

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


    1. nemirovskiy_av Автор
      03.11.2022 14:53

      1. На текущий момент побороли ложные срабатывания увеличением датасета в несколько раз.

      2. Для корректного расчета размера объектов как уже писали подготовили  тестовую/калибровочную линейку.

      3. Для данного варианта необходимо рассчитать экономическую составляющую, которая вероятнее всего будет отрицательной.


  1. Tarakanator
    03.11.2022 12:33

    А вы не пробовали искать кирпичи не по зрению а по силе удара при падении на конвеер (или куда там они сыпятся)?


    1. nemirovskiy_av Автор
      03.11.2022 14:58

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


  1. valmont2k
    03.11.2022 18:34

    Какая требуемая точность и какую вы получаете сейчас?