Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
открытый_доступ:аэросъёмка_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** и использовать для печати или работе на фрезере.