Videos streaming images jeux et buzz
Connexion






Perdu le mot de passe ?

Inscrivez-vous maintenant !
Menu Principal
Communauté


« 1 (2) 3 »


Asmodee88
 1  #21
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron ta essayer spirale pas inversé ? Chercher en priorité les bord de A ? Ça me paraît le plus logique les bords étant a priori forcément dans B ce qui est pas forcément le cas du centre. Et potentiellement tu peux sauté une case sur 2 (voir sur 3) pour une première recherche grossière.
Et pareille normalement tu n'a a chercher que les bords de B pas l'intérieur. Et effectivement une fois que tu a trouver un premier crops tu cherches en spirale inversé dans A et B pour trouver le suivant.

Contribution le : 01/03/2021 07:18
Signaler

Invité
 0  #22
FantômeInvité
@Asmodee88 ipfs QmRvfuSf9aMR2T8ZYVq74DexqA5CMKi3iG6nj3swsrdbqn
Citation :
ta essayer spirale pas inversé ? Chercher en priorité les bord de A ? Ça me paraît le plus logique les bords étant a priori forcément dans B ce qui est pas forcément le cas du centre.

Ouai tu as raison c'est beaucoup plus logique ! ^^
Au bout d'un moment mes neurones sont en roue libre...

Sinon commencer par le centre a aussi son intérêt dans le cas particulier vu dans mon comm' précédent.

