Как мы бактерии измеряли

Всем привет! Мы компания Nord Clan, занимаемся разработкой ПО на основе технологий машинного зрения.
В этой статье мы хотим рассказать вам об одном интересном продукте, который мы разрабатывали для иностранного клиента, работающего в области лабораторной медицины.

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

Как мы бактерии измеряли

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

Благодаря таким замерам делается вывод об эффективности антибиотика (чем больше диаметр окружности) относительно микроорганизма.

Как мы бактерии измеряли

Таких чашек Петри может быть до 100 штук в день для одного лаборанта!

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

Приступаем к разработке

Срок разработки по запросу клиента должен был составить два месяца. Поэтому мы составили список фич, которые должны войти в MVP версию:

  • распознавание диаметра окружности
  • распознавание названия антибиотика по тексту на таблетке
  • калибровка изображения для точности измерений до 1 мм
  • распознавание при съемке с ракурсов от 90° до 80°

Разработка алгоритмов распознавания была направлена на достижение этих целей.

Мы начали с того, что стали изучать существующие технологии.

Задача 1. Распознавание окружности

Для начала мы стали анализировать готовые технологии. Мы моделировали распознавание кругов при помощи адаптивной бинаризации и выравнивания яркости изображения (т.е. преобразование в черно-белый вариант), преобразования Хафа (Hough Circle). Эти технологии не показали высоких результатов, т.к. круги низкоконтрастные и отделять пиксели круга от фона и различных шумов (тени, блики, посторонние объекты) сохраняя точность измерений практически невозможно. Нами также рассматривался вариант использования нейронной сети для обработки изображений. Но в данном случае, использование геометрических методов должно обеспечить большую точность поскольку форма объектов заранее известна.

После серии экспериментов мы разработали собственный метод определения окружностей. В нашем случае в центре круга находилась высококонтрастная таблетка, которую легко выделить, применяя технологию Blob Detector. Затем окружности выделялись с помощью анализа интенсивности градиентов изображения вокруг ее центра. Граница зоны задержки роста бактерии в области действия антибиотика находилась методом относительной высоты вершин (Topographic prominence).

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

Как мы бактерии измеряли

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

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

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

Разработка алгоритма и настройка параметров производилась на Python с использованием библиотеки Streamlit для упрощения визуализации и корректировки параметров. Но в последствии проверка качества распознавания показала, что время от загрузки изображения до выдачи результатов занимает от 5 до 10 секунд.

В итоговой версии алгоритмы были переписаны на C++ для увеличения скорости обработки и возможности использования под Андроид (React Native) c прослойкой на Java .

Сервер на С++ выдавал результаты значительно быстрее - 1 секунда.

Задача 2. Распознавание названия антибиотика по тексту на таблетке

Размеры текста на дисках с антибиотиками варьируются от 1,5 мм до 3 мм. В реальных условиях съемки разрешающих способностей камер смартфонов бывает недостаточно для однозначного распознавания. Дополнительным челленджем было хаотичное расположение таблеток, т.е. текст на них располагался и вверх ногами, и под разными углами.

Чтобы обеспечить точность распознавания мы сделали следующее:

  • Находим таблетку методом Blob Detector
  • Выравниваем цвет фона средним значением, чтобы уменьшить влияние шумов
  • Определяем область размещения текста
  • Выравниваем текст по горизонтали. Для этого мы определяем направление текста методом анализа интенсивности: идея в том, что буквы на таблетках сверху для большинства случаев больше, чем цифры.
  • Распознаем текст: мы использовали механизм распознавания текста Tesseract

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

Задача 3. Калибровка изображения для точности измерений до 1 мм и распознавание при съемке с ракурсов от 90° до 80°

С этими двумя условиями нам помог разобраться всего 1 лист бумаги.

Чтобы рассчитать диаметр окружностей нам нужна константа. Эту роль у нас выполняла подложка.

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

Известные входные параметры сделали также возможным нормализацию изображения при разных углах съемки.

Помимо этого подложка выполняет и другую важную функцию. Зачастую на чашках имеются посторонние надписи. Фон подложки помогает устранить из видимости посторонние шумы.

