Поиск сколов, неровностей, трещин и царапин на керамической

Компьютерное зрение, OpenCV

Поиск сколов, неровностей, трещин и царапин на керамической

Сообщение ColaClassic » 28 май 2018, 22:29

Наведите на путь истинный, пожалуйста. Пусть имеется какая-нибудь прямоугольная керамическая плитка. Камера направлена на неё вертикально вниз (перпендикулярно). Предположим, что она НЕ окрашена в какой-то однотонный цвет, а находится в процессе производства (т.е. её цвет примерно одинаково-однотонный, но естественно не без погрешностей - где-то темнее, где-то светлее участки). Задача найти на этой плитке какие-нибудь сколы, трещины или царапины.

Можно выделить внешний контур этой плитки, а что потом? Как определить есть ли внутри этого контура какие-либо вышеописанные дефекты?

Нужен наиболее простой, но в то же время действенный метод. У кого какие идеи?
ColaClassic
 
Сообщения: 14
Зарегистрирован: 18 апр 2018, 15:28
programming: c++, python

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение noonv » 29 май 2018, 14:22

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

Surface Defect Detection in a Tile using Digital Image Processing: Analysis and Evaluation (PDF)
crack detect red line opencv
DEVELOPMENT OF A LOW-COST VISION SYSTEM FOR FINDING CONTOUR AND SURFACE DEFECTS ON CAST IRON ENGINE COMPONENTS (PDF)
Аватара пользователя
noonv
Администратор
 
Сообщения: 556
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение ColaClassic » 30 май 2018, 13:59

Большое спасибо за материалы, noonv! Займусь их изучением.

Я понимаю, что трудно предложить решение задачи, не имея при этом примерной картинки и условия. Но дело в том, что я сам не знаю какого рода картинка должна быть. :ne_vi_del: Мне чисто на словах описали суть проблемы (мол, нужно определять дефектованные плитки на их производстве). Вот я и стараюсь максимально нарыть информации по решению данного вопроса и попробовать хотя бы какой-нибудь макет накидать программы. Пусть он даже в реальности пока что не будет 10 из 10 дефектов ловить и идентифицировать. Хоть что-то. Пусть какой-то дефект не сильно заметный пропустит (не спалит), а другой более явный (внешне) заметит.

p.s. определять какой конкретно дефект присутствует не требуется, нужно просто забраковать плитку, если нашёлся хоть какой-нибудь дефект (ну естественно ввести какие-то допустимые рамки + реализовать так, чтоб он случайный переход цвета не принимал за дефект) :du_ma_et:
ColaClassic
 
Сообщения: 14
Зарегистрирован: 18 апр 2018, 15:28
programming: c++, python

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение noonv » 30 май 2018, 14:12

Аватара пользователя
noonv
Администратор
 
Сообщения: 556
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение ColaClassic » 12 июн 2018, 19:09

Мне сейчас рассказывали идею, как можно попробовать через маски решить вопрос. Берешь маску изображения "хорошей" плитки и вычитаешь маску изображения плитки с дефектом. И мол можно с помощью разницы масок решить вопрос. Но это предположение всего лишь. Как оно вам, noonv? Реально\нереально?
ColaClassic
 
Сообщения: 14
Зарегистрирован: 18 апр 2018, 15:28
programming: c++, python

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение ColaClassic » 12 июн 2018, 19:19

noonv писал(а):Рекомендую к прочтению: Постановка задачи компьютерного зрения

Кстати к моему вопросу. Прочитал вашу статью "OpenCV - Сравнение изображений и генерация картинки отличий". По аналогии с вашим примером, нельзя ли искать трещины на плитке таким способом?

Одно не понял в этом вашем примере: в чём разница между SUB и DIFF? В DIFF вы в ручную вычитаете разницу между R G B каналами и записываете в DIFF. А в SUB вы просто вычли массивы пикселей из одного изображение в другое. В результате у вас получилось в DIFF - голубая шляпка на Тапире, а в SUB - красная шляпка. Как так?
Последний раз редактировалось ColaClassic 12 июн 2018, 21:11, всего редактировалось 2 раз(а).
ColaClassic
 
Сообщения: 14
Зарегистрирован: 18 апр 2018, 15:28
programming: c++, python

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение ColaClassic » 12 июн 2018, 20:33

ColaClassic писал(а):
noonv писал(а):Рекомендую к прочтению: Постановка задачи компьютерного зрения

Кстати к моему вопросу. Прочитал вашу статью "OpenCV - Сравнение изображений и генерация картинки отличий". По аналогии с вашим примером, нельзя ли искать трещины на плитке таким способом?

Только вот надо как-то НЕ учитывать изменения лёгкие (ведь плитки не могут быть абсолютно одинакового цвета, все равно пиксели будут отличаться) и учитывать изменения сильные (где есть трещина, например).


Кстати тут даже наверное не маски, а просто разница двух изображений. Каждый пиксель сравнивать с каждым по RGB. Те которые близки по модулю к нулю - считать за совпадение, а те что сильно изменяются - за отклонение. Тем самым можно в разнице изображений увидеть трещинку. Как вам? :-)
ColaClassic
 
Сообщения: 14
Зарегистрирован: 18 апр 2018, 15:28
programming: c++, python

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение noonv » 13 июн 2018, 11:36

ColaClassic писал(а):Кстати тут даже наверное не маски, а просто разница двух изображений. Каждый пиксель сравнивать с каждым по RGB. Те которые близки по модулю к нулю - считать за совпадение, а те что сильно изменяются - за отклонение. Тем самым можно в разнице изображений увидеть трещинку. Как вам?

Попробовать можно :)
Аватара пользователя
noonv
Администратор
 
Сообщения: 556
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Поиск сколов, неровностей, трещин и царапин на керамичес

Сообщение sckameikin22 » 14 июл 2018, 13:46

Да, это вариант.
sckameikin22
 
Сообщения: 1
Зарегистрирован: 14 июл 2018, 13:37
Откуда: Санкт-Петербург


Вернуться в Компьютерное зрение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

© 2009-2017 |  О проекте  |  Политика Конфиденциальности  |