Введение………………………………...................................3
Постановка задачи …………………………………………..4
Актуальность задачи ………………………………………..5
Обзор литературы……………………………………………6
Глава 1. Алгоритм нахождения размеров торцов бревен по стерео-реконструкции и нейронной сети……………………7
1.1. Построение плотной стерео-реконструкции торцов бревен……………………………………………………7
1.1.1. Захват изображений с камер………………...7
1.1.2. Калибровка камеры…………………………...8
1.1.3. Построение облака точек реконструкции…15
1.2. Применение Нейросети для определения эллипсов торцов……………………………………………...19
1.3. Алгоритм нахождения размеров торцов по нейронной сети и стерео-реконструкции……………………...25
1.4. Улучшения………………………………………….29
Глава 2. Алгоритм нахождения объема штабеля по движущемуся лесовозу……………………………………….31
2.1. Захват изображений с камер……………………….31
2.2. Построение плотной реконструкции по серии
фото……………………………………………………...32
2.3. Улучшения………………………………………….43
Результаты……………………………………………………43
Заключение…………………………………………………...44
Литература……………………………………………………45
В наши дни компьютерное или машинное зрение это одна из самых быстро развивающихся областей науки.
Машинное зрение — это научное направление в области искусственного интеллекта, в частности робототехники, и связанные с ним технологии получения изображений объектов реального мира, их обработки и использования полученных данных для решения разного рода прикладных задач без участия (полного или частичного) человека. В наши дни множество процессов на производстве и в обычной жизни, которые на данный момент выполняются людьми, можно заменить алгоритмами машинного зрения, чтобы облегчить работу людей. Машинное зрение можно использовать в следующих областях:
1. Системы управления процессами (промышленные роботы, автономные транспортные средства).
2. Системы видеонаблюдения.
3. Системы организации информации (например, для индексации баз данных изображений).
4. Системы моделирования объектов или окружающей среды (анализ медицинских изображений, топографическое моделирование).
5. Системы взаимодействия (например, устройства ввода для системы человеко-машинного взаимодействия).
6. Системы дополненной реальности.
7. Вычислительная фотография, например, для мобильных устройств с камерами.
Одним из направлений машинного зрения является стереозрение. Стереозрение — это извлечение трехмерной информации из цифровых изображений, например, полученных с помощью камеры. Оно позволяет получить представление о глубине изображения и расстоянии до объектов, составить трехмерную картину окружающего мира.
Постановка задачи
Необходимо придумать и реализовать алгоритм по определению размеров торцов бревен, который бы сочетал в себе алгоритмы стереозрения и нейронные сети. А также придумать комбинацию известных решений Structure from motion для определения объема проезжающего штабеля. Оба алгоритма будут работать как без участия человека, так и без использования эталона – объекта, размеры которого заранее известны.
Задачу определения размеров торцов бревен по стерео-реконструкции и нейронной сети можно разбить на 3 подзадачи:
1. Применение алгоритмов стереозрения к кадрам штабеля лесовоза с разных камер для получения трехмерной реконструкции штабеля.
2. Применение нейронной сети к кадрам штабеля лесовоза для получения боксов, в которых содержатся торцы бревен.
3. Применение алгоритма по нахождению реальных размеров торцов на основе работы нейронной сети и алгоритмов стереозрения.
Выходами всего алгоритма будут являться размеры большой и малой осей эллипсов для всех торцов.
Второй алгоритм по подсчету объема штабеля лесовоза, проезжающего мимо металлической рамки, использует иной подход:
1. Использование алгоритма Structure from motion.
2. Восстановление реконструкции всего штабеля лесовоза из изображений/видео движущегося лесовоза.
3. Определение размеров штабеля по плотной реконструкции методами из Opencv.
Актуальность задачи
На сегодняшний день у задач стереозрения множество различных применений, особенно часто стереозрение применяется в области робототехники, так как передвижение роботов и определение расстояния до объектов осуществляется с помощью алгоритмов стереозрения.
Если рассматривать данную конкретную задачу - определение размеров торцов бревен и определение объема штабеля, то представленное решение будет актуально на множестве производств, работающих с лесом, в частности, у которых производится приемка леса. На данный момент на таких предприятиях измерение объема леса происходит с помощью человека, а именно: человек делает замеры нескольких бревен в лесовозе, а затем визуально подсчитывает их количество. После этого, берется среднее по измеренным бревнам и умножается на примерное количество бревен. Неточность оценки в данном случае может достигать 30%. Очевидно, что алгоритмы стереозрения справятся с этой задачей и точнее и быстрее.
Также, уже существуют алгоритмы измерения диаметров торцов бревен по фотографии, но данные методы используют измерение эталонных объектов на фотографии. Эталонным объектом может выступать любой объект, размер которого известен. Измеряя длину эталона на фотографии и сравнивая ее с длиной эталона в действительности, определяется масштаб изображения. После этого, появляется возможность измерить остальные объекты на фотографии и привести их к реальному масштабу. Данный подход довольно прост в реализации и не требует высоких вычислительных затрат, однако, он не исключает участие человека, а также возникают трудности в установке эталона, например на проезжающем лесовозе.
Обзор литературы
Следует отметить популярность темы машинного зрения и нейронных сетей, благодаря этому существует большое количество источников в академической литературе.
Первые источники описывают основы машинного зрения и, в частности, стереозрения: в [1] и [2] приведена вся базовая теория по компьютерному зрению. В [3] аналогично предыдущим книгам приведена базовая информация о компьютерном зрении, но в данной книге делается акцент на применении теоретических знаний с помощью библиотеки OpenCV.
В [4], [5], [7], [11] рассматриваются особенности работы с камерами типа Kinect, а именно о принципах ее работы, специфике калибровки.
В [6], [8] подробно описываются принципы проективной геометрии, которые очень помогают в понимании того, как камера делает снимки, как ее калибровать и как получать точки системы координат камеры в мировой системе.
В [9], [10], [12] описывается история сверточных нейронных сетей с полным описанием архитектур, а именно: какие проблемы возникали в процессе развития сетей, каким образом данные проблемы решались, и какие архитектуры имеются в настоящее время. Также описана архитектура сети RetinaNet с базовой сетью ResNet, к1оторая используется в данной работе.
В [13] описывается популярный алгоритм SIFT выделения дескрипторов на изображении. В данной работе SIFT-алгоритм применяется как первый шаг пайплайна для построения разряженной реконструкции – COLMAP, в [18] же описан сам пайплайн.
В [14] описан известный алгоритм RANSAC, реализация которого применяется в множестве решений: в данном случае RANSAC используется в пайплайне COLMAP, а также в алгоритме поиска плоскости торца. В свою очередь в алгоритме RANSAC используются такие методы, как SVD разложение и Ортогональная регрессия, которые описаны в [15] и [16] соответственно.
Также для улучшения результатов алгоритма по нахождения размеров торцов была использована фильтрация, которая описана в [19], а также размытие изображение, которое можно найти в [17].
Для алгоритма нахождения объема штабеля лесовоза, была использована функция findBoundingBox, принципы работы которой описаны в [20], а также для улучшения результатов был использован алгоритм вычитания фона, который можно найти в [21].
Алгоритмы стереозрения являются очень важной темой для многих областей жизни. Нейросети также на данный момент используются во многих процессах повседневной жизни. Две данные технологии в совокупности дали решение, которое имеет значительный результат в поставленной задаче определения размеров торцов бревен, и показанное среднее отклонение результатов от действительных размеров показывает преимущество над человеческим показателем среднего отклонения. Был придуман и реализован алгоритм совмещения нейросетей и алгоритмов стереозрения. Проведена серия экспериментов, по результатам которой удалось с достаточной точностью определить размеры торцов бревен. Также, для второго алгоритма был найден подход совмещения алгоритмов Structure from motion с возможностями RGBd камеры. Были также проделаны эксперименты и получены результаты, точность которых превышает точность существующих методов на предприятиях с приемкой леса.
[1] Hartley R., Zisserman A. Multiple view geometry in computer vision. // Cambridge university press, 2003. 350c.
[2] Szeliski R. Computer vision: algorithms and applications // Springer Science & Business Media, 2010. 620c.
[3] Bradski G., Kaehler A. Learning Opencv // O’Reilly Media, 2008, 571c.
[4] Kramer J. Hacking the Kinect // Apress. 2012. 340c.
[5] Lachat E. et al. First Experiences with Kinect V2 Sensor for Close Range 3D Modelling // International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. 2015. 150 c.
[6] Gao X.S. et al. Complete solution classification for the perspective-three-point problem // IEEE Transactions on Pattern Analysis and Machine Intelligence. 2003. 650-700 c.
[7] Калибровка Kinect v2 с помощью OpenCV [Электронный ресурс]: URL: https://habr.com/ru/post/272629/ (дата обращения: 21.03.2021)
[8] Основы стереозрения [Электронный ресурс]:URL: https://habr.com/ru/post/130300/ (дата обращения: 21.03.2021)
[9] Эволюция нейросетей для распознавания изображений в Google: Inception-Resnet [Электронный ресурс]: URL: https://habr.com/ru/post/303196/ (дата обращения: 25.03.2021)
[10] Архитектура нейронной сети RetinaNet [Электронный ресурс]: URL: https://habr.com/ru/post/510560/ (дата обращения 25.03.2021)
[11] Что нас ждет в Microsoft Kinect 2.0? [Электронный ресурс]: URL: https://habr.com/ru/company/veeam/blog/196636/ (дата обращения: 15.04.2021)
[12] Inception-v4, Inception-Resnet and the Impact of Residual Connections on Learning [Электронный ресурс]: URL: http://arxiv.org/abs/1602.07261 (дата обращения: 15.04.2021)
[13] Построение SIFT дескрипторов и задача сопоставления изображений [Электронный ресурс]: URL: https://habr.com/ru/post/106302/
(дата обращения 25.04.2021)
[14] RANSAC [Электронный ресурс]: URL: https://ru.m.wikipedia.org/wiki/RANSAC/ (дата обращения 25.04.2021)
[15] Сингулярное разложение [Электронный ресурс]:URL: https://ru.m.wikipedia.org/wiki/Сингулярное_разложение/ (дата обращения 25.04.2021)
[16] Регрессия Деминга [Электронный ресурс]: URL: https://ru.m.wikipedia.org/wiki/Регрессия_Демпинга/ (дата обращения 25.04.2021)
[17] Image Blurring [Электронный ресурс]: URL: https://docs.opencv.org/master/d4/d13/tutorial_py_filtering.html (дата обращения 25.04.2021)
[18] COLMAP [Электронный ресурс]: URL: https://colmap.github.io (дата обращения 26.04.2021)
[19] Point cloud outlier removal [Электронный ресурс]: URL: https://www.open3d.org/docs/latest/tutorial/Advanced/pointcloud_outlier_removal.html (дата обращения 26.04.2021)
[20] Creating Bounding Boxes and circles for contours [Электронный ресурс]:URL: https://docs.opencv.org/3.4/da/d0c/tutorial_bounding_rects_circles.html (дата обращения 27.04.2021)
[21] Guo L., Xu D., Zhenping Q., Background Subtraction using Local SVD Binary Pattern//Computer Vision Foundation, 2016, 9c.