Объектом исследования в работе является интеграция фотогалерей профилей пользователей. Предметом исследования является алгоритм для объедения фотогалерей профилей пользователей из связанных подгрупп социальных сетей.
Основной задачей данной работы является разработка и программная реализация алгоритма, позволяющего объединить фотогалереи, связанных подгрупп в социальных сетях, по общим признакам на фотографиях.
На данный момент цифровые камеры почти заменили пленочные из-за ряда преимуществ. Владельцы камеры теперь могут создавать большие цифровые коллекции с неограниченным количеством фотографий и размещать их в разных социальных сетях. Необходимость эффективного использования и структурирования этого огромного и динамично изменяющегося объема графических данных, обуславливает актуальность и значимость исследований в области алгоритмов интеграции фотогалерей профилей пользователей.
Социальную сеть, как и любую сеть, можно математически моделировать графом, в котором вершины представляют объекты сети, а ребра – взаимоотношения.
Одним из направлений анализа социальных сетей является визуализация соответствующих графов. Визуализация имеет важное значение, поскольку сама возможность увидеть сеть позволяет сделать важные выводы о характере взаимодействия акторов, не прибегая к другим методам анализа графа. В качестве примера на рис. 3.1 показан граф взаимодействий исторических личностей.
Рисунок 3.1 – Граф взаимодействий исторических личностей
Связи графа могут быть направленными или ненаправленными. Отношения вроде товарищества или соседства формируют граф с ненаправленными связями (рис. 3.2). Вариант графа с направленными связями показан на рис. 3.3. Данный граф построен по ответам на вопрос «С кем бы вы хотели дружить?», заданный коллективу из четырех человек.
Рисунок 3.2 – Граф с ненаправленными связями
Математический аппарат анализа графов позволяет рассчитать целый ряд параметров и дать количественные ответы на многие вопросы. Для обсуждения данных параметров введем некоторые понятия.
Путь между вершинами – это последовательность вершин и ребер, соединяющих две вершины.
Например, путь от а до d (см. рис. 3.2) – это вершина а, ребро аb, ребро bd и вершина d.
Или вершина а, ребро ас, ребро сd и вершина d.
Расстояние между вершинами – это количество шагов, которые нужно сделать, чтобы добраться от одной вершины до другой, то есть на рис. 1.2 расстояние от a до b равно 1, а от а до d — 2.
Вершины в графе могут быть связаны разными способами:
Рисунок 3.3 – Граф с направленными связями
В анализе социальных сетей на базе теории графов выделяют:
Для расчета индексов для социальной сети в целом используют элементарные параметры, такие как число вершин или ребер, и некоторые вычисляемые параметры. Например, плотность вычисляется как нормированное число ребер – отношение наличных связей в сети к возможному максимальному количеству связей в сети с данным количеством вершин. Число симметричных диад (на рис. 3.3 таких диад две: Ваня – Катя и Катя – Петя) является показателем стабильности социальной сети. Количество транзитивных триад (рис. 3.4) и циклических триад тоже позволяет оценивать стабильность сети.
Рисунок 3.4 – Граф транзитивных триад
Среднее расстояние от одной вершины до прочих рассчитывается на основе минимальных расстояний от данной вершины до всех остальных. Минимальное расстояние между двумя вершинами называют геодезическим расстоянием (geodesic distance). Параметром, который показывает, насколько велика сеть, является диаметр социальной сети — наибольшее геодезическое расстояние в социальной сети (при условии, что граф связанный, то есть если между любыми двумя вершинами есть путь).
Структурные дыры (structural holes) — вид структуры сети, при котором интересующий нас агент сети связан с некоторым числом других агентов, которые не связаны между собой. Если между агентами сети есть социальная дыра, это значит, что они не имеют возможности взаимодействовать напрямую. Таким образом, агенты сети, соединяющие несвязанных агентов, получают возможность выступать посредниками и контролировать их взаимодействие.
При расчете индексов для отдельных вершин выделяют следующие параметры:
Нахождение блоков позволяет выявить те или иные структуры, скрытые в социальной сети. Выделение блоков можно делать по разным атрибутам агентов сети, например по полу. В блоки также можно объединять эквивалентных агентов сети. Например, если отношение, по которому построена социальная сеть, – информационные потоки, то в один блок можно включить агентов сети, которые передают информацию, во второй — тех, кто ее получает, в третий – тех, кто получает и посылает информацию другим агентам сети.
Существует несколько подходов к выделению подструктур в социальной сети:
Идентификация человека всегда была важной проблемой. В процессе эволюции вычислительной техники стали активно развиваться биометрические технологии – «методы и технические средства получения и использования биометрических данных человека в целях его идентификации». Их целью является разработка автоматизированных систем идентификации человека на основе биометрических признаков, одним из которых, является изображение лица человека.
OpenCV – библиотека компьютерного зрения с открытым исходным кодом, доступная для загрузки. Библиотека написана на C и C++, работает под Linux, Windows и Mac OS X. Происходит активная разработка интерфейсов для Python, Ruby, MATLAB и других языков.
Одной из целей OpenCV является предоставление простой в использовании библиотеки машинного зрения, которая помогает создавать достаточно сложные приложения в короткие сроки. OpenCV содержит в себе более 500 функций которые охватывают много областей, включая контроль качества на производстве, системы безопасности, обработку изображений, пользовательские интерфейсы, стереоскопическое зрение и роботостроение.
В целом OpenCV предоставляет инструментарий, достаточный для решения подавляющего большинства задач компьютерного зрения. Если алгоритм не имеется в составе SDK, то, как правило, он может быть без проблем запрограммирован. Кроме того, существует множество авторских версий алгоритмов, написанных пользователями на основе OpenCV.
Также следует отметить, что за последние годы OpenCV сильно расширилась и стала в некоторой степени «тяжеловесной». В связи с этим, разными группами энтузиастов создаются «облегченные» библиотеки, основанные на OpenCV [2].
Данная библиотека поможет идентифицировать людей на фотографиях в социальной сети, благодаря выделению характеристических точек: центров глаз, уголков глаз, кончика носа и т.д.
Геотегинг – процесс присоединения географических метаданных к различным информационным ресурсам, таким как веб-сайты, RSS, фотографии, как-либо характеризующие эти ресурсы (точка съемки, месторасположение и т. п.). Эта информация состоит, как правило, из координат широты и долготы, хотя она может включать также высоту, расстояние и направление до населенных пунктов. Первым шагом в процессе геотегинга является сопоставление географических мест с соответствующими снимками. Есть два способа проделать эту операцию: автоматический и ручной.
Для автоматической записи GPS-координат места съёмки в EXIF-данные используется фотокамера, оснащённая встроенным GPS-приёмником, записывающая координаты в файл непосредственно в момент создания снимка.
Введение точных координат прямо в программе можно назвать ручным способом. В этом случае с помощью специальных программ вручную модифицируют GPS-секцию в EXIF-данных фотографии [3].
В случае если на загруженной пользователем фотографии найдены лица и присутствуют географические теги, можно определить к какой фотогалерее в социальной сети отнести изображение. На представленной ниже анимации показан принцип работы алгоритма. Когда на фотографии идентифицированы социальные связи между изображенными людьми, то фотография будет помещена в фотогалереи пользователя в социальных сетях с соответствующими названиями. В то же время отсутствие на фотографии лиц и наличие географических метаданных дает возможность занести фотографию в галереи с названием идентифицированной по координатам местности.
Алгоритм интеграции фотогалерей представлен на рисунке 4.1
Рисунок 4.1 – Алгоритм интеграции фотогалерей
(анимация: 6 кадров, 10 циклов повторения, 185 килобайт)
Проведен обзор существующих подходов для достижения поставленных целей. Рассмотрены технологии, которые помогут реализовать систему для интеграции фотогалерей профилей пользователей социальных сетей.
Создание системы, которая сможет идентифицировать социальные связи на фотографиях в социальных сетях и извлекать данные о месте съемки, позволит решить задачу автоматического структурирования и классификация фотографий в социальных сетях, а также сможет без участия пользователей объединять фотоколлекции из разных социальных сетей.
При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2014 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.