Лучший алгоритм стерео соответствия в opencv
Ну, у меня есть настройка стерео, где она вычисляет несоответствие пар стереоизображений, используя SGBM(полуглобальное сопоставление блоков), BM(сопоставление блоков) и алгоритм вариационного сопоставления, используя библиотеку OpenCV. Но различия не так хороши, как различия между основными истинами.
Все, что я хотел знать, это то, предоставляет ли opencv какую-либо функцию или программу, которая может вычислить несоответствие истинности. Согласно некоторым работам Дэниэла Шарштейна и Ричарда Шелиски "Таксономия и оценка плотных двухкадровых алгоритмов стерео соответствия", алгоритм "Распространение убеждений" - лучший алгоритм стерео соответствия.
Существует ли какой-либо существующий код, который вычисляет различия, используя алгоритм разреза графа или алгоритм распространения убеждений в opencv.
3 ответа
Я не думаю, что есть в OpenCV, но у вас есть альтернативы. Доступен код на C++, и его было бы нетрудно заставить взаимодействовать с OpenCV:
- На веб-сайте Мидлбери, посвященном стерео, который включает в себя вырезку графиков и распространение убеждений для стерео
- Существует также код Graphcut из Университета Западного Онтарио, который действительно хорош.
Я думаю, что алгоритм Semi Global Block Matching Хиршмюллера является одним из лучших алгоритмов стерео соответствия.
Этот алгоритм представлен в библиотеке OpenCV.
Реализация распространения убеждений в OpenCV предлагается только для графических процессоров ( CUDA и OpenCL), но не для реализаций ЦП. У них также есть постоянный космический вариант веры.
Сайт Middlebury содержит обновленную информацию об этих алгоритмах, поэтому следите за новыми записями.
Да , у TSGO нет открытого исходного кода, и его статья ("Точное согласование стерео с помощью двухэтапной минимизации энергии") тоже не бесплатна. Кто-нибудь это оценивал?
Для GraphCut существует реализация opencv, которая кажется неплохой и заслуживает попытки. http://daily-tech.hatenablog.com/entry/2016/06/25/233203