Viz что это такое
Viz что это такое
Смотреть что такое «viz.» в других словарях:
VIZ — Media, LLC Ключевые фигуры Сэйдзи Хорибути Расположение Сан Франциско, Калифорния Деятельность издательская деят … Википедия
Viz. — Viz. (also rendered viz without a period) and videlicet are adverbs used as synonyms of “namely, that is to say, as follows.”Viz. is an abbreviation of videlicet, which is Latin for “it is permitted to see.” [OED; The New Fowler s Modern English… … Wikipedia
Viz. — Viz. Viz. (сокращение от лат. videlicit) «а именно», «то есть». В отличие от i.e. (лат. id est «то есть») или e.g. (лат. exempli gratis «например»), viz. используется для детализации ранее сказанного, либо… … Википедия
viz — abbrv. (Latin) Videlicet, meaning obviously, namely, or of course; in other words; used to explain or rephrase preceding words in order to clarify them. The Essential Law Dictionary. Sphinx Publishing, An imprint of Sourcebooks, Inc. Amy Hackney… … Law dictionary
viz — viz; viz·ca·cha; viz·ca·che·ra; viz·ca·chon; viz·ard; … English syllables
viz. — viz. abbr. Latin Namely; to wit; that is to say. Used to elaborate on what has already been said in more particular or precise language. Webster s New World Law Dictionary. Susan Ellis Wild. 2000. viz … Law dictionary
viz — [vız] adv formal written used before naming things that you have just referred to in a general way ▪ three Greek cities viz Athens, Thessaloniki, and Patras … Dictionary of contemporary English
viz — is a shortened form of videlicet, a Middle English word based on Latin words meaning ‘it is permissible to see’; the final z is explained as a medieval symbol standing for the ending et. The abbreviation is used to mean ‘namely’ in introducing a… … Modern English usage
Viz — Viz, adv. [Contr. fr. videlicet.] To wit; that is; namely. [1913 Webster] … The Collaborative International Dictionary of English
viz. — viz. [ vız ] abbreviation FORMAL used, especially in writing, when you want to give more specific information about something you have just mentioned … Usage of the words and phrases in modern English
viz. — viz. is used in written English to introduce a list of specific items or examples. The school offers two modules in Teaching English as a Foreign Language, viz. Principles and Methods of Language Teaching and Applied Linguistics. Syn: namely … English dictionary
Viz что это такое
Смотреть что такое «viz» в других словарях:
VIZ — Media, LLC Ключевые фигуры Сэйдзи Хорибути Расположение Сан Франциско, Калифорния Деятельность издательская деят … Википедия
Viz. — Viz. (also rendered viz without a period) and videlicet are adverbs used as synonyms of “namely, that is to say, as follows.”Viz. is an abbreviation of videlicet, which is Latin for “it is permitted to see.” [OED; The New Fowler s Modern English… … Wikipedia
Viz. — Viz. Viz. (сокращение от лат. videlicit) «а именно», «то есть». В отличие от i.e. (лат. id est «то есть») или e.g. (лат. exempli gratis «например»), viz. используется для детализации ранее сказанного, либо… … Википедия
viz — abbrv. (Latin) Videlicet, meaning obviously, namely, or of course; in other words; used to explain or rephrase preceding words in order to clarify them. The Essential Law Dictionary. Sphinx Publishing, An imprint of Sourcebooks, Inc. Amy Hackney… … Law dictionary
viz — viz; viz·ca·cha; viz·ca·che·ra; viz·ca·chon; viz·ard; … English syllables
viz. — viz. abbr. Latin Namely; to wit; that is to say. Used to elaborate on what has already been said in more particular or precise language. Webster s New World Law Dictionary. Susan Ellis Wild. 2000. viz … Law dictionary
viz — [vız] adv formal written used before naming things that you have just referred to in a general way ▪ three Greek cities viz Athens, Thessaloniki, and Patras … Dictionary of contemporary English
viz — is a shortened form of videlicet, a Middle English word based on Latin words meaning ‘it is permissible to see’; the final z is explained as a medieval symbol standing for the ending et. The abbreviation is used to mean ‘namely’ in introducing a… … Modern English usage
Viz — Viz, adv. [Contr. fr. videlicet.] To wit; that is; namely. [1913 Webster] … The Collaborative International Dictionary of English
viz. — viz. [ vız ] abbreviation FORMAL used, especially in writing, when you want to give more specific information about something you have just mentioned … Usage of the words and phrases in modern English
viz. — viz. is used in written English to introduce a list of specific items or examples. The school offers two modules in Teaching English as a Foreign Language, viz. Principles and Methods of Language Teaching and Applied Linguistics. Syn: namely … English dictionary
Viz — Новый модуль 3D визуализации в библиотеке OpenCV
Добрый день, cегодняшний блогпост я хочу посвятить обзору нового модуля для 3D визуализации Viz в библиотеке OpenCV, в проектировании и реализации которого я участвовал. Наверное тут мне стоит представиться, меня зовут Анатолий Бакшеев, я работаю в компании Itseez, использую библиотеку OpenCV вот уже 7 лет, и вместе с коллегами разрабатываю и развиваю ее.
Какое же отношение имеет 3D визуализация к компьютерному зрению, спросите вы, и зачем нам вообще потребовался подобный модуль? И будете правы, если смотреть на компьютерное зрение как на область, работающую с изображениями. Но мы живем в 21-м веке, и область применения компьютерного зрения вышла далеко за пределы просто обработки изображений, выделения границ объектов или распознавания лиц. Наука и техника уже научились в более или менее приемлемом качестве измерять наш трехмерный мир. Этому многим поспособствовало и появление несколько лет назад на рынке дешевых сенсоров типа Kinect, позволивших на то время с хорошей точностью и скоростью получать представление сцены в виде трехмерного цветного облака точек, и прогресс в области реконструкции 3D мира данных по серии изображений, и даже уход в мобильные технологии, где интегрированный гироскоп и акселерометр значительно упрощает задачу оценки передвижения камеры мобильного устройства в 3D мире, а значит и точность реконструкции сцены.
Все это подтолкнуло к развитию различных методов и алгоритмов, работающих с 3D данными. 3D сегментация, 3D фильтрация шумов, 3D распозвание объектов по форме, 3D распознавание лица, 3D слежение за позой тела, или руки для распознавания жестов. Вы наверное знаете, что когда Kinect для XBox вышел в продажу, Microsoft предоставила разработчикам игр SDK по определению позиции человеческого тела, что привело к появлению большого количества игр с интересным интерфейсом — когда, например, игровой персонаж повторяет движения игрока, стоящего перед Kinect’ом. Результаты таких 3D алгоритмов надо как-то визуализировать. Ими являются трехмерные траектории, восстановленная геометрия, или, например, вычисленная позиция человеческой руки в 3D. Также подобные алгоритмы надо отлаживать, зачастую визуализируя промежуточные данные в процессе сходимости разрабатываемого алгоритма.
Различные способы отображения траекторий камеры в OpenCV Viz
Таким образом, раз вектор разработок смещается в 3D область, в OpenCV будет все больше и больше появляться алгоритмов, работающих с 3D данными. И раз наблюдается такой тренд, спешим создать удобную инфраструктуру для этого. Модуль Viz — это первый шаг в данном направлении. OpenCV всегда была библиотекой, содержащей очень удобную базу, на основе которой разрабатывались алгоритмы и приложения компьютерного зрения. Удобную как из-за функциональности, так как она включает практически все наиболее часто используемые операции для манипуляции с изображениями и данными, так и из-за тщательно выработанного и годами проверенно API (контейнеры, базовые типы и операции с ними), позволяющего очень компактно реализовывать методы компьютерного зрения, экономя время разработчика. Надеемся, что Viz удовлетворяет всем этим требованиям.
Для нетерпеливых привожу вот это видео с демонстрацией возможностей модуля.
Философия Viz
Идея создания такого модуля появилась у меня, когда мне как-то пришлось отлаживать один алгоритм визуальной одометрии (vslam), в условиях ограниченного времени, когда я на собственной шкуре почувствовал, как помог бы мне такой модуль и какую функциональность я хотел бы в нем видеть. Да и коллеги заявляли, что здорого было бы иметь такой модуль. Все привело к началу его разработки, а затем доведение до более или менее зрелого состояния вместе с Озаном Тонкалом, нашим Google Summer Of Code студентом. Работа над совершенствованием Viz’а ведется и сейчас.
Дизайн идея в том, что неплохо бы иметь систему трехмерных виджетов, каждый из которых можно было бы отрисовывать в 3D визуализаторе, просто передав позицию и ориентацию этого виджета. Например, облако точек, приходящее с Kinect, часто хранится в системе координат, связанной с положением камеры, и для визуализации зачастую приходится преобразовывать все облака точек, снятые с разных позиций камеры, в какую-то глобальную систему координат. И удобно было бы не пересчитывать данные каждый раз в глобальную систему, а просто задать позицию этого облака точек. Таким образом, в OpenCV Viz каждый поддерживаемый объект-виджет формируется в собственной системе координат, а затем сдвигается и ориентируется уже в процессе отрисовки.
Но ни одна хорошая идея не приходит в голову только одному человеку. Как выяснилось, библиотека VTK для манипулирования и визуализации научных данных тоже реализует такой же подход. Поэтому, задача свелась к написанию грамотного враппера над подмножеством VTK, с интерфейсом и структурами данных в стиле OpenCV и написанию какого-то набора базовых виджетов с возможностью в будущем расширить это множество. Кроме описанного, VTK удовлетворяет требованию кроссплатформенности, поэтому решение использовать ее было выбрано практически сразу. Я думаю, небольшое неудобство из-за зависимости от VTK с лихвой компенсируется удобством и расширяемостью в будущем.
Представление позиции объектов в Viz
Позиция в евклидовом пространстве задается поворотом и трансляцией. Поворот может представляться в виде матрицы поворота, в виде вектора поворота (Rodrigues’ vector) или кватернионом. Трансляция же — это просто трехмерный вектор. Поворот и трансляцию можно хранить в отдельных переменных или зашить в расширенную матрицу аффинного преобразования 4×4. Собственно, этот способ и предлагается для удобства использования. Но… “Тоже мне, удобный!”, — скажете вы, — “каждый раз формировать такую матрицу при отрисовке любого объекта!” И я с вами соглашусь, но только если не предоставить удобного средства для создания и манипулирования позами в таком формате. Этим средством является специально написанный класс cv::Affine3d, который кстати, помимо как для визуализации я рекомендую использовать и при разработке алгоритмов одометрии. Да-да, любители кватернионов уже могут бросать в меня камни. Скажу в оправдание, что в будущем планируется и их поддерживать.
Итак, давайте дадим определение. Поза каждого объекта в Viz — это преобразование из евклидовой системы координат, связанной с объектом, в некую глобальную евклидову систему координат. На практике существуют различные соглашения, что такое преобразование и что куда преобразуется. В нашем случае имеется ввиду преобразование точек (point transfer) из системы координат объекта в глобальную. Т.е:
А может быть, вы уже разрабатывали алгоритмы визуальной одометрии, и в вашей программе уже есть эти матрицы преобразования, хранящиеся внутри cv::Mat? Тогда позу в новом формате можно легко получить:
Кроме конструирования данный класс позволяет еще и манипулировать позами и применять их к трехмерным векторам и точкам. Примеры:
Читать это надо так: если домножить справа на точку в системе координат камеры 1, то после первого (справа) преобразования получим точку в глобальной системе, а затем инвертированным преобразованием из глобальной системы переведем ее в систему координат камеры 2. Т.е. мы получим позу камеры 1 относительно системы координат камеры 2.
На этом, наверное, надо завершить наш экскурс в возможности данного класса. Кому понравилось, предлагаю использовать его в ваших алгоритмах, т.к. код с ним компактен и легко читаем. А то, что экземпляры cv::Affine3d выделяются на стеке, а все методы являются inline методами, открывает возможности для оптимизации производительности вашего приложения.
Визуализация с помощью Viz
Самый главный класс, отвечающий за визуализацию, называется cv::viz::Viz3d. Этот класс отвечает за создание окна, его инициализацию, отображение виджетов и управление и обработку ввода от пользователя. Воспользоваться им можно следующим образом:
Как и почти вся высокоуровневая функциональность в OpenCV, этот класс является по сути умным указателем с подсчетом ссылок на его внутреннюю реализацию, поэтому его свободно можно копировать, или получать по имени из внутренней базы данных.
Если окно с запрашиваемым именем уже существует, получаемый экземпляр Viz3d будет указывать на него, иначе новое окно с таким именем будет создано и зарегистрировано. Сделано это для упрощения отладки алгоритмов — вам теперь не нужно передавать окно вглубь стека вызовов каждый раз, когда где-то что-то надо отобразить. Достаточно в начале функции main() завести окно, и затем получать доступ к нему по имени из любого места в коде. Эта идея унаследована от зарекомендовавшей себя в OpenCV функции cv::imshow(window_name, image), также позволяющей отобразить картинку в именованное окно в любом месте кода.
Система Виджетов
Как уже упоминалось раньше, для отрисовки различных данных используется система виджетов. Каждый виджет имеет несколько конструкторов и иногда методов для управления его внутренними данными. Каждый виджет формируется в своей координатной системе. Например:
Как видим, мы можем указать произвольную линию, однако для куба возможно выставлять только позицию, но не ориентацию относительно осей координат. Однако, это не есть ограничение, а скорее даже фича, приучающая мыслить в стиле Viz. Как мы уже обсуждали ранее, при отрисовке можно задать любую позу виджета в глобальной системе координат. Таким образом, мы простым конструктором создаем виджет в его системе координат, например, задаем таким образом размеры куба. А затем позиционируем и ориентируем его в глобальной при отрисовке.
И вот результат:
Как мы видим, отрисовка происходит через вызов метода Viz3d::showWidget() с передачей ему строкового имени объекта, экземпляра созданного виджета и его позиции в глобальной системе координат. Строковое имя необходимо для того, чтобы можно было добавлять, удалять и обновлять виджеты в 3D сцене по имени. Если виджет с таким именем уже присутствует, то он удаляется и заменяется на новый.
Помимо куба и линии, в Viz реализованы сфера, цилиндр, плоскость, 2D окружность, картинки и текст в 3D и 2D, различные типы траекторий, положения камеры, ну и, конечно, облака точек и виджет для работы с мешем (бецветным, раскрашенным или текстурированным). Это множество виджетов не является финальным, и будет расширяться. Более того, есть возможность создания пользовательских вижетов, но об этом как-нибудь в другой раз. Если вас заинтересовала эта возможность, читайте вот этот туториал. А сейчас давайте рассмотрим еще пример, как отрисовывать облака точек:
Результат работы этого кода:
Для более подробной информации о доступных виджетах читайте нашу документацию.
Динамически меняющаяся сцена
Зачастую недостаточно просто отобразить объекты, чтобы пользователь мог их рассмотреть, а необходимо предоставить некоторую динамику. Объекты могут двигаться, менять свои атрибуты. Если у нас есть видеопоток с Kinect, то можно проигрывать так называемое point cloud videо. Для этого можно сделать следующее:
Данный цикл будет выполняться пока пользователь не закроет окно. При этом, на каждой итерации цикла виджет со старым облаком будет заменяться на новый с новым облаком.
Интерфейс управления
На данный момент управление камерой сделано в так называемом стиле trackball camera, удобном для рассматривая различных 3D объектов. Представьте себе, что перед камерой есть некоторая точка в 3D, вокруг которой эта камера и вращается с помощью мышки. Скроллер на мышке приближает/удаляет к и от этой точки. Используя кнопки shift/ctrl и мышку, можно перемещать эту точку вращения в 3D мире. В будущем планируется реализовать free-fly режим для навигации по большим пространствам. Я также рекомендую нажать горячую кнопку ‘H’ во время работы Viz, чтобы прочитать распечатанную в консоль информацию о прочих горячих клавишах и возможностях, от сохранения скришнотов и до включения анаглифического стерео режима.
Как построить OpenCV Viz модуль
Ну и наконец, для тех, кто после прочтения этого текста загорелся желанием начать использовать этот модуль, предназначен этот раздел. Viz можно использовать на всех трех доминирующих PC платформах — Windows, Linux, и Mac. Вам потребуется установить VTK и скомпилировать OpenCV с поддержкой VTK. Саму OpenCV c модулем Viz можно скачать только из нашего репозитория на GitHub’е https://github.com/Itseez/opencv в ветках 2.4 и master. Итак, инструкция:
1. Установка VTK
Под Linux наиболее простым решением является установка VTK из apt репозитория через команду apt-get install libvtk5-dev. Под Windows вам необходимо скачать VTK с сайта разработчика, лучше всего версию 5.10, сгенерировать CMake-ом проект для Visual Studio и скомпилировать в Release и Debug конфигурациях. Я рекомендую снять галочку в CMake BUILD_SHARED_LIBS, что приведет к компиляции статических библиотек VTK. В этом случае после компиляции размер OpenCV Viz модуля без каких-либо зависимостей составит всего около 10Мб.
Под Mac для версий OSX 10.8 и ранее подойдет любая версия VTK, под 10.9 Mavericks удастся скомпилировать VTK 6.2 из официально репозитория github.com/Kitware/VTK.git. Релизов 6.2 на момент написание данного блогпоста еще не было. Под Mac также рекомендуется сгенерировать с помощью CMake проект под XCode и построить статические библиотеки в Release и Debug конфигурациях.
2. Компиляция OpenCV c VTK
3. Запуск текстов (опционально)
Я также рекомендую скачать вот этот репозиторий: github.com/Itseez/opencv_extra.git, прописать в переменную окружения OPENCV_TEST_DATA_PATH путь к opencv_extra/testdata. И запустить файл opencv_test_viz из build каталога OpenCV. На данном приложении можно ознакомиться со всеми текущими возможностями данного модуля, а его исходник можно использовать для изучения API.
Заключение
Ну что ж, вот я добрался и до заключения. Надеюсь, было интересно. Этим постом мне хотелось показать, какой основной тренд, c моей точки зрения, сейчас наблюдается в компьютерном зрении, и что библиотека OpenCV движется в ногу со временем. И что в OpenCV будут появляться алгоритмы для работы с 3D миром. Потому что мы сами будем их разрабатывать или с помощью Google Summer of Code студентов, или благодарные пользователи использующие нашу базу, будут участвовать и в создании и развитии подобных алгоритмов в OpenCV.
А также хотелось заинтересовать вас этим разработанным инструментом, или, может быть, даже этой областью для исследований. Кстати, если у вас появилось желание вести подобную разработку для OpenCV — You are welcome! Мы принимаем pull request’ы через GitHub. Инструкция выложена здесь. Будем рады видеть новый хорошо работающий подход 🙂
И хотя основная необходимая сейчас база создана, я думаю, в будущем в Viz будут добавляться новые возможности. Например, модель скелета человеческой руки и ее визуализация. Или карты 3D мира из таких алгоритмов, как PTAM. А может быть, и сетевой клиент, чтобы возможно было пересылать данные для визуализации с мобильного устройства при отладке алгоритмов на нем 🙂 Но это пока безумные идеи :-). Если интересно, в следующем блогпосте я мог бы рассказать о каком-нибудь алгоритме, например, ICP или Kinect Fusion, и как использовался Viz для его отладки и визуализации.
А для тех кто дочитал до конца — бонус. Здесь лежит мой оптимизированный и легковесный remake моей же реализации Kinect Fusion в библиотеке PCL.
Viz что это такое
Viz. (сокращение от лат. videlicit ) — «а именно», «то есть». В отличие от i.e. (лат. id est — «то есть») или e.g. (лат. exempli gratis — «например»), viz. используется для детализации ранее сказанного, либо перечисления чего-либо с определенной степенью закрытости этого перечня.
«Благородные газы, viz. гелий, неон, аргон, ксенон, криптон и радон, ведут себя неожиданно при контакте с этим элементом».
Использование «viz» указывает на полное указание классических благородных газов. При необходимости указания лишь на некоторых примеров из множества более корректно использование сокращения e.g..
См. также
Смотреть что такое «Viz.» в других словарях:
VIZ — Media, LLC Ключевые фигуры Сэйдзи Хорибути Расположение Сан Франциско, Калифорния Деятельность издательская деят … Википедия
Viz. — Viz. (also rendered viz without a period) and videlicet are adverbs used as synonyms of “namely, that is to say, as follows.”Viz. is an abbreviation of videlicet, which is Latin for “it is permitted to see.” [OED; The New Fowler s Modern English… … Wikipedia
viz — abbrv. (Latin) Videlicet, meaning obviously, namely, or of course; in other words; used to explain or rephrase preceding words in order to clarify them. The Essential Law Dictionary. Sphinx Publishing, An imprint of Sourcebooks, Inc. Amy Hackney… … Law dictionary
viz — viz; viz·ca·cha; viz·ca·che·ra; viz·ca·chon; viz·ard; … English syllables
viz. — viz. abbr. Latin Namely; to wit; that is to say. Used to elaborate on what has already been said in more particular or precise language. Webster s New World Law Dictionary. Susan Ellis Wild. 2000. viz … Law dictionary
viz — [vız] adv formal written used before naming things that you have just referred to in a general way ▪ three Greek cities viz Athens, Thessaloniki, and Patras … Dictionary of contemporary English
viz — is a shortened form of videlicet, a Middle English word based on Latin words meaning ‘it is permissible to see’; the final z is explained as a medieval symbol standing for the ending et. The abbreviation is used to mean ‘namely’ in introducing a… … Modern English usage
Viz — Viz, adv. [Contr. fr. videlicet.] To wit; that is; namely. [1913 Webster] … The Collaborative International Dictionary of English
viz. — viz. [ vız ] abbreviation FORMAL used, especially in writing, when you want to give more specific information about something you have just mentioned … Usage of the words and phrases in modern English
viz. — viz. is used in written English to introduce a list of specific items or examples. The school offers two modules in Teaching English as a Foreign Language, viz. Principles and Methods of Language Teaching and Applied Linguistics. Syn: namely … English dictionary
Viz что это такое
1 viz.
2 viz
3 viz
4 viz
5 viz.
6 viz
7 viz
8 viz
9 viz
10 viz.
а именно
—
[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]
Тематики
11 viz.
12 VIZ
13 viz
14 viz.
15 viz.
16 viz.
17 viz
18 viz.
19 viz
20 viz
См. также в других словарях:
VIZ — Media, LLC Ключевые фигуры Сэйдзи Хорибути Расположение Сан Франциско, Калифорния Деятельность издательская деят … Википедия
Viz. — Viz. (also rendered viz without a period) and videlicet are adverbs used as synonyms of “namely, that is to say, as follows.”Viz. is an abbreviation of videlicet, which is Latin for “it is permitted to see.” [OED; The New Fowler s Modern English… … Wikipedia
Viz. — Viz. Viz. (сокращение от лат. videlicit) «а именно», «то есть». В отличие от i.e. (лат. id est «то есть») или e.g. (лат. exempli gratis «например»), viz. используется для детализации ранее сказанного, либо… … Википедия
viz — abbrv. (Latin) Videlicet, meaning obviously, namely, or of course; in other words; used to explain or rephrase preceding words in order to clarify them. The Essential Law Dictionary. Sphinx Publishing, An imprint of Sourcebooks, Inc. Amy Hackney… … Law dictionary
viz — viz; viz·ca·cha; viz·ca·che·ra; viz·ca·chon; viz·ard; … English syllables
viz. — viz. abbr. Latin Namely; to wit; that is to say. Used to elaborate on what has already been said in more particular or precise language. Webster s New World Law Dictionary. Susan Ellis Wild. 2000. viz … Law dictionary
viz — [vız] adv formal written used before naming things that you have just referred to in a general way ▪ three Greek cities viz Athens, Thessaloniki, and Patras … Dictionary of contemporary English
viz — is a shortened form of videlicet, a Middle English word based on Latin words meaning ‘it is permissible to see’; the final z is explained as a medieval symbol standing for the ending et. The abbreviation is used to mean ‘namely’ in introducing a… … Modern English usage
Viz — Viz, adv. [Contr. fr. videlicet.] To wit; that is; namely. [1913 Webster] … The Collaborative International Dictionary of English
viz. — viz. [ vız ] abbreviation FORMAL used, especially in writing, when you want to give more specific information about something you have just mentioned … Usage of the words and phrases in modern English
viz. — viz. is used in written English to introduce a list of specific items or examples. The school offers two modules in Teaching English as a Foreign Language, viz. Principles and Methods of Language Teaching and Applied Linguistics. Syn: namely … English dictionary