diff --git a/falcon/DSC03919.JPG b/falcon/DSC03919.JPG new file mode 100644 index 0000000..bff1860 Binary files /dev/null and b/falcon/DSC03919.JPG differ diff --git a/falcon/DSC03920.JPG b/falcon/DSC03920.JPG new file mode 100644 index 0000000..ceeb844 Binary files /dev/null and b/falcon/DSC03920.JPG differ diff --git a/falcon/DSC03921.JPG b/falcon/DSC03921.JPG new file mode 100644 index 0000000..67a3bb8 Binary files /dev/null and b/falcon/DSC03921.JPG differ diff --git a/falcon/DSC03922.JPG b/falcon/DSC03922.JPG new file mode 100644 index 0000000..3131b69 Binary files /dev/null and b/falcon/DSC03922.JPG differ diff --git a/falcon/DSC03923.JPG b/falcon/DSC03923.JPG new file mode 100644 index 0000000..a2f414d Binary files /dev/null and b/falcon/DSC03923.JPG differ diff --git a/falcon/DSC03924.JPG b/falcon/DSC03924.JPG new file mode 100644 index 0000000..f315ba1 Binary files /dev/null and b/falcon/DSC03924.JPG differ diff --git a/falcon/DSC03925.JPG b/falcon/DSC03925.JPG new file mode 100644 index 0000000..f1f7136 Binary files /dev/null and b/falcon/DSC03925.JPG differ diff --git a/falcon/DSC03926.JPG b/falcon/DSC03926.JPG new file mode 100644 index 0000000..ed2bd53 Binary files /dev/null and b/falcon/DSC03926.JPG differ diff --git a/final.ipynb b/final.ipynb new file mode 100644 index 0000000..1080a8a --- /dev/null +++ b/final.ipynb @@ -0,0 +1,125 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from sfm import *\n", + "I_1 = plt.imread('falcon/DSC03919.JPG')\n", + "I_2 = plt.imread('falcon/DSC03920.JPG')\n", + "I_3 = plt.imread('falcon/DSC03921.JPG')\n", + "\n", + "x1_12, x2_12, P1, P2 = SIFT_stuff(I_1, I_2)\n", + "x2_23, x3_23, P2_2, P3_2 = SIFT_stuff(I_2, I_3)\n", + "\n", + "P3 = np.vstack((P2, [0,0,0,1])) @ np.vstack((P3_2, [0,0,0,1]))\n", + "\n", + "P3 = P3[:3]\n", + "\n", + "shared_points = []\n", + "for a, b in zip(x2_23, x3_23):\n", + " for c, d in zip(x1_12, x2_12):\n", + " if (np.all(a == d)):\n", + " shared_points.append([c, d, b])\n", + "\n", + "shared_points = np.array(shared_points)\n", + "\n", + "X_gcp = [] \n", + "for x1, x2, x3 in shared_points:\n", + " p1 = triangulate(P1, P2, x1, x2)\n", + " x = triangulate(P1, P2, x1, x2)\n", + " x /= x[3]\n", + " X_gcp.append(x[:3])\n", + "\n", + "X_gcp = np.array(X_gcp)\n", + "\n", + "P3_opt = optimize_pose(shared_points, X_gcp, P2, P3)\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "\n", + "for a, b in zip(x1_12, x2_12):\n", + " vt = triangulate(P1, P2, a, b)\n", + " vt /= vt[3]\n", + " ax.scatter(vt[0], vt[1], vt[2], c='blue')\n", + "\n", + "for a, b in zip(x2_23, x3_23):\n", + " vt = triangulate(P2, P3_opt, a, b)\n", + " vt /= vt[3]\n", + " ax.scatter(vt[0], vt[1], vt[2], c='red')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Seems to be working correctly, but the orientation of the plot is pretty bad here.\n", + "Run project_4.py to get the same plot outside of a notebook.\n", + "\"\"\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/project_4.py b/project_4.py new file mode 100644 index 0000000..53c032e --- /dev/null +++ b/project_4.py @@ -0,0 +1,185 @@ +from math import sin, cos, degrees, radians +import matplotlib.pyplot as plt +import scipy.optimize as so +from mpl_toolkits.mplot3d import Axes3D +import numpy as np +import cv2 +import piexif + + +def main(): + I_1 = plt.imread('falcon/DSC03919.JPG') + I_2 = plt.imread('falcon/DSC03920.JPG') + I_3 = plt.imread('falcon/DSC03921.JPG') + + x1_12, x2_12, P1, P2 = SIFT_stuff(I_1, I_2) + x2_23, x3_23, P2_2, P3_2 = SIFT_stuff(I_2, I_3) + + P3 = np.vstack((P2, [0,0,0,1])) @ np.vstack((P3_2, [0,0,0,1])) + + P3 = P3[:3] + #print(P2) + #print(P3_2) + #print(P3) + + shared_points = [] + for a, b in zip(x2_23, x3_23): + for c, d in zip(x1_12, x2_12): + if (np.all(a == d)): + shared_points.append([c, d, b]) + + shared_points = np.array(shared_points) + print(shared_points.shape) + + X_gcp = [] + for x1, x2, x3 in shared_points: + p1 = triangulate(P1, P2, x1, x2) + x = triangulate(P1, P2, x1, x2) + x /= x[3] + X_gcp.append(x[:3]) + + X_gcp = np.array(X_gcp) + + + P3_opt = optimize_pose(shared_points, X_gcp, P2, P3) + + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + + for a, b in zip(x1_12, x2_12): + vt = triangulate(P1, P2, a, b) + vt /= vt[3] + ax.scatter(vt[0], vt[1], vt[2], c='blue') + + for a, b in zip(x2_23, x3_23): + vt = triangulate(P2, P3_opt, a, b) + vt /= vt[3] + ax.scatter(vt[0], vt[1], vt[2], c='red') + + plt.show() + + +def optimize_pose(shared_points, X_gcp, P2, P3): + + def residual(p): + P3 = np.reshape(p, (3,4)) + + points_23 = [] + for x1, x2, x3 in shared_points: + p2 = triangulate(P2, P3, x2, x3) + p2 /= p2[3] + points_23.append(p2[:3]) + + points_23 = np.array(points_23) + + return (X_gcp.ravel() - points_23.ravel()) + + #print(P3) + p_opt = so.least_squares(residual, P3.flatten(), method='lm')['x'] + + p_opt = np.reshape(p_opt, (3,4)) + #print(p_opt) + return (p_opt) + +def SIFT_stuff(I_1, I_2): + import matplotlib.pyplot as plt + import numpy as np + import cv2 + import piexif + + h,w,d = I_1.shape + + sift = cv2.xfeatures2d.SIFT_create() + + kp1,des1 = sift.detectAndCompute(I_1,None) + kp2,des2 = sift.detectAndCompute(I_2,None) + + bf = cv2.BFMatcher() + matches = bf.knnMatch(des1,des2,k=2) + + # Apply ratio test + good = [] + for i,(m,n) in enumerate(matches): + if m.distance < 0.7*n.distance: + good.append(m) + + u1 = [] + u2 = [] + + for m in good: + u1.append(kp1[m.queryIdx].pt) + u2.append(kp2[m.trainIdx].pt) + + u1 = np.array(u1) + u2 = np.array(u2) + + #Make homogeneous + u1 = np.c_[u1,np.ones(u1.shape[0])] + u2 = np.c_[u2,np.ones(u2.shape[0])] + + + skip = 1 + #fig = plt.figure(figsize=(12,12)) + I_new = np.zeros((h,2*w,3)).astype(int) + I_new[:,:w,:] = I_1 + I_new[:,w:,:] = I_2 + + + h,w,d = I_1.shape + exif = piexif.load('falcon/DSC03919.JPG') + f = exif['Exif'][piexif.ExifIFD.FocalLengthIn35mmFilm]/36*w + cu = w//2 + cv = h//2 + + K_cam = np.array([[f,0,cu],[0,f,cv],[0,0,1]]) + K_inv = np.linalg.inv(K_cam) + x1 = u1 @ K_inv.T + x2 = u2 @ K_inv.T + #print(x1) + + + E,inliers = cv2.findEssentialMat(x1[:,:2],x2[:,:2],np.eye(3),method=cv2.RANSAC,threshold=1e-3) + inliers = inliers.ravel().astype(bool) + #print(E,inliers) + + + skip = 10 + #fig = plt.figure(figsize=(12,12)) + I_new = np.zeros((h,2*w,3)).astype(int) + I_new[:,:w,:] = I_1 + I_new[:,w:,:] = I_2 + #plt.imshow(I_new) + #plt.scatter(u1[inliers,0][::skip],u1[inliers,1][::skip]) + #plt.scatter(u2[inliers,0][::skip]+w,u2[inliers,1][::skip]) + #[plt.plot([u1[0],u2[0]+w],[u1[1],u2[1]]) for u1,u2 in zip(u1[inliers][::skip],u2[inliers][::skip])] + #plt.show() + + n_in,R,t,_ = cv2.recoverPose(E,x1[inliers,:2],x2[inliers,:2]) + print(R,t) + + P_1 = np.array([[1,0,0,0], + [0,1,0,0], + [0,0,1,0]]) + P_2 = np.hstack((R,t)) + #print(P_1,P_2) + + P_1c = K_cam @ P_1 + P_2c = K_cam @ P_2 + #print(P_1c) + #print(P_2c) + + return (x1[inliers, :2], x2[inliers, :2], P_1, P_2) + +def triangulate(P0,P1,x1,x2): + # P0,P1: projection matrices for each of two cameras/images + # x1,x1: corresponding points in each of two images (If using P that has been scaled by K, then use camera + # coordinates, otherwise use generalized coordinates) + A = np.array([[P0[2,0]*x1[0] - P0[0,0], P0[2,1]*x1[0] - P0[0,1], P0[2,2]*x1[0] - P0[0,2], P0[2,3]*x1[0] - P0[0,3]], + [P0[2,0]*x1[1] - P0[1,0], P0[2,1]*x1[1] - P0[1,1], P0[2,2]*x1[1] - P0[1,2], P0[2,3]*x1[1] - P0[1,3]], + [P1[2,0]*x2[0] - P1[0,0], P1[2,1]*x2[0] - P1[0,1], P1[2,2]*x2[0] - P1[0,2], P1[2,3]*x2[0] - P1[0,3]], + [P1[2,0]*x2[1] - P1[1,0], P1[2,1]*x2[1] - P1[1,1], P1[2,2]*x2[1] - P1[1,2], P1[2,3]*x2[1] - P1[1,3]]]) + u,s,vt = np.linalg.svd(A) + return vt[-1] + + +main() \ No newline at end of file diff --git a/sfm.py b/sfm.py new file mode 100644 index 0000000..25081c2 --- /dev/null +++ b/sfm.py @@ -0,0 +1,121 @@ +from math import sin, cos, degrees, radians +import matplotlib.pyplot as plt +import scipy.optimize as so +from mpl_toolkits.mplot3d import Axes3D +import numpy as np +import cv2 +import piexif + +def optimize_pose(shared_points, X_gcp, P2, P3): + def residual(p): + P3 = np.reshape(p, (3,4)) + + points_23 = [] + for x1, x2, x3 in shared_points: + p2 = triangulate(P2, P3, x2, x3) + p2 /= p2[3] + points_23.append(p2[:3]) + + points_23 = np.array(points_23) + + return (X_gcp.ravel() - points_23.ravel()) + + #print(P3) + p_opt = so.least_squares(residual, P3.flatten(), method='lm')['x'] + + p_opt = np.reshape(p_opt, (3,4)) + #print(p_opt) + return (p_opt) + +def SIFT_stuff(I_1, I_2): + import matplotlib.pyplot as plt + import numpy as np + import cv2 + import piexif + + h,w,d = I_1.shape + + sift = cv2.xfeatures2d.SIFT_create() + + kp1,des1 = sift.detectAndCompute(I_1,None) + kp2,des2 = sift.detectAndCompute(I_2,None) + + bf = cv2.BFMatcher() + matches = bf.knnMatch(des1,des2,k=2) + + # Apply ratio test + good = [] + for i,(m,n) in enumerate(matches): + if m.distance < 0.70*n.distance: + good.append(m) + + u1 = [] + u2 = [] + + for m in good: + u1.append(kp1[m.queryIdx].pt) + u2.append(kp2[m.trainIdx].pt) + + u1 = np.array(u1) + u2 = np.array(u2) + + #Make homogeneous + u1 = np.c_[u1,np.ones(u1.shape[0])] + u2 = np.c_[u2,np.ones(u2.shape[0])] + + + skip = 1 + + I_new = np.zeros((h,2*w,3)).astype(int) + I_new[:,:w,:] = I_1 + I_new[:,w:,:] = I_2 + + h,w,d = I_1.shape + exif = piexif.load('falcon/DSC03919.JPG') + f = exif['Exif'][piexif.ExifIFD.FocalLengthIn35mmFilm]/36*w + cu = w//2 + cv = h//2 + + K_cam = np.array([[f,0,cu],[0,f,cv],[0,0,1]]) + K_inv = np.linalg.inv(K_cam) + x1 = u1 @ K_inv.T + x2 = u2 @ K_inv.T + #print(x1) + + + E,inliers = cv2.findEssentialMat(x1[:,:2],x2[:,:2],np.eye(3),method=cv2.RANSAC,threshold=1e-3) + inliers = inliers.ravel().astype(bool) + #print(E,inliers) + + + skip = 10 + I_new = np.zeros((h,2*w,3)).astype(int) + I_new[:,:w,:] = I_1 + I_new[:,w:,:] = I_2 + + n_in,R,t,_ = cv2.recoverPose(E,x1[inliers,:2],x2[inliers,:2]) + #print(R,t) + + P_1 = np.array([[1,0,0,0], + [0,1,0,0], + [0,0,1,0]]) + P_2 = np.hstack((R,t)) + #print(P_1,P_2) + + P_1c = K_cam @ P_1 + P_2c = K_cam @ P_2 + #print(P_1c) + #print(P_2c) + + return (x1[inliers, :2], x2[inliers, :2], P_1, P_2) + +def triangulate(P0,P1,x1,x2): + # P0,P1: projection matrices for each of two cameras/images + # x1,x1: corresponding points in each of two images (If using P that has been scaled by K, then use camera + # coordinates, otherwise use generalized coordinates) + A = np.array([[P0[2,0]*x1[0] - P0[0,0], P0[2,1]*x1[0] - P0[0,1], P0[2,2]*x1[0] - P0[0,2], P0[2,3]*x1[0] - P0[0,3]], + [P0[2,0]*x1[1] - P0[1,0], P0[2,1]*x1[1] - P0[1,1], P0[2,2]*x1[1] - P0[1,2], P0[2,3]*x1[1] - P0[1,3]], + [P1[2,0]*x2[0] - P1[0,0], P1[2,1]*x2[0] - P1[0,1], P1[2,2]*x2[0] - P1[0,2], P1[2,3]*x2[0] - P1[0,3]], + [P1[2,0]*x2[1] - P1[1,0], P1[2,1]*x2[1] - P1[1,1], P1[2,2]*x2[1] - P1[1,2], P1[2,3]*x2[1] - P1[1,3]]]) + u,s,vt = np.linalg.svd(A) + return vt[-1] \ No newline at end of file diff --git a/triangulate.py b/triangulate.py new file mode 100644 index 0000000..1704630 --- /dev/null +++ b/triangulate.py @@ -0,0 +1,162 @@ +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +import numpy as np +import cv2 +import piexif +from scipy.optimize import least_squares +import sys + +def loadImages(imageURLs): + imgs = [] + for URL in imageURLs: + imgs.append(plt.imread(URL)) + return imgs + +def getDesc(img): + sift = cv2.xfeatures2d.SIFT_create() + desc,kp = sift.detectAndCompute(img,None) + return desc,kp + +def getMatches(kp1, kp2): + + bf = cv2.BFMatcher() + matches = [] + goodMatches = [] + matches = (bf.knnMatch(kp1,kp2,k=2)) + + for j,(m,n) in enumerate(matches): + if m.distance < 0.7*n.distance: + goodMatches.append(m) + return goodMatches + +def ransacPose(I_1, I_2, good, kp1, kp2): + + u1 = [] + u2 = [] + + h,w,d = I_1.shape + + for m in good: + u1.append(kp1[m.queryIdx].pt) + u2.append(kp2[m.trainIdx].pt) + + u1 = np.array(u1) + u2 = np.array(u2) + + #Make homogeneous + u1 = np.c_[u1,np.ones(u1.shape[0])] + u2 = np.c_[u2,np.ones(u2.shape[0])] + + skip = 1 + + I_new = np.zeros((h,2*w,3)).astype(int) + I_new[:,:w,:] = I_1 + I_new[:,w:,:] = I_2 + + + h,w,d = I_1.shape + exif = piexif.load('falcon/DSC03919.JPG') + f = exif['Exif'][piexif.ExifIFD.FocalLengthIn35mmFilm]/36*w + cu = w//2 + cv = h//2 + + K_cam = np.array([[f,0,cu],[0,f,cv],[0,0,1]]) + K_inv = np.linalg.inv(K_cam) + x1 = u1 @ K_inv.T + x2 = u2 @ K_inv.T + #print(x1) + + + E,inliers = cv2.findEssentialMat(x1[:,:2],x2[:,:2],np.eye(3),method=cv2.RANSAC,threshold=1e-3) + inliers = inliers.ravel().astype(bool) + #print(E,inliers) + + + skip = 10 + + I_new = np.zeros((h,2*w,3)).astype(int) + I_new[:,:w,:] = I_1 + I_new[:,w:,:] = I_2 + + + n_in,R,t,_ = cv2.recoverPose(E,x1[inliers,:2],x2[inliers,:2]) + + P_1 = np.array([[1,0,0,0], + [0,1,0,0], + [0,0,1,0]]) + P_2 = np.hstack((R,t)) + + P_1c = K_cam @ P_1 + P_2c = K_cam @ P_2 + + return(x1,x2,P_1c,P_2c) + +def estimatePost(X12, X23,p): + + # THIS IS THE ONLY THING WE NEED TO DO. + return 0 + +def triangulate(P0,P1,x1,x2): + A = np.array([[P0[2,0]*x1[0] - P0[0,0], P0[2,1]*x1[0] - P0[0,1], P0[2,2]*x1[0] - P0[0,2], P0[2,3]*x1[0] - P0[0,3]], + [P0[2,0]*x1[1] - P0[1,0], P0[2,1]*x1[1] - P0[1,1], P0[2,2]*x1[1] - P0[1,2], P0[2,3]*x1[1] - P0[1,3]], + [P1[2,0]*x2[0] - P1[0,0], P1[2,1]*x2[0] - P1[0,1], P1[2,2]*x2[0] - P1[0,2], P1[2,3]*x2[0] - P1[0,3]], + [P1[2,0]*x2[1] - P1[1,0], P1[2,1]*x2[1] - P1[1,1], P1[2,2]*x2[1] - P1[1,2], P1[2,3]*x2[1] - P1[1,3]]]) + u,s,vt = np.linalg.svd(A) + return vt[-1] + +def affine_mult(P1, P2): + res = np.vstack((P1, [0, 0, 0, 1])) @ np.vstack((P2, [0, 0, 0, 1])) + return res[:-1] + +def plot(X): + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + for vt in X: + ax.scatter(vt[0], vt[1], zs=vt[2]) + plt.show() + + +#hardcoaded image URLs +imageURLs = ["falcon/DSC03919.JPG", "falcon/DSC03920.JPG", "falcon/DSC03921.JPG"] + +#Load images into mem +images = loadImages(imageURLs) + +#Initialize arrays +desc_array = [] +KP_array = [] +matches = [] +X12 = [] +X23 = [] + +#For all images, gather descriptors and K +for img in images: + desc, kp = getDesc(img) + desc_array.append(desc) + KP_array.append(kp) + +#For all image pairs, get matches +for i in range(len(KP_array)-1): + matches.append(getMatches(KP_array[i],KP_array[i+1])) + +#Ransac for pair 1 +x1,x2,p1,p2 = ransacPose(images[0],images[1], matches[0],desc_array[0],desc_array[1]) + +#Ransac for pair 2 +x3,x4,p3,p4 = ransacPose(images[1],images[2], matches[1],desc_array[1],desc_array[2]) + +#Pose guess +p4_e = affine_mult(p3,p4) + +for point1, point2 in zip(x1,x2): + X12.append(triangulate(p1, p2, point1, point2)) + +for point3, point4 in zip(x3,x4): + X23.append(triangulate(p3, p4, point3, point4)) + +plot(X12) +plot(X23) + + +#THIS NEEDS TO BE DONE +#p3 = estimate_pose(X12, X23, idx1, idx2, X12, P3_est)