3.3 KiB
3.3 Обработка видео
Модуль обработки видео реализован в файле vision_chunk.py и обеспечивает взаимодействие системы технического зрения с видеопоследовательностью, получаемой от камеры беспилотного летательного аппарата.
\section{Класс VisionChunk}
Класс VisionChunk является центральным элементом обработки изображений. Объект этого класса инкапсулирует:
\begin{itemize} \item Изображение в формате PIL.Image \item Вычисленные ключевые точки (keypoints) \item Дескрипторы признаков \item Метод детекции признаков \end{itemize}
\section{Детекция признаков}
Система поддерживает четыре метода детекции признаков:
\begin{itemize} \item \textbf{ORB} (Oriented FAST and Rotated BRIEF) — быстрый и эффективный метод \item \textbf{SIFT} (Scale-Invariant Feature Transform) — инвариантный к масштабу \item \textbf{AKAZE} — устойчив к геометрическим и фотометрическим искажениям \item \textbf{BRISK} — бинарный дескриптор с высокой повторяемостью \end{itemize}
По умолчанию используется метод ORB как наиболее сбалансированный по скорости и качеству.
\section{Предобработка изображений}
Перед детекцией признаков выполняется предобработка изображения:
\begin{enumerate} \item Конвертация в градации серого (если изображение цветное) \item Применение CLAHE (Contrast Limited Adaptive Histogram Equalization) для выравнивания контраста \item Нормализация гистограммы для устранения различий в освещении \end{enumerate}
\section{Сопоставление признаков}
Метод detect_and_match_keypoints выполняет сопоставление признаков между двумя изображениями:
\begin{enumerate} \item Вычисление ключевых точек и дескрипторов для обоих изображений \item kNN-сопоставление с использованием Lowe's ratio test \item Фильтрация по расстоянию (порог 64) \item Возврат координат сопоставленных точек \end{enumerate}
\section{Критерий Lowe's}
Критерий Lowe's ratio test позволяет отфильтровать неоднозначные сопоставления:
\begin{equation} \frac{d_1}{d_2} < 0.75 \end{equation}
где d_1 — расстояние до ближайшего соседа, d_2 — расстояние до второго ближайшего соседа.