Фоторегистрация при картографировании - отличный cпособ улучшить карты

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

Наличие фотографий позволяет:

  • Точно картографировать не только дороги, но и дома, заборы, магазины, школы, переходы, дорожные знаки, bump-ы, итп.
  • Рисовать точно, даже в том случае если трек плавает ±50 метров.
  • Обкатывать дороги любого типа (авто, тропинки, пешеходные), не озадачиваясь на тему как потом вспомнить что где.

Задача - сделать фото-регистратор из WinMobile КПК.

После беглого изучения темы было найдено три программы:

Два видео-регистратора:

  1. AutoDVR http://www.autodvr.ru/
  2. MyDVR http://mydvr.ru/

И один фото-регистратор:
3. ItsMyCar http://4pda.ru/forum/index.php?showtopic=101828&st=0

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

Хотя надо заметить, что авторы MyDvr (2) ведут активную разработку, отвечают на вопросы на форуме. И вроде даже хотят добавить фото-регистрацию в будущих версиях.

Если первые две коммерческие программы – серьезно разработанные видео-регистраторы. Которые сами захватывают видео, дают качественную картинку, добавляют на нее дату и GPS-координаты, итп. То ItsMyCar - несложная бесплатная программа-оболочка, написанная на VB .NET, работающая со штатным приложением камеры, просто имитируя нажатие кнопки «съемка».

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

**Итак, нюансы настройки: **

ItsMyCar

  1. Путь сохранения фото: \ (возможна эта проблема только на FS Loox).

Camera.exe:

  1. Отключить звук затвора
  2. Отключить подсветку
  3. Отключить показ preview после фотографирования
  4. Путь сохранения фото: \

Настройки режима съемки сейчас использую такие:

  1. Amibience: Daylight
  2. Разрешение пока пробую ставить минимальное. Мне кажется что так меньше смазывает изображение при съемке (хотя возможно только кажется, буду проверять).

Крепление:

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

EXIF:
В современных КПК такой проблемы быть не должно, в данном случае речь идет о WM2003.

После того как были побеждены все начальные проблемы, проведена тестовая съемка – я пришел домой, слил фото и приготовился рисовать карту…. выяснилось что встроенная камера WinMobile не пишет EXIF в файл с фото. А JOSM для привязки к треку берет дату-время именно из EIXF.

Пришлось поколдовать над решением. Нашел подходящий редактор EXIFa (пеловый ExifTool – The Best), написал хитрый батник для извлечения даты из свойств файлов и формирования команды для ExifTool. Еще пришлось изрядно повозиться с конвертированием формата даты. Bat скриптинг – великое зло. 8]

Итак:

1.1. EXIFTool берем здесь: http://www.sno.phy.queensu.ca/~phil/exiftool/ (Windows Executable)
1.2. Текст батника здесь: http://pastebin.com/f59830ebb
1.3. Ну или сразу можно скачать готовый архив с обоими файлами: http://antaresantares.narod2.ru/files/Date2EXIF.zip :slight_smile:

  1. Кладем exiftool.exe и dateToExif.bat в папку с фотографиями. Запускаем. И оно конвертит дату редактирования файла в EXIF AllDates (Creation, Edit, …) – ДЛЯ ВСЕХ ФОТОГРАФИЙ В ПАПКЕ.

  2. Можно выпить чайку. :slight_smile: Конвертирует со скоростью примерно 1 фото в сек: http://clip2net.com/clip/m9923/1254956560-clip-25kb.png

По завершению фотографии отлично привязываются к треку в JOSM.

Все работает корректно. Но на всякий случай бэкапте фотографии и не запускайте батник где не следует :slight_smile:

Результат:

Tada! http://clip2net.com/clip/m9923/1254956828-clip-299kb.jpg

Подробный фото-журнал вдоль всего трека.
…качество фото конечно ужасное. :slight_smile: Но для первого эксперимента больше и не требовалось.
В минимальном приближении цель достигнута.