(J'ai changé l'ordre du croping au lieu d'avoir :
coords = [
[1,11,21,31,41,...],
[2,12,22,32,42,...],
[3,13,23,33,43,...],
[...]]

J'ai fais un truc plus habituel :
coords = [
[1,2,3,4,5,6,...],
[11,12,13,14,15,16,...],
[21,22,23,24,25,26,...],
[...]]

Citation :
Et pareille normalement tu n'a a chercher que les bords de B pas l'intérieur.

J'utilise cv2 donc j'ai pas la main sur l'algo... En tout cas j'ai pas trouvé.
La seule solution que je vois c'est de découper les bords de l'image B en 4 images (bord haut, bord bas, bord droite, bord gauche), par contre ça me fait qq modifs dans le calcul de position, car la position du crop trouvé se fera en fonction du bord analysé et plus en fonction de l'image B tout entière.
Avant ça faut que je regarde si juste "remplacer" le centre de l'image B par du noir ne ferait pas l'affaire en terme de performance.

Contribution le : 01/03/2021 17:33
Signaler

Asmodee88
 1  #23
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron bon après je sais pas comment fonctionne l'algo (et la flemme de me renseigner) mais a mon avi si l'algo fonctionne avec b entier c'est probablement mieux de pas trop y toucher. Par contre selon comment marche l'algo (notamment si il cherche l'image A entière ou pas) tu peu peux être coupé tes croppes d'abord en bord haut gauche bas droit pour avoir le match grossier puis apres affiné avec des croppe plus petit.

Contribution le : 01/03/2021 21:32
Signaler

Invité
 1  #24
FantômeInvité
@Asmodee88
Merci de participer à l'effort de guerre ! ^^

Si je ne dis pas de bêtise cv2 superpose le crop à rechercher sur l'image puis le fait "glisser" jusqu'à ce que l'algo match (formule), c'est cette glisse que je ne peux pas changer, je ne peux pas dire à cv2 de regarder que sur les bords de l'image à analyser. Dans tous les cas, il fait toute l'image pour chaque crop que je lui demande d'analyser... Les seules valeurs d'ajustement que j'ai en tête, c'est la taille des crops comme tu le mentionnais et lesquels je décide de soumettre à cv2.

J'ai pensé à une façon d'améliorer le truc en faisant du multithreading en prenant des crops de plusieurs endroits simultanément (Methodic).
Ce thread commence par prendre un crop sur le coin supérieur gauche, puis continue vers la droite puis descend à la ligne en dessous et recommence.
Ce thread commence par prendre un crop sur le coin inférieur droit, puis continue vers la gauche puis remonte à la ligne du dessus et recommence.
Ce thread commence par prendre un crop sur le coin supérieur droit, puis continue en descendant puis se décale vers la gauche et recommence.
Ce thread commence par prendre un crop sur le coin inférieur gauche, puis continue en remontant puis se décale vers la droitee et recommence.

Bien évidemment sans que les threads ne se superpose.



Large zone de superposition 🔗
Methodic
Timer : 2.987403392791748 seconds
(c1,c2) : ((0, 0), (966, 86))

Spiral
Timer : 9.10398244857788 seconds
(c1,c2) : ((0, 0), (966, 86))

Spiral inversée
Timer : 0.7772295475006104 seconds
(c1,c2) : ((0, 0), (966, 86))

Moyenne zone de superposition 🔗
Methodic
Timer : 1.0325767993927002 seconds
(c1,c2) : ((0, 0), (1574, 15))

Spiral
Timer : 3.547887086868286 seconds
(c1,c2) : ((0, 0), (1574, 15))

Spiral inversée
Timer : 7.70452880859375 seconds
(c1,c2) : ((0, 0), (1574, 15))

Faible zone de superposition 🔗
Methodic
Timer :  27.130962seconds
(c1,c2) : ((0, 202), (1792, 0))

Spiral
Timer :  60aines de secondes
(c1,c2) : ((0, 0), (0, 0)) FAIL

Spiral inversée
Timer : 141.1351563 seconds
(c1,c2) : ((0, 202), (1792, 0))

Contribution le : 01/03/2021 22:37
Signaler

Asmodee88
 0  #25
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron alors comme ca je vois un petit biais dans les test, mais ca peu aussi venir de l'usage. essaye de faire commencer ta spiral en haut a droite et de la faire redescendre si je comprend les test tu devrais avoir un bon score 😉

Contribution le : 01/03/2021 22:57
Signaler

Invité
 0  #26
FantômeInvité
@Asmodee88
Ouai mais non ! ^^

Contribution le : 01/03/2021 23:05
Signaler

Invité
 0  #27
FantômeInvité
ipfs QmWgsEHkCLSY9mj9sNZfsvhzRjfcqrUAGapfxE5PXkc63x
Large zone de superposition 🔗
Timer : 1.166 seconds to found : ((0, 79), (638, 0))
RESULT SAVED IN 1.379 SECS

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Faible zone de superposition 🔗
Timer : 2.269 seconds to found : ((0, 203), (1792, 0))
RESULT SAVED IN 2.508 SECS

Edit :
J'ai changé le cropping, au lieu d'avoir 100 petits crops au premier test je suis passé à 225 ! Eh oui car en faite prendre des grands crops ne sont qu'une perte de temps ! J'ai essayé 25 crops et même avec une grosse surface de superposition ça marche quasiment jamais avec le niveau de corrélation que je lui demande (95%).

Ensuite j'ai revu l'organisation de la recherche, d'abord le script lance un thread avec spirale inversée il lui laisse 2.5 secondes pour faire sa recherche sinon il l'arrête, en parallèle du premier thread il lance la recherche par les bords (4 threads) et s'il trouve un crop un autre calcul est effectué autour du crop.

Contribution le : 02/03/2021 22:47
Signaler

Asmodee88
 0  #28
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
tu ferais Peter le code? je voudrais tester deux trois truc voir si je peu optimiser un peu.

Contribution le : 02/03/2021 23:12
Signaler

Invité
 2  #29
FantômeInvité




Je n'ai pas pu résister. Il est temps pour moi d'aller me coucher.



Bon courage pour la suite, ça m'a l'air d'être un travail long et fastidieux.

Contribution le : 03/03/2021 00:35
Signaler

Asmodee88
 1  #30
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@Avaruus merci pour cette intervention très constructive 😃

Contribution le : 03/03/2021 07:13
Signaler

Invité
 0  #31
FantômeInvité
@Avaruus 😄
Tkt c'est pas si fastidieux que ça ! C'est presque addictif la programmation...

@Asmodee88
Ouaip, je te mets ça :
https://github.com/LeNarvalo/copy_paste/tree/update

Par contre, ce qui va t'intéresser concerne le script copy_paste.py à partir de la ligne 492 et les scripts match_img.py et run_array.py

C'est une version un peu bordélique, y a pas trop d'annotations et elles sont parfois obsolètes... ipfs QmTQDfSWYJvAaYjLQTf6jfuQd4rWnRL5VHA7WNJpjaEEXT
Il y a aussi des trucs que je laisse pour mes tests comme les cv2.rectangle(...).

En ce moment j'ai l'impression que le script ne s'arrête pas à 2 recherches cohérentes comme je le voudrais. Faut que je mette des print partout encore ! ipfs QmcbwwsLdNEPBfhTuFTkzyEnYftVMsHrEK7towPF4ihzF9

Contribution le : 03/03/2021 17:04
Signaler

Asmodee88
 0  #32
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron t'inquiète le code pas commenté et bordélique je connais.

Contribution le : 03/03/2021 17:09
Signaler

Invité
 0  #33
FantômeInvité
@Asmodee88 Tu fais du python ?

Contribution le : 03/03/2021 17:11
Signaler

Asmodee88
 0  #34
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron nan mais je suis dev donc du code horrible j'en vois et j'en fais plein 😁.
Je fais du c# normalement. Et la en ce moment du c++ (voir du c-- vu le code...)

Contribution le : 03/03/2021 17:41
Signaler

Invité
 0  #35
FantômeInvité
@Asmodee88 Oooh ok !
Ne sois pas trop dur avec moi. ipfs QmTGVwHzxzfYUTozUEYfrFvygdPtuuaFTGF3jX5gPayybb

Contribution le : 03/03/2021 17:50
Signaler

Asmodee88
 1  #36
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron lol t'inquiète je suis dur avec personne.
Tu peux me dire où ton script et sensé s'arrêter a 2 recherche mais le fait pas (je suis sur le tel a pied rentrant du boulot donc pas facile d'aller chercher moi même). Et je @Avaruus je confirme le code ça peut être sympa. C'est comme un puzzle, ou une énigme.

Contribution le : 03/03/2021 17:57
Signaler

Invité
 0  #37
FantômeInvité
@Asmodee88 Script match_img.py ligne 52

Contribution le : 03/03/2021 18:00
Signaler

Asmodee88
 1  #38
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron ok alors d'une analyse rapide (cf les conditions cité plus haut) les boucles imbriquées évite (des fois on a pas le choix c'est peut être le cas ici c'est juste un conseil général) et j'ai l'impression que ton pb c'est pas tant que tu t'arrêtes pas a 2 match c'est que tu va matcher (co**** de correcteur) plusieurs fois C2.
Je m'explique ci cs_1 = (0,0),(1,1) et cs2= (2,2)(0,0)
Tu va marcher de suite cs_2 mais comme ta pas cs1 tu va tester le (0,0) de cs2 avant de' trouver' le (1,1)(2,2) qui match

PS : si vous voyez un connard sur son tel qui manque de ce faire écraser c'est moi 🤣
Édit: le code c'est la vie pas peur de mourir pour 😃

Contribution le : 03/03/2021 18:15
Signaler

Invité
 0  #39
FantômeInvité
@Asmodee88
Va pas mourir pour un truc aussi futile !

Je vais essayer de comprendre ce que tu me dis !

Contribution le : 03/03/2021 18:24
Signaler

Asmodee88
 0  #40
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1250
Karma: 1046
@AymericCaron hésite pas à me dire ce que tu comprends pas

Contribution le : 03/03/2021 18:31
Signaler


 Haut   Précédent   Suivant
« 1 (2) 3 »






Si vous êtes l'auteur d'un élément de ce site, vous pouvez si vous le souhaitez, le modifier ou le supprimer
Merci de me contacter par mail. Déclaré à la CNIL N°1031721.