Главная страница

Реферат отчет 47 страницы, 30 рисунков, 4 таблицы, 27 источников Ключевые слова компьютерное зрение, обработка изображений, метод


Скачать 3.07 Mb.
НазваниеРеферат отчет 47 страницы, 30 рисунков, 4 таблицы, 27 источников Ключевые слова компьютерное зрение, обработка изображений, метод
Дата29.03.2023
Размер3.07 Mb.
Формат файлаpdf
Имя файлаDiplom.pdf
ТипОтчет
#1024017
страница3 из 3
1   2   3
F-меры. Укажем некоторые определения:
TP (true positive) — истино-положительное решение;
TN (true negative) — истино-отрицательное решение;
FP (false positive) — ложно-положительное решение;
FN (false negative) — ложно-отрицательное решение.
Таблица 1: Определения, применяемые при анализе качества классификации
Решение эксперта
Положительное Отрицательное
Решение системы
Положительное TP
FP
Отрицательное FN
TN
Точность классификации определяется, как:
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑇𝑃
𝑇𝑃 + 𝐹𝑃
Полнота классификации определяется, как:
𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑇𝑃
𝑇𝑃 + 𝐹𝑁
F-мера:
𝐹 = 2
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗ 𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙
Набор тестовых изображений включает:

40 изображений (знак ограничения скорости)

50 изображений (светофор)

80 изображений (знак приближения к ж/д переезду)

Тестирование проводилось на полноразмерных изображениях (Таблица
2) и изображениях с ограниченной областью интереса (Таблица 3, см. параграф 2.5).
Таблица 2: Результаты тестирования классификатора (полное изображение)
Объект
Кол-во изоб-ий
TP
FP
FN Precision Recall
F
Ограничение скорости
40 35 0
5 1
0.875 0.933
Приближение к ж/д переезду
80 80 26 0
0.755 1
0.860
Светофор
50 50 11 0
0.820 1
0.901
Таблица 3: Результаты тестирования классификатора (ограниченная область поиска)
Объект
Кол-во изоб-ий
TP
FP
FN Precision Recall
F
Ограничение скорости
40 35 0
2 1
0.926 0.962
Приближение к ж/д переезду
80 80 12 0
0.870 1
0.930
Светофор
50 50 5
0 0.909 1
0.952
Стоит отметить, что:

При тестировании анализа полноразмерного изображения присутствует высокий уровень FP для знака «Приближение к ж/д переезду».
Ограничение области интереса позволяет существенно снизить данный показатель.

F-мера в случае анализа ограниченной области превышает 90%.

Т.к. основная задача системы: диагностика расположения инфраструктуры железнодорожного регулирования и сопоставление полученных результатов с цифровой картой местности, то можно утверждать, что высокие показатели полноты определения знаков и светофора говорят о том, что метод Виолы-Джонса может успешно применяться для поиска данных объектов на изображении.
Результаты можно сравнить с аналогичными исследованиями в области автомобильного транспорта. Так в статье [20] приводятся следующие результаты: Recall = 0.9703, Prevision = 0.8625, F-мера = 0.9132. Сравнивая данные результаты с полученными методом Виолы-Джонса можно сделать вывод о том, что применение данного классификатора в задаче поиска и распознавания объектов железнодорожной инфраструктуры позволяет достичь высокого уровня точности и полноты результатов анализа.

3.2. Результаты сравнения методов выделения контура рельс
В параграфе 2.3.1 были рассмотрены различные вариации метода Кенни в применении к задаче выделения контура рельс.
Было проведено сравнение четырех методов:
1.
Оригинальная реализация фильтра Кенни с применением функции
Canny из библиотеки OpenCV: Свертка с операторами
𝐺
𝑥
и
𝐺
𝑦
; двухуровневый пороговый фильтр магнитуды градиента.
2.
Измененный метод Canny: Свертка только с операторами 𝐺
𝑥
; двухуровневый пороговый фильтр магнитуды градиента.
3.
Алгоритм, использующий свертку с оператором 𝐺
𝑥
и одноуровневый пороговый фильтр магнитуды градиента.
4.
Свертка с операторами 𝐺
𝑥
и
𝐺
𝑦
; одноуровневой пороговой фильтр магнитуды градиента и дополнительным ограничением на его направление.
Методы сравнивались в трех различных ситуациях:

Прямая колея без сильных отклонений и пересечений
Рисунок 25 Оригинальное изображение
Метод 1
Метод 2

Метод 3
Метод 4
Рисунок 26 Сравнение методов выделения границ в случае движения по прямолинейному участку

Участок маневра
Рисунок 27 Оригинальное изображение
Метод 1
Метод 2
Метод 3
Метод 4
Рисунок 28 Сравнение методов выделения границ в случае движения по участку поворота