Итого:

  1. Готовое решение фоторегистрации для WinMobile КПК.
  2. При картографировании фотографии действительно очень помогают *
    * но отнимают больше времени, т.к. начинаешь наносить на карту больше деталей :slight_smile:
  3. 30 минут, 2.5 фото в секунду = 732 фото 120х160пикс = 5.6МБ на FS LOOX 720.
  4. Аккумулятора старого КПК хватает всего на час-полтора. (правда я его часто дёгал пока настраивал – если не трогать, проработает чуть больше)
  5. «Световой день» для толковой фоторегистрации заканчивается минут за 30 до заката солнца. :slight_smile:

Развитие:

Первое что нужно делать для усовершенствования системы, это улучшать качество. Основная проблема сейчас – это то, что камера КПК делает фото с повышенной выдержкой, от чего они смазываются при резком движении.

Так же камере явно хочется прибавить угла зрения. Т.к. чаще всего важнее видеть не то, что находиться прямо по курсу движения – вдоль дорог, а объекты по сторонам дороги.

Возможны следующие пути:

  • Заменить программу работающую с камерой на другую (Самописную\MyDVR)
  • Попробовать прикрутить к КПК внешнюю камеру (а что? У меня usb-host есть… дело за драйверами:)
  • Заменить КПК на более толковый девайс: Ноутбук (стремно за перегрев и тряску HDD, я один уже сменил:), UMPC\Нетбук (оптимально). На такие девайсы можно навесить толковые камеры (и несколько штук) + проще найти\написать толковый софт.
  • Написать прошивку для мыльницы Canon, что бы она стала фоторегистратором [требуеться супер-квалифицированный ассемблер-гуру с вагоном времени;))]]

Варианты увеличения FOV

  • Найти\сколхозить широкоугольную линзу на объектив. Например: http://www.dealextreme.com/search.dx/search.lens
  • Использовать несколько камер (идеально8) http://www.opengeodata.org/2009/10/02/cheap-streetview/
    …Как бы подружиться с этими ребятами и раздобыть комплект софта, что бы не изобретать велосипед? OpenStreetView с подробностью до каждого переулка – ы? 8]

PS: И не забывайте сфоторграфировать экран GPS-а в начале покатушки, для коррекции смещения по времени фотографий в JOSM. :slight_smile: (у меня при подборке смещения, почему-то пришлось добавить еще 3 секунды к тому что показывал GPS на фото)

PPS: с появлением новой информации пост планирую обновлять (если форум не будет глючить:)

…наверное стоило оформить как статью и разместить куда-нибудь в более толковое место чем на форум (тут что-то с надежностью в последнее время не очень). Но куда, с хожу не придумал…, а долго думать не стал. :slight_smile:

Полностью согласен. Использовать фотографии очень удобно.

http://spectrum.ieee.org/geek-life/hands-on/diy-streetview-camera/0 - это оригинальная статья Роя, автора системы. В ней он более подробно описывает процесс и приводит список ПО. Насколько я понимаю, ничего нового он не писал, а точно также собрал связку из имеющегося бесплатного софта.

