Сегодня, обсуждая вопрос формирования изображения в цифрокомпактах, вспомнил одну задачу, которую в своё время пытался решить...
Преамбула.
Самое начало XXI века.
Знакомый ездил к родителям в другой город. Зарядил в свой Nikon FM-2 пленку, отснял, не проявлял (пленка - любительская, съёмка - также носила абсолютно любительский характер)... Через несколько дней скоропостижно умер отец. На этой плёнке были последние кадры, на которых отец еще был живым (и эти кадры были весьма ценные, эмоционально значимые, так как поездки к родителям у знакомого случались весьма редко).
Он проявил пленку. И с ужасом обнаружил, что эту пленку он экпонировал дважды. На ней один на один были наложены абсолютно беспонтовые снимки домашнего интерьера, сада, кота и снимки родителей.
Он обратился ко мне с вопросом можно ли такие изображения разделить.
Амбула.
Вопрос переэкспонирования на пленке не критичен, как Вы понимаете. Картинки печатались без проблем, правильно эспонированные (это не цифра). Вопрос был в логике разделения. После сканирования отпечатков получались JPG-файлы. Вопросы потерь информации не актуальны. Т.е. получался набор (таблица) пикселей с R-G-B. Каждый такой пиксель состоял из:
R=R1+R2;
G=G1+G2;
B=B1+B2.
Где индекс 1 - относится к первой экспозиции, 2 - ко второй.
При этом имеет место быть сложение не арифметическое, а нелинейное - согласно характеристической кривой пленки, которая доступна и известна.
Вопрос "убить ли цвет?" и работать с ЧБ - рассматривался, но был отклонен, т.к. любая потеря информации приводила к усложнению задачи.
ХарьковФорума тогда ещё не было (или он мне был неизвестен).
Я обратился за советом на другие форумы, где общались в те времена в основном программеры (они мне и были нужны). Большинство программеров входило в ступпор. Только один мне ответил:
- Серёга. Понимаешь какое дело. Если ты приготовил коктейль водка + мартини, то ты можешь его разделить на сотавляющие. Но если ты его взболтал... До свидания... В твоей задаче коктейль взболтали...
Красивая аналогия. Но тем не менее, я с ней не согласился: человеческое сознание без труда разделяло мультиэкспонированные картинки. Я мог видеть старичка в домашней одежде, а переключив внимание мог видеть кота, сидящего у холодильника. Т.е. задача явно имела решение...
Я убил на эту задачу месяц. Оттачил пользование библиотекой IJL (Intel JPEG Library). Побочным эффектом всей этой ерунды стало, что я нашел способ имитации карандашного рисунка с любого JPG-изображения... Но это не сильно приближало меня к цели.
Главный вопрос - логика принятия решения, оставался нерешённым. Писать нейронную сеть, обучать её - это единственный выход, который я видел на тот момент... На отдельно взятой машине на расчет одной картинки уходил бы год... Взять в аренду сеть компов, еще и сетевые вещи программить... Меня на это не хватило. Тем более, что найди я это решение, я не представлял, кому ещё оно может принести пользу...
А теперь суть вопроса.
Кто-нибудь сталкивался в сети с математическими алгоритмами решения хотя бы отдалённо похожих задач?
Интересует именно задача восстановления двух полноценных кадров из двойной экспозиции, а не "зарисовывание лишнего" в графическом редакторе!
Oleg
15-02-2008, 21:13
Осталось только искусственный интеллект создать :-) он разделит.
Водку и мартини можно разделить, это разные вещества. А два изображения в одном нет, это нереально, это одинаковый свет и одинаковая хим.реакция это один фотокадр. Разделить в кадре дедушку сюда, а трактор сюда - это научная фантастика, либо долгая монотонная работа в фотошопе руками, если это хоть как то позволяет кадр.
SergeyStudio
15-02-2008, 21:17
Это по моему схоже с попытками изобретения вечного двигателя, могут быть интересные идеи, но реальное решение скорее всего так и не выйдет. Я не совсем понимаю как можно 2 изображения разделить, если они уже наложены друг на друга. Хотя может и возможно, но кто в это будет вкладывать средства и время, реально это может понадобится очень ограниченному числу фотографов.
Математик с меня никакой :)
Sconosciuto
15-02-2008, 21:23
Ну как раз ИИ - это и есть моя специфика. (Не по работе, по образованию) :)
Сознание (мозг) то разделяет! Это и есть необходимое и достаточное доказательство того, что задача имеет решение!
Сейчас ЭВМ уже достигли того уровня, когда нейронную сеть с 2 160 000 входами и столькими же выходами можно запрограммить на одной машине. Тут больше вопрос к кодеру... и структуре сети - возможно, она не должна быть однородной. Возможно, в ней должна быть структура, имитирующая структуру головного мозга. Этой информации за 6-7 лет добавилось огромное количество.
А может и напротив: достаточно однородной - кода меньше будет...
Вопрос то праздный, на самом деле. Я думаю, человек, который меня когда-то об этом просил, уже и не вспоминает об этом. Мне самому интересно...
mocrosoft
15-02-2008, 21:43
А трудно ли отснять отдельно "мешающие" снимки из той же точки и примерно в той же обстановке, а потом - насколько это возможно точно наложить, и вычесть из "мультиэкспо"?
Идеальной картинки, понятно, не получится (кот останется, гад!), но поигравшись кривыми и настройками прочими можно бы попытаться получить максимально "чистую" картинку.
Sconosciuto
15-02-2008, 21:49
Холодильник стоял под навесом на веранде в саду... Листики на деревьях в том же положении не окажутся...
Но идея оригинальная. :) Я о ней как-то не подумал.
Маленькая и примитивная иллюстрация. Три слоя, имитирующие три экспозиции... Мозг вычисляет и форму и цвет без вопросов...
mocrosoft
15-02-2008, 21:53
Мозг оперирует образами, а не пикселами и уровнями R-G-B :)
В этом отношении даже примитивный колорадский жук легко переплюнет самую навороченную "нейронную сеть" :-)
Sconosciuto
15-02-2008, 21:55
Здесь зарыта одна из проблем с которой я столкнулся. Когда известно, что экспозиций три - всё казалось бы на своих местах - красный прямоугольник, синий квадрат и зелёный круг. Но ведь тот же результат получился бы, если круг - одна экспозиция, а прямоугольник с квадратом - вторая...
На реальных картинках таких дилем не бывает. В них мозг безошибочно определяет в какой экспозиции сидит кот! А как это объяснить (обучить) НС?..
Sconosciuto
15-02-2008, 21:56
Мозг оперирует образами, а не пикселами и уровнями R-G-B :)
В этом отношении даже примитивный колорадский жук легко переплюнет самую навороченную "нейронную сеть" :-)
Эт я знаю... Есть еще эмоции, гормоны и прочий шум... :(
Sconosciuto
15-02-2008, 21:58
Кста. Сейчас уже колорадский жук не переплюнет. Сейчас рукотворные НС достигли уровня пчелы :)
Sconosciuto
15-02-2008, 22:10
Тема, в силу своей исключительно неприкладной ценности, бесполезна, но легко потянет на докторскую... Знаю, что в нескольких харьковских ВУЗах разработки ИИ ведутся.
В ХИИТе, например, кафедра ВТ (профессор Филиппенко) - только у них опора на аппаратное обеспечение НС, с программированием у них слабовато...
mocrosoft
15-02-2008, 22:38
...На реальных картинках таких дилем не бывает. В них мозг безошибочно определяет в какой экспозиции сидит кот! А как это объяснить (обучить) НС?..
...На реальных картинках таких дилем не бывает. В них мозг безошибочно определяет в какой экспозиции сидит кот! А как это объяснить (обучить) НС?..
Ха, а всегда ли?
Вот, для затравки - примерчик из творчества одной весьма мне интересной Авторки (http://www.photographer.ru/nonstop/series.htm?id=1036): попробуйте поразделять :)
Лично мне часто требуются весьма значительные усилия, причем иногда - тщетные, когда я пытаюсь "разделить" подобные картинки, где Художник ставил целью с помошью мультиэкспозиции создать единый образ.
Alien_Serg
15-02-2008, 22:40
Думаеться мне, что поставленная задача в полном объеме не выполнима в приципе. Человеческий моск с поставленной задачей частично справляеться поскольку процесс распознавания образов в нем(мозгу тоесть)базируеться в первую очередь на выделении границ объекта. Сответсвенно если в некоторой области на одном снимке присутствуют грнаницы, а на другом их нет, то мы легко распознаем объект с первого снимка. А вот если на обоих снимках на одну область накладываються объекты изобилующие резкими границами, то в этом случае мы уже ничего не разберем. При этом нужно отметить, что текстуру/цвет объектов при наложении мы уже востановить не в силах абсолютно.
АК
15-02-2008, 22:40
столкнулся с двойной экспозицией, а может и тройной буквально неделидве назад - последние кадры на пленке продублированы причем съехав на полкадра
мое имхо
вычесть из "двойного" изображения одно (ненужное)
Mocrosoft судя по всему предлагает то же
логика
каждый пиксел (точка-зерно) на пленке был засвечен дважды
причем понятно что при двойной засветке яркостные характеристики каждой точки изображения были разными(скорее всего если картинки разные)
значит получаем, что для каждой точки (зерна) степень его экспонирования (назовем Esum) равна Е1+Е2
где Е1 не равно Е2
что важно
реакция пленочного зерна на свет (насколько я помню) не линейна
поэтому дважды засвеченный участок с 50% серого даст на пленке не 0% серого, а например 25-30%
с пленкой должно происходить насыщение, причем оно должно происходить логарифмически или экспоненциально (как незнаю. у меня с этим не оч хорош..увы..экономист я:)
значит - зная итоговую Esum и зная Е2, плюс предполагая функцию зависимости (ее можно просчитать поставив ряд экспериментов, не так уж это и сложно - на пленке той же марки фотографировать миру или цветастые/серые формы с наложением и определить закон.. вопрос нескольких дней)
мы можем решить уравнение и определить с определенной долей погрешностиЕ1
в чем я вижу подводные камни
1. чисто теоретически это все возможно
для отсканированной пленки с разрешением 10-20 мп (чем больше тем лучше) нужен программный алгоритм..его нужно писать
2. проще если пленка чб - есть только оттенки серого и все строится только по шкале экспозиций одного отдельно взятого зерна эмульсии
если пленка цветная, то нужно думать как складываются и влияют на экспонированность засветки разными цветами
тут нужен еще один алгоритм
какой-затрудняюсь сказать
и PS
в качестве поля для творчества могу предоставить свои несколько кадров достаточно свежей пленки с двойным наложением
АК
15-02-2008, 22:49
хотя каждый может себе такое поле для творчества соорудить сам:)))
Сергей (Sconosciuto) такой вопрос
представим, что мы берем жпег и представляем его в виде таблицы Эксель с Н строк и М колонок
в каждой ячейке-степень экспонированности отдельного пикселя в процентах от максимума или минимума.. надо решить
затем берем вторую таблицу Эксель - "лишний кадр"
имеем грубо говоря 2 матрицы одинакового размере
из одной матрицы вычитаем другую
причем вычитаем не линейно, а по какому-то закону (условно говоря 80% экспозиции = 50%+50%)
получаем окончательную матрицу с "остатком"
вопрос задачи
как изображение жпег перегнать в простую таблицу
яркостные характеристики для каждой отдельной точки мы померять можем и в ФШ
но как это сделать автоматически?
я увы опять таки не знаю
Sconosciuto
15-02-2008, 22:52
Ха, а всегда ли?
...
Лично мне часто требуются весьма значительные усилия, причем иногда - тщетные, когда я пытаюсь "разделить" подобные картинки, где Художник ставил целью с помошью мультиэкспозиции создать единый образ.
Конечно, не всегда. Но на исследуемых мной непреднамеренных мультиэкспозициях разделять было не сложно.
Тут вопрос другой. У этой авторки дублей может быть сотня. Она выбирает именно тот, где разделение наиболее сложно - это добавляет художественной ценности. В моём случае такой задачи не стояло.
Более того, меня бы устроил и полуавтоматический режим - когда программа определяет и выделяет объекты (набор пикселей с предполагаемыми RGB-характеристиками), а человек определяет, куда его (этот объект) отнести...
Думаеться мне, что поставленная задача в полном объеме не выполнима в приципе. Человеческий моск с поставленной задачей частично справляеться поскольку процесс распознавания образов в нем(мозгу тоесть)базируеться в первую очередь на выделении границ объекта.
Совершенно верно! Именно в этом месте я и дошёл до "карандашного" рисунка - это и были границы объектов.
Дальше пойти я не смог...
mocrosoft
15-02-2008, 22:53
Антон, тут ведь главная проблема будет как раз в том, где взять это самое "ненужное" изображение, которое хотим вычитать? Его ж само надо сначала как-то вычленить из общей каши!
Другое дело, если есть возможность просто еще раз снять "мешающее" изображение в условиях, идентичных тем, что были в момент, когда была сделана "мешающая" мультиэкспозиция, но технически это сделать будет достаточно трудно.
АК
15-02-2008, 22:54
Антон, тут ведь главная проблема будет как раз в том, где взять это самое "ненужное" изображение, которое хотим вычитать? Его ж само надо сначала как-то вычленить из общей каши!
Другое дело, если есть возможность просто еще раз снять "мешающее" изображение в условиях, идентичных тем, что были в момент, когда была сделана "мешающая" мультиэкспозиция, но технически это сделать будет достаточно трудно.
я думаю что "снять" его как раз и можно
например у меня из "наложившихся" кадров отчетливо можно удалить ветки деревьев
хотя они собаки куда посложнее чем домашний интерьер
и все таки мне кажется это на порядки проще для ч/б пленки
АК
15-02-2008, 23:01
для цветного изображения в моей теории матрица должан быть трехмерная ее "глубина" - это как раз R G B
хотя об этом уже говорилось)
но эти три ячейки между собой таки как-то должны быть связаны...вот как
ЗЫ
а если произвести сканирование пленки (кадра) в разрезе тех цветов, на которые делится фотоэмульсия
отдельно синий, отдельно красный, отдельно зеленый
только как..
почему то в голову приходит цветной светофильтр...
печатать картинку с пленки 3 раза с красный, синим, зеленым фильром, затем отпечатки сканировать
но потери информации будут
и большие
ибо программное деление цвета сканером может ничего не дать
с 3 таблицами двухмерными работать может проще будет?
Sconosciuto
15-02-2008, 23:08
мое имхо
вычесть из "двойного" изображения одно (ненужное)
Mocrosoft судя по всему предлагает то же
Это в моём случае не возможно.
каждый пиксел (точка-зерно) на пленке был засвечен дважды
причем понятно что при двойной засветке яркостные характеристики каждой точки изображения были разными(скорее всего если картинки разные)
значит получаем, что для каждой точки (зерна) степень его экспонирования (назовем Esum) равна Е1+Е2
где Е1 не равно Е2
что важно
реакция пленочного зерна на свет (насколько я помню) не линейна
поэтому дважды засвеченный участок с 50% серого даст на пленке не 0% серого, а например 25-30%
с пленкой должно происходить насыщение, причем оно должно происходить логарифмически или экспоненциально (как незнаю. у меня с этим не оч хорош..увы..экономист я:)
Именно это я и имел в виду, говоря о характеристической кривой пленки.
Пиксель, достигнув насыщения по одному из цветов (R/G/B) утрачивает возможность достоверного восстановления цвета. Но на пленке это не важно: можно сделать две экспозиции на фотобумагу и все будет восстановлено!
То, что экономист - это скорее плюс. Важен взгляд со стороны, другой ракурс. Ибо я свой ракурс исчерпал! :(
в чем я вижу подводные камни
1. чисто теоретически это все возможно
для отсканированной пленки с разрешением 10-20 мп (чем больше тем лучше) нужен программный алгоритм..его нужно писать
2. проще если пленка чб - есть только оттенки серого и все строится только по шкале экспозиций одного отдельно взятого зерна эмульсии
если пленка цветная, то нужно думать как складываются и влияют на экспонированность засветки разными цветами
тут нужен еще один алгоритм
какой-затрудняюсь сказать
Ч/б - не проще. Сложнее на много. Убить цвет в цветной картинке - не проблема. Но это только усложняет задачу. Причем колоссально. Пробывал.
в качестве поля для творчества могу предоставить свои несколько кадров достаточно свежей пленки с двойным наложением
Спасибо, но мне хватило :). Теперь, имея слои в ФШ, имитировать мультиэкспозицию для обучения нейронной сети не составляет труда :). Это тогда было проблемой. :)
Sconosciuto
15-02-2008, 23:10
Сергей (Sconosciuto) такой вопрос
представим, что мы берем жпег и представляем его в виде таблицы Эксель с Н строк и М колонок
в каждой ячейке-степень экспонированности отдельного пикселя в процентах от максимума или минимума.. надо решить
затем берем вторую таблицу Эксель - "лишний кадр"
имеем грубо говоря 2 матрицы одинакового размере
из одной матрицы вычитаем другую
причем вычитаем не линейно, а по какому-то закону (условно говоря 80% экспозиции = 50%+50%)
получаем окончательную матрицу с "остатком"
вопрос задачи
как изображение жпег перегнать в простую таблицу
яркостные характеристики для каждой отдельной точки мы померять можем и в ФШ
но как это сделать автоматически?
я увы опять таки не знаю
:)
Пробывал и этот метод. Честно. :)
Мне Excel проще, чем Visual C++ или Borland. Перегонял в таблицы, не проблема. Смысла - ноль. :(
Кстати, самый простой способ перегнать JPG в Excel - сохранить в bmp-файл (фиг с ними, с потерями цветовой информации) и отредактировать формат :)
Sconosciuto
15-02-2008, 23:13
для цветного изображения в моей теории матрица должан быть трехмерная ее "глубина" - это как раз R G B
хотя об этом уже говорилось)
но эти три ячейки между собой таки как-то должны быть связаны...вот как
ЗЫ
а если произвести сканирование пленки (кадра) в разрезе тех цветов, на которые делится фотоэмульсия
отдельно синий, отдельно красный, отдельно зеленый
только как..
почему то в голову приходит цветной светофильтр...
печатать картинку с пленки 3 раза с красный, синим, зеленым фильром, затем отпечатки сканировать
но потери информации будут
и большие
ибо программное деление цвета сканером может ничего не дать
с 3 таблицами двухмерными работать может проще будет?
Тоже не прокатит. Ибо это имитация ч/б.
Когда синий объект накладывается на зеленый - выделить его не большая проблема. Когда синий объект накладывается на синий... Это проблема.
Тут анализировать нужно сразу в цвете.
Была такая проблема, вспомнил! Проблема с НС - входов становится не 2 милиона, а 6. Вот тут то я и остановился... Хоть и от двух милионов мне легче не становилось. :)
Sconosciuto
15-02-2008, 23:22
Опять допустил неточность.
От двух миллионов было намного легче. Ибо количество связей нейронной сети меньше на порядки... :)
Но в то время, что два млн, что шесть - всё одно, не реально обсчитать...
Alien_Serg
15-02-2008, 23:35
Но в то время, что два млн, что шесть - всё одно, не реально обсчитать...
Оно и сейчас не реально посчитать. И думаеться мне, что никогда не будет реально.
Sconosciuto
15-02-2008, 23:45
Вы недооцениваете прогресс. :)
Он Вас чем то разочаровал?
Или Вы относите функцию мышления к области сверхестественного, божественного?
Sconosciuto
15-02-2008, 23:47
Сейчас в графике игрушек столько треугольников обсчитывается в единицу времени... Жуть! Игрушкам нейронные сети не нужны. А жаль - иначе это было бы давно реализовано...
Alien_Serg
15-02-2008, 23:59
Вы недооцениваете прогресс. :)
Прогресс?? Толку с этого прогресса. Вычислительная мощность все равно растет линейно. Ну станут машины ну 10, ну 1000 раз быстрее. И что? Большинство физических задач ведь имеет экспоненциальтный характер сложности. Вон какие громадненйшие выч. мощности идут на расчет квантовых молекулярных задач(типа сворачивая белков и т.д.), а все равно десятки тысяч машин считают уже не один год и сощитать не могут. Так что без машины способной решать экспоненциально сложные задачи ощутимого проресса в выч.технике не будет.
Он Вас чем то разочаровал?
Да он меня постоянно разочаровывает, когда на на анализ траектории из 80000 точек машина требует сутки на размышление:D
Или Вы относите функцию мышления к области сверхестественного, божественного?
Ну не без этого:)
Sconosciuto
16-02-2008, 00:03
Африка!!!!!
Я нашел ещё большего пессимиста, чем мы с Вами, в отношении технического прогресса!!!
Alien_Serg
16-02-2008, 00:04
Сейчас в графике игрушек столько треугольников обсчитывается в единицу времени... Жуть! Игрушкам нейронные сети не нужны. А жаль - иначе это было бы давно реализовано...
Не так уж там много всего расчитываеться. Алгоритмы упрощены до предела. Плюс на это дело бросается до 256 маломощных процессоров с малым количесвом памяти, но способных работать паралллельном режиме.
Alien_Serg
16-02-2008, 00:06
Африка!!!!!
Я нашел ещё большего пессимиста, чем мы с Вами, в отношении технического прогресса!!!
Значиться будем в троем ожидать выхода на рынок просъюмера по записи менталообразов:пиво:
Sconosciuto
16-02-2008, 00:08
Согласен. :пиво:
Sconosciuto
16-02-2008, 00:13
Только бы Богу душу не отдать раньше... :)
Не зря говорят: "Хотите рассмешить Бога, расскажите ему о своих планах..." :)
Sergei
16-02-2008, 00:34
Маленькая и примитивная иллюстрация. Три слоя, имитирующие три экспозиции... Мозг вычисляет и форму и цвет без вопросов...
Мозг-то вычисляет без вопросов, но мы-то можем спросить: Мозг, а ты уверен, что там три фигуры на белом фоне, а не пять?;)
Мозг не задает вопросов, потому что руководствуется какими-то априорными предположениями. Например принципом Оккама: зачем выдумывать пять сложных фигур, когда то же самое можно описать тремя простыми?
В случае сидящего кота делается предположение, что кот должен сидеть на чем-то, и объект с подходящими границами (под котом) находится в той же экспозиции, что и кот. А объект, просвечивающийся сквозь кота, наверняка находится в другой экспозиции. И так далее. Но, вообще говоря, возможны ситуации, когда однозначно разделить объекты по экспозициям не удастся.
В общем, сначала надо научить компутер видеть, что изображено на нормальных фотках, и только потом можно думать, как адаптировать эти алгоритмы на мультиэкспозицию. Упоминания о распознавании образов и даже построении объемной картики по нескольким взглядам я периодически слышу, но насколько они реально продвинуты - не знаю.
Sconosciuto
16-02-2008, 00:44
Исходники из реальной задачи на этом ПК у меня отсутствуют...
Смоделировал мультиэкспозицию из двух кадров Фотосайта (первые, что подвернулись, не выбирал...):
http://www.photosight.ru/photo.php?photoid=2552784&ref=section&refid=2
http://www.photosight.ru/photo/2551588/?ref=section&refid=3
Sconosciuto
16-02-2008, 00:45
Обратите внимание на то, как меняется восприятие между превью и реальной картинкой!
На превью доминирует портрет (крупный опознаваемый объект). На полной картинке в более полной мере проявляется пейзаж...
Sconosciuto
16-02-2008, 01:16
Значиться будем в троем ожидать выхода на рынок просъюмера по записи менталообразов:пиво:
Кстати, нужно разработать и запатентовать формат менталографии. Если это сделаем, на старости лет сможем скупить "голубые фишки"... Ну, или на худой конец - Microsoft и Google... :)
Нам на троих должно хватить на пиво! :)
Собсно, всему ХФ на пиво хватит! :)
Adilur
18-02-2008, 09:42
Sconosciuto - если сделаеш програмку/нейросеть могу запустить ее летом на 70 ти компах 2,0 ггц. хоть на неделю. Я думаю они справятся :) Если надо сделаем кластер. Для хорошего человека ничего не жалко :) Только буш помогать настраивать :)
АК
18-02-2008, 10:10
кстати по теме
есть же какие то алгоритмы в современных цифромыльницах, которые определяют лицо
а еще (к тому же) в плохих сканерах где нет настоящего Дижитал Айса есть цифровой Айс, который работает по каким-то алгоритмам, выделяя "левую" пыль на пленке
:)
Sconosciuto
18-02-2008, 10:36
кстати по теме
есть же какие то алгоритмы в современных цифромыльницах, которые определяют лицо
:)
Определение лица работает на очень простом алгоритме - нос, глаза, губы, "БРОВИ". Найдите лицо без бровей, и проведите эксперимент. :)
Не может алгоритм и профиль определить, только фас.
Наклон лица алгоритмы начали понимать только в последний год.
А уж морду человекообразной обезьяны он вообще за лицо не считает - для него - это сплошная бровь. :)
Sconosciuto
18-02-2008, 10:38
Sconosciuto - если сделаеш програмку/нейросеть могу запустить ее летом на 70 ти компах 2,0 ггц. хоть на неделю. Я думаю они справятся :) Если надо сделаем кластер. Для хорошего человека ничего не жалко :) Только буш помогать настраивать :)
Спасибо за предложение.
Маловероятно, что смогу им воспользоваться, но вдруг...
Спасибо.
Sergei
18-02-2008, 10:41
А уж морду человекообразной обезьяны он вообще за лицо не считает - для него - это сплошная бровь. :)
:ржачь::ржачь::ржачь:
v_I_Per
18-02-2008, 12:41
Мдя. Ну у Вас Сергей и задачки на досуге...
С ИИ я связан очень опосредовано (учился на соседней специализации :)) ) Но мне кажется что задача ваша из области фантастики, и решена будет не раньше, чем компьютеры научаться из карандашного наброска фотореалистичное изображение создавать, да еще и объемное :)
Потому что мозг наш подобные картинки разделяет скорее не потому что он действительно анализирует картинку, а потому что он синтезирует её основываясь на частях знакомого образа. Так и пример Ваш с простейшими геометрическими фигурами работает хорошо только потому что они хорошо знакомы.
И пока компьютеру не станет хорошо знакомо человеческое лицо (со всеми его особенностями, и ожидаемыми на нём объектами), кот, мебель, деревья с листиками и т.п. - фиг он вам это всё разделит.
Думаю для иллюстрации этого можно создать аналогичный коллажик из незнакомых для вашего мозга образов, и он тоже спасует. Или, что скорее, попробует представить его в виде простых и знакомых образов, но совсем не обязательно правильных :)
Sconosciuto
18-02-2008, 13:14
Потому что мозг наш подобные картинки разделяет скорее не потому что он действительно анализирует картинку, а потому что он синтезирует её основываясь на частях знакомого образа. Так и пример Ваш с простейшими геометрическими фигурами работает хорошо только потому что они хорошо знакомы.
И пока компьютеру не станет хорошо знакомо человеческое лицо (со всеми его особенностями, и ожидаемыми на нём объектами), кот, мебель, деревья с листиками и т.п. - фиг он вам это всё разделит.
Думаю для иллюстрации этого можно создать аналогичный коллажик из незнакомых для вашего мозга образов, и он тоже спасует. Или, что скорее, попробует представить его в виде простых и знакомых образов, но совсем не обязательно правильных :)
Всё верно.
Вот я и писал, что единственный известный мне метод решения - это обучаемая нейронная сеть. В ней процессы синтеза и анализа происходят параллельно. И она предварительно обучается на распознование лиц, котов, холодильников и прочих предметов...
Тему создал с целью узнать, не сталкивался ли кто, путешествуя в сети с упоминанием того, что кто-то подобные задачи реализовывал.
Примеры предсказания поведения биржевых котировой и курсов валют, снятых с НС, мне известны, но это задачи на несколько порядков менее сложные.
Вот приведенный AK пример распознования лиц в кадре - это из этой области... Спасибо, АК. :)
Oleg
18-02-2008, 13:24
Я думаю подобную тему надо поднять в "Науке (http://www.kharkovforum.com/forumdisplay.php?f=10)", или эту скопировать.
Могу устроить если хотите?
Sconosciuto
18-02-2008, 13:52
Я думаю подобную тему надо поднять в "Науке (http://www.kharkovforum.com/forumdisplay.php?f=10)", или эту скопировать.
Могу устроить если хотите?
Скопируйте, Олег, если это возможно. :)
Thanks for cooperation :)
Kh1234
20-02-2008, 04:00
Мозг-то вычисляет без вопросов, но мы-то можем спросить: Мозг, а ты уверен, что там три фигуры на белом фоне, а не пять?;)
Мозг не задает вопросов, потому что руководствуется какими-то априорными предположениями. Например принципом Оккама: зачем выдумывать пять сложных фигур, когда то же самое можно описать тремя простыми?
В случае сидящего кота делается предположение, что кот должен сидеть на чем-то, и объект с подходящими границами (под котом) находится в той же экспозиции, что и кот. А объект, просвечивающийся сквозь кота, наверняка находится в другой экспозиции. И так далее. Но, вообще говоря, возможны ситуации, когда однозначно разделить объекты по экспозициям не удастся.
В общем, сначала надо научить компутер видеть, что изображено на нормальных фотках, и только потом можно думать, как адаптировать эти алгоритмы на мультиэкспозицию.
Именно! У мозга очень большая фора именно в знании объектов сцены, и возможности моделировать их вариации. И даже при этом, даже если предположить, что бот будет анализировать логичность сцены (!), все равно неоднозначность остается. Например, два человека могут находиться в одном кадре, если бот не будет знать, что они жили в разных столетиях, или никогда не встречались в одном месте.. ;-)
Всё верно.
Вот я и писал, что единственный известный мне метод решения - это обучаемая нейронная сеть. В ней процессы синтеза и анализа происходят параллельно. И она предварительно обучается на распознование лиц, котов, холодильников и прочих предметов...
Это идеальный для данной задачи вариант, заставить бота понять, что за реальные объекты есть в сцене, как они взаиморасположены, как освещены, с тем, чтоб он их мог потом "чисто" отрендерить обратно, уже в разные кадры. Для этого бот должен оперировать сущностями не "цвет точки", или "замкнутый яркостный полигон", но именно "ветка дерева", "кот", "кухонная мебель". При этом второй кадр будет восприниматься как "мусор" только на этапе распознавания. Если объекты будут распознаны с большой степенью достоверности, то и участки, наиболее пострадавшие от мусора, могут быть легко "додуманы", то есть смоделированы, исходя из свойств распознанного объекта. Только для этого бот должен иметь те же представления об объектах, какие имеет мозг смотрящего на сцену человека, а именно изображения многих вариаций подобных однотипных объектов. Это посложнее будет, чем просто найти кота в сцене (еще и не зная, что он там есть ;-)), но и правильно определить положение его суставов, складок кожи, положения ворсинок шерсти, и т.д. Задача, хоть и сложная, но imho, решаемая. Пускай не теперь именно, но в принципе.
Но часто ведь для решения прикладных задач не нужны именно идеальные решения.. Можно ведь и частично автоматизировать процесс. Например, разложить изображение на кучу полигонов по цвету (подобное можно сделать в Macromedia Flash ("Trace bitmap command")). Потом только нужно уже вручную разделить полигоны между сценами. После такого разделения уже будет делом техники провести коррекцию цветов в пересекающихся полигонах. Для простоты эксперимента можно несколько поднять контрастность изображения, чем уменьшить количество цветов, а значит, и количество полигонов. Предположительно, можно для ручного разделения использовать укрупненные полигоны низкого разрешения, впоследствии наполняя обе полу-сцены деталями уже в автоматическом режиме, на основании общего цветового фона уже разделенных участков сцен (наверняка были немного разные условия освещения, глубина тени, границы черного и белого в полусценах (?)). И добавлять мелкие полигоны уже высокого разрешения в пограничных областях крупных объектов, следуя их контурам. Например: полигоны листьев дерева из одной сцены, примерно совпадающие по размеру и цвету, повторяющиеся только в области очертаний дерева с кроной из сцены1, уж наверняка не принадлежат сцене2..
То есть, можно и не распознавать объекты автоматом, но сделать это руками. Почти руками. :-) При этом степень этого "почти" будет зависеть от ИИ, который будет работать с детализацией контуров.
On Intelligence
Jeff Hawkins
with Sandra Blakeslee
Пролог 3
1. Искусственный интеллект. 6
2. Нейронные сети 11
3. Человеческий Мозг 18
4. Память 29
5. Новая структура интеллекта 38
6. Как работает кортекс 47
6.1. Инвариантное представление 48
6.2. Интеграция чувств 51
6.3. Новая точка зрения на V1 53
6.4. Модель мира 55
6.5. Последовательности последовательностей 57
6.6. На что похожа область кортекса 61
6.7. Как работают области кортекса: детали 66
6.8. Вверх и вниз 71
6.9. Действительно ли обратные связи могут делать это? 72
6.10. Как обучается кортекс 73
6.11. Гиппокамп: вершина всего этого 75
6.12. Альтернативный путь по иерархии 77
6.13. Завершающие мысли 77
7. Сознание и творчество 79
7.1. Обладают ли животные интеллектом? 79
7.2. Чем отличается интеллект человека? 80
7.3. Что такое творчество? 81
7.4. Являются ли одни люди более творческими, чем другие? 83
7.5. Можем ли мы натренировать себя так, чтоб стать более творческими? 84
7.6. Может ли творчество завести меня в тупик? Могу ли я обмануть сам себя? 85
7.7. Что такое сознание? 85
7.8. Что такое воображение? 88
7.9. Что есть реальность? 89
8. Будущее интеллекта 91
8.1. Сможем ли мы построить интеллектуальные машины? 91
8.2. Должны ли мы строить интеллектуальные машины? 94
8.3. Зачем строить интеллектуальные машины? 96
Эпилог 104
Приложение: проверяемые предсказания 105
Библиография 110
Благодарности 114
Об авторах 115
Об авторах
ДЖЕФ ХОКИНС
Один из наиболее успешных и высоко уважаемых разработчиков компьютеров и предпринимателей Силиконовой Долины. В настоящее время технический директор palmOne, он основал Palm Computing и Handspring, и создал Институт Нейронаук в Редвуде для содействия исследованиям памяти и познавательных способностей. Он является членом Национальной Академии Инженеров и входит в состав научной комиссии лаборатории Cold Spring Harbor. Он живет в северной Калифорнии.
САНДРА БЛЭЙКСЛИ
писала о науке и медицине для New York Times свыше тридцати лет и является соавтором бестселлера по психологии и браку Phantoms in the Brain В.С.Рамачандрана и Джуди Уоллерштейн. Она живет в Санта Фе, Нью Мексико.
Брать паяльник - лишнее.
Можно без паяльника... ;)
Kh1234
13-03-2008, 02:40
Брать паяльник - лишнее.
Можно без паяльника... ;)
А как без паяльника-то на этапе (1+2.bmp => V1), а также на (V1 => 1.bmp + 2.bmp)? :eek:
Маэстро, заделитесь технологией! Бо с паяльником в самом деле не очень приятные ощущения видятся.. :)
Sconosciuto
13-03-2008, 12:46
Аппаратная реализация весьма преждевременна.
Пока речь может вестись исключительно о моделировании на ПК (или сети ПК).
А в схеме:
1+2.bmp => V1 => V2 => V4 => IT => V4 => V2 => V1 => 1.bmp + 2.bmp
во-первых, предшествует долгий процесс обучения:
кошка.bmp => V1 => V2 => V4 => IT
холодильник.bmb => V1 => V2 => V4 => IT
сад.bmp => V1 => V2 => V4 => IT
Человек1.bmp => V1 => V2 => V4 => IT
Человек2. bmp => V1 => V2 => V4 => IT
...
а во-вторых, еще и необходимо учесть (то, что уже известно):
- влияние альтернативного пути по иерархии - проекции в таламус;
- гиппокамп.
Kh1234
14-03-2008, 17:26
Аппаратная реализация весьма преждевременна.
Пока речь может вестись исключительно о моделировании на ПК (или сети ПК).
Я не имел ввиду полностью аппаратную реализацию визуальных областей Vx + IT, но аппаратную реализацию интерфейса (био-области <=> синтетическая интерфейсная часть).
Если есть обратная связь, и она проходит теми же путями, что и сенсорная информация, то вклинившись где-то в районе глазного нерва, или чуть повыше со своей "ПЗСкой", можно теоретически брать (внедрять) картинку (или образы более высокого порядка). То есть, задействовать полостью рабочий биологический инструмент, обеспечив только ввод для него исходных данных, и выдачу на гора результатов его деятельности. Мозг автоматически разделяет изображения, и у него уже есть в распоряжении инвариантные модели котов, людей, деревьев. Останется только схватить вычлененные изображения.
Насчет преждевременности готов поспорить. Приходилось знакомиться с работами, где на кремниевом кристалле, на его электродах отлично выращивалась нервная ткань (нейроны). При помещении этой ткани в реальные мозговые ткани, её нейроны тут же стремятся организовывать синапсы с окружающими нейронами. Так происходит почти автоматическая интеграция чипов в кору. Думаю, что это очень перспективные разработки. Получив программный путь к одновременной активации большого числа нейронов, можно генерировать как пространственные, так и временные паттерны. Также можно их снимать. Остается создать только очень гибкий софт, чтоб их расшифровывать. Тут уже могут быть и нейросети.
Sconosciuto
15-03-2008, 09:57
Я не имел ввиду полностью аппаратную реализацию визуальных областей Vx + IT, но аппаратную реализацию интерфейса (био-области <=> синтетическая интерфейсная часть).
Если есть обратная связь, и она проходит теми же путями, что и сенсорная информация, то вклинившись где-то в районе глазного нерва, или чуть повыше со своей "ПЗСкой", можно теоретически брать (внедрять) картинку (или образы более высокого порядка).
Обратная связь есть. Задействованы в ней те же нейроны, что и при обработке сенсорного потока. Но через иные синапсы...
И ПЗСкой не вклиниться - читать глазной нерв безсмысленно, в нем практически нет влияния ОС (быть может кроме некоторого латерального торможения). А читать образы с кортекса - это читать активность очень многих (миллиардов) колонок кортекса... (все зоны, в которые прецируется сенсорная информация). Задача мягко говоря, абсолютно нереальная. Проще создать с нуля ИИ. :)
То есть, задействовать полостью рабочий биологический инструмент, обеспечив только ввод для него исходных данных, и выдачу на гора результатов его деятельности. Мозг автоматически разделяет изображения, и у него уже есть в распоряжении инвариантные модели котов, людей, деревьев. Останется только схватить вычлененные изображения.
Да уж... Везет мозгу... У него уже все есть.
Только нам от этого в этой задаче ни холодно, ни жарко...
Насчет преждевременности готов поспорить. Приходилось знакомиться с работами, где на кремниевом кристалле, на его электродах отлично выращивалась нервная ткань (нейроны). При помещении этой ткани в реальные мозговые ткани, её нейроны тут же стремятся организовывать синапсы с окружающими нейронами. Так происходит почти автоматическая интеграция чипов в кору. Думаю, что это очень перспективные разработки. Получив программный путь к одновременной активации большого числа нейронов, можно генерировать как пространственные, так и временные паттерны. Также можно их снимать. Остается создать только очень гибкий софт, чтоб их расшифровывать. Тут уже могут быть и нейросети.
Все верно. Только "одновременной активации большого числа нейронов" - это надо иметь доступ к миллиардам нейронов. Это интересно в преспективе, но, имхо, сейчас нужно работать с реальными целями и задачами.
Kh1234
16-03-2008, 04:36
Все верно. Только "одновременной активации большого числа нейронов" - это надо иметь доступ к миллиардам нейронов. Это интересно в преспективе, но, имхо, сейчас нужно работать с реальными целями и задачами.
Тогды Ой.. :(
Не уверен однако, что для этой конкретной задачи нужно именно миллиарды окучивать. Мозг ведь очень гибок, и хорошо адаптируется. Чего стоит только эксперимент с зрением, организованным, через тактильное воздействие на участок языка(!). Если организовать достаточный участок воздействия (ну, приличный по размеру, скажем, несколько миллионов бит одновременно на различные нейроны), то в принципе, можно даже не моделировать реальный сенсорный поток паттернов, скажем, зрительный, но организовать новый сенсорный поток, который, при наличии ОС, мы можем менять в зависимости от реакции кортекса. Думаю, мозг быстрее любого нашего софта приспособится к его форме, и начнет правильно воздействовать на наши синтетические сенсоры (эмулятор "моторной" области), сколь бы ограниченным по размерам они не были.
Смогла же обезьяна Мигеля Николелиса рулить рукой всего через 96 примитивных электродов! Если разрешение поднять на порядки, то это уже выглядит довольно реальным.
В общем, нужны реальные эксперименты. Пойду искать добровольцев. ;-)
Sconosciuto
16-03-2008, 09:07
Тогды Ой.. :(
Не уверен однако, что для этой конкретной задачи нужно именно миллиарды окучивать. Мозг ведь очень гибок, и хорошо адаптируется. Чего стоит только эксперимент с зрением, организованным, через тактильное воздействие на участок языка(!). Если организовать достаточный участок воздействия (ну, приличный по размеру, скажем, несколько миллионов бит одновременно на различные нейроны), то в принципе, можно даже не моделировать реальный сенсорный поток паттернов, скажем, зрительный, но организовать новый сенсорный поток, который, при наличии ОС, мы можем менять в зависимости от реакции кортекса. Думаю, мозг быстрее любого нашего софта приспособится к его форме, и начнет правильно воздействовать на наши синтетические сенсоры (эмулятор "моторной" области), сколь бы ограниченным по размерам они не были.
Смогла же обезьяна Мигеля Николелиса рулить рукой всего через 96 примитивных электродов! Если разрешение поднять на порядки, то это уже выглядит довольно реальным.
В общем, нужны реальные эксперименты. Пойду искать добровольцев. ;-)
В том то и дело, что работая с искусственно смоделированым кортексом можно ограничиться намного меньшим количеством элементов.
А вот в реальном кортексе все чувства взаимосвязаны, имхо. И чтобы получить адекватный ответ визуальной области, необходимо контролировать и все остальные (слуховую, тактильную, моторную).
Я вот подумываю описать алгоритм, для начала, на основе принципа memory-prediction framework для одного игрока в деберц. (Когда-то слепил прогу харьковской разновидности Деберц (2х2), так и не довел до ума, хотя время коротать иногда позволяет - она с объектно-ориентированной структурой, подменить алгоритм для одного из игроков - например, партнера - не будет колоссальной задачей). И посмотреть, как учится, какие ошибки допускает и как исправляет их. Вот тут-то много "нейронов" не понадобится... :)
Kh1234
18-03-2008, 00:45
А вот в реальном кортексе все чувства взаимосвязаны, имхо. И чтобы получить адекватный ответ визуальной области, необходимо контролировать и все остальные (слуховую, тактильную, моторную).
Да, скорее всего, это так и есть. Только в случае с картинками, не сильно-то оправдываются предсказания не визуальных областей, и мозг это терпит. Наверняка, это можно как-то использовать.
Я вот подумываю описать алгоритм, для начала, на основе принципа memory-prediction framework для одного игрока в деберц. (Когда-то слепил прогу харьковской разновидности Деберц (2х2), так и не довел до ума, хотя время коротать иногда позволяет - она с объектно-ориентированной структурой, подменить алгоритм для одного из игроков - например, партнера - не будет колоссальной задачей). И посмотреть, как учится, какие ошибки допускает и как исправляет их. Вот тут-то много "нейронов" не понадобится... :)
А вот это уже очень и очень интересно! Готов предложить свою помощь в реализации данного проекта. (Не финансирую организацию НИИ, но с кодом помогу реально!). Очень уж тема интересует. Если такое сотрудничество интересно, то буду только рад. Свои координаты отправлю в ЛС.
Если кто-нить ещё имеет какие-то идеи, или пожелания в части практической реализации memory-prediction framework (MPF), милости просим, не стесняйтесь!