- •Розділ 1. Загальна інформація про lsu і інститут компютерних наук та інженерії
- •Розділ 2. Добування даних з соціальних мереж, дослідження графів та програмних засобів їх аналізу
- •2.1. Важливість добування даних з соціальних мереж
- •2.2. Як дані соціальних мереж можна представити у вигляді графу
- •2.3. Міри центральності
- •2.7. Завдання на базі практики
- •Розділ 3. Результати отримані на базі практики
- •3.1. Демонстраційний додаток
- •3.2. Проблеми, що виникли
- •Розділ 4. Аналіз зображення зразку крові
- •4.1. Додаток для аналізу зображення зразку крові
- •4.2. Обрані засоби
- •4.2. Архітектура ядра
- •4.3. Алгоритми
- •Висновки
- •Список літератури
- •Додаток a. Uml діаграма класів ядра
- •Додаток б. Uml діаграма послідовностей для класифікації
- •Додаток в. Визначення звязних компонент
- •Додаток г. Гістограма спільних ознак інтенсивності
- •Додаток д. Класифікація клітин
Розділ 4. Аналіз зображення зразку крові
4.1. Додаток для аналізу зображення зразку крові
Під час практики я також здійснював реалізацію моєї магістерської кваліфікаційної роботи. Моїми основними завданнями були:
Проектування і реалізація архітектури додатоку для аналізу зображень зразків крові.
Проектування і реалізація алгоритмів попередньої обробки, визначення і класифікації клітин.
Для моєї магістерської кваліфікаційної роботи потрібна така архітектура, щоб можна було замінювати алгоритми в майбутньому. До того ж потрібна такий додаток, який можна буде налаштувати під інші задаці аналізу зображень.
Мною було вирішено будувати додаток з трьох різних частин: ядро, алгоритми і графічний інтерфейс користувача. Ядро забезпечує основі структури даних і інтерфейс для взаємодії алгоритмів. Алгоритмами будуть окремі модулі, що забезпечуватимуть функції обробки зображення. Кожен алгоритм має вхідний і вихідний параметр типу даних. Графічний інтерфейс користувача надає доступ до налаштування і виклику функцій ядра через зручні візуальні елементи.
4.2. Обрані засоби
Для реалізації додатоку була вибрана мова програмування Java. Вона забезпечує компроміс між швидкістю виконання і простотою розробки. Вона швидка, кросс-платформенна і має багато вбудованих бібліотек, що пришвидшить розробку. Також необхідний механізм звязування різних частин додатку з можливістю їх налаштування. Каркас Spring був вибраний для цих цілей. Графічний інтерфейс користувача реалізований засобами JavaFX.
4.2. Архітектура ядра
В загальному, додаток для аналіз зображень зразків крові повинен виконувати два послідовних кроки для отримання результату:
Визначення окремих клітин
Класифікація кожної клітини
На кожному з цих кроків може бути застосована попередня обробка зображення. Передобробка допоможе спростити зображення, привести його до певних розмірів, тощо.
Щоб визначити тип кожної клітини, потрібно спочатку вибрати окремі клітини з зображення. Результатом визначення обєктів повинен бути список розміщень обєктів. Кожне розміщення обєкту характеризується просторовими координатами лівого верхнього і правого нижнього кутів.
Під час класифікації, потрібно застосувати класифікатор до кожного визначеного обєкту. Класифікатор повинен бути налаштований перед роботою. Зокрема, кожен обєкт потрібно привести до певного шаблонного розміру. Класифікатор потрібно налаштувати списком ознак, які потрібно застосувати до зображення. Для гнучкості кожна ознака наслідуватиме інтерфейс “Feature”. Таким чином буде зручно налаштовувати і створювати нові ознаки. Кожна ознака має мати засоби порівняння з тими ж ознаками інших зображеннь. Також потрібно задати навчальну вибірку обєктів для класифікатора.
Іншим завданням додатку є класифікація всього зображення зразку крові. Цілю цього завдання є постановка діагнозу на основі пропорції і характеристик різних типів клітин конкретного зображення зразку крові.
Спільний інтерфейс для всіх алгоритмів служитиме для спрощення передачі управління від одного алгоритму іншому під час аналізу зображення. Кожен алгоритм може мати різні вхідні і вихідні типи даних. В одному випадку ми можемо мати зображення як вхідний і вихідний параметер, в інших випадках ми можемо надати зображення на вхід і отримати якісь дані про зображення. (наприклад розміщення обєктів) на виході. Тому, кожен алгоритм повинен мати параметри типів вхідних і вихідних даних. Кожен алгорити також повинен мати засоби налаштування. UML діаграма класів ядра зображена в Додатку A. UML діаграма послідовності для класифікації зображена в Додатку Б.
