Обнаружение масштабной линейки в изображении - функция обнаружения или распознавания образов

Каков наилучший метод для определения масштабных полос на изображениях, чтобы автоматизировать масштабирование пикселей до фактических измерений длины?
Я нашел некоторую работу по поиску штрих-кодов, которые могут быть похожими, но они, кажется, используют различия в контрасте по горизонтальному и вертикальному поперечному сечению изображения, что, я не думаю, сработало бы для поиска масштабных полос. Будет ли это лучше всего достигнуто с помощью нейронных сетей или какого-то рода распознавания образов, или я могу сойти с рук, выполнив некоторую обработку изображений, которая обеспечит больше логики звука? Я очень новичок в обработке изображений.
Я предполагаю, что большинство людей видели изображение микроскопа со шкалой, но на всякий случай вот несколько примеров того, что я имею в виду:

какое-то масштабное изображениеЭто вернуло бы 100 нанометров и любую длину пикселя, на которой находится масштабная шкала.

другое масштабное изображениеЭто вернуло бы 500 нанометров и любую пиксельную длину на шкале масштаба.

другой пареньЭто вернуло бы 5 нанометров и любую длину пикселя масштабной линейки.

Я начинаю работать с OpenCV над этой проблемой, но я открыт для предложений по языкам, пакетам или алгоритмам. У кого-нибудь есть идеи по поводу этой задачи при обработке изображений?

1 ответ

Решение

Я думаю, что лучшим решением для этой проблемы было бы с точки зрения OCR, что является почти решенной проблемой. Для этого вам нужно посмотреть, где на изображении расположены такие узоры, как нм, мм, см и т. Д. Если у вас есть расположение символов масштаба, предполагается, что масштабная линейка будет расположена в соседнем месте и будет достаточно отличима от других горизонтальных отрезков. Там может быть два случая:

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

  2. Масштабная линейка расположена поверх текстуры, скажем, Google images. В таком случае вам может потребоваться разместить линию (после весов пороговых значений) на основе RANSAC, чтобы можно было обрезать ложных кандидатов, которые не соответствуют прямой линии. Там могут быть даже линии на заднем плане. В это время вы можете выбрать отрезок линии с углом 0/90 (в зависимости от ориентации символов), ближайший к символам на шкале. Другим хорошим предположением будет то, что линии на шкале будут иметь более сильные края, чем фоновые линии.

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

Другие вопросы по тегам