Was mich wundert ist, dass deine Grafikkarte scheinbar nicht genutzt wurde. Ich habe aber gelesen, dass die Berechnungen mit der reinen CPU viel viel länger dauern würden. Also irgendwas muss er mit deiner GK gemacht haben.
Zwischenbildberechnung mit KI - Hat jemand CUDA5?
-
-
Als 'Interpolation Algorithm' gibt es "Default: 2X/4X/8X; Less Memory; Slower; Cleaner Results" und "Experimental: 2x/3X/4X/5X/6X/7X/8X/; Mode Memory; Faster; May generate more artifacts", bei letzterem wird 3,5-5GB Speicher verbraucht und aber sonst scheint sich da nichts zu ändern.
Die Temperatur der GPU ist ein paar Grad wärmer und die Interpolation ist ca. 30 Sekunden schneller, CPU Auslastung ist jetzt so 20-50% (stark schwankend).
-> Hmm,.. liegt vielleicht an der niedrigen Auflösung.
Code
Display More['C:/Users/Selur/Desktop/KITest1.mkv'] Input FPS: 25.0 Main Folder: E:/Output/KITest1/ Conf. Method: 0 The testing model weight is: ./model_weights/best.pth Starting PNG frames extraction! Finished PNG frames extraction! Starting Interpolation! 100%|███████████████████▉| 318/319 [09:36<00:01, 1.81s/it, file=0000000318.png]Ending Interpolation! Now creating the video! Renaming E:/Output/KITest1/interpolated_frames/000000000000642.png to E:/Output/KITest1/interpolated_frames/000000000000638.png Renaming E:/Output/KITest1/interpolated_frames/000000000000643.png to E:/Output/KITest1/interpolated_frames/000000000000639.png Renaming E:/Output/KITest1/interpolated_frames/000000000000644.png to E:/Output/KITest1/interpolated_frames/000000000000640.png Renaming E:/Output/KITest1/interpolated_frames/000000000000645.png to E:/Output/KITest1/interpolated_frames/000000000000641.png Renaming E:/Output/KITest1/interpolated_frames/000000000000646.png to E:/Output/KITest1/interpolated_frames/000000000000642.png Renaming E:/Output/KITest1/interpolated_frames/000000000000647.png to E:/Output/KITest1/interpolated_frames/000000000000643.png Renaming E:/Output/KITest1/interpolated_frames/000000000000648.png to E:/Output/KITest1/interpolated_frames/000000000000644.png Renaming E:/Output/KITest1/interpolated_frames/000000000000649.png to E:/Output/KITest1/interpolated_frames/000000000000645.png Renaming E:/Output/KITest1/interpolated_frames/000000000000650.png to E:/Output/KITest1/interpolated_frames/000000000000646.png Renaming E:/Output/KITest1/interpolated_frames/000000000000651.png to E:/Output/KITest1/interpolated_frames/000000000000647.png Renaming E:/Output/KITest1/interpolated_frames/000000000000652.png to E:/Output/KITest1/interpolated_frames/000000000000648.png Renaming E:/Output/KITest1/interpolated_frames/000000000000653.png to E:/Output/KITest1/interpolated_frames/000000000000649.png Renaming E:/Output/KITest1/interpolated_frames/000000000000654.png to E:/Output/KITest1/interpolated_frames/000000000000650.png Renaming E:/Output/KITest1/interpolated_frames/000000000000655.png to E:/Output/KITest1/interpolated_frames/000000000000651.png Renaming E:/Output/KITest1/interpolated_frames/000000000000656.png to E:/Output/KITest1/interpolated_frames/000000000000652.png Renaming E:/Output/KITest1/interpolated_frames/000000000000657.png to E:/Output/KITest1/interpolated_frames/000000000000653.png Renaming E:/Output/KITest1/interpolated_frames/000000000000658.png to E:/Output/KITest1/interpolated_frames/000000000000654.png Renaming E:/Output/KITest1/interpolated_frames/000000000000659.png to E:/Output/KITest1/interpolated_frames/000000000000655.png Renaming E:/Output/KITest1/interpolated_frames/000000000000660.png to E:/Output/KITest1/interpolated_frames/000000000000656.png Renaming E:/Output/KITest1/interpolated_frames/000000000000661.png to E:/Output/KITest1/interpolated_frames/000000000000657.png Renaming E:/Output/KITest1/interpolated_frames/000000000000662.png to E:/Output/KITest1/interpolated_frames/000000000000658.png Renaming E:/Output/KITest1/interpolated_frames/000000000000663.png to E:/Output/KITest1/interpolated_frames/000000000000659.png Renaming E:/Output/KITest1/interpolated_frames/000000000000664.png to E:/Output/KITest1/interpolated_frames/000000000000660.png Renaming E:/Output/KITest1/interpolated_frames/000000000000665.png to E:/Output/KITest1/interpolated_frames/000000000000661.png Renaming E:/Output/KITest1/interpolated_frames/000000000000666.png to E:/Output/KITest1/interpolated_frames/000000000000662.png Renaming E:/Output/KITest1/interpolated_frames/000000000000667.png to E:/Output/KITest1/interpolated_frames/000000000000663.png Renaming E:/Output/KITest1/interpolated_frames/000000000000668.png to E:/Output/KITest1/interpolated_frames/000000000000664.png Renaming E:/Output/KITest1/interpolated_frames/000000000000669.png to E:/Output/KITest1/interpolated_frames/000000000000665.png Renaming E:/Output/KITest1/interpolated_frames/000000000000670.png to E:/Output/KITest1/interpolated_frames/000000000000666.png Renaming E:/Output/KITest1/interpolated_frames/000000000000671.png to E:/Output/KITest1/interpolated_frames/000000000000667.png Renaming E:/Output/KITest1/interpolated_frames/000000000000672.png to E:/Output/KITest1/interpolated_frames/000000000000668.png Renaming E:/Output/KITest1/interpolated_frames/000000000000673.png to E:/Output/KITest1/interpolated_frames/000000000000669.png Renaming E:/Output/KITest1/interpolated_frames/000000000000674.png to E:/Output/KITest1/interpolated_frames/000000000000670.png Renaming E:/Output/KITest1/interpolated_frames/000000000000675.png to E:/Output/KITest1/interpolated_frames/000000000000671.png Renaming E:/Output/KITest1/interpolated_frames/000000000000676.png to E:/Output/KITest1/interpolated_frames/000000000000672.png Renaming E:/Output/KITest1/interpolated_frames/000000000000677.png to E:/Output/KITest1/interpolated_frames/000000000000673.png Renaming E:/Output/KITest1/interpolated_frames/000000000000678.png to E:/Output/KITest1/interpolated_frames/000000000000674.png Renaming E:/Output/KITest1/interpolated_frames/000000000000679.png to E:/Output/KITest1/interpolated_frames/000000000000675.png Renaming E:/Output/KITest1/interpolated_frames/000000000000680.png to E:/Output/KITest1/interpolated_frames/000000000000676.png Renaming E:/Output/KITest1/interpolated_frames/000000000000681.png to E:/Output/KITest1/interpolated_frames/000000000000677.png Renaming E:/Output/KITest1/interpolated_frames/000000000000682.png to E:/Output/KITest1/interpolated_frames/000000000000678.png Renaming E:/Output/KITest1/interpolated_frames/000000000000683.png to E:/Output/KITest1/interpolated_frames/000000000000679.png Renaming E:/Output/KITest1/interpolated_frames/000000000000684.png to E:/Output/KITest1/interpolated_frames/000000000000680.png Renaming E:/Output/KITest1/interpolated_frames/000000000000685.png to E:/Output/KITest1/interpolated_frames/000000000000681.png Renaming E:/Output/KITest1/interpolated_frames/000000000000686.png to E:/Output/KITest1/interpolated_frames/000000000000682.png Renaming E:/Output/KITest1/interpolated_frames/000000000000687.png to E:/Output/KITest1/interpolated_frames/000000000000683.png Renaming E:/Output/KITest1/interpolated_frames/000000000000688.png to E:/Output/KITest1/interpolated_frames/000000000000684.png Renaming E:/Output/KITest1/interpolated_frames/000000000000689.png to E:/Output/KITest1/interpolated_frames/000000000000685.png Original FPS: 25.0 Total frames Original: 319 Total frames interpolated: 685 Final FPS: 53.6833855799373 Interpolation Folder: E:/Output/KITest1/interpolated_frames/ Output Video: E:/Output/KITest1/output_videos/53fps_KITest1.mp4 Video finished! Your render is complete. Check out the output folder for the result.
Was mir nicht gefällt, ist das die 'Final FPS' jetzt noch weiter von den angestrebten 50fps abweicht und entsprechend mehr frame existieren.
-> für mehr als wirklich zum Experimentieren würde ich das aktuell nicht einsetzen.
Cu Selur
-
Hmmm, das ist natürlich komisch.
-
Und wenn du aus dem Video schnell mal die 319 Frames in PNGs umwandelst und ihm diesen Ordner gibst? Was macht er dann? Und als Output "APNG"?
Ich weiß auch nicht, wie er das mit dem Szenenwechsel mit einkalkuliert.
-
Die Frames im temporären 'original_frames'-Ordner sind korrekt 319.
Nur im 'interpolated_frames'-Ordner enden zu viele Frames.
-> das Problem ist bei der ihrer interpolation, die interpolieren zu viele Frames und ohne das man auf vfr zurückgreift oder den Ton anpasst muss das zu asynchronem Output führen wenn man einfach die Framerate auf 50fps umändert.
Unter 'Misc Options' hab ich noch was gefunden da gibt es Optionen was er machen soll wenn er über der Framerate ist, aber keine Einstellung was er machen soll wenn er drunter ist.
Hab also nochmal 'Experimental' + 'Don't interpolate scenes changes'+ 'IF FPS exceeds [FPS] Interpolate down to [FPS [Conf 1: Smooth]' ausgewählt und [FPS] auf 50 gesetzt, mit dem Effekt:
Code
Display MoreInput FPS: 25.0 E:/Output Main Folder: E:/Output/KITest1/ Conf. Method: 0 The testing model weight is: ./model_weights/best.pth Starting PNG frames extraction! Finished PNG frames extraction! Starting Interpolation! 17%|███▍ | 53/319 [01:43<07:58, 1.80s/it, file=0000000052.png]52 Jumping intepolation 100%|███████████████████▉| 318/319 [09:39<00:01, 1.82s/it, file=0000000318.png]Ending Interpolation! Now creating the video! Original FPS: 25.0 Total frames Original: 319 Total frames interpolated: 636 Final FPS: 49.843260188087775 Interpolation Folder: E:/Output/KITest1/interpolated_frames/ Output Video: E:/Output/KITest1/output_videos/49fps_KITest1.mp4 Video finished! Your render is complete. Check out the output folder for the result.
das DAIN da jetzt auch zu wenige Frames erzeugt,
-> Naja, ist halt noch bei 0.4 denke da sollte man noch etwas warten.
Cu Selur
-
Ja, da hast du wohl recht. Aber Experimentalmodus würde ich sowieso nicht nehmen wegen "more artifacts"
Er baut sowieso Mist, am Ende ist der grüne Wassermann nochmal zu sehen, das letzte Bild meine ich, das gehört da gar nicht hin.
-
Habe nochmal mit den ersten beiden Videos, die du gestern unter "Default-Algo" erstellt hast, rumgespielt.
Er arbeitet fast schon korrekt mit Eigenheiten:
Das erste KI-Video: hat 637 frames was quasi 319 +318 Zwischenbilder entspricht.
Das passt auch, habe das Bild für Bild verglichen. Weil das letzte Bild keinen Nachfolger hat, kann er auch kein 638. erstellen.
Darum hat er bei der selben Zeitlänge (12,76 sek) ein Frame weniger und darum kommt er auf 49.92 fps. Wenn man die Frames einfach mit 50 fps codiert fehlt ein Zwischenbild (nämlich das was nach dem letzten käme) aber darauf kann man verzichten.
Das zweite Video hat den Szenenübergang-erkenner drinnen. Das Dain berechnet deswegen zwischen den beiden Szenen auch kein Zwischenbild.
Das Video hat also noch ein Frame weniger als das erste Video. 636 Bilder.
Und bei gleicher Zeitlänge (12,76 sek) und 636 Bildern kommt man auf 49,84 fps. Auch diese Bilder könnte man einfach auf 50 fps patchen und es gibt auch keine Ruckler oder sowas.
Nun bleibt nur das Problem, dass er bei jedem Szenenübergang ein Zwischenbild weglässt, was Synchroprobleme mit dem Ton nach sich zieht, wenn man auf 50 fps besteht.
-
Jetzt wäre ich noch neugierig auf den Vergleich mit MFlowFps / MBlockFps ... die vermisse ich in Diskussionen rund um Frame Interpolation merkwürdigerweise regelmäßig. Vielleicht weiß ich nur noch nicht, dass die technisch längst überholt sind?
-
Ich habe mir mal angeschaut wie FrameRateconverter und SVP das Problem bei Szenenübergängen lösen.
SVP verdoppelt einfach das erste Bild der folgenden Szene. So dass kein Bild fehlt aber schön ist das nicht so sehr. Notlösung
FrameRateconverter verdoppelt auch das Bild entweder am Ende der ersten Szene oder am Anfang der zweiten Szene. Oder er macht einfach ein Blendframe rein.
Ich finde ein Blendframe (aus letztem und ersten Bild) ist der beste Kompromiss. Das stört überhaupt nicht beim gucken (im Gegensatz zu einem interpolierten Mischbild). Damit wären dann auch alle Tonsynchro-Probleme gelöst, wenn sie das einbauen würden.
-
LigH: Zumindest:
Code
Display Morefunction MvToolsFPSmod(clip C, int "NewNum", int "NewDen", string "Preset") { Preset = Default(Preset, "Film") P_Film = 1 P_MusicVideoClip = 2 Pset = Preset == Preset == "Film" ? P_Film : Preset == "MusicVideoClip" ? P_MusicVideoClip : P_Film thSCD2nom= (Pset==P_Film) ? 130 : (Pset==P_MusicVideoClip) ? 255 : 130 NewNum = Default(NewNum, 60) NewDen = Default(NewDen, 1) FramRat = Floor(Framerate( C )) FramRatNew = Floor(NewNum / NewDen) NewNumN = (FramRatNew / 2 == FramRat) ? FramRatNew : FramRat*5 superfilt = MSuper(C, hpad=8, vpad=8, pel=4, sharp=2, rfilter=4) bak = MAnalyse(superfilt, isb=true, blksize=16, blksizev=16, badSAD=1000, badrange=-3, overlap=0, overlapv=0, search=4, searchparam=0, dct=5) fwd = MAnalyse(superfilt, isb=false, blksize=16, blksizev=16, badSAD=1000, badrange=-3, overlap=0, overlapv=0, search=4, searchparam=0, dct=5) Flow = MFlowFps(C, superfilt, bak, fwd, num=NewNum, den=NewDen, blend=False, ml=5800, mask=0, thSCD2=thSCD2nom) return Flow }
sieht nicht gut aus. Hier. Da wackelt die Krone schon arg.
Problem ist halt, dass:
a. MVTools leider nur CPU basiert existiert, sprich einiges langsamer als SVP ist. (wie FrameRateConverter auch)
b. man oft viel basteln muss um mit mvtools Ergebnisse zu bekommen die mit FramerateConverter und SVP mithalten können.
DAIN sieht sehr vielversprechend aus, aber da wird es wohl noch ne Weile dauern bis man das wirklich nutzen mag.
Cu Selur
Ps.: Hoffe ja immer noch, dass sich jemand findet, der ne opencl oder cuda gestützte Variante von mvtools schreibt, das würde bei so einigen Skripten wirklich helfen.
-
Hat das jemand mit einem 1080p Video probiert? Der VRAM (8gb) meiner GTX 1070 reicht da wohl nicht :-/
-
1080p soll wohl nur funktionieren (wenn überhaupt), wenn man das Bild bei den Optionen splittet in Bereiche.
Mit der RTX 2080 Ti soll 720p möglich sein.
-
Ohne ein Splitten des Bildes ist bei 720p bei mir mit 8GB auch Schluss
-
Das steht auch im Kleingedruckten auf dem "FixOutofMem Option"-Menü im Tool.
Dann hilft wohl nur noch das hier
-
Hier sprach man drüber
-
Habe nochmal eine Bitte. Könntest du mal zwischen diesen beiden Bildern hier das Zwischenbild berechnen lassen und es mir zukommen lassen.
Fast kein Szenendetector kann hier erkennen, dass es ein Szenenwechsel ist, weil der Bildinhalt wohl sehr ähnlich ist.
Ich würde gerne mal wissen, in wie weit er das interpoliert.
-
Vermute 2 Bilder ist einfach zu wenig. Dain crashed:
Code
Display MoreC:/Users/Selur/Desktop/Zwei_Bilder E:/Output Main Folder: E:/Output/Zwei_Bilder/ Conf. Method: 0 The testing model weight is: ./model_weights/best.pth Starting Interpolation! Traceback (most recent call last): File "my_design.py", line 61, in run File "my_DAIN_class.py", line 1538, in RenderVideo File "my_DAIN_class.py", line 1220, in StepRenderInterpolation File "my_DAIN_class.py", line 556, in _make_video_dataset FileNotFoundError: [WinError 3] Das System kann den angegebenen Pfad nicht finden: 'E:/Output/Zwei_Bilder/original_frames/'
Okay war ein Bug, habe die Dateien nochmal nach 'E:/Output/Zwei_Bilder/original_frames/' kopiert, dann geht es.
Wie zu erwarten wird interpoliert, wobei der Algorithmus bei 2 Frames auch keine Chance, hat.
(Darum wird in Hybrid auch Input der <= eine Sekunde ist auch verworfen. ;))
Cu Selur
-
Du meinst mit mehr Vor- und Nachlauf könnte er ein besseres Ergebnis berechnen?
-
Ich würde mal denken, dass solche Algorithmen mindestens eine Umgebung von 4 Frames benötigen, damit sie den Unterschied zwischen der aktuell betrachteten Differenz und den umliegenden Differenzen berechnen können.
-
Ja, das mag schon sein. Hierbei kann er aber auch nix sinnvolles interpolieren, weil es ein Szenenübergang ist. Und er eigentlich nur Quatsch dazwischen erzeugen kann.
Bei jedem Szenenübergang macht er so ein (verständlicherweise) "Matschbild". Das fällt beim Gucken mehr oder weniger auf und ist schon störend.
Darum hat das Tool ja eine zuschaltbare Szenenerkennung drin. Aber die ist Müll! Mal erkennt sie gar keinen Szenenübergang mal erkennt sie jedes Bild als neue Szene.
Darum habe ich beschlossen, wenn ich das Tool nutze. Erstmal Alle Bilder zu interpolieren. Dann habe ich einen eigenen Szenenerkennungsalgo. der sagt mir wo die Szenenübergänge sind. Dann weiß ich wo die Matschbilder liegen und werde sie ersetzen mit einem Blendframe (erzeugt aus letztem und erstem Bild). Dann bin ich zufrieden.
-
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!