LINUX.ORG.RU

Сообщения PlastMove

 

Оценка времени и стоимости создания программы распознавания/сортировки изображений по шаблонам.

Форум — Job

Оценка времени и стоимости создания программы распознавания/сортировки изображений по шаблонам.

Добрый день. Пожалуйста, подскажите примерные порядки сроков и стоимости для написания ПО с ниже приведенным функционалом. Какими технологиями(помимо opencv) стоит поинтересоваться? *Заранее извиняюсь за несколько скомканное и сбивчивое описание, мне ТЗ проще нарисовать, чем описать не на десятке страниц. )

С фотографии(большого разрешения, на белом\черном фоне) пластиковых распечатанных деталей нужно выделить предметы по контурам (треугольный, параллелепипед, круг), вырезать их с отступами по отдельным файлам, назвать по маске и занести в БД. Далее отдельные предметы идут на автоматическое распознавание внешних и внутренних контуров по принципу:

Параллелограмм

  • прямоугольное (по соотношению сторон, краевым контурам)
    • уголок
      • с 3 круглыми отверстиями
      • с 2 крестообразными
      • с 2 круглыми с зенковкой
    • крышка (варианты разного размера и с разными внутренними элементами - бортики, ребра жесткости, отверстия под болты, надписи и т.п.)
  • квадрат
    • крышка
    • образец

Округлое

  • С ровным краем
    • Имеет внутренние контуры
      • С ободом
        • колесо
      • Без обода
        • шайбы\прокладки
    • Не имеет внутренних контуров
      • Диск(образец)
        • Разные диаметры/материал
  • С зубчатым краем
    • Шестеренка (по размеру, кол-ву зубьев, диаметру оси)
    • Гайка
    • Что-то неудавшееся круглое

Определенное, с допустимой погрешностью, называть по маске с эталона и сохранять. С погрешностями - на ручную доводку контура и дальнейшее автоматическое определение, или пометку тегами и сохранение в другом разделе. Например, изменен угол/геометрия зубьев шестерни, растянутость круглых элементов(овальная зенковка), пильчатый/слоистый край вместо ровного, непараллельность сторон гайки и т.п. - брак.

Контуры, снятые с картинки, сравнивать с заранее созданной библиотекой эталонных контурных масок. Для ее наполнения потребуется ручками доводить до приемлемого уровня контуры снятые с эталонных распечаток. Стирать лишние контуры и шумы, подтягивать/дорисовывать контур до нужного, отмечать контуры с разным приоритетом, и, по итогу, сохранить в БД. Таким образом, туда надо будет прикрутить и графический редактор, простенький, не Paint, но что-то уровня Paint.Net - слои, панельки инструментов, история и т.п. Также нужна возможность наложить на проверяемый предмет изображения эталонного и их контурные маски с настраиваемой прозрачностью/цветом.

Основная проблема мне видится в том, что изделия пластиковые, глянцевые, на них имеется масса бликов, осложняющих не только первоначальное определение формы (из-за блика на сгибе или вытянутой тени, квадрат с освещением под углом видится ромбом, а круг овалом), но и внутренних структур - блики на зенковке и трафаретных лаковых надписях, слоистая текстура самой детальки. Может, при создании эталонной маски к основной линии контура добавлять некий коридор погрешности в мм/пикселах, или прикрутить нейросеть и обучить ее на эталонных предметах, или и то, и другое, для надежности?

Подытоживая, нужна программка содержащая в себе БД, граф.редактор, распознавание образов по шаблонам с построением контуров и обучением нейросети на эталонных изображениях/контурных масках. Что касается части распознавания, то по мне, это должно быть проще лиц, навроде номеров машин, но исходные данные хорошего разрешения, с минимальными искажениями и загрязнениями. Большие сомнения вызывает нейросеть, но без нее задача кажется с трудом решаемой, даже мне не без колебаний получится провести границу между ободом и диском, т.к. в одном месте бликует и граница в пересвете, в другом в тени, да и сам скос пологий, поди разбери.

Все модули нужны не коммерческие, т.е. бесплатные, желательно открытые. Поскольку средства не бюджетные, а свои, да и распространение, продажа или другое коммерческое использование не предполагается, т.е. и к интерфейсу с рабочим окружением требования минимальны. С такими БД и граф.редактором, я думаю, проблем не возникнет, где-то мне попадался и проект открытой распознавалки номеров, может его удастся модифицировать, без написания с нуля всего распознавания на opencv. Основная работа мне видится в сведении всего этого в один инструмент, натягивании GUI и нейросети. В общем, эскиз программки таков. Что скажете?

С учетом не описанного инструментария и еще не оформившихся хотелок, все прикидки умножаю на два.

P.S. У вас тут Как правильно писать объявление о работе ссылка отклеилась www.linux.org.ru/wiki/en/Lorcode

 , ,

PlastMove
()

RSS подписка на новые темы