Про меру соответствия критерию Лютера-Айвса

Продолжая тему, поднятую здесь: очень хочется понять, как количественно сравнить два сенсора по критерию Лютера-Айвса, который многие так любят.

Несколько месяцев назад я задал вопрос на forum.rudtp.ru, по некоторым причинам (не имеющим отношения к цветовой науке) тема была спрятана и закрыта, но недоразумение разрешено и она теперь распрятана и открыта.

Вот она: "... лучше соответствует критерию Лютера-Айвса".

Если имеете что сказать по теме - я буду благодарен. Лучше - прямо там, если по каким-то причинам удобнее здесь, можно и здесь. Очень хочется разобраться.

Comments

На мой взгляд, самым логичным был бы такой способ.

1. Берётся какой-то спектр освещения.
2. Берётся набор стандартных спектров отражения: человеческой кожи, листьев, или какой-нибудь colorchecker.
3. Для этого спектра освещения рассчитывается оптимальная функция цветокорректировки, в частном случае просто матрица, в общем - таблица.
4. Далее мы можем посчитать, что получилось на выходе сенсора после цветокорректировки, и что получилось в глазу, для каждой из этих красок.
5. Далее мы можем взять какой-нибудь критерий ошибки, например Lab, и чтобы максимальная ошибка в Lab по всем краскам была минимальна, как вариант.

Для совпадающих или линейно приводимых сенсоров ошибка будет 0, т.е. критерий будет выполняться.

На самом деле, пункты 3-5 объединяются в один. То есть, при расчёте оптимальной матрицы обычно как раз ошибка и минимизируется.

"среднее dE на каком-то наборе образцов" - это понятная метрика. Или максимальное dE.
В том смысле, что мы считаем какой-то матричный профиль, общий для всех образцов и смотрим.

Проблем три
1) к обсуждаемому критерию это не имеет вообще никакого отношения :)
2) соответственно, а почему профиль - матричный, если LUT вдруг даст лучшие результаты?
3) при смене набора образцов будет меняться и оптимальный профиль и ранжирование сенсоров в таблице результатов.

Поясню еще:
- если мы говорим о критерии Л-А, то понятно что профиль - матричный, ибо линейная комбинация
- а если о практике, то требование матричности снимается (как у вас и написано в пункте 3)

И, заодно, да: ранжирование сенсоров по "степени соответствия" будет меняться не только с изменением списка образцов (что какбэ нормально), но и при изменении освещения.

А почему факт что разные сенсоры в разных условиях могут вести себя по разному так пугает?

И если в жизни это так, то что теперь :-) ?

В реальности можно взять спектры и поиграться, кстати. Масса вопросов пропадёт, например, по моим экспериментам вклад освещения не самый существенный.

А вот краски важны. Например, учитываем мы чисто спектральные цвета, радугу, или просто берём colorchecker который не слишком контрастен.

Меня - никак не пугает, ибо в жизни так и есть.

Но я то задал конкретный вопрос: "Некоторые авторы используют выражение 'сенсор А лучше соответствует критерию Л-А' /чем сенсор Б/. Не могли бы эти авторы пояснить, что именно имеется в виду" :)

По мне, так из критерия Л-А сделали идола (и приносят ему жертвы). И совершенно зря.

Это, конечно, надо у них спросить, что они имели ввиду.

Я бы поставил сто рублей, что мой вариант, D65 и colorchecker.

1) Критерий формулируется в виде "в идеале спектры должны быть линейной комбинацией". Мой вариант вводит метрику близости к идеалу. В идеале и только в нём эта метрика будет равна 0. Что не так?

2) LUT профили тоже могут рассматриваться, конечно.

3) Что говорит о том, что разные сенсоры в разных условиях могут давать картинку разной степени похожести.

У меня вопрос про другое. Про формулировку "сенсор А лучше соответствует критерию Л-А, чем сенсор Б".

