Skip to content

Instantly share code, notes, and snippets.

@davegreenwood
Last active December 2, 2022 16:01
Show Gist options
  • Save davegreenwood/4434757e97c518890c91b3d0fd9194bd to your computer and use it in GitHub Desktop.
Save davegreenwood/4434757e97c518890c91b3d0fd9194bd to your computer and use it in GitHub Desktop.
bundle adjustment of a stereo camera calibration
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"from __future__ import print_function\n",
"\n",
"import numpy as np\n",
"import cv2\n",
"import time\n",
"import urllib\n",
"\n",
"import pickle\n",
"import matplotlib.pyplot as plt\n",
"from scipy.optimize import least_squares\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# get test data\n",
"!mkdir -p data\n",
"urllib.urlretrieve('https://storage.googleapis.com/dgrnwd-colab-data/left.pkl', 'data/left.pkl');\n",
"urllib.urlretrieve('https://storage.googleapis.com/dgrnwd-colab-data/right.pkl', 'data/right.pkl');"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"FLAGS = cv2.CALIB_FIX_INTRINSIC\n",
"CRITERIA = (cv2.TERM_CRITERIA_MAX_ITER + cv2.TERM_CRITERIA_EPS, 30, 1e-6)\n",
"IMG = (720, 1280)\n",
"\n",
"def load_calib(fname):\n",
" with open(fname, 'rb') as fid:\n",
" d = pickle.load(fid)\n",
" mtx = np.array(d['mtx'], dtype='float32')\n",
" dist = np.array(d['dist'], dtype='float32')\n",
" rvecs = np.array(d['rvecs'], dtype='float32')\n",
" tvecs = np.array(d['tvecs'], dtype='float32')\n",
" objpoints = np.array(d['objpoints'], dtype='float32').squeeze()\n",
" imgpoints = np.array(d['imgpoints'], dtype='float32').squeeze()\n",
" return mtx, dist, rvecs, tvecs, objpoints, imgpoints\n",
"\n",
"\n",
"def calibrate(left, right, **kwargs):\n",
" \"\"\" make an initial stereo calibration \"\"\"\n",
" flags = kwargs.get('flags', FLAGS)\n",
" criteria = kwargs.get('criteria', CRITERIA)\n",
" img = kwargs.get('img', IMG)\n",
"\n",
" [L_m, L_d, _, _, objpoints, left_imgpoints] = left\n",
" [R_m, R_d, _, _, _, right_imgpoints] = right\n",
"\n",
" try:\n",
" [rms, _, _, _, _, R, T, E, F] = cv2.stereoCalibrate(\n",
" objpoints, left_imgpoints, right_imgpoints, L_m, L_d, R_m, R_d,\n",
" img, flags=flags, criteria=criteria)\n",
" except Exception as e:\n",
" raise e\n",
" return R, T, E, F"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def get_intrinsics(vals):\n",
" # just optimise f\n",
" f = vals[0]\n",
" m = np.eye(3)\n",
" m[0, 0] = f\n",
" m[1, 1] = f\n",
" m[0, 2] = 360\n",
" m[1, 2] = 640\n",
" d = np.array([vals[1], vals[2], 0, 0, vals[3]])\n",
" return m, d"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def getx0(left, right, R, T):\n",
" \"\"\"construct the parameters for optimisation.\"\"\"\n",
"\n",
" # convert rotation matrix to vector\n",
" r = cv2.Rodrigues(R)[0].flatten().tolist()\n",
"\n",
" # flatten translate\n",
" t = T.flatten().tolist()\n",
"\n",
" # flatten the camera intrinsicss, skipping tangential distortion\n",
" left_cam = left[0][0,0].flatten().tolist() + left[1][[0,1,4]].flatten().tolist()\n",
" right_cam = right[0][0,0].flatten().tolist() + right[1][[0,1,4]].flatten().tolist()\n",
"\n",
" # keep the points as ndarray - we will not optimise these.\n",
" obj_pts, left_pts, right_pts = left[4], left[5], right[5]\n",
"\n",
" # these are the parameters to optimise\n",
" x0 = np.array(left_cam + right_cam + r + t)\n",
" \n",
" return x0.copy(), obj_pts, left_pts, right_pts"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def compute_distance(op, left_mtx, left_dist, left_pts,\n",
" right_mtx, right_dist, right_pts, R, T):\n",
" \"\"\"compute the distance between each calibration target corner.\"\"\"\n",
" \n",
" left, left_r, left_t = cv2.solvePnP(op, left_pts, left_mtx, left_dist, 0)\n",
" right, right_r, right_t = cv2.solvePnP(op, right_pts, right_mtx, right_dist, 0)\n",
" left_r = cv2.Rodrigues(left_r)[0]\n",
" right_r = cv2.Rodrigues(right_r)[0]\n",
" left_p = left_r.dot(op.T) + left_t\n",
" right_p = right_r.dot(op.T) + right_t\n",
" right_p = R.T.dot(right_p - T)\n",
" return (np.abs(left_p - right_p) * 1000).ravel() "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def fun(parameters, obj_pts, left_pts, right_pts):\n",
" \"\"\"\n",
" Compute residuals:\n",
" `parameters` contains camera parameters and R and T.\n",
" \"\"\"\n",
" left_mtx, left_dist = get_intrinsics(parameters[:4])\n",
" right_mtx, right_dist = get_intrinsics(parameters[4:8])\n",
" R = cv2.Rodrigues(np.array(parameters[8:11]))[0]\n",
" T = np.array(parameters[11:]).reshape(-1,1)\n",
" residuals = []\n",
" for i, (op, lp, rp) in enumerate(zip(obj_pts, left_pts, right_pts)):\n",
" dist = compute_distance(op,left_mtx, left_dist, lp,\n",
" right_mtx, right_dist, rp, R, T)\n",
" residuals.append(dist)\n",
" \n",
" return np.hstack(residuals)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"left = load_calib('data/left.pkl')\n",
"right = load_calib('data/right.pkl')\n",
"\n",
"R, T, E, F = calibrate(left, right);"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Iteration Total nfev Cost Cost reduction Step norm Optimality \n",
" 0 1 6.3919e+02 2.18e+05 \n",
" 1 3 5.5325e+02 8.59e+01 1.72e+02 4.28e+04 \n",
" 2 5 5.2883e+02 2.44e+01 4.29e+01 7.49e+04 \n",
" 3 6 4.8451e+02 4.43e+01 1.07e+01 8.22e+04 \n",
" 4 9 4.7361e+02 1.09e+01 6.71e-01 4.61e+04 \n",
" 5 10 4.6098e+02 1.26e+01 1.68e-01 3.65e+04 \n",
" 6 11 4.5522e+02 5.77e+00 3.35e-01 2.42e+04 \n",
" 7 12 4.4169e+02 1.35e+01 8.39e-02 1.69e+04 \n",
" 8 16 4.4166e+02 3.76e-02 1.31e-03 2.34e+03 \n",
" 9 17 4.4164e+02 2.01e-02 3.28e-04 2.42e+02 \n",
" 10 18 4.4162e+02 1.77e-02 8.19e-05 4.45e+02 \n",
" 11 19 4.4160e+02 1.70e-02 8.19e-05 2.60e+02 \n",
" 12 20 4.4159e+02 8.56e-03 8.19e-05 2.55e+02 \n",
" 13 21 4.4157e+02 2.18e-02 8.19e-05 3.01e+02 \n",
" 14 22 4.4154e+02 3.24e-02 1.64e-04 8.46e+02 \n",
" 15 23 4.4151e+02 2.81e-02 1.64e-04 5.51e+02 \n",
" 16 24 4.4151e+02 3.16e-03 4.10e-05 2.68e+02 \n",
" 17 25 4.4151e+02 2.18e-03 1.02e-05 9.17e+02 \n",
" 18 26 4.4150e+02 1.94e-03 1.02e-05 4.54e+02 \n",
" 19 27 4.4150e+02 5.23e-05 2.56e-06 6.22e+02 \n",
" 20 28 4.4150e+02 3.92e-05 6.40e-07 6.36e+02 \n",
"`xtol` termination condition is satisfied.\n",
"Function evaluations 28, initial cost 6.3919e+02, final cost 4.4150e+02, first-order optimality 6.36e+02.\n"
]
}
],
"source": [
"t0 = time.time()\n",
"\n",
"x0, obj_pts, left_pts, right_pts = getx0(left, right, R, T)\n",
"f0 = fun(x0, obj_pts, left_pts, right_pts)\n",
"\n",
"res = least_squares(fun, x0, verbose=2, method ='trf', xtol=1e-10,\n",
" loss='soft_l1', f_scale=0.1,\n",
" args=(obj_pts, left_pts, right_pts))\n",
"t1 = time.time()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimization took 22 seconds\n",
"\n",
"old values:\n",
" [ 6.99850244e+03 9.06764120e-02 2.53121319e+01 2.88218498e-01\n",
" 5.00569287e+03 -4.67670858e-02 3.35752439e+00 6.85750484e-01\n",
" -4.65380570e-02 5.14723671e-01 1.26496282e-02 -1.44000699e+00\n",
" -1.11395691e-01 -4.94377431e-01] \n",
"old mean:\n",
" 0.9839710565441595\n",
"\n",
"new values:\n",
" [ 6.96744598e+03 6.31075318e-01 1.65790568e+01 -5.23484760e-01\n",
" 4.82171600e+03 -4.72370474e-02 4.15890706e+00 4.07354550e-01\n",
" -5.03926068e-02 5.19644054e-01 1.58520673e-02 -1.44770446e+00\n",
" -1.24349219e-01 -5.57508371e-01] \n",
"new mean:\n",
" 0.7010083394441612\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Optimization took {0:.0f} seconds\".format(t1 - t0))\n",
"old_mean = f0.mean()\n",
"new_mean = res.fun.mean()\n",
"\n",
"fig, ax = plt.subplots(1, figsize=[10,5], dpi=100)\n",
"ax.plot(f0, 'gray', label='old')\n",
"ax.plot(res.fun, color=[0.9,0.2,0.2,0.7], label='new')\n",
"ax.set_ylabel('distance (mm)')\n",
"ax.legend()\n",
"\n",
"print('\\nold values:\\n', x0, '\\nold mean:\\n', old_mean)\n",
"print('\\nnew values:\\n', res.x, '\\nnew mean:\\n', new_mean)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.15"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment