Mi piacerebbe sapere qual è la differenza in termini di precisione o qualità delle corrispondenze tra BFMatcher e FlannBasedMatcher in openCV. So che FlannBasedMatcher potrebbe essere più veloce se applicato a una grande base di dati, ma i due verificatori troveranno le stesse corrispondenze alla fine indipendentemente dal tempo di esecuzione?Differenza tra BFMatcher e FlannBasedMatcher
risposta
BFMatcher sta andando a cercare tutte le possibilità (che è il significato di "Brute Force" e, quindi, potrete trovare le migliori corrispondenze
FLANN, che significa "Biblioteca veloce per approssimativi Casa più vicina". , sarà molto più veloce ma troverà un vicino più vicino, troverà un buon matching, ma non necessariamente il migliore possibile.Puoi giocare con i parametri di FLANN per aumentare la precisione (cioè la "qualità" degli abbinamenti) , ma sarà a costo di rallentare l'algoritmo
In altre parole: FL ANN è molto più veloce di BFMatcher ma trova solo un vicino più vicino approssimativo, che è un buon abbinamento ma non necessariamente il migliore. Puoi giocare con i parametri di FLANN per aumentare la sua velocità o la sua precisione.
Per aggiungere alla risposta di cui sopra, FLANN crea una struttura di dati efficiente (KD-Tree) che verrà utilizzata per cercare un vicino approssimativo, mentre cv::BFMatcher esegue una ricerca esaustiva ed è garantito per trovare il migliore vicino. Il vero vantaggio di FLANN è rappresentato da ampi set di dati. Nella mia esperienza, ho visto un vantaggio giustificabile il numero di descrittori è maggiore di 1K.
- 1. Salvataggio e caricamento FlannBasedMatcher
- 2. API OpenCV python: FlannBasedMatcher
- 3. La differenza tra $ * e $ @
- 4. Differenza tra $ # e $ {# @}
- 5. Differenza tra. e #
- 6. MySQL: Differenza tra ",", "e"
- 7. Differenza tra "o" e "||"
- 8. Differenza tra unwrapObservable e()
- 9. Differenza tra oggetto e *?
- 10. Differenza tra "**/* /" e "** /"?
- 11. Differenza tra jquery e $
- 12. CMake: differenza tra $ {} e "$ {}"
- 13. Differenza tra ". +" E ". +?"
- 14. VBA: Differenza tra & e +
- 15. Differenza tra numpy.logical_and e &
- 16. Differenza tra | = e^= css
- 17. Differenza tra `% in%` e `` ==
- 18. Differenza tra Dizionario e Hashtable
- 19. Differenza tra SCM e SVN
- 20. differenza tra RDLC e SSRS
- 21. Differenza tra REMOTE_HOST e REMOTE_ADDR
- 22. Differenza tra "\ n" e Environment.NewLine
- 23. Differenza tra QSharedPointer e QSharedDataPointer?
- 24. Differenza tra toFixed() e toPrecision()?
- 25. Differenza tra strncpy e memcpy?
- 26. Differenza tra crittografia e hashing
- 27. Differenza tra Assembly.CreateInstance e Activator.CreateInstance?
- 28. Differenza tra coredata e sqlite
- 29. Differenza tra Html.RenderAction e Html.Action
- 30. differenza tra System.out.printf e String.format
Quanto deve essere grande il database per rallentare BFMather? Se hai una lista di 1000 descrittori? più o meno? –