Чем измерить эстетичность. Энтропия и вариативность гармонизированного изображения

«Вовсе не обязательно, что бы всюду был смысл: смешно — ну и ладно.»  
(Пол Маккартни)

А займемся-ка мы сегодня изучением такого важного параметра как энтропия информации и её производного: энтропии изображения и всем тем, что к ней приводит. И главное, осознаем чем она нам может быть интересна. К примеру, почему бы нам не придумать какой-то численный индикатор эстетики в изображении, и попробовать в этом контексте энтропию в плане измерения «эстетичности» изображения, выяснив предварительно, что можно под этим термином понимать.

Интуитивное против прагматичного

Все мы нередко сталкиваемся с противоречивыми утверждениями. Часто реакцией здравомыслящих людей осмыслить противоречия, является попытка найти «середину» — как мерилу истины. «Истина — по середине», кому не известна эта фраза?  Конечно же, для критически настроенного ума с техническим прошлым, такое утверждение не имеет с реальностью ничего общего. Во первых, истина не может быть по середине, поскольку характеризуется некоей оценкой, а стало быть не размещается в точной позиции. Во вторых, середина не имеет гармонических рядов, и даже музыкальная теория подразумевает, непропорциональное следование интервалов в гармонических значимых соотношениях.  В третьих, даже если допустить, что истина не одна, и подразумевает распределение по выборке экспертных мнений претендующих на истинное представление этих оценок, то замеры распределений этих утверждений, скорее всего, будут делимы по медианте.

Сегодня мы попытаемся оттолкнуться от простой предпосылки, или противоречия порождаемого некоторыми способами мышления: мышления художественного или интуитивного и технического, или прагматического. Одним из важных аспектов визуального искусства, является представление об эстетике объекта этого искусства субъектом наблюдающим исследуемый объект. А так же попытаемся опереться на синтетическое определение эстетики как измеряемой величины. Очевидно, это заявление не имеет решения в обоих пространствах мышлений одновременно, хотя бы в силу того, что первое не требует измерений, а второе не работает с неизмеряемыми абстракциями. Тем не менее, мы покажем, что при некотором допущении такой подход возможен и может быть обоснован с обоих позиций.

Мышление интуитивное или художественное не требует описания или представления эстетики количественной величиной или величиной измеряемой объективными инструментальными средствами. Для такого типа мышления достаточно субъективного утверждения в сильно ограниченных градациях оценок: хорошо/плохо; гениально/замечательно/посредственно и т.д.

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

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

Вариативность цвето-контрастности изображения

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

Если присмотреться к полотнам лучших мастеров художественной школы мира, или лучшим фотографиям или проектам лучших фотографов, можно заметить некоторое общее свойство: её можно условно назвать как интуитивно воспринимаемая «емкость» работ. При этом суть стилистики в представлении объекта инвариантна относительно восприятия. Сегодня мы не будем разбираться с общим понятием «емкости» или «ценности» произведений искусства, а поговорим об информационной емкости ординарных изображений, получаемые нами, для собственных «эстетических» нужд и попытаемся описать характеристику измеряющую относительную информационную ценность произвольного изображения. Будем считать, что таким образом, мы измеряем количество его «эстетики».

Что бы не погрязнуть в необъятном, в рамках сегодняшнего поста сузим область исследования до границ эстетики цвета изображений. И поговорим о возможностях связанных с некоторыми выводами этого исследования. У Павла Косенко есть замечательный обзор того, как мы можем воспринимать цвет изображения с некоторым интуитивным обоснованием технического аспекта этой проблемы: Что такое хороший цвет? Как следует из предложенной техники анализа цветного изображения, «ценность» изображения мы можем описать его цветовым представлением или его цветовой композиции, т.е. набора «условно совместимых» или гармонизированных по отношению друг к другу цветов. Гармоничность цветового решения мы можем оценить визуально используя наши собственные субъективные представления о цвете, или, например, используя инструмент разлагающий изображение на палитру. Но как сравнить или померять уже гармонизированное по палитре и композиции изображение? Какое из  изображений будет более эстетично относительно другого? И как усилить эффект от уже достигнутой гармонизации повысив замеренное?

Для этого мы введем понятие цвето-контрастной вариативности изображения или просто вариативности. Под ней будем понимать сколько различных тонально-яркостных оттенков цветов присутствует на изображении. Это не значит, конечно, что все цвета присутствующие в природе и одновременно запечатленные в изображении повысят его художественную ценность. Как отмечалось выше, речь идет об уже гармонизированной в смысле цветовой композиции картинке.

Энтропия изображения. Вариативность как функция энтропии

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