Так как реальные сенсоры не являются линейной комбинацией (не все, я встречал описание колориметра, где особо указывалось что он Л-А), то или сам критерий не имеет смысла для таких сенсоров (есть "идеальные" и все остальные), или же должна быть какая-то численная метрика (независимая от набора патчей/освещения).

Да, есть методика Безрядина, на которую вы сослались, но, как я и написал в треде на rudtp, меня она смущает тем, что R* color space - это маргинальщина в Color Science. Хочется мейнстриму.

Что такое R* color space?

Быстро не ответишь (может кто и может, но я - точно нет).

http://www.amazon.com/Visual-Color-Mixture-FUNDAMENTAL-COLOR/dp/0252025490

Мне удалось найти эту книжку среди бесплатных ебуков в свое время.

Книжку нашёл, скачал, но если честно понять не смог зачем это всё вообще даже.

В любом случае, тут нужно равноконтрастное пространство, а это вполне себе color sciense, в общем Lab как раз разрабатывался как такое пространство.

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

Получается, что случай "вообще" должен как-то это учитывать, ибо мы получаем гигантскую ошибку. Вся инфракрасная фотография как бы говорит нам: Лютер и Айвс отдыхают.

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

Обычно все снимают в более-менее нормальных условиях, и хотят получить картинку похожую для нормальных условий.

Я вот тоже ее полистал и ниасилил.

И к применению этого пространства для оценки "среднего dE" у меня тоже претензии, по этому методу фовеон получился неплох, а в реальности он нехорош.

А если отвлечься от цвета вообще и посмотреть на вопрос чисто математически?
Скажем, возьмем LUT сенсора, нагло аппроксимируем ее, сведя к матрице (да так, чтобы матрица священному критерию соответствовала) а потом посчитаем каким-нибудь способом отклонение этой LUT от идеализированной матрицы и эти отклонения будем сравнивать?

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

Ну да, именно "каким-нибудь способом".

Вопрос - именно про способ этого подсчета, такой чтобы он был
а) разумным с точки зрения классической современной цветовой науки
б) не упирался бы в конкретный набор образцов, по которым считается dE (среднее или максимум).

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

Ну а минимизация dE по конечному набору образцов - это банально. Хотя и вполне жизненно.

Sony-Nikon-Canon камень-ножницы-бумага, самого лучшего из них нет.

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

p.s. почитал по ссылке -- обе здравых идеи ("плашек" и "наименьших квадратов") тобой отвергнуты :-)) с негодованием.

1) dE по набору плашек имеет только то отношение к Л-А, что профиль матричный. Ну а зачем ограничивать себя матричным, если вдруг LUT работает лучше?
1b) Выражение "лучше соответствует критерию" - произносится безотносительно плашек.

2) Наименьшие квадраты по спектру (без взвешивания) - глупо, ибо глубоко-фиолетовый (который всем глубоко фиолетов) имеет тот же вес, что и зеленый.

Т.е. какая-то метрика вроде наименьших квадратов но с весами по спектру - выглядела бы разумно (и ее можно было бы попроверять на практике)

Дабы учесть наблюдателя, надо бы анализ дисперсии проводить после того, как конкретные значения отклонений "поправлены" в соответствии со способностью наблюдателя это отклонение различить (домножены на вес). Это было бы и научно и практично. Загвоздка одна - способность наблюдателя различать цвет более чем непостоянна, зависит, как минимум, от освещенности (яркости) и спектра освещения. И какие условия брать (чтобы из них выдернуть зависимость способности к различению от длины волны) - фиг знает, потому что если опять взять "солнечный день" какой-нибудь, это снова будет сферический наблюдатель, просто условия более конкретные, но не менее частные.

Смотрите:
1) утверждается, что сенсор, соответствующий обсуждаемому критерию, - идеален (с точки зрения цветовоспроизведения). Т.е. путает те же стимулы (разноспектральные), что и наблюдатель (предположим, усредненный наблюдатель), различает - те же стимулы, что и наблюдатель. Независимо от внешних условий (с некоторой натяжкой - речь идет только о цветном зрении т.е. о яркостях "светлее сумерек").

