GuidoBartoli / sherloq

An open-source digital image forensic toolset

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

radiusMatch

under-score opened this issue · comments

Would be interested to learn why cloning.py uses radiusMatch and not the more frequently seen knnMatch (with detection of inliners)? And what about block-based detection instead of keypoint-based? Even after careful adjustment of all parameter, I usually miss 50% of all CMDFs ...

  1. I used radiusMatch because I thought it would be simpler for user to set a threshold on descriptor distance rather than the K parameter, but KNN could be added as an option (however it would not improve the detection accuracy, just the number of matching keypoints)
  2. Block-based detection is much faster, but not robust against scaling and rotation. Keypoint-based approach can deal with a much broader range of transformation
  3. probably one of the two images has been manipulated too heavily and the descriptors have not been able to become sufficiently independent of it. However, you made a good point referencing BEBLID implementation inside OpenCV, I was not aware of that, I will put it as another option inside the tool in the near future (just added to the Github Projects section), thanks.

thank you.

  1. Makes sense -- although it is always difficult to find the optimal threshold (which let me move to knnMatch).
  2. There are also scale invariant block-based detection methods (table 8 of this paper) that may be helpful in a toolbox when dealing with low edge/corner images.
  3. Maybe I am wrong but so far I see little advantage of BEBLID.