Pull to refresh
0
0
Send message

Ох, как быстро время пролетело :-)


Мы (рабочая группа OpenVX) выпустили первую версию спецификации (OpenVX 1.0) в 2014 году, а в 2015 было выпущено обновление 1.0.1 с рядом улучшений, в основном, инфраструктурных функций. Стандарт включает не только спецификацию, но и conformance tests, которые проверяют реализацию стандарта на соответствие спецификации. В настоящее время ряд компаний публично заявили о создании реализации OpenVX, вся информация доступна в новостях https://www.khronos.org/news/categories/category/openvx. Информация о последней версии спецификации доступна здесь https://www.khronos.org/openvx/. Следите за новостями!

Вика, привет! Тут ускорение было на одном потоке продемонстрировано, распараллеливания не было. В целом, я согласен, что логика хромает — я старался писать лаконично. Но, я думаю, общая идея понятна: есть функции, которые очень хорошо ускоряются с использованием NEON, а есть другие функции, которые лучше ускоряются на GPU, а есть специальные ускорители, вычисляющие оптический поток. И хочется иметь единый способ взаимодействия со всем этим многообразием. Хотя такая логика — это тоже сильное упрощение реального мира :-)
Вика, привет! Тут ускорение было на одном потоке продемонстрировано, распараллеливания не было. В целом, я согласен, что логика хромает — я старался писать лаконично. Но, я думаю, общая идея понятна: есть функции, которые очень хорошо ускоряются с использованием NEON, а есть другие функции, которые лучше ускоряются на GPU, а есть специальные ускорители, вычисляющие оптический поток. И хочется иметь единый способ взаимодействия со всем этим многообразием. Хотя такая логика — это тоже сильное упрощение реального мира :-)
Android face unlock — www.android.com/about/ice-cream-sandwich/ (см Face Unlock). Так же гуглятся пользовательские отзывы — что система неидеальна, но работает достаточно неплохо, и является полезной.
Столько внимания мобильным системам уделяется потому, что именно они сейчас предоставляют основной источник данных для компьютерного зрения, и с ними связаны наиболее актуальные задачи. Для мобильного телефона в первую очередь это даже не augmented reality, а улучшение снимков и видео (computational photography — HDR, intelligent focus and white balance, video stabilization и тп). Для автомобиля — детектирование пешеходов, детектирование смены ряда, предупреждение о столкновении с автомобилем впереди. Конечно, все такие системы имеют смысл только при интеграции с системой управления автомобилем — при пересечении границы ряда без включенного поворотника будет, например, дрожать руль, а при угрозе столкновения с пешеходом или автомобилем будет включаться торможение. Все такие задачи должны решаться на устройстве (мобильный телефон, автомобиль), потому что никакой пропускной способности сети не хватит, чтобы передавать данные на сервер, и обеспечить отсутствие задержек при ответе (latency).
На ARM сейчас действительно сложно что-то сделать, хотя наша система распознавания дорожных знаков как раз работает на мощном смартфоне в реальном времени. Давайте посмотрим немного с другой стороны. Почему на мобильных телефонах есть приложения с достаточно сложной компьютерной графикой (игры, конечно, в первую очередь)? Потому что к моменту, когда смартфоны начали производить массово, уже был OpenGL, была создана его мобильная версия, и все производители графических карт знали, что нужно программистам. Были сделаны графические карты и драйверы к ним, реализующие OpenGL. Вот мы хотим, чтобы такая же ситуация была с компьютерным зрением — основные операции должны быть стандартизированы, тогда появятся ускорители (они, кстати, уже появляются), и программисты смогут создавать сложные программы.

Определение номерных знаков — это нишевая задача, я не могу придумать, зачем ее программировать на мобильном телефоне. Распознавание дорожных знаков мы делаем для автомобилей, а на смартфон портировали просто для того, чтобы было проще демонстрировать потенциальным клиентам. Тем более, что железки, которые стоят в автомобиле, похожи на смартфон (иногда несколько мощнее, иногда слабее). К слову, распознавание знаков реализовано не только в Mercedes, а во вполне бюджетном Ford Focus 3 (link).
Спасибо за интерес к OpenVX! Вы совершенно правы, что до широкого распространения еще надо дожить, но OpenVX для реализации несколько (а, чаще всего, намного) проще, чем OpenCL, поскольку это просто C API. Так что есть надежда, что OpenVX будет распространяться быстрее.
При корректной реализации OpenCL накладные расходы на копирование связаны с архитектурой памяти, а не с OpenCL. То есть если вы запускаете ваш OpenCL код на архитектуре с общей памятью для CPU и GPU, накладные расходы на копирование могут быть намного меньше, чем для систем с раздельной памятью. То есть решение о том, делать вычисления на CPU или GPU, зависят от архитектуры. OpenVX с graph API предоставляет абстракцию, благодаря которой вы о таких деталях не думаете, а решение о том, где делать вычисления, принимает алгоритм, реализующий вычисление графа, который для архитектуры с общей памятью примет одно решение, а для раздельной памяти — другое.

Information

Rating
Does not participate
Registered
Activity