Rapid Vision
Rapid Vision (rv) это современный инструмент для генерации размеченных синтетических датасетов.
Преимущества
- Фотореалистичные результаты благодаря движку рендеринга Cycles
- Простой и понятный Python API
- Автоматическое создание сегментационной разметки
- Полностью открытый исходный код
- Бесшовная интеграция с продвинутым процедурным инструментарием Blender
Быстрый старт
- Установите утилиту rvbash
go install github.com/Rapid-Vision/rv@latest - Создайте скрипт сценыpython
import rv class BasicScene(rv.Scene): def generate(self): self.get_world().set_params(sun_intensity=0.03) cube = ( self.create_cube() .set_location((1, 0, 0.5)) .set_scale(0.5) .set_tags("cube") ) sphere = ( self.create_sphere() .set_location((-1, 0, 1)) .set_shading("smooth") .set_tags("sphere") ) plane = self.create_plane(size=1000) empty = self.create_empty().set_location((0, 0, 1)) cam = ( self.get_camera() .set_location((7, 7, 3)) .point_at(empty) ) - Просмотрите сценуbash
rv preview scene.pyПока не закрывайте окно предпросмотра.
- Сделайте сцену случайной
Посмотрите, как предпросмотр меняется при каждом сохранении файла.
pythonimport rv from random import uniform class BasicScene(rv.Scene): def generate(self): self.get_world().set_params(sun_intensity=0.03) cube = ( self.create_cube() .set_location((1, 0, 0.5)) .set_scale(0.5) .set_tags("cube") ) cube.rotate_around_axis( rv.mathutils.Vector((0, 0, 1)), uniform(0, 360), ) sphere = ( self.create_sphere() .set_location((-1, 0, 1)) .set_shading("smooth") .set_tags("sphere") ) plane = self.create_plane(size=1000) empty = self.create_empty().set_location((0, 0, 1)) cam = ( self.get_camera() .set_location((7, 7, 3)) .point_at(empty) ) - Отрендерите итоговый результатbash
rv render scene.py - Посмотрите на получившийся датасет
Получившийся датасет имеет следующую структуру каталогов:
textout/ └── 1/ └── 424702d4-b28e-4082-b5e5-5499f9a49065/ ├── _meta.json ├── Image.png ├── PreviewIndexOB.png ├── IndexOB.png ├── Alpha.png └── Noisy Image.pngИмя Описание outКорневой каталог, содержащий результаты всех запусков 1Каталог с результатами одного запуска рендеринга. Номер увеличивается последовательно 424702d4-b28e-4082-b5e5-5499f9a49065Каталог с итоговым изображением, разметкой и дополнительными проходами рендера _meta.jsonИнформация о разметке Image0001.pngИтоговое изображение PreviewIndexOB0001.pngПревью сегментационных масок IndexOB0001.pngСегментационные маски. Это 16-битное черно-белое изображение, где каждый пиксель соответствует полю indexсоответствующего объекта в файле_meta.json.Остальное Другие проходы рендеринга, которые могут быть полезны для задач компьютерного зрения и могут быть дополнительно включены методом Scene.set_passes. - Используйте rv для генерации вашего следующего синтетического датасета
Подробнее смотрите в обзоре возможностей и API reference.