Пересечение путей
Рисунок 29 Оригинальное изображение

Метод 1
Метод 2
Метод 3
Метод 4
Рисунок 30 Сравнение методов выделения границ в случае движения по участку пересечения
Описание результатов сравнения методов выделения контуров:
Метод 1: Можно сделать вывод, что оригинальный метод Кенни в данной задаче дает информацию о горизонтальных и диагональных границах, которые не должны быть использованы в дальнейшем анализе.
Метод 2: Сохраняет высокую способность к выделению вертикальных границ за счет применения двухуровневого фильтра из оригинальной реализации метода Кенни.
Метод 3: Результаты сравнимы с результатами метода 2, однако часть информации о границах была потеряна по причине использования одноуровневого фильтра магнитуды градиента. Это хорошо заметно в ситуации проезда по участку пересечения рельс. В то же время, данный метод позволяет лучше справляться с различными шумами и искажениями, см. участок маневра.
Метод 4: В ситуации прямолинейного движения о параллельных путях была скрыта фильтром направления градиента. Аналогично в ситуации пересечения рельс можно увидеть выделение основного направления движения. Однако, данный фильтр приводит к потере части границ в случае проезда по участку маневра.

Из вышесказанного можно сделать вывод, что методы 3 и 4 выглядят более предпочтительными для решения данной задачи. Выбор одного основного среди них зависит от начальных предположений о наличии участков маневра.
3.3. Контроль скорости обработки одного кадра видео
В рамках работы был проведен анализ скорости обработки отдельного кадра двумя методами:

Последовательное выполнение метода Виолы-Джонса и процедуры контурного анализа с выделением рельс

Параллельное вычисление метода Виолы-Джонса и процедуры контурного анализа с выделением рельс
В таблице 3 (обработка полного изображения) и таблице 4 (обработка области изображения по алгоритму из параграфа 2.5) приведены результаты измерения общего времени обработки кадра и отдельных шагов его обработки.
Код программы приведен в приложении А.
Таблица 3: Время обработки одного кадра видео (полное изображение). Время указано в миллисекундах.
Общее время обработки кадра
Поиск объекта
(Метод Виолы-
Джонса)
Выделение границ
(Оператор
Собеля)
Детекция рельс
(преобразование
Хафа)
Последовательный подход
Среднее
343.94 226.84 113.31 3.79
Стд.откл.
45.06 36.33 16.66 1.76
Параллельный подход
Среднее
240.79 240.71 161.89 5.67
Стд.откл.
41.11 41.11 30.95 6.34
Таблица 4: Время обработки одного кадра видео (ограниченная область поиска). Время указано в миллисекундах.
Общее время обработки кадра
Поиск объекта
(Метод Виолы-
Джонса)
Выделение границ
(Оператор
Собеля)
Детекция рельс
(преобразование
Хафа)
Последовательный подход
Среднее
183.18 71.81 107.10 4.27
Стд.откл.
8.85 3.93 7.50 0.29
Параллельный подход
Среднее
131.29 82.94 126.79 4.40
Стд.откл.
41.85 20.79 41.83 0.52

По результатам данного анализа можно сделать вывод о том, при параллельном подходе в обработке ограниченной области интереса достигается скорость 6-7 кадров в секунду, что является достаточным в данной задаче. Объект интереса будет присутствовать на нескольких кадрах, что увеличит шансы его обнаружения. Можно рассматривать применимость системы для обработки видео в реальном времени.

ВЫВОДЫ
Результатами данной работы являются:
1.
Построена модель процесса обработки кадра видео.
2.
Обучен классификатор Виолы-Джонса для поиска объекта интереса на изображении. Определена точность и полнота результатов анализа тестовых изображений. Показатель F-мера превысил 90%.
3.
Проведено сравнение различных модификаций алгоритма Кенни.
4.
Построен алгоритм выделения железнодорожной колеи. И определены условия его применимости.
5.
Рассмотрен способ построения плоскости земли для расчета относительных координат объектов.
6.
Предложен алгоритм определения расстояния до объекта интереса.
7.
Описан процесс уменьшения области поиска знаков и светофоров при анализе информации об относительном расположении объектов в трехмерном пространстве
8.
Скорость полной обработки одного кадра видео находится на уровне 6-7 кадров в секунду, что позволяет рассмотреть возможность применения данной системы при обработке видео в реальном времени.
В качестве задач дальнейшего исследования можно рассмотреть:
1.
Сравнение эффективности метода Виолы-Джонса и сверточных нейронных сетей в задаче детекции средств регулирования на железной дороге.
2.
Реализовать применение фильтра Калмана в задаче выделения рельс.
3.
Определить эффективность алгоритма, построенного при помощи симулятора, при работе в реальных условиях.

