Я использую камеру PoE для оценки расстояния от объекта (фактический размер известен) до камеры с помощью фокусное расстояние.
Вот результат.
Код: Выделить всё
Camera Calibration: 1.7443757332593848
Camera Matrix:
[[1.60769726e+03 0.00000000e+00 9.52018792e+02]
[0.00000000e+00 1.60665029e+03 2.92296761e+02]
[0.00000000e+00 0.00000000e+00 1.00000000e+00]]
Distortion Parameters:
[[-0.21606616 -0.63180433 -0.00325319 0.00222699 1.98712916]]
Rotation Vectors:
(array([[ 0.07224807],
[-0.50125655],
[-0.1803044 ]]), array([[ 0.09261887],
[ 0.06385082],
[-0.00816447]]), array([[ 0.08968368],
[ 0.05769877],
[-0.01871089]]), array([[9.03344928e-02],
[1.21236810e-01],
[2.69416301e-05]]), array([[0.11183268],
[0.29111005],
[0.03007957]]), array([[0.11217145],
[0.42133195],
[0.02784451]]), array([[0.14417592],
[0.53619098],
[0.04125443]]), array([[0.16017898],
[0.67775563],
[0.04417317]]), array([[ 0.04416578],
[-0.02285857],
[-0.01705777]]), array([[ 0.09415478],
[-0.13700963],
[-0.02052559]]), array([[ 0.09660401],
[-0.27047429],
[-0.02057789]]), array([[ 0.1023921 ],
[-0.23873025],
[-0.03277892]]), array([[ 0.10150192],
[-0.35322471],
[-0.07257268]]), array([[ 0.09091438],
[-0.40158596],
[-0.10816352]]), array([[ 0.06015935],
[-0.50295236],
[-0.12777835]]))
Translation Vectors:
(array([[-0.0609731 ],
[ 0.00573651],
[ 0.39862613]]), array([[-0.1255173 ],
[-0.00786904],
[ 0.35559186]]), array([[-0.12519083],
[-0.00685334],
[ 0.353846 ]]), array([[-0.12417797],
[-0.0180632 ],
[ 0.41538341]]), array([[-0.10585784],
[-0.01815088],
[ 0.40054014]]), array([[-0.10077983],
[-0.02083386],
[ 0.40778494]]), array([[-0.1035432],
[-0.020356 ],
[ 0.4242453]]), array([[-0.10760302],
[-0.03312439],
[ 0.45943657]]), array([[-0.13239241],
[-0.00820463],
[ 0.33685892]]), array([[-0.11440255],
[-0.00992325],
[ 0.34370701]]), array([[-0.10157535],
[-0.03602992],
[ 0.32223598]]), array([[-0.12930068],
[-0.00939119],
[ 0.33570583]]), array([[-0.11115253],
[-0.0047846 ],
[ 0.30802406]]), array([[-0.14004492],
[ 0.00104571],
[ 0.33794211]]), array([[-0.05227404],
[-0.01433328],
[ 0.29691116]]))

Я тоже использовал это изображение для расчета фокусного расстояния камеры, используя 'focal_length = (actual_distance * image_object_height)/actual_object_height'. Я получил значение между 1250–1400, что сильно отличается от значения, полученного при калибровке камеры.
- Какое фокусное расстояние следует использовать для оценки расстояния между камерой и объектом (известный размер)?
- Кроме того, какие rvec и tvec из калибровки камеры мне следует использовать для оценки «мировой координаты» объекта? или мне следует использовать cv2.solvePnP для получения rvec и tvec для каждого кадра камеры прямой трансляции?
Подробнее здесь: https://stackoverflow.com/questions/787 ... alibration