dbolkensteyn / BeatTheBotChallenge

Come challenge the bot playing a moto racing phone game, see how it is made, and help to improve it!
3 stars 2 forks source link

Static detector: Prune "weak" keypoints #19

Closed dbolkensteyn closed 9 years ago

dbolkensteyn commented 9 years ago

The more training images, the more "weak" keypoints are being introduced, for example:

  1. "black" corners of the phone border can be detected as keypoints
  2. the white strips of lane separators can be detected as keypoints
  3. the road itself might yield keypoints

These weak keypoints will be easily matched on the testing data, but not won't detect the moto: This results in a huge mismatching rate (matching was 50%, mismatching 40%).

The idea to prune weak keypoints, is that, for each training moto image:

  1. match it against all full training images
  2. every error match, i.e. that went outside the expected moto area should prune the corresponding training descriptor
dbolkensteyn commented 9 years ago

Woohoo! THE RESULTS ARE IN, AND THEY ARE GREAT :)

Matches: 52: 69.3333%, Mismatches: 12: 16% avg. distance: 18.2537, Total: 75

Both an increase on the matching rate, and a significant decrease on the mismatching rate, (and their average distance is really close) awesome!

Now the algorithm is designed to take even more training image to improve the figures even more!

FYI, this were the stats before this issue was implemented:

Matches: 38, Mismatches: 29 (average distance: 48.0261), Total: 75,
Matching rate: 50.6667%, Mismatching rate: 38.6667%