УДК 004.852
DOI: 10.15587/1729-4061.2021.247648
Распознавание породы и оценка живого веса крупного рогатого скота на основе методов машинного обучения и компьютерного зрения
А. А. Бессонов, В. О. Лебедев, О. Г. Лебедев, Ю. Е. Мегель, Д. В. Прочухан, О. Г. Руденко
Запропонований спосіб вимірювання параметрів великої рогатої худоби з використанням нейромережевих методів обробки зображень. Для цього за- стосовуються декілька нейромережевих моделей: згорткова штучна нейронна мережа, а також багатошаровий персептрон. Перша використовується для розпізнавання корови на фотографії і ідентифікації її породи з подальшим ви- значенням розмірів її тіла за допомогою методу стереопсіса. Персептрон за- стосовується для оцінювання маси корови на основі інформації про її породу і розміри. В якості штучної нейронної мережі обрано згорткову мережу Mask RCNN (Mask Regions With CNNs).
Для уточнення інформації про фізичні параметри тварин додатково вико- ристовується 3D камера (Intel RealSense D435i). Зображення корів, знятих під різними кутами, застосовувалися для визначення параметрів їх тіл за допомо- гою фотограмметричного методу.
Розміри тіла корови визначаються з аналізу зображень тварин, зроблених синхронізованими камерами з різних сторін. Спочатку на зображенні іденти- фікується корова і визначається її порода за допомогою згорткової нейронної мережі mask-rcnn. Потім параметри тварини визначаються за допомогою методу стереопсіса. Отримані дані про породу і розміри подаються на про- гнозуючу модель, яка визначає передбачувану масу тварини.
При моделюванні в якості порід корів, що розпізнавалися, розглядалися по- роди Айршірська, Голштинська, Джерсейська, Червона степова. Використан- ня переднавченої мережі з подальшим її донавчанням за допомогою алгоритму SGD і використанням відеокарти Nvidia GeForce 2080 (США) дозволило значно прискорити процес навчання в порівнянні з навчанням на CPU.
Отримані результати підтверджують ефективність застосування за- пропонованого методу для вирішення практичних завдань.
Ключові слова: обробка зображень, згорткова мережа, багатошаровий персептрон, стереопсіс, прогнозуюча модель, навчання.
1. Введение
Анализ изображений с помощью компьютерных технологий и различные прогнозирующие приложения обычно используются в различных областях дея- тельности человека, одной из которых является сельское хозяйство. Количество фермерских хозяйств постоянно растет и их производительность увеличивает- ся, поэтому важность компьютерных технологий при автоматизации сельскохо- зяйственных процессов постепенно увеличивается. При выращивании коров,
Not a
reprint
отношениях между живым весом (ЖВ, LW), надоями молока и потреблением корма могут быть приняты в качестве критериев для организации ухода и пита- ния животных в современных условиях содержания. Эти параметры являются достаточно важными и необходимо их строго контролировать. Когда они выхо- дят за допустимые границы, то это существенно влияет на иммунную систему коров, а соответственно и на экономическую эффективность фермерского хо- зяйства. Отрицательные изменения живого веса могут указывать на проблемы со здоровьем животного, неподходящие условия окружающей среды и ошибки питания. Следовательно, такой параметр, как живой вес (ЖВ), безусловно, ва- жен для молочных коров [1]. Следует отметить, что в процесс измерения и об- служивания крупного рогатого скота все еще осуществляется вручную и обхо- дится весьма дорого.
Поэтому представляется целесообразным использовать для решения ука- занных задач методы вычислительного интеллекта, в частности, нейросетевой подход с применением нескольких нейросетевых моделей. Cверточная искус- ственная нейронная сеть применяется для распознавания коровы на фотогра- фии и идентификации ее породы с последующим определением размеров ее тела с помощью метода стереопсиса. Многослойный персептрон в свою оче- редь применяется для оценивания массы коровы на основе информации о ее породе и размерах.
Для уточнения информации о физических параметрах животного дополни- тельно используется 3D камера (Intel RealSense D435i). Следует отметить, что использование лишь 3D камер не позволяет получить хороших результатов в связи с их ограниченными возможностями. Таким образом, изображения коров, снятых под разными углами, использовались для определения параметров тел коров с помощью фотограмметрического метода. Такие параметры, как высота холки (WH), высота бедра (HH), длина тела (BL) и ширина бедра (HW) коров были получены с помощью фотограмметрии. С использованием этих парамет- ров (входные параметры WH, HH, BL, HW, а выходной параметр – LW) была разработана модель оценивания на основе ИНС.
Размеры тела коровы определяются из анализа изображений животных, сделанных синхронизированными камерами с разных сторон. Вначале на изоб- ражении идентифицируется корова и определяется ее порода с помощью свер- точной нейронной сети Mask RCNN. Затем высота холки, высота бедра, длина тела и ширина бедра коровы, определяются с помощью метода стереопсиса, который позволяет определить геометрические параметры объектов на цифро- вых изображениях и провести измерения на них. Получение цифровых изобра- жений и их фотограмметрическая обработка включают в себя несколько полно- стью определенных этапов, что позволяет генерировать трехмерные или дву- мерные цифровые модели тела животного. Затем полученные данные о породе и размерах подаются на прогнозирующую модель, которая определяет предпо- лагаемую массу животного.
В литературе [1, 2] оценивание живого веса разных животных для различ- ных целей обычно осуществляется с использованием уравнений регрессии, по- строение которых требует существенных временных затрат.
For reading
only
Для этого используют какой-либо метод определения ЖМ животных.
К числу таких методов в первую очередь следует отнести способ Труха- новского, в котором для определения живой массы взрослого скота использует- ся формула
100 ,
A B
LW K (1)
где А – обхват груди за лопатками, (рис. 1);
В – прямая длина туловища, измеренная палкой, см;
К – поправочный коэффициент (2– для скота молочных пород и 2,5– для молочно-мясных и мясных пород).
Рис. 1. Способ измерения Трухановского
Для определения приблизительного живого веса используют специальные таблицы, исходными данными для которых являются промеры животных, взя- тые при правильной постановке животного (ноги должны стоять вертикально, голова на уровне спины).
Существуют и другие методы оценки веса и размеров тела коровы, в част- ности, метод Pin Bone [3]
2
300 ,
HG BL
BW (2)
где BW – оценка живого веса скота (в фунтах); HG – высота холки (дюймы); BL – длина тела (дюймы).
Традиционный процесс измерения животного представлен на рис. 2.
Not
a reprint
Рис. 2. Традиционный процесс измерения животного
Таким образом, при определении (оценивании) ЖВ крупного рогатого ско- та возникает важная задача определения его размера. Как показано на рис. 2, эта задача усложняется при измерении животных в реальных условиях.
Поэтому представляется весьма актуальной разработка современного по- хода решения указанных задач, основанного на вычислительном интеллекте, в частности, на машинном обучении. Это должно не только уменьшить времен- ные затраты, но и автоматизировать указанные процессы.
2. Анализ литературных данных и постановка проблемы
Практические подходы к прогнозированию живой массы тела животного ис- пользуют различные методы регрессионного анализа (простую регрессию, мно- жественную регрессию, гребневую регрессию, многомерную адаптивную сплайн регрессию), а также метод главных компонентов. Более гибкими по сравнению с классическими являются методы интеллектуального анализа данных [2].
Технологии вычислительного интеллекта начали достаточно широко исполь- зоваться в задачах повышения эффективности сельскохозяйственного производ- ства. Так, в [4] решалась задача прогнозирования стоимости убоя быков на основе данных об их росте с использованием ИНС. В [5, 6] проводилось сравнение эф- фективности нейросетевых и регрессионных моделей для прогнозирования веса животных и делался вывод о значительном преимуществе первых. В [7] рассмат- ривалась задача оценивания веса животных с использованием методов цифрового анализа изображений, что явилось существенным шагом вперед.
В [8] демонстрировалась эффективность прогнозирования племенной цен- ности молочного скота с использованием искусственных нейронных сетей и нейронечетких систем.
В [9] сравнивалась эффективность искусственных нейронных сетей и дерева решений, используемых для прогнозирования живой массы, и подтверждалась эффективность нейросетей. Весьма удачным оказалось применение для решения подобных задач методов машинного зрения. Так в [10] прогнозировался вес цып- лят-бройлеров с помощью 3D-компьютерного зрения, а в [11] прогнозировалась масса коз. Искусственная нейронная сеть для прогнозирования массы тела кроли- ков успешно применялась в [12]. В [13] осуществлялся прогноз процентного со-
For reading
only
держания мяса тушек у молодых свиней с использованием моделей линейной ре- грессии и искусственных нейронных сетей. Взвешивание свиней с помощью ма- шинного зрения и искусственных нейронных сетей рассматривалось в [14], а в [15] была получена трехмерная форма живых свиней с использованием стерео фотограмметрии. Работа [16] была посвящена цифровому анализу изображений для оценки живого веса свиней, а [17] – оцениванию зрелого живого веса с ис- пользованием некоторых измерений тела у карских овец.
В [18] рассматривалась классификация и прогнозирование уровня удоя крупного рогатого скота голштино-фризской породы с использованием пара- метрических и непараметрических статистических моделей классификации.
Сравнение наиболее распространенной стратегии дискриминантного анализа с нейросетевым подходом показало, что ИНС является более эффективной в плане точности прогноза ожидаемого уровня надоев.
Однако всем этим работам [1–18] присущ серьезный недостаток – измерение размеров животных осуществлялось либо в реальных условиях традиционными методами, либо с использованием анализа цифровых изображений. Это объясня- ется тем, что традиционные методы, использующие непосредственное наблюде- ние животных и измерение их параметров, зачастую негативно влияют на поведе- ние животных. Кроме того, время получения прогноза существенно увеличивает- ся, так как замер всех животных осуществляется последовательно. Анализ же цифровых изображений требует наличия высококачественных изображений.
Более эффективным оказался подход, в котором для оценивания веса жи- вотных в зависимости от фотограмметрических размеров их тела использова- лась ИНС [19]. Фотограмметрия – это технология для получения количествен- ной и качественной информации о природных и промышленных особенностях исследуемого объекта с помощью фотографических или нефотографических изображений [20]. Обнаружение цифровых изображений и фотограмметриче- ская их обработка позволяют в качестве конечного продукта создавать трех- мерные или двумерные цифровые модели тела. Основным недостатком данного метода является требование высококачественных изображений.
Измерять точки на изображениях значительно проще, чем в реальных условиях. Таким образом, можно получить множество точек за очень короткое время и построить лучшую трехмерную модель объекта [21]. Сравнение фото- грамметрического и классического методов расчета объема показало, что фото- грамметрический метод более эффективен в смысле точности и стоимости по- лучаемого результата. Кроме того, применение данного метода существенно экономит время исследований [22]. Однако, как уже отмечалось, использован- ный в [21, 22] подход требует наличия качественных изображений.
Особо следует отметить, что практически во всех указанных работах [1–19]
рассматривалась только одна порода животных и использовались, как уже отме- чалось, традиционные методы измерения их параметров. Задача значительно усложняется, если рассматриваемое стадо содержит животных различных пород, отличающихся своими параметрами и весом.
Not
a reprint
3. Цель и задачи исследования
Целью работы является разработка способа измерения параметров крупно- го рогатого скота с использованием нейросетевых алгоритмов обработки изоб- ражений и структуры интеллектуальной системы распознавания породы и оценки ЖВ крупного рогатого скота. Это даст возможность не только ускорить процесс измерения параметров животных и улучшить результаты вследствие устранения субъективности, но и автоматизировать управление фермерским хозяйством в целом.
Для достижения указанной цели были поставлены следующие задачи:
– разработать алгоритм определения размеров крупного рогатого скота на основе метода стереопсиса;
– разработать нейросетевую систему обнаружения животного и распозна- вания его породы;
– разработать структуру интеллектуальной системы распознавания породы и оценки ЖВ крупного рогатого скота;
– провести моделирование процесса распознавания различных пород коров и оценки их линейных размеров с последующим определением массы с помо- щью нейросетевой прогнозирующей модели.
4. Материалы и методы исследования
При проведении исследований предполагалось, что:
1. Одновременно распознаются различные породы коров (Айрширская, Голштинская, Джерсейская, Красная степная).
2. Для определения размеров крупного рогатого скота используется метод стереопсиса, состоящий в следующем.
Пусть имеются две камеры, заданные своими матрицами P и P' в некото- рой системе координат. В таком случае говорят, что имеется пара откалибро- ванных камер. Если центры камер не совпадают, то эту пару камер можно ис- пользовать для определения трехмерных координат наблюдаемых точек.
Зачастую, система координат выбирается так, что матрицы камер имеют вид P=K[I|0], P'=K'[R'|t'] (это всегда можно сделать, если выбрать начало коор- динат, совпадающее с центром первой камеры, и направить ось Z вдоль ее оп- тической оси).
Рассмотрим точку P в реальном трехмерном пространстве, проецируемую одновременно в две точки изображения p и p' через два центра проецирования камеры (C и C'). Точки P, p, p', C и C' лежат в плоскости, называемой эпиполяр- ной плоскостью. Эпиполярная плоскость, пересекает каждое изображение, об- разуя линии пересечения. Эти линии (l и l') соответствуют проекции лучей че- рез p и P, а также p' и P, и называются эпиполярными линиями. Эта проекция описывается эпиполярной геометрией [23] (рис. 3).
Эпиполярную геометрию используют как для поиска стереопар, так и для проверки того, что пара точек может быть стереопарой (т. е. проекцией некото- рой точки пространства).
For reading
only
Рис. 3. Эпиполярная геометрия
Эпиполярная геометрия имеет очень простую запись в координатах. Пусть имеется пара откалиброванных камер, и пусть p – однородные координаты точ- ки на изображении одной камеры, а p' – на изображении второй. Существует такая матрица F размера 3×3, что пара точек p, p' является стереопарой тогда и только тогда, когда:
(p')TF p=0. (3)
Матрица F называется фундаментальной матрицей (fundamental matrix). Ее ранг равен 2, она определена с точностью до ненулевого множителя и зависит только от матриц исходных камер P и P'.
В случае, когда матрицы камер имеют вид P=K[I|0], P'=K'[R|t] фундамен- тальная матрица может быть вычислена по формуле:
1 . T T T x
F K RK KR t (4)
где для вектора e обозначение [ ]e x вычисляется как
0
[ ] 0 .
0
z y
x z x
y x
e e
e e e
e e
(5)
Not
a reprint
В [24] рассмотрены различные алгоритмы вычисления F по набору точек.
В частности рассматриваются алгоритмы градиентного спуска, метода Ньютона и Левенберга-Марквардта.
С помощью фундаментальной матрицы вычисляются уравнения эпиполяр- ных линий. Для точки x, вектор, задающий эпиполярную линию, будет иметь вид l'=F p, а уравнение самой эпиполярной линии: l p T 0. Аналогично для точки p', вектор, задающий эпиполярную линию, будет иметь вид l=FT p'.
Полученные эпиполярные линии используются для построения карт глу- бины. Карта глубины (depth map) – это изображение, на котором для каждого пикселя, вместо цвета, храниться его расстояние до камеры. С этой целью для каждой точки на одном изображении выполняется поиск парной ей точки на другом изображении. А по паре соответствующих точек можно выполнить три- ангуляцию и определить координаты их прообраза в трехмерном пространстве.
Зная трехмерные координаты прообраза, глубина вычисляется, как расстояние до плоскости камеры [23].
3. Для реализации системы распознавания используется сверточная ИНС.
Сверточная ИНС (Convolution Neural Network, CNN) [25, 26] использует технологию распознавания образов. Ее основу составляют не жесткие алгорит- мы, заложенные разработчиками, а обучение системы, основанное на последо- вательной идентификации огромного количества изображений.
Впоследствии на основе сверточных нейронних сетей (СНС) были построены сети R-CNN (Regions With CNNs) для применения CNN к задаче обнаружения всех объектов указанных классов и определения охватывающей рамки для каждо- го из них (object detection). R-CNN создает ограничивающие рамки для каждого объекта на изображении или предложения регионов, используя процесс выбороч- ного поиска. Fast R-CNN, увеличившая производительность R-CNN, осуществляет классификацию объектов каждого региона вместе с более жесткими ограничива- ющими рамками. Следующая сеть Faster R-CNN улучшила механизм генерации используемых в ней регионов-кандидатов за счет вычисления регионов не по из- начальному изображению, а по карте признаков, полученных из CNN. Для этого был добавлен модуль под названием Region Proposal Network (RPN).
Наконец, сеть Mask R-CNN развивает архитектуру Faster R-CNN [27, 28]
путём добавления ещё одной ветки, которая предсказывает положение маски, покрывающей найденный объект, и, таким образом решает уже задачу instance segmentation. Подробное описание сети приведено в [29], а способ расширения функциональности сети Faster R-CNN за счет использования дополнительного модуля сегментации образа показан на рис. 4. При получении изображения сеть выдает объекты (bbox), ограничивающие рамки, классы (class) и маски (mask).
Mask R-CNN заменяет слой пула RoI на RoIAlign в сетевой структуре Faster R- CNN. Этот метод устраняет грубое квантование RoIPool и точно выравнивает извлеченные объекты с входными данными.
Следует отметить, что Mask R-CNN является наиболее быстродействую- щей сетью на данный момент. Кроме того, сеть с архитектурой Mask R-CNN позволяет выделять на фотографиях контуры («маски») экземпляров разных
For reading
only
объектов, даже если таких экземпляров несколько, они имеют различный раз- мер и частично перекрываются. Это и явилось причиной выбора данной сети для решения поставленной задачи.
Рис. 4. Расширение функциональности сети Faster R-CNN Сеть Mask-RCNN обладает следующими преимуществами [28, 29]:
– одна из лучших ИНС по распознаванию и классификации изображений;
– по сравнению с полносвязной ИНС имеет гораздо меньшее количество настраиваемых весов;
– возможное распараллеливание вычислений, а, следовательно, возможность реализации алгоритмов работы и обучения сети на графических процессорах;
– относительная устойчивость к повороту и сдвигу распознаваемого изоб- ражения;
– обучение при помощи классического алгоритма обратного распростра- нения ошибки.
Архитектура сверточной нейронной сети.
Первоначально структура сверточной нейронной сети создавалась с уче- том особенностей строения некоторых частей человеческого мозга, отвечаю- щих за зрение. В основу разработки таких сетей заложено три механизма:
– локальное восприятие;
– формирование слоев в виде набора карт признаков (разделяемые веса);
– субдискретизация (подвыборка).
В соответствии с этими механизмами для построения свёрточной нейрон- ной сети применяется три основных слоя: свёртки, пулинга (иначе подвыборки или субдискретизации), полносвязный слой.
Слой свертки (конволюции). Формула свертки для l-го (l=1,…,L) слоя сети, имеющая вид [25]
1
( )( ) ,
l l
ij ab is a js b
b
l a
x wl y b
(6)
Not
a reprint
отражает движение ядра wj по входному для этого слоя изображению или карте признаков yl-1. Здесь yijl1 f x
ijl1 – изображение после (l-1)-го слоя; ( )f – ис- пользуемая функция активации; bl – смещение. Индексы i, j, a, b – индексы элементов в матрицах, s – величина шага свертки.Как видно из (3), операции свертки (конволюции) осуществляются для каждого элемента i, j матрицы изображений xl.
Свертка сохраняет пространственные отношения между пикселями.
За каждым сверточным слоем следует слой субдискретизации (подвыбор- ки), или вычислительный слой, служащий для уменьшения размерности изоб- ражения путём локального усреднения значений выходов нейронов.
Слой подвыборки (пулинга, MAX-pooling). Подвыборочный слой умень- шает масштаб плоскостей путём локального усреднения значений выходов нейронов. Таким образом, достигается иерархическая организация. Последую- щие слои извлекают более общие характеристики, менее зависящие от искаже- ний изображения.
Слой пулинга описывается выражением
( 1 )( )
,
l l l
ij ab is a j
l l
s b
a b
x down w y b (7)
где down
– функция пулинга. Эта функция суммирует блоки входного изоб- ражения, таким образом уменьшая размерность выходного изображения слоя.При этом любая выходная карта задается двумя параметрами смещения: муль- типликативным βl и аддитивным bl.
Отличие слоя подвыборки от слоя свертки состоит в том, что в последнем области соседних нейронов перекрываются, чего не происходит в слое субдис- кретизации.
Слой пулинга работает независимо от среза глубины входных данных и масштабирует объем пространственно, используя функцию максимума.
В архитектуре сверточной сети принято считать, что наличие признака важнее информации о его расположении. Поэтому из нескольких соседних нейронов в карте признаков выбирается максимальный и его значение считает- ся одним нейроном в карте признаков меньшей размерности.
В дополнение к максимальной подвыборке, слои пулинга могут выполнять другие функции, например, усредняющую подвыборку или даже L2 - нормиро- ванную подвыборку.
Нелинейный слой активации. На данных слоях внутри сети ко всем значе- ниям входа применяется нелинейная функция активации f( ), и результат по- дается на выход. Таким образом, слой активации не меняет размер входа.
Обычно вследствие существенных положительных свойств для скрытых слоев в качестве функция активации ( )f используется ReLu (ReLU(x)=max (0;
x)) и различные ее модификации (Leaky ReLU, Parametric ReLU, Randomized
For reading
only
ReLU) [30]. В полносвязном слое применяется функция SoftMax (при решении задач классификации)
1
1
xLj
NL xiLL j
i
f e e
или линейная (для регрессионных задач). В нашей задаче использовалась функ- ция SoftMax.
Дропаут слой. Для избежания переобучения сети используются различные методы регуляризации.
Dropout является простым и эффективным методом регуляризации и за- ключается в том, что в процессе обучения сети из её совокупной топологии многократно случайным образом выделяется подсеть. Таким образом, часть нейронов выключается из процесса, и очередное обновление весов происходит только в рамках выделенной подсети. Таким образом, веса меняются только у оставшихся нейронов. Каждый нейрон исключается из совокупной сети с неко- торой вероятностью, которая называется коэффициентом dropout.
Данный слой уменьшает время одной эпохи обучения в связи с меньшим числом оптимизируемых параметров, а также позволяет лучше бороться с пе- реобучением сети по сравнению со стандартными методами регуляризации.
Нормализующий слой. На данном слое происходит стандартная нормализа- ция входов (вычитается выборочное среднее их значений, и результат делится на корень выборочной дисперсии). Выборочные величины вычисляются с уче- том значений на входах данного слоя на предыдущих итерациях обучения.
Данный подход позволяет увеличить скорость обучения сети и улучшить ито- говый результат.
Полносвязный слой. Данный слой представляет собой обычный много- слойный персептрон, целью которого является классификация. Он моделирует сложную нелинейную функцию, оптимизация которой улучшает качество рас- познавания.
Нейроны каждой карты предыдущего подвыборочного слоя связаны с од- ним нейроном скрытого слоя. Таким образом, число нейронов скрытого слоя равно числу карт подвыборочного слоя.
Как и в обычных нейросетях, в полносвязном слое нейроны соединены со всеми активациями в предыдущем слое. Их активации могут быть вычислены посредством умножения матриц и применения смещения.
Различия между полносвязными и свёрточными слоями состоят в том, что нейроны слоя свёртки:
1) соединены только с локальной областью на входе;
2) могут совместно использовать параметры.
Обучение ИНС – итеративный процесс. На каждой итерации вычисляются сетевые выходы для одного (или больше) образца в наборе обучения, и коррек- тируются сетевые веса с целью уменьшения ошибки между фактическим сете-
Not
a reprint
вым выходом
yi pL,
i1, ..., NL
и целевым выходом для данного образца di,p. Поэтому обучение сводится к минимизации некоторого функционала.На практике в качестве критерия функции ошибки используются квадра- тичная функция, перекрестная энтропия либо некоторый комбинированный функционал.
Многослойный персептрон. Нейронная сеть обратного распространения (BPNN) – это многослойная нейронная сеть с прямой связью, в которой исполь- зуется контролируемый алгоритм обучения, известный как алгоритм обратного распространения ошибок. Ошибки, накопленные на выходном слое, распро- страняются обратно в сеть для корректировки весов.
Обучение СНС аналогично обучению ИНС прямого распространения и со- стоит в коррекции ее весовых параметров на основе минимизации некоторой выбранной функции потерь, в качестве которых используют обычно квадра- тичную функцию или перекрестную (кросс) энтропию.
Для обучения сверточных нейронных сетей может применяться как стан- дартный метод обратного распространения ошибки, так и его различные моди- фикации. Достаточно подробно вывод алгоритма обратного распространения для обучения CNN, рассмотрен в [31]. В основе данного метода лежит алгоритм стохастического градиентного спуска SGD (Stochastic Gradient Descent).
На практике обычно используется наиболее распространенный алгоритм обучения нейронных сетей, основанный на методе градиентного спуска (метод обратного распространения ошибки) и его модификации: SGD, Adam, AdaGrad, AdaDelta и др. [32–34].
Для обучения многослойного персептрона также используются указанные алгоритмы.
4. Реализация нейронной сети Mask R-CNN [34] основана на популярной открытой платформе для машинного обучения TensorFlow. Значительное уско- рение работы сети осуществлялось за счет использования графической карты NVIDIA GeForce RTX 2080. Ее использование требует установки дополнитель- ной библиотеки примитивов с ускорением на GPU – сuDNN.
5. Для увеличения размера обучающей и тестовой выборок использовался метод аугментации [36]
6. Для уточнения информации о физических параметрах животного ис- пользуются две синхронизированные 3D камеры (Intel RealSense D435i). Для их эффективной работы необходимо установить идущие в комплекте драйверы и сопутствующее программное обеспечение.
5. Результаты исследования эффективности нейросетевого метода распознавания породы и оценки живого веса животных
5. 1. Разработка алгоритма определения размеров крупного рогатого скота
Разработан алгоритм определения размеров крупного рогатого скота на осно- ве метода стереопсиса и эпиполярной геометрии, включающий следующие шаги.
1. Обнаружение коровы с помощью сверточной ИНС.
For reading
only
2. С использованием пары откалиброванных камер определяются трехмер- ные координаты наблюдаемых точек объекта.
3. По формуле (4) вычисляется фундаментальная матрица 4. Вычисляются уравнения эпиполярных линий.
5. Строятся карты глубины, по которым затем определяются размеры жи- вотных.
5. 2. Разработка нейросетевой системы обнаружения животного и рас- познавания его породы
Разработанная нейросетевая система обнаружения животного и распозна- вания его породы использует предобученную на выборке COCO (Common Objects in Context) сеть MRCNN (Mask Regions With CNNs), исходный код ко- торой свободно доступен [34].
Данная сеть является наиболее быстродействующей сетью на данный мо- мент. Кроме того, сеть с архитектурой Mask R-CNN позволяет выделять на фото- графиях контуры («маски») экземпляров разных объектов, даже если таких экзем- пляров несколько, они имеют различный размер и частично перекрываются. Это и явилось причиной выбора данной сети для решения поставленной задачи.
Детализированная архитектура Mask R-CNN приведена на рис. 5. Следует отметить, что в качестве CNN (backbone) в Mask R-CNN была использована сеть ResNet-101 (101 означает количество слоев).
Рис. 5. Детализированная архитектура сети Mask R-CNN
Для получения матрицы (“карты”) признаков всего изображения применя- ется ядро небольшого размера (3×3 и 5×5 пикселей), последовательно сдвигае- мое по горизонтали и вертикали.
Not
a reprint
Использование процедуры RoIAlign из исходного изображения размером 128×128 пикселей позволяет получить карту признаков размером 25×25.
Для вычисления значений признаков используется билинейная интерполя- ция по четырём ближайшим целочисленным точкам
Процедура детектирования объектов сетью R-CNN содержит следующие шаги:
– выделение регионов-кандидатов при помощи Selective Search;
– преобразование региона в размер, принимаемый CNN;
– получение при помощи cnn 4096-размерного вектора признаков;
– проведение N бинарных классификаций каждого вектора признаков при помощи N линейных SVM;
– линейная регрессия параметров рамки региона для более точного охвата объекта.
В сети Fast R-CNN процесс ускорялся за счёт пропуска через CNN не каж- дого из 2000 регионов-кандидатов по отдельности, а всего изображения цели- ком. Предложенные регионы потом накладываются на полученную общую кар- ту признаков. Преобразование признаков, попавших в разные регионы, к фик- сированному размеру, т. е. вычисление матрицы признаков для региона- кандидата производилось при помощи процедуры RoIPooling. Окно региона шириной w и высотой h делилось на сетку, имеющую HW ячеек размером h/H w/W. По каждой такой ячейке проводился Max Pooling для выбора только одно- го значения, давая результирующую матрицу признаков HW.
5. 3. Разработка структуры интеллектуальной системы распознавания породы и оценки живого веса
Структура разработанной интеллектуальной системы приведена на рис. 6.
Как видно из рис. 6, разработанная интеллектуальная система содержит синхронизированные 3D камеры и нейросетевые модули (Mask R-CNN и МП).
Изображение животного, сделанного одновременно двумя камерами, находящимися друг от друга на некотором расстоянии, подаются на модуль на первый модуль (Mask R-CNN), который служит для идентификации породы и определения позиции (координат) животного. Позиция животного уточняется с помощью информации с 3D камеры в модуле эпиполярной геометрии, который вычисляет размеры животного. Информация о размерах животного и его поро- ды передается во второй (МП) модуль для оценки массы животного и других параметров, необходимых для составления правильного рациона.
For reading
only
Рис. 6. Структура разработанной интеллектуальной системы распознавания по- роды и оценки живого веса крупного рогатого скота
5. 4. Моделирование процесса распознавания различных пород коров и оценки их линейных размеров
Проведено моделирование процесса распознавания различных пород коров и оценки их линейных размеров с последующим определением массы с помо- щью нейросетевой прогнозирующей модели.
Примеры правильного и ошибочного распознавания коров с помощью предобученной сети приведены на рис. 7, 8. В этом случае использовались те- стовые изображения в идеальных условиях. Следует отметить, что предобучен- ная сеть не способна распознавать породу коровы, она лишь может отделить класс коров от других классов объектов. В связи с этим, для применения предо- бученной сети в реальной системе, способной распознать породу коровы и оце- нить ее живой вес сеть была дообучена на 250 изображениях. Для этого исполь- зовались представители каждой из рассматриваемых пород коров (Айрширская, Голштинская, Джерсейская, Красная степная). Для увеличения размера обуча- ющей и тестовой выборок использовался метод аугментации [35], позволивший получить дополнительные изображения из исходных. Сеть дообучалась в тече- нии 5000 эпох с помощью алгоритма SGD [32]. Для обучения сети использова- лась видеокарта Nvidia GeForce 2080, что позволило многократно ускорить процесс обучения по сравнению с обучением на CPU. Ошибки обучения приве- дены на рис. 9 (а – ошибка классификации, б – ошибка локализации, в – общая ошибка, г – ошибка регуляризации). Результаты распознавания и оценки разме- ров и массы коров приведены в табл. 1. Пример правильного распознавания ко- ров в реальных условиях обитания представлены на рис. 10. Следует отметить, что, несмотря на достаточно объемную обучающую выборку и достигнутую
Not
a reprint
высокую точность распознавания (92 %), в результате работы сети возникают ложные распознавания. Пример такого распознавания показан на рис. 11.
Полученные маски распознанных объектов использовались для определе- ния их линейных размеров с помощью метода триангуляции (эпиполярная гео- метрия). В качестве дополнительной информации, позволяющей скорректиро- вать полученные размеры, использовались изображения с 3D камеры, позволя- ющие оценить расстояние до распознанного объекта. Пример такого изображе- ния представлен на рис. 12.
a б
Рис. 7. Примеры правильного распознавания тестовых изображений: a – одного животного; б – нескольких
a б
Рис. 8. Примеры ложных распознаваний тестовых изображений: а – одно жи- вотное одновременно распознано как корова и жираф; б – одно животное рас-
познано одновременно как корова и лошадь
a б
For reading
only
в г
Рис. 9. Ошибки обучения: а – ошибка классификации; б – ошибка локализации;
в – общая ошибка; г – ошибка регуляризации
Рис.10. Пример правильного распознавания в реальных условиях
a б
Рис. 11. Примеры ложных распознаваний в реальных условиях: а – ложная де- текция; б – несколько животных распознано как одно
Рис. 12. Пример изображения, полученный с помощью 3D камеры
Not
a reprint
Таблица 1
Результаты, полученные с использованием предложенного метода
Порода Айрш
ирская
Голшти нская
Джерсе йская
Красная степная Средние вычисленные размеры (косая длина тулови-
ща/обхват груди) (см)
149/17
1 155/180 132/160 157/189
Оценка массы (кг) 610 745 422 490
Стандартное отклонение полученных размеров 1.3 1.6 2.4 1.8 Средняя абсолютная ошибка (cm) 0.9 1.2 2.5 1.5 Стандартное отклонение абсолютной ошибки (cm) 0.5 1.7 4.5 3.8 Средняя относительная ошибка 0.1 0.12 0.17 0.15 Стандартное отклонение относительной ошибки 0.11 0.15 0.09 0.09 Количество правильных распознаваний 461 418 424 439 Количество ложных распознаваний 39 82 76 61
Точность 0.92 0.84 0.85 0.88
Отношение ложных распознаваний к правильным 0.09 0.2 0.18 0.14
Как видно из табл. 1, процент правильного распознавания пород коров в реальных условиях обитания достаточно высок и составляет 84–92 %. Однако несмотря на достаточно объемную обучающую выборку и достигнутую высо- кую точность распознавания, в результате работы сети возникают и ложные распознавания.
6. Обсуждение результатов исследования нейросетевого метода распо- знавания пород коров и оценки их размеров
В предложенном методе для распознавания изображений в качестве ИНС была выбрана сверточная нейронная сеть Mask-RCNN. Обучение данной сети проводилось по алгоритму обратного распространения ошибки [31].
Разработанный алгоритм определения размеров крупного рогатого скота с использованием метода стереопсиса позволяет изучать коров как в загонах, так и на пастбищах, без вмешательства в их обычное поведение. Реализация алго- ритма осуществляется на основе информации, полученной с помощью сверточ- ной ИНС Mask R-CNN, описываемой соотношениями (6), (7) и представленная на рис. 4. Данная сеть на основе анализа изображений от пары откалиброван- ных камер решает задачу распознавания породы. Размеры животных определя- ются по получаемым картам глубины без непосредственного участия человека.
В качестве распознаваемых пород коров рассматривались породы Айр- ширская, Голштинская, Джерсейская, Красная степная.
Использование предобученной сети с последующим ее дообучением с помо- щью алгоритма SGD и применением видеокарты Nvidia GeForce 2080 позволило многократно ускорить процесс обучения по сравнению с обучением на CPU. Для увеличения размера обучающей и тестовой выборок использовался метод аугмен- тации [35]. Все это обеспечило существенное сокращение времени получения прогноза, так как замер животных осуществляется параллельно. Дополнительное уменьшение времени прогноза обеспечивается возможностью распараллеливания