Список литературы
1.
Абламейко С.В., Лагуновский Д.М. Обработка изображений: технология, методы, применение. Учебное пособие. М.: Амалфея, 2000. 18-44 стр.
2.
Браммер К., Зиффлинг Г. Фильтр Калмана-Бьюси. Детерминированное наблюдение и стохастическая фильтрация. 1982: Наука. Главная редакция физико-математической литературы.
3.
Власенко C. Системы АЛС для высокоскоростного сообщения //
Автоматика связь информатика. 011. No. 3. P. 39.
4.
Иванов Ю.А. Разработка локомотивной системы технического зрения.
Диссертация на соискание учёной степени кандидата технических наук. М.:
ФГБОУ ВПО "Московский авиационный институт" (МАИ), 2014.
5.
Инструкция по сигнализации на железнодорожном транспорте
Российской Федерации. 2012.
6.
Рязанов С.Н. Транспортная безопасность объектов железнодорожной инфраструктуры // Автоматика, связь, информатика. 2011. Вып. 6. стр. 23-25.
7.
Труфанов М.И., С.В. П. Способ обнаружения препятствий перед транспортным средством с использованием бинокулярной системы технического зрения.
8.
Усилин С.А. Алгоритмическое развитие Виола-Джонсовских детекторов для решения прикладных задач распознавания изображений. М.. 2017.
9.
Ballard D.H. Generalizing the Hough transform to detect arbitrary shapes //
Pattern Recognition 13, 2, April 1981.
10.
Bileschi S.M. StreetScenes: Towards scene understanding in still images. PhD thesis. Citeseer. 2006.
11.
Canny J. Computational Approach To Edge Detection, IEEE Trans // Pattern
Analysis and Machine Intelligence, No. 8(6), 1986. pp. 679–698.
12.
Filipowicz A. Driving School II. Video Games for Autonomous Driving. 2016.
13.
Geiger A., Lenz P., Urtasun R. Are we ready for autonomous driving? the kitti vision benchmark suite. // Conference on Computer Vision and Pattern Recognition
(CVPR). 2012.
14.
Hough P. Method and means for recognizing complex patterns. U.S. Patent
3,069,654. December 18, 1962.

15.
Kalman R.E. A new approach to linear filtering and prediction problems //
Journal of Basic Engineering 82 (1), 1960. pp. 35-45.
16.
Karakose M., Yaman O., Baygin M., Murat K., Akin E. A New Computer
Vision Based Method for Rail Track Detection and Fault Diagnosis in Railways //
International Journal of Mechanical Engineering and Robotics Research, Vol. 6, No.
1, January 2017. pp. 22-27.
17.
Karla Brkie. An overview of traffic sign detection methods. Zagreb:
Department of Electronics, Microelectronics, Computer and Intelligent Systems.
Faculty of Electrical Engineering and Computing.
18.
LeCun Y., Boser B., Denker J.S., Henderson D., Howard R.E., Hubbard W.,
Jackel L.D. Backpropagation Applied to Handwritten Zip Code Recognition, Neural
Computation, 1(4):541-551, Winter 1989.
19.
Lienhart R., Kuranov A., Pisarevsky V. Empirical Analysis of Detection
Cascades of Boosted Classifiers for Rapid Object Detection With an Extended Set of
Haar-like Features, – Intel Technical Report. 2002.
20.
Nadra Ben Romdhane, Hazar Mliki, Mohamed Hammami. A new approach to traffic sign recognition through primary visual characteristics // Computer and
Information Science (ICIS) 2016 IEEE/ACIS 15th International Conference on, 2016. pp. 1-6.
21.
Puttemans S. OpenCV Tutorials. Object Detection. Cascade Classifier
Training. https://docs.opencv.org/3.3.0/dc/d88/tutorial_traincascade.html.
22.
Ruta A., Li Y., Liu X. Real-time traffic sign recognition from video by class- specific discriminative features // Pattern recognition, Vol. 43, No. 1, 2010. pp. 416–
430.
23.
Sobel I., Feldman G. A 3x3 Isotropic Gradient Operator for Image Processing
(неопубл.), 1968.
24.
Viola P., Jones M. Robust real-time object detection // International Journal of
Computer Vision, 2001.
25.
NVidia Driver Assistance. http://www.nvidia.com/object/advanced-driver- assistance-systems.html.
26.
Train Simulator http://store.steampowered.com/app/24010/Train_Simulator/
27.
Vector. https://vector.com/vi_adas_en.html.

