2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6  След.
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 14:06 
Заслуженный участник


20/08/14
11058
Россия, Москва
Andrey_Kireew в сообщении #1341602 писал(а):
По какому критерию искать этот оптимум?
Это вопрос очевидно к ТС=wrest.

wrest в сообщении #1341603 писал(а):
На примере спектральных цветов:
Т.е. Вы априори ограничиваетесь лишь спектрально чистыми цветами? Как-то это слишком уж, я выше убедился что задача распознавания спектров намного шире.
Если не ограничиваетесь, то как сравнивать распознавание не монохроматических спектров?
wrest в сообщении #1341603 писал(а):
Ну не знаю как в вашей, а в моей жизни мало зеленого.
На 80% уверен что если вам поставить фильтр между глазом и мозгом, приводящий все изображения к ч/б с 16-ю градациями яркости - ничего особо в вашей жизни не изменится. Красоты станет меньше, но функциональность жизни не пострадает. Так может убить нафик все колбочки и расширить динамический диапазон палочек, а? :mrgreen: Это ж сколько экономии и плюсов (улучшение углового разрешения к примеру).

arseniiv в сообщении #1341604 писал(а):
На основании $\Delta E$; этот вопрос можно уже считать закрытым,
По моему нет, нельзя. Закрыт он ровно в одном единственном случае: если мы добиваемся строго равномерного размазывания распознаваемых цветов по всему многомерному кубу возможных входных спектров. Это очень сильное ограничение и пока я его в теме не углядел (тут имхо вообще до сих пор не вылечена путаница между спектрами и монохроматическими линиями, непонятно что же нужно распознавать).

-- 26.09.2018, 14:14 --

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

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 14:21 


07/10/15

2400
Dmitriy40 в сообщении #1341614 писал(а):
Закрыт он ровно в одном единственном случае: если мы добиваемся строго равномерного размазывания распознаваемых цветов по всему многомерному кубу возможных входных спектров


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

-- 26.09.2018, 15:28 --

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

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 14:36 
Заслуженный участник


27/04/09
28128
Andrey_Kireew в сообщении #1341613 писал(а):
что это значит?
Что от цветового диапазона нет зависимости, что бы он ни означал (диапазон длин волн?).

Dmitriy40 в сообщении #1341614 писал(а):
По моему нет, нельзя. Закрыт он ровно в одном единственном случае: если мы добиваемся строго равномерного размазывания распознаваемых цветов по всему многомерному кубу возможных входных спектров. Это очень сильное ограничение и пока я его в теме не углядел (тут имхо вообще до сих пор не вылечена путаница между спектрами и монохроматическими линиями, непонятно что же нужно распознавать).
Чего-то я не понял, почему это влечёт строго равномерное размазывание по пространству спектров. Спектры в наборе могут располагаться там весьма нерегулярно.

Но действительно надо ждать, пока wrest определится, а то мне тоже не нравится постановка с различением только монохроматических спектров (в качестве одной-единственной универсальной — в качестве одной из специальных пускай).

-- Ср сен 26, 2018 16:38:28 --

Andrey_Kireew в сообщении #1341618 писал(а):
Поэтому и задать длинны их волн нужно однозначно. Собственно это и будет критерий оптимизации.
Форма кривых чувствительности тоже влияет, нужно оптимизировать её всю. По крайней мере, так завещал ТС.

Andrey_Kireew в сообщении #1341618 писал(а):
А равномерно распределить контрастную чувствительность сразу для всех возможных цветов, используя всего 3цветовые координаты, попросту невозможно.
Не совсем с точки зрения колориметрии понятное высказывание.

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 14:42 
Заслуженный участник


20/08/14
11058
Россия, Москва
Andrey_Kireew в сообщении #1341618 писал(а):
Размерность непрерывного спектра бесконечна,
Да, поэтому мне проще оперировать конечномерными пространствами, уже квантованными по уровню и частотам, так количество разных входных спектров конечно (как и множество выходных комбинаций сигналов) и задача сводится к отображению большого множества в малое. Правда нужен ещё критерий качества такого отображения. Но по крайней мере тут всё понятно и уже можно что-то считать.

