УДК 681.5
В. Э. Прукс
ПРИМЕР СИСТЕМЫ ТЕХНИЧЕСКОГО ЗРЕНИЯ НА ОСНОВЕ НЕЙРОСЕТЕВОГО КЛАССИФИКАТОРА
Рассмотрен метод автоматического анализа микроскопических изображений для обнаружения и классификации клеток крови. Описан алгоритм обнаружения клеток на изображении. Для классификации клеток применяется глубокая нейронная сеть с логистической регрессией в выходном слое.
The method of automatic analysis of images made with microscope for detection and classification of blood cells is proposed. The algorithm of cell detection on the image is described. Deep neural network with logistic regression layer as an output layer is used to classify images of blood cells.
Ключевые слова: система технического зрения, искусственный интеллект, нейронная сеть, распознавание образов, обнаружение объектов, подсчет клеточности.
Key words: computer vision system, artificial intelligence, neural network, image recognition, object detection, cell counting.
Введение
В рамках общеклинического исследования крови достаточно важную роль играет задача подсчета количества эритроцитов в крови (RBC) — это один из наиболее важных показателей системы крови [1]. Изменение количества эритроцитов является признаком некоторых заболеваний. Также величина параметра RBC применяется при вычислении других параметров гематологического анализа крови, как средний корпускулярный объем (MCV), среднее содержание гемоглобина в эритроците (MCH) и так далее.
Параметр RBC можно оценивать с применением автоматических гематологических анализаторов, однако в некоторых случаях подсчет лейкоцитов производится с использованием микроскопа и камеры Горяева. Этот метод требует гораздо более дешевого оборудования, чем в случае гематологического анализатора, и при этом возможно достичь более высокой точности результатов анализа.
Было предложено ускорить и упростить процесс подсчета клеточности крови благодаря применению системы технического зрения. На вход системе зрения подается изображение с микроскопа, далее на изображении выделяются клетки и классифицируются нейронной сетью, что обеспечивает возможность быстрого и достаточно точного подсчета количества клеток эритроцитов в крови, при этом с высокой точностью оцениваются размеры клеток.
1. Предварительная обработка изображения
Для получения снимков с микроскопа используются фотоаппарат и переходная насадка для присоединения фотоаппарата к микроскопу. Полученные снимки сначала предварительно обрабатываются, в резуль-
99
Вестник Балтийского федерального университета им. И. Канта. 2012. Вып. 10. С. 99 — 103.
100
тате чего выполняется сегментация входного изображения [2]. Сегментами изображения становятся всевозможные неоднородности на общем зрительном поле. Таким образом, удается выделить практически все клетки на изображении в виде отдельных картинок. Полученный набор картинок далее подается на вход нейросетевого классификатора, который расставляет метки в соответствии с типом клетки. На изображении могут попадаться лейкоциты, тромбоциты, эритроциты и случайные частицы.
Алгоритм сегментации:
1. Сглаживание изображения алгоритмом билатерального фильтрования [2].
2. Преобразование входного изображения в полутоновое.
3. Бинаризация изображения с использованием адаптивного порога по среднему на заданной квадратной области [3].
4. Морфологическая эрозия и расширение для сглаживания полученных пятен на бинарном изображении.
5. Обнаружение контуров пятен.
6. Построение объемлющих окружностей вокруг обнаруженных контуров. Поскольку обнаруживаемые на изображении объекты имеют приблизительно круглую форму, то данный способ достаточно эффективен для рассматриваемой задачи.
7. Объединение перекрывающихся контуров. Иногда в результате предыдущих шагов на месте клетки получается несколько пятен с индивидуальными контурами.
Данный шаг позволяет объединить эти фрагменты в общий контур. Для обнаружения перекрытий все объемлющие окружности помещаются в граф, вершинами которых являются центры окружностей, а дугами — расстояния между окружностями. Если расстояние между двумя окружностями не превышает 90 % от суммы радиусов, то данные окружности содержат в себе контуры одной и той же клетки, поэтому контуры, находящиеся внутри пересекающихся кругов, объединяются в общий контур. Строится объемлющая окружность вокруг объединенных контуров.
8. С помощью выщеленных окружностей исходное изображение делится на множество квадратных изображений. Центры квадратов совпадают с центрами окружностей, стороны квадратов имеют длиной удвоенный радиус окружностей.
Выходом данного алгоритма является множество изображений частиц, выщеленных на исходном изображении, которые сначала масштабируются на квадраты размером 32 х 32 пикселя, далее подвергаются классификации нейронной сетью.
2. Нейросетевой классификатор
Обучающее множество строится путем расстановки меток изображениям клеток вручную. Полученный набор разбивается в заданном соотношении на множества обучения, валидации и тестирования [4].
Классификация изображений частиц, выщеленных на фотографии раствора, вышолняется многослойным персептроном глубокой архитектуры [5].
Введем следующие обозначения. Пусть Ь — количество слоев в нейронной сети, Ьк — выходной вектор к-го слоя, к = 0, 1, 2, ..., Ь, причем Ь0 = х — входной вектор, а - выход нейронной сети, Ьк — вектор смещений к-го слоя; Wk — матрица весов соединений к-го и к-1-го слоя, к = 1, 2, ..., Ь. Обозначим количество нейронов в каждом из слоев пк. Теперь можно описать архитектуру нейронной сети следующим образом.
Функция активации скрытых слоев — это гиперболический тангенс
Функция активации выходного слоя — логистическая регрессия
= Р(у = г I , Ьь) = 80£1тах, (Ьь + ) = _еХР(Ь(Ь' + +^'Ььь1,‘} ) ,
_; еХР(ЬЬ,I + 1,I )
где У - номер предполагаемой категории, г = 0, ..., пь; пь — количество категорий для распознавания (количество нейронов выходного слоя). При этом выход нейронной сети — наиболее вероятная категория
Использовался алгоритм обратного распространения ошибки.
Также обучающее множество разбивается на мини-пакеты, которые составляют от 2 до 20 обучающих примеров каждый [5].
После обучения нейросети на вход автоматическому классификатору подается изображение, прошедшее все этапы предварительной обработки, после чего нейросеть автоматически расставляет метки.
Входными изображениями для автоматического классификатора являются фотографии раствора крови, сделанные с помощью микроскопа. В экспериментах было использовано две такие фотографии: одна — для построения обучающего множества (рис. 1, а), другая — для тестирования алгоритма распознавания (рис. 1, б).
Ь к = Л(Ъ к + Wk Ь к-1), к = 1, 2, Ь.
Ургесі = агб “ах, Р(У = , \ Ьь-1, Щ, Ъь ).
Веса инициализируются случайными величинами из отрезка
3. Эксперименты
а
б
Рис. 1. Фотографии растворов крови: а — используемая для построения обучающего множества; б — используемая для тестирования нейросетевого классификатора
Результаты автоматической классификации сравнивались с ручной классификацией. На первом изображении были выделены клетки, а метки расставлены вручную (рис. 2).
102
Рис. 2. Фрагмент входного изображения с метками, расставленными вручную. Окружностью обведены лейкоциты, квадратами — прочие клетки
После этого изображения клеток, обнаруженных на фотографии, были собраны в обучающее множество (рис. 3).
а б
Рис. 3. Пример изображений из обучающей выборки: а — лейкоциты; б — прочие клетки
Наконец, на вход автоматического классификатора подавалось другое изображение раствора с кровью, в котором метки расставляла обученная нейросеть (рис. 4). Поскольку первостепенной задачей, поставленной перед автоматической системой подсчета клеточности крови, стал подсчет количества эритроцитов, то всем элементам изображения присваивались метки: 1 — эритроцит, 0 — неэритроцит.
Параметры нейронной сети: 5 слоев, размеры входного слоя 1024 (поскольку входные изображения имеют размер 32 * 32 пикселя). Все скрыггые слои содержат 1024 нейрона. Использован алгоритм обратного распространения ошибки, в процессе которого минимизируется критерий обратного логарифмического правдоподобия.
Результаты обучения следующие. Входное изображение (рис. 1, а) разбито на 1124 объектов интереса. Входная выборка состояла из 562 обучающих примеров, поделенных на мини-группы по 2 примера; вся обучающая выборка была разбита на множества обучения, валидации и тестирования в соотношении 80 %/10 %/10 %. За пять эпох достигнута ошибка валидации 2,85 % при ошибке тестирования 5,00 %.
Рис. 4. Фрагмент фотографии раствора крови с метками, расставленными нейросетевым классификатором. Окружностью обведены лейкоциты, квадратами — прочие клетки
Автоматическая классификация клеток на изображении (рис. 1, б) дала ошибку 69,8 % в сравнении с классификацией вручную. Это достаточно неплохой результат, если учитывать, что два рассматриваемых входных изображения сделаны для разных растворов, а для обучения нейронной сети использовалось достаточно маленькое обучающее множество.
Результатом работы стал алгоритм сегментации фотографий раствора крови, на котором автоматически выделяются клетки. Обнаруженные клетки возможно классифицировать вручную, чтобы построить обучающее множество нейронной сети. Нейронная сеть представляет собой сеть глубокой архитектуры, содержащей пять скрытых слоев и выходной слой, выполненный в виде вероятностного классификатора — логистической регрессии. Обученная нейронная сеть способна классифицировать изображения клеток для дальнейшего определения параметров раствора крови.
Список литературы
1. Назаренко Г. И., Кишкун А. А. Клиническая оценка результатов лабораторных исследований. М., 2005.
2. Szeliski R. Computer Vision: Algorithms and Applications. London: Springer-Verlag, 2011.
3. Bradsky G., Kaehler A. Learning OpenCV: Computer Vision with the OpenCV Library. CA: O'Reilly Media, Inc., 2009.
4. Хайкин С. Нейронные сети : полный курс. М., 2006.
5. Yoshua Bengio. Learning deep architectures for AI, foundations and trends® in machine learning. 2009. Vol. 2, №. 1. P. 1—127.
Об авторе
Виталий Эдуардович Прукс — асп., Балтийский федеральный университет им. И. Канта, [email protected].
Author
Vitaliy Prooks — PhD student, I. Kant Baltic Federal University.
E-mail: [email protected].