From 4843ced5ded07811fdc19fc31b6754b5662784ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 1 Jan 2023 14:46:03 +0100 Subject: [PATCH 1/5] feat(preproc): progressbar --- .gitignore | 6 +++++- requirements.txt | 3 ++- src/preproc.py | 32 +++++++++++++++++++------------- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 723ef36..6ffcb12 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -.idea \ No newline at end of file +.idea + +*venv/ +*.pkl +*.avi diff --git a/requirements.txt b/requirements.txt index c41093f..4f9a42d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,5 @@ osqp==0.6.1 cvxpy==1.2.1 matplotlib==3.5.3 numpy==1.23.3 -opencv-contrib-python==4.6.0.66 \ No newline at end of file +opencv-contrib-python==4.6.0.66 +progressbar>=2.3 \ No newline at end of file diff --git a/src/preproc.py b/src/preproc.py index 18e4c90..723a289 100644 --- a/src/preproc.py +++ b/src/preproc.py @@ -2,8 +2,11 @@ import numpy as np import pickle import sys +from progressbar import ProgressBar, Percentage, Bar, ETA sift = cv2.xfeatures2d.SIFT_create(200) +pbar = ProgressBar(widgets=[Percentage(), Bar(), ETA()]) + def getAffMat(I1, I2): I1 = cv2.cvtColor(I1, cv2.COLOR_BGR2GRAY) @@ -16,17 +19,17 @@ def getAffMat(I1, I2): # Finding good matches using ratio testing bf = cv2.BFMatcher() matches = bf.knnMatch(desc1, desc2, k=2) - + good = [] - for m,n in matches: + for m, n in matches: if m.distance < 0.7*n.distance: good.append(m) pts_src = [] pts_dst = [] for i in range(len(good)): - pts_src.append([kp1[good[i].queryIdx].pt[0], kp1[good[i].queryIdx].pt[1]]) - pts_dst.append([kp2[good[i].trainIdx].pt[0], kp2[good[i].trainIdx].pt[1]]) + pts_src.append([kp1[good[i].queryIdx].pt[0], kp1[good[i].queryIdx].pt[1]]) + pts_dst.append([kp2[good[i].trainIdx].pt[0], kp2[good[i].trainIdx].pt[1]]) pts_src = np.array(pts_src).astype(np.float32) pts_dst = np.array(pts_dst).astype(np.float32) @@ -34,14 +37,17 @@ def getAffMat(I1, I2): # Computing affine matrix using the best matches return cv2.estimateAffinePartial2D(pts_src, pts_dst)[0] + v = cv2.VideoCapture(sys.argv[1]) n_frames = int(v.get(cv2.CAP_PROP_FRAME_COUNT)) +pbar.maxval = n_frames +pbar.start() # Generating the Xdata and Ydata transforms = [[], [], [], []] count = 0 while v.isOpened(): - + ret, frame = v.read() if ret == True: @@ -54,19 +60,19 @@ def getAffMat(I1, I2): transforms[2].append(np.arctan2(transMat[1][0], transMat[0][0])) transforms[3].append(np.sqrt(transMat[1][0]**2 + transMat[0][0]**2)) except: - transforms[0].append(0) - transforms[1].append(0) - transforms[2].append(0) - transforms[3].append(1) - + transforms[0].append(0) + transforms[1].append(0) + transforms[2].append(0) + transforms[3].append(1) + count += 1 prev = frame - print( str((count/n_frames)*100) + "% completed") + pbar.update(count) else: - break + break v.release() # Storing the data with open('transforms.pkl', 'wb') as f: - pickle.dump(transforms, f) \ No newline at end of file + pickle.dump(transforms, f) From e1816347c1fa8da94a676226ccfa27abf387bf2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 1 Jan 2023 15:06:12 +0100 Subject: [PATCH 2/5] gitignore --- .DS_Store | Bin 0 -> 6148 bytes .gitignore | 1 + 2 files changed, 1 insertion(+) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6685b848bc0fb582571a0ae1806e6d3ef4a66ff0 GIT binary patch literal 6148 zcmeH~%}T>S5XWcRYE!C^gF=rBUJJHbMDY@8eE}o&pi&c3G?->f)7nER~6(Ud+{JxW?=TWA2V6@pRk(+0MVXAO#l}F9CTu#g2fL;a(7W4#3<4Oy5Wc@Z1z9-FhGC*YjCl`-Nt}%vjSo>MmbSLbPT8qC_x_Wb`r}|c z$=bo_mRi?JCE=nTgx$D5?YVmwDjf%L+8^nJIO=1_-A$ZEYT8zlG|F_YZw8!-Q|Y<2 z*{s!Q*5z^QbY7RUv!g~`woY2}dBxd3I6S}VJtu=yy&91Pet+6_Ef;vh%G&k4_@gvY z=_AH0@)vnbR)7^?1vXg$yXQI8O}d%>%fA3A8EWqB*Qx0 zC5Y0}v&;=~1WlM!q)8R_iXluo_DdV*S>}c&9fY14pJQhh_J$(#?AR}LI0(;>OICmt zSXQ8Dnl7FHm+SBU%Sqf~1z3TNQb3eCey5E~vS;hc;^?fE=nv>*6qg%*rC>!L#TZLR daSdG?_DiZDJd(iktK+C`dEAXcZd;&w$Pb>fc literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore index 6ffcb12..b435414 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store .idea *venv/ From 593ab48407d06a3c2781571300a3bbfe7d15ce89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 1 Jan 2023 15:09:38 +0100 Subject: [PATCH 3/5] removed .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 6685b848bc0fb582571a0ae1806e6d3ef4a66ff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~%}T>S5XWcRYE!C^gF=rBUJJHbMDY@8eE}o&pi&c3G?->f)7nER~6(Ud+{JxW?=TWA2V6@pRk(+0MVXAO#l}F9CTu#g2fL;a(7W4#3<4Oy5Wc@Z1z9-FhGC*YjCl`-Nt}%vjSo>MmbSLbPT8qC_x_Wb`r}|c z$=bo_mRi?JCE=nTgx$D5?YVmwDjf%L+8^nJIO=1_-A$ZEYT8zlG|F_YZw8!-Q|Y<2 z*{s!Q*5z^QbY7RUv!g~`woY2}dBxd3I6S}VJtu=yy&91Pet+6_Ef;vh%G&k4_@gvY z=_AH0@)vnbR)7^?1vXg$yXQI8O}d%>%fA3A8EWqB*Qx0 zC5Y0}v&;=~1WlM!q)8R_iXluo_DdV*S>}c&9fY14pJQhh_J$(#?AR}LI0(;>OICmt zSXQ8Dnl7FHm+SBU%Sqf~1z3TNQb3eCey5E~vS;hc;^?fE=nv>*6qg%*rC>!L#TZLR daSdG?_DiZDJd(iktK+C`dEAXcZd;&w$Pb>fc From b71e17ac87037217d7f0951e8df85b9d4b068fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 1 Jan 2023 15:12:40 +0100 Subject: [PATCH 4/5] added execution permission to script.sh --- script.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 script.sh diff --git a/script.sh b/script.sh old mode 100644 new mode 100755 From eb22771eaab52edbb271dae549db7420a9e251aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 1 Jan 2023 15:16:33 +0100 Subject: [PATCH 5/5] added shebang in script.sh --- script.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/script.sh b/script.sh index 54ab420..2e92428 100755 --- a/script.sh +++ b/script.sh @@ -1,3 +1,4 @@ +#!/usr/bin/env bash echo "Preprocessing" python3 src/preproc.py $1 @@ -5,4 +6,4 @@ echo "Optimizing trajectory" python3 src/stabilize.py $2 echo "Generating output" -python3 src/generate.py $1 $2 \ No newline at end of file +python3 src/generate.py $1 $2