3D-сканер из молока и смартфона



    На сайте Instructables опубликована инструкция, как собрать самый простой и дешёвый 3D-сканер из подручных средств. Автор проекта GotMesh подсмотрел идею использовать молоко у коллег из проекта Milkscanner, которые применили его для создания сложных 3D-моделей ещё до того, как 3D-печать пошла в массы. Новый способ намного проще, автоматизирован с помощью скрипта и OpenCV, а также оптимизирован конкретно для 3D-печати отсканированного предмета.

    Суть метода заключается в том, что молоко медленно вытекает из ёмкости, проявляя контуры объекта.

    В контейнерах просверливается небольшое отверстие для перетекания молока, а в в верхнем контейнере нужно сделать удерживающее устройство для смартфона. Процесс снимается на камеру смартфона/фотоаппарата/etc., в режиме time-lapse, то есть покадровой съёмки.



    Затем сделанные фотографии копируются в отдельную папку на компьютере. Питоновский скрипт обрабатывает фотографии, используя библиотеку OpenCV для преобразования набора фотографий в набор вершин — файл в формате .xyz. Репозиторий со скриптом здесь.

    Чёрный экран с белыми контурами на экране отображает работу детектора границ Канни — функция Canny в OpenCV.



    Созданный файл конвертируется в полноценную 3D-модель .stl в программе MeshLab. Перед этим можно очистить модель от ненужных артефактов, удалив лишние вершины (Edit --> Select Vertexes).



    И всё. Действительно, проще некуда. Если жалко денег на 5 литров молока, то можно взять любую другую непрозрачную жидкость. Главное, чтобы она отличалась по цвету от сканируемого предмета. Но автор говорит, что перепробовал много жидкостей, в том числе разбавленную краску, соду и пищевые красители, и понял, что молоко подходит лучше всего.

    Стоимость такого сканера равна стоимости двух пластиковых контейнеров, то есть менее 12 долларов. Ну и сами контейнеры пригодны для многоразового использования.
    Support the author
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 28

      +1
      >>> Но автор говорит, что перепробовал много жидкостей, в том числе разбавленную краску, соду и пищевые красители, и понял, что молоко подходит лучше всего.

      Ибо нужна эмульсия.
        +1
        Водоэмульсионная краска тоже эмульсия. Как мне кажется суть не в состоянии жидкости, а в ее поверхностном натяжении, плотности и контрастности.
        +2
        Работает только для выпуклых моделей?
          0
          Более того, оно и сужение снизу камня не увидит, ракурс камеры то один. Если положить шарик, то на скане будет только половина шара.
            0
            хуже, сверху будет полусфера, и снизу конус, т.к. верхняя полусфера заслоняет от камеры некоторый угол.
              0
              Можно отсканировать с двух сторон, а потом совместить модели
            +21
            Есть несколько условий:
            1. Объект должен быть сужающийся к верху!
            1. Объект не должен впитывать (мягкие игрушки)!
            1. Объект может быть испорчен жидкостью!
            2. Сканирование кота может затянуться)
              +4
              2. Сканирование кота может затянуться)

              Зато второй контейнер и дырка в первом становятся не нужны=)
                +3
                2. Кот, скорее, наоборот, ускорит процесс снижения уровня молока, что исказит вертикальные пропорции скана.
                  +2
                  И толщина кота будет неодинаковой в процессе этой процедуры.
                +1
                Не совсем понял, а если модель расширяется снизу вверх? Или меняет ширину на протяжении всей модели? Можно ли использовать несколько камер с разных сторон, например?

                UPD. на первую часть вопроса ответ получен выше
                  0
                  Проще тогда свести фотки с разных ракурсов, чем возиться с несколькими телефонами и поднимать один из них с уровнем молока.
                  А тут речь именно о сканировании.
                    0
                    Есть интересная и бесплатная программа — Autodesk 123D Catch. Это и есть «свести фотки с разных ракурсов». Тупо фотографируем объект с разных сторон, заливаем, и получаем готовую 3D-модель.
                    +1
                    Если снизу вверх — перевернуть. А если меняет ширину, тогда сложнее )
                    0
                    Хм… Может воду с крахмалом намешать в нужных пропорциях и тоже будет вроде-бы эмульсия?
                      +1
                      Вода с крахмалом это суспензия.
                      0
                      А если я хочу отсканировать что-то грибообразное?
                      +4
                      Пришел в голову ещё такой вариант — кладём предмет в контейнер, заливаем чистой водой, фотографируем с разных ракурс
                      ов, затем заливаем полупрозрачной окрашенной жидкостью и фоткаем с тех же ракурсов ещё раз. Чем дальше точка поверхности предмета от стенки сосуда, тем сильнее её цвет на первой фотке будет отличаться от цвета на второй. Таким образом получаем карты глубин и сшиваем их в единый трехмерный образ. Вот только с преломлением не совсем понятно, что делать. Может первую фотосессию делать «всухую», а потом сопоставлять характерные фрагменты на «сухой» и «мокрой» фотках, компенсируя преломление?
                        0
                        использовать вместо жидкости туман
                        0
                        Вариант с лазерами куда практичнее и не на много затратнее. А если учитывать долгосрочную цену из-за расходников — молока, то и дешевле.
                          0
                          Уровень жидкости понижается нелинейно, а софт судя по всему это не учитывает.
                            0
                            Не совсем в тему, но может у кого-то есть рабочие идеи чем дешево можно бревно 6-ти метровое сканировать? Молоко тут явно не подойдет :) Пробовал первый кинект, но там качество не очень.
                              0
                              Вам вдоль (т.е. полностью) или только срезы?
                              В первом случае приходит в голову только эдакая платформа с лазером и камерой. Ну или, если есть кинект, можете попробовать его на эту платформу поставить и катать вдоль бревна.
                                0
                                Вдоль. Да, так и думаем делать — катать камеру или кинект на платформе. Проблемы в точности и скорости построения моделей этих бревен.
                                  +1
                                  Если у вас бревна подаются продольно на чем-то вроде роликов или конвейера, то можно поставить 3 кинекта кольцом в разрыв, и снимать данные без катающихся платформ и затрат времени.
                              +1
                              Можно использовать кинетический песок или какое-нибудь другое текучее но не липкое вещество, чтобы не повреждать объект!

                              Only users with full accounts can post comments. Log in, please.