Введение
Постановка задачи
Существующие решения
Глава 1. Обзор и аппаратная часть реализации
Глава 2. Программная часть реализации
Заключение
Список литературы
Вместе с бурным развитием вычислительной техники в 21 веке появились или также получили развитие различные области науки и инженерного искусства. Еще всего лишь несколько десятилетий назад едва ли были мыслимы роботы Boston Dynamics, эксперименты ЦЕРН на БАК, современные компьютерные игры, интеллектуальные системы типа Siri от Apple, в основе которых лежит обработка очень больших объемов данных и применение state-of-art алгоритмов машинного обучения и нейронных сетей, программное обеспечение, умение владеть которым сегодня является скорее обыденностью и необходимостью, нежели преимуществом, — взять те же графические редакторы, и т. д.
Одной из таких областей является компьютерное зрение дисциплинарная область, появившаяся в последней четверти прошлого века и занимающаяся извлечением высокоуровневых представлений из цифровых изображений и видео, а также автоматизацией задач, которые выполняет обычный человеческий глаз. При этом медиа-источники, в соответствии с решаемой задачей, могут иметь иметь самый разный характер и содержание. Рассмотрим несколько примеров.
Главной областью, где результаты компьютерного зрения были востребованы, является робототехника. Первые системы компьютерного зрения были связаны с промышленными роботами и проверяли, что деталь на конвейере находится в определенном месте и занимает определенное количество пикселей. Сейчас появляются роботы, которым надо работать не с деталями, лежащими на плоском конвейере с известным цветом ленты, а от которых требуется способность понимать, анализировать реальный мир в трехмерном пространстве, движения и намерения объектов в нем, и это на порядки сложнее.
Элементы компьютерного зрения также используются в стоматологии. Ранее для создания коронок копировали форму обломка зуба, создавая слепок, по которому изготавливали новый зуб. При помощи современных технологий можно обойтись без слепков взять специальную камеру, снять обломанный зуб со всех сторон и по¬
строить трехмерную модель обломка. Затем на основе совмещения и вычитания объемов этой модели и модели целого зуба получается модель для заготовки, которая уже отправляется на печать. Также есть примеры диагностического применения. По срезам МРТ головного мозга можно получить трехмерную картинку, из которой будет понятно, какого объема тот или иной процесс в органах пациента, насколько сильно он распространен, что поможет врачу лучше проанализировать ситуацию.
Беспилотным автомобилям необходима способность находить людей, светофоры и их сигналы, чтобы избегать ДТП, распознавать разметку, топографические и искусственные объекты с картографическими данными, чтобы удерживаться в своей полосе, контролировать своё местоположение и корректировать его при необходимости.
В ритейле компьютерное зрение применяется для распознавания штрих-кодов и подсчета посетителей.
Другим следствием развития вычислительной техники было появление относительно дешевых, простых в использовании и обладающих малыми размерами, программируемых контроллеров. Одним из таких контроллеров является линейка «аппаратно-вычислительных платформ» Arduino. Благодаря ей многие познали мир микроконтроллеров, узнали, что собрать небольшое полезное устройство может даже человек без специального образования, с минимальными познаниями в программировании и с отсутствием познаний в электроникетому служит множество образовательных проектов по робототехнике, ориентированных на школьников. Однако это вовсе не означает, что данные контроллеры не применяются в серьезных проектах.
Данная работа представляет собой проект устройства, предназначенного для решения конкретной задачи построения контура объектов по набору изображений в рамках создания станка с ЧПУ с использованием контроллера Arduino в аппаратной части и алгоритмов компьютерного зрения в программной.
Постановка задачи
Рассмотрим задачу производства различных изделий из ткани. Пусть имеется (штучное) производство футболок с полной запечаткой и пошивом, а также иных изделий из ткани. Одним из этапов этого производства является вырезание элементов одежды из куска ткани, на котором производилась печать. При промышленных масштабах это производится на широкоформатных режущих плоттерах с использованием заранее заданного шаблона. При штучном производстве это делают руками с помощью обычных ножниц. Еще один из способов достичь цели помощью лазера. При этом суть метода остается такой же, как в варианте с плоттером, однако на месте режущих ножей будет стоять лазер. Перечислим основные плюсы и минусы данного подхода по сравнению с остальными.
Плюсы:
Автоматизация ручного труда.
Не происходит растяжения ткани и, кроме того, она оплавляется по краям.
Возможность использования лазера для резки других материалов и изделий.
Минусы:
Повышенные требования к технике безопасности.
Стоимость данного варианта сильно превышает стоимость ручного труда.
Необходимость наличия специального помещения или стола с вытяжкой.
Сделаем еще несколько замечаний. Во-первых, печать на ткани подвержена многим факторам, и в общем случае каждый раз результат печати по одному и тому же шаблону будет немного отличаться от
предыдущего. Поэтому при резке на традиционном плоттере могут воз-никнуть проблемы (вдобавок к тому, что плоттер сам по себе весьма дорогой инструмент, и его применение нецелесообразно при штучном производстве). Во-вторых, еще раз стоит отметить, что при резке ножницами ткань может неравномерно растягиваться, что негативно сказывается на качестве итогового результата (изделия).
В условиях наличия в распоряжении части аппаратных средств для создания собственного станка-резака было предложено спроектировать и реализовать его. В самом общем виде техническое задание звучало следующим образом: из куска ткани (пример на рис. 1) с напечатанными на ней частями одежды нужно вырезать эти самые части. При этом печать всегда происходит на белой ткани и на границах вырезаемых элементов есть тонкие (но заметные) контрастные контура (иначе без шаблона было бы невозможно понять, что нужно вырезать, если часть элемента по задумке должна остаться белой). Резку в силу обозначенных выше причин и замечаний было предложено производить лазером, а определение элементов осуществлять при помощи цифровой камеры. Допустимая погрешность была определена в 1-2 мм. Критерием корректности резки является оценка экспертом (дизайнером). Таким образом, более конкретно задачу можно сформулировать так: необходимо создать станок для лазерного раскроя швейных материалов, оснащенный интеллектуальной оптической системой. При этом критерий корректности его работы математически выражается следующим образом: VE G А ^рG E3 q G LE: p — q || <= 2 мм, где А - множество контуров вырезаемых элементов, E тура вырезаемого элемента, L луч лазера при вырезании соответствующего контура E.
В данной работе рассмотрена и с относительным успехом решена одна частная задача, сочетающая в себе работу с современным контроллером с одной стороны и алгоритмами компьютерного зрения и обработки изображений с другой, а именно построение контура объекта по набору
изображений, в рамках создания аппаратно-программного комплекса
по созданию станка для лазерного раскроя швейных материалов.
Станок был протестирован на выборке из 30 кусков ткани, и показал приемлемый результат в 80% случаев.
Отличительной чертой используемого подхода стало использование
камеры для определения вырезаемых элементов. Предложенный алгоритм был протестирован, показал на практике хороший результат и удовлетворил заказчика.
Плюсами алгоритма и написанного программного обеспечения можно отметить следующее. Алгоритм довольно прост, что позволяет его быстро реализовать в виде программы, а также обеспечивает его быструю работу даже при малоэффективной реализации. Конкретная программа, написанная в ходе данной работы, имеет модульную структуру, и один из модулей отвечает за непосредственное выделение объектов для вырезания. Он принимает на вход прямоугольное изображение рабочей области, а выходом его является массив контуров. Также
программа написана на популярном языке программирования с относительно низким порогом вхождения, что позволяет человеку, который захочет как-то улучшить или модифицировать ее, сделать это с меньшими трудозатратами. Из плюсов станка можно также отметить
простоту устройства и сборки — такой станок легко можно собрать в одиночку.
Из минусов данной работы, а точнее ее аппаратной части, можно отметить не вполне удачный выбор лазера. Также при использовании лазера в качестве режущего устройства требуется наличие специального стола, вытяжки, хорошо проветриваемого помещения. Помимо этого, работа с любым лазерным устройством подразумевает повышенные требования к технике безопасности — как минимум надевание специальных защитных очков перед началом работы.
Перспективными направлениями развития проекта, как в рамках
требований данной задачи, так и уже в других проектах, можно отметить следующее:
1. увеличение рабочей области при необходимости
2. установка камеры с более высоким разрешением для обеспечения субмиллиметровой точности
3. отмечавшуюся модульную структуру программы вместе с использованием других алгоритмов, методов и подходов компьютерного
зрения и обработки изображений можно использовать для нахождения и вырезания более сложных фигур, причем не только на ткани
Стоимость деталей станка оценивается следующим образом: двигатели — 3920 р × 3 шт, драйвера — 6930 р × 2 шт, блок питания — 5390 р, контроллера Arduino Uno – 470 р, камера Canon PowerShot S50 – 700р, лазер — 10600 р, алюминиевые профили — примерно 5500 р. В сумме получается примерно 48280 р с учетом нынешних курсов доллара и
евр
[1] 450nm 5W Laser Engraving Module Blue Light
Marking Engraver With TTL Modulation. ––
2018. –– URL: https://www.banggood.com/
450nm-5W-Laser-Engraving-Module-Blue-Light-Marking-Engraver-With
html?currency=EUR&utm_source=criteo&utm_medium=cpc&utm_
content=all&utm_campaign=m-electronics-EU-English&stayold=
1&cur_warehouse=USA (online; accessed: 25.05.2018).
[2] A. Basu S. Licardie. Alternative models for fish-eye lenses // Pattern
Recognition Letters. –– 1995. –– Vol. 16, no. 4. –– P. 443–441.
[3] Arduino Uno Rev3. –– 2018. –– URL: https://store.arduino.cc/
arduino-uno-rev3 (online; accessed: 25.05.2018).
[4] Automatic generation and detection of highly reliable fiducial markers
under occlusion / S. Garrido-Jurado, R. Muñoz Salinas, F.J. MadridCuevas, M.J. Marín-Jiménez // Pattern Recognition. –– 2014. ––
Vol. 47, no. 6. –– P. 2280 – 2292. –– URL: http://www.sciencedirect.
com/science/article/pii/S0031320314000235.
[5] Brown D. C. Decentering distortion of lenses // Photogrammetric
Engineering and Remote Sensing. –– 1966.
[6] Brown D. C. Close-range camera calibration // Photogrammetric
Engineering and Remote Sensing. –– Vol. 8. –– 1971. –– P. 855–866.
[7] C. McGlone E. Mikhail J. Bethel. Manual of Photogrammetry, fifth
ed. –– American Society of Photogrammetry and Remote Sensing, 2004.
[8] Camera Calibration Toolbox for Matlab. –– 2018. –– URL: http://
www.vision.caltech.edu/bouguetj/calib_doc/ (online; accessed:
25.05.2018).
[9] Canny J. A Computational Approach to Edge Detection // IEEE
27Transactions on Pattern Analysis and Machine Intelligence. –– 1986. ––
Vol. PAMI-8, no. 6. –– P. 679–698.
[10] Douglas David H., Peucker Thomas K. Algorithms for the Reduction
of the Number of Points Required to Represent a Digitized Line or Its
Caricature // The Canadian Cartographer. –– 1973. –– Vol. 10, no. 2. ––
P. 112–122.
[11] F. Devernay O. Faugeras. Straight lines have to be straight // Machine
Vision Applications. –– 2001. –– Vol. 13, no. 1. –– P. 14–24.
[12] Fitzgibbon A. Simultaneous Linear Estimation of Multiple view
Geometry and lens distortion // in Proceedings of the Conference on
Computer Vision and Pattern Recognition. –– 2001.
[13] Fryer J. G., Brown D. C. Lens Distortion for Close-Range
Photogrammetry // Photogrammetric Engineering and Remote
Sensing. –– 1986. –– Vol. 52, no. 1. –– P. 51–58.
[14] G-code - Wikipedia. –– 2018. –– URL: https://en.wikipedia.org/
wiki/G-code (online; accessed: 25.05.2018).
[15] Generation of fiducial marker dictionaries using mixed integer linear
programming / S. Garrido-Jurado, R. Muñoz Salinas, F.J. MadridCuevas, R. Medina-Carnicer // Pattern Recognition. –– 2016. ––
Vol. 51. –– P. 481 – 491. –– URL: http://www.sciencedirect.com/
science/article/pii/S0031320315003544.
[16] Gonzalez Rafael C., Woods Richard E. Digital Image Processing (3rd
Edition). –– Upper Saddle River, NJ, USA : Prentice-Hall, Inc., 2006. ––
ISBN: 013168728X.
[17] Home - gnea/grbl Wiki. –– 2018. –– URL: https://github.com/gnea/
grbl/wikigrbl (online; accessed: 25.05.2018).
[18] J. Mallon P.F. Whelan. Precise radial un-distortion of images //
in Proceedings of the 17th International Conference on Pattern
Recognition. –– 2004.
28[19] J. Weng P. Cohen M. Herniou. Camera calibration with distortion
models and accuracy evaluation // IEEE Transactions Pattern
Analysis and Machine Intelligence. –– 1992. –– Vol. 14, no. 10. –– P. 965–
980.
[20] L. Ma Y.Q. Chen K.L. Moore. Flexible camera calibration using a new
analytical radial undistortion formula with application to mobile robot
localization // in Proceedings of IEEE International Symposium on
Intelligent Control / IEEE. –– 2003.
[21] Leadshine Technology Co, Ltd. –– 2018. –– URL: http:
//www.leadshine.com/productdetail.aspx?model=57HS13 (online;
accessed: 25.05.2018).
[22] Leadshine Technology Co, Ltd. –– 2018. –– URL: http:
//www.leadshine.com/productdetail.aspx?model=DM556 (online;
accessed: 25.05.2018).
[23] Leadshine Technology Co, Ltd. –– 2018. –– URL: http:
//www.leadshine.com/productdetail.aspx?model=SPS407 (online;
accessed: 25.05.2018).
[24] PowerShot S50 // Canon Camera Museum. –– 2018. –– URL:
http://global.canon/en/c-museum/product/dcc482.html (online;
accessed: 25.05.2018).
[25] Ricolfe-Viala Carlos, Sanchez-Salmeron Antonio-Jose. Lens distortion
models evaluation // Appl. Opt. –– 2010. –– Oct. –– Vol. 49, no. 30. ––
P. 5914–5928. –– URL: http://ao.osa.org/abstract.cfm?URI=
ao-49-30-5914.
[26] S. Shah J.K. Aggarwal. Intrinsic parameter calibration procedure
for a (high distortion) fish-eye lens camera with distortion model
and accuracy estimation // Pattern Recognition. –– 1996. –– Vol. 29,
no. 11. –– P. 1775–1778.
29[27] S.S. Beauchemin R. Bajcsy. Modelling and removing radial and
tangential distortions in spherical lenses, Multi Image Analysis //
Lecture Notes in Computer Science. –– 2001. –– Vol. 2023. –– P. 1–21.
[28] Suzuki Satoshi, Abe Keiichi. Topological structural analysis of digitized
binary images by border following // Computer Vision, Graphics, and
Image Processing. –– 1985. –– Vol. 30, no. 1. –– P. 32–46.
[29] Tsai R. A versatile camera calibration technique for high-accuracy 3D
machine vision metrology using off-the-self TV camera lenses // IEEE
Journal of Robotics and Automation. –– 1997. –– Vol. 4. –– P. 323–344.
[30] Zhang Z. A flexible new technique for camera calibration // IEEE
Transactions on Pattern Analysis and Machine Intelligence. –– 2000. ––
Vol. 22, no. 11. –– P. 1330–1334.
[31] gPhoto - Projects :: libgphoto2. –– 2018. –– URL: http://www.gphoto.
org/proj/libgphoto2/ (online; accessed: 25.05.2018)