При этом весь критерий - это о спектральных чувствительностях (трехканального) сенсора, о яркостях нам не говорят.

2)Сенсор, который критерию не соответствует - начинает путать стимулы, которые различает человек. И наоборот, различать те, которые человек путает (но это "наоборот" - несущественно, потом можно это излишнее различение как-то свести профилем или еще чем к неразличению).

3) Хочется процедуры, которая отранжирует сенсоры из пункта 2 по их "качеству" т.е. близости к человеческому зрению.
Но так как сенсоры из пункта 1 - являются хорошими независимо от набора тестируемых плашек и освещения, то и процедуры хочется такой, чтобы давала строгое ранжирование "по качеству". С учетом чувствительности глаза в разных участках спектра и/или участках цветовой палитры.

4) Если таковой общепринятой процедуры нет - то критерий Лютера-Айвса лучше бы забыть и в отношении реальных сенсоров (которые отклоняются от идеала из пункта 1 довольно далеко) - не применять.

5) При этом, конечно, сравнивать сенсоры по качеству воспроизведения - имеет смысл. Но если не удается придумать ничего лучшего, чем набор образцов под каким-то освещением - то использовать именно такую частную процедуру, с оговорками по применимости.

6) Используя же процедуру из пункта 5 - конечно не нужно ограничиваться линейной комбинацией (т.е. матричным профилем). Если нелинейные профили решают задачу лучше, то и прекрасно.

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

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

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

Подвох заключается в том, что
1) Формулировку "лучше/хуже соответствует критерию" - употребляют известные в России специалисты в Color Science (можно найти в их статьях и в их выступлениях на форумах).
2) А объяснить как посчитать это лучше/хуже в терминах mainstream Color Science - не могут. Нутром чуют и все.

Я то изначально (задавая вопрос) был уверен что могут, а мне просто не хватает знаний: в той дискуссии на rudtp, которая пострадала в мае, а сейчас - восстановилась, мне был дан ответ, что это все очевидно и есть в литературе, но похоже что этот ответ был дан сгоряча и сейчас его там нет.

Учитывая, что Color science является, по сути, ремеслом, а не наукой (в том смысле, что любые исследования носят уже только практический, а не научный характер), есть "нутряное ощущение", что официального метода исчисления отклонений от идеала просто нет. Так бывает.

Там есть все признаки научной науки.
Другой вопрос, что на стыке психо-физиологии с физикой и еще много чем - много не наслесаришь.

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

Насколько я понимаю, весь сабж в том, что распространенные формулы цветового отличия хорошо применимы только в одной области - в сравнении значений двух конкретных цветов (патчей, плашек, кому что..)
Т.о. приходим к следующим выводам:
1. Т.к. безотносительно чего-либо мы не можем проверить, насколько хороша та или иная матрица, нам нужен эталон(ы) (проблема легко решаема, вплоть до создания синтетических изображений по спектральным характеристикам);
2. Методы "усреднения абсолютных разниц" (в любой метрике), расчета среднеквадратичных отклонений нам изначально не подойдут, т.к. при точном воспроизведении (совпадении с оригиналом на 100%) 99% пикселей матрица может оказаться ужаснейшей именно из-за кривизны этой ложки дёгтя в 1%;
3. Количество эталонов для "промеров" должно быть достаточно большим для увеличения статистической точности и соответствующего ранжирования. Да, при смене набора образцов будет меняться и порядок ранжирования. Да и для каждой матрицы будет свой "идеальный образец", несомненно, с которым она даёт лучший результат, от этого не убежать, поэтому образцов должно быть много.
4. Нам нужно соответствие критерию Лютера Айвса? Кому, вам? Сомневаюсь, простите за категоричность. Мне? Нафиг не надо, еще одна мерялка. Имхо, в итоге всем нужна метрика сравнения изображения с неким эталоном, хорошо коррелирующая с субъективной оценкой некоторого "среднего наблюдателя", которая позволит сказать, что на данном тестовом наборе изображений матрица 1 "более лучше", чем матрица 2.
5. Велосипед изобретать не будем, для сравнения качества видеокодеков с эталоном давно уже придуманы специальные метрики, такие, как SSIM, 3-SSIM, S-SSIM, методы на основе вейвлетного разложения, и т.д., которые изначально обкатывались именно на сравнении Изображений, что, собственно, нам и нужно. Единственный недостаток большинства из них, будете смеяться, в том, что большинство их программных реализаций сравнивают grayscale кадры, вычисленные тем, или иным способом, но, как говорится, что нам мешает...
6. Немного погуглив "color difference metric" и "ssim and colors", наткнулся на довольно интересную статью, в которой сравниваются некоторые метрики, пруф ниже.
7. Интересно, что получится, если, скажем, прикрутить CIECAM'02 или iCAM к SSIM-подобной метрике, отдельно учитывающей текстуры, контуры и градиенты..
http://www.imaging.org/ist/publications/reporter/articles/REP25_5_CGIV10...