arseniiv в сообщении #1341621 писал(а):
Чего-то я не понял, почему это влечёт строго равномерное размазывание по пространству спектров. Спектры в наборе могут располагаться там весьма нерегулярно.
Разве тогда в функции не нужны параметры этого расположения (ограничений на него)? Или Вы игнорируете эту неравномерность и оптимизируете без учёта получаемой неравномерности? Тогда это очень специальная задача, к исходной довольно отдалённая.

-- 26.09.2018, 14:56 --

Подумалось: задача сильно похожа на давнюю задачу преобразования true color image в 256-color. Ровно то же самое деление многомерного куба на 256 областей. Здесь лишь больше размерностей и чуть больше выходных кодов. А алгоритмы можно взять те же самые. Вид спектральных кривых колбочек можно восстановить из функций (таблиц) преобразования. Условия точности распознавания цветов будут влиять на алгоритм деления куба на области.
Короче затык всё ещё в критерии оптимальности и входном множестве различаемых цветов.

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 15:17 


05/09/16
11461
arseniiv в сообщении #1341621 писал(а):
Но действительно надо ждать, пока wrest определится, а то мне тоже не нравится постановка с различением только монохроматических спектров (в качестве одной-единственной универсальной — в качестве одной из специальных пускай).

Для начала -- монохроматических. Уже на них, я думаю, должна появиться оптимальная форма "колокола".
Затем - и я об этом писал -- чернотельных.
wrest в сообщении #1341035 писал(а):
Дальше надо как-то перейти не к спектральным, а к смешанным. Ну например: сколько цветов черных тел (цветовых температур) различаем при такой и сякой формах и расположениях спектральных колбочек.
Так мы сможем стать ходячими пирометрами.
Потом моя фантазия иссякла.

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 15:26 
Заслуженный участник


27/04/09
28128
А, ну тогда пробуйте! Эти-то спектры ни в какой базе, за которую надо платить, не лежат (сегодня поискал и не удовлетворился).

Dmitriy40 в сообщении #1341625 писал(а):
Разве тогда в функции не нужны параметры этого расположения (ограничений на него)? Или Вы игнорируете эту неравномерность и оптимизируете без учёта получаемой неравномерности? Тогда это очень специальная задача, к исходной довольно отдалённая.
Да, в моём варианте максимизируется минимум $\Delta E(L_i,M_i,S_i,L_j,M_j,S_j)$ по всем парам $(i, j)$ спектров ($L_i,\ldots$ получаются применением трёх неизвестных линейных функций, которые мы и ищем).

-- Ср сен 26, 2018 17:27:35 --

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

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 16:17 


05/09/16
11461
arseniiv в сообщении #1341638 писал(а):
А, ну тогда пробуйте!

Я не умею! :facepalm:

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 16:26 
Заслуженный участник


27/04/09
28128
Честно говоря, я бы сам стал оптимизировать каким-нибудь чёрным ящиком типа какой-нибудь функции из Mathematica, просто лень писать код пока.

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 17:04 
Заслуженный участник