По сути информационная энтропия — это мера неопределенности информации. Понятие энтропии известно с XIX века благодаря работам немецкого физика Рудольфа Клаузиуса, который ввел в 1851 году энтропию для объемов газа и дал формулы её вычисления из параметров газовой среды. Сущность энтропии и её меру открыл в 1871 году другой большой физик Людвиг Больцман. Он рассматривал количество неопределенности молекул газа в объеме замкнутого пространства (замкнутой системы) и решил проблему физического смысла энтропии как меру хаоса молекул в некотором объеме газа. Именно в этом и состоит физический смысл энтропии: чем больше неопределенности в состоянии всех частиц газа или чем они подвижнее в замкнутой системе тем выше энтропия этой системы.

Wilderness
Филип Лекё. Дикость.

 

Энтропия, как мера количества информации, была определена отцом-основателем теории информации Шенноном расширившим идею Хартли о количестве информации (мера Хартли). По Шеннону, информационная энтропия — математическое ожидание H(x) случайной величины I(x) определенной на ансамбле {Х, р(х)}, т.е. она характеризует среднее значение количества информации, приходящееся на один символ. В случае с изображением, энтропию можно описать как количественную меру свето-контрастности изображения представленного в градациях серого. Т.е. энтропия изображения как величина, говорит нам насколько много разных интенсивностей может содержать это изображение. Очевидно, для цветного RGB-изображения поканальная энтропия покажет насколько много разных интенсивностей будет содержать каждый канал изображения, т.е. насколько вариативно будет представление данных в разных его каналах, а среднее значение поканальных энтропий можно интерпретировать как меру информационной наполненности цветного изображения.

С другой стороны такое представление энтропии каналов цветного изображения не говорит нам ничего о количественной мере информации  как набора тональных оттенков.  Для оценки цветовых тонов можно пересчитать RGB-пространство в удобное для снятия распределения тонов и насыщенностей: Lab, HSB и т.п., и по ним уже рассчитать энтропию тонов и насыщенностей,  но в таком случае мы не сможем ничего сказать о количественном влиянии энтропии «физических» каналов изображения на эту его характеристику. Поэтому выберем в качестве цветового пространства все то же RGB, а в качестве «физических» величин описывающих тона цветов и их насыщенность одновременно: значение квадрата модуля вектора интенсивностей в каналах rgb пространства RGB как трехмерного геометрического куба.

RGB_color_cube

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

{V =\frac{H+C}4} , где

{H = -\sum_{c=0}^{2}\sum_{i=0}^{N-1}h_{c,i}log_2(h_{c,i})} — сумма энтропий каналов гистограммы изображения, {N} — ширина гистограммы
{C = -\sum_{i=0}^{N-1}a_{i}log_2(a_{i})} — сумма энтропий гистограммы модулей векторов RGB
{h_{c,i}} — гистограмма распределения интенсивностей каналов
{a_{i} = h(r_i^2+g_i^2+b_i^2)} — гистограмма распределения квадрата модуля вектора в RGB-пространстве

Следствие определения вариативности

Если мы еще раз посмотрим на представление цвета в пространстве HSB (которое всего лишь упрощает восприятие, нежели если мы попытаемся представить тоже самое в 3D-проекции RGB-пространства), то заметим одну интересную особенность: тело HSB имеет явные точки схождения в зависимости от насыщенности цвета и его яркости. При этом мы не забываем, что тело это представлено дискретными значениями интенсивностей по каждому из каналов количество которых ограничено точностью квантования (8bit,24,32 и т.д.):

HSB
Схождение по насыщенности изменяет набор возможных вариантов представления цвета для выбранного диапазона квантования
HSB01
Свойство сходимости интенсивностей так же изменяет количество возможных представлений цвета

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

Таким образом: меняя насыщенность и контраст мы можем управлять вариативностью изображения, а значит управлять степенью эстетического воздействия на подготовленного наблюдателя. Более того, в большинстве случаев повышение контраста и снижение насыщенности приводит к повышению не только вариативности, но и в первую очередь к повышение энтропии изображения.

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

Практические упражнения по вычислению вариативности изображения

Для иллюстрации описанного метода вычисления вариативности, а также демонстрации того как можно воспользоваться следствием его определения, будем использовать фреймворк IMProcessing. Скачать готовый проект для сборки приложения можно из репозитория ImageMetalling. Основная идея упражнения будет состоять в проверке вышеописанного предположения: повышая контраст и снижая насыщенность мы повысим вариативность. Дополнительно добавим в наше приложение слой предварительно корректирующий цветовой баланс, как мы покажем на этом примере — предварительное выравнивание по доминантному цвету, также повышает общую вариативность.

