Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
открытый_доступ:аэросъёмка_3dгород:подготовка_фотограмм_модели_к_печати [2019/06/26 13:40] antonb создано |
открытый_доступ:аэросъёмка_3dгород:подготовка_фотограмм_модели_к_печати [2019/06/26 14:34] (текущий) antonb |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
Не стоит сразу пытаться напечатать полученную в ходе фотограмметрической обработки модель, она имеет множество недочетов, которые в лучшем случае приведут к потраченным времени и расходным материалам. Рассмотрим данную ситуацию на примере обычного малоэтажного здания, расположенного в черте города. Объект отсняли используя комбинированный фотограмметрический метод с использованием наземной и аэросъемки. В ходе обработки была получена вот такая модель: | Не стоит сразу пытаться напечатать полученную в ходе фотограмметрической обработки модель, она имеет множество недочетов, которые в лучшем случае приведут к потраченным времени и расходным материалам. Рассмотрим данную ситуацию на примере обычного малоэтажного здания, расположенного в черте города. Объект отсняли используя комбинированный фотограмметрический метод с использованием наземной и аэросъемки. В ходе обработки была получена вот такая модель: | ||
- | {{ :аэросъёмка_3dгород:image002.jpg |Рис.1. Фотограмметрическая модель}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image002.jpg |Рис.1. Фотограмметрическая модель}} |
По данной модели были получены обмерные чертежи, переданные заказчику, проект был завершен. Однако это совсем не говорит о том, что модель можно взять и распечатать. | По данной модели были получены обмерные чертежи, переданные заказчику, проект был завершен. Однако это совсем не говорит о том, что модель можно взять и распечатать. | ||
Строка 11: | Строка 11: | ||
Первый крупный недочет, который необходимо устранить на этапе фотограмметрической обработки – это сторонние объекты. Чаще всего это бывают деревья и другая растительность, реже - могут быть люди, автомобили и т.п. Работая в программе //Agisoft Photoscan// лучше всего производить фильтрацию по плотному облаку, для этого необходимо перейти в режим просмотра плотного облака. Фильтрацию можно производить в автоматическом (по цветам и углам уклонов) и ручном режиме (выделяя точки или рисуя маски). Первым этапом фильтрации производится классификация точек на три категории – земля, шум и неклассифицированные точки (деревья, дома, машины и т.д.). Для выполнения классификации необходимо зайти в панель **Инструменты** -> **Плотное облако** -> **Классифицировать точки рельефа…**. | Первый крупный недочет, который необходимо устранить на этапе фотограмметрической обработки – это сторонние объекты. Чаще всего это бывают деревья и другая растительность, реже - могут быть люди, автомобили и т.п. Работая в программе //Agisoft Photoscan// лучше всего производить фильтрацию по плотному облаку, для этого необходимо перейти в режим просмотра плотного облака. Фильтрацию можно производить в автоматическом (по цветам и углам уклонов) и ручном режиме (выделяя точки или рисуя маски). Первым этапом фильтрации производится классификация точек на три категории – земля, шум и неклассифицированные точки (деревья, дома, машины и т.д.). Для выполнения классификации необходимо зайти в панель **Инструменты** -> **Плотное облако** -> **Классифицировать точки рельефа…**. | ||
- | {{ :аэросъёмка_3dгород:image004.jpg |Рис.2. Классификация точек рельефа}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image004.jpg |Рис.2. Классификация точек рельефа}} |
В появившемся окне необходимо задать **исходный** класс (если до этого классификация не производилась – необходимо выбрать **Любой класс**). **Максимальный угол (°)**, **Максимальное расстояние(м)**, **Размер ячейки(м)**: | В появившемся окне необходимо задать **исходный** класс (если до этого классификация не производилась – необходимо выбрать **Любой класс**). **Максимальный угол (°)**, **Максимальное расстояние(м)**, **Размер ячейки(м)**: | ||
- | {{ :аэросъёмка_3dгород:image006.jpg |Рис.3. Параметры классификации точек рельефа}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image006.jpg |Рис.3. Параметры классификации точек рельефа}} |
- | После автоматической классификации точек, часть точек примут новый класс (земля или шум). Открыв отображение классификации точек рельефа {{:аэросъёмка_3dгород:image008.jpg?nolink&20|}} , можно увидеть, насколько корректно произведена классификация. | + | После автоматической классификации точек, часть точек примут новый класс (земля или шум). Открыв отображение классификации точек рельефа {{открытый_доступ:аэросъёмка_3dгород:image008.jpg?nolink&20|}} , можно увидеть, насколько корректно произведена классификация. |
- | {{ :аэросъёмка_3dгород:image010.jpg |Рис.4. Результаты классификации}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image010.jpg |Рис.4. Результаты классификации}} |
Важно заметить, что правильная классификация возможна только в случае наличия достаточно точной привязки (в примере используются координаты центров проекций камеры, полученные из одночастотного **GPS** типа **UBLOX-Neo6**), так как классификация производится по углам отклонения от горизонта. | Важно заметить, что правильная классификация возможна только в случае наличия достаточно точной привязки (в примере используются координаты центров проекций камеры, полученные из одночастотного **GPS** типа **UBLOX-Neo6**), так как классификация производится по углам отклонения от горизонта. | ||
Строка 25: | Строка 25: | ||
Далее необходимо отделить здания от растительности. Сделать это можно изменяя параметры классификации, добиваясь того, чтобы выделились только дома, создав для них отдельный класс, а потом производя выделение растительности. Можно это сделать и вручную. Для этого на облаке выделяются интересующие объекты, используя наиболее подходящие типы выделения – прямоугольное, овальное или произвольное. При этом для объединения выделений используется клавиша **Ctrl**, а для удаления выделения – **Shift**. | Далее необходимо отделить здания от растительности. Сделать это можно изменяя параметры классификации, добиваясь того, чтобы выделились только дома, создав для них отдельный класс, а потом производя выделение растительности. Можно это сделать и вручную. Для этого на облаке выделяются интересующие объекты, используя наиболее подходящие типы выделения – прямоугольное, овальное или произвольное. При этом для объединения выделений используется клавиша **Ctrl**, а для удаления выделения – **Shift**. | ||
- | {{ :аэросъёмка_3dгород:image012.jpg |Рис.5. Виды выделений}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image012.jpg |Рис.5. Виды выделений}} |
После выделения необходимых точек им можно присвоить определенный класс используя панель **Инструменты** -> **Плотное облако** -> **Назначить класс…**(или комбинацией клавиш **Ctrl**+**Shift**+**C**). | После выделения необходимых точек им можно присвоить определенный класс используя панель **Инструменты** -> **Плотное облако** -> **Назначить класс…**(или комбинацией клавиш **Ctrl**+**Shift**+**C**). | ||
- | {{ :аэросъёмка_3dгород:image014.jpg |Рис.6. Ручная классификация}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image014.jpg |Рис.6. Ручная классификация}} |
Некоторым массивам или отдельным точкам нет необходимости назначать определенный класс, а можно их сразу удалить. К таким точкам можно отнести шумы: | Некоторым массивам или отдельным точкам нет необходимости назначать определенный класс, а можно их сразу удалить. К таким точкам можно отнести шумы: | ||
- | {{ :аэросъёмка_3dгород:image016.jpg |Рис.7. Удаление шумов}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image016.jpg |Рис.7. Удаление шумов}} |
После удаления всех лишних точек, необходимо создать отфильтрованную модель. В случае с созданием модели рельефа – необходимо использовать только точки, классифицированные как //«Земля»//, а в случае с созданием трехмерных моделей зданий – имеет смысл удалить все шумы и деревья. Модели не должны иметь отверстий, поэтому при построении необходимо включить интерполяцию. Полученный результат необходимо экспортировать для дальнейшей обработки. Для этого необходимо зайти в панель **Файл** -> **Экспорт модели…**. Желательно использовать формат **obj**. На этом работа в //Agisoft Photoscan// закончена, можно сохранить проект и закрыть программу. | После удаления всех лишних точек, необходимо создать отфильтрованную модель. В случае с созданием модели рельефа – необходимо использовать только точки, классифицированные как //«Земля»//, а в случае с созданием трехмерных моделей зданий – имеет смысл удалить все шумы и деревья. Модели не должны иметь отверстий, поэтому при построении необходимо включить интерполяцию. Полученный результат необходимо экспортировать для дальнейшей обработки. Для этого необходимо зайти в панель **Файл** -> **Экспорт модели…**. Желательно использовать формат **obj**. На этом работа в //Agisoft Photoscan// закончена, можно сохранить проект и закрыть программу. | ||
Строка 39: | Строка 39: | ||
Полученный результат открываем в ПО //Meshmixer//. {{:аэросъёмка_3dгород:image018.jpg?nolink&20|}} Открывшаяся модель может отображаться некорректно (развернута, отмасштабирована). | Полученный результат открываем в ПО //Meshmixer//. {{:аэросъёмка_3dгород:image018.jpg?nolink&20|}} Открывшаяся модель может отображаться некорректно (развернута, отмасштабирована). | ||
- | {{ :аэросъёмка_3dгород:image_020.jpg |Рис.8. Отфильтрованная модель в Agisoft Photoscan}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image_020.jpg |Рис.8. Отфильтрованная модель в Agisoft Photoscan}} |
Первым делом модель необходимо развернуть и опустить на поверхность рабочего стола. Для этого на левой панели необходимо выбрать группу **Edit**, внутри которой использовать инструмент **Transform** (или быстрая клавиша T). Спроецировать модель на стол можно также при помощи инструмента **Align**. После успешной трансформации можно перейти к созданию основания для печати. | Первым делом модель необходимо развернуть и опустить на поверхность рабочего стола. Для этого на левой панели необходимо выбрать группу **Edit**, внутри которой использовать инструмент **Transform** (или быстрая клавиша T). Спроецировать модель на стол можно также при помощи инструмента **Align**. После успешной трансформации можно перейти к созданию основания для печати. | ||
- | {{ :аэросъёмка_3dгород:image_022.jpg |Рис.9. Трансформация модели}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image_022.jpg |Рис.9. Трансформация модели}} |
Открыв панель **Select** выделяем целиком всю модель. Это можно сделать при помощи выделения-лассо или двойным кликом. Выделив весь объект, необходимо использовать инструмент **Edit/Extrude**. В появившемся окне поставить **EndType Flat**, а затем флажком **Offset** выставить высоту подстилающей платформы. | Открыв панель **Select** выделяем целиком всю модель. Это можно сделать при помощи выделения-лассо или двойным кликом. Выделив весь объект, необходимо использовать инструмент **Edit/Extrude**. В появившемся окне поставить **EndType Flat**, а затем флажком **Offset** выставить высоту подстилающей платформы. | ||
- | {{ :аэросъёмка_3dгород:image024.jpg |Рис.10. Создание подложки}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image024.jpg |Рис.10. Создание подложки}} |
- | {{ :аэросъёмка_3dгород:image026.jpg |Рис.11. Параметры создания подложки}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image026.jpg |Рис.11. Параметры создания подложки}} |
Полученный результат можно сохранить в формате **STL**. Далее эту модель стоит открыть в программе //NetFabb//, для исправления основных ошибок модели. При открытие лучше сразу установить флажок над пунктом исправление частей. | Полученный результат можно сохранить в формате **STL**. Далее эту модель стоит открыть в программе //NetFabb//, для исправления основных ошибок модели. При открытие лучше сразу установить флажок над пунктом исправление частей. | ||
- | {{ :аэросъёмка_3dгород:image028.jpg |Рис.12. Импорт модели в NetFabb}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image028.jpg |Рис.12. Импорт модели в NetFabb}} |
Первым этапом стоит вылечить модель, удалив все лишние поверхности, замкнув все отверстия, поправив полигоны. Большинство из этих задач решаются автоматически. Для удаления всех лишних поверхностей необходимо использовать инструмент **Repair** {{:аэросъёмка_3dгород:image030.jpg?nolink|}} и зайти во вкладку **Shells**. Чаще всего необходимо удалить все поверхности кроме одной (самой большой по площади). Выбрав все поверхности удаляем их нажатием клавиши **Del**. | Первым этапом стоит вылечить модель, удалив все лишние поверхности, замкнув все отверстия, поправив полигоны. Большинство из этих задач решаются автоматически. Для удаления всех лишних поверхностей необходимо использовать инструмент **Repair** {{:аэросъёмка_3dгород:image030.jpg?nolink|}} и зайти во вкладку **Shells**. Чаще всего необходимо удалить все поверхности кроме одной (самой большой по площади). Выбрав все поверхности удаляем их нажатием клавиши **Del**. | ||
- | {{ :аэросъёмка_3dгород:image032.jpg |Рис.13. Удаление лишних поверхностей}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image032.jpg |Рис.13. Удаление лишних поверхностей}} |
После необходимо подтвердить удаления нажав на кнопку **Apply Repair**. Старую версию модели можно не сохранять (выбрать **Remove old Part**). После лечения модели, ее уже можно отправить на печать, но лучше поправить ее края, обрезав все лишнее. Для этого выберите удобный угол обзора (сверху или сбоку, в зависимости от плоскости реза), после чего нажмите на панели отсечения плоскостей (**Clip planes**) на центр одного из направлений, создав соответствующую плоскость реза. Плоскость можно переместить при помощи ползунка или задав положение в мм. | После необходимо подтвердить удаления нажав на кнопку **Apply Repair**. Старую версию модели можно не сохранять (выбрать **Remove old Part**). После лечения модели, ее уже можно отправить на печать, но лучше поправить ее края, обрезав все лишнее. Для этого выберите удобный угол обзора (сверху или сбоку, в зависимости от плоскости реза), после чего нажмите на панели отсечения плоскостей (**Clip planes**) на центр одного из направлений, создав соответствующую плоскость реза. Плоскость можно переместить при помощи ползунка или задав положение в мм. | ||
- | {{ :аэросъёмка_3dгород:image034.jpg |Рис.14.Создание плоскостей для отсечения}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image034.jpg |Рис.14.Создание плоскостей для отсечения}} |
Для обрезки необходимо нажать на кнопку {{:аэросъёмка_3dгород:image036.jpg?nolink&20|}} . В появившемся окне можно убрать галочку на создание новой группы и поставить галочку для удаления исходной модели. После чего нажать на кнопку **Cut**. | Для обрезки необходимо нажать на кнопку {{:аэросъёмка_3dгород:image036.jpg?nolink&20|}} . В появившемся окне можно убрать галочку на создание новой группы и поставить галочку для удаления исходной модели. После чего нажать на кнопку **Cut**. | ||
- | {{ :аэросъёмка_3dгород:image038.jpg |Рис.15. Отсечение плоскостью}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image038.jpg |Рис.15. Отсечение плоскостью}} |
Обрезанную деталь можно удалить. Обрезание следует произвести для всех трех направлений XYZ. | Обрезанную деталь можно удалить. Обрезание следует произвести для всех трех направлений XYZ. | ||
- | {{ :аэросъёмка_3dгород:image040.jpg |Рис.16. Удаление отрезанных поверхностей}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image040.jpg |Рис.16. Удаление отрезанных поверхностей}} |
В итоге должна получиться аккуратно обрезанная модель, с подложкой и без несопряженных поверхностей: | В итоге должна получиться аккуратно обрезанная модель, с подложкой и без несопряженных поверхностей: | ||
- | {{ :аэросъёмка_3dгород:image042.jpg |Рис.17. Отредактированная модель}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image042.jpg |Рис.17. Отредактированная модель}} |
- | {{ :аэросъёмка_3dгород:image044.jpg |Рис.18. Отредактированная модель}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image044.jpg |Рис.18. Отредактированная модель}} |
Результат сохраняется в формате **STL** и может быть открыт в программах для подготовки печатного G-кода. | Результат сохраняется в формате **STL** и может быть открыт в программах для подготовки печатного G-кода. | ||
- | {{ :аэросъёмка_3dгород:image046.jpg |Рис.19. Экспорт модели}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image046.jpg |Рис.19. Экспорт модели}} |
- | {{ :аэросъёмка_3dгород:image048.jpg |Рис.20. Импорт модели в Polygon 2.0.}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image048.jpg |Рис.20. Импорт модели в Polygon 2.0.}} |
В случае, если в качестве исходных данных используется карта высот, то для создания модели можно использовать программы, способные преобразовывать градации цвета в координаты. Одной из таких программ является //Cura//, предназначенная для работы с принтером //Ultimaker//. Однако подобные программы работают только с подготовленными 8-битными изображениями (чаще формата **jpg**). //Agisoft Photoscan// на выходе дает изображение 32бит с плавающей запятой в формате **tiff** (**Geotiff**). | В случае, если в качестве исходных данных используется карта высот, то для создания модели можно использовать программы, способные преобразовывать градации цвета в координаты. Одной из таких программ является //Cura//, предназначенная для работы с принтером //Ultimaker//. Однако подобные программы работают только с подготовленными 8-битными изображениями (чаще формата **jpg**). //Agisoft Photoscan// на выходе дает изображение 32бит с плавающей запятой в формате **tiff** (**Geotiff**). | ||
Строка 87: | Строка 87: | ||
Для перевода в требуемый формат можно использовать различные геоинформационные системы, или графические редакторы. Мы будем рассматривать вариант с преобразованием карты высот в программе //Adobe Photoshop//. Открыв файл карты высот в Photoshop мы увидим белое пятно на черном фоне, что связано с битностью изображения. Для приведения изображения в 8 бит в панели **Изображение** -> **Режим** -> **8 бит** -> **канал…**. | Для перевода в требуемый формат можно использовать различные геоинформационные системы, или графические редакторы. Мы будем рассматривать вариант с преобразованием карты высот в программе //Adobe Photoshop//. Открыв файл карты высот в Photoshop мы увидим белое пятно на черном фоне, что связано с битностью изображения. Для приведения изображения в 8 бит в панели **Изображение** -> **Режим** -> **8 бит** -> **канал…**. | ||
- | {{ :аэросъёмка_3dгород:image050.jpg |Рис.21.Изменение битности изображения в Adobe Photoshop}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image050.jpg |Рис.21.Изменение битности изображения в Adobe Photoshop}} |
В появившемся окне параметров указываем **Способ: Выровнять гистограмму**, после чего видим, как изображение приняло нормальный вид. | В появившемся окне параметров указываем **Способ: Выровнять гистограмму**, после чего видим, как изображение приняло нормальный вид. | ||
- | {{ :аэросъёмка_3dгород:image052.jpg |Рис.22. Выбор способа преобразования изображения в 8 бит}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image052.jpg |Рис.22. Выбор способа преобразования изображения в 8 бит}} |
- | {{ :аэросъёмка_3dгород:image054.jpg |Рис.23. Полученное изображение 8 бит/канал}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image054.jpg |Рис.23. Полученное изображение 8 бит/канал}} |
Если использовать подобное изображение, то модель будет создана и на участок, где карты высот нет, поэтому перед сохранением изображения его надо обрезать, оставив только рабочую область: **Изображение** -> **Размер холста…**(или сочетание клавиш **Alt**+**Ctrl**+**C**). | Если использовать подобное изображение, то модель будет создана и на участок, где карты высот нет, поэтому перед сохранением изображения его надо обрезать, оставив только рабочую область: **Изображение** -> **Размер холста…**(или сочетание клавиш **Alt**+**Ctrl**+**C**). | ||
- | {{ :аэросъёмка_3dгород:image056.jpg |Рис.24. Обрезка изображения}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image056.jpg |Рис.24. Обрезка изображения}} |
- | {{ :аэросъёмка_3dгород:image058.jpg |Рис.25. Параметры обрезки изображения}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image058.jpg |Рис.25. Параметры обрезки изображения}} |
На полученном изображении могут оставаться участки, не имеющие информации (черные). Чтобы они не испортили напечатанную модель, эти участки можно замазать при помощи инструмента **Штамп**: | На полученном изображении могут оставаться участки, не имеющие информации (черные). Чтобы они не испортили напечатанную модель, эти участки можно замазать при помощи инструмента **Штамп**: | ||
- | {{ :аэросъёмка_3dгород:image060.jpg |Рис.26. Инструмент “Штамп”}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image060.jpg |Рис.26. Инструмент “Штамп”}} |
- | {{ :аэросъёмка_3dгород:image062.jpg |Рис.28. Параметры импорта изображений в Cura Ultimaker}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image062.jpg |Рис.28. Параметры импорта изображений в Cura Ultimaker}} |
Полученное изображение сохраняется в формате **Jpeg**. Модель для печати мы будем подготавливать в программе для подготовки заданий для печати //Cura Ultimaker// (https://ultimaker.com/en/products/cura-software). После импорта изображения появится меню основных настроек создаваемой трехмерной модели: **Высота**, **Высота основания**, **Ширина**, **Глубина**, **Какой цвет выше**, **Размытие**. | Полученное изображение сохраняется в формате **Jpeg**. Модель для печати мы будем подготавливать в программе для подготовки заданий для печати //Cura Ultimaker// (https://ultimaker.com/en/products/cura-software). После импорта изображения появится меню основных настроек создаваемой трехмерной модели: **Высота**, **Высота основания**, **Ширина**, **Глубина**, **Какой цвет выше**, **Размытие**. | ||
- | {{ :аэросъёмка_3dгород:image064.jpg |Рис.28. Параметры импорта изображений в Cura Ultimaker}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image064.jpg |Рис.28. Параметры импорта изображений в Cura Ultimaker}} |
- | {{ :аэросъёмка_3dгород:image_066.jpg |.29. Модель, полученная по карте высот}} | + | {{ открытый_доступ:аэросъёмка_3dгород:image_066.jpg |.29. Модель, полученная по карте высот}} |
Полученную модель можно сохранить в формате **STL** и использовать для печати или работе на фрезере. | Полученную модель можно сохранить в формате **STL** и использовать для печати или работе на фрезере. |