The usage of computer vision in the system of digital cutting of materials

An approach to the implementation of the computer vision system for recognizing and positioning objects on the cutting surface of machines for digital cutting of materials with the help of a photograph of their working surface with the marked cutting objects on it is proposed. Algorithms of the work...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2018
Автори: Tumanov, V.V., Doroshenko, А.Yu.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут програмних систем НАН України 2018
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/315
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-315
record_format ojs
resource_txt_mv ppisoftskievua/85/f438fc0d5d6f2fe2a3dc79324af83585.pdf
spelling pp_isofts_kiev_ua-article-3152024-04-28T11:45:31Z The usage of computer vision in the system of digital cutting of materials Использование компьютерного зрения в системе цифровой нарезки материалов Використання комп’ютерного зору в системі цифрової нарізки матеріалів Tumanov, V.V. Doroshenko, А.Yu. computer vision system; digital cutting; OpenCV; camera calibration; object recognition UDC 681.3 компьютерного зрения; цифровая нарезка; OpenCV; калибрование камеры; распознавание объектов УДК 681.3 система комп'ютерного зору; цифрова нарізка; OpenCV; калібрування камери; розпізнавання об’єктів УДК 681.3 An approach to the implementation of the computer vision system for recognizing and positioning objects on the cutting surface of machines for digital cutting of materials with the help of a photograph of their working surface with the marked cutting objects on it is proposed. Algorithms of the work of the system modules, which are responsible for the calibration of the camera, the recognition of registration marks by two fundamentally different methods, complemented each other, are developed. Also, an algorithm of identification of cutting objects on the basis of the application of elements of the graph theory is proposed.Problems in programming 2017; 4: 109-0118  Предложен подход к реализации системы компьютерного зрения для распознавания и позиционирования объектов на резательной поверхности станков для цифровой нарезки материалов с помощью фотоснимка их рабочей поверхности вместе с промаркированными объектами нарезки на ней. Разработаны алгоритмы работы модулей системы, которые отвечают по калибровке камеры и распознаванию регистрационных марок двумя принципиально различными способами, которые дополняют друг друга. Также разработан алгоритм идентификации объектов нарезки на основе применения элементов теории графов.Problems in programming 2017; 4: 109-0118  Запропонований підхід до реалізації системи комп’ютерного зору для розпізнавання та позиціонування об’єктів на різальній поверхні станків для цифрової нарізки матеріалів за допомогою фотознімку їх робочої поверхні разом з промаркованими об’єктами нарізки на ній. Розроблено алгоритми роботи модулів системи, які відповідають за калібрування камери і розпізнавання реєстраційних марок двома принципово різними способами, які доповнюють один одного. Розроблено також алгоритм ідентифікації об’єктів нарізки на основі застосування елементів теорії графів.Problems in programming 2017; 4: 109-0118 Інститут програмних систем НАН України 2018-11-15 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/315 10.15407/pp2017.04.109 PROBLEMS IN PROGRAMMING; No 4 (2017); 109-118 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2017); 109-118 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2017); 109-118 1727-4907 10.15407/pp2017.04 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/315/310 Copyright (c) 2018 PROBLEMS OF PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2024-04-28T11:45:31Z
collection OJS
language Ukrainian
topic computer vision system
digital cutting
OpenCV
camera calibration
object recognition
UDC 681.3
spellingShingle computer vision system
digital cutting
OpenCV
camera calibration
object recognition
UDC 681.3
Tumanov, V.V.
Doroshenko, А.Yu.
The usage of computer vision in the system of digital cutting of materials
topic_facet computer vision system
digital cutting
OpenCV
camera calibration
object recognition
UDC 681.3
компьютерного зрения
цифровая нарезка
OpenCV
калибрование камеры
распознавание объектов
УДК 681.3
система комп'ютерного зору
цифрова нарізка
OpenCV
калібрування камери
розпізнавання об’єктів
УДК 681.3
format Article
author Tumanov, V.V.
Doroshenko, А.Yu.
author_facet Tumanov, V.V.
Doroshenko, А.Yu.
author_sort Tumanov, V.V.
title The usage of computer vision in the system of digital cutting of materials
title_short The usage of computer vision in the system of digital cutting of materials
title_full The usage of computer vision in the system of digital cutting of materials
title_fullStr The usage of computer vision in the system of digital cutting of materials
title_full_unstemmed The usage of computer vision in the system of digital cutting of materials
title_sort usage of computer vision in the system of digital cutting of materials
title_alt Использование компьютерного зрения в системе цифровой нарезки материалов
Використання комп’ютерного зору в системі цифрової нарізки матеріалів
description An approach to the implementation of the computer vision system for recognizing and positioning objects on the cutting surface of machines for digital cutting of materials with the help of a photograph of their working surface with the marked cutting objects on it is proposed. Algorithms of the work of the system modules, which are responsible for the calibration of the camera, the recognition of registration marks by two fundamentally different methods, complemented each other, are developed. Also, an algorithm of identification of cutting objects on the basis of the application of elements of the graph theory is proposed.Problems in programming 2017; 4: 109-0118 
publisher Інститут програмних систем НАН України
publishDate 2018
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/315
work_keys_str_mv AT tumanovvv theusageofcomputervisioninthesystemofdigitalcuttingofmaterials
AT doroshenkoayu theusageofcomputervisioninthesystemofdigitalcuttingofmaterials
AT tumanovvv ispolʹzovaniekompʹûternogozreniâvsistemecifrovojnarezkimaterialov
AT doroshenkoayu ispolʹzovaniekompʹûternogozreniâvsistemecifrovojnarezkimaterialov
AT tumanovvv vikoristannâkompûternogozoruvsistemícifrovoínarízkimateríalív
AT doroshenkoayu vikoristannâkompûternogozoruvsistemícifrovoínarízkimateríalív
AT tumanovvv usageofcomputervisioninthesystemofdigitalcuttingofmaterials
AT doroshenkoayu usageofcomputervisioninthesystemofdigitalcuttingofmaterials
first_indexed 2024-09-16T04:07:49Z
last_indexed 2024-09-16T04:07:49Z
_version_ 1818568254145167360
fulltext Прикладні засоби програмування та програмне забезпечення © В.В. Туманов, А.Ю. Дорошенко, 2017 ISSN 1727-4907. Проблеми програмування. 2017. № 4 109 УДК 681.03 В.В. Туманов, А.Ю. Дорошенко ВИКОРИСТАННЯ КОМП’ЮТЕРНОГО ЗОРУ В СИСТЕМІ ЦИФРОВОЇ НАРІЗКИ МАТЕРІАЛІВ Запропонований підхід до реалізації системи комп’ютерного зору для розпізнавання та позиціону- вання об’єктів на різальній поверхні станків для цифрової нарізки матеріалів за допомогою фотозні- мку їх робочої поверхні разом з промаркованими об’єктами нарізки на ній. Розроблено алгоритми роботи модулів системи, які відповідають за калібрування камери і розпізнавання реєстраційних ма- рок двома принципово різними способами, які доповнюють один одного. Розроблено також алгоритм ідентифікації об’єктів нарізки на основі застосування елементів теорії графів. Ключові слова: система комп'ютерного зору, цифрова нарізка, OpenCV, калібрування камери, розпізна- вання об’єктів. Вступ Роль систем комп’ютерного зору в деяких сферах промисловості дуже важко переоцінити. Робота з розпізнавання та ідентифікації об’єктів, що раніше покла- далась виключно на людину, нині досить успішно виконується обчислювальною технікою [1]. При цьому, з роками зростає як швидкість виконання цієї роботи тех- нікою, так і якість її результатів. Це пов’язано не тільки зі збільшенням поту- жності апаратного забезпечення, але й з розробкою нових досконаліших алгорит- мів розпізнавання об’єктів на цифровому зображенні. Деякі галузі промисловості раніше навіть не передбачали, або через недостат- ній рівень технологій просто не могли ви- користовувати тогочасні системи комп’ю- терного зору для своїх цілей. Це стосува- лось в основному сфер виробництва з ви- сокими вимогами до точності класифікації або позиціонування об'єктів. Але в ході те- хнічного прогресу постійно зростає деталі- зація та якість зображень, отримуваних за допомогою фото- та відеокамер, розроб- люються нові, більш досконалі алгоритми розпізнавання, позиціонування та 3D- реконструкції об’єктів за допомогою циф- рових знімків. Так стає можливим впрова- дження систем комп’ютерного зору там, де раніше цієї можливості не було. Подібна ситуація склалась і в сфері цифрової нарізки. Тут впровадження сис- тем комп’ютерного зору відбувалось крок за кроком, відповідно до ступеню розвит- ку техніки. Першим і головним кроком стало встановлення локальної камери прямо біля ріжучого механізму. Її «пог- ляд» охоплює лише невелику ділянку рі- зальної поверхні безпосередньо під різ- цем. Дані, отримані від камери після ре- тельного дослідження всієї різальної по- верхні, дозволяють скласти точну карту розміщення об’єкта(-ів) на ній і визначити програму слідування різака по матеріалу нарізки згідно з заздалегідь визначеним шаблоном. Близькість до об’єктів на різа- льній поверхні забезпечила високу точ- ність розпізнавання і позиціонування об’єктів, і, як наслідок максимальну точ- ність нарізки. Всі сучасні системи цифро- вої нарізки використовують дану техно- логію як базову. Однак такий підхід має суттєвий недолік – швидкодію. Різальному механіз- му з камерою необхідно пройти вздовж усього контуру об’єкта нарізки щоб склас- ти повну і точну картину для подальшого нарізання. Частково вирішити цю пробле- му дозволяє реконструкція позиції всього об’єкта, базуючись на отриманих даних про положення його частини. Втім, еконо- мія часу за рахунок цього неминуче приз- водить до втрати точності, оскільки розра- хунок ведеться на ідеально рівний, неде- формований відносно шаблону об’єкт, чо- го інколи досить важко уникнути. Інший підхід до рішення проблеми швидкодії полягає у нанесенні на нарізу- ваний матеріал опорних маркерів, так Прикладні засоби програмування та програмне забезпечення 110 званих реєстраційних марок. Реєстраційні марки – це чорні круги діаметром від 8 до 16 міліметрів. Набір реєстраційних марок і їх взаємне розташування ідентифікують об’єкт і визначають спосіб його нарізки. Такий спосіб є основним у сфері серійної нарізки, де на неперервному матеріалі (наприклад, на рулоні текстилю, паперу і т. п.) можна розмістити довільну кількість промаркованих об’єктів для вирізання. Тим не менш, навіть використання реєстраційних марок не дозволяє повністю вирішити проблему швидкодії, так як ка- мері перед виконанням нарізки так само треба виконати пошук марок на всій різа- льній поверхні. Ще одним серйозним не- доліком такого підходу до пошуку об’єктів нарізки є подвійне зношування механізмів різака, оскільки для виконання однієї опе- рації нарізки йому необхідно двічі пройти вздовж різальної поверхні: перший раз для пошуку і позиціонування об’єктів на ній, а другий – для їх нарізки. В даній статті розглядатимемо на- ступний етап технології цифрової нарізки, котрий полягає у застосуванні аналізу по- вного зображення всієї різальної поверхні і практично позбавлений недоліків локаль- ного пошуку об’єктів. Мета даної статті – це опис загаль- ної концепції технології обробки і аналізу зображення різальної поверхні для іденти- фікації і позиціонування об’єктів на ній без суттєвих втрат точності. 1. Постановка задачі та вихідні дані Загальна задача описуваної систе- ми комп’ютерного зору полягає в іденти- фікації об’єктів на різальній поверхні ста- нка для цифрової нарізки за допомогою растрового зображення цієї поверхні ра- зом з об’єктами нарізки на ній. Цільова система призначена виключно для роботи з об’єктами нарізки що мають універсаль- ний спосіб ідентифікації – реєстраційні марки. Крім фотографії різальної поверх- ні, системі також необхідна база даних шаблонів нарізки у вигляді файлів з коор- динатами реєстраційних марок у межах самого об’єкта, для ідентифікації об’єктів знайдених на фотографії різальної повер- хні. В результаті, описувана система повинна за мінімальний час, проаналізу- вавши зображення робочої поверхні різа- льного станка, ідентифікувати всі розта- шовані на ній об’єкти, а також визначити їх положення відносно точки відліку різа- льного механізму. Далі отримані дані пе- редаються керуючій програмі різального станку у вигляді структур даних, що міс- тять ідентифікатор об’єкта, та координати всіх його реєстраційних марок щодо зада- ної точки відліку. Процес позиціонування буде детально розглянутий далі в даній статті. Для забезпечення технічної бази описуваної системи комп’ютерного зору необхідне встановлення додатковї глоба- льної фотокамери над різальною поверх- нею станка для цифрової нарізки. З метою отримання оптимального для аналізу зо- браження, камеру слід розташувати над центром різальної поверхні, так щоб опти- чна вісь була перпендикулярна до неї. Ви- соту треба обрати достатню для отримання зображення всієї робочої поверхні станка з мінімумом зайвого на фото. Чим вища роздільність та якість знімків камери, тим кращою буде точність позиціонування і ідентифікації об’єктів на них, що свідчить на користь використання якомога більш якісних фотокамер для даної цілі. Оскільки цифрові різальні станки оснащені комп’ютером за замовчуванням, вимога наявності базової обчислювальної техніки для запуску цільової програми за- довольняється заздалегідь. Необхідна ли- ше наявність операційної системи сімейс- тва Windows для запуску та коректної ро- боти програми. Реалізація основних алгоритмів об- робки та аналізу растрових зображень вже є у відкритій бібліотеці OpenCV (англ. Open Source Computer Vision Library), яку може вільно використовувати в академіч- них та комерційних цілях. Алгоритми ці- льової програми повністю базуються на використанні даної бібліотеки. Прикладні засоби програмування та програмне забезпечення 111 2. Калібрування камери і позиціонування об’єктів Перед початком аналізу зображення різальної поверхні слід переконатись, що воно повністю відображає реальність. Отримані за допомогою фото-зйомки зо- браження часто «страждають» від різних оптичних спотворень (дисторсії) [2], вплив яких варіюється в залежності від якості оптики об’єктива камери. На противагу, існують доволі ефективні методи боротьби з оптичними спотвореннями на фотографі- ях. В першу чергу необхідно виконати калібрування камери. Калібруванням ка- мери називають розрахунок її внутрішніх і зовнішніх параметрів за отриманими з її допомогою фото та відео. В результаті отримується необхідна для усунення дис- торсії інформація про камеру. В розрахунках коефіцієнтів дистор- сії бібліотека OpenCV враховує як танген- ціальні та і радіальні складові [3]. Для ра- діальної складової використовується на- ступна формула: )1( 6 3 4 2 2 1 rkrkrkxxcorrected  , )1( 6 3 4 2 2 1 rkrkrkyycorrected  . Таким чином, піксельна точка на спотвореному зображенні маючі коорди- нати ),( yx , отримує координати )( correctedcorrectedyx на виправленому зо- браженні. Присутність радіальної дистор- сії виявляється в ефектах «бочки» та «риб’ячого ока» на фотографіях. Тангенціальна дисторсія виникає через те, що лінзи об’єктива камери не можуть бути ідеально паралельні площині, яка фотографується. Її можна усунути за наступною формулою: )],2(2[ 22 21 xrpxypxxcorrected  ]2)2([ 2 22 1 xypyrpyycorrected  . В підсумку можна виділити 5 пара- метрів спотворення, які в OpenCV пред- ставлені у вигляді однорядкової матриці з п’ятьма стовпцями.  32121 kppkkDistortion tscoefficien  . Для перетворення координат точок реального світу в координати пікселей на фотознімку, застосовується матриця ка- мери:                                Z Y X cf cf w y x yy xx 100 0 0 . Присутність складової w у складі матриці піксельних координат пояснюєть- ся необхідністю дотримання відповідності розмірностей матриць координатних сис- тем при множенні, і не носить реального змісту. Невідомими параметрами є xf і yf – фокусні відстані камери, та  yx cc , , які представляють оптичні центри, виражені в піксельних координатах. Якщо для обох осей використовується спільна фокусна ві- дстань зі співвідношенням a (зазвичай 1), тоді aff xy * і рівняння вище буде ма- ти єдину фокусну відстань f . Процес знаходження матриць ка- мери і коефіцієнтів дисторсії називається калібруванням. Розрахунки їх параметрів виконуються за допомогою геометричних рівнянь. Застосовувані рівняння залежать від типу об’єктів, що використовуються для калібрування. В даний момент OpenCV підтримує 3 типи об’єктів для ка- лібрування:  класична чорно-біла шахова дошка;  симетричний круговий патерн;  асиметричний круговий патерн. Необхідно зробити знімок цих па- тернів і знайти їх на ньому за допомогою засобів OpenCV. Кожному знайденому па- терну відповідає нове рівняння. Для рі- шення цього рівняння треба зробити деяку кількість знімків і проаналізувати їх, щоби скласти систему з рівнянь. Наприклад, те- оретично, шаховий патерн передбачає мі- німум 2 знімки. Але цього можна уникну- ти, зробивши один знімок кількох патернів одразу. Прикладні засоби програмування та програмне забезпечення 112 Для наших цілей краще за все під- ходить шаховий патерн, оскільки він, по суті, потребує лише «сітку» з точок. Спра- ва в тому, що шахова дошка є лише обгор- ткою для полегшення розпізнавання. На- справді OpenCV цікавлять лише позиції вузлів шахового патерну (точок зіткнення 4 клітинок). Таким чином, необхідно лише на- друкувати і сфотографувати калібрувальну сітку, яка складається зі зручних для роз- пізнавання об’єктів, розташованих у вуз- лах уявної решітки з комірками у вигляді квадратів з попередньо заданою стороною. Найбільш зручними для розпізнавання об’єктами будуть вище згадані реєстрацій- ні марки, які мають радіальну симетрію з огляду на їх круглу форму і можуть бути легко розпізнані як камерою на різаку ста- нка, так і засобами OpenCV. Сторони ква- драта особливого значення для розпізна- вання не має, але мусить бути достатньо великою щоб, вузли сітки зливались між собою на фотографії, і водночас достатньо малою щоб забезпечити велику точність позиціонування. Останнє твердження виті- кає з того, що калібрувальна сітка в нашо- му випадку служить для двох цілей – надає патерн для калібрування камери і утворює основу системи позиціонування об’єктів на різальній поверхні. Розроблювана система передбачає нерухоме закріплення камери над різаль- ною поверхнею, з чого слідує, що один і той самий піксель на різних фотографіях камери буде представляти одну й ту саму точку в просторі (на різальній поверхні). Залишається лише задати точку відліку і встановити опорні точки на різальній по- верхні з відомими координатами, відносно яких будуть розраховуватись координати всіх інших. Позиціонування в межах самої ка- лібрувальної сітки є найпростішою зада- чею, оскільки крок сітки (сторона квадрата комірки) відомий заздалегідь. Зробивши знімок калібрувальної сітки (калібруваль- ний знімок), достатньо тільки розрахувати відношення відстані в міліметрах до відс- тані в пікселях між вузлами сітки і корис- туватись його значенням для знаходження відстаней в межах сітки. Наприклад, між вузлами калібрувальної сітки реальна відс- тань складає 50 мм, а на знімку – 100 пік- селей. Співвідношення мм на 1 піксель (mm/px) складає ½. Знаючи, що відстань на фотографії між об’єктами складає, ска- жімо 482 пікселі, достатньо помножити це значення на розраховане раніше відно- шення mm/px щоб взнати реальну відстань в міліметрах: 241 мм. Для позиціонування щодо точки відліку різака необхідне разове застосу- вання локальної камери, яка має знайти кожен вузол калібрувальної сітки і надати його координати, знайдені з високою точ- ністю*, системі комп’ютерного зору, яка «прив’яже» реальні координати вузлів у міліметрах щодо точки відліку, до їх коор- динат на фотографіях у пікселях. Це буде єдиний етап роботи розроблюваної систе- ми, коли треба застосовувати камеру різа- ка для пошуку марок. Заново виконувати таку процедуру потрібно буде лише у ви- падку необхідності зміни калібрувальної сітки (з іншим кроком, патерном тощо) і повторного виконання калібрування вже для нової сітки. Подальша схема позиціонування нічим не відрізняється від поданої вище. Проте точність буде вищою, оскільки без даних від локальної камери ми можемо знати лише заданий при виготовленні крок між вузлами калібрувальної сітки, який у процесі її виготовлення (при друкуванні) може бути спотворений у силу різних тех- нічних факторів. Все вище сказане свідчить про важ- ливість міцної фіксації камери щодо різа- льної поверхні. Найменше її зміщення призведе до невідповідності наступних знімків калібрувальному та необхідності виконувати процес калібрування заново, який, враховуючи час на пошук вузлів ка- мерою різака і в залежності від розмірів стола та калібрувальної сітки може зайня- ти досить багато часу. В контексті описуваної системи комп’ютерного зору, процес калібрування включає не тільки знаходження матриць властивостей камери. Це також процедура * зазвичай локальні камери забезпечують точ- ність +-0.5 мм Прикладні засоби програмування та програмне забезпечення 113 повної підготовки системи до подальшої коректної роботи з ідентифікації та пози- ціонуванню об’єктів на різальній поверхні на основі калібрувальної фотографії та да- них від камери різака. Після отримання даних від обох камер, інформації про розміри та крок ка- лібрувальної сітки та команди запуску ка- лібрування, програма починає пошук реєс- траційних марок на калібрувальній фотог- рафії. Процедуру пошуку марок буде дета- льно описано в наступному розділі даної статті. Результати пошуку у вигляді списку координат пікселей центрів марок на фо- тографії проходять процедуру пошуку за- кономірностей розташування, на основі яких будуються об’єкти калібрувальних сіток. Основу цих об’єктів складають три двомірні масиви точок, розміри яких збі- гаються з розмірами сіток, а комірки приз- начені для збереження координат вузлів сітки, тобто центрів марок. Перший масив зберігає координати вузлів сітки в піксе- льних координатах фотографії, а другий – отримані від камери різака відповідні ко- ординати реального світу в міліметрах. Третій призначений для зберігання неспо- творених координат вузлів на «вирівняній» фотографії. Після побудови всіх об’єктів сіток відповідно до кількості реальних сіток на фотографії, та заповнення їх перших маси- вів у порядку реального розташування ву- злів, відбувається пошук відповідності ро- зташування комірок першого масиву та точок, отриманих від камери різака. Таким чином встановлюється однозначна відпо- відність реальних координат вузлів каліб- рувальних сіток у міліметрах до їх коор- динат на фотографії в пікселях та запов- нюються другі масиви об’єктів сіток. На основі отриманих даних визначається та- кож позиція точки відліку (початку коор- динат) на фотографії. Далі слідує власне калібрування камери. Для отримання калібрувальних матриць OpenCV пропонує метод calibrateCamera() [4]. Він приймає коор- динати точок патернів (калібрувальних сі- ток) в просторі, їх координати на фотог- рафії (перші два масиви об’єктів сіток), а також пусті матриці для власних коефіці- єнтів та коефіцієнтів спотворення камери, які заповнює розрахованими значеннями. Отримані матриці зберігаються і далі ви- користовуються для розрахунку «прави- льних» координат вузлів калібрувальної сітки за допомогою функції OpenCV undistortPoints(). Перераховані неспотво- рені координати записуються в третій ма- сив об’єктів сіток. В подальшому всі точ- ки, знайдені на фотографіях, будуть про- ходити таку обробку для підвищення точ- ності позиціонування. На цьому процес калібрування за- кінчується. В результаті, програма комп’ютерного зору отримує всю необхід- ну інформацію для точної ідентифікації та позиціонування об’єктів на наступних фо- тографіях різальної поверхні. 3. Обробка зображення та знаходження реєстраційних марок Найголовнішою задачею розроб- люваної системи комп’ютерного зору є пошук реєстраційних марок на фотогра- фії. Бібліотека OpenCV пропонує широ- кий набір інструментів для пошуку різно- манітних геометричних об’єктів на раст- рових зображеннях. Трохи спрощує зада- чу сама форма марки – круг переважно чорного кольору. На бінарному зобра- женні це виглядатиме як скупчення тем- них пікселей з округлим контуром. Спеці- ально з ціллю пошуку таких об’єктів було розроблено клас SimpleBlobDetector [5]. Цей клас реалізує простий алгоритм для знаходження чорних «плям», до яких як раз відносяться реєстраційні марки на зо- браженні. Спочатку виконується конвертація кольорового зображення в кілька чорно- білих з застосуванням різних порогів від мінімального до максимального заданих (або прийнятих за замовчуванням) з де- яким кроком. Суть застосування порогів полягає у порівнянні значення пікселя зі значенням порогу. Попередньо зображен- ня з кольорового переводиться у відтінки сірого. Далі, якщо значення пікселя більше за значення порогу, йому присвоюється один колір (наприклад, чорний), а якщо менше – інший (наприклад, білий). Далі Прикладні засоби програмування та програмне забезпечення 114 алгоритм проводить пошук контурів на отриманих чорно-білих зображеннях та знаходить їх центри. Потім, знайдені на рі- зних зображеннях контури групуються по координатах. Близько розташовані центри формують єдину групу, яка відповідає окремій «плямі». Нарешті, аналізуючи ко- жну групу, алгоритм знаходить остаточні центри та радіуси «плям», та повертає їх у формі колекції структур, що представля- ють координати та властивості знайдених «плям». Також клас перед поверненням ре- зультатів піддає фільтрації за заданими па- раметрами знайдені «плями». До цих па- раметрів відносяться. 1. Яскравість. Фільтр порівнює ін- тенсивність кольору в центрі «плями» з за- даним параметром blobColor. Якщо вони сильно різняться, «пляма» відкидається. 2. Площа. Допускаються лише «плями», що мають площу від заданої па- раметром minArea (включно) до maxArea (не включно). Тобто встановлення minArea рівним 100, відкине всі контури з площею менше 100 пікселей. 3. Округлість. Тут оцінюється на скільки сильно «пляма» схожа на коло. Наприклад, шестикутник буде більш окру- глим аніж, скажімо, квадрат. Треба лише встановити відповідне значення парамет- рам minCircularity та maxCircularity (від 0 до 1). Округлість розраховується за фор- мулою: 2)( 4 perimeter Area . З якої слідує, що ідеальне коло має округлість рівну 1, квадрат – 0,785 і так далі. 4. Опуклість. Ступінь опуклості ви- значається як відношення площі контуру до площі її опуклої оболонки. Опуклою оболонкою контуру є найменший опуклий контур, який повністю включає у себе за- даний. Для включення цього фільтра необ- хідно встановити значення minConvexity та maxConvexity (обидва від 0 до 1). 5. Коефіцієнт інерції. Вимірюється ступінь видовженості контуру. Коло має цей коефіцієнт рівний 1, у еліпса від 0 до 1, а в лінії рівно 0. Для використання філь- трації за коефіцієнтом інерції необхідно встановити параметри minInertiaRatio та maxInertiaRatio відповідно. Однак у класу SimpleBlobDetector є один суттєвий недолік – нечутливість до кольору. Тому він підходить лише для пошуку чорних реєстраційних марок. Що стосується марок інших кольорів, то тут варто звернути увагу на геометричні вла- стивості марки. Як не повертай коло од- норідного кольору навколо його центру – його вигляд завжди залишатиметься од- наковим. Така його властивість дозволяє застосувати до нього метод співставлення зразка. Співставлення зразка – це метод пошуку місця зразка на зображенні біль- шого розміру. Іншими словами, маючи шматочок зображення, можна знайти його положення на цілому зображенні. В OpenCV цей метод реалізує функція matchTemplate(). Вона просто переміщує зразок по цільовому зображенню та порі- внює зразок з поточним шматочком під ним. Існує декілька реалізацій методу спі- вставлення зразка в OpenCV. Вибрати конкретний можна встановленням зна- чення одного з параметрів matchTemplate(). Повертає функція сіре зображення, де кожен піксель показує на- скільки сусідня з ним область збігається із зразком [6]. Якщо основне зображення має роз- міри (WxH), а зразок (wxh), вихідне зо- браження матиме розміри (W–w+1, H–h+1). Як тільки результуюче зображен- ня отримано, можна використовувати фун- кцію minMaxLoc() для отримання коорди- нат мінімального (максимального – в за- лежності від використаного методу співс- тавлення зразка), за шкалою сірого піксе- ля. Це буде верхній лівий кут області, що відповідає зразку. Однак, такий метод підходить лише для випадку колу розшукується єдине збі- гання заданого зразка на цільовій фотог- рафії. Якщо таких збігів очікується більше Прикладні засоби програмування та програмне забезпечення 115 одного, необхідно використовувати поріг відтінків сірого [7]. Якщо метод передба- чує мінімальне значення пікселя (світлий) в області збігання, то необхідно встанови- ти поріг від 0 до 1 ближче до 0 і циклічно викликати функцію minMaxLoc(), порів- нювати найменше значення яке вона пове- ртає з заданим порогом. Якщо воно менше, то можна зберігати його координати та за- фарбовувати вже знайдену область в колір зворотній шуканому (для мінімуму – чор- ний) для запобігання повторного повер- нення тієї ж самої координати. Якщо ж minMaxLoc() повернула мінімальне зна- чення більше порогового, значить можна переривати цикл – досить чіткі збігання закінчились. Для методів, які повертають збіган- ня з максимальним значенням відтінку сі- рого (темним) пікселя, загальний принцип зберігається, але поріг береться ближче до 1, а приймаються точки з більшим ніж по- рогове значенням відтінку. Використання співставлення зразка в описуваній системі потребує лише ство- рення кількох зразків марок (простим вирі- занням області марки з фотографії) різного кольору, діаметру, освітленості та інших параметрів, що впливають на її вигляд. Далі можна застосовувати пошук відпові- дного зразка в залежності від того які мар- ки представлені на фотографії. Загальним недоліком як класу SimpleBlobDetector, так і методу співстав- лення зразка є знаходження на фотографії зайвих чорних точок окрім реєстраційних марок. Одним з можливих рішень може бути жорстке обмеження значень параме- трів для SimpleBlobDetector і зменшення порога для співставлення зразка. Однак, так скоріш за все будуть відкинуті й пот- рібні, але з тих чи інших причин (освіт- лення, тіні й т. п.) невдало сфотографова- ні марки. Найкращим варіантом використан- ня цих методів разом за даних умов, буде їх комбінування з застосуванням великих допусків з наступним прийняттям тільки тих результатів, які знайдені обома алго- ритмами. Коли стосується пошуку кольо- рових марок, то тут варто використовувати лише співставлення зразка. 4. Ідентифікація об’єктів нарізки Ідентифікація об’єктів нарізки по- чинається із створення знімку різальної поверхні глобальною камерою. Разом із знімком системі комп’ютерного зору та- кож на вхід подається шаблон(и) об’єктів розпізнавання які присутні на знімку, та зразки марок для розпізнавання, якщо пла- нується використовувати метод співстав- лення зразка. Після отримання всіх даних та відповідної команди система починає власне процес ідентифікації. Спочатку відбувається пошук реєс- траційних марок описаними попередньо способами. Результат пошуку у вигляді списку координат центрів знайдених ре- єстраційних марок подається на вхід про- цедури пошуку відповідностей шаблонам об’єктів нарізки. Запускається цикл, який за чергою перевіряє наявність конфігура- ції марок поточного шаблону серед знай- дених на фотографії різальної поверхні. Алгоритм пошуку відповідностей шаблонам нарізки полягає у використанні деяких елементів з теорії графів. Марки шаблону мають координати та утворюють вершини зваженого графа з ребрами, вага яких дорівнює відстані між марками ша- блону. Залишається лише знайти такий самий граф серед усіх знайдених на знім- ку реєстраційних марок. Зрозуміло, що пошук марок допускає, що деякі марки на фото можуть бути не знайдені через недо- сконалість алгоритмів пошуку, якість зо- браження, освітлення тощо. Це означає, що відсутність деяких вершин цільового графа серед знайдених на знімку реєстра- ційних марок є допустимою, якщо з ура- хуванням всіх інших наявних марок, мо- жна встановити однозначну їх відповід- ність шуканому шаблону об’єкта нарізки. Оскільки координати марок шаб- лону дані в міліметрах відносно невідомо- го нам початку координат матеріалу, на який ці марки нанесені, оперувати можна лише абсолютними значеннями відстаней між ними. Результатом процедури каліб- рування, яка має бути обов’язково вико- нана перед ідентифікацією об’єктів наріз- ки, є система позиціонування, яка дозво- ляє досить точно визначати відстані між Прикладні засоби програмування та програмне забезпечення 116 точками на фотографії. Так для кожної знайденої марки ми можемо знайти всі ві- дстані від неї до інших (ребра графа) та порівняти їх з набором ребер між марками з шаблону, виявивши збігання. В цьому і полягає основна ідея алгоритму пошуку відповідностей набору знайдених реєст- раційних марок заданим шаблонам об’єктів нарізки. Процедура розпізнавання шаблону об’єкта нарізки серед марок виглядає на- ступним чином. На вхід приймається ці- льовий шаблон та набір піксельних коор- динат знайдених на знімку марок. Споча- тку перевіряється чи достатньо знайдено марок на фото. Якщо всього знайдених марок менше ніж половина від кількості марок у шаблоні об’єкта, то процедура переривається, вважаючи, що об’єктів з таким шаблоном на знімку різальної по- верхні немає. Далі циклічно перебирають- ся всі марки шаблону. Для кожної марки шаблону запускається ще один внутріш- ній цикл, який проходить по всім знайде- ним на фото маркам та перевіряє їх відпо- відність поточній марці шаблону за допо- могою порівняння їх наборів ребер. Для цього розраховуються всі відстані в мілі- метрах (ребра) від поточної знайденої марки до інших, а ребра шаблонних марок розраховуються попередньо, ще при зчи- туванні з файлу та містяться в спеціальній структурі, яка представляє шаблонну ма- рку разом з її ребрами. Далі проходить процедура пошуку ребер шаблонної мар- ки серед ребер марки з фото. Якщо марка, знайдена на знімку, має більше 50 % ребер, що відповідають марці з шаблону, вона заноситься до слов- ника пар відповідностей вигляду: «марка шаблону – марка на фотографії», та вида- ляється з набору знайдених марок. Перебір продовжується далі, оскільки на різальній поверхні може бути одночасно кілька од- накових об’єктів нарізки, тож одній марці з шаблону може відповідати декілька ма- рок із знімку. Слід зазначити, що порівняння ре- бер відбувається з допуском в 5 % від до- вжини ребра шаблонної марки, адже пов- ної рівності довжин відповідних ребер бу- ти не може через присутність допустимої похибки в системі позиціонування (приб- лизно +-1 мм). Після закінчення циклу пошуку марок шаблону серед знайдених на знімку методом порівняння наборів ребер, маємо заповнений словник їх відповідностей. Якщо кількість пар у словнику менша ніж половина від кількості марок в цільовому шаблоні, процедура закінчується, оскіль- ки це означає, що об’єктів з таким шабло- ном на різальній поверхні немає. Якщо ж пар в словнику достатньо, то почина- ється пошук вже окремих екземплярів за- даного шаблону об’єкта серед відібраних пар марок. Береться довільна (перша) опорна пара зі словника «марка шаблону – марка на фотографії», та видаляється з нього. Да- лі, програма намагається знайти відносно неї всі інші марки, які разом сформують об’єкт нарізки. Одразу ж створюється но- вий програмний екземпляр об’єкта, який містить контейнер для його марок та поле ідентифікатора шаблона нарізки. До спис- ку його марок заноситься позиція марки на фото з опорної пари. Також йому присво- юється ідентифікатор поточного шаблону. Після цього починається цикл перебору ребер шаблонної марки з опорної пари, всередині якого знаходиться вкладений цикл, який проходить по всім парам слов- ника. У внутрішньому циклі для шаблон- ної марки поточної пари розраховується відстань від неї, до шаблонної марки опо- рної пари та порівнюється з поточним реб- ром зовнішнього циклу. Якщо вони рівні, то розраховується відстань від марки на фото з поточної пари до марки на фото з опорної пари. Якщо ця відстань приблизно (з урахуванням 5 % допуску) рівна значен- ню поточного ребра, то поточна пара є ще однією маркою об’єкта нарізки, і значення марки на фото додається до списку марок екземпляра цього об’єкта. Після закінчення обох циклів, пе- ревіряється кількість марок у списку ек- земпляра об’єкта. Якщо вона більша ніж половина кількості марок шаблона, то та- кий об’єкт приймається як розпізнаний та додається в колекцію для повернення процедурою. Якщо в словнику залиши- лось ще достатньо марок, то це означає Прикладні засоби програмування та програмне забезпечення 117 що потенційно є ще один екземпляр тако- го шаблону об’єкта. Обирається нова опо- рна пара і для неї так само виконуються описані вище дії. Після того як в словнику зали- шиться замало пар для відбудови об’єкта шаблону, або не залишиться зовсім, про- цедура повертає колекцію розпізнаних об’єктів нарізки, що відповідають задано- му шаблону. Ці об’єкти в свою чергу до- даються до контейнера, що містить всі розпізнані об’єкти різних шаблонів, адже на різальній поверхні одночасно можуть бути розміщені представники різних шаб- лонів нарізки. Після завершення процедури розпі- знавання, програма повертає колекцію, де зібрані всі розпізнані об’єкти нарізки з їх унікальними ідентифікаторами, та коорди- натами марок у міліметрах. Форма даних що повертає система комп’ютерного зору залежить від того, в якому вигляді їх приймає на вхід комп’ютер різального станка (файл, пакети даних тощо). Отримані дані дозволяють програмі комп’ютера станка сформувати траєкторію руху різака по робочій поверхні та прави- льно вирізати розпізнані об’єкти на ній. Висновки Розроблена та описана концепція системи комп’ютерного зору для точної ідентифікації та позиціонування об’єктів цифрової нарізки з реєстраційними марка- ми за фотознімком робочої поверхні стан- ка для цифрової нарізки. Створено алгори- тми роботи модулів системи, які відпові- дають за калібрування камери та утво- рення системи позиціонування на основі калібрувальної сітки та даних від локаль- ної камери різака, розпізнавання реєстра- ційних марок двома принципово різними способами, які доповнюють один одного, а також алгоритм ідентифікації об’єктів на- різки на основі застосування елементів те- орії графів. 1. Шаіпро Л., Стокман Дж. Комп'ютерний зір: переклад з англ. М.: БИНОМ. Лабора- тория знаний, 2006. 752 с. 2. Іофис Є.А. Фотокінотехніка. М.,: «Советс- кая энциклопедия», 1981. 447 с. 3. Шеліський Р. Комп'ютерний зір: Алгорит- ми та Застосунки. Нью-Йорк: Springer, 2011. 957 с. 4. Калібрування камери з OpenCV [Елект- ронний ресурс]. Документація OpenCV 2.4.13.3. Режим доступу до ресурсу: http://docs.opencv.org/2.4/doc/tutorials/ calib3d/camera_calibration/camera_calibratio n.html. 5. Маллік С. Знаходження точок за допомо- гою OpenCV [Електронний ресурс]. Ви- вчення OpenCV. 2015. Режим доступу до ресурсу: https://www.learnopencv.com/blob- detection-using-opencv-python-c/. 6. Співставлення зразка [Електронний ресурс]. Документація OpenCV 2.4.13.3. Режим доступу до ресурсу: http://docs.opencv.org/2.4/doc/tutorials/imgpr oc/histograms/template_matching/template_m atching.html. 7. Брадський Г.Р., Келер А. Вивчаючи OpenCV. Себастополь: O’Reilly Media, 2008. 556 с. References 1. Shapiro, L. & Stockman, G. (2006) Computer vision. Moscow: BINOM. Laboratoriya znaniy. (in Russian) 2. Iofis, E.(1981) Fotokinotehnika. Moscow: “Sovietskaya encyklopediya”. (in Russian) 3. Szeliski, R. (2011) Computer Vision: Algorithms and Applications. New York: Springer. 4. OpenCV 2.4.13.3 documentation. Camera calibration With OpenCV. Available at: http://docs.opencv.org/2.4/doc/tutorials/calib3 d/camera_calibration/camera_calibration. html.(accessed 1 October 2017). 5. Satya, M. (2015) Learn OpenCV. Blob Detection Using OpenCV. Available at: https://www.learnopencv.com/blob-detection- Прикладні засоби програмування та програмне забезпечення 118 using-opencv-python-c/. (accessed 29 September 2017). 6. OpenCV 2.4.13.3 documentation. Template Matching. Available at: http://docs.opencv.org/2.4/doc/tutorials/imgpr oc/histograms/template_matching/template_m atching.html (accessed 1 October 2017). 7. Bradski, G. & Kaehler, A. (2008) Learning OpenCV. Sebastopol: O’Reilly Media. Одержано 04.10.2017 Про авторів: Туманов Владислав Валерійович, студент магістерської програми НТУУ «КПІ імені Ігоря Сікорського» Кількість наукових публікацій в українських виданнях – 2. http:// orcid.org/0000-0002-1813-5021, Дорошенко Анатолій Юхимович, доктор фізико-математичних наук, професор, завідувач відділом теорії комп’ютерних обчислень Інституту програмних систем НАН України професор кафедри автоматики та управління в технічних системах НТУУ “КПІ імені Ігоря Сікорського”. Кількість наукових публікацій в українських виданнях – більше 150. Кількість наукових публікацій в закордонних виданнях – більше 40. Індекс Хірша – 5. http://orcid.org /0000-0002-8435-1451, Місце роботи авторів: НТУУ «КПІ імені Ігоря Сікорського». 03056, Київ, просп. Перемоги, 37, Тел.: (095) 486 3307. E-mail: tumanovlad@gmail.com. Інститут програмних систем НАН України. 03187, Київ, проспект Академіка Глушкова, 40. Тел.: (044) 526 3559. E-mail: doroshenkoanatoliy2@gmail.com