Не, ну с (каким-то) набором плашек (цветов), хоть даже с целым изображением с миллионами пикселов - проблем же нет. Можно dE посчитать, а потом как-то взвесить.

Но эта метрика ничего не будет говорить о других цветах.

ИМХО, тогда задача может быть решена только статистически, и не особо точно, т.к. в реальности существует бесконечное количество спектров, и посчитать dE для ВСЕХ не представляется возможным, да и нужным, т.к. в жизни человека они совсем другие, имеющие свои распределения. Т.е. нужна статистика, огромная база спектральных откликов нашего необъятного мира!

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

Тут проблема.

Количество (различимых) цветов - конечно. А количество спектров, которые интегрируются (в буквальном смысле - по длине волны) в это количество цветов - несколько больше.

Дальше берем два спектра (неразличимых глазом) - и получаем для них разное dE. И что?

Вы не произольные спектры берите (их и вправду бесконечное количество), а нахудшие по dE.

Если мы берем реальные спектры реальных объектов, то их не будет очень уж много - и надо банально брать их все.

А если мы берем всякие выдуманные спектры из лазерного шоу, то нет процедуры построить спектр с заданным цветом (для глаза) и максимальным dE (для камеры).

Попробовал посчитать уровни соответствия сенсоров критерию Лютера-Айвса не оперируя колориметрией, ибо нереально как мне кажется, а исходя лишь из спектральной чувствительности сенсоров и той самой линейной комбинации. К сожалению облученных монохроматором сенсоров у меня не так уж и много (28). Описание алгоритма расчетов тут https://forum.rudtp.ru/threads/urovni-sootvetstvija-sensorov-kriteriju-l... и ниже в 6 посте.
Информация о сенсорах представлена тут https://cielab.xyz/spectralcalc/CMF_AllknownCameras_400_720_10.txt
Расчеты производятся тут https://cielab.xyz/spectralcalc.php
Собственно функция на яваскрипте тут https://cielab.xyz/spectralcalc.js, далее поиском - function Luther_Ives()
Те же формулы, что в скрипте в понятном всем виде Excel тут https://forum.rudtp.ru/resources/k-teme-ljutera-ajvsa-excel.2144/

1) я давно продолбал пароль от rudtp и не испытываю желания восстанавливать (раз тут помянули, тут и буду отвечать).

2) Я, конечно же, никакого кода (или эксельной формулы) не читал (мне в данную секунду своего кода хватает, разбираться в чужом - ну может вечерком, но скорее всего забуду), а пользуюсь текстовым описанием, вот этим:

Собственно исходя из этого я и посчитал уровни соответствия этой самой линейной комбинации - чем нелинейней коэффициент умножения - тем хуже сенсор.

Насколько я понял, вы разбираетесь с каналами отдельно т.е. в предположении что матрица преобразования глаз-сенсор (или обратная) - диагональная.

Но линейная комбинация - это не только диагональные матрицы же. Прежде чем мне лезть разбираться с этим, может вы поясните формулами, а не javascript/excel калькулятором?