Сравнение методов сегментации кожи в разных цветовых моделях

ляемых служб (например, на втором уровне запуска обычно инициализируются сетевые службы). Администратор может изменять текущий уровень запуска с помощью команды init и узнать текущий уровень запуска с помощью команды runlevel [3].

Основной проблемой начальной загрузки является различие особенностей загрузки различных ОС. Как показывает практика, начальные загрузчики Microsoft Windows не определяют ядер Linux, а загрузчики для ОС Linux не могу загружать последние версии Microsoft Windows (Vista, 7).

Проведенная исследовательская работа выявила несколько основных проблем использования начальных загрузчиков для одновременной работы с ОС различных семейств. Одной из основных проблем является устойчивое нежелание начальных загрузчиков ОС семейства Windows прописывать в загрузчик любые ОС, отличные от Windows. Кроме того, в ОС Windows вообще не существует стандартных средств для добавления сторонних ОС в начальный загрузчик, тогда как в UNIX-подобных системах пользователь может прописать загрузчик Windows вручную. Но здесь мы сталкиваемся с проблемой иного рода - относительно устаревшие начальные загрузчики UNIX-подобных ОС вообще не способны загружать некоторые новые ОС Windows, такие как Windows7 или Vista, что требует обязательного обновления таких загрузчиков в случае установки указанных ОС.

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

очередности установки операционных систем на компьютер.

Для примера рассмотрим алгоритм установки операционных систем Windows Seven и FreeBSD. Обрисуем две возможные ситуации:

1. В первый раздел жесткого диска устанавливаем ОС FreeBSD. Затем, используя дистрибутив Windows7, устанавливаем на все оставшееся место Windows7. В результате мы лишаемся загрузочного меню, и, как следствие, возможности загрузить ОС FreeBSD (т.е. возникает проблема). Тогда с помощью дистрибутива FreeBSD начинаем инсталляцию FreeBSD, но не повторяем ее полностью, а только восстанавливаем начальный загрузчик, используя утилиту fdisk. Проблема отсутствия меню начальной загрузки решена.

2. В первый раздел жесткого диска устанавливаем ОС Windows7. На все оставшееся место устанавливаем FreeBSD. В результате при запуске компьютера отображается загрузочное меню из которого можно выбрать нужную систему.

Библиографические ссылки

1. Kohli J. S. Инсталляция и конфигурация загрузчика GRUB (linux grub boot lilo) // Информационный ресурс OpenNET. URL: http://www.opennet.ru/base/ sys/grub_info.txt.html.

2. Загрузчик Grub. Материал из Википедии - свободной энциклопедии. URL: http://ru.wikipedia.org/ wiki/GRUB.

3. Официальный сайт загрузчика Grub. Информационный ресурс GNU Grub. URL: http://www.gnu.org/ software/grub.

© Новиков Д. С., Лазарев Д. С., Моргунова О. Н., 2011

УДК 004.932.2

А. В. Носов, Д. В. Бузаев Научный руководитель - А. Г. Зотин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

СРАВНЕНИЕ МЕТОДОВ СЕГМЕНТАЦИИ КОЖИ В РАЗНЫХ ЦВЕТОВЫХ МОДЕЛЯХ

Рассмотрены методы сегментации изображений по цвету кожи в различных цветовых пространствах. Проанализированы преимущества и недостатки различных цветовых моделей.

В последнее время актуальны задачи распознаванию лиц в различных сферах, одной из таких сфер является охранная сфера. Наиболее важным этапом при решении такой задачи является обнаружение и локализация лиц людей, с дальнейшим отслеживанием изменений их положения или формы с течением времени. Для локализации лиц обычно используют подход в основе которого лежит обнаружение областей, имеющих цвет кожи [1, 2]. В зависимости от цветовой модели цвет кожи может иметь различные представления в различных цветовых пространствах. Наиболее перспективным является использование

цветовых моделей с выраженной яркостной компонентой и хроматическими компонентами, например HSV, HSL, YCrC [3].

Цветовая модель HSV - модель, в которой координатами цвета являются: цветовой тон (Hue); насыщенность (Saturation); значение цвета (Value). Чем больше параметр насыщенность, тем «чище» цвет, а чем ближе этот параметр к нулю, тем ближе цвет к нейтральному серому. Поэтому параметр насыщенность иногда называют чистотой цвета. Модель HSL по существу сходна с цветовой моделью HSV и отличается последним параметром и способом перевода

Секция «Информатика и вычислительная техника»

цвета. Цветовыми координатами модели HSL являются тон (Hue), насыщенность (Saturation ) и освещенность (Lightness).

Цветовая модель YCrCb представляет собой цветовое пространство, переход в которое из пространства RGB осуществляется следующим способом:

Y = 0,299R + 0,587G + 0,114B

Cr = R - Y,

Cb = B - Y.

