Въведение
Много са начините да се опишат цветовете и разликите между тях. Изследователите и практиците в областта на цветовото възпроизвеждане например използват прецизни цифрови спецификации за цвят. Те често са базирани на разпознаването на цветовете от средностатистическия потребител и обикновено ги наричаме колориметрични спецификации. Към често използваните колориметрични спецификации спадат системите CIE XYZ и CIELab. В света на дигиталния печат цветовете често се описват и по отношение на специфични за отделните устройства контролни стойности, необходими за възпроизвеждането на даден цвят през съответното устройство. Цветовете могат да бъдат определяни и посредством систематичното им описание, каквито например предлагат Munsell Book of Color, шведската Natural Color System или наръчникът Pantone Color Formula Guide. Този вид цветови спецификации също предлагат прецизност при разпознаването на един или друг цвят, но по-често се използват от професионалисти в областта на цветната графика и дизайна, отколкото за целите на цветовото изобразяване.
Друг повсеместно използван начин за определяне на цветовете е наименуването им по начин, добре познат на всеки, който ежедневно си служи с говоримия език. Макар това да е недотам прецизен метод за определяне на цветовете – особено като се имат предвид гореспоменатите, – той си остава най-разпространен и най-достъпен за широката публика. Този метод използва добре известни наименования за различните цветове, като например червено, зелено, синьо и т.н. Често се прибягва и до комбинации от тези наименования за по-голяма прецизност при описанието на един или друг цвят. Като примери за подобни комбинации могат да послужат фрази като червеникавокафяв, зеленикавосин, жълтеникавосин и др. Освен това говоримият език предоставя и богата палитра от прилагателни, които служат за още по-фино разслояване при определянето на даден цвят. Като примери тук могат да бъдат посочени прилагателни като светло, тъмно, ярко, наситено, ясно, мътно, меко, убито, бледо, избеляло и др.
Освен за описание на цветовете, говоримият език обичайно се използва и за разпознаване на разликите между тях или промените, на които е подложен даден цвят. Примери за думи и фрази, улавящи разликите между цветовете, има много: „малко по-малко жълт“, „доста по-тъмен“, „по-наситен“, „по-зелен“, „значително по-силен цвят“, „една идея по-светло“. Макар тези определения да не са с кой знае каква прецизност, мнозина ги използват, за да опишат промените, необходими при редактиране на принтирани материали.
Обикновено системите за контрол и настройване на цветовете изискват от потребителя да се запознае с действието на различните инструменти, предлагани от потребителския интерфейс. Потребителите трябва да могат да изберат и използват подходящия за дадена цел инструмент, както и правилната му настройка, за да могат да постигнат желания ефект. Не е чудно, че повечето хора, които не са минали през съответното обучение, намират работата с подобни системи за сложна. Съответно повечето потребители, работещи с цветни изображения и документи, срещат трудности при настройването на цветовете. Така задачата да преведат писмените или устните изисквания на клиента по отношение на цветовата гама на езика на настройките на съответните инструменти за обработка на изображенията остава за професионалистите от областта на цветния графичен дизайн. От тях се изисква стабилно обучение и опит, за да могат успешно и ефективно да управляват инструментите от подобни приложения, за да се постигне в крайна сметка ефектът, пестеливо описан с прости думи от клиента. Следователно създаването на интерфейс на основата на говоримия език, за приложения, насочени към настройване на цветовете и обработка на изображенията, би имало сериозни предимства по отношение на достъпността му за широкия потребител.
Макар и словесното описание на цветовете и разликите между тях да няма прецизността на цифровите спецификации, може да се спори дали една недотам прецизна, но широко достъпна система за комуникация не е за предпочитане пред един труден за използване високопрецизен интерфейс.
Напасването между описанията на цветовете, използвани в говоримия език, и прецизните цифрови кодирания на цветовете е усложнено по редица причини. На първо място е невъзможно да се унифицира описанието на цветовете през говоримия език. Думите и граматичните правила, използвани при описването на цветове, варират в зависимост от културната принадлежност, географското местонахождение, професионалните пристрастия и индиви дуалните предпочитания на говорещия. Второ, границите между наименованията на отделните цветове не са много прецизно определени, а са по-скоро неясни, възможно е да варират при отделните индивиди. Трето, възможно е ниското ниво на прецизност при интерфейс, основан на говоримия език, да е напълно адекватно при едни приложения, но крайно неподходящо при други. Настоящата статия илюстрира един възможен подход за разработване на интерфейс, основан на говоримия език, за приложения, насочени към редактиране на цветни изображения, и ще демонстрира използването му.
Същинска част
Два вида информация може да бъде извлечена от всяка словесно изразена инструкция за настройване на цветовете: целевата цветова гама, която потребителят иска да промени, и желаната промяна на цвета. В таблица 1 са предложени няколко примера.
Информацията за целевата цветова гама може да се използва за създаване на маски на изображението, които да изолират частите от него, подлежащи на модификации. Подобна маска е илюстрирана на фигура 1, а резултатите от използването на говоримия език при цветовото настройване на изображението от фигура 1 са отразени във фигура 2.
За да се създаде маска на изображението, е необходимо да се определи пиксел по пиксел кои части от него попадат в съответната целева цветова гама, така че всяко наименование на цвят, което попада в целевата цветова гама, да се свърже с определена прототипна локация от цветовото простанство на изображението. Има няколко начина за постигането на подобно „разчленяване“.
При разработката на прототипни приложения до момента използваме стандартизиран речник за наименованията на цветовете, като свързваме всяко едно от тях със съответната му прототипна локация от цветовото пространство на изображението. За целта обикновено използваме системата CIELab, тъй като е лесноразбираема, не се повлиява от типа на използваните устройства и работи на основата на уеднаквени цветови възприятия. Разбира се, може да се използва и всяка друга система, която има подобни предимства. Важно е да не се повлиява от типа на използваните устройства, тъй като това позволява изработеният алгоритъм да бъде лесноприложим без значение какви точно са характеристиките на използвания хардуер, било то принтиращи устройства или монитори. Съответно уеднаквяването на цветовите възприятия е ценно с това, че максимално опростява работата по „разчленяването“, а и обособява отделни наименувани участъци в даден цвят.
Стандартизираният речник за наименованията на цветовете, използван в това приложение, се основава на речника NBSISCC Standard Color Name Dictionary 1–3. Към него сме прибавили няколко наименования за неутралните сиви цветове. Речникът NBS-ISCC съдържа 267 наименования на цветове. В основата са, разбира се, простите наименования, състоящи се от една дума, като червено, зелено, жълто, синьо, черно и т.н. Следват определителите за цветовите отсенки като жълтеникавозелено, синьо-червено, пурпурночервено и т.н. Третото ниво са определителите, които различават степените за наситеност и гамата светли/тъмни. Тук спадат думи като: светли, тъмни, бледи, ясни, наситени и др.
След като вече разполагаме със стандартизиран речник за наименованията на цветовете и съответните му прототипни локации от цветовото пространство на изображението, необходимо е да намерим начин да „разчленим“ на части изображението, така че да са съответни на наименованията, фигуриращи в речника. За определянето на тези части от изображението могат да се използват различни начини. Единственото изискване, което е нужно да бъде спазено, е всяка от прототипните локации от цветовото пространство на изображението да се свърже с поне една част от изображението, като са възможни разкъсвания или припокривания при отделните части. Всяка част може да се състои от несвързани помежду си и много на брой подчасти.
От практическа и експериментална гледна точка методът на разчленяване, предложен от Вороной, може да е доста ефективен. Този метод предполага отличаваща се Вороной клетка за всяка прототипна локация от цветовото пространство на изображението, така че всички цветове в клетката да са по-близки до съответната прототипна локация, отколкото до всяка друга. Двуизмерното разчленяване на набор от точки по Вороной е илюстрирано на фигура 3.
Друг метод, различен като математически подход, но сходен като функционалност на разчленяването на Вороной, предполага съотнасянето на прототипните локации към „възлите“ на kd-tree 6,7 например. Би било ефективно след това да се предприеме търсене на най-близки по смисъл (nearest-neighbor searches) и така да се определи най-близкото наименование за всеки от „спорните“ цветове.
Още един начин за напасване на части от цветовото пространство към наименованията от стандартизирания речник е използването на статистически анализ на резултатите от психологически изследвания относно наименоването на цветовете. Този метод би бил ефикасен при директното напасване на наименованията към частите от цветовото пространство около определени прототипни локации. Трудностите при прилагането на този метод са предимно от практически характер, като времеемкостта е една от тях.
Една от трудностите при използването на стандартизиран речник за наименованията на цветовете е необходимостта потребителите да го познават подробно и да имат желание да го използват. Подобни очаквания като цяло са неоснователни и затова предпочетохме да разработим методи, посредством които доста по обемни речници, състоящи се от обичайно използваните наименования на цветовете, да се съотнасят към стандартизирания речник. Понастоящем използваният по-обемен речник съдържа около 2000 широкоизползвани наименования за цветове. Ако потребителите си служат с наименования, които не попадат в този речник, се използва най-близкото по смисъл наименование в комбинация с Minimum String Edit Distance Algorithm.
Друг начин за определяне на цветовете, които потребителят иска да модифицира, е като се избере онази част от изображението, която ги съдържа. Има и инструменти, които позволяват на потребителя да маркира определена точка от изображението и да зададе цветова гама, близка до маркирания цвят, която впоследствие да бъде модифицирана, но на практика повечето потребители се затрудняват при определянето на цветовата гама.
Вторият важен тип информация, която може да се извлече от коя да е словесно изразена инструкция за настройване на цветовете, е инструкцията за желаната модификация на цвета. Тя може да се използва за създаването на цветна трансформация, която после да се приложи към целевата цветова гама. Три важни елемента трябва да присъстват в инструкцията: свойството на цвета, което подлежи на модификация, посоката и степента на желаната модификация. При значителни цветови промени обаче, когато избраната целева цветова гама е относително малка, могат да се очакват нежелани обрати при промяната на цветовете. Затова разработихме методи за увеличаване на целевата цветова гама с цел да гарантираме плавност и умереност при модификацията.
Създаването на цветова трансформация е свързано първо с постигането на цифрово изражение за посоката и степента на промяната и после с избора на предварително зададени готови форми на трансформация. Цифровите стойности, съответстващи на посоката и степента на модификацията, се използват като параметри при функциите за трансформация. За да се избегнат нежеланите обрати при промяната на цветовете, за които споменахме по-горе, необходимо е стойностите на тези параметри да се нагодят така, че да отразяват реалните цветове от изображението.
След изготвянето на маски на изображението (на основата на целевата цветова гама) и на цветови трансформации (на основата на словесно изразена инструкция за настройване на цветовете) фактическото прилагане на трансформацията към изображението е относително проста работа. Целта на настоящата статия е да разгледа подробностите по намиране на съответствията между словесните описания и цифровите цветови пространства и да покаже какво може да бъде постигнато при използването на подобна система.