Сейчас модное направление в робототехнике – это автомобили-роботы, которые могут управляться автономно. То есть, такой автомобиль сам рулит, ездит по дорогам (и без дорог) из пункта “А” в пункт “Б” без водителя. Тема довольно старая, а, например, соревнования автомобилей-роботов проводились под эгидой DARPA уже несколько лет назад.

Понятно, что преобразовать массовый гражданский автомобиль в некоторый интеллектуальный механизм, который нельзя будет просто “врезать в стену”, это очень полезная идея. Например, достаточно сложно заставить лошадь спрыгнуть в пропасть или с размаху налететь на бетонный столб. Животное сопротивляется подобному управлению, так как обладает достаточным собственным представлением о том, что происходит вокруг и может даже строить прогнозы. Такое поведение снижает общую аварийность гужевого транспорта. С автомобилями вышло бы то же самое.

Но, тем не менее, сама технология автомобилей-роботов разрабатывается прежде всего для военных целей. И эти цели немного другие, если сравнивать с поведением лошади. Автоматические транспортные конвои – это то, что нужно, например, Штатам. Потому что колонны грузовиков на марше уязвимы. И если бы эти грузовики были не обитаемы, то проблем с охраной и рисками потерь стало бы сильно меньше.

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



Комментарии (9) »

В рамках “Премии Рунета”, как обычно, проходит “народное голосование” – здесь каждый желающий пользователь Сети может заполнить анкету, поддержав те или иные веб-сайты из списка номинантов. Конечно, голосовалку защищают капчей, которую интересно разобрать. Капчи, используемые разработчиками сайтов премии, уже традиционно служат хорошим иллюстративным материалом по теме “как не нужно делать” (пару лет назад я уже рассказывал про один из вариантов “премиальной капчи”).

Итак, вот что нам предлагают в этом году:

То есть, для того, чтобы доказать “что не робот”, нужно выполнить типичную для робота задачу – арифметическое действие с двумя числами. Кстати, забавно читать, что ответ требуется вводить “числом”. Видимо, это оговорка для тех настоящих геометров, кто предпочитает числам фигуры. (Да, понятно, что хотели сказать “введите цифрами”.) Начинаем разбирать капчу с точки зрения робота “или скрипта накрутки”. Рассматриваем только само изображение, не используя всякой сопутствующей информации, которая скрыта в механизме проверки/демонстрации капчи.

Во-первых, подумаем, сильно ли добавляет вычислительной сложности этот вот финт с требованием “выполнить простое математическое действие”. Понятно, что для обычного человека сложность сильно возрастает: вычитать/складывать числа – это вам не бенгальских тигров от африканских жирафов отличать по фотографиям, может потребоваться калькулятор (да ещё и прочитать ведь нужно правильно, учитывая все эти линии и окружности). А вот для робота, если он уже научился распознавать числа, составляющие данную капчу, ещё одна операция сложения не имеет никакого значения. Обратите внимание, что оба числа записаны одним и тем же шрифтом, в рамках одного и того же шаблона. Поэтому если “скрипт” научился распознавать слова в этой капче, то будьте уверены: он научился распознавать их все и сразу получит оба числа. Так что опять усложняют задачу только для человека. С точки зрения стойкости к распознающим автоматам, в данном варианте капчи достаточно было записать любое четырёхзначное числительное и предложить человеку ввести его. Но, видимо, задача состояла в том, чтобы усложнить капчу, не используя знаний о том, как работают распознавалки.

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

Кстати, уже на небольшой выборке хорошо заметно, что для вывода текста капчи используется жёсткий шаблон (наверняка так и есть, вряд ли программист что-то изменяет на длинном интервале): здесь всегда две строки, первый “операнд” занимает верхнюю, вторая строка начинается со знака операции. Роботов такие шаблоны всегда очень радуют. Посмотрим на капчу в увеличенном виде:

Как это распознавать?

Казалось бы, нужно распознать все буквы, собрать из них слово, проверить по словарю, преобразовать в число, определить знак операции, вычислить, ввести ответ. Вроде бы с буквами и словами должна возникнуть трудность, типа, они иногда закрыты линиями и вообще – искажены. Фокус в том, что те, кто делают автоматы, распознающие капчи, не используют такого фундаментального “академического” подхода.