Вычисление энтропии уже реализовано в классе IMPHistogram:

public extension IMPHistogram {
    public func entropy(channel index:ChannelNo) -> Float{
        var e:Float = 0
        let sum     = binCount(index)
        for var i = 0; i < size; i++ {
            let Hc = self[index][i]
            if Hc > 0 {
                e += -(Hc/sum) * log2((Hc/sum));
            }
        }
        return e
    }
}

Нам надо добавить небольшое расширение добавляющее методы вычисления средней энтропии и вариативности. Гистограмму модулей вектора rgb вычислим модифицировав ядро вычисления обычной гистограммы заменив значение канала Y на значение модуля. Сам модулю нормализуем к 1.

Код ядра:

kernel void kernel_variabilityPartial(
                                       texture2d<float, access::sample>   inTexture  [[texture(0)]],
                                       device   IMPHistogramBuffer        *outArray  [[ buffer(0)]],
                                       constant uint                      &channels  [[ buffer(1)]],
                                       constant IMPCropRegion             &regionIn  [[ buffer(2)]],
                                       constant float                     &scale     [[ buffer(3)]],
                                       uint  tid      [[thread_index_in_threadgroup]],
                                       uint2 groupid  [[threadgroup_position_in_grid]],
                                       uint2 groupSize[[threadgroups_per_grid]]
                                       )
{
    threadgroup atomic_int temp[kIMP_HistogramMaxChannels][kIMP_HistogramSize];

    uint w      = uint(float(inTexture.get_width())*scale)/groupSize.x;
    uint h      = uint(float(inTexture.get_height())*scale);
    uint size   = w*h;
    uint offset = kIMP_HistogramSize;

    for (uint i=0; i<channels; i++){
        atomic_store_explicit(&(temp[i][tid]),0,memory_order_relaxed);
    }

    threadgroup_barrier(mem_flags::mem_threadgroup);

    for (uint i=0; i<size; i+=offset){

        uint  j = i+tid;
        uint2 gid(j%w+groupid.x*w,j/w);

        uint4  rgby = IMProcessing::channel_binIndex(inTexture,regionIn,scale,gid);

        //
        // Заменяем канал яркости гистограммы на квадратичное расстояние вектора RGB
        // который описывает
        //
        rgby.y = uint(length_squared(float3(rgby.rgb))/3);

        for (uint c=0; c<channels; c++){
            atomic_fetch_add_explicit(&(temp[c][rgby[c]]), 1, memory_order_relaxed);
        }
    }

    threadgroup_barrier(mem_flags::mem_threadgroup);

    for (uint i=0; i<channels; i++){
        outArray[groupid.x].channels[i][tid]=atomic_load_explicit(&(temp[i][tid]), memory_order_relaxed);
    }
}

Код расширения класса IMPHistogram:

//
// Расчет цветоконтрастной вариативности изображения по гистограмме
//
extension IMPHistogram {
    func variability()  -> Float {
        var e:Float = 0
        for i in 0..<channels.count {
            e += entropy(channel: IMPHistogram.ChannelNo(rawValue: i)!)
        }
        return e / channels.count.float / log2(size.float) * 100
    }
}

Значение вариативности нормализуем к 100. Минимальное значение может быть 0, максимальное 100. На практике диапазон будет находится приблизительно между 60 и 95.

Код приложения можно посмотреть открыв проект. В результате сборки проект получим приложение позволяющие менять насыщенность, менять контраст и расчитывать вариативность источника и результата:

RedsVariations
Последовательно: оригинал, повышение насыщенности, снижение, повышение контраста, поиск максимума вариативности. Как можно заметить, простое снижение насыщенности добавляет вариативности не только в цифрах, но и хорошо заметно глазом.
Water
Последовательно: оригинал, повышение насыщенности, повышение контраста и применение авто-цветокоррекции,  поиск максимума вариативности, снижение насыщенности.
LowSaturation
Обработанная фотография изначально имеющая высокую, для такого типа композиций, вариативность. Добавление насыщенности незначительно повышает вариативность, но при дальнейшем увеличении начинает её снижать. Работа с контрастностью и коррекцией по доминантному цвету, тем не менее, добавляет вариативности.
WaterSimple
Простое повышение вариативности на базе авто-цветокоррекции по доминанте, усиление контрастности и снижение насыщенности.
WaterDehancer
Более сложная обработка может привести к еще большему усилению, но в основе все равно остается: снижение насыщенности и повышение контрастности.

 

Заключение

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

 


Авторы блога не преследуют задачи быть предельно корректным, но если заметили явную ашипку, если написали явную глупость, если что-то не понятно: комментируйте или пишите на: imagemetalling [*] gmail.com.

 

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s