Навіть після більш ніж ста років після свого впровадження гістологія залишається золотим стандартом у діагностиці та прогнозі пухлин. Анатомічні патологи оцінюють гістологію, щоб розділити онкологічних пацієнтів на різні групи залежно від їх генотипу та фенотипу пухлини та їхнього клінічного результату [1,2]. Однак оцінка гістологічних препаратів людиною є суб’єктивною та не повторюваною [3]. Крім того, гістологічне дослідження є трудомістким процесом, який вимагає висококваліфікованих фахівців.
Завдяки значному технологічному прогресу за останнє десятиліття такі методи, як зображення цілого слайда (WSI) і глибоке навчання (DL), тепер широко доступні. WSI — це сканування звичайних мікроскопічних предметних стекол для отримання єдиного зображення високої роздільної здатності з цих предметних стекол. Це дозволяє оцифровувати та збирати великі набори зображень патології, що було б надзвичайно трудомістким і дорогим. Доступність таких наборів даних створює нові та інноваційні способи прискорення діагностики за допомогою таких методів, як машинне навчання (ML), щоб допомогти патологам пришвидшити діагностику шляхом швидкого визначення цікавих особливостей.
У цій публікації ми розглянемо, як можуть використовувати розробники без попереднього досвіду ML Спеціальні етикетки Amazon Rekogmination навчити модель, яка класифікує клітинні ознаки. Спеціальні мітки Amazon Rekognition є функцією Amazon Rekognition що дає вам змогу створювати власні спеціалізовані можливості аналізу зображень на основі ML для виявлення унікальних об’єктів і сцен, невід’ємних для вашого конкретного випадку використання. Зокрема, ми використовуємо набір даних, що містить цілі зображення слайдів карциноми молочної залози собак [1], щоб продемонструвати, як обробляти ці зображення та навчати модель, яка виявляє мітотичні фігури. Цей набір даних використовувався з дозволу професора, доктора Марка Обревіля, який люб’язно погодився дозволити нам використовувати його для цієї публікації. Для отримання додаткової інформації перегляньте розділ Подяки в кінці цієї публікації.
Огляд рішення
Розчин складається з двох компонентів:
- Модель спеціальних міток Amazon Rekognition — Щоб увімкнути Amazon Rekognition для виявлення мітотичних фігур, ми виконуємо наступні кроки:
- Зробіть вибірку набору даних WSI, щоб створити зображення відповідного розміру Студія Amazon SageMaker і код Python, що працює на ноутбуці Jupyter. Studio — це веб-інтегроване середовище розробки (IDE) для машинного навчання, яке надає всі інструменти, необхідні для перенесення моделей від експериментів до виробництва, одночасно підвищуючи вашу продуктивність. Ми будемо використовувати Studio, щоб розділити зображення на менші для навчання нашої моделі.
- Навчіть модель Amazon Rekognition Custom Labels розпізнавати мітотичні фігури в зразках гематоксилін-еозину за допомогою даних, підготовлених на попередньому кроці.
- Інтерфейсний додаток — Щоб продемонструвати, як використовувати модель, схожу на ту, яку ми навчали на попередньому кроці, ми виконуємо наступні кроки:
Наступна діаграма ілюструє архітектуру рішення.
Усі необхідні ресурси для розгортання реалізації, обговорюваної в цій публікації, і код для всього розділу доступні на GitHub. Ви можете клонувати або розгалужувати репозиторій, вносити будь-які зміни та запускати його самостійно.
У наступних кроках ми пройдемося по коду, щоб зрозуміти різні кроки, пов’язані з отриманням і підготовкою даних, навчанням моделі та її використанням із зразка програми.
витрати
Під час виконання кроків у цьому покроковому керівництві ви несете невеликі витрати від використання таких служб AWS:
- Amazon Rekognition
- AWS Fargate
- Балансувальник навантаження програми
- Менеджер секретів AWS
Крім того, якщо період або умови безкоштовного рівня більше не діють, ви можете нести витрати за такі послуги:
- CodePipeline
- CodeBuild
- Amazon ECR
- Amazon SageMaker
Якщо ви правильно виконаєте кроки очищення після завершення цього покрокового керівництва, ви можете очікувати, що витрати становитимуть менше 10 доларів США, якщо модель Amazon Rekognition Custom Labels і веб-програма працюватимуть одну годину або менше.
Передумови
Щоб виконати всі кроки, потрібно:
Навчання моделі класифікації мітотичної фігури
Ми виконуємо всі кроки, необхідні для навчання моделі, із блокнота Studio. Якщо ви ніколи раніше не користувалися Studio, можливо, вам знадобиться на борту перший. Для отримання додаткової інформації див Швидко перейдіть до Amazon SageMaker Studio.
Для виконання деяких із наведених нижче кроків потрібно більше оперативної пам’яті, ніж доступно в стандартному ноутбуці ml.t3.medium. Переконайтеся, що ви вибрали блокнот ml.m5.large. Ви повинні побачити позначку 2 vCPU + 8 GiB у верхньому правому куті сторінки.
Код для цього розділу доступний як a Файл зошита Юпітера.
Після входу в Студію слідуйте ці інструкції щоб надати Studio необхідні дозволи для виклику Amazon Rekognition від вашого імені.
Залежності
Для початку нам потрібно виконати наступні кроки:
- Оновіть пакети Linux і встановіть необхідні залежності, наприклад OpenSlide:
- Встановіть бібліотеки fastai та SlideRunner за допомогою pip:
- Завантажте набір даних (ми надаємо сценарій, щоб зробити це автоматично):
Обробити набір даних
Ми почнемо з імпорту деяких пакетів, які ми використовуємо на етапі підготовки даних. Потім ми завантажуємо базу даних анотацій для цього набору даних. Ця база даних містить позиції мітотичних фігур (об’єктів, які ми хочемо класифікувати) на повних зображеннях слайдів. Перегляньте наступний код:
Оскільки ми використовуємо SageMaker, ми створюємо новий SageMaker Сесія об’єкт, щоб полегшити такі завдання, як завантаження нашого набору даних до Служба простого зберігання Amazon (Amazon S3) відро. Ми також використовуємо відро S3, яке SageMaker створює за замовчуванням, щоб завантажувати оброблені файли зображень.
Команда slidelist_test
Масив містить ідентифікатори слайдів, які ми використовуємо як частину тестового набору даних для оцінки продуктивності навченої моделі. Перегляньте наступний код:
Наступним кроком є отримання набору областей навчання та тестових слайдів разом із мітками в них, з яких ми можемо взяти менші області для використання для навчання нашої моделі. Код для get_slides знаходиться у файлі sampling.py GitHub.
Ми хочемо взяти випадкову вибірку з навчальних і тестових слайдів. Ми використовуємо списки навчальних і тестових слайдів і вибираємо випадковим чином n_training_images
раз файл для навчання, і n_test_images
раз файл для перевірки:
Далі ми створюємо каталог для навчальних зображень і один для тестових зображень:
Перш ніж створювати зображення меншого розміру, необхідні для навчання моделі, нам потрібен допоміжний код, який створює метадані, необхідні для опису даних навчання та тестування. Наступний код гарантує, що задана обмежувальна рамка, яка оточує цікаві елементи (мітотичні фігури), знаходиться в межах зони, яку ми вирізаємо, і створює рядок JSON, який описує зображення та елементи в ньому в Основна правда Amazon SageMaker Формат, який вимагає Amazon Rekognition Custom Labels. Щоб отримати додаткові відомості про цей файл маніфесту для виявлення об’єктів, див Локалізація об’єктів у файлах маніфесту.
З generate_annotations
на місці, ми можемо написати код для створення навчальних і тестових зображень:
Останнім кроком до отримання всіх необхідних даних є написання a manifest.json
файл для кожного з наборів даних:
Передайте файли на S3
Ми використовуємо upload_data
метод, який надає об’єкт сеансу SageMaker для завантаження зображень і файлів маніфесту до стандартного сегмента SageMaker S3:
Навчання моделі спеціальних міток Amazon Rekognition
З даними, які вже є в Amazon S3, ми можемо перейти до навчання спеціальної моделі. Ми використовуємо бібліотеку Boto3 для створення клієнта Amazon Rekognition і створення проекту:
Коли проект готовий до використання, тепер вам потрібна версія проекту, яка вказує на навчальні та тестові набори даних в Amazon S3. Кожна версія ідеально вказує на різні набори даних (або різні їх версії). Це дає нам змогу мати різні версії моделі, порівнювати їх продуктивність і за потреби перемикатися між ними. Перегляньте наступний код:
Після створення версії проекту Amazon Rekognition автоматично починає процес навчання. Час навчання залежить від кількох особливостей, таких як розмір та кількість зображень, кількість занять тощо. У цьому випадку для 500 зображень навчання займає приблизно 90 хвилин.
Випробуйте модель
Після навчання кожна модель у Amazon Rekognition Custom Labels знаходиться в STOPPED
стан. Щоб використовувати його для висновків, його потрібно запустити. Ми отримуємо ARN версії проекту з опису версії проекту та передаємо її до start_project_version
. Зауважте MinInferenceUnits
параметр — ми починаємо з однієї одиниці висновку. Фактична максимальна кількість транзакцій за секунду (TPS), яку підтримує цей блок виведення, залежить від складності вашої моделі. Щоб дізнатися більше про TPS, зверніться до цього блог.
Коли версія вашого проекту вказана як RUNNING
, ви можете почати надсилати зображення до Amazon Rekognition для висновку.
Ми використовуємо один із файлів у тестовому наборі даних, щоб перевірити щойно запущену модель. Замість цього можна використовувати будь-який відповідний файл PNG або JPEG.
Додаток Streamlit
Щоб продемонструвати інтеграцію з Amazon Rekognition, ми використовуємо дуже просту програму Python. Ми використовуємо Стрітліт бібліотеку для створення спартанського інтерфейсу користувача, де ми пропонуємо користувачеві завантажити файл зображення.
Ми використовуємо бібліотеку Boto3 і detect_custom_labels
разом із версією проекту ARN для виклику кінцевої точки висновку. Відповідь – це документ JSON, який містить позиції та класи різних об’єктів, виявлених на зображенні. У нашому випадку це мітотичні фігури, які алгоритм знайшов на зображенні, яке ми надіслали до кінцевої точки. Перегляньте наступний код:
Розгорніть додаток на AWS
Для розгортання програми ми використовуємо сценарій AWS CDK. Весь проект можна знайти на GitHub . Давайте розглянемо різні ресурси, які використовує сценарій.
Створіть репозиторій Amazon ECR
Як перший крок до налаштування нашого розгортання ми створюємо репозиторій Amazon ECR, де ми можемо зберігати зображення контейнерів наших програм:
Створіть і збережіть свій токен GitHub в AWS Secrets Manager
CodePipeline потрібен особистий маркер доступу GitHub, щоб відстежувати зміни в сховищі GitHub і витягувати код. Щоб створити маркер, дотримуйтесь інструкцій у Документація GitHub. Для маркера потрібні такі області GitHub:
- Команда
repo
scope, який використовується для повного контролю для читання та отримання артефактів із загальнодоступних і приватних сховищ у конвеєр. - Команда
admin:repo_hook
область, яка використовується для повного контролю хуків сховища.
Після створення маркера збережіть його в новому секреті в Менеджер секретів AWS наступним чином:
Записати параметри конфігурації в сховище параметрів AWS Systems Manager
Сценарій AWS CDK читає деякі параметри конфігурації з Зберігання параметрів AWS Systems Manager, як-от ім’я та власник сховища GitHub, а також цільовий обліковий запис і регіон. Перед запуском сценарію AWS CDK вам потрібно створити ці параметри у своєму обліковому записі.
Ви можете зробити це за допомогою AWS CLI. Просто викликайте put-parameter
команда з назвою, значенням і типом параметра:
Нижче наведено список усіх параметрів, необхідних для сценарію AWS CDK. Усі вони типу String
:
- /rek_wsi/prod/accountId — ідентифікатор облікового запису, у якому ми розгортаємо програму.
- /rek_wsi/prod/ecr_repo_name — назва репозиторію Amazon ECR, де зберігаються зображення контейнерів.
- /rek_wsi/prod/github/branch — гілка в репозиторії GitHub, з якої CodePipeline потрібно отримати код.
- /rek_wsi/prod/github/owner — власник сховища GitHub.
- /rek_wsi/prod/github/repo — назва репозиторію GitHub, де зберігається наш код.
- /rek_wsi/prod/github/token — ім’я або ARN секрету в диспетчері секретів, який містить ваш маркер автентифікації GitHub. Це необхідно для того, щоб CodePipeline міг спілкуватися з GitHub.
- /rek_wsi/prod/region — Регіон, де ми будемо розгортати додаток.
Зверніть увагу на prod
сегмент у всіх назвах параметрів. Хоча нам не потрібен такий рівень деталізації для такого простого прикладу, він дозволить повторно використовувати цей підхід в інших проектах, де можуть знадобитися інші середовища.
Ресурси, створені за допомогою сценарію AWS CDK
Нам потрібно, щоб наша програма, що працює в задачі Fargate, мала дозвіл на виклик Amazon Rekognition. Отже, ми спочатку створюємо Управління ідентифікацією та доступом AWS (IAM) Завдання Роль з RekognitionReadOnlyPolicy
політики, що додається до нього. Зауважте, що assumed_by
параметр у наступному коді приймає ecs-tasks.amazonaws.com
керівник служби. Це пояснюється тим, що ми використовуємо Amazon ECS як оркестратора, тому нам потрібно, щоб Amazon ECS узяв на себе цю роль і передав облікові дані завданням Fargate.
Після створення наш образ контейнера програми зберігається в приватному репозиторії Amazon ECR. Нам потрібен об’єкт, який його описує, який ми можемо передати під час створення служби Fargate:
Ми створюємо новий VPC і кластер для цієї програми. Ви можете змінити цю частину, щоб використовувати власний VPC за допомогою from_lookup
метод Vpc
клас:
Тепер, коли у нас є VPC і кластер для розгортання, ми створюємо службу Fargate. Для цього завдання ми використовуємо 0.25 vCPU і 512 МБ оперативної пам’яті, а перед ним розміщуємо загальнодоступний балансувальник навантаження додатків (ALB). Після розгортання ми використовуємо ALB CNAME для доступу до програми. Перегляньте наступний код:
Щоб автоматично створювати та розгортати новий образ контейнера кожного разу, коли ми надсилаємо код до нашої головної гілки, ми створюємо простий конвеєр, що складається з вихідної дії GitHub і кроку збірки. Тут ми використовуємо секрети, збережені в AWS Secrets Manager і AWS Systems Manager Parameter Store на попередніх кроках.
CodeBuild потребує дозволів, щоб надсилати зображення контейнерів до Amazon ECR. Щоб надати ці дозволи, ми додаємо AmazonEC2ContainerRegistryFullAccess
політики для індивідуальної ролі IAM, яку може прийняти принципал служби CodeBuild:
Проект CodeBuild входить до приватного репозиторію Amazon ECR, створює образ Docker за допомогою програми Streamlit і надсилає зображення до репозиторію разом із appspec.yaml
і imagedefinitions.json
файлу.
Команда appspec.yaml
файл описує завдання (порт, версія платформи Fargate тощо), тоді як файл imagedefinitions.json
файл зіставляє назви зображень контейнерів із відповідними Amazon ECR URI. Перегляньте наступний код:
Нарешті, ми об’єднуємо різні етапи конвеєра. Остання дія - це EcsDeployAction
, який бере образ контейнера, створений на попередньому етапі, і виконує поточне оновлення завдань у нашому кластері ECS:
Прибирати
Щоб уникнути майбутніх витрат, очистіть ресурси, створені в рамках цього рішення.
Модель спеціальних міток Amazon Rekognition
Перш ніж вимкнути ноутбук Studio, переконайтеся, що ви зупинили модель спеціальних міток Amazon Rekognition. Якщо ви цього не зробите, це продовжує спричиняти витрати.
Крім того, ви можете скористатися консоллю Amazon Rekognition, щоб зупинити службу:
- На консолі Amazon Rekognition виберіть Використовуйте спеціальні мітки у навігаційній панелі.
- Вибирати Завдання у навігаційній панелі.
- Виберіть версію 1
rek-mitotic-figures-workshop
Проект. - на Використовуйте модель вкладку, виберіть Стоп.
Додаток Streamlit
Щоб знищити всі ресурси, пов’язані з програмою Streamlit, запустіть наступний код із каталогу програм AWS CDK:
Менеджер секретів AWS
Щоб видалити маркер GitHub, виконайте вказівки в документація.
Висновок
У цій публікації ми розповіли про необхідні кроки для навчання моделі користувацьких міток Amazon Rekognition для програми цифрової патології з використанням реальних даних. Потім ми навчилися використовувати цю модель із простої програми, розгорнутої з конвеєра CI/CD у Fargate.
Спеціальні мітки Amazon Rekognition дозволяють створювати програми охорони здоров’я з підтримкою ML, які можна легко створювати та розгортати за допомогою таких служб, як Fargate, CodeBuild і CodePipeline.
Чи можете ви згадати якісь програми, які допоможуть дослідникам, лікарям або їхнім пацієнтам полегшити собі життя? Якщо так, використовуйте код із цього покрокового керівництва, щоб створити свою наступну програму. А якщо у вас виникли запитання, поділіться ними в коментарях.
Подяки
Ми хотіли б подякувати професору, доктору Марку Обревілю за люб’язний дозвіл на використання набору даних MITOS_WSI_CMC для цієї публікації в блозі. Набір даних можна знайти на GitHub.
посилання
[1] Aubreville, M., Bertram, CA, Donovan, TA та ін. Повністю анотований цілий набір зображень слайдів раку молочної залози собак для допомоги в дослідженні раку молочної залози людини. Sci Data 7, 417 (2020). https://doi.org/10.1038/s41597-020-00756-z
[2] Хенед, М., Корі, А., Раджкумар, Х. та інші Узагальнена структура глибокого навчання для сегментації та аналізу зображень цілого слайда. Sci Rep 11, 11579 (2021). https://doi.org/10.1038/s41598-021-90444-8
[3] PNAS 27 березня 2018 р. 115 (13) E2970-E2979; вперше опубліковано 12 березня 2018 р.; https://doi.org/10.1073/pnas.1717139115
Про автора
Пабло Нуньєс Пьольхер, Магістр наук, є старшим архітектором рішень, який працює в команді державного сектору Amazon Web Services. Пабло зосереджується на допомозі клієнтам державного сектора охорони здоров’я створювати нові інноваційні продукти на AWS відповідно до найкращих практик. Він отримав ступінь магістра наук. доктор біологічних наук з Університету Буенос-Айреса. У вільний час він любить їздити на велосипеді та майструвати вбудовані пристрої з підтримкою ML.
Разван Йонасек, PhD, MBA, є технічним керівником відділу охорони здоров’я Amazon Web Services у Європі, на Близькому Сході та в Африці. Його робота зосереджена на допомозі клієнтам охорони здоров’я вирішувати бізнес-проблеми за допомогою технологій. Раніше Разван очолював відділ продуктів штучного інтелекту (ШІ) у Siemens Healthineers і відповідав за AI-Rad Companion, сімейство хмарних цифрових рішень для охорони здоров’я для візуалізації на базі ШІ. Він має понад 30 патентів у галузі штучного інтелекту/ML для медичної візуалізації та опублікував понад 70 міжнародних рецензованих технічних і клінічних публікацій з комп’ютерного зору, обчислювального моделювання та аналізу медичних зображень. Разван отримав ступінь доктора філософії з комп’ютерних наук у Технічному університеті Мюнхена та ступінь магістра ділового адміністрування в Кембриджському університеті, бізнес-школа Judge.
- '
- "
- &
- 100
- 11
- 110
- 2020
- 2021
- 7
- МЕНЮ
- прискорювати
- доступ
- рахунки
- дію
- Африка
- AI
- алгоритм
- ВСІ
- вже
- хоча
- Amazon
- Amazon Rekognition
- Amazon SageMaker
- Amazon Web Services
- аналіз
- додаток
- застосування
- APT
- архітектура
- штучний
- штучний інтелект
- Штучний інтелект (AI)
- Активи
- Authentication
- наявність
- доступний
- AWS
- свінг
- КРАЩЕ
- передового досвіду
- Блог
- підвищення
- Box
- Рак молочної залози
- будувати
- бізнес
- call
- Кембридж
- Може отримати
- рак
- дослідження раку
- заряд
- класифікація
- код
- збір
- коментарі
- Інформатика
- Комп'ютерне бачення
- довіра
- конфігурація
- Консоль
- Контейнер
- Контейнери
- містить
- триває
- витрати
- створення
- Повноваження
- Клієнти
- дані
- Database
- базами даних
- глибоке навчання
- знищити
- деталь
- Виявлення
- розробників
- розробка
- прилади
- різний
- цифровий
- Цифрове здоров'я
- оцифрування
- Docker
- Лікарі
- вниз
- легко
- нудьгувати
- Кінцева точка
- Навколишнє середовище
- Європа
- приклад
- досвід
- експорт
- сім'я
- особливість
- риси
- Рисунок
- Перший
- стежити
- вилка
- формат
- знайдений
- Рамки
- Безкоштовна
- Повний
- функція
- майбутнє
- породжувати
- геометрія
- GitHub
- дає
- Глобальний
- золото
- надавати
- гранти
- має
- голова
- здоров'я
- охорона здоров'я
- допомога
- тут
- Як
- How To
- HTTPS
- IAM
- Особистість
- зображення
- аналіз зображення
- сегментація зображення
- Зображеннями
- імпорт
- інформація
- інноваційний
- інтегральний
- інтеграція
- Інтелект
- інтерес
- Міжнародне покриття
- залучений
- IT
- Jupyter Notebook
- етикетки
- великий
- останній
- запуск
- УЧИТЬСЯ
- вчений
- вивчення
- рівень
- бібліотека
- Лінія
- Linux
- список
- списки
- загрузка
- Локалізація
- навчання за допомогою машини
- карти
- березня
- медичний
- Медична візуалізація
- середа
- середній Схід
- ML
- модель
- моделювання
- Моделі
- більше
- Мюнхен
- Імена
- навігація
- необхідний
- Виявлення об'єктів
- На борту
- Інше
- власник
- Патенти
- патологія
- pacientes
- продуктивність
- персонал
- платформа
- політика
- Головний
- приватний
- процес
- Production
- продуктивність
- Продукти
- професіонали
- проект
- проектів
- забезпечувати
- забезпечує
- громадськість
- Державний сектор
- публікаціям
- Python
- Оперативна пам'ять
- дослідження
- ресурси
- відповідь
- прогін
- біг
- мудрець
- сканування
- Школа
- наука
- НАУКИ
- сектор
- обраний
- Послуги
- комплект
- установка
- Поділитись
- Сіменс
- значний
- простий
- Розмір
- невеликий
- So
- Рішення
- ВИРІШИТИ
- Простір
- спеціалізований
- розкол
- Стажування
- старт
- почалася
- стан
- Статус
- зберігання
- зберігати
- студія
- Опори
- перемикач
- Systems
- Мета
- технічний
- методи
- Технологія
- тест
- Джерело
- через
- час
- трудомісткий
- разом
- знак
- інструменти
- топ
- Навчання
- Transactions
- створеного
- університет
- Кембриджський університет
- Оновити
- URI
- us
- USD
- значення
- версія
- бачення
- W
- Web
- веб-сервіси
- Web-Based
- Що
- Що таке
- ВООЗ
- широко
- в
- без
- Work
- робочий
- б
- лист
- X
- років
- YouTube