Mapillary — открытая база панорам

Можно сделать такой скрипт:
на входе видеофайл и обрезанный вручную gpx, который полностью совпадает по времени с видеофайлом с точностью до секунды. GPX вроде бы пишется с точностью до секунды.
Используем ffmpeg для операций с видео, и ogr2ogr/spatialite для операций с геометриями.
-Обрезаем конец видео до целого числа секунд, так что бы оно совпадало с количеством секунд в gpx-треке.
-Считаем количество кадров в видео.
-Загоняем gpx в spatialite
-вытаскиваем каждый кадр, и к нему точку из трека функцией Line_Interpolate_Point. Можно и не каждый, а например через 10.
-Записываем в jpg-файл кадра координаты, генерируем дату, время и другие EXIF-теги, необходимые для mapillary.

Вот только непонятно, как записывать время, если за одну секунду получается несколько картинок.

Может быть в отдельную тему вынести обсуждение?

GPS может писаться с разной частотой, опять же могут быть отброшенные точки.

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

Использовать миллисекунды. В exif и атрибутах файла современных файловых систем (ntfs, ext4) не unixtime, а более точный формат, так что никаких проблем нет.

Line_Interpolate_Point же как раз все эти проблемы решает.

Подобное некорректное дублирование координат хоть и принесёт ошибку в конечный результат, но она не особо значительной должна быть. Во многих случаях можно пренебречь. Но всё же подобная запись треков - не есть массовый подход (в том числе и опробованные мною версии Навитела подобной недоработки не имеют). Но если уж от недоработанного ПО никак не уйти, то можно попричёсывать, благо несложно, если о косяке таком в треке известно.

В блоге mapillary опубликована инструкция по получению фотографий с координатами из видеозаписи.
http://blog.mapillary.com/news/2015/01/08/video-cutting.html
Это стало возможным благодаря новому скрипту https://github.com/mapillary/mapillary_tools/blob/master/python/add_fix_dates.py
он принимает пачку jpg без exif, и записывает в них время сьёмки с заданным интервалом в секундах.

Процесс идёт так:

  1. Снять видео и gps-трек
  2. Вытащить из видео по кадру через целое количество секунд (1 кадр за 1, 2, 3… секунды)
  3. Открыть трек, сообразить где на треке находится первый кадр видео, запомнить время в этой точке
  4. Запустить скрипт, который к каждому кадрику припишет время съёмки, начиная с времени, которое нашли в шаге 3
  5. Привязать jpg к координатам в gpsPrune (у меня не получилось, поэтому я использовал JOSM)
  6. Запустить скрипт, который дописывает к фотографиям азимут.

    profit !

Только теперь оказалось, что библиотека которая разбирает exif на сервере mapillary, не читает теги записанные JOSM. Поэтому я дополнительно прогоняю такие файлы через GeoSetter.

Речь о плагине Photo Geotagging? Насколько я вижу, он направление не записывает, которое нужно для mapillary.
Если нет, то в чём заключается прогонка через GeoSetter?

Хочется что-то попроще GeoSetter-а для простановки данных под mapillary, поэтому и спрашиваю.

А не придумали чтобы из трека вытащить азимут по направлению движения + коррекция камеры от направления.

Вот бы еще запилили плагин Mapillary для JOSM, предлагаю проголосовать за данный тикет (стрелка вверх).

Там был глюк в Photo Geotagging, который писал теги как-то не так. Не знаю, исправили его, или нет.
Если у фотографий не читаются координаты, то их нужно открыть в GeoSetter, внести какие-нибудь изменения (добавить рейтинг, или название), и сохранить.
Вот этот скрипт проставляет к фотографиям азимут и поворот камеры: https://github.com/mapillary/mapillary_tools/blob/master/python/interpolate_direction.py

Я не в восторге от их приложения под android. Больше всего смутило то, что сделанные тобой снимки, по факту, тебе не принадлежат. Абсолютно все, что попало в кадр, приложение заливает на сайт и сразу же удаляет. На сайте - проставляет свои логотипы, лицензию и сразу же показывают на общей карте. Чтобы удалить какие-то из своих же фотографий, нужен аппрув с их стороны. Ждать несколько часов и не факт, что заапрувят. Нельзя ни сохранить себе оригинал, ни что-то отредактировать.

Ну и по мелочи. По умолчанию автофокус включен. При плохом освещении камера находится в постоянной автофокусировке, изображения получаются размытыми. Но это отключается в настройках.
По направлении камеры вниз, съемка должна приостанавливаться, но до остановки несколько снимков все равно проходят (а удалить их можно только с сайта, после аппрува).
За 40 минут разрядил батарею на nexus 5 почти полностью. Возможно, из-за постоянной автофокусировки.

Если что-то заливать туда, то только заранее сохраненные и отредактированные снимки. Стандартными приложениями не пользоваться.

Когда я пробовал, то там как раз было: типа выберите хорошие фотки, остальное удалите и нажмите кнопку залить.
Ну а про батарею вроде всё очевидно, GPS + камера + экран на постоянной основе - самые прожорливые девайсы.

Уупс. Да, нашел кнопку, где можно выделить и удалить изображения перед отправкой. Что-то я ступил.

В своей рассылке Mapillary сегодня выразили благодарность целому списку людей, в т.ч. trolleway.

Зря вы так, я смог ввести в ней почту и пароль. Теперь она замечательно падает на старте.

Я тоже искал знакомые ники и не нашёл :frowning:

У меня позитив.
Вчера, после более чем месячного перерыва, запустил, а оно перестало падать на старте.
По этому поводу обновил.

Теперь всё замечательно, только интерфейс строго вверх ногами, как ни крути.
Вечером посмотрю, как оно выложит фотки, наверно тоже вверх ногами.

Добрый день. У меня не получается следить, поэтому извините, если бояню.

Немного поигрался с сабжем… Ии, сбор и сохранение исходных геоданных в виде фот- это архиважная задача для ОСМа, которую мапиллари идёт к тому чтобы реашить… Ии, учитывая плотность (разреженность) осмомапперов, очень важна производительность, эффективность и ненапряжность процесса съёмки местности.

…кое- какие способы оптимизации процесса чъёмки:

Уменьшение громкости звука затвора камеры
…для непривлечения внимания окружающих с сохранением звуковой обратной связи об успешной съёмке кадра.
• рут необязателен
• установить из маркета программу “Android Assistant” от “Aaron.”
• вкладка “Инструментарий”> “Настройка громкости”> ползунок “Система” с изначальных 100% на ещё слышный уровень

Замена звук камеры
…для непривлечения внимания окружающих с сохранением звуковой обратной связи об успешной съёмке кадра. Более лучший выриант по соотношению громкости звука и привлекаемому вниманию, чтобы не слишком прислушиваться.
• рут необходим
• установить какой- нибудь файловый менеджер (например “X-plore”, в его настройках выбрать режима работы с корневой папкой с правами суперпользователя и возможностью перезаписи файлов), во всплывающем окне запроса прав суперпользователя разрешить их предоставление
• найти папку “/system/media/audio/ui” ,в которой в виде звуковых файлов “.OGG” хранятся системные звуки, в т.ч. звук затвора “camera_click.ogg”
• скопировать его, для сохранения возможности восстановления, в любое место на карточке памяти
• найти на просторах интернета и сконвертировать в OGG-vorbis понравившийся звук или выбрать из вполне подходящих находящихся в этой же папке других звуков, например “Dock.ogg” “VideoRecord.ogg” ,скопировать его в любое место на карточке памяти и переименовать в “camera_click.ogg” с точностью до регистра букв
• скопировать с перезаписью подготовленный файл в папку “/system/media/audio/ui”
• установить разрешения “User: Read, Write; Group: Read; Other: Read” (mode 644)
• перезагрузить телефон
• при съёмке первого кадра телефон тормознёт, надо подождать его, секунд 7
Источник более полной информации: http://4pda.ru/forum/index.php?showtopic=225904

Предотвращение засыпания телефона и блокировка экрана от случайных нажатий
…для облегчения удержания и управления.
• рут необязателен
• установить из маркета “Screen Standby” от “nkaHnt”
• Настройки (всё откл. кроме):
screen off method>
use non root method
effectiveness 70%
exrta settings>
use two- stage screen off
wake-lock
disable touch screen

Управление камерой с кнопки гарнитуры или другой лишней кнопки
…для возможности запихнуть телефон в чехол и повесить на что- нибудь.
Для переназначения функции подходят кнопки поиска, ответа на вызов на гарнитуре…
При подключении гарнитуры громкость системных звуков сбрасывается на ноль, так что может потребоваться отрегулировать с помощью “Android Assistant”, как описано выше.
• рут необходим
• установить “KeyEvent Display” от “Alexandros Schillings”
• запустить, сдвинуть влево до колонки “scancode”, и нажимая на лишнии кнопки смотреть соответствующее значение кода кнопки
• установить файловый менеджер для рута как описано выше
• изучить шапку http://4pda.ru/forum/index.php?showtopic=411431 .В двух словах, раскладки хранятся в “\system\usr\keylayout” среди кучи неиспользуемых файлов, и именуются приблизительно: “-keypad.kl", "-kpd.kl”, “-touchscreen.kl", "-buttons.kl”-клавиши телефона; “***-headset.kl” -кнопки проводной гарнитуры
• скопировать на карточку памяти на всякий случай
• открыть соответствующие файлы встроенным текстовым редактором и в строчках с найденными ранее номерами клавиш заменить название функций на “CAMERA”, т.е. “key 226 HEADSETHOOK WAKE” переписать “key 226 CAMERA WAKE”

Фотки перед отправкой можно (нужно) скопировать себе, в них даже ImgDirection есть.

Баг с фокусировкой на некоторых телефонах исправили в 1.16 ,недавно.

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

Приложение под android обновляется примерно раз в неделю, что-то активно допиливают.

Youtube отчитались, что они теперь поддерживают заливку панорамных видео.
Панорамные камеры появились в продаже уже давно, есть и по 300 - 350$.
Есть перспективы? Могут такие видео чем-нибудь помочь?