Всякий криптолог скажет вам, что шифрованный текст, о котором известно, что он состоит только из числительных – большая радость для взломщика шифров. А случай с капчей “Премии” ещё более простой. Дело в том, что числительные здесь можно очень эффективно распознавать даже при самом большом уровне шума, потому что они записываются словами с известными свойствами и набор этих слов не велик. Например, число 4 можно безошибочно узнать по двум критериям: первая буква “Ч”, а число букв в слове – 6 (тут даже не страшна погрешность по подсчёту букв, потому что числительных на “Ч” в интервале 1-100 – совсем уж мало). То есть, как читатели догадались, для распознавания числительных не нужно распознавать все буквы (можно букв вообще не распознавать – см. ниже), а нужно правильно использовать другие математические свойства изображения капчи. Забавно, что в использованном шаблоне даже число слов даёт уйму информации: например, “сорок” (40), в качестве первого слагаемого, так и записывается в первой строке шаблона одиноким словом, позволяя совершенно точно не перепутать 40 и 41, 42, … И это хорошо, роботы не любят дополнительной работы по проверке, им нужно экономить батарейки.

Да, в капче шаблон текста искажается “волнами” и “перспективой”. И есть ещё суперчёрточки – очень популярное явление. Но это не страшно, потому что для определения чисел, указанных на капче, не нужно все эти искажения компенсировать. Достаточно сделать примерно следующее:

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

2) посчитать пробелы в строках (строк всегда две, пробелы определяются подсчётом расстояний между “буквами” – распознавать их для этого не нужно – вдоль горизонтальной средней линии строки, которая определяется из положения углов шаблона и центра масс нескольких “букв”, в строке может присутствовать только один пробел, то есть ошибиться программе сложно);

3) посчитать длины слов в строках (определяется длина и в пикселах, и в “буквах”);

4) отфильтровать множество возможных значений элементов капчи по “словарю”, содержащему длины слов, составляющих записи числительных;

5) учесть пробелы и относительные длины слов (сравните сами: “сорок два”, “семнадцать”, “пять” – отличить легко без распознавания букв; составить словарь могут те, кто займётся реализацией очередной распознавалки для народного голосования);

6) в оставшихся после разбора неоднозначных случаях использовать пиксельные признаки записи букв в капче. Там используется один шрифт, пусть и с искажениями. Отличить “семь” и “пять” можно, посчитав число “ножек” у букв по “нижней линии”. У букв слова “семь” – две “ножки” (буква “м” – ну, если с погрешностью, то максимум три “ножки”). У букв слова “пять” “ножек” тоже пять: их дают “п”, “я”, “т”. Считать программно “ножки” не сложно, они складываются из числа границ, пересекаемых при трассировке изображения слова вдоль прямой.

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

Если кто захочет пойти дальше, то можно, конечно, подключить распознавание “простых” букв, вроде, “п” и “м”, для получения стопроцентного распознавания. Главное, что сегментацию в капче не нужно делать, там уже и так всё в бинарном контрастном виде.

В общем, в этой капче – следующие проблемы: использование числительных в качестве основного элемента из-за малой вариативности сводит к нулю все усилия по затруднению “распознавания текста”; использование двух этапов решения (прочитай слова/вычисли результат) опять затрудняет распознавание только для человека и никак не влияет на сложность автоматического распознавания. То есть, снова защита от добросовестных пользователей, которую пробьют роботы.

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



Комментарии (8) »

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

Предположим, что есть один снимок ключа, добытый где-то в интернетах (ну, например). На снимке – ключ попал в кадр целиком, но виден под каким-то “непрямым” ракурсом. Что можно сделать? На первый взгляд кажется, что информации слишком мало. Но это только кажется.

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

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

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

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

А если заготовка нестандартная? Тогда параметры оптической системы можно определить по каким-то другим объектам, геометрия которых известна, при условии, что их изображения находятся на том же снимке. А кроме того, современные объективы и фотокамеры – тоже вполне себе стандартные. Получив тип устройства из сопутствующей информации (EXIF), часть нужных параметров можно взять из справочника, а не вычислять.

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



Комментарии (9) »

Вышел из печати очередной номер “Доменных имён“. Тема номера – будущее Интернета. Пишем про идентификацию пользователей, корневую зону и так далее. Вообще, уделили внимание важным тенденциям, которые сейчас для рядовых пользователей, и даже для сообществ “интернетчиков-контентщиков” – не очень заметны.

