For this project, you should be able to use PID to much improve the speed and accuracy.
I made something similar at the beginning of last year: https://www.youtube.com/watch?v=58oS6WNp49I
The code is here, though it was my first project in c++ so quite unnecessarily messy.
Here is how it works:
It grabs the largest object from the vision sensor, and stores it in a variable.
It then calculates how much the center of the object is away from the center of the vision’s FOV
giving an “error” value. For example, if the FOV was 100, and the object was in the middle (x of 50), then the error would be 0. I then use that error to calculate how much the base needs to turn, using a Proportional (PID) controller. The way it’s structured is quite unnecessarily complex, but it was my first program in c++.