Курс CV черновик · 16 недель

Основы компьютерного зрения

Семестр 8. Не замена ГОСТ и коллинеарности. Семь пар с конспектом и слайдами. В АКС студент сдаёт орто в СК заказчика; здесь — алгоритм и метрику на своих снимках.

CV01

Растр, свёртка, пирамиды

CV02

Харрис, SIFT, RANSAC, H

CV03

Эпиполяра, F, E, засечка

CV04

SfM и бандл

CV05

MVS и сегментация

CV06

Облако как данные

CV07

NeRF-идея и 3DGS

Две дисциплины, один снимок. Язык пар: «в Metashape это бандл, в статье — SfM; ошибка репроекции — та же невязка засечки». Вход: линейная алгебра, Python, Ф10. Не вход: GAN и трансформеры «с нуля». Выход: пайплайн на своих снимках стенда / учебного вылета + метрика. Шаблон данных АКС: сем. 3 и сем. 4.

1. Что остаётся АКС и что забирает CV

АКСCV
ГОСТ, ТЗ, ИВП, ПВО, СК, паспорт качества, ошибка на контрольных. Сплаттинг не заменяет ортофотоплан 1:2000 Алгоритм, обучение (если дойдёте), метрика на разметке, воспроизводимость. «Красивый вид в браузере» — демо, не отчёт геодезиста

Один набор снимков на весь курс CV: сначала стенд семестра 3, потом учебный вылет семестра 4. Каждый блок добавляет слой обработки к тем же файлам. Стек: Python, OpenCV, COLMAP как эталон SfM, в конце готовый splat-viewer. Растеризатор гауссиан с нуля в первом семестре CV не пишем.

2. Объём

Ориентир под российский учебный план: 16 недель, в неделю 1 пара лекции (2 акад. ч) и 1 пара практики (2 акад. ч), плюс СРС. Итого:

ВидЧасыПримечание
Лекции3216 × 2 акад. ч; живая пара 1,5 ч часовни + 0,5 ч на вопросы — как удобно кафедре
Практика / лаб32свой код на тех же снимках
СРС44чтение глав, доводка пайплайна, отчёт
Итого108≈ 3 з.е. (36 ч = 1 з.е.). Можно сжать до 2 з.е., выкинув блок 6–7 в факультатив

Если курс — факультатив без второй пары: 16 × 2 ч лекции + 48 ч СРС ≈ 80 ч (чуть больше 2 з.е.); тогда блоки 6–7 только обзорно.

3. Входные требования

4. Календарный план

Нед.БлокЛекция (2 ч)Практика (2 ч)СРС (ориентир)Артефакт к концу блока
1–21Растр, свёртка, градиент, пирамидыФильтр на серии ЦФК6 ч · Szeliski ch. 3Свой фильтр + гистограмма; связь с K из А06
3–42Харрис, SIFT/ORB, RANSAC, гомографияСоответствия на стереопаре стенда6 чПанорама vs стерео: когда гомографии мало
5–63Эпиполяра, F/E, триангуляцияЭпиполяры на учебной паре6 ч · Hartley–Zisserman ch. 9–12Рисунок эпиполяр + RMSE триангуляции
7–94SfM, бандл, облако, PoissonCOLMAP на тех же снимках vs Metashape8 чСравнение ошибки репроекции; не «нажать Align»
10–125Stereo matching, MVS, сегментация 2DМаска на орто участка8 чЦММ vs семантика; мост к А07
13–146Mesh, нормали, идея PointNetКласс на облаке, не на JPEG5 чСегмент «здание / земля» на облаке вылета
15–167NeRF-идея, 3D Gaussian splattingГотовый splat двора vs орто5 чЭссе: что сдавать кадастру и почему не splat

Неделя 16: зачёт / экзамен CV (см. §12), не сравнение архитектур 2024 наизусть.

5. Блок 1. Изображение как массив (нед. 1–2, 8 ауд. ч)

Содержание. Изображение — функция на сетке. Дискретизация и квантование уже были на Ф05: здесь — свёртка, ядро, сепарабельность, градиенты Собеля/Шарра, гауссова пирамида, разностная пирамида. Без нейросетей. Гистограмма и клиппинг — тот же язык, что показатель K и качество кадра.

Мост в АКС. Ф05–Ф06, гистограмма А06. Студент на своей серии ЦФК показывает, какой фильтр повышает пригодность к отождествлению, а какой рисует ореолы, которые коррелятор примет за точки.

Практика. Прочитать RAW/JPEG, посчитать гистограмму, свой ядро (не только cv2.GaussianBlur), сохранить кроп 100%. Запрет: сдавать только скрин Instagram-фильтра.

Чтение.

6. Блок 2. Соответствия (нед. 3–4, 8 ауд. ч)

Содержание. Угол Харриса. Дескриптор: идея SIFT (масштаб, ориентация, 128D) vs ORB (быстрый, патентно спокойнее для кода). Сопоставление, отношение расстояний Лоу. RANSAC. Гомография плоскости. Когда сцена не плоскость — гомография врёт, нужна фундаментальная матрица (блок 3).

Мост в АКС. Отождествление на Ф07, связующие точки Metashape, коррелятор. Студент объясняет дыру модели Ф09 языком «нет повторяемой текстуры / повторные структуры / мало базиса».

Практика. Два кадра стенда: (а) панорама с узловым вращением — гомография ок; (б) базис как в стерео — гомография ломает глубину. Рисунок inliers/outliers RANSAC.

Чтение.

7. Блок 3. Геометрия двух камер (нед. 5–6, 8 ауд. ч)

