Аналіз флуоресцентного біомаркера сітківки за допомогою ШІ
У співпраці з компанією Novai наші програмісти застосували методи машинного навчання та техніки аналізу зображень у клінічній офтальмології. Тут ми зосередилися на виявленні захворювання сітківки на клітинному рівні, використовуючи зображення з низькою роздільною здатністю. Це завдання було успішно виконано завдяки професійному підходу та тісній співпраці між командами.
Завдання
Клінічна офтальмологія є однією з багатьох областей, де методи діагностики, які пов'язані із зображеннями, формують уявлення про захворювання очей, використовуючи медичні набори даних. Машинне Навчання (МН) досягло великого успіху у вирішенні багатьох завдань візуального та слухового розпізнавання.
МН дозволяє проводити комплексний, швидкий та неінвазивний аналіз цифрових даних. У сфері медичної візуалізації використовуються постійно зростаюча обчислювальна потужність і хмарне сховище, а також нові алгоритми та методи генерації даних. Зростаючий потенціал МН для виявлення, класифікації, ідентифікації та перевірки специфічних особливостей при захворюванні очей дозволить практикам надавати допомогу з високоінтелектуальними інструментами та високоякісною діагностикою, а також буде додатково вдосконалювати персоналізовані послуги охорони здоров'я. Застосування методів ШІ для виконання медичних завдань дозволяє забезпечити безпеку даних та їх ефективне використання. Опрацювання медичних зображень за допомогою ШІ довело свою ефективність для багатьох сфер, де традиційні методи діагностики сильно залежать від досвіду та знань лікарів, які не можна легко обчислити чи виміряти.
Наш партнер — Novai, британський біотехнологічний стартап, який розробив технологію DARC (Detection of Apoptosing Retinal Cells — виявлення апоптозу в клітинах сітківки). Вона поєднує в собі інноваційний запатентований біологічний препарат із найдосконалішим алгоритмом штучного інтелекту для визначення активності захворювання на клітинному рівні.
Основним завданням було класифікувати біомаркери, характерні для захворювань очей (глаукоми), на знімках очей пацієнтів з різною роздільною здатністю.
Огляд рішення
Основна проблема діагностики глаукоми на різних стадіях прогресування хвороби може бути ефективно зведена до мінімуму за допомогою виявлення специфічних біомаркерів на фотографіях сітківки ока пацієнта. Такий підхід також має додаткову користь у вигляді збільшення точок даних для тренування методів класифікації МН, оскільки кількість маркерів (плям) набагато більша, ніж кількість зображень очей.
Високорівневий конвеєр для вирішення питання включав кілька етапів:
- перевірка і очищення даних
- реєстрація зображення
- пошук ймовірних плям
- фільтрування знайдених плям
- бінарна класифікація плям
Технічні деталі
Першим етапом була перевірка на коректність відомостей, наданих партнерами, усунення дублікатів, з'ясування узгодженості даних. Одні й ті самі зображення були розмічені кількома експертами, унаслідок чого нерідко на різних версіях розміченого зображення були відзначені різні дефекти ока (видимі плями, що є маркерами захворювання ока). Для цього ми використовували бібліотеку SimpleITK - Insight Segmentation and Registration Toolkit (інтерфейс якої дозволяє виконувати робочі процеси аналізу зображень з більшістю фільтрів для обробки зображень і зручним синтаксисом). Ця бібліотека добре зарекомендувала себе для аналізу медичних зображень. Багато дослідних лабораторій включають SimpleITK як ключовий будівельний блок, оскільки він забезпечує широкий вибір компонентів для фільтрації зображень і для введення-виведення зображень зі зручним інтерфейсом.
У нашому технологічному процесі - пайплайні - спочатку запускається python скрипт, який формує об'єкт, з яким далі працює програма, виділяючи потрібні компоненти. На першому етапі проводиться перше афінне перетворення з вирівнюванням геометричних центрів двох зображень та побудови реєстраційного екземпляра.
Далі встановлюється тип метрики та маска. Оптимізатор використовує метод градієнтного спуску. Після закінчення роботи оптимізатора формується результат роботи та передається на друге BSpline-перетворення, яке виконується аналогічно афінному.
Після цього дані відправляються в CNN архітектуру, реалізовану на фреймворку pytorch, для підрахунку кількості плям.
Нижче представлена архітектура CNN з 5521 параметрами: