|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
Inscription : juillet 2012 Messages : 14 ![]() |
Bonjour,
je n'ai pas le droit de poster mon code d'origine. Actuellement l'appariement de points d'intérêt est fait par une fonction codée en C. Une piste avait été de voir si à partir d'une base de donnée, je pouvais aller beaucoup plus vite que le code en C (de l'ordre de 3*plus vite). Au lieu de comparer deux images, on aurait stocké leurs points dans la base et récupérer les paires une fois l'algo du plus proche voisin optimisé. Malheureusement comme je l'ai lu ici et ailleurs, il ne semble pas encore possible d'effectuer une telle requête de manière optimale (50 ms). Merci vmolines pour votre implémentation et merci à SQLpro pour son expertise |
|
|
00
|
|
|
#22 | ||||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 12 163 ![]() |
Personnellement en test, la recherche d'un point plus proche voisin d'un lot de 100000 points met 5 secondes sans index sous MS SQL Server (SIG) et 0 lorsque c'est indexé.
Démo : Code :
Code :
Code :
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||||
|
00
|
|
|
#23 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 682 ![]() |
Et avec un vecteur à 64 dimensions au lieu d'un point, quelle est la syntaxe pour la création d'index et la fonction pour le calcul de la distance euclidienne ? Quid des temps de réponse ?
|
|
|
00
|
|
|
#24 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 12 163 ![]() |
Je suppose qu'un vecteur peut être représenté par un polygone... Cela ne change donc rien aux performances, l'indexation étant de complexité logarithmique. Donc au lieu d'un temps de réponse de zero, vous aurez zero + epsilon...
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#25 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 682 ![]() |
Etant mauvais en math, je pose la question suivante : pouvez vous utiliser l'opérateur de distance entre des polygones (votre matérialisation d'un point dans un espace à N dimensions) en ayant les mêmes résultats que le calcul traditionnel de distance entre points de ce même espaces à N dimensions.
Mon intuition me dit que non mais je serais heureux de me tromper. |
|
|
00
|
|
|
#26 | |
Inscription : juillet 2012 Messages : 14 ![]() |
Si j'ai bien compris, vous mettez 9 ms pour trouver le plus proche voisin d'un point par rapport à 10000 points.
et ce, uniquement par rapport aux coordonnées x,y. Donc moi qui doit faire ça pour une image (300 points).. cela prendrait 300 * 9 ms = 2.7 sec. et j'ai 25 images à la sec : 2.7 * 25 = 67.5 sec. Donc pour traiter une seconde de vidéo (25 images) cela me prendrait un peu plus d'une min.. et là on a comparé que des vecteurs 2D et non 64 D Actuellement avec mon prgm en C++ je suis à une min de vidéo pour 2 min de traitement. et en passant par la BDD, je suis capable de trouver , pour chaque point, le voisin le plus proche, en 2.8 sec à l'aide d'une boucle comme indiqué dans le tout premier post (résultat qui reste totalement médiocre quand même surtout que je compare à une BDD d'un peu moins de 1000 pts) Voilà l'ampleur de mon problème. J'espère que je suis plus clair. Citation:
tout est dans le Epsilon justement =) Je pense que les polygones utilisés par postgis sont uniquement des ensembles de points, à l'exemple de http://postgis.refractions.net/docum...-1.3/ch03.html |
|
|
|
00
|
|
|
#27 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 12 163 ![]() |
Citation:
Et il est parfaitement possible de trouver la distance entre un polygone et un point, sachant que ce qui vous importe est le min, cela ne pose pas de problème... Bref, il faut tester ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com