Содержание. Эпиполярная геометрия. Фундаментальная матрица F (пиксели) и существенная E (калиброванные камеры). 8-точечный алгоритм (идея). Триангуляция. Нормализация Хартли. Связь с взаимным ориентированием: в фотограмметрии другие параметры, та же геометрия лучей.

Мост в АКС. Параллакс Ф07, коллинеарность Ф10, «кадр ≠ сканер». Формула Z/f = −B/p — частный случай нормальной пары; общая триангуляция — косые лучи.

Практика. На учебной стереопаре нарисовать эпиполяры через выбранную точку. Оценить качество F по расстоянию точки до эпиполяры (px). Триангуляция нескольких марок с известным базисом vs линейка сем. 3.

Чтение.

8. Блок 4. Много видов: SfM и бандл (нед. 7–9, 12 ауд. ч)

Содержание. Инкрементальный SfM: соответствие → ориентирование новой камеры → триангуляция → bundle adjustment. Шкала и калибровка. Плотное облако vs редкое. Poisson / Delaunay — обзор, не реализация с нуля. COLMAP как эталонная реализация, не «магия».

Мост в АКС. Уравнивание блока, Ф09, планирование перекрытий А04 (зачем 80% на БВС — устойчивость графа камер). Ошибка репроекции в отчёте сем. 3 — тот же residual, что в бандле.

Практика. Прогнать COLMAP на снимках стенда. Сравнить число камер и median reprojection error с отчётом Metashape. Объяснить расхождение пресетов (не баг). Не цель — обогнать Metashape по красоте сетки.

Чтение.

9. Блок 5. Глубина, MVS, сегментация 2D (нед. 10–12, 12 ауд. ч)

Содержание. Плотное стерео (блок-матчинг, идея semi-global). Multi-view stereo: согласованность фотометрии по многим видам. Семантическая сегментация 2D: идея сверточной сети как классификатор пикселя; для курса достаточно готовой модели (DeepLab / SegFormer из torchvision или ONNX) на орто, без обучения с нуля на ImageNet.

Мост в АКС. ЦММ vs ЦМР; дешифрирование А07 (если каркас сем. 5 уже открыт). Орто — это уже геометрия А12; сегментация по орто ближе к тематической карте, чем к измерению высоты.

Практика. (а) карта диспаратности на стереопаре или depth из COLMAP/OpenMVS; (б) маска «крыша / земля / растительность» на орто учебного участка. Сравнить границу здания на маске с ребром на ЦММ: где семантика врёт на тенях.

Чтение.

10. Блок 6. 3D как данные (нед. 13–14, 8 ауд. ч)

Содержание. Облако vs mesh, нормали, voxel downsample. Идея PointNet: перестановка точек, max-pooling как симметрия. Не реализовывать PointNet с нуля обязательно: достаточно прогнать готовую классификацию/сегментацию на учебном облаке или сделать правило «высота + нормаль = земля» как baseline.

Мост в АКС. Ретопология Ф09, ЦММ. Класс «опора ЛЭП / здание» на облаке, не на JPEG — иначе это снова 2D.

Практика. CloudCompare или Open3D: вырезать двор, оценить плотность точек, простой сегмент. Сравнить с маской блока 5.

Чтение.

11. Блок 7. Представления сцены: NeRF и Gaussian splatting (нед. 15–16, 8 ауд. ч)

Содержание. NeRF: луч, объём, интеграл цвета и плотности; зачем много видов и зачем калибровка камер (снова бандл). 3D Gaussian splatting: эллипсоид как примитив, splatting на экран, артефакты (floater’ы, каша на тонких конструкциях, дыры при малом перекрытии). Сравнение с mesh+текстура и с ортофотопланом.

Мост в АКС. Зачем true ortho и кадастровая метрика, если splat «красивее». Ответ: система координат, контрольные точки, однозначный масштаб, архив, ГОСТ. Сплат — визуализация и иногда плотная геометрия для графики, не замена топоплана 1:2000.

Практика. Не писать растеризатор. Прогнать готовый пайплайн (официальный код 3DGS или splat-viewer) на 20–40 кадрах двора или посмотреть чужой splat + свой орто рядом. Эссе 1–2 страницы: что отдать заказчику кадастра и где splat врёт метрически.

Чтение.

12. Экзамен / зачёт CV

Формат: 15–20 минут у доски или у ноутбука. Студент открывает свои данные и показывает три вещи из разных блоков (на выбор преподавателя):

  1. эпиполяра на стереопаре или inliers RANSAC;
  2. бандл: ошибка репроекции COLMAP vs Metashape и почему они могут различаться;
  3. сегментация или splat vs орто: где метод врёт.

Не экзамен: пересказ архитектур 2024, выучить формулы volume rendering наизусть без картинки луча, сдать чужой COLMAP log.

Оценка кода: воспроизводимость (README, seed, версии), не «у меня на машине работало».

13. Пилот на 4–6 пар (если полный семестр не открывают)

Только блоки 2–3: соответствия + эпиполяра на снимках стенда. 12–18 ауд. ч. Этого достаточно, чтобы язык «гомография / F / бандл» перестал быть магией Metashape. Блоки 4–7 не начинать без Ф10.

Не трогать, пока нет: Gaussian splatting в зачёте АКС; полный NeRF-семестр без Ф10; отдельный сайт «лабораторки Three.js» вместо закрытого лекционного пакета АКС.

14. Сводка литературы

Учебники CV

Фотограмметрия (диск АКС — мост, не «вместо Хартли»)

ПО и эталоны

Ключевые статьи (блоки 4–7)

Кафедральный список АКС (экзамен Алтынова и т. п.) этот курс не расширяет. Вопросы АКС: exam.html.