Ключевые слова: компьютерное зрение, подсчет объектов, видеоаналитика, детектор, фильтрация.
Подсчет типовых объектов на видеоизображении представляет нетривиальную задачу, для которой уже разработан ряд решений. Однако представленные подходы неприменимы для учета частиц в потоке жидкости, так как они предназначены для выполнения иных неаналогичных задач. В силу этих причин была разработана специальная методика и ПО, позволяющие произвести наиболее точный подсчет частиц в потоке.
Потребность в новом способе возникла в ходе проведения экспериментов с применением умных микроконтейнеров (УМК) – технологии, использующейся в ремонтно-изоляционных работах для устранения водопритоков в нефтяных скважинах и в качестве метода увеличения нефтеотдачи пласта (МУН) [14, 15]. Среда проведения эксперимента представляет собой прозрачную трубу с установленной на ее стенку магнитом; поток воды внутри трубы, в который погружают УМК, создается подключенным к системе насосом.
Суть изысканий состоит в определении количества проплывших и зафиксировавшихся на стенке трубы частиц (при разной мощности магнитного поля). Актуальность вопроса обеспечивается потребностью в предельно точном подсчете большого количества частиц, который невозможно обеспечить классическими способами.
Адаптивность способа обеспечивает вероятность его применения в различных производственных процессах нефтегазового комплекса при должной модернизации программного обеспечения.
Существующие методики
Принцип работы большинства существующих методов подсчета объектов возможно свести к трем этапам:
- Обнаружение объектов на кадрах видеопотока.
- Отслеживание объектов с целью сопоставления обнаружений разных кадров.
- Подсчет объектов, совершивших требуемое перемещение.
Для реализации первого шага возможно использовать как методы ИИ (искусственного интеллекта), так и классические методы цифровой обработки изображений и видео [1]. Примерами обнаружения объектов с помощью ИИ могут служить обнаружение объектов на фото [10] и отделение фона [9] для последующего выделения объектов. Наиболее распространенными методами обнаружения объектов на изображениях являются алгоритмы нахождения точек интереса corner detector, разработанный Shi и Tomasi и SIFT detector, разработанный Lowe, алгоритмы разделения модели гауссовой смеси [11, 12] и сегментации переднего плана на основе K-ближайших соседей [12], алгоритмы сегментации с использованием одного кадра, такие как пороговая обработка и кластеризация Meanshift [4].
Следующим шагом после обнаружения объектов является их отслеживание, для реализации которого возможно использовать множество методов, примеры которых приведены в [1], кроме этого, существуют более современные алгоритмы отслеживания [5, 6]. В рамках данной работы были рассмотрены наиболее популярные методы – плотный оптический поток, KFC, SORT, DeepSORT.
Стоит отметить, что существуют приложения, предназначенные для анализа видео, способные подсчитывать количество объектов на видео [2, 13].
Задачи обнаружения и отслеживания не были решены в общем виде, поэтому каждый из методов предназначен для решения определенной задачи и имеет свои преимущества и недостатки. Вследствие вышеперечисленных фактов, для решения задачи подсчета частиц требуется выбрать методы, преимущества и недостатки которых будут оптимальны для решения экспериментальной задачи.
А именно, из-за отсутствия размеченных данных необходимо использовать методы, не требующие обучения c учителем. Также проблемой является то, что на видео частицы представляют из себя темные объекты без определенной формы, поэтому использование алгоритмов нахождения точек интереса будет затруднительно. Обнаружение при помощи сегментации по одному кадру невозможно, так как задний план может содержать любые объекты и не являться однородным. В результате оптимальным является алгоритм вычитания фона. При этом стоит учесть, что для его корректной работы необходимо обеспечить постоянное освещение и неподвижность камеры, что возможно во время экспериментов.
Вычитание фона может позволить стабильно обнаруживать частицы, поэтому алгоритм отслеживания необходим только для задачи связи обнаружений частиц между кадрами и нет необходимости использовать сложные алгоритмы плотного оптического потока и KCF. Алгоритм SORT, основанный на фильтре Калмана может выполнить эту задачу, но движущие частицы могут перекрывать друг друга во время движения, в этом случае информация о них будет потеряна. Так что следует использовать алгоритм DeepSORT, который будет продолжать работу некоторое время, даже в случае если частица не обнаружена в кадре. Одной из возможностей алгоритма является возможность присвоения ранее полученного идентификационного номера объекту, который повторно обнаружен в кадре. Конечно, качественно выполнить данную задачу невозможно, так как внешний вид частиц является схожим, но этот недостаток не является критическим.
Для обнаружения объектов на видео используется алгоритм разделения модели гауссовой смеси [11, 12], перед которым применяется гауссовское сглаживание. Далее с целью отсеивания теней и шумов, закрытия небольших отверстий в маске переднего плана выполняется пороговая обработка (1), за которой следуют операции морфологического открытия (2) и закрытия (3). Затем выполняется операция преобразования дистанции и пороговая обработка (1) с пороговым значением, равным максимальному значению карты преобразования дистанции, умноженной на коэффициент . Под операцией преобразования дистанции понимается вычисление расстояния между каждым ненулевым пикселем и ближайшим нулевым. Последнее преобразование необходимо для разделения частиц, если они находятся близко друг к другу и на карте сегментации выделяются как один объект.
Где
– значение пикселя с координатами после преобразования;
– значение пикселя с координатами в исходном изображении;
– пороговое значение.
Где
– операция морфологической дилатации;
– операция морфологической эрозии;
А – бинарное изображение;
В – структурный элемент.