Приложение А
Метод для обработки одного кадра видео
///
/// Process sinпle video frame.
///
private void ProcessFrame(Image initialImage)
{
DetectedObjects objects = DetectObjects(initialImage);
Image edgeImage = BlurEdges(DelectEdges(initialImage));
DetectedRails rails = DetectRails(edgeImage);
MeasureDistance(rails, objects);
Display(initialImage, objects, edgeImage, rails);
}
///
/// Process signle video frame in parallel.
///
private void ProcessFrameInParallel(Image initialImage)
{
DetectedObjects objects = null;
Image edgeImage = null;
DetectedRails rails = null;
Task task1 = Task.Factory.StartNew(() =>
{ objects = DetectObjects(initialImage);
});
Task task2 = Task.Factory.StartNew(() =>
{ edgeImage = BlurEdges(DelectEdges(initialImage)); rails = DetectRails(edgeImage);
});
Task.WhenAll(task1, task2).Wait();
MeasureDistance(rails, objects);
Display(initialImage, objects, edgeImage, rails);
}

Приложение Б
Метод для поиска объектов интереса private readonly CascadeClassifier crossCascadeClassifier = new CascadeClassifier("road-cross-cascade.xml"); private readonly CascadeClassifier lightsCascadeClassifier = new CascadeClassifier("lights-cascade.xml"); private readonly CascadeClassifier limitCascadeClassifier = new CascadeClassifier("speed-limit-cascade.xml");
///
/// Detect objects by Viola-Jones algorithm.
///
private DetectedObjects DetectObjects(Image initialImage)
{
Image gray = initialImage.Convert();
// apply ROI to detect light. Information from the previous iteration results
Memory.ApplyLightsROI(gray);
List lights = lightsCascadeClassifier
.DetectMultiScale(gray, 1.1D, 10, new Size(10, 20), new Size(150, 150))
.ToList();
// apply ROI to detect sign. Information from the previous iteration results
Memory.ApplySignROI(gray);
List limits = limitCascadeClassifier
.DetectMultiScale(gray, 1.1D, 10, new Size(10, 10), new Size(150, 150))
.ToList();
List cross = crossCascadeClassifier
.DetectMultiScale(gray, 1.1D, 10, new Size(10, 20), new Size(150, 150))
.ToList(); return new DetectedObjects
{
Lights = lights,
Limits = limits,
Cross = cross
};
}

Приложение B
Методы выделения границ
///
/// Selector of edge detection method.
///
private Image DelectEdges(Image initialImage)
{ const double thresholdLow = 150; const double thresholdHigh = 250; const int detectorMethodType = 3;
Image gray = initialImage.Convert(); switch (detectorMethodType)
{
// Canny original (two dimension, two level threshold) case 1: return Canny(gray, thresholdLow, thresholdHigh);
// Canny modified (one dimension, two level threshold) case 2: return CannyModified(gray, thresholdLow, thresholdHigh);
// Sobel operator (one dimension, one level threshold) case 3: return Sobel(gray, thresholdLow);
// Sobel operator (two dimension, edge direciton filter, one level threshold) case 4: return SobelWithDirection(gray, thresholdLow); default: return null;
}
}
///
/// Method 1: Original Canny filter implementation.
///
private Image Canny(Image gray, double thresholdLow, double thresholdHigh)
{ return gray.Canny(thresholdLow, thresholdHigh);
}
///
/// Method 2: Modified Canny filter.
///
private Image CannyModified(Image gray, double thresholdLow, double thresholdHigh)
{
//call to C++ library return cvCannyModified(gray, thresholdLow, thresholdHigh);
}
///
/// Method 3: Sobel operator (Gx).
///
private Image Sobel(Image gray, double thresholdLow)
{ return gray
.SmoothGaussian(3)
.Sobel(1, 0, 3) // calculate horizontal gradient magnitude (vertical edges)
.InRange(new Gray(thresholdLow), new Gray(255))
.Convert();
}

///
/// Method 4: Sobel operators (Gx, Gy) and direction threshold.
///
private Image SobelWithDirection(Image gray, double thresholdLow)
{ const double direction = 1.5; var verticalEdges = gray
.SmoothGaussian(3)
.Sobel(1, 0, 3) // calculate horizontal gradient magnitude (vertical edges)
.InRange(new Gray(thresholdLow), new Gray(255)); var horizontalEdges = gray
.SmoothGaussian(3)
.Sobel(1, 0, 3) // calculate vertical gradient magnitude (horizontal edges)
.InRange(new Gray(thresholdLow), new Gray(255)); var result = new Image(gray.Size); for (int i = 2; i < gray.Rows - 2; i++)
{ for (int j = 2; j < gray.Cols - 2; j++)
{ if (Math.Abs(verticalEdges[i, j].Intensity) > direction * Math.Abs(horizontalEdges[i, j].Intensity))
{ result[i, j] = white;
}
}
} return result;
}
1   2   3


написать администратору сайта