Для нахождения участков кожи предлагается использовать следующий подход, который можно представить в виде двух основных этапов. Первым этапом является сопоставление модели кожи соответствующему цветовому пространству. На вход алгоритма поступает некоторая выборка, состоящая из изображений, на которых присутствуют только образцы кожи людей различных рас, возрастов, полов. Изображения анализируемой выборки рассматриваются в цветовых пространствах HSL, HSV или YCrCb. По обучающей выборке, состоящей из различных цветов и оттенков кожи, оценивается эталонный вектор m математических ожиданий, принадлежащий множеству выбранного нами цветового пространства и ковариационная матрица C [2]. Рекомендуемые значения пространства HSV для определения кожи: H е [0; 20], S £ [45; 255], V £ [0; 255]; в пространстве HSL: H е [0; 20], S е [45; 255], L е [50; 255];

в пространстве YCrCb: Y е [50; 255], Cr е [131; 185], Cb е [80; 135].

Вторым этапом является сегментация, в ходе которой анализируемые изображения рассматриваются

с учетом выбранного цветового пространства. Для каждого элемента изображения (/, у) вычисляется расстояние между вектором цветовых признаков х^ и

эталонным вектором т по метрике Евклида:

=

или по метрике Махаланобиса:

4 = (ху - т)Т С-1 •(ху - т).

В силу не отрицательности У2. можно нормализо-

-. В результате получа-

вать по формуле: у2. = 1 -

У л 2

тах

ется матрица Л = (у2у), которая представляет собой

полутоновое изображение того же размера, что и исходное. Полученное изображение можно бинаризовать. Пороговое значение к £ (0; 1), определяется экспериментально. В результате бинаризации получим маску, определяющую местоположение участков кожи на исходном изображении. Для повышения достоверности можно провести сегментацию в нескольких цветовых моделях и объединить полученные данные.

Для проведения исследований сегментации было разработано тестовое программное обеспечение, позволяющее оценить эффективность и быстродействие алгоритма в разных цветовых моделях. Результаты можно увидеть на рисунке на примере кадра из кинофильма «Титаник».

. . * . Ли -WV

Примеры сегментации кожи на изображениях: а - оригинал; б - сегментация в модели HSV; в - сегментация в модели HSL; г - сегментация в модели YCrCb

При проведении экспериментов было использовано 100 изображений размером 896*592 и больше, содержащие лица разного пола, возраста и национальности. В ходе исследования было выяснено, что наилучшим образом для локализации лиц подходит цветовые модели HSV и HLS. Наибольшее быстродействие достигается при использовании модели YCrCb.

Библиографические ссылки

1. Terrillion J.-C., Shirazi M. N., Fukamachi H., Akamatsu S. Comparative performance of different skin

chrominance models and chrominance spaces for the automatic detection of human faces in color images. In Proc. of the International Conference on Face and Gesture Recognition, 2000. P. 54-61.

2. Vezhnevets V., Sazonov V., Andreeva A. A survey on pixel-based skin color detection techniques. Proc. Graphicon-2003, September 2003. P. 85-92.

3. Гонсалес Р., Ту Дж. Принципы распознавания образов. М. : Мир, 1978.

© Носов А. В., Бузаев Д. В., Зотин А. Г., 2011

УДК 004.652.2

Т. В. Пермина Научный руководитель - О. Н. Моргунова Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

ОБРАБОТКА ИЕРАРХИЧЕСКИХ СТРУКТУР В БАЗАХ ДАННЫХ

Предлагаются хранимые процедуры для выполнения иерархических операций в базах данных реляционного типа. Хранимые процедуры реализованы с учетом метода хранения иерархий Adjacency List (список смежности).

Иерархические структуры базы данных могут быть представлены как дерево, состоящее из объектов различных уровней. Для обозначения родства, которое может распространяться на несколько уровней дерева, используются термины «предок» и «потомок». Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. В иерархической модели автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя [1].

Иерархическая операция - это операция, которая производится над иерархией. Над иерархией определены следующие операции изменения [1]: добавление элемента в дерево с заданным родителем; удаление заданного элемента; удаление поддерева; перемещение поддерева.

Для выполнения операций в иерархических базах данных используются команды языка SQL. Некоторые операции можно выполнить с помощью одной-двух SQL-команд, а другие требуют формирования значительного количества SQL-команд, что делает данную процедуру трудоемкой. Вместо хранения часто используемого запроса клиенты могут ссылаться на соответствующую хранимую процедуру. Исполь-

зование хранимых процедур облегчает сопровождение базы данных, так как она становится изолированной от меняющихся бизнес-правил. Модифицировать хранимую процедуру в соответствии с новыми правилами можно в любой момент. После этого все приложения, использующие её, автоматически придут в соответствие с новыми бизнес-правилами без непосредственной модификации [2].

Использование хранимых процедур позволяет изолировать от пользователя структуру базы данных, что обеспечивает целостность и надежность базы данных. Снижается вероятность таких действий как «внедрение SQL-кода», поскольку хорошо написанные хранимые процедуры дополнительно проверяют входные параметры перед тем, как передать запрос СУБД [2].

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

Библиографические ссылки

1. Celko J. Trees and Hierarchies in SQL for Smar-ties. Morgan Kaufmann, 2004.

2. Уорсли Дж., Дрейк Дж. PostgresSQL. Для про-фессианалов : пер. с англ. СПб. : Питер, 2003.

© Пермина Т. В., Моргунова О. Н., 2011