vector<KeyPoint> next_keypoints;

is not an appropriate input for "next_points" in calcOpticalFlowPyrLK()
it expects vector<Point> as input, if you want to use SIFT keypoints for this, you'll have to make a loop, copying the Keypoint::ptmember into a seperate vector, and use that for optflow