Oh, sages de Reddit ! Je cherche votre aide.
Je suis débutant en Python, et autodidacte. Veuillez donc être patient avec moi et supposer que vous enseignez un enfant.
L’objectif de mon code en Python était de créer un programme capable de trouver des éléments dans les vidéos et de les couper automatiquement, dans le but que mon ami l’utilise (qui ne connaît absolument rien au programmation). J’ai réussi à faire fonctionner le code, en programmant dans Jupyter (cela me semblait un environnement rassurant), et en bref, il utilise OpenCV et Scikit-image avec certaines de leurs fonctions intégrées (VideoCapture, profile_line et match_template). Au départ, je l’ai exécuté sous forme de boucle for, en analysant chaque 30e image (60 fps), et j’ai eu du succès, l’analyse de la vidéo s’étant accomplie en moins de 30 minutes pour une vidéo d’une heure. Mais cela a été lent pour mon ami, nécessitant plus de 20 heures pour exécuter le même code. J’ai essayé d’accélérer les choses en implémentant le multiprocessing pour lui (en utilisant pathos). Sur mon ordinateur, il a fini par analyser environ une heure de vidéo en 5 minutes. Mais le meilleur que peut atteindre l’ordinateur de mon ami est toujours plus de 16 heures. Il a également essayé sur plus d’un ordinateur (deux ordinateurs portables et un ordinateur de bureau ; nous considérons ci-dessous les spécifications de deux d’entre eux). La partie de découpe et de rendu automatique (en utilisant MoviePy) fonctionne correctement chez lui, donc j’ai omis ces parties de la discussion.
Maintenant, je suis à bout de ressources. Le code semble fonctionner correctement, au moins pour moi. Donc, il semble qu’il y ait un problème plus fondamental qui m’échappe. Pourrait-il s’agir d’une différence dans l’installation de Python (mon ami et moi vivons à 6 fuseaux horaires différents, donc je n’étais pas présent lors de son installation) ? Ou y a-t-il quelque chose concernant les spécifications des ordinateurs ? Concernant les ordinateurs portables, le sien bat le mien dans tout, sauf la mémoire RAM (ce qui est évidemment important, mais je ne vois pas pourquoi cela devrait faire une si grande différence). Je ne sais pas quelles autres informations pourraient être nécessaires pour résoudre ce problème, alors n’hésitez pas à demander davantage et je les trouverai. S’il vous plaît, oh sages de Reddit, aidez-nous à sortir de cette situation.
Ses ordinateurs de bureau ont les spécifications suivantes :
(10e génération) Intel(R) Core(TM) i9-10980XE CPU @ 3,00 GHz, 3000 MHz, 18 cœurs, 36 processeurs logiques
RAM : 128 Go (8×16 Go) DDR4 3200 MHz (108 Go disponibles)
Mémoire virtuelle : 147 Go (124 Go disponibles)
Carte graphique : NVIDIA GeForce RTX 4080 SUPER
Fonctionne sur : Windows 10
Son ordinateur portable (Lenovo) qu’il a utilisé a les spécifications suivantes :
14e génération Intel(R) Core(TM) i9-14900HK, 2,2 GHz, 24 cœurs, 32 processeurs logiques
RAM : 16 Go, DDR5-5600 MHz (15,7 Go disponibles)
Carte graphique : NVIDIA GeForce RTX 4060 Laptop GPU
Fonctionne sur : Windows 11
Mon ordinateur (Dell) a les spécifications suivantes (celui qui l’exécute en ~5 min) :
12e génération Intel(R) Core(TM) i9-12900HK, 2500 MHz, 14 cœurs, 20 processeurs logiques
RAM : 64 Go (2×32 Go) DDR5 4800 MHz (63,7 Go disponibles)
Mémoire virtuelle : 67,7 Go (48,4 Go disponibles)
Carte graphique : NVIDIA GeForce RTX 3050 Ti Laptop GPU
Fonctionne sur : Windows 11
Édition : Nous avons en fait réussi à le résoudre. Apparemment, c’était la bibliothèque OpenCV qui était le problème. À chaque itération, le code utilisait OpenCV pour lire le prochain cadre spécifié. Mais en changeant vers la bibliothèque « MoviePy » pour lire les cadres, cela fonctionne à peu près à la même vitesse que la mienne. Donc, OpenCV, d’une manière ou d’une autre, faisait fonctionner ses ordinateurs pendant des heures alors que les miens fonctionnaient en quelques minutes. Je ne comprends pas cela, mais peut-être que cela aidera quelqu’un d’autre à l’avenir.
Merci aussi à toutes les personnes qui ont pris le temps de nous aider ! Nous apprécions beaucoup cela, et dans mon cas, j’ai appris quelques nouvelles choses. Merci à tous !
Dis à ton ami d’aller sur le site de PyTorch et d’installer la version GPU de PyTorch. Vois si cela aide. La bibliothèque PyTorch par défaut de Python est pour le CPU.