Si encuentras algún error en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes subir el código al trabajo final.
Solución:
Aquí hay una comparación que he encontrado útil. Esencialmente BREVE y ORB son mucho más rápidos. No hay una buena comparación de la invariancia de escala allí, pero personalmente he encontrado que SURF/SIFT es más invariante de escala que BRIEF y ORB. Recomiendo que si va a usar estos para un caso de uso específico, pruebe ambos para ver cuál se adapta mejor a sus necesidades.
SURF/SIFT utiliza patentes que deben pagarse de alguna manera. No estoy al día en esto, pero los costos pueden ser significativos. Así que elegiría ORB si es posible, excepto, por supuesto, si no te importa el dinero 🙂
SIFT: El algoritmo está patentado en EE. UU.; el propietario es la Universidad de Columbia Británica. (http://en.wikipedia.org/wiki/Scale-invariant_feature_transform)
SURF: una aplicación del algoritmo está patentada en EE. UU. (http://en.wikipedia.org/wiki/SURF)