Вообще, создать подобную конструкцию для самодельного StreetView очень заманчиво. Можно просто взять существующие автомобильные видеорегистраторы, пишущие jpg (например, от http://videoreg.ru), подключить к ним usb-камеры с углом обзора пошире и система готова. Можно даже ограничиться 2-мя, а не 4-мя камерами - да, 360-градусного обзора не будет, зато все впереди и по бокам будет видно. Остается только питание, но его можно от велосипеда же и брать. А в машине уж сам Б-г велел :slight_smile: Хотя, конечно, это будет дорого - сам регистратор от 6-7 тысяч плюс камеры.

Камера, поддерживаемая альтернативной прошивкой chdk, таймеров в скриптах там написано вроде много.
К сожалению, моя a480 не поддерживается, прошивку с неё ещё не сдампили… a470 может найдёшь ещё в продаже или б/у какой сносного качества :confused:

Вот интересный линк на похожую тему… построение 3D по множеству фотографий!
Виртуальный 3D-мир становится ближе с Photosynth!
Построить Рим менее чем за день

Толку с этого фотосинта… Сначала был в восторге, а потом мне не удалось выдрать оттуда облако точек и я на все это забил.
Может, уже придумал кто, как это сделать. :3

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

Его идея такая - с вебкамер льется видео-поток. С которого грабятся кадры, которые потом (постфактум) конвертятся в панорамы. Производительность порядка 8сек\кадр. - Не слишком быстро, система требует доработки. Еще у него есть проблема с фоторафированием на ходу, т.е. как я понял едущий джип номально не снимает.

ПО и железки он перечислил. Жалко непосредственные скрипты и конфиги в отркрытый доступ не выложил. Но я думаю договориться можно. :slight_smile:

Я когда-то давно читал статью+комменты ребят которые первыми делали дешевый самодельный стритвью в России (не-то на Хабре, не-то где-то еще, надо бы поискать их сайт). У них, насколько помню были основные проблемы 1. С пропускной способностью usb. 2. С синхронизацией работы камер. В результате они все решили. Времени ушло несколько месяцев, с учетом что работали несколько человек в свободное время

Дальнейшую их судьбу не знаю… может яндекс на базе их разработок и делает? :slight_smile: Надо погуглить.

Заманчиво - не то слово. :slight_smile:
Особенно с учетом того, что есть ощущение что все необходимое для создание имеется. И нужно лишь приложить небольшое усилие и правильно настроить. Тем-более пока нет погони за мега-качеством. Стабильный 180-градусный обзор в среднем разрешении, для начала вполне устроит.

Благодарствую за линк! :slight_smile: Я потому и написал про камеру, что помнил про эту штуку.
В прошлый раз когда смотрел их сайт, было заявлено что моя древняя A80 поддерживаться не будет. Но с тех времен у меня появился еще IXUS 75, а у них появилать его поддержка! )

Сегодня повозился-разобрался… и Bingo! моя камера умеет выполнять скрипты на бейсике :slight_smile:
Так что буду изобретать крепление под камеру и пробовать с ней. Два момента:

  1. IXSUS не умеет отключать дисплей для экономии энергии (не знаю насколько будет хватать батареи).
  2. С фотоаппаратом - все-таки несколько жестокое решение. Там на каждый кадр срабатывает механический затвор, и механика явно не рассчитывалась на многочасовую непрерывную съемку по 1-0.5 fps. Производитель дает гарантию всего на 100000 срабатываний затвора, а это всего порядка 70-100 покатушек :slight_smile:

Конечно камера работает обычно в несколько раз дольше заявленной гарантии, но все же, когда слышишь непрерывное щелканье затвора - это немного напрягает. )

x10kHz, Hind На счет фотосинта - на самом деле очень интересная мысль на попробовать. Когда будет отработана технология получения качественного фото-лога, можно обкатать какой-нибудь особо интересный квартальчик и попробовать сделать синт.

Но там есть нюансы. 1. Всего 500 фото на синт (небольшой квартал при 2 кадра\сек). 2. Если регулярно вгружать по 500 кадров, то бесплатных 20 гиг, которые они обещают - надолго не хватит :slight_smile:

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

В мыльницах щёлкает динамик, имитирующий звук затвора :slight_smile:

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

Кхм…

2Antares19
Да, он брал поток с видеокамер. Действительно, 8с/кадр не так уж и много, но если ехать на велосипеде или вообще идти пешком, то этого вполне хватит.

Эти ребята, видимо, были проект http://kartamania.ru , а статья о них действительно была на Хабре. Они действительно все решили и меня тогда это тоже заинтересовало. Я написал им письмо, но ответа так и не получил. А сейчас, похоже, проект просто умер.

