Написать процедуру решения PnP задачи(с нуля,на основе solvePnPRansac)

50 000 руб. за проект
24 декабря 2021, 14:57 • 3 отклика • 38 просмотров
https://en.wikipedia.org/wiki/Perspective-n-Point - теоретический материал по самой проблеме

В текущей реализации PnP задача решается для нахождения позы (позиция и ориентация) объекта в системе координат (СК) камеры. Сейчас используется готовая процедура solvePnPRansac из библиотеки opencv. Так как задача некорректная, в качестве побочных эффектов мы имеем неустойчивость решения.

Задача - написать процедуру решения PnP задачи (с нуля, на основе исходников solvePnPRansac) с важным усовершенствованием - известна ориентация искомого объекта с точностью до поворота вокруг вектора g. Вектор g совпадает с одной из осей мировой СК (оси известны), поза камеры в мировой СК известна.

Использование этой ориентации должно позволить стабилизировать решение задачи.

Написать нужно на c/c++. Целевая платформа - android устройство на arm.

Написанная процедура не должна выполняться на целевой платформе дольше чем solvePnPRansac из OpenCv. Входные данные (проекции точек на изображении) зашумлены. Алгоритм должен работать при числе точек во входных данных от 3. Ответом должна быть поза объекта в СК камеры. Ответ должен быть точнее и устойчивее, чем получаемый через solvePnPRansac. Оценка ориентации процедурой должна отличаться от известной ориентации объекта только поворотом вокруг g (без колебаний ориентаций вокруг остальных осей)