Алгоритмы Matlab для отслеживания простых объектов

У меня есть замедленная съемка движущихся клеток млекопитающих из клеточной культуры, и я пытаюсь разработать алгоритм отслеживания клеток с использованием Matlab. Я пытаюсь найти алгоритм, который прост и легок в реализации с малым временем обработки. Самое главное, я бы предпочел использовать алгоритм, который требует минимального математического понимания. До сих пор я обнаружил, что фильтр Калмана популярен для отслеживания движения, но я хотел бы узнать больше о различных доступных опциях для такого приложения. Любая динамическая информация или параметры, доступные на изображениях, ограничены: площадь, центроиды и т. Д.

Вот пример того, как может выглядеть типичное изображение (но с меньшим фоновым шумом, чем это конкретное изображение из Интернета

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

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

1 ответ

Решение

Традиционно сегментация была первым важным шагом к отслеживанию. Идея сегментации состоит в том, чтобы идентифицировать объекты, представляющие интерес. Эта задача обычно осложняется наличием шума на полученных изображениях. Таким образом, люди обычно применяют несколько фильтров снижения шума (например, размытие по Гауссу), чтобы максимально удалить шум и, следовательно, облегчить жизнь алгоритму сегментации.

Результирующее изображение после этапа сегментации является двоичным изображением. Ниже справа вы видите сегментированное изображение.

слева: исходное изображение, справа: сегментированное изображение

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

  • Мобильность и направление сотовой связи: линейная, случайная и т. Д.
  • Количество ячеек (иначе сложность алгоритма): как ваш алгоритм масштабируется с количеством ячеек
  • Осведомленность о делении клеток: может ли ваш трекер успешно отслеживать дочерние клетки после митоза.
  • Закрытие пробелов: может ли ваш трекер обрабатывать ячейки, которые входят / выходят из сцены

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

Я бы также посоветовал вам проверить плагины отслеживания ячеек Fiji/ImageJ после завершения сегментации.

Другие вопросы по тегам