Цель .Оценить трехмерное местоположение (x, y, z) центра, ширину (больший диаметр стекла) и высоту стекла.Как и в этот рисунок .Входными данными являются два изображения, одно из которых поступает с другой камеры ( здесь и здесь ).
Настройка .Изображения поступают с двух фиксированных и откалиброванных (известных внутренних и внешних параметров) камер.
Моя попытка .
- Я сегментировал изображение с использованием FCN или DeepLab,Результаты здесь и здесь .
- Затем я получил бинарную маску класса интереса (стекло) и извлек самые левые, верхнюю, правую и нижнюю частиэтой маски.Результаты здесь и здесь .
- Я получил четыре трехмерных точки с помощью триангуляции "соответствующих точек" (верхняя часть изображения 1 с верхней частью изображения 2, наиболее правая часть изображения 1 с самой правой стороной изображения 2 и т. Д.).
- Я вычисляю размеры как: ширина = |влево - вправо | и высота = | вверх - вниз |.
Проблемы .Точки не являются действительными соответствиями, поэтому перепроецирование является неточным, а затем и неточность измерения (что приводит к ошибке до 3 см).Обратите внимание, что если я выберу вручную соответствующие пиксели на обоих изображениях, а затем триангулирую, я получу ошибку приблизительно 0,1 см.
Можете ли вы подсказать мне, как лучше (точнее) решить эту проблему?
Спасибо!
PS: я использую python и OpenCV.