> Security by obscurity в отношении к алгоритму — это не имение математического доказательства его устойчивости.
In security engineering, security through obscurity is the use of secrecy of the design or implementation to provide security.
А то, знаете, так можно далеко зайти. Для RSA тоже нет математического доказательства устойчивости (более того, для квантового компьютера есть доказательство неустойчивости). Существование односторонних функций как таковых вообще не доказано, и само по себе чистая эвристика — «что-то, что вроде работает и пока никто не взломал».
А давайте представим себе ситуацию (я тоже не биолог, и пытаюсь подхватывать). Вы видите стену, а в ней окно. А за окном — окружающий мир.
Только в первом случае это реальный (глубокий) окружающий мир, а во втором — приклеенный к стене экран, где показывается то же самое, что и за окном.
В первом случае стереопсис может вам помочь, во втором — нет. Вы будете чувствовать структурную разницу, глядя на эти два разных окна? Будет ли ваш мозг в первом случае уставать меньше, а во втором — больше? Что если показать два окна ребенку, который еще не успел наработать библиотеку образов — будет ли он воспринимать второе окно как демоническую пляску узоров, не имеющих никакого отношения к реальности?
*печально* Вопросы громкие и назойливые, но вообще, если быть отвратительно честным, у меня нет здесь доказательств, пока я не вырастил ребенка (или кота) с телевизором, привязанным к голове. Наверное, наиболее убедительным мне все-таки кажется довод про животный мир — почему ящерица не сдвинула себе два глаза вперед, если это облегчает расчеты и позволяет облегчить мозг? Не то чтобы это было офигеть какое преобразование. Не говоря уже о том, что наверное, можно будет выкинуть неслабую часть мозга (занятую расчетами), которой у ящерицы и так не очень-то…
Упс. My bad, что-то я правда невнимательно читал аннотацию. Временно откатываю этот довод, пока не соберу больше источников) Два предыдущих остаются, кстати.
Очень много комментариев на эту тему, в том числе и мимо хабра, поэтому придется написать куда-то в одно место. Выбор пал на вас)
— вы правы в том, что это не строгое доказательство, в том случае, если мы допускаем, что есть несколько алгоритмов восприятия глубины, и какие-то из них просто «набивают библиотеку» опытом, а когда библиотека уже есть, могут спокойно отключиться и никто не заметит потери. Причем «не заметит» сказано еще и очень мягко. Когда мы смотрим на экран в кинотеатре, наше бинокулярное зрение вообще никак нам не помогает (весь экшн происходит на плоскости экрана), и мы не чувствуем никакого дискомфорта, никакой необходимости перестраиваться, мы вообще не замечаем каких-то отличий — вплоть до того, что как в пелевинской метафоре про телевизор, не всегда можем понять, сами ли мы двигаемся по миру, или уставились лицом в экран, показывающий нам всю картинку. Опять же, не строгое доказательство, но заставляет слегка задуматься на тему того, почему такой важный элемент восприятия, как вы утверждаете, так легко выключается?
— у большого количества животных глаза смотрят по обе стороны головы. Мы ведь не считаем, что они все не осознают, что находятся в трехмерном мире, и ходят по плоскому миру мультиков? Опять же, вы можете сказать, что эти животные пользуются другим методом — параллакса или еще каким. Но зачем тогда нам смотрящие вперед глаза? Если они не дают никакого ощутимого профита по сравнению со, скажем, зрением птиц, то почему они закрепились в ходе эволюции? А если дают — почему они появились только у части животных? Общераспространенное мнение (по крайней мере, в моем учебнике биологии) говорило, что вперед смотрящие глаза нужны хищникам, чтобы лучше ориентироваться и хватать добычу — и это, как несложно заметить, не очень согласуется с тем что существует куча хищников, обладающих глазами по бокам головы, и им норм.
— что-то уже больше похожее на доказательство — что будет, если залепить глаз новорожденному котенку? А ничего не будет. Через непродолжительный период он сможет восстановить нормальное поведение, не будет врезаться в стены и в целом будет таким же котом, как и остальные.
Эм… как бы так выразиться-то — да, пожалуй, мне бы хотелось сделать такую штуку, чтобы распознавала все на свете) Совершенно не вижу, кстати, зачем здесь моделировать человеческий мозг насколько правдоподобно, насколько возможно — с чего такие выводы?
А ваше предложение немедленно потребует отдельной нейронки для лица, вид сзади, отдельной нейронки для лица в три четверти, а желательно вообще 360 отдельных нейронок для каждого угла зрения. И кстати, как собираетесь узнавать, какой нейронкой пользоваться? Перепробовать все по очереди? К слову о процессорном времени, пожалуй.
А, по поводу 15 признаков — смотрите, я косвенно затрагивал их в самом начале. Само собой, у нас есть binocular и monocular depth clues, есть атмосферная перспектива, окклюзия, шейдинг и так далее, и все это очень хорошо — но часть этих вещей (достаточно большая) работает только если у нас уже есть какой-то опыт и знание об окружающем мире. Освещенный кубик на примере с зелеными точками, например, кажется нам скорее выпуклым, чем вдавленным, потому что мы привыкли, что свет падает сверху, а не снизу. До тех пор, пока у нас нет никаких априорных знаний, мы не можем даже отличить этот шейдинг от раскраски, нанесенной на поверхность предмета.
Насколько я знаю, все текущие попытки восстанавливать 3d по одиночной картинке оказывались безуспешными — самая, громкая, кажется, вот эта Стэнфордская статья, комментарии к демо-ролику на ютубе которой полны печальных комментариев о том, что оно не работает) С движением же ситуация, похоже, ситуация другая — оно начинает работать с момента формирования и развития зрительной системы, ему не нужны никаких предыдущие подсказки (и не нужен второй глаз — его можно с рождения зашить, и животное по-прежнему сможет отлично ориентироваться).
Ваш пример с SIFT+RANSAC упоминался в посте как «пробовал, но что-то не получилось» (это тот, который с помощью stereoRectifyUncalibrated), так что вполне возможно, конечно, что это мне просто не хватило скилла.
Справедливости ради, в современных-то игрушках их тоже не то чтобы очень есть. Видели подборки картинок в духе «определите, где реаллайф, а где GTA V»?)
Затягивал с комментом, потому что у движения объекта есть свои сложности. Вот такие:
— во-первых, статическая сцена (где ничего не двигается) удобнее нам потому, что мы ее полностью контролируем. Пока мы не шагнем, все остается на месте.
— во-вторых, остается вопрос определения движения. Для камеры мы можем получать ее двумя способами: прямо от моторных механизмов, которые ее двигают (от своих ног, грубо говоря), или анализировать общее смещение потока в кадре (я очень хотел добавить это в пост, но места уже явно не хватало). Как говорил Дуглас Хофштадтер, мы обычно различаем на картинке «рисунок» и «фон» — изображенный предмет и все, что просто занимает место на обоях. Вот по сдвигу фона можно довольно точно определить, куда мы двигаемся. А если фон стоит на месте, и двигается объект — тут остаются варианты.
Ну, у вас поле зрения все-таки имеет какую-то ширину) Вы же можете наблюдать за любыми мелкими движениям, например, абстрактного прыжка кузнечика (хотя, казалось бы, первая же саккада должна увести вас от кузнечика подальше).
Интеллекту — определенно браво; я вот так не могу) Интересно, вы занимаетесь повседневно работой с мелкими предметами?
Спасибо, критические отзывы всегда радуют) Распознавательная часть обязательно будет, просто а) она сюда унылым образом не влезала, и б) в какой-то степени ее можно представить себе, не сходя с места. Нейронной сети же совершенно все равно, какие данные анализировать — двумерные или трехмерные)
Но бинокулярное зрение, а точнее комбинация конвергенции и аккомодации является одним из основных и используется, вероятно, чаще чем любой из других признаков.
А вы все-таки пробовали закрыть один глаз?) Или посмотреть на плоскую распечатанную картинку, где конвергенция совершенно точно никак не работает, потому что не на чем ей?
Разреженное облако точек построить в 3D — это не проблема вообще
Совершенно не сомневаюсь, учитывая мои собственные более чем дилетантские знания в 3d-реконструкции… но все-таки, поделитесь способом, который:
— не требует двух камер и пространства (работает на отснятом заранее видео)
— не требует параметров камеры и калибровки.
Ноль сарказма, кстати, мне действительно очень интересно.
Про объяснение работы фундаментальной матрицы отдельное спасибо, в этом поле я совершенно плаваю)
Вам спасибо, что прочитали. Если интересуетесь темой дальше — есть несколько очень простых и увлекательных книг, рассказывающих про все это на популярном уровне. Уже упоминавшийся Марк Чангизи, «Революция в зрении» (там, правда, много оригинального контента, который еще не защищен временем), и более классический Дэвид Хьюбел «Мозг, глаз, зрение» — отец нейросайнса и вообще столп-основатель. Ну и Курсера в последнее время отметилось парой отличных курсов)
О, это как раз очень любопытно, да. Я, к сожалению, не квалифицирован, чтобы рассуждать на биологические темы, но, например, Хьюбел пишет о таких штуках в «Глаз, мозг, зрение». Описание опыта: «возьмем новорожденного котенка, зашьем ему глаз. Подождем пять лет» уже звучит как-то очень захватывающе)
Альфред Ярбус, однако, очень известная и классическая работа по саккадам (не читал, но наслышан, как говорится). У него, правда, был очень суровый eye-tracker с присосками на глазных яблоках — надеюсь, вы справитесь как-то менее инвазивным способом.
*режим зануды* Загружая тонны персональных фото — нет, потому что у вас тут отсутствует ключевой элемент оптического потока — понимание, какой кадр в какой переходит) Так что фото — это пожалуйста, а вот видеоблогов остерегайтесь)
А то, знаете, так можно далеко зайти. Для RSA тоже нет математического доказательства устойчивости (более того, для квантового компьютера есть доказательство неустойчивости). Существование односторонних функций как таковых вообще не доказано, и само по себе чистая эвристика — «что-то, что вроде работает и пока никто не взломал».
Только в первом случае это реальный (глубокий) окружающий мир, а во втором — приклеенный к стене экран, где показывается то же самое, что и за окном.
В первом случае стереопсис может вам помочь, во втором — нет. Вы будете чувствовать структурную разницу, глядя на эти два разных окна? Будет ли ваш мозг в первом случае уставать меньше, а во втором — больше? Что если показать два окна ребенку, который еще не успел наработать библиотеку образов — будет ли он воспринимать второе окно как демоническую пляску узоров, не имеющих никакого отношения к реальности?
*печально* Вопросы громкие и назойливые, но вообще, если быть отвратительно честным, у меня нет здесь доказательств, пока я не вырастил ребенка (или кота) с телевизором, привязанным к голове. Наверное, наиболее убедительным мне все-таки кажется довод про животный мир — почему ящерица не сдвинула себе два глаза вперед, если это облегчает расчеты и позволяет облегчить мозг? Не то чтобы это было офигеть какое преобразование. Не говоря уже о том, что наверное, можно будет выкинуть неслабую часть мозга (занятую расчетами), которой у ящерицы и так не очень-то…
— вы правы в том, что это не строгое доказательство, в том случае, если мы допускаем, что есть несколько алгоритмов восприятия глубины, и какие-то из них просто «набивают библиотеку» опытом, а когда библиотека уже есть, могут спокойно отключиться и никто не заметит потери. Причем «не заметит» сказано еще и очень мягко. Когда мы смотрим на экран в кинотеатре, наше бинокулярное зрение вообще никак нам не помогает (весь экшн происходит на плоскости экрана), и мы не чувствуем никакого дискомфорта, никакой необходимости перестраиваться, мы вообще не замечаем каких-то отличий — вплоть до того, что как в пелевинской метафоре про телевизор, не всегда можем понять, сами ли мы двигаемся по миру, или уставились лицом в экран, показывающий нам всю картинку. Опять же, не строгое доказательство, но заставляет слегка задуматься на тему того, почему такой важный элемент восприятия, как вы утверждаете, так легко выключается?
— у большого количества животных глаза смотрят по обе стороны головы. Мы ведь не считаем, что они все не осознают, что находятся в трехмерном мире, и ходят по плоскому миру мультиков? Опять же, вы можете сказать, что эти животные пользуются другим методом — параллакса или еще каким. Но зачем тогда нам смотрящие вперед глаза? Если они не дают никакого ощутимого профита по сравнению со, скажем, зрением птиц, то почему они закрепились в ходе эволюции? А если дают — почему они появились только у части животных? Общераспространенное мнение (по крайней мере, в моем учебнике биологии) говорило, что вперед смотрящие глаза нужны хищникам, чтобы лучше ориентироваться и хватать добычу — и это, как несложно заметить, не очень согласуется с тем что существует куча хищников, обладающих глазами по бокам головы, и им норм.
— что-то уже больше похожее на доказательство — что будет, если залепить глаз новорожденному котенку? А ничего не будет. Через непродолжительный период он сможет восстановить нормальное поведение, не будет врезаться в стены и в целом будет таким же котом, как и остальные.
А ваше предложение немедленно потребует отдельной нейронки для лица, вид сзади, отдельной нейронки для лица в три четверти, а желательно вообще 360 отдельных нейронок для каждого угла зрения. И кстати, как собираетесь узнавать, какой нейронкой пользоваться? Перепробовать все по очереди? К слову о процессорном времени, пожалуй.
Насколько я знаю, все текущие попытки восстанавливать 3d по одиночной картинке оказывались безуспешными — самая, громкая, кажется, вот эта Стэнфордская статья, комментарии к демо-ролику на ютубе которой полны печальных комментариев о том, что оно не работает) С движением же ситуация, похоже, ситуация другая — оно начинает работать с момента формирования и развития зрительной системы, ему не нужны никаких предыдущие подсказки (и не нужен второй глаз — его можно с рождения зашить, и животное по-прежнему сможет отлично ориентироваться).
Ваш пример с SIFT+RANSAC упоминался в посте как «пробовал, но что-то не получилось» (это тот, который с помощью stereoRectifyUncalibrated), так что вполне возможно, конечно, что это мне просто не хватило скилла.
— во-первых, статическая сцена (где ничего не двигается) удобнее нам потому, что мы ее полностью контролируем. Пока мы не шагнем, все остается на месте.
— во-вторых, остается вопрос определения движения. Для камеры мы можем получать ее двумя способами: прямо от моторных механизмов, которые ее двигают (от своих ног, грубо говоря), или анализировать общее смещение потока в кадре (я очень хотел добавить это в пост, но места уже явно не хватало). Как говорил Дуглас Хофштадтер, мы обычно различаем на картинке «рисунок» и «фон» — изображенный предмет и все, что просто занимает место на обоях. Вот по сдвигу фона можно довольно точно определить, куда мы двигаемся. А если фон стоит на месте, и двигается объект — тут остаются варианты.
Интеллекту — определенно браво; я вот так не могу) Интересно, вы занимаетесь повседневно работой с мелкими предметами?
А вы все-таки пробовали закрыть один глаз?) Или посмотреть на плоскую распечатанную картинку, где конвергенция совершенно точно никак не работает, потому что не на чем ей?
Совершенно не сомневаюсь, учитывая мои собственные более чем дилетантские знания в 3d-реконструкции… но все-таки, поделитесь способом, который:
— не требует двух камер и пространства (работает на отснятом заранее видео)
— не требует параметров камеры и калибровки.
Ноль сарказма, кстати, мне действительно очень интересно.
Про объяснение работы фундаментальной матрицы отдельное спасибо, в этом поле я совершенно плаваю)
Спасибо за ссылку, обязательно поинтересуюсь.
Альфред Ярбус, однако, очень известная и классическая работа по саккадам (не читал, но наслышан, как говорится). У него, правда, был очень суровый eye-tracker с присосками на глазных яблоках — надеюсь, вы справитесь как-то менее инвазивным способом.
А еще в копилку к художникам, например, Магритт и издевательства над окклюзией: