Read more about here
Archive for the 'Augmented Reality' Category
В зависимости вида “дополненной реальности” которую можно делать в настоящий момент с помощью флеша,
маркеры условно можно разделить на два типа:
3D маркеры
Использование данных маркеров позволяет осуществлять полное 3D управление AR сценой:
- перемещение X, Y, Z
- вращение относительно осей X, Y, Z
- пропорциональное увеличение, уменьшение
Под 3D маркером понимается в виду классический квадратный маркер
Пропорции линий и элементов важно соблюдать, размер можно делать меньше, но не сильно.
Цвета маркера должны быть контрасными, желательно (но не обязательно) ЧБ
Квадратный маркер нельзя печатать на неплоскхи поверхностях (например елипсоидный значок) ,
т.к. даже незначительные нелинейные искажения граней маркера приводят к очень нестабильной работе технологии.
Основные графичиские элементы маркера долны быть крупными (мин размер 15% от площади маркера)
Мелкие элементы в процессе обработки маркера (сжатие до 16х16 px) превращаются в серую муть и в анализе не участвуют
Маркер необходимо печатать на плотной бумаге, опять таки по причине нелинейных искажений.
Если материал не бумага – необходимо следить, чтобы поверхность была матовой, не бликовала.
2D маркеры
Использование этих (как правило цветных) маркеров позволяет осуществлять 2D управление AR сценой:
- перемещение X, Y
- пропорциональное увеличение, уменьшение
- в некоторых случаях вращение вокруг оси перепендикулярной плоскости экрана
Пример такого “маркера”
Кратно принцип работы техники распознавания:
- В видеопотоке идёт поиск определённого основного цвета
(в примере синий цвет бутылки) - чтобы отличить рабочую область “маркера” от фона
в ней проводиться внутренний поиск на характерный дополнительный цвет
(в примере красный цвет лого) - далее идетрасчёт положения сцены идёт отностительно центров масс
основого и дополнительного цвета
Исходя из выше сказанного:
- Цвета “маркера” должны быть насыщенными (отстоящими от цвета кожи, редко встречающимися в одежде)
- Основной и дополнительные цвета должны отстоять друг от друга по крайней мере на 30 градусов спектра
(параметр H в HSV системе) - Дополнительный цвет должен быть занимать ~25-50% от основного цвета
- Дополнительный цвет не должен разрывать границы основного цвета
Материал на котором будет печататься маркер должен быть по возможности матовым
паразитные блики от освещения – делают распознование нестабильным.
Если этого нельзя избеажать – необходимо увеличить площадь основного цвета.
It can be very usefully for a blob tracking technics
Example
Usage
// HSV PIXEL BLENDER FILTER
[Embed("HSV_Threshold.pbj", mimeType="application/octet-stream")]
private var hsvShader:Class;
private var hsv:Shader = new Shader(new hsvShader as ByteArray);
...
/// RED /// /// /// /// /// /// /// /// /// //
hsv.data.HueMin.value = [275.0]
hsv.data.HueMax.value = [ 35.0]
hsv.data.SatMin.value = [ 40.0]
hsv.data.SatMax.value = [100.0]
hsv.data.ValMin.value = [ 40.0]
hsv.data.ValMax.value = [100.0]
yourBitmapData.applyFilter(yourBitmapData, yourBitmapData.rect, new Point(0,0), new ShaderFilter(hsv));
Shader source
“The Japanese have hit the shores like dead fish. They’re just like dead fish washing up on the shores.”
Steve Jobs
“Тихо, тихо ползи, Улитка, по склону Фудзи, вверх, до самых высот!”
Кобаяси Исса о FLAR Toolkit
Изучая FLARToolkit нашёл вот такую строку в коментах, оставленную Сакоши :
直線に直交するベクトルを計算する・・・だと思う。
Что буквально переводиьтся как:
Мне кажется эта штука возращает перепендикулярный вектор…
Кояма… Ну ёб твою мать!
Уважаемый Кояма сан
Какого хуя тебе вообще что-то кажется?
Я до глубины души изумлён тем фактом, что Вы не досканально осознали суть вашей работы.
Твоим блять кодом пользуются тысячи флешеров!
Ведь Вашей библиотекой пользуются тысячи Ваших коллег по всему миру!
Почему изучив портировнаный тобой код у меня ощущеня будто мне слон навалил в мозг здоровенную кучу дерьма?
Мне также было очень тяжело воспринимать Ваш код,
в том числе и из-за плохого знания японского языка!
Нахуя эти нагромаждения интерфейсов, используемых только один раз?
Мне осталась не ясна цель, ради которой вы проделали титаническую работу, перенося не нужный в контексте данной платформы код.
Нахуя эта гора классов состоящих из 5 строк кода и 30 строк копирайта?
Избыточная структуризация на такой узкой по производительности платформе как флеш,
также на мой взгляд является непозволительной расточтительностью.
Нахуя в коде закоментированы куски сишного кода?
Хочу также отметить, что противоричивые коментарии в коде, порой ставят в тупик.
Фрагмент переписки:
Hi peko,
sorry for late reply.
I don’t understand internal algorithms.
Most of codes are just rewritten from NyARToolkit. (Java ported
version of ARToolKit)…Koyama (aka Sakoshi)
Перевод:
“Я не понимаю как это всё работает, я просто портировал код…”
… я извиняюсь за лексику поста, но это просtо какой-то пиздец…
Соглашусь, что первая версия поста была излишне эмоциональна, я поправил её!
Выводы:
из всего тулкита, реально полезны и исползуется максимум 5%,
да и эти 5% портированы с ошибками при чём в ключевых местах…
надеюсь, в скором времени, совместными усилиями мы приведём
эту несложную технологию в надлежащее состояние.
Кроме этого я хочу добавить, что я никогда не забывал, что именно благодаря Сакоши технологии AR
были популизированы и донесенны до огромных масс людей.
Что в свою очередь дало новый мощный толчок Computer Vision технологиям в целом.
