Эта статья — последнее сообщение о моем путешествии по Google Summer of Code 2023 в качестве участника caMicrscope.

О проекте

Целью этого проекта является добавление поддержки многоканальной визуализации в caMicrscope, платформе, используемой для визуализации и анализа данных медицинских изображений. В настоящее время платформа поддерживает только наборы данных с пространственным представлением до трех каналов. Целью этого проекта является создание функции, которая может принимать числовые данные в формате CSV с произвольным количеством каналов и выбирать три поля для назначения красному, зеленому и синему каналам для создания изображения. Этот проект позволит исследователям и специалистам по разделению глубокого обучения разобраться в многомерных данных и улучшить анализ данных медицинских изображений.

Работа выполнена

Весь мой путь к Google Summer of Code подробно документируется в статьях, выходящих раз в две недели, с описанием результатов, отзывов, улучшений и многого другого. Я приложил все блоги, которые писал раз в две недели за последние три месяца своего пути в области программирования. Вы найдете краткое изложение моей работы.

Еженедельное обновление блога в подробных статьях:

Неделя 1: https://medium.com/@jaintarun7/getting-started-with-camicroscope-4e343429825d

Неделя 2: https://medium.com/@jaintarun7/multichannel-image-support-week2-92c17a918cd6

Неделя 3: https://medium.com/@jaintarun7/multi-channel-support-week3-2d220b27b22a

Неделя 4: https://medium.com/@jaintarun7/multi-channel-image-support-week4-d16dc63429be

Недели 5 и 6: https://medium.com/@jaintarun7/google-summer-of-code-week-5-6-midterm-evaluation-818c2da0d56d

Недели 7, 8 и 9: https://medium.com/@jaintarun7/multi-channel-support-week-7-to-9-3b68ef640e41

Недели 10, 11 и 12: https://medium.com/@jaintarun7/multi-channel-support-week-10-to-12-ddaa2a8ac42d

Краткое содержание работы

› Перед промежуточной оценкой

  1. Работа с файлами изображений TIF и гиперспектральными изображениями.
  2. Бумажная реализация о том, как преобразовать изображение HSI в RGB.
  3. Для гиперспектрального подхода выберите более первых 10 полос и нормализуйте их до красного цвета, повторите следующие 10 для зеленого и последние 10 каналов для синего.
  4. Преобразование цвета с помощью линейного подхода (концепция весов) — тестирование
  5. Тоже начал с приложения Flask.

› После промежуточной оценки

  1. Реализация OpenSeaDragon. OpenSeaDragon — это библиотека JavaScript с открытым исходным кодом, которая позволяет разработчикам создавать настраиваемые веб-средства просмотра масштабируемых изображений.
  2. Понимание DZI и подключение его к OpenSeaDragon через API с использованием Python Flask. DZI и OpenSeaDragon позволяют медицинским работникам увеличивать отдельные интересующие области изображения без потери качества, что облегчает тщательный анализ.
  3. Интеграция Docker-compose.
  4. Предоставление пользователю возможности выбрать красный, зеленый или синий для каждого канала входного изображения.

Вышеупомянутые указатели — это работа, проделанная во время Google Summer of Code. Реализация алгоритма проекта завершена. Docker-compose проекта завершен.

Текущий статус:

Интеграция с приложением caMicroscope: реализованы 2 маршрута: выбор образцов изображений и предоставление пользователю возможности выбирать RGB для каждого канала в RGB.

Визуализация зрителя продолжается. Эта функция позволит пользователю визуализировать фрагменты изображений DZI, используя кодовую базу caMicrscope. Я останусь в организации до тех пор, пока не закончу реализацию программы просмотра.

Проблемы, с которыми пришлось столкнуться

Некоторые проблемы, с которыми я столкнулся во время путешествия по GSoC, и способы их решения:

  1. Нахождение изображений флуоресцентной микроскопии для построения алгоритма. В этих изображениях используются флуоресцентные красители или белки для маркировки конкретных молекул или структур внутри клеток, что позволяет исследователям визуализировать и изучать их локализацию и динамику с исключительной точностью.
  2. Интеграция OpenSeaDragon и DZI с Python Flask. Первые несколько дней я изучал библиотеку OpenSlide Imaging. Одним из недостатков использования этой библиотеки было то, что она поддерживает только файлы изображений .SVS. Затем я наконец узнал о команде Linux, которая преобразует файл изображения tiff/mat/png/jpg в .dzi (код XML) и dzi_files (каталог с изображением плиток).
  3. Интеграция всего приложения на основе Python с кодовой базой caMicrscope JavaScipt. Я начал изучать JavaScript на веб-сайте Developer Mozilla и узнал об асинхронных функциях.

Опыт работы с наставником

Райан Бирмингем (Бирм) — замечательный наставник, который постоянно предоставлял неоценимую обратную связь и делился соответствующими ресурсами, чтобы облегчить мой прогресс в этом проекте. Наши частые встречи, обычно проводимые 1–2 раза в неделю, стали ключевой частью моего пути к GSoC.

Я чувствую огромную честь и благодарность за то, что мне выпала честь быть наставником у Бирма. Его поддержка и руководство сделали этот опыт GSoC поистине исключительным. Я хотел бы выразить ему сердечную благодарность за все, что он внес во время этого путешествия. Спасибо, Бирм, за ваше выдающееся наставничество и непоколебимую поддержку.

Получены новые навыки

Должен сказать, что я достиг приличного уровня понимания JavaScript, а также того, как обращаться с асинхронными функциями и промисами. Я имею опыт работы в области электроники и обладаю навыками обработки данных и обработки изображений. Интеграция приложения Python flask с caMicrscope за последние несколько недель позволила мне приобрести навыки работы с JavaScript. Кроме того, я горжусь реализацией OpenSeaDragon.

Кодовая база

Многоканальный запрос на ветку:

https://github.com/camicroscope/caMicrscope/pull/654

Следующий репозиторий GitHub является основным репозиторием, связанным с docker-compose:

Полная реализация кода только на Github: https://github.com/lucifertrj/GSoC23_multi_channel

Докер создает файл и фиксирует:

Добавление многоканального контейнера: https://github.com/camicroscope/Distro/commit/b3f325f11bbd75f6111558012e0cb974e2758cbd

https://github.com/camicroscope/Distro/blob/multichannel/develop.yml

Заключение и заключительные мысли

В заключение, мое путешествие в Google Summer of Code (GSoC) стало невероятным опытом обучения, который обогатил мой набор навыков, расширил мой кругозор и дал мне возможность внести значимый вклад в сообщество открытого исходного кода. Я глубоко благодарен за эту возможность, а также за поддержку и руководство, которые я получил на протяжении всего этого пути.

Я хочу выразить сердечную благодарность caMicrscope, моей организации за GSoC 2023. За ваше доверие ко мне и наставничество со стороны замечательных людей из caMicrscope, особенно моего наставника Райана Бирмингема. Для меня большая честь быть частью этой инициативы.

Открытый исходный код — это то, что я люблю, и я буду продолжать вносить в него свой вклад. Сейчас с нетерпением жду Хактоберфеста!

Спасибо компаниям Google и caMicrscope за эту прекрасную возможность.

LinkedIn: https://www.linkedin.com/in/jaintarun75/

GitHub: https://github.com/lucifertrj/

Твиттер: https://twitter.com/TRJ_0751