Мобильное приложение

Помните, в начале статьи мы зафиксировали, что вручную измерение диаметров и запись показателей занимает около 2 минут? Давайте посмотрим, как автоматизация улучшила эффективность.

После запуска приложения открывается камера. Пользователь фотографирует чашку Петри и буквально через секунду открывается экран с результатами: на фотографии выделены окружности с указанием диаметра и анаграммы антибиотиков.

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

Таким образом всего за один один клик за секунды собирается вся информация, которая передается в нужном формате в любую интегрируемую систему.

На видео вы может подробнее ознакомится с работой мобильного приложения:

55
2 комментария

Добрый день! Измерения программой как-то зависят от диаметра самой чашки? Что является эталоном? Если будет новый поставщик чашек с размерами, которые будут отличаться от текущих, - не повлияет ли этот факт на размерность получаемых данных?

1

Добрый день!
Размер чашки в данном случае не имеет существенного значения. В нашем алгоритме мы можем задать различные геометрические параметры: например, максимальный размер кругов (для оптимизации) или размер подложки.
Ограничения заключаются только в том, что при увеличении размера наблюдаемой области мелкие детали сложнее обнаружить, поскольку их размер в пикселях становится меньше, что особенно существенно для надписей на таблетках.
Если требуется распознавать тип таблетки в таком случае, то может потребоваться установка отдельной камеры или использование смартфона с качественной камерой

1
В Москве начнут развивать новую сеть магазинов у дома «Фуд сити экспресс» — «Ведомости»

Её запустили на базе продовольственного комплекса «Фуд сити».

Фото «Ведомости» 
1212
77
11
11
11
"Фуд сити экспресс" Борьба с заимствованиями и чистотой языка где? ))
реклама
разместить
«Теневой» прокат зарубежных новинок принёс российским кинотеатрам 4,3 млрд рублей в 2024 году

Против 4,8 млрд рублей в 2023 году.

Кадр из фильма «Дэдпул и Россомаха», 2024 год
88
33
22
11
Почему он теневой? Это чистой воды пиратство с целью наживы. Таким Макаром я могу поставить теневую копию софта на комп....
Российские экспортёры столкнулись со сложностями при возврате валютной выручки в страну

Проблемы усугубились после ноября 2024 года, когда Минфин США ввёл санкции против нескольких десятков финансовых компаний.

Источник фото: «Портал малого и среднего предпринимательства Республики Саха»
1111
55
11
11
11
11
11
Что за вранье опять. Президент твердо и четко сказал: санкции нам на пользу.
Какие функции ИИ-монтажёра Director могут сэкономить время при работе с видео

Нейросеть вырезает и склеивает фрагменты, накладывает субтитры, делает дубляж и цензурирует мат.

66
11
Как я открыл и продал самую крупную сеть настольных игр в России

Мы открыли 79 магазинов, на нас работало 300 человек, а на пике оборот магазинов составил 700 млн рублей. За 10 лет я видел миллионы прибыли, долги в 150 млн ₽, обороты в 700 млн в год, скандалы с правообладателями и кризисы.

Мосигра
6565
99
11
11
#H2 Автоматизация маркетинга: как мы собрали более 300.000 просмотров для нашей инди-игры

Привет, меня зовут Лев, я владелец студии разработки Keyron. Сегодня я расскажу о том, как мне удалось продумать стратегию взаимодействия с лидом. В данном контексте моим лидом являлся ютюбер с большой(ну или малой) аудиторией.

#H2 Автоматизация маркетинга: как мы собрали более 300.000 просмотров для нашей инди-игры
2626
44
22
11
11
11
Президентство Дональда Тампа может дать иностранным компаниям «повод задержаться в России» — Reuters

Но может сработать и наоборот — компании чаще станут уходить из страны.

Источник: Reuters
77
22
11
11
С 1 января любой гражданин РФ может получить цифровую профессию бесплатно. Для участия достаточно заполнить анкету и пройти тест.
С 1 января любой гражданин РФ может получить цифровую профессию бесплатно. Для участия достаточно заполнить анкету и пройти тест.
22
22
[]