20/08/14
11058
Россия, Москва
Раз задача различать цвета, то можно проигнорировать амплитуду входного излучения, ограничиться лишь частотой. Потом принять все колбочки одинаковыми за исключением положения пика по частоте. Получаем перебор по типам функций (насколько фантазии хватит) и по положением пиков, для каждого варианта идём по частоте с некоторым мелким (или адаптивным) шагом и ищем моменты смены кода на выходе с учётом квантования по уровням чувствительности (ограничиться парой десятков уровней), считаем количество выходных кодов, выбираем наибольшее. Если ограничиться несколькими тысячами распознаваемых цветов перебор не сильно большой (да ещё и оптимизируемый). PARI/GP вполне справится, ну может для начала ещё чуть огрубить детализацию.
В качестве функций взять: прямоугольник (без перекрытия, для сравнения), треугольник, 2-3 трапеций разной ширины, 3-4 гауссианы с разной полушириной, перевёрнутую параболу, гиперболу, да хоть обрезанную по нулю $\sin x /x$ (фантазия кончилась).
Кроме количества кодов на выходе можно считать ещё и максимальное расстояние между центрами соседних распознаваемых областей частот, для проверки разрежения цветов где-то.
Это ещё не решение задачи, скорее лишь грубая оценка. Методом грубой силы, зато без особо продвинутой математики. :-(

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 17:17 


05/09/16
11461
Dmitriy40 в сообщении #1341683 писал(а):
Раз задача различать цвета, то можно проигнорировать амплитуду входного излучения, ограничиться лишь частотой.
В случае монохроматического - да. В случае смешанного - у него нет амплитуды :D есть тока какая-то "яркость", "светлота" ну или "ватты".
Dmitriy40 в сообщении #1341683 писал(а):
PARI/GP вполне справится,
На меня намекаете? :D Не, я только общими словами... До PARI/GP у меня дело не дойдёт.

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 17:55 
Заслуженный участник


20/08/14
11058
Россия, Москва
На Вас, на Вас. :D
В случае смешанного придётся чуть сложнее считать амплитуду перед квантованием по уровню, не просто перемножить амплитуду на кривую чувствительности, а брать произведение спектров. Грубо говоря это замена одного произведения на сумму произведений. Считаться на пару порядков дольше и ещё один свободный параметр перебора (вид спектра излучения, для начала без амплитуды, её можно получать из других условий типа единичной мощности).
Кстати для 5-10 уровней и монохроматических цветов можно даже на бумажке и калькуляторе попробовать просчитать ... Нарисовать кривые чувствительности в сетке уровней квантования и сразу глазом будет видно в каких диапазонах частот выходной код не меняется.

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 21:16 
Заслуженный участник


27/04/09
28128
Ловите первые (и странные [на самом деле нет — прим. из будущего]) результаты!

Я взял матрицу XYZ→LMS из CIECAM02 и ΔE по CIE94 (потому что более точные ещё муторнее считать и к тому же функция Mathematica для этой у меня уже была написана). Нормализовал все цвета до $L = 50$. Взял 7 полос (по 50 нм, от 400 до 700 нм) и монохроматические спектры с теми же семью частотами. Оптимизировал обычной функцией NArgMax.

Получились вот такие спектральные чувствительности (красным «L», зелёным «M», синим «S»):

Изображение

Линиями соединены для удобства. Считалось аж ~80 секунд (почему-то за три раза, когда я уже начал считать время в коде, каждый раз прибавлялось по 20 секунд, от 60 до 100). Для традиционных 31 полос даже не знаю сколько будет, но попробую подержать какое-то время.

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

-- Ср сен 26, 2018 23:18:54 --

А может он и вообще далёк от глобального, потому что мы могли бы поменять все спектральные полосы местами как угодно, и целевая функция принимала бы то же значение.

-- Ср сен 26, 2018 23:21:10 --

Так что предлагаю wrest перемешать их так, чтобы формы и положение кривых стали похожими на обычные. Хм, надо было сделать вывод чисел, чтобы выложить их здесь.

-- Ср сен 26, 2018 23:25:53 --

Ах да, текущий код этой профанации затеи:

(в спойлере)

Код:
(* определения *)

On[Assert]

mXyz2lms = {{0.7328, 0.4296, -0.1624}, {-0.7036, 1.6975, 0.0061}, {0.0030, 0.0136, 0.9834}};
mLms2xyz = Inverse@mXyz2lms;
deltaELab[lab1 : {l1_, a1_, b1_}, lab2 : {l2_, a2_, b2_}] := Block[
    {c1, c2, deltaCsqr, deltaHsqr, dlsqr, dcsqr, dhsqr},
    c1 = Sqrt[a1^2 + b1^2];
    c2 = Sqrt[a2^2 + b2^2];
    deltaCsqr = (c2 - c1)^2;
    deltaHsqr = (a2 - a1)^2 + (b2 - b1)^2 - deltaCsqr;
    dlsqr = (l2 - l1)^2;
    dcsqr = deltaCsqr/(1 + 0.045 c1)^2;
    dhsqr = deltaHsqr/(1 + 0.015 c1)^2;
    Sqrt[dlsqr + dcsqr + dhsqr]]
labFc1 = N[(6/29)^3];
labFc2 = N[(1/3) (29/6)^2];
labFc3 = N[4/29];
d65xyzN = {95.047, 100.000, 108.883};
labF[t_] := If[t > labFc1, t^(1/3), labFc2 t + labFc3]
xyz2lab[xyz_] := Block[{x0, y0, z0},
    {x0, y0, z0} = xyz/d65xyzN;
    {116 labF[y0] - 16,
     500 (labF[x0] - labF[y0]),
     200 (labF[y0] - labF[z0])}]
labNorm[lab : {l_, a_, b_}] := If[l == 0, lab, {50, a, b}]
deltaELabNorm[lab1_, lab2_] := deltaELab[labNorm@lab1, labNorm@lab2]
deltaELms[lms1_, lms2_] := deltaELabNorm[xyz2lab[mLms2xyz.lms1], xyz2lab[mLms2xyz.lms2]]

response[spectrum_, bands_][f_] := spectrum.(f /@ bands)
lmsResponses[spectrum_, bands_] := response[spectrum, bands] /@ {l, m, s}
responseVars[bands_] := Join @@ Table[f[band], {f, {l, m, s}}, {band, bands}]
responseVarCons[bands_] := And @@ (0 <= # <= 1 & /@ responseVars[bands])
parseResponses[bands_, argMaxResult_] := (Transpose@{bands, #} &) /@ Partition[argMaxResult, Length[bands]]
goal[spectra_, bands_] := Min[deltaELms[lmsResponses[#[[1]], bands], lmsResponses[#[[2]], bands]] & /@ Subsets[spectra, {2}]]

standardBands = Range[400, 700, 10];
simplifiedBands = Range[400, 700, 50];
Assert[Length[standardBands] == 31 && Length[simplifiedBands] == 7]

Off[Assert]

(* конкретика *)

bands = simplifiedBands;
spectra = IdentityMatrix[Length@bands];
{timing1, r1} = NArgMax[{goal[spectra, bands], responseVarCons[bands]}, responseVars[bands]] // Timing;
timing1
r2 = parseResponses[bands, r1]
Show[
    ListPlot[r2, Joined -> True, Axes -> False, Frame -> True, PlotStyle -> {Red, Darker@Green, Lighter@Blue}],
    ListPlot[r2, PlotStyle -> Black]]

-- Ср сен 26, 2018 23:29:53 --

arseniiv в сообщении #1341753 писал(а):
потому что мы могли бы поменять все спектральные полосы местами как угодно, и целевая функция принимала бы то же значение
Может быть, именно поэтому было впечатление, что брать монохроматические спектры неправильно. У них в этом отношении метафорически нет души. :D

-- Ср сен 26, 2018 23:45:00 --

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

Изображение

Код:
{{{400, 0.312652}, {450, 0.730704}, {500, 0.00159209}, {550, 1.}, {600, 0.863896}, {650, 0.14485}, {700, 0.}},
{{400, 0.671016}, {450, 0.487916}, {500, 0.941894}, {550, 0.189152}, {600, 0.762461}, {650, 8.08056*10^-7}, {700, 0.19462}},
{{400, 0.00457743}, {450, 0.634134}, {500, 0.28717}, {550, 0.14148}, {600, 0.111984}, {650, 0.999995}, {700, 0.440403}}}

Это если кому-то захочется их таки попереставлять до похожести чувствительностей на человеческие.

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 21:53 
Заслуженный участник


20/08/14
11058
Россия, Москва
arseniiv
Честно говоря плохо понимаю что именно Вы оптимизируете (какие-то разности цветов) ...
А вот такой вопрос: похоже Вы не стали колбочки квантовать по уровням? Т.е. чистая аналоговая система с точным математическим описанием?

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 22:17 
Заслуженный участник


27/04/09
28128
На 31 полосу зря замахнулся, ждал — не дождался. Вот вам 13 полос, тоже можно попереставлять их для получения чего-то натурального. Кажется, разброс результатов стал больше — стоит ждать, что при большем числе полос всё ещё ухудшится. Считалось по 10 минут.

(прогон 1)

Изображение

Код:
{{{400, 0.0017224}, {425, 0.275584}, {450, 0.0249469}, {475, 1.}, {500, 0.7539}, {525, 0.111955}, {550, 0.167246}, {575, 0.695162}, {600, 1.}, {625, 0.997468}, {650, 0.}, {675, 0.399625}, {700, 0.99667}},
{{400, 0.994095}, {425, 0.781955}, {450, 0.998622}, {475, 0.43636}, {500, 0.680907}, {525, 0.145072}, {550, 0.}, {575, 0.940607}, {600, 0.0260053}, {625, 0.837762}, {650, 0.294295}, {675, 0.823593}, {700, 0.668573}},
{{400, 0.784336}, {425, 0.994587}, {450, 0.00614286}, {475, 0.000607352}, {500, 0.467823}, {525, 0.425007}, {550, 0.739903}, {575, 0.684621}, {600, 0.0421368}, {625, 0.}, {650, 1.}, {675, 0.000161208}, {700, 0.913689}}}

(прогон 2)

Изображение

Код:
{{{400, 0.000042502}, {425, 0.336748}, {450, 0.0346385}, {475, 0.999996}, {500, 0.69368}, {525, 0.0884174}, {550, 0.119682}, {575, 0.710574}, {600, 1.}, {625, 0.879741}, {650, 0.000868952}, {675, 0.281295}, {700, 1.}},
{{400, 0.948928}, {425, 0.851077}, {450, 1.}, {475, 0.574917}, {500, 0.647767}, {525, 0.199978}, {550, 0.0000628176}, {575, 0.939389}, {600, 0.184394}, {625, 0.789659}, {650, 0.367413}, {675, 0.713939}, {700, 0.702679}},
{{400, 0.668745}, {425, 0.978535}, {450, 0.}, {475, 0.016383}, {500, 0.537476}, {525, 0.449463}, {550, 0.545307}, {575, 0.71329}, {600, 0.10826}, {625, 0.117269}, {650, 0.999993}, {675, 0.0549707}, {700, 0.895186}}}

Как только пойдут немонохроматические спектры, переставлять станет нельзя, спешите!

∗ ∗ ∗ ∗ ∗

Dmitriy40 в сообщении #1341757 писал(а):
Честно говоря плохо понимаю что именно Вы оптимизируете (какие-то разности цветов) ...
ТС предложил оставить всё как есть кроме откликов колбочек, то есть можно считать, что ощущаемые человеком с «исправленными» колбочками цвета и их свойства получаются из их сигналов так же как у обычного. Если решить сделать образцы света одинаковой яркости скольки-то разных монохроматических спектров одинаковой яркости максимально различимыми, как раз подходит упоминаемая ΔE. Остаются только модификации, чтобы использовались наши модифицированные $(L,M,S)$, а не стандартные (которые в таком случае вообще избегаются, потому что находить $(X,Y,Z)$ было и остаётся проще). Ну и модификация, устанавливающая $L=50$ (в той формуле для ΔE $L=100$ у референсного белого источника света D65, так что взять половинную интенсивность, по идее, достаточно уместно).

Dmitriy40 в сообщении #1341757 писал(а):
А вот такой вопрос: похоже Вы не стали колбочки квантовать по уровням? Т.е. чистая аналоговая система с точным математическим описанием?
Да, не стал, и шумы не учитывал, потому что это и усложнит всё, и надо думать как.

-- Чт сен 27, 2018 00:18:36 --

(Всё, дальше ничего делать не буду, пока wrest не даст набор спектров.)

 Профиль  
                  
 
 Re: Об оптимальности зрения: цветоразличение
Сообщение26.09.2018, 22:36 


05/09/16
11461
Ужос :roll:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Модераторы: Модераторы, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group