какая настройка параметра может привести к правильному результату несоответствия? с использованием cv2.StereoBM в opencv - PullRequest
1 голос
/ 19 июня 2020

результат слева справа

   import numpy as np
   import cv2

   imgL = cv2.imread("C:/Users/admin/jupyter/car/challenge_pictrue/right/right2.jpg ",0)
   imgR = cv2.imread("C:/Users/admin/jupyter/car/challenge_pictrue/left/left2.jpg ",0)

   cv2.imshow('imgL', imgL)
   cv2.imshow('imgR', imgR)

   stereo = cv2.StereoBM_create(numDisparities=16, blockSize=17)
   disparity = stereo.compute(imgL, imgR)
   disparity = cv2.normalize(disparity, disparity, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, 
   dtype=cv2.CV_8U)
   cv2.imshow('disparity', disparity)
   cv2.waitKey(0)
   cv2.destroyAllWindows()

«Какой параметр я должен настроить, чтобы результат был правильным?»

1 Ответ

3 голосов
/ 19 июня 2020

Неправильный метод. BM предназначен только для простого использования внутри помещений с низким динамическим диапазоном измерения c. Для внутреннего изображения вам просто нужны отрегулированные значения, количество дисплеев и размер окна.

Для наружного изображения это более сложно. Может ты только начнешь. BM и другие глобальные методы имеют плохой результат. Либо искажено из-за переобучения, либо эффект полос из-за локальной ошибки сходства. А для метода, основанного на глубоком обучении, нет лучшего случая, варьироваться от случая к случаю / набора данных к набору данных. Работу lecun Žbontar «Стерео сопоставление путем обучения сверточной нейронной сети» я часто использовал для сравнения.

enter image description here

Try not to use too cheap/low complexity algorithms for advanced tasks. And also if you use it for actual driving action control( because I saw you other Vdispary problem), you will get yourself killed. I've tested this in various locations. It not the right way. Grab a LIDAR or other active ranging for extra safety

This is mine results using census with SGM. you can refer to this link https://docs.opencv.org/trunk/d3/d14/tutorial_ximgproc_disparity_filtering.html для воспроизведения.

enter image description here

The white dots denotes the close object. by Vdispaity, it will say there is close by object when there are none. Thus it will cause car to suddenly stop. You can refer to my thesis at NTU for how to remove them. And remember to cite them properly

введите описание изображения здесь

С уважением

Доктор Юань Шэнхай

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...