А между тем, благодаря этим тенденциям, лет через пять и рядовые пользователи, и типичные “контентщики” (сайтостроители, например) окажутся в новом Интернете. Изменения, например, в идентификации пользователей самым прямым образом коснутся интернетовских социальных сетей и принципов их построения. Это особенно интересно смотрится на фоне того, что в “популярной культуре” сейчас на слуху разные поверхностные проявления, типа “тенденции” вида “мода на Twitter”, отмеченной вторым местом в номинации “Тенденция года” конкурса РОТОР. (Первое место там досталось “тенденции” из той же категории “мода”, но это тема для отдельной заметки.)

Возвращаемся к журналу. Мы 7 октября проводим презентацию нового номера в Центральном доме журналиста – приходите, кому интересно. Там запланирована интересная программа (про домены, системы адресации, литературу и так далее) – описание на специальной странице.



Комментарии (1) »

На фото – один из прототипов, на которых в 60-70-х годах отрабатывались решения по созданию практических малозаметных самолётов:

(Фото: Lockheed Martin)



Комментарии (7) »

Итак, продолжаем выпускать блог dxdt.ru.

Кстати, в своё время гражданский сигнал GPS содержал существенную “уводящую помеху”, специально встроенную для того, чтобы систему (в гражданском варианте, понятно) нельзя было использовать для наведения сколь-нибудь быстрого и при этом высокоточного оружия. Позже ограничения сняли. Этот фактор только увеличивает потребность в “локальных” помехопостановщиках GPS.

То есть, прикрыть действительно важные объекты от систем наведения, работающих по GPS, можно с помощью создания помехи, которая не позволит гражданским приёмникам работать в некоторой зоне вокруг объекта. Такой подход компенсирует возможности современных навигационных устройств, доступных на рынке (ведь с их использованием уже давно делают любительские модели самолётов с автопилотами и тому подобные вещи). Метод используется в реальности, что не удивительно.

Интересно, что в те времена, когда гражданский GPS-сигнал транслировался в “сильно испорченном” виде, придумывали методы “корректировки”, которые могли бы позволить получать точную навигацию на базе GPS. Понятно, что коррекцию можно проводить, используя дополнительные точки привязки, координаты которых точно известны и до которых точно известно расстояние. Такими точками могут быть наземные маяки, передающие сигнал синхронизации по радио. При этом, маяк определял бы своё местоположение, используя GPS: для неподвижного приёмника ошибка исправлялась с помощью накопления сигнала в течение определённого промежутка времени.

То есть, для борьбы с помехой использовалась бы обратная схема: если сейчас можно с помощью помехи “закрыть” от GPS определённый участок пространства, то при “испорченном” GPS на нужном участке пространства можно построить дополнительную корректирующую “антипомеху” и – получить более точную (и практически столь же простую по реализации) навигацию. (Хорошие результаты дал бы уже один маяк, выставленный заранее.)



Комментарии (7) »

WebHiTech-2010

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



Comments Off on WebHiTech-2010

Блог: в эфире

1, 1, 2, 4, 11, 19, 56, 96, 296, 554, 1593, 3094, 10723, 20832, 75154, 159129, 686165



Комментарии (4) »

Готовим очередной выпуск журнала “Доменные имена” (как обычно, выход из печати запланирован на осень). По ходу подготовки удаётся пополнять список “фактов и объяснений”, которые затруднительно или “невозможно” опубликовать из-за особенностей редакционного процесса. Теперь, к “корневому домену“, добавлены ещё два объекта.

1. Пример уязвимости с инъекцией кода. Пример, понятное дело, содержит строку, которая начинается с буквы, содержит внутри кавычки (минимум одну) и не содержит “закрывающей” кавычки. Вот примерно так:

name”, request=”get”, value=”passwd

Проблема в том, что либо верстальщик, либо корректор – добавят “пропущенные” кавычки (и ещё могут поставить “ёлочки”).

2. Мощность пространства адресов IPv6 и число 2128. Как известно, с помощью 128 бит можно, в принципе, раздать 2128 адресов. Проблема: показатель степени 128 многим представляется очень большим, поэтому, на том или ином этапе работы с текстом, число 2128 превращается в 2128.



Комментарии (1) »
Навигация по запискам: « Позже Раньше »