Hlbší pohľad na zásuvný modul Fast Sketch Cleanup pre Kritu
Zásuvný modul Fast Sketch Cleanup
Úvod
Tento projekt sme začali s cieľom poskytnúť užívateľom nástroj užitočný pri inkovaní skíz. Je založený na výskumnüh modeli ch Simo Roppola a Sierra Hallman.
V časti nižšie sú niekoľké sk utočné príklady prípadov použitia a výsledkov zo zásuvného modulu. Výsledky sa líšia, ale väčšina pracovných postupov produkuje niečo, s čím môže umelec ďalej pracovať.
Čo sa týka modelu použitého v nástroji, natrénovali sme ho sami. Všetky dáta v datasete sú darované od ľudí, ktorí podpísali príspevkovú dohodu.
Použiť: cases
Pr iemeruje čiary do jednej čiary a vytvára silné čierne čiary, ale konečný výsledok môže byť rozmazaný alebo nerovnom erný. V mnohých prípadoch je týmto najlepšou cestou použtiť ho s ďalšími krokmi spracovania.
Extrahovanie fotografovanej ceruzkovej skice
Toto je výsledok štandardného postupu použitia filtra Úro vní na skíci na extrahovanie čiar (čo má za následok zaostre né čiary).

sketch_girl_original_procedure_comparison_small1843×1209 165 KB
Skíca bola nakreslená od Tiar (odkaz na profil KA)
Toto je postup použit ia zásuvného modulu so SketchyModel (Ú rovne → zás. modul → Úrovne):

sketch_girl_new_procedure_comparison_small1843×2419 267 KB
Porovnanie (pre čierne čiary):

sketch_girl_procedures_comparison_small1920×1260 215 KB
Ďalšý možný výsledok je zastaviť pri zásuvnom module bez vynúcania čierných čiar pomocou Ú rovní, čo má za následok peknejšý výsledok so sivými čiarami.

sketch_girl_after_plugin_small1536×2016 161 KB
Inkáž v štýle komixu

Picture of a man made by BeARToys


Tu na obrázkoch vyššie vidíte inking v štýle komixu. Výsledok, ktorý je trochu rozmazaný v porovnaní s originálom, sa môže stáť východiskom pre ďalší užívateľský zásah.
Čistenie čiar
Príklady skíz, ktoré som urobil a výsledok zásuvného modulu, ukazujúce silné a slabé stránky zásuvného modulu.

flower_001_detail681×456 22.1 KB

portrait_man_portrait_2_comparison_2_small1305×505 139 KB

portrait_man_portrait_2_detail646×1023 26.6 KB
Všetky obrázky vyššie na maľoval Tiar (odkaz na profil KA)
Na obrázkoch nižšie, na šupinách ryby, vidíte, ako model rozlišuje svet lejšie čiary a zvyrazňuje tmavšie.

fish_square_sketchy_comparison_small1920×968 156 KB
Obrázok ryby vytvorila Christine Garner (odkaz na portfólio)
Ako ho použiť v Krite
Zásuvný modul Fast Sketch Cleanup
- Pripravte Kritu:
- Okná
- Zásuvný modul Fast Sketch Cleanup
- Alebo osobitne:
- Stiahnite prenosnú verziu Krity 5.2.6 (alebo podobnú verziu - mal by sti eda fungovať)
- Zásuvný modul Fast Sketch Cleanup
- Roz baľte súbor do priečinku krita-5.2.6/ (zachovajúc štruktúru prieč inkov).
- Zásuvný modul Fast Sketch Cleanup
- Linux
- Okná
- (Voľno) Nainštalujte ovládače NPU, ak máte NPU na vašom zarêdení (prakticky nutné len na Linuxe, ak máte very nový Intel alebo AMD procesor s NPU).
- Spustite zásuvný modul:
- Otvorte alebo vytvorte biele plátno so sivo-bielymi čiarami (upozornenie: zásuvný modul vezme aktuálnu projekciu plátna, teda jeho zlúčenie).
- Prejdite na Nástroje → Fast Sketch Cleanup
- Vyberte model. Pokročilé možnosti budú automaticky vybrané pre vás.
- Počkajte, kým skončí spracovanie (dialóg sa potom automaticky zatvorí).
- Skontrolujte, či vytvoril novú vrstvu s výsledkom.
Tipy pre spracovanie
V súčasnosti je lepšie použiť len SketchyModel.xml, vo väčšine prípadov funguje výrazne lepšie ako SmoothModel.
Musíte sa uistiť, že pozadie je dosť svetlé a čiary, ktoré chcete zachovať vo výsledku, sú rel atívne tmavé v porovnaní s pozadím.
Po spracovaní môžete chcieť zlepšiť výsledky buď filtrom Ú rovní alebo filtrom Ostrím, v závislosti od vašich požiadaviek.
Technológia a veda za tým
Jedinečné požiadavky
Prvá jedinečná požiadavka bola, že musí fungovať na plátnach všetkých veľkostí. To znamenalo, že sieť nemohla mať žiaden pe vný vstupný rozmer.
Ďalšia výzva bola, že sme nemohli použiť model, ktorý vytvorili, keďže nebol kompatibilný s licenciou Krity.
Naviac sme nemali žiaden dataset, ktorý by sme mohli použiť. Simo & Sierra používal dataset, kde očakávané obrázky boli všetky nakreslené ručne. Naš výskum vyžadoval odľehlý, prirodzenejší dataset.
Odkaz na náš úplný dataset nájdete nižšie v časti Dataset.
Architektúra modelu
Všetky hlavné vrstvy sú buď konvolučné alebo dekonvolučné (na konci modelu). Po každej (de)konvolučnej vrstve nasleduje vr stva dávkovej normalizácie a aktivačná vrstva ReLU.
Použité Python balíčky: Pillow, Numpy, PyTorch a Openvino
Numpy je štandardná knižnica pre všetky druhy polí a pokročilé maticové operácie a Pillow sme použili na čítanie obrázkov.
Použitie NPU pre inferenciu

