Как вы думаете, я на правильном пути?
Да и нет. Машинное обучение, безусловно, является подходящим инструментом для решения проблемы отслеживания картофеля, но показанные результаты пока не очень хорошие. Долгий путь еще впереди.
А есть идеи, как мне продолжить измерение диаметра?
Если вас интересует только измерение среднего диаметра картофеля, то это может быть намного проще, чем на самом деле отслеживать одиночный картофель.
Сначала необходимо оценить перспективу (положение транспортного ремня относительно камеры), чтобы вы знали, как пространство изображения соотносится с реальным пространством на транспортном ремне. Что может помочь вам в обнаружении преобразования реального пространства в пространство изображения, так это наложить регулярную сетку (например, лист с обычными черными точками) на ремень и наблюдать за его движением. Установка камеры в режиме вид сверху может значительно упростить процесс.
Измерение только среднего диаметра означает, что вам не нужно правильно подбирать все картофелины; стандартного алгоритма обнаружения ребер может быть достаточно для обнаружения большинства картофелин, а затем подгонки к ним эллипсов, составления гистограммы диаметров и просмотра медианы. значение.
В качестве альтернативы можно рассчитать автокорреляцию светимости картофеля (между картофелями темно, сам картофель отражает свет) и подгонять ширину пиков в автокорреляции. Или рассчитайте преобразование Фурье изображений и нормализуйте среднюю амплитуду в пределах полосы частот, где вы ожидаете размер картофеля со средней амплитудой другой полосы частот. Это работает лучше всего, если вы можете калибровать метод с картофелем известного размера. Это означает, что вы можете записывать картофель известного размера и, таким образом, калибровать показатели автокорреляции или FFT.
Я бы, однако, пошел на подход машинного обучения, потому что он потенциально дает вам единичные измерения картофеля.
Как мне отслеживать каждую картошку, чтобы она учитывалась только один раз?
Каждая видеокарта (потенциально) видна в промежутке времени на видео, необходимом для транспортировки картофеля на ленте через поле зрения. После того, как вы установили перспективу, вы можете связать положение на изображении и время записи с положением на транспортной ленте, и пока картофель не меняет положение на ленте, вы можете легко идентифицировать его в течение всего времени. диапазон, где это видно.
По сути, вы должны знать (оценивать) движение транспортного ремня, а затем вы можете "отменить" его (в вычислительном отношении) и усреднить по всем случаям, когда вы видели одну и ту же картошку.
Я рекомендую следующий общий рабочий процесс:
- Попробуйте установить камеру в более удобное положение (вид сверху).
- Измерение преобразования реального пространства в пространство изображения-времени путем отслеживания, позволяющего легче обнаруживать объекты с известным расстоянием на поясе.
- Применение обратного преобразования и, если хотите, усреднение по всем изображениям одного и того же объекта (может помочь, если на одном изображении присутствует шум, низкая контрастность)
- Либо используйте простое обнаружение краев и сделайте некоторую статистику, чтобы получить средний диаметр картофеля (возможно, откалибруйте с картофелем известного размера), либо ..
- .. использовать машинное обучение для определения (и отслеживания, если вы не усреднили) одного картофеля
- Если по пути вы сталкиваетесь с проблемами, разбейте их на маленькие кусочки и попросите решение каждого из них в отдельном вопросе.