Hi,
I’m working on Exercise 4.2 and I’m a bit confused by the provided solution, specifically the prove() function that is supposed to help choose the value of N in:
good_matches = matches[:N]
From what I understand, prove() only iterates self.x over a range (e.g., 4 to 1000 with step 18), so it changes the number of matches used for homography. However, the inner loop:
for y in range(1,500):
print(self.x)
rospy.sleep(0.0001)
doesn’t seem to evaluate anything (no success metric, no inlier ratio, no stability score). Also, the sleep duration is extremely small, so it doesn’t look like it meaningfully holds each N long enough to test over “many frames” in practice.
My understanding is that for each candidate N, we should evaluate performance over multiple camera frames (e.g., by counting how often homography succeeds, or how many RANSAC inliers we get) and then select the best N based on that. But in the current code, it seems like it only cycles N values and expects the student to visually inspect the result and choose N manually.
Could you please clarify:
- What is the intended purpose of the inner loop in
prove()? - Is the goal to select N manually by watching the detection window, or should we compute a metric (e.g., success rate / inlier count) to automatically decide the “best” N?
Thanks in advance for the clarification.