This table shows the result of benchmark_app, which is a tool that’s provided with Intel’s python package openvino. It tests the model in isolation on random data. As you can see, the NPU was several times faster than the CPU on the same machine.
Na druhej strane, zavedení NPU pridalo výzvu: jediné modely, ktoré môžu bežať na NPU, sú statické modely, čo znamená, že musia byť zafixované na konkrétnu veľkosť vstupu.
Ako trénovať vlastný model
Ak chcete natrénovať vlastný model, budete potrebovať niekoľko technických znalostí, páry obrázkov a výkonný počítač.
Ovládače a príprava
Musíte nainštalovať Python3 a nasledujúce balíčky: Pillow, openvino, numpy, torch. Pre kvantizáciu modelu je tiež potrebný neural_compressor.
Ak ste na Windows, pravdepodobne máte ovládače pre NPU a dedikovaný GPU. Na Linuxe môžete potrebovať nainštalovať ovládače NPU osobitne.
Naviac, ak chcete použiť iGPU na trénovanie (ktoré môže byť ešte výrazne rýchlejšie než na CPU), pravdepodobne budete potrebovať nainštalovať XPU ovládače.
Ak sa vám podarí správne spu stiť zariadenie XPU na vašom počítači, ešte budete potrebovať upraviť trénovacie skripty, aby používali XPU zariadenie.
Dátová sada
Na trénovanie modelu budete potrebovať niekoľko obrázkov. Musia byť v pároch.
Pred trénovaním je najlepšie rozšíriť dáta: to znamená, že obrázky sú otočené, zväčšené alebo zmenšené a spúhadané, aby sa zvýšil počet trénovacích príkladov.
Ako použiť skript na rozšírenie dát je vysvetlené nižšie v podrobných pokynoch pre časť trénovania.
Tu je dataset, ktorý sme použili (prosím, pečlivo si prečíate licenciu, ak ho chcete použiť):
Výber modelu a ďalších parametrov
Pre rýchle výsledky použite tooSmallConv; ak máte viac času a zdrojov, typicalDeep môže byť lepším nápadom.
Použiť: adadelta as the optimizer.
Môžete použiť buď blackWhite alebo mse ako funkciu strát; mse je klasické, ale blackWhite môže viesť k rýchlejším výsledkom.
Tréning
Klonujte repozitár na https://invent.kde.org/tymond/fast-line-art (na vetve 3.x).
Potom pripravte priečinok:
- Vytvorte nový priečinok pre trénovanie.
- V prieč inku spustite:
python3 [prieč inok repozitára]/spawnExperiment.py --path [cesta k novému prieč inku, relatívna alebo absolútna]
Pripravte dáta:
- Ak máte existujúci rozšírený dataset, vložte ho všetok do data/training/ a data/verify/, pamätajúc si, že spárované obrázky musia byť v rovnakých prieč inkoch.
- Ak nemáte existujúci rozšírený dataset:
- Vložte všetky surové dáta do data/raw/, pamätajúc, že spárované obrázky musia mať rovnaké názvy s pridanou predponou (napr. "in_" a "out_").
- Spustite skript prípravy dát:
python3 [prieč inok repozitára]/dataPreparer.py -t taskfile.yml
To rozšíri vaše páry.
Upravte súbor taskfile.yml podľa svojich požiadaviek. Najdôležitejšie časti, ktoré chcete zmeniť, sú:
- typ modelu - kódový názov typu modelu, použite tinyTinier, tooSmallConv, typicalDeep alebo tinyNarrowerShallow
- optimalizátor - typ optimalizátora, použite adadelta alebo sgd
- rýchlosť učenia - rýchlosť učenia pre sgd ak je používané
- funkcia strát - kódový názov funkcie strát, použite mse pre stred nú kvadratickú chybu alebo blackWhite pre vlastnú funkciu strát
Spustite trénovací kód:
python3 [prieč inok repozitára]/train.py -t taskfile.yml -d "cpu"Na Linuxe, ak ho chcete spustiť na pozadí, pridajte "&" na konci. Ak beží na popredí, môžete trénovanie pozastaviť stlačením Ctrl+Z.
Konvertujte model na model openvino:
python3 [prieč inok repozitára]/modelConverter.py -s [veľkosť vstupu, resp. plátno] -t [cesta k taskfile.yml]Umiestnite oba súbory modelu .xml a .bin do vašej priečinky zdrojov Krity (vnútri pykrita/fast_sketch_cleanup podprieč inku)
