1

Во-первых, я узнал всего пару недель об обработке изображений, NN, dll, сам по себе, поэтому я действительно новый, но на самом деле очень профессиональный. n извините за мой плохой английский.Как получить положение (x, y) и количество конкретных объектов или фигуры в изображении ручной съемки?

есть изображение или фотография моего рисунка, я хочу получить координаты объекта/формы (черная точка) n вокруг него, номер, обозначающий порядковый номер точки.

The image

Как получить? Как определить точки? Распознавание формы для точек? Количество распознавания почерка для чисел? Затем сегментацию, чтобы получить позицию? Или использовать сопоставление шаблонов? Но каждая точка имеет немного другую форму из-за рисования руки. Использовать нейронную сеть? в NN, нейрон обычно содержит каждый пиксель, чтобы распознать персонажа, правильно? могу ли я использовать изображение персонажа или точку рисования, содержащуюся в каждом нейроне, чтобы распознать всю мою картину?

Я очень новый, поэтому мне действительно нужен ваш совет, исправьте меня, если я ошибаюсь! Скажите, пожалуйста, что я должен узнать, что я должен делать, что я должен использовать. спасибо. : 'D

ответ

2

Это сложная проблема, которая не может быть решена быстрым решением.

Вот как я бы подойти к нему:

  1. Получить более полную картину. Ваше изображение очень шумно и принимается при слабом освещении с высоким ISO. Используйте лучшую камеру и улучшенные условия освещения, чтобы вы могли сделать фон как можно более белым, а точки - как можно более черными. Попытайтесь максимально увеличить контраст.
  2. Пороговое изображение, чтобы весь фон белый, а точки и цифры черные. Возможно, вы можете применить некоторую эрозию и/или дилатацию, чтобы помочь связать темные края вместе.
  3. Определите прямоугольник как-то и установите рабочую область внутри прямоугольника (обрезайте остальную часть изображения, чтобы вы оставили область внутри прямоугольника). Вы можете сделать это, обнаружив контуры изображения, а затем контур с наибольшей площадью - это прямоугольник (потому что это самый большой объект на изображении). Конечно, это не единственный способ. См. Это: OpenCV find contours
  4. Как только вы остаетесь только с точками, кругами и цифрами, вам нужно найти способ их обнаружить и различить. Вы можете снова найти все контуры (или, может быть, вы нашли их все с предыдущего шага). Вам нужно выяснить, есть ли определенный контур - круг, заполненный круг (точка) или число. Это проблема в своей собственной. Возможно, вы могли бы считать белые/черные пиксели в ограничивающей рамке контура. Точки имеют больше черных пикселей, чем круги и цифры. Вам также нужно сделать что-то о числах, которые соединяются с точками (например, номер 5 на вашем изображении)
  5. Как только вы знаете, что такое точка, круг или номер, вы можете использовать библиотеку OCR (Tesseract or any other OCR lib), чтобы попытаться распознать номера , Вы также можете использовать библиотеку нейронной сети (может быть, обучены с помощью MNIST dataset), чтобы распознавать цифры. Хорошей была бы сверточная нейронная сеть, подобная LeNet-5.

Как вы можете видеть, это проблема, которая требует множества различных шагов для решения, и задействованы многие различные компоненты. Шаги, которые я предложил, могут быть не самыми лучшими, но с некоторой работой я думаю, что это можно решить.

+0

Спасибо большое :) Это всего лишь пример. Оригинал представляет собой бумажные карты из ручного рисования, затем сканируется в изображение HQ.Это означает, что изображение будет содержать улицу, сегмент, другие вещи, которые обычно отображаются на картах. Я попробовал порог, изображение стало более ясным, но точки стали тоньше (например, из формы круга стало эллипс или не идеальный круг). Возможно, это не проблема, как вы сказали, мы видим, что точки имеют больше черных пикселей, чем круги. – lulu

+0

@lulu Добро пожаловать. Если вы чувствуете, что я ответил на ваш вопрос, вы должны отметить его как принятый ответ. [Читайте, почему вы должны это делать] (http://meta.stackexchange.com/a/5235) – Ove

 Смежные вопросы

  • Нет связанных вопросов^_^