Разработка методики автоматизированной дистанционной оценки густоты сельскохозяйственных растений
В рамках работ в текущем году разработан алгоритм и методика автоматизированной оценки густоты растений на сельскохозяйственных полях по данным съёмки с беспилотного летательного аппарата (БПЛА). Определение показателя густоты растений после появления всходов необходимо как для оценки качества результатов сева, так и для уточнения необходимости последующих технологических операций. В производстве густота растений сахарной свёклы определяется подсчётом числа растений на 3–7 случайных участках размером 10 кв. м каждый. При этом обход поля сопряжён со значительными временными затратами, хотя в итоге оценка густоты поля производится по небольшой площади, приблизительно 50 кв. м для поля площадью 10 га. Поскольку свободно доступные спутниковые данные не обеспечивают разрешения в несколько миллиметров на пиксель, в рамках решения этой задачи предлагается использовать изображения с БПЛА. Снимки полей, использованные в данной работе, предоставлены специалистами ООО ЦЧ АПК. Снимки сделаны в надир с высоты 30 м с помощью БПЛА DJI Mavic 2 Pro. Использован объектив FOV: 77°, 28 мм (эквивалент формата 35 мм), диафрагма: f/2,8–f/11, разрешение 5472×3648. Облетая поле, БПЛА делал 15–20 остановок в случайных местах и производил съёмку, пример на рисунке 2.1.2.1
Рисунок 2.1.2.1 — Фотография участка поля сахарной свёклы с высоты 30 м
Высота съёмки контролировалась встроенным альтиметром, который не учитывает рельеф местности и не обеспечивает требуемую точность. Поэтому необходимо уточнять разрешение снимка по расстоянию между рядками культуры, которое при использовании для сева современной техники выдерживается достаточно точно. В тестовых снимках расстояние между рядами составляет 45 см.
Ключевая и самая трудоёмкая для оператора операция — подсчёт числа растений на снимке. Операция состоит из двух шагов. Первый шаг — автоматическое выявление всех растений таким образом, чтобы каждое растение отображалось одной связной группой пикселей. Далее такая группа пикселей именуется «пятном». Второй шаг —подсчёт числа полученных пятен. При поиске пятен необходимо определить критерии связности соседних пикселей (4-связность или 8-связность). В рамках тестирования лучше себя показал вариант 8-связности.
Основным шагом является автоматизированное выявление растений, в процессе которого от каждого растения необходимо получить только одно пятно. Пятно характеризуется двумя параметрами: цвет (зелёное растение контрастно по цвету по отношению к окружающему грунту) и размер (не учитываются слишком маленькие зелёные объекты, чтобы не добавлять к числу растений «визуально отделившиеся» фрагменты растений или мелкие сорняки).
В процессе настройки алгоритма необходимо выявлять пиксели, которые по параметру «цвет» относятся к зелёной биомассе. Входное изображение содержит данные в трех диапазонах, каждый пиксель характеризуется тремя значениями — R (интенсивность красного цвета), G (интенсивность зелёного) и B (интенсивность синего). У пикселя, относящегося к растению, G > R и G > B, однако было необходимо дополнительно определить условие, которое позволит не пропустить «зелёные» точки и не позволит ошибочно выделять лишние точки. Зелёная растительность детектировалась по критерию G – R > T, где T — пороговое значение. Однако по этому правилу выявлялось довольно много лишних пикселей там, где на поверхности земли находилась тень от микрорельефа или имелись увлаженные участки. Устранение этих недостатков производилось по дополнительному условию R – B > Tb, где Tb — также пороговое значение.
Чтобы исключить разного рода шумы при выявлении участков зелёной биомассы был использован пространственный анализ, с усреднением значений (G – R) в небольшом круглом окне (с диаметром d пикселей, в данном случае d = 9). Упомянутый выше порог T применялся к усреднённым значениям. Такой способ идентификации компактных групп участков зелёной биомассы позволяет совместно учитывать, насколько участки «зелёные» и насколько их много в рассматриваемой окрестности.
На этапе пространственного анализа важно исключить или минимизировать случаи, когда одно растение порождает несколько «пятен», например, из-за того, что отдельные «пятна» создают листья одного растения в случае, когда плохо заметны связывающие их стебли. Эта задача решалась использованием двух морфологических операций — эрозии (сжатие пятен) и дилатации (раздувание пятен). После дилатации на определенную величину (r пикселей), а потом эрозии на ту же величину, происходит слияние пятен, расстояние между которыми меньше чем 2r + 1 пиксель. На последнем шаге происходит исключение пятен с площадью меньше порога, Ts. Применение указанных операций к изображению на рисунке 2.1.2.1 может приводить к следующим ошибкам (рисунок 2.1.2.2):
- Пропуск. На месте растение может не сформироваться пятно.
- Склейка. Возможна ситуация, когда листья соседних растений перекрываются, и пятна нескольких растений сливаются в одно. При подсчёте густоты это будет равносильно пропуску всех слившихся растений кроме одного.
- Ложное растение. Пятно возникло там, где растения нет, например, на затенённом участке.
- Распадение. Одно растение порождает несколько пятен, возникают лишние пятна.
В результате при подсчёте числа растений возникают ошибки двух типов — пропуск растений и их ошибочное детектирование. Для оценки эффективности предложенного алгоритма обозначим общее число растений потерянных за счёт пропусков и склейки символом Е–, а общее число «лишних» пятен, получившихся за счёт ложных растений и распадений символом Е+. Число ошибочных решений, принятых алгоритмом Er = (E+) + (E–), а ошибка в определении числа растений E = (E+) – (E–), и E может оказаться существенно меньше, чем Er. Настраивая алгоритм, нужно учитывать значение E, которое определяет фактическую точность алгоритма.
а б в
г д е
Рисунок 2.1.2.2 — Демонстрация процесса обработки изображения с рисунка 2.1.2.1, показан небольшой фрагмент поля: а — исходное изображение; б — «индекс зелёного» после пространственной фильтрации (темнее — большее значение); в — пятна после пороговой операции; г — пятна после морфологической операции (см. второе пятно во втором столбце и два больших пятна в третьем) и удаления мелких пятен (одно из трёх в третьем столбце); д — найденные пятна наложены как красные на исходное изображение; е — цветными полосками отмечены пропущенные растения (зелёным), лишние пятна (синим) и слившиеся пятна (жёлтым)
Оценка качества работы алгоритма происходила следующим образом. На тестовом снимке (см. рисунок 2.1.2.1), алгоритм выделил пятна общим числом Na. Далее эксперт вручную проанализировал полученные пятна и отметил ошибки — пропущенные, склеенные, ложно отмеченные и распавшиеся пятна. Таким образом, была получена экспертная оценка числа растений на снимке, N = 2423 растения. Найдено пятен Na = 2370, пропущено Np = 103, склеенных Ns = 29, ложно отмеченных Ne = 0, и ложных пятен от распадения Nr = 79, а значит (E–) = Np + Ns = 132, (E+) = Ne + Nr = 79, E = –53, Er = 211. Таким образом, относительная погрешность алгоритма e = E/(Na – E) = 2,2 %. Общее число ошибочных решений Er/(Na – E) = 8,7 %. Необходимо учитывать, что алгоритм рассчитан на обработку изображений без наличия на них сорняков, и таким образом, сорняки являются источниками ошибочного распознавания. В результате экспертного анализа снимка 8 сорняков было распознано в качестве культурного растения, однако это слабо влияет на величину ошибки. Разрешение снимка оказалось 3,75 мм/пикс, площадь снимка 280,72 кв. м (почти в 30 раз больше стандартного участка определения густоты) и густота растений 84.43 тысяч на гектар. Эти результаты приведены в таблице 2.1.2.1 (первая строка).
№
|
Пятен N
|
Пропуск Np
|
Склеены Ns
|
Ложные Ne
|
Распад Nr
|
Ошибка E, %
|
Ошибочных решений Er, %
|
Густота, тыс/га
|
1
|
2423
|
103
|
29
|
0
|
79
|
–53
|
2,2
|
211
|
8,7
|
84,43
|
2
|
2772
|
102
|
45
|
0
|
86
|
–61
|
2,2
|
233
|
8,4
|
106
|
Таблица 2.1.2.1. Результаты тестирования по двум снимкам
Для повышения эффективности работы алгоритма его параметры варьировались с целью обеспечения баланса между ошибками пропуска и ложного обнаружения (E+ и E–), которые должны быть близки. Необходимо было также оценить устойчивость параметров алгоритма. Большое значение имел способ определения «зелёных» пикселей, а изменение пороговых значений не оказывало существенного влияния на результат работы алгоритма. На графике, иллюстрирующем устойчивость алгоритма (рисунок 2.1.2.3), показано, как меняется число найденных пятен Na при изменении порогового значения «по цвету» T (в работе было использовано значение T = 14).
Рисунок 2.1.2.3 — По оси ординат — число найденных «пятен», а по оси абсцисс — величина порога
График иллюстрирует ухудшение результатов обнаружения участков культурной растительности только на 10% при существенном изменении порога T. Изменение других параметров около их оптимальных значений сказывается на результате ещё меньше.
Пороговые значения d и Ts выбирались исходя из минимального размера растения на снимке, которое нужно принимать в расчёт. Радиус морфологических операций r должен быть достаточно большим, чтобы слить части одного растения и не сливать соседние растения. Поскольку расстояние между растениями в рядке 19 см, больший диаметр их кроны должен быть меньше 18 см, чтобы растения не перекрывались, не сливались на изображении.
С другой стороны, отставшие в развитии растения не должны быть слишком маленькими. Экспертным путём установлено, что их размер (меньший диаметр) должен быть больше 3 см. Учитывая, что разрешение снимка около 3,5 мм/пикс, алгоритм мог обнаружить растения размером больше 8 пикселей и диаметром меньше 50 пикселей.
При обработке с теми же параметрами снимка другого участка того же поля (на этом изображении 9 сорняков), получен очень похожий результат (таблица 2.1.2.1, вторая строка). Разрешение этого снимка оказалось 3,58 мм/пикс, площадь 255,84 кв. м и густота растений получилась 106 тысяч на гектар, т.е. на 25,5 % больше, чем на первом снимке.
Густоту растений можно определить с помощью следующей последовательности действий оператора алгоритма.
- Оператор просматривает на экране снимки поля и выбирает снимок, который получен в надир с разрешением примерно 3,5 мм/пикс (для использованной съёмочной камеры это около 30 горизонтальных рядков или 40 вертикальных). На снимке должен быть участок поля, засеянный и не заросший сорняками. Если необходимо, оператор может маскировать некоторые участки снимка, которые не подходят для дальнейшей работы.
- Оператор проводит на экране линии вдоль 3–4 соседних рядков, как показано на рисунке 2.1.2.4 (левый верхний фрагмент поля с рисунка 2.1.2.1). Это позволяет, зная реальное расстояние между рядками, рассчитать разрешение снимка для определения площади и адаптации геометрических параметров расчёта.
- Оператор отправляет снимок на автоматический поиск и подсчёт растений вышеописанным алгоритмом.
- Оператор получает результат и может произвести следующие операции:
- оценить общий результат поиска растений (насколько корректно идентифицированы растения) и отбраковать непригодный результат;
- сохранить результат в базе данных (характеристики снимка, выявленное число растений, площадь участка с учётом маскированных частей);
- сделать пояснительные заметки.
Рисунок 2.1.2.4 — Пример проведения оператором линий вдоль рядков
Разработанный алгоритм демонстрирует достаточную точность и устойчивость на имеющихся в настоящее время серии снимков с БПЛА, однако необходимо его дальнейшее тестирование в различных условиях.