Asmodee88 | 1 #21 |
|
---|---|---|
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1301
Karma: 1075 |
@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
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): 1301
Karma: 1075 |
@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): 1301
Karma: 1075 |
@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é
|
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): 1301
Karma: 1075 |
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): 1301
Karma: 1075 |
@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... 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 !
Contribution le : 03/03/2021 17:04
|
|
Signaler |
Asmodee88 | 0 #32 |
|
---|---|---|
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1301
Karma: 1075 |
@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): 1301
Karma: 1075 |
@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é
|
Contribution le : 03/03/2021 17:50
|
|
Signaler |
Asmodee88 | 1 #36 |
|
---|---|---|
Je suis accro
Inscrit: 17/11/2016 14:10
Post(s): 1301
Karma: 1075 |
@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): 1301
Karma: 1075 |
@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): 1301
Karma: 1075 |
@AymericCaron hésite pas à me dire ce que tu comprends pas
Contribution le : 03/03/2021 18:31
|
|
Signaler |