|
1. Отримання токену доступу до Facebook API
Одне з розширень для бібліотеки класів NodeXL забезпечує інтерфейс для завантаження даних з сторінок Facebook в граф. Для цього, спочатку потрібно надати токен доступу Facebook API цьому розширенню. В демонтсраційному додатку це потрібно робити вручну, проте повинна бути можливість автоматично отримати цей токен. Нажаль, знайти вирішення цієї проблеми важко, через брак документацій по цьому розширенню.
2. Налаштування атрибутів даних для вершин
Завантажуючи дані з соціальних мереж розширення надає можливість налаштувати, які дані повинні зберігатися на вершинах. Розширення надає набір завантажуваних атрибутів по замовчуванню, але налаштування цих атрибутів може бути корисним.
3. Збереження обєднаних графів
Analysis of merged graphs, downloaded from different Social Network pages can result in more informative metrics than analyzing separate graphs. The easiest way to merge graphs is to add nodes and edges of one graph to another in a simple loop. That works, but with one issue. If you will try to save that merged graph into GraphML file, it will lead to key duplication in structure of file, and you will not be able to download the graph from that file. The easiest solution is to seek file for key duplications and remove them, but it must be a way to merge graphs without that issue.
РОЗДІЛ 4. АНАЛІЗ ЗОБРАЖЕННЯ ЗРАЗКУ КРОВІ
4.1. Додаток для аналізу зображення зразку крові
Під час практики я також здійснював реалізацію моєї магістерської кваліфікаційної роботи. Моїми основними завданнями були:
· Проектування і реалізація архітектури додатоку для аналізу зображень зразків крові.
· Проектування і реалізація алгоритмів попередньої обробки, визначення і класифікації клітин.
Для моєї магістерської кваліфікаційної роботи потрібна така архітектура, щоб можна було замінювати алгоритми в майбутньому. До того ж потрібна такий додаток, який можна буде налаштувати під інші задаці аналізу зображень.
Мною було вирішено будувати додаток з трьох різних частин: ядро, алгоритми і графічний інтерфейс користувача. Ядро забезпечує основі структури даних і інтерфейс для взаємодії алгоритмів. Алгоритмами будуть окремі модулі, що забезпечуватимуть функції обробки зображення. Кожен алгоритм має вхідний і вихідний параметр типу даних. Графічний інтерфейс користувача надає доступ до налаштування і виклику функцій ядра через зручні візуальні елементи.
4.2. Обрані засоби
Для реалізації додатоку була вибрана мова програмування Java. Вона забезпечує компроміс між швидкістю виконання і простотою розробки. Вона швидка, кросс-платформенна і має багато вбудованих бібліотек, що пришвидшить розробку. Також необхідний механізм звязування різних частин додатку з можливістю їх налаштування. Каркас Spring був вибраний для цих цілей. Графічний інтерфейс користувача реалізований засобами JavaFX.
4.2. Архітектура ядра
В загальному, додаток для аналіз зображень зразків крові повинен виконувати два послідовних кроки для отримання результату:
· Визначення окремих клітин
· Класифікація кожної клітини
На кожному з цих кроків може бути застосована попередня обробка зображення. Передобробка допоможе спростити зображення, привести його до певних розмірів, тощо.
Щоб визначити тип кожної клітини, потрібно спочатку вибрати окремі клітини з зображення. Результатом визначення обєктів повинен бути список розміщень обєктів. Кожне розміщення обєкту характеризується просторовими координатами лівого верхнього і правого нижнього кутів.
Під час класифікації, потрібно застосувати класифікатор до кожного визначеного обєкту. Класифікатор повинен бути налаштований перед роботою. Зокрема, кожен обєкт потрібно привести до певного шаблонного розміру. Класифікатор потрібно налаштувати списком ознак, які потрібно застосувати до зображення. Для гнучкості кожна ознака наслідуватиме інтерфейс “Feature”. Таким чином буде зручно налаштовувати і створювати нові ознаки. Кожна ознака має мати засоби порівняння з тими ж ознаками інших зображеннь. Також потрібно задати навчальну вибірку обєктів для класифікатора.
Іншим завданням додатку є класифікація всього зображення зразку крові. Цілю цього завдання є постановка діагнозу на основі пропорції і характеристик різних типів клітин конкретного зображення зразку крові.
Спільний інтерфейс для всіх алгоритмів служитиме для спрощення передачі управління від одного алгоритму іншому під час аналізу зображення. Кожен алгоритм може мати різні вхідні і вихідні типи даних. В одному випадку ми можемо мати зображення як вхідний і вихідний параметер, в інших випадках ми можемо надати зображення на вхід і отримати якісь дані про зображення. (наприклад розміщення обєктів) на виході. Тому, кожен алгоритм повинен мати параметри типів вхідних і вихідних даних. Кожен алгорити також повинен мати засоби налаштування. UML діаграма класів ядра зображена в Додатку A. UML діаграма послідовності для класифікації зображена в Додатку Б.
Алгоритми
Як вже було згадано, попередня обробка зображення дозволить спростити зображення перед визначенням обєктів або привести його до певного розміру перед класифікацією. Визначення обєктів на зображенні з мільйонами відтінків кольорів є складною задачею. Набагато краще якось спростити зображення, так щоб в результаті можна було легко сказати чи належить конкретний піксель обєкту чи це фоновий піксель. Одним з підходів до такого спрощення є бінаризація зображення. Було вирішено використовувати її для попередньої обробки перед визначенням обєктів. Отже, сам детектор буде використовувати бінаризоване зображення. Пороговий алгоритм Отсу [10] був використаний для цих цілей. Це алгоритм, який визначає глобальний поріг інтенсивності кольору для зображення. Якщо інтенсивність пікселя вище порогової, він вважається таким, що належить обєкті, інакше – це фоновий піксель. Я провів експеримент щоб дізнатись найкращий спосіб визначення порогу. Я довідався, що різні підходи пошуку локальних порогів не сильно покращують якість бінаризаціі, проте сильно негативно впливають на швидкодію алгоритму. Тому було вирішено використовувати простий пошук глобального порогу.
Є два популярні підходи визначення обєктів:
1. Переміщення гнучкого вікна вздовж зображення, обчислення ознак для кожного вікна і порівняння їх з загальними ознаками. Цей підхід визначає окремі обєкти і класифікує їх одночасно. Однак, це дуже дорогий підхід. Алгоритм повинен перебрати всі комбінації розмірів і розміщень вікна [11].
2. Визначити звязні компоненти на бінаризованому зображенні. Це дуже швидкий алгоритм і він часто використовується для сегментації зображень. Основним його недоліком є те, що в один компонент може потрапити кілька клітин. [12].
Було вирішено застосувати визначення звязних компонент через їх простоту реалізації та швидкодію. Основний недолік цього підходу може бути вирішений застосуванням гнучкого вікна для кожного знайденого обєкту. Результат визначення обєктів поданий в Додатку В. Однак, все ще існує недолік. Більшість клітин мають яскравий центр з нижчою інтенсивністю кольору ніж порогова, а отже не будуть включені в звязні компоненти. Було вирішено застосувати алгоритм, який перетворбє бінаризоване зображення в матрицю, нумерує кожен звязний компонент, знаходить порожні області між однаковими номерами компонент та заповнює їх.
Маючи координати обєктів, ми можемо приступати до класифікації клітин. Потрібно вибрати всі пікселі, що відповідають кожному обєкту і застосувати класифікатор для них. Класифікатор повинен отримати ознаки з цих наборів пікселів і порівняти їх з спільними ознаками обчисленими для навчальної вибірки різних типів клітин. Визначивши пару ознак з найменшою різницею ми отримаємо клас (тип) конкретної клітини крові. Гістограма спільних інтенсивностей кольорів зображена в Додатку Г. Однак одна конкретна ознака не може справитись з цим усім. Дуже важливо застосувати комбінацію різних ознак. Більше того, лейкоцити мають близько пяти різних підтипів, що можуть бути класифіковані за різною формою ядра, і статистичні ознаки пікселів не застосовні в цьому випадку. Було вирішено використовувати локальні ознаки, що будують граф з вершинами в важливих точках зображення [13]. Результати класифікації подані в Додатку Д. Класифікація всього зображення може бути проведена застосуванням кластерного аналізу до отриманих даних про пропорцію кількостей і характеристики клітин.
ВИСНОВКИ
Під час практики я працював над проектом добування даних з соціальних мереж в Університеті Штату Луізіана. Добування даних з соціальних мереж є новою областю, яка дозволяє отримати корисні знання з соціальних мереж. Використання цих знань корисне для налагодження взаємодії між організаціями, найму людей і побудови маркетингових стратегій. Одним з підходів аналізу соціальних мереж є представлення їх у вигляді соціального графу взаємовідносин.
Працюючи на цим проектом, я інструменти аналізу графів та метрики графів. Декілька цікавих метрик: центральність і коефіцієнт кластеризації. Міри центральності допомагають визначити популярні або впливові вузли. Коефіцієнт кластеризації показує наскільки тісними є взамовідносини між вузлами. Мною було розроблено додаток, що виконує завантаження і аналіз мереж.
Також під час пркатики я працював над моєю магістерською кваліфікаційною роботою. Я спроектував і реалізував архітектуру додатку і основних алгоритмів. Щоб забезпечити гнучкість системи я вирішив побудувати додаток з трьох частин: ядра, алгоритмів, та графічного інтерфейсу користувача. Мова програмування Java була обрана завдяки тому, що вона забезпечує компроміс між швидкістю виконання програми і простотою розробки. Для налаштування взаємодії цих трьох частин додатку, було вирішено застосувати каркас Spring.
Навички аналізу графів, отримані мною під час практики в Університеті штату Луізіана можуть бути застосовані для реалізації локальних ознак класифікатора. Використання локальних ознак допоможе класифікувати різні типи лейкоцитів, що не може бути зроблено застосування глобальних статистичних ознак. За результатами роботи отримано матеріали, готові до публікації на конференції ТААС в Києві.
СПИСОК ЛІТЕРАТУРИ
1. Louisiana State University. Retrieve from the website:
https://en.wikipedia.org/wiki/Louisiana_State_University
2. Welcome page of the Division of Computer Science and Engineering at LSU. Retrieved from website: http://www.cse.lsu.edu/welcome
3. Reza, Z., Mohammad, A.A., Huan L. (2014) “Social Media Mining, An Introduction.” Tempe, AZ: Cambridge University Press
4. An introduction to centrality measures. Retrieve from website:
https://sites.google.com/site/networkanalysisacourse/schedule/an-introduction-to-centrality-measures
5. Social and Technological Network Analysis. Retrieved website:
https://www.cl.cam.ac.uk/teaching/1314/L109/stna-lecture3.pdf
6. Brandes, Ulrik (2008). "On variants of shortest-path betweenness centrality and their generic computation". Social Networks 30: 136–145.
7. Stanford Network Analysis Project. Retrieved from website:
http://snap.stanford.edu/
8. NodeXL. Retrieved from website: https://en.wikipedia.org/wiki/NodeXL
9. GraphML. Retrieved from website: https://en.wikipedia.org/wiki/GraphML
10. Otsu, N., "A Threshold Selection Method from Gray-Level Histograms," IEEE Transactions on Systems, Man, and Cybernetics, Vol. 9, No. 1, 1979, pp. 62-66.
11. Проект Лекториум. “лекция 7 | Анализ изображений и видео | Наталья Васильева ” YouTube. YouTube, 16 July 2013. Web. 25 July 2015.
12. Проект Лекториум. “лекция 2 | Анализ изображений и видео | Наталья Васильева ” YouTube. YouTube, 16 July 2013. Web. 20 July 2015.
13. Yandex blog - Image and video analysis. Creating features and image comparing: local features. Yandex, 2015. Retrieve from the website:
http://habrahabr.ru/company/yandex/blog/256459/
Додаток A. UML діаграма класів ядра
Виконав | Дубицький А.О | Підпис | UML діаграма класів ядра | Сторінка | |
Перевірив | Підпис | 1 з 1 | |||
ІКНІ Кафедра ПЗ ПЗСм-21 |
Додаток Б. UML діаграма послідовностей для класифікації
Дата добавления: 2015-10-23; просмотров: 62 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Training supervisors | | | УЧЕБНАЯ ПРОГРАММА ДИСЦИПЛИНЫ |