Заказ Яндекса на панорамы выполняла российская компания Neq4 (www.neq4.ru, www.prosto360.ru), которая сделала классные панорамы и других мест. Лучше Гугловских, потому что они специализируются на создании виртуальных туров. Например, на сайте “Кофемании”. Небольшая статья про них в “Секрете фирмы” - http://www.kommersant.ru/doc.aspx?DocsID=1009699 Как я понимаю, они снимают обычной зеркалкой с широкоугольным объективом.

На Западе народ еще использует камеры компании Point Grey Research - Ladybug2. Это специальная камера с 6 объективами, которая пишет единый видеопоток всего происходящего вокруг. В итоге получается очень интересно - http://360videoblog.blogspot.com/2009/08/yellowbird-captures-t-mobile-sing-along.html . Чем-то похоже на работу Immersive Media, камеры которой раньше использовал Google для своего StreetView, но у них разрешение картинки меньше. Правда, и стоит Ladybug2 10 тысяч долларов, а сколько будет ее новый вариант, Ladybug3, работающий уже с шестью FullHD-потоками, никто не знает.

Да, пожалуй, устроит. По сути, есть только 2 варианта - снимать кадры с вебкамер и ставить автономные фотоаппараты. Первый вариант позволит писать и видео при желании, а второй будет более качественным и автономным. Я бы предпочел именно его. Так может и заказать где-нибудь у китайцев систему из 4 начинок фотоаппаратов мегапикселей в 5-6 в едином корпусе?. Индивидуальные корпуса, дисплеи не нужны, автономность будет обеспечиваться батарейками для каждого фотоаппарата, хранение - карточкой памяти, опять же, у каждого своей. Может выйти долларов в 200. А потом продавать OSM-щикам всего мира за 250 - каждый захочет сделать StreetView своей деревни. Вот и бизнес будет :slight_smile:

Собрал первое фотолог-видео:
http://www.youtube.com/watch?v=naT7cft52r8

Собрано из некачественных фоток второй, пробной, фоторегистрации.
Разрешение 320х240 (ых, знал бы - сделал больше:).
Снималось на 0.5 fps, собрано в видео 8 fps.

Камера - сначала горизонтально (сильно лучше), потом - вертикально.

В процессе съемки погода резко переменилась, похолодало градусов на 5, убрали солнце и включили сильный ветер (там где статичные кадры - деревья качает). Чуть не сдуло пока докатывал. :slight_smile:

Пока всё. :slight_smile: На комментарии отвечу ближе к вечеру. (надеюсь успею) )

Судя по всему это все-таки затвор. Причем закрывается он во время обработки кадра, видимо что бы убрать наводки с матрицы или как-то так.

Кадрируем-Фокусируемся=Затвор открыт, Съемка кадра (выдержка)=Затвор открыт, Обработка кадра=Затвор закрыт.
Все это отчетливо видно если смотреть в объектив. Время обработки кадра пропоционально длинне выдержки.

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

Отключить его программно если и возможно, то вероятно совсем глубоким влезанием в алгоритмы работы железа )

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

Звуки отключены сразу в момент покупки фотика, для сохранения тишины и энергии в АКБ. :slight_smile:

Мне вот больше интересно даже не облако 3Д точек, а вьювер позволяющий бродить по местности рассматривая фото и детали. Был бы такой, но не отдельными синтами - а глобальный по миру, так же как StreetView - цены бы ему не было :slight_smile:

Чего бы не изобрела наука, люди превратят это в оружие! 8)

** Eugene** спасибо за такую кучу ссылок и информации! :slight_smile:

Для велосипеда 8с\кадр - слишком медленно. Подходящий минимум порядка 2-3с\кадр. Так что нужна более эффективная система.

А вот для пешехода 8с - похоже подойдет. С учетом того что велосипед в среднем как-раз быстрее в 4 раза.


Про kartamania.ru - точно. Я говорил про них. Эх, жалко что у них все остановилось.
Круто было бы, если бы они поделились технологиями склейки панорам и вьювером+картопривязкой. )
Надо бы еще раз попробовать с ними связаться.


Neq4 - действительно очень круто делают. Просто мега-респект.
Насчет технологии съемки - все таки для снятия мгновенных панорам, у них точно что-то есть вроде системы из нескольких фотоаппаратов. Подругому никак.

Immersive Media - видел, где-то в новостях пробегало. Point Grey Research - не видел.
И те и другие очень круты. Но конечно дороговато слегка ))


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

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

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

Например для Canon-ов с CHDK, все сведеться к разработки паянию простого устройства которое может выдавать 5 вольт по таймеру: http://chdk.wikia.com/wiki/USB_Remote_Cable

Думаю четко-настроеные камеры в таком варианте должны срабатывать практически синхронно (с соблюдением требуемого допуска 0.5 сек).


По поводу заказать Китайцам - это конечно мега вариант. :slight_smile: Только для этого нужно изучить каналы по которым собственно заказывание таких штук производится ) Так же вопрос донесения требований и проверки результата.

Anyway, начальный прототип нужно собирать самим.

Немного ссылок:

Софт:

Если заниматься СтритВью, конечно нужно не забывать контактировать с уже начатыми проектами:

http://www.openstreetphoto.org/
http://wiki.openstreetmap.org/index.php/OpenStreetPhoto

С их летающим над городом Sint Pietersberg фото-вертолетом:
http://blog.opengeo.nl/
http://www.mikrokopter.de/ucwiki/

и
http://openstreetview.org/
http://wiki.openstreetmap.org/wiki/OpenStreetView

Нашел еще
http://www.openstreetview.org.uk/

Там нет информации вообще, но есть просмоторщик панорам, более культурный чем на двух предыдущих.

Кстати, OpenStreetPhoto оказывается тоже используют CHDK. Я когда первый раз их видел, как-то не обратил на это внимание. И еще они активно работают над системой распознавания знаков на фотках (можно посмотреть в их блоге).

Железо:

Поискал дешевых фотиков на разборку на dealextreme, но что-то ничего не приглянулось:

http://www.dealextreme.com/products.dx/category.411
http://www.dealextreme.com/search.dx/search.camera
http://www.dealextreme.com/products.dx/category.812

Если же целится на Canon-ы, то б\у подходящие для CHDK стоят порядка 1500-2000 на молотке:
http://molotok.ru/item770876692_canon_ixus_40.html
http://molotok.ru/item761302515_canon_powershot_a530.html

Грустно что на e-bay цена получается не меньше. -__-


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

Получилось очень здорово! ) Теперь можно собирать супер-HiRes фотолог с покатушек (я снимал 1600х1200).
Вообще для картографических целей такое разрешение уже и не нужно, буду наверное до 800х600 ужимать )

Да пожалуйста! Я просто сам давно мечтаю о самодельном StreetView, поэтому и интересуюсь разными разработками в этой области.

Думаю, что для велосипеда/машины лучше даже 1с/кадр - при скорости в 40км/ч машина проезжает за секунду 10 метров, а это прилично.

Я тоже согласен. Это более автономный и при этом качественный вариант.

Да, это точно. Но думаю, при желании этот вопрос можно решить. Прототип тоже можно собрать из тех же китайских фотоаппаратов, они несколько дешевле, чем официальный Canon :slight_smile:

Еще один вариант, над которым я раздумываю, потому что он самый простой - не мучаться и купить action-камеру :slight_smile: Для России лучший выбор на http://www.actioncams.ru Если не сильно размахиваться на разрешение, то можно взять камеру VholdR. Это будет дешево и автономно. Если уже хотеть HD-вариант, то есть ее идейный продолжатель - ContourHD. Можно еще и другие посмотреть, но они обычно дороже.

Такая штука подойдет для целей картографирования, но не StreetView. К тому же работать с видео сложнее, чем с кучкой фотографий.