Analiza slik z umetno inteligenco za zaznavanje anomalij v industriji in nadzor kakovosti
Pregled
Ta storitev računalniškega vida ekipam v proizvodnji in nadzoru kakovosti pomaga učiti modele za analizo slik za vizualni pregled izdelkov. Zajema glavne korake za določen izdelek in nastavitev zajema slik: urejanje in anotiranje podatkovne zbirke slik, učenje modela, pregled rezultatov validacije in uporabo naučenega modela na novih proizvodnih slikah. Trenutni model podpira nadzorovano zaznavanje anomalij z označenimi primeri ustreznih izdelkov in izdelkov z napakami ter maskami napak na ravni slikovnih pik.
Rezultat
Glavni rezultat je naučen model za vizualno zaznavanje anomalij, prilagojen uporabnikovemu izdelku in pogojem zajema slik. Storitev pripravi tudi anotirano podatkovno zbirko slik in manifest, uporabljena pri učenju, zabeležene učne parametre in artefakte modela, validacijske metrike in vizualizacije ter rezultate napovedovanja (inference) za nove slike. Rezultati napovedovanja vključujejo oceno anomalije na ravni slike in lokalizacijski zemljevid, ki kaže, kje je model zaznal neobičajna območja. Ti izhodi podpirajo validacijo modela in poznejšo vključitev v postopek vizualnega nadzora kakovosti.
Podatki o storitvi
| Kategorija | Razvoj in uvajanje umetne inteligence |
| Področje | Vizualni pregled, nadzor kakovosti |
| Sektor | Industrija, pametna proizvodnja |
| Ciljni uporabniki | Proizvodna podjetja, mala in srednje velika industrijska podjetja, ponudniki industrijske avtomatizacije, ekipe za nadzor kakovosti in proizvodnjo |
| Vrsta storitve | Storitev računalniškega vida z umetno inteligenco na lastni infrastrukturi |
| Izhodi | Naučen model za vizualno zaznavanje anomalij, anotirana podatkovna zbirka slik in manifest, zapisi eksperimentov in artefakti modela, validacijske metrike in vizualizacije ter rezultati napovedovanja z ocenami anomalij in lokalizacijskimi zemljevidi. |
| Zahteve | Gostitelj x86-64 z grafičnim procesorjem NVIDIA, ki je dostopen Dockerju, reprezentativna podatkovna zbirka proizvodnih slik in trajna lokalna shramba. Linux je podprt neposredno. Windows 10 ali 11 je podprt prek Docker Desktop z zaledjem WSL 2 in vsebniki Linux. Gostitelji ARM in 32-bitni gostitelji x86 trenutno niso podprti. Nadzorovano zaznavanje anomalij zahteva oznake ustrezno/z napako na ravni slike in masko napake na ravni slikovnih pik za vsako sliko z napako. Podrobne zahteve glede strojne opreme in slikovnih podatkov so navedene v navodilih. |
| Omejitve | Uspešnost je odvisna od reprezentativnih slikovnih podatkov in stabilnega zajema slik. Spremembe izdelka, kamere, položaja, ozadja ali osvetlitve lahko zmanjšajo točnost. Naučeni model in njegov odločitveni prag je treba pred operativno uporabo validirati na slikah, reprezentativnih za proizvodnjo. |
| Razpoložljivost | Q3/2026 |
| Licenca | Licenca MIT |
| Slikovno gradivo | |
| Opis slikovnega gradiva |
Uporaba storitve
Ta storitev računalniškega vida uporablja podatkovne zbirke slik in deluje na infrastrukturi, ki jo upravlja vaša organizacija. Vaše slike, anotacije, naučeni modeli, rezultati validacije in zapisi eksperimentov ostanejo v shrambi, priključeni storitvi.
Trenutna metoda nadzorovanega zaznavanja anomalij se uči iz podatkovne zbirke slik z označenimi primeri ustreznih izdelkov in izdelkov z napakami. Maske napak kažejo, katera območja slike vsebujejo napako. Po učenju lahko model pregleda nove slike, jim dodeli oceno anomalije in označi neobičajna območja.
Model je namenjen podpori odločanju pri nadzoru kakovosti. Pred operativno uporabo ga validirajte na slikah, zajetih v dejanskih obratovalnih pogojih, in izberite ustrezen odločitveni prag. Validacijo ponovite ob vsaki spremembi izdelka ali nastavitve zajema slik.
Običajen postopek je iterativen:
- Pripravite podatkovno zbirko slik. Zberite slike, reprezentativne za proizvodnjo, in jih razdelite na učno in testno množico.
- Anotirajte slike. Dodajte oznake, maske ali druge anotacije, ki jih zahteva izbrana metoda.
- Učite model. Z učno množico pridobite uteži modela.
- Ovrednotite model. Izmerite uspešnost na ločeni testni množici in preglejte napačne rezultate.
- Izboljšajte podatke. Popravite anotacije, dodajte manjkajoče primere ali zberite bolj raznolike slike, nato ponovite učenje in vrednotenje.
- Uporabite končni model. Shranite izbrani model in izvedite napovedovanje na novih slikah, bodisi v storitvi bodisi prek nameščenega vmesnika za napovedovanje.
Pri večini praktičnih projektov se koraki 2–5 večkrat ponovijo, preden je model pripravljen za namestitev.

Vodeni ogled ohranja pregled nad celotnim postopkom med izbiro modela, pripravo podatkovne zbirke slik, učenjem, eksperimenti in napovedovanjem.
Nadzorovano zaznavanje anomalij s SuperSimpleNet
Pri nadzorovanem zaznavanju anomalij se model za vizualni pregled uči iz označene podatkovne zbirke slik ustreznih izdelkov in izdelkov z napakami. En model uporabljajte za slike, ki prikazujejo isto vrsto izdelka iz istega nespremenljivega pogleda. Kamera, izrez, merilo, položaj izdelka, ozadje in osvetlitev naj ostanejo enaki, podatki pa naj vključujejo običajno spremenljivost proizvodnje.
Ta metoda uporablja SuperSimpleNet. Povezani članek je No Label Left Behind: A Unified Surface Defect Detection Model for all Supervision Regimes.
Zahtevane anotacije in izhodi
Za tukaj opisano popolnoma nadzorovano učenje mora podatkovna zbirka slik vsebovati:
- slike ustreznih izdelkov in izdelkov z napakami za isti izdelek in pogled;
- oznako
normalaliabnormalna ravni slike za vsako sliko; - masko na ravni slikovnih pik, ki pokriva vse napake na vsaki sliki z napako.
Slike ustreznih izdelkov imajo prazno masko oziroma nobenega območja napake. Maska naj pokriva napako, ne da bi vključevala neproblematično teksturo izdelka ali ozadje.
Za vsako pregledano sliko naučeni model vrne:
- oceno anomalije, ki jo lahko s pragom pretvorite v razvrstitev slike med slike z napako ali brez napak;
- zemljevid anomalij na ravni slikovnih pik, ki ga lahko s pragom pretvorite v segmentacijo napovedane napake.
Ocena ni umerjena verjetnost napake. Model morate validirati in izbrati odločitveni prag za svoj proizvodni proces.
Zahteve
- gostitelj
x86-64z grafičnim procesorjem NVIDIA (gostitelji ARM in 32-bitni gostitelji x86 niso podprti); - Docker z dostopom do grafičnega procesorja;
- trajna lokalna shramba za podatkovne zbirke slik, stanje storitve in artefakte modela;
- reprezentativne učne in testne slike z zgoraj opisanimi oznakami in maskami napak;
- stabilen zajem slik, ki ustreza predvidenim obratovalnim pogojem.
Namestitev
Storitev zaženite na računalniku ali strežniku, ki ga upravlja vaša organizacija.
Zahteve za gostitelja
| Zahteva | Praktični minimum za dokumentirani primer |
|---|---|
| Gostiteljska platforma | Linux x86-64 ali Windows 10/11 x86-64 prek Docker Desktop z zaledjem WSL 2 in vsebniki Linux |
| Izvajalno okolje za vsebnike | Docker Engine 26.1 ali novejši v Linuxu; aktualna izdaja Docker Desktop v Windows |
| Izvajalno okolje za grafični procesor | Linux: NVIDIA Container Toolkit 1.14.5 ali novejši z omogočenim CDI; Windows: podpora grafičnemu procesorju v Docker Desktop prek WSL 2 |
| Gonilnik NVIDIA | Linux: gonilnik 580.95.05 ali novejši, združljiv s trenutno osnovno sliko CUDA 13.0 Update 2; Windows: aktualni gonilnik NVIDIA s podporo grafičnemu procesorju v WSL 2 |
| Pospeševalnik | Grafični procesor NVIDIA, dostopen znotraj Dockerja; 4 GB VRAM za učenje ali 2 GB za napovedovanje |
| CPU | 4 logična procesorska jedra |
| Pomnilnik RAM gostitelja | 16 GB |
| Omrežje | Dostop do interneta za prenos slike vsebnika in prvo namestitev modela |
| Brskalnik | Aktualen brskalnik z dostopom do gostitelja |
| Vrata | Prosta vrata TCP 443 za zasebni spletni vmesnik |
| Shramba | Vsaj 20 GB prostega prostora ter prostor za vaše podatkovne zbirke slik in shranjene eksperimente |
| Deljeni pomnilnik | 2 GB |
Objavljeni vsebnik je slika za Linux x86-64. Na gostitelju Windows x86-64 lahko deluje samo prek zaledja WSL 2 za vsebnike Linux v Docker Desktop; ne gre za izvorni vsebnik Windows. Dokumentirane ukaze lupine izvajajte v terminalu WSL in zamenjajte:
--device nvidia.com/gpu=all
z:
--gpus all
Gostitelji ARM, vključno z Windows on ARM, in 32-bitni gostitelji x86 trenutno niso podprti. Repozitorij zgradi vsebnik Linux iz osnovne slike NVIDIA CUDA Ubuntu, objavljena slika pa je na voljo samo za Linux x86-64.
Primer cell tile je bil preverjen na GeForce GTX 1080 Ti z 11 GB VRAM in gonilnikom NVIDIA 580.159.03. Trenutni Dockerfile za Toolbox uporablja osnovno sliko nvidia/cuda:13.0.3-cudnn-runtime-ubuntu24.04. Neposredno preverjanje pomnilnika CUDA pri 256×256 slikovnih pikah je izmerilo približno 2.05 GB rezerviranega pomnilnika za učni korak s paketom 4 slik in 262 MB za napovedovanje na eni sliki. Zahtevi 4 GB in 2 GB vključujeta rezervo za dodatno porabo ogrodja in delovnega procesa. Višje ločljivosti, večji paketi, druge osnovne mreže, sočasni delovni procesi in drugi modeli zahtevajo več pomnilnika grafičnega procesorja.
Ocena 20 GB prostora upošteva objavljeno sliko vsebnika, nameščeno okolje modela, stanje storitve in pripravljeni primer. Proizvodne podatkovne zbirke slik in shranjene izvedbe MLflow zahtevajo dodaten prostor.
Pripravite trajne mape
mkdir -p \
~/slaif-ai-vision/datasets \
~/slaif-ai-vision/cache \
~/slaif-ai-vision/persist
Te mape ostanejo na gostitelju po ustavitvi vsebnika:
| Pot na gostitelju | Pot v vsebniku | Vsebina |
|---|---|---|
~/slaif-ai-vision/datasets |
/data |
Vhodne podatkovne zbirke in izvožene anotacije |
~/slaif-ai-vision/cache |
/cache |
Prenesena koda modelov in okolja modelov |
~/slaif-ai-vision/persist |
/persist |
Nastavitve storitve, anotacijski projekti, zapisi MLflow in naučeni artefakti |
Vsako podatkovno zbirko slik, ki jo želite odpreti v storitvi, kopirajte v ~/slaif-ai-vision/datasets. Vsako zbirko lahko postavite v svojo podmapo. Na primer:
cp -r /path/to/my-dataset ~/slaif-ai-vision/datasets/
Vsebnik vidi kopirano mapo pod /data. V tem primeru je ustrezna pot v vsebniku /data/my-dataset.
Prenesite sliko storitve
Objavljena slika je na voljo na Docker Hub:
docker pull vicoslab/slaif-ai-vision-toolbox:latest
Oznaka latest vedno prenese trenutno objavljeno različico za Linux x86-64. Prenos slike obsega približno 4 GB.
Zaženite storitev
Vmesnika ne izpostavljajte javnosti
Trenutna storitev ne zagotavlja avtentikacije uporabnikov. Spodnji ukaz veže vmesnik na 127.0.0.1. Vrat 443 ali 444 ne izpostavljajte javnemu internetu.
docker run --rm -it \
--name slaif-ai-vision \
--publish 127.0.0.1:443:443 \
--device nvidia.com/gpu=all \
--shm-size=2g \
--user "$(id -u):$(id -g)" \
--volume ~/slaif-ai-vision/datasets:/data \
--volume ~/slaif-ai-vision/cache:/cache \
--volume ~/slaif-ai-vision/persist:/persist \
--env "TOOLBOX_MODELS=W3sib3duZXIiOiJWaUNvUyIsImdyb3VwIjoiQW5vbWFseSBkZXRlY3Rpb24iLCJtb2RlbHMiOlsic3VwZXItc2ltcGxlLW5ldCJdLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vdmljb3NsYWIvdG9vbGJveC1tb2RlbHMiLCAiYnJhbmNoIjogInNsYWlmIn1d" \
vicoslab/slaif-ai-vision-toolbox:latest
Zakaj je vključen TOOLBOX_MODELS
TOOLBOX_MODELS storitvi pove, katere združljive modele naj prikaže ob prvem zagonu. Njegova vrednost je seznam JSON, kodiran z Base64, ki vsebuje repozitorij modelov, vejo in identifikatorje modelov. Vrednost v zgornjem ukazu naloži super-simple-net iz veje slaif repozitorija https://github.com/vicoslab/toolbox-models in ga ponudi za namestitev.
Kodirano vrednost lahko zamenjate z drugim nizom vira modelov, da ponudite drug združljiv model ali več modelov. S tem spremenite samo seznam prikazanih modelov; uporabniki še vedno izberejo, kateri model bodo namestili.
Spremenljivka inicializira konfiguracijo virov modelov samo, če ta še ne obstaja pod /persist. Pri ponovni uporabi obstoječe trajne mape vire modelov upravljajte prek Models.
Za učenje dodelite dovolj deljenega pomnilnika
V ukazu docker run ohranite --shm-size=2g. Če učni dnevnik poroča o napaki vodila, neuspelem delovnem procesu za nalaganje podatkov ali nezadostnem deljenem pomnilniku, ustavite vsebnik in ga ponovno zaženite z večjo vrednostjo, na primer --shm-size=4g. Ta nastavitev določa deljeni pomnilnik vsebnika, ne pomnilnika grafičnega procesorja.
Odprite https://localhost. Brskalnik vas lahko opozori na lokalno samopodpisano potrdilo HTTPS.
Namestite model
Storitev trenutno uporablja model SuperSimpleNet za nadzorovano zaznavanje anomalij. Namestite ga prek vmesnika storitve:
- Odprite Models.
- Poiščite SuperSimpleNet v skupini Anomaly detection.
- Izberite gumb za namestitev in potrdite.
- Odprite Status in počakajte, da se namestitev pojavi pod Finished.

Po namestitvi se SuperSimpleNet pojavi v skupini Anomaly detection. Odprite Status in preverite, da se je namestitev uspešno končala.
Prva namestitev prenese okolje modela in lahko traja nekaj minut. Če se opravilo pojavi pod Exited, odprite njegov dnevnik in zadnjo napako sporočite skrbniku ali podpori storitve.
Storitev ustavite s Ctrl+C v terminalu. Tri priklopljene mape ohranijo vaše delo.
Učenje in spremljanje na primeru cell tile
Primer cell tile je pripravljena podatkovna zbirka za nadzorovano učenje, namenjena preverjanju celotnega učnega cikla. Že vsebuje označene slike, maske napak in datoteko manifest.json. Anotiranje ni potrebno.
Primer potrjuje, da lahko storitev uči model, spremlja izvedbo, shrani naučene uteži in zabeleži rezultate validacije. Ni primerjalni preizkus točnosti v proizvodnji.
Pred začetkom primera cell tile opravite zgornje korake namestitve in namestite SuperSimpleNet.
Prenesite podatkovno zbirko primera
Prenesite in razširite cell-tile-demo.zip v mapo za podatkovne zbirke, ustvarjeno med namestitvijo:
cd ~/slaif-ai-vision/datasets
curl --fail --location --remote-name https://data.vicos.si/slaif/cell-tile-demo.zip
unzip cell-tile-demo.zip
Arhiv ZIP razširi eno mapo brez podmap z imenom cell-tiles-demo:
~/slaif-ai-vision/datasets/cell-tiles-demo/
├── damaged_0_0000_ls3_camera0.jpg
├── damaged_0_0000_ls3_camera0_label.bmp
├── ...
├── okay_3_0025_ls3_camera0.jpg
├── okay_3_0025_ls3_camera0_label.bmp
└── manifest.json
Paket vsebuje 207 slik JPG, 207 pripadajočih mask BMP in en manifest. Manifest vsebuje 103 neobičajne in 104 običajne primere. Uporablja en seznam data, ki ga SuperSimpleNet ob začetku učenja razdeli na 70% učnih in 30% testnih podatkov. Delitev je stratificirana po oznaki, vendar trenutno ni fiksna med izvedbami.
Znotraj storitve je manifest na voljo na poti:
/data/cell-tiles-demo/manifest.json

Vzorci z napakami in anotiranimi območji, prikazanimi rdeče (zgoraj), ter vzorci brez napak (spodaj).
Izvedite učenje na primeru
- Odprite Models in izberite nameščeni model SuperSimpleNet.
- Pri Dataset izberite I have an external dataset.
-
V Training from external dataset izberite zaznani
cell-tiles-demo/manifest.json. Če ni na seznamu, vnesite:/data/cell-tiles-demo/manifest.jsonNe pozabite priklopiti mape s podatkovnimi zbirkami na
/dataVsebnik lahko uporablja slike samo, če je mapa s podatkovnimi zbirkami na gostitelju priklopljena z
--volume ~/slaif-ai-vision/datasets:/datav ukazudocker run. Brez tega priklopa vsebnik ne more prebrati manifesta ali učnih slik. -
Nadaljujte na Training. Možnost Dataset manifest se izpolni samodejno.
- Pod Model options dodajte Experiment name in vnesite
Cell tile example. - Dodajte Batch size in vnesite
4. Velikost slike ohranite pri 256×256 slikovnih pikah in Training duration pri10epohah. - Izberite Start new. Storitev med učenjem odpre dnevnik opravila.
Z izbiro zunanjega manifesta se pripravljene anotacije uporabijo neposredno za učenje. Projekt Label Studio se ne ustvari.

V pogovornem oknu za zunanjo podatkovno zbirko izberite /data/cell-tiles-demo/manifest.json.

Preverite manifest, izvedbi določite jasno ime in izberite Start new.
Na preverjeni konfiguraciji z GTX 1080 Ti se je to učenje z 10 epohami končalo v približno 8 minutah. Referenčna izvedba je zmanjšala avg_loss z 1.306 na 0.552 in dosegla I-AUROC 0.922, P-AUROC 0.955 ter AUPRO 0.816. Na primerljivi strojni opremi predvidite približno 7–10 minut.
Te vrednosti so funkcionalna referenca za eno izvedbo s priloženim arhivom in dokumentiranimi nastavitvami, ne jamstvo za proizvodnjo. Samodejna delitev na učno in testno množico se lahko med izvedbami spreminja. Na čas izvajanja in rezultate lahko vplivajo tudi strojna oprema ter različice gonilnikov in knjižnic.
Spremljajte učenje
Opravilo spremljajte na strani z njegovim dnevnikom. Nanjo se lahko vrnete prek Status. Počakajte, da se opravilo uspešno konča. Če se pojavi pod Exited, preglejte zadnjo sporočeno napako.
Na strani opravila izberite Go to experiments ali odprite Experiments in nato eksperiment SuperSimpleNet. Končana izvedba naj vsebuje:
- grafe izgube pod Model metrics;
- parametre, uporabljene pri učenju;
- validacijske metrike;
weights.pt, naučene uteži modela;results.json, povzetek metrik;image_scores.json, ocene posameznih validacijskih slik.

Končana izvedba primera v MLflow. Filtriranje po loss prikaže spreminjanje avg_loss skozi deset učnih epoh.
Učni primer je končan, ko se opravilo zaključi in je v eksperimentu prisotna datoteka weights.pt.
Prenesite končne izhode
Izberite Finish tour. Končna stran prikaže podatkovno zbirko cell tile in z njo povezane artefakte eksperimenta, vključno z naučenimi utežmi in izhodi vrednotenja.
Z gumbom za prenos ob Dataset ali Experiment artifacts prenesite vse v izbranem razdelku. Mape lahko tudi razširite in prenesete posamezno datoteko ali podmapo. To so kopije datotek, shranjenih v priklopljenih shrambah /data in /persist.
Naprednejša navodila
Po končanem pripravljenem primeru nadaljujte z navodili glede na naslednji cilj:
- Priprava in anotiranje lastne podatkovne zbirke slik — uvozite proizvodne slike, jih anotirajte v Label Studio in izvozite manifest, ki ga pričakuje model.
- Pregled eksperimentov in artefaktov — primerjajte učne izvedbe, metrike, naučene uteži in validacijske izhode v MLflow.
- Napovedovanje in validacija namestitve — naložite naučene uteži, validirajte rezultate na novih slikah in v drugo spletno stran vgradite vmesnik, namenjen samo napovedovanju.
- Razvoj lastnega modela — dodajte združljiv model ali razširite obstoječi modul modela, učni postopek, kodo za napovedovanje in uporabniški vmesnik storitve.
Priprava in anotiranje lastne podatkovne zbirke slik
Zahtevane anotacije so odvisne od metode pregleda. Metoda lahko uporablja samo slike ustreznih izdelkov, oznake ustrezno/z napako na ravni slike, maske napak ali njihovo kombinacijo. Pred anotiranjem velike podatkovne zbirke preverite navodila za metodo.
Zajemite reprezentativne slike
Uporabite isto kamero, objektiv, razdaljo, položaj izdelka, ozadje in osvetlitev, kot jih nameravate uporabljati pozneje. Vključite običajno spremenljivost proizvodnje, ne le idealnih vzorcev.
Slike istega fizičnega izdelka ali iz istega zajema ohranite v isti podatkovni množici. Skoraj podvojene slike v učni in testni množici lahko dajo zavajajoče dobre rezultate.
Zabeležite vsaj:
- identifikator izdelka ali proizvodne serije;
- datum zajema in nastavitev kamere;
- ali je na sliki ustrezen izdelek ali izdelek z napako, kadar je to zahtevano;
- masko napake ali drugo anotacijo, specifično za metodo, kadar je to zahtevano.
Formati in smernice za najmanjši obseg podatkovne zbirke
Podatkovne zahteve so odvisne od izbranega modela in njegove implementacije. Za trenutno integracijo SuperSimpleNet:
- uporabljajte slike RGB v formatu
JPEG,PNGaliTIFF; koda za napovedovanje pretvori vhodne slike v RGB; - uporabljajte enokanalno masko v brezizgubnem formatu
PNGaliBMP, z enako prikazano širino in višino kot njena slika; - za ozadje uporabite vrednost
0, za slikovne pike napake pa neničelno vrednost, običajno255; - za maske ne uporabljajte izgubnega formata
JPEG; - pred učenjem dosledno uskladite orientacijo slike in maske.
Priloženi primer preverja slike JPG z maskami BMP. Label Studio izvaža maske kot brezizgubne datoteke .label.png. Manj pogosti formati lahko delujejo prek nameščenih bralnikov slik, vendar jih preverite pred pripravo velike podatkovne zbirke.
Za popolnoma nadzorovano učenje in samodejno razdeljen seznam data sta tehnični minimum dve običajni in dve neobičajni sliki, da sta lahko oba razreda zastopana v stratificirani učni in testni množici. To zadostuje samo za preizkus kode. Trenutno se učenje SuperSimpleNet ustavi z napako, če katera od množic ne vsebuje običajnih vzorcev. Za uporaben model zberite bistveno več slik in zajemite vse različice izdelka, dopustne proizvodne razlike, vrste, velikosti in položaje napak ter pogoje zajema, ki jih mora model obvladovati. Pripravljeni demonstracijski primer uporablja 207 slik: 104 običajne in 103 neobičajne.
Če manifest za nadzorovano učenje določa izrecna seznama train in test, v oba vključite običajne in neobičajne primere. Vsaka množica mora vsebovati vsaj eno običajno sliko. Slike istega fizičnega izdelka ali iz istega zaporedja zajema ohranite v isti množici.
Manifest podatkovne zbirke
Učenje uporablja manifest JSON, ki navaja slike in njihove anotacije. Poti so relativne glede na mapo z datoteko manifest.json. Običajen označen primer je videti takole:
{
"train": [
{"image_path": "images/train/item-001.png", "label": "normal"},
{
"image_path": "images/train/item-017.png",
"label": "abnormal",
"mask_path": "masks/train/item-017.png"
}
],
"test": [
{"image_path": "images/test/item-101.png", "label": "normal"}
]
}
Vse metode ne uporabljajo vseh polj. Upoštevajte zahteve za manifest, navedene v navodilih za izbrano metodo.
Priporočena sta izrecna seznama train in test, ker olajšata ponovljivost in revizijo. Testno množico hranite ločeno od podatkov, uporabljenih za prilagajanje možnosti modela ali odločitvenega praga.
Če anotirana podatkovna zbirka slik in manifest že obstajata pod priklopljeno mapo /data, izberite model, odprite Dataset in izberite I have an external dataset. Storitev prikaže zaznane datoteke manifest.json. Izberite eno s seznama ali vnesite njeno celotno pot v vsebniku, nato nadaljujte na Training. S tem uporabite manifest neposredno, ne da bi ustvarili projekt Label Studio.
Anotirajte slike v storitvi
- Odprite Models in izberite model, ki ga želite učiti.
- Pri Dataset izberite Create a new labeling project.
- Izberite mapo s slikami pod
/data. - Preglejte izbrane slike in vzorce za vključevanje ali izključevanje datotek, nato ustvarite projekt.
- Odprite Labeling in izberite prvo sliko.
- Nad sliko izberite zahtevano oznako, na primer Anomaly. Izbrana oznaka bo uporabljena za naslednjo anotacijo, ki jo narišete.
- V orodni vrstici na levi izberite anotacijsko orodje. Za masko napake uporabite Brush, Magic Wand ali drugo orodje za maske, ki ga ponuja projekt.
- Na sliki narišite anotacijo. Pokrijte območje napake, ne da bi vključili neproblematično teksturo ali ozadje.
-
Preglejte anotacijo in jo po potrebi popravite. Pred prehodom na naslednjo sliko pritisnite Submit za novo anotacijo ali Update pri urejanju obstoječe. Oddati morate vsako sliko, ki naj se uporabi pri učenju.
Oddajte tudi slike brez napak
Za zaznavanje anomalij odprite vsako sliko ustreznega izdelka in pritisnite Submit ali Update, ne da bi narisali območje napake. S tem se slika zabeleži kot
normal. Neoddana slika v izvoženih podatkih nima oznakenormalaliabnormalin se pri učenju ne upošteva. -
Na vsaki sliki z napako anotirajte vsa območja napak in jo nato oddajte.
Izvoz anotacij začasno ni na voljo
Trenutni izvozni delovni proces v Toolbox ne osvežuje stanja asinhronega izvoznega opravila v Label Studio. Lahko čaka do izteka petminutne časovne omejitve, ne da bi ustvaril manifest.json ali ponudil Go to training. Dokler to v Toolbox ni odpravljeno, uporabite zunanje pripravljen manifest prek Dataset → I have an external dataset. Vaše oddane anotacije Label Studio ostanejo shranjene v projektu.
Pri ročnem ustvarjanju projekta Label Studio izberite predlogo SLAIF za zaznavanje anomalij
Ta storitev pričakuje pripravljeni vmesnik Anomaly Detection. Projekti, ustvarjeni prek Dataset → Create a new labeling project, samodejno dobijo pripravljeni vmesnik izbranega modela, zato dodatna nastavitev ni potrebna.
Za projekt, ustvarjen ročno v Label Studio:
- Odprite projekt in pojdite na Settings → Labeling Interface.
- Izberite Browse Templates.
- V skupini predlog SLAIF AI Vision Toolbox by ViCoS izberite Anomaly Detection.
- Pred uvozom ali anotiranjem slik izberite Save.
Pri ustvarjanju projekta neposredno v Label Studio izberite isto predlogo prek Labeling Setup → Browse Templates. Ne uporabljajte splošne predloge za slike, ker se njene oznake in format izvoženih anotacij morda ne ujemajo z modelom.
Najprej izberite oznako, nato orodje
Za vsako posamezno napako:
- Izberite oznako, na primer Anomaly, s klikom nanjo ali pritiskom njene številske tipke na tipkovnici.
- Na levi izberite anotacijsko orodje in narišite posamezno napako.
- Pritisnite Esc, da zaključite to napako.
Za vsako dodatno napako ponovite vse tri korake: izberite oznako, izberite orodje, narišite napako in po koncu pritisnite Esc.

Maska anomalije po izbiri oznake Anomaly in orodja Brush. Pritisnite Esc, da zaključite območje, preden začnete naslednje.
Prilagodite anotacijski vmesnik
Label Studio določa anotacijski vmesnik s konfiguracijo XML. Konfiguracija določa prikazano sliko, razpoložljive oznake in orodja, kot so maske s čopičem, maske s čarobno paličico, pravokotniki, mnogokotniki, točke ali drugi kontrolniki.
Za ogled ali urejanje XML trenutnega projekta Label Studio:
- Odprite projekt v Labeling.
- Izberite Settings → Labeling Interface.
- Odprite pogled Code.
- Uredite XML in izberite Save.
S tem spremenite samo trenutni projekt Label Studio. Pripravljeni vmesnik za prihodnje projekte se ne spremeni.
Trenutna konfiguracija za zaznavanje anomalij na primer vsebuje oznako Anomaly in orodja za maske:
<View>
<Labels name="labels" toName="image">
<Label value="Anomaly" />
</Labels>
<Image name="image" value="$image" zoom="true" />
<Brush name="brush" toName="image" />
<MagicWand name="wand" toName="image" />
</View>
Modul modela določa privzeti XML v bloku config: | svoje datoteke config.yml. Za trenutno integracijo SuperSimpleNet odprite super-simple-net/config.yml. To datoteko spremenite, če naj prihodnji projekti, ustvarjeni prek storitve, uporabljajo drugačen vmesnik. Po objavi spremembe odprite Models, izberite ikono za osvežitev ob skupini vira modelov in potrdite posodobitev. Spremenjena privzeta nastavitev velja za novo ustvarjene projekte; obstoječe projekte posodobite prek Settings → Labeling Interface → Code.
Dodate lahko oznake ali drugo anotacijsko orodje, vendar je format anotacij del zahtevanega podatkovnega vmesnika modela. Izvozna koda in koda modela za učenje ali napovedovanje morata razumeti oznake in geometrijo, ki jih ustvari konfiguracija XML. Če spremenite samo XML, lahko nastanejo anotacije, ki jih model ne zna prebrati.
Pri uvedbi nove vrste anotacije:
- Anotacijski vmesnik: uredite
config.ymlv modulu modela ali za en obstoječi projekt uporabite Settings → Labeling Interface → Code. - Izvoz anotacij: če nova vrsta rezultata Label Studio ni podprta, posodobite
apps/ls-utils/export.pyv izvorni kodi ogrodja storitve. To je sprememba kode; v Label Studio zanjo ni nastavitve. - Manifest podatkovne zbirke: določite, kako se shrani izvožena oznaka ali geometrija, in posodobite dokumentirano specifikacijo manifesta modela.
- Učenje: posodobite
train.pyv modulu modela ali njegov pomožni nalagalnik podatkovne zbirke, da prebere nova polja manifesta. - Napovedovanje in predanotiranje: posodobite
infer.pyv modulu modela. Posodobiteui.html, če naj se novi izhod prikaže na strani za napovedovanje, inconfig.yml, če naj Label Studio prikaže ali prejme novo vrsto anotacije. - Preizkus celotnega postopka: ustvarite anotacijo, jo izvozite, učite model in preverite napovedovanje ali predanotiranje z novo vrsto.
Preverite podatkovno zbirko pred učenjem
- Ročno odprite vzorec slik in anotacij.
- Preverite, da obstaja vsaka pot v manifestu.
- Preverite oznake, maske ali druge anotacije, specifične za metodo.
- Preverite, da povezane slike niso razdeljene med učne in testne podatke.
- Shranite kopijo točnega manifesta, uporabljenega za vsak poročani rezultat.
Pregled eksperimentov in artefaktov
Podokno Experiments uporablja MLflow za beleženje učnih izvedb modela. Zapisi in izhodne datoteke se shranjujejo v mapo gostitelja, priklopljeno na /persist.
Odprite izvedbo
Učenje odpre stran z dnevnikom opravila. Ko je izvedba ustvarjena, tam izberite Go to experiments. Lahko tudi odprete Experiments, izberete eksperiment, ki ga je ustvaril model, in nato izvedbo po imenu in času začetka.

Pogled Overview združuje stanje izvedbe, zabeležene metrike, učne parametre ter povezave do metrik in artefaktov.
Izvedba običajno zabeleži:
- podatkovno zbirko in možnosti modela, uporabljene pri učenju;
- učne in validacijske metrike;
- naučene uteži ali kontrolne točke;
- datoteke vrednotenja in vizualizacije, specifične za metodo.
Razložite metrike
Imena metrik so odvisna od izbrane metode. Pred primerjavo vrednosti preberite dokumentacijo metode. Izvedbe primerjajte samo, če uporabljajo isto delitev podatkovne zbirke in isti postopek vrednotenja.

Za pregled učne krivulje filtrirajte grafe po loss. V tem primeru z 10 epohami se avg_loss enakomerno zmanjšuje, izgube posameznih paketov pa nihajo.
Modela ne izbirajte samo na podlagi ene metrike. Preglejte spregledane napake, napačne zavrnitve, rezultate lokalizacije in primere, zajete v realnih obratovalnih pogojih.
Artefakti
Artefakti so datoteke, shranjene med učno izvedbo. Vključujejo lahko:
- naučene uteži modela ali kontrolne točke;
- povzetek metrik;
- ocene posameznih validacijskih slik;
- lokalizacijske zemljevide ali druge vizualizacije;
- konfiguracijske datoteke, potrebne za ponovitev izvedbe.

Drevo artefaktov vsebuje naučeni model weights.pt in validacijske izhode. Vizualizacija neobičajnega vzorca tukaj prikazuje sliko, referenčno anotacijo, napovedano masko in zemljevid anomalij.
Imena artefaktov se razlikujejo glede na model. Uporabite Go to inference, kadar končano opravilo ponuja to možnost. Sicer odprite stran modela za napovedovanje, pod Model options dodajte možnost za njegove uteži ali kontrolno točko in izberite artefakt iz navedenih izvedb MLflow.
Varnostno kopirajte celotno mapo /persist. Uteži modela brez pripadajočega manifesta podatkovne zbirke, parametrov in zapisa vrednotenja otežujejo ponovljivost ali revizijo.
Izvedbe primerjajte pod enakimi pogoji
Pri spreminjanju učne možnosti:
- ohranite isto delitev na učno in testno množico;
- ohranite isto seme generatorja naključnih števil, kadar ga model omogoča nastaviti;
- spreminjajte po eno glavno možnost naenkrat;
- vsaki izvedbi določite opisno ime;
- zabeležite, zakaj ste izbrali končno izvedbo.
Napovedovanje in validacija namestitve
Napovedovanje (inference) pomeni uporabo naučenega modela na slikah, ki niso bile uporabljene pri učenju. Vhodi in prikaz rezultatov so odvisni od izbranega modela.
Zaženite napovedovanje
- Odprite končano učno opravilo in izberite Go to inference. Nove uteži se lahko izpolnijo samodejno.
- Lahko pa odprete stran modela za napovedovanje, pod Model options dodate možnost za njegove uteži ali kontrolno točko in izberete artefakt iz pretekle izvedbe MLflow.
- Po želji pod Model options dodajte Alias. Vzdevek poimenuje delovni proces in postane zadnji del njegovega URL-ja
/infer/<alias>. Vsak aktivni delovni proces mora imeti enoličen vzdevek. Če vzdevek ni nastavljen, se uporabi identifikator modela. - Izberite Start new. Stran se ponovno naloži in prikaže aktivni delovni proces v razširljivem podoknu.
- Odprite podokno delovnega procesa, naložite eno ali več slik in preglejte vrnjene rezultate. Ko želite ustaviti ta delovni proces, uporabite gumb za odstranitev v podoknu.
Preglejte izhode, ki jih določa izbrani model. Vključujejo lahko ocene, lokalizacijske prekrivne prikaze, maske, števila, razrede ali druge rezultate, specifične za metodo.

Delovni proces cell-tile-demo-10 lokalizira vidno napako na damaged_3_0005_ls3_camera0.jpg, sliki iz učne množice te izvedbe.
Validirajte rezultat
Pred uporabo napovedovanja za operativno odločanje:
- na ločeni validacijski množici izberite prag ali odločitveno pravilo, kadar ga metoda zahteva;
- preštejte spregledane napake in napačne zavrnitve;
- rezultate preglejte ločeno za vsako različico izdelka in vrsto napake;
- preglejte pravilne in napačne odločitve;
- dogovorite se, kaj storiti, kadar storitev ni na voljo ali je rezultat negotov.
Validacijo ponovite po vsaki spremembi izdelka, kamere, objektiva, položaja, ozadja, osvetlitve ali obdelave slik.
Vgradite vmesnik za napovedovanje v spletno stran
Storitev zagotavlja samostojno stran za vsak aktivni model za napovedovanje:
https://YOUR-INFERENCE-HOST/infer/MODEL-ALIAS
Ta stran vsebuje samo vmesnik za napovedovanje, specifičen za model. Ne omogoča dostopa do strani za anotiranje podatkovnih zbirk, učenje, sledenje eksperimentom ali upravljanje modelov. Zato jo je mogoče vgraditi v drugo spletno mesto z elementom iframe:
<iframe
src="https://YOUR-INFERENCE-HOST/infer/MODEL-ALIAS"
title="AI visual inspection"
style="width: 100%; min-height: 720px; border: 0;"
loading="lazy">
</iframe>
Vgrajena stran je na voljo, dokler je njen delovni proces za napovedovanje aktiven. Sočasno lahko deluje več delovnih procesov, če ima vsak drugačen vzdevek.
Zaženite delovni proces za iframe na zahtevo
Za iframe, namenjen proizvodni uporabi, lahko TOOLBOX_AUTOSTART preslika javni vzdevek v model in njegove možnosti napovedovanja. Zahteva za ta vzdevek zažene delovni proces, če ta še ni aktiven:
--env 'TOOLBOX_AUTOSTART={"quality-control":{"model":"super-simple-net","config":{"weights":"/persist/mlflow/artifacts/EXPERIMENT_ID/RUN_ID/artifacts/weights.pt"}}}'
Pot do uteži zamenjajte s potjo do datoteke naučenih uteži, ki obstaja znotraj vsebnika. Model mora biti že nameščen v trajni mapi /cache. Pri tem primeru vgradite:
https://YOUR-INFERENCE-HOST/infer/quality-control
Samodejno zagnani delovni proces se ustavi po približno 15 minutah brez zahtev. Poznejša zahteva ga ponovno zažene.
Izpostavite končno točko za napovedovanje
Za objavo ločene končne točke za napovedovanje v docker run dodajte to preslikavo:
--publish 127.0.0.1:444:444
Vezavo na localhost zamenjajte šele, ko skrbnik končno točko postavi za ustrezno zaščito s TLS, avtentikacijo in drugimi kontrolami dostopa. Javna končna točka trenutno omejuje vsakega odjemalca na eno zahtevo za napovedovanje vsakih 5 sekund in 100 zahtev za napovedovanje na dan. Te omejitve ne zagotavljajo avtentikacije in morda ne ustrezajo zmogljivosti ali pravilom vaše namestitve. Vgradnja strani za napovedovanje je sama po sebi ne zavaruje.
Za beleženje zahtev, ki prispejo do javne končne točke za napovedovanje, dodajte:
--env TOOLBOX_ACCESS_LOG=/persist/toolbox/access.log
Dnevnik beleži vzdevek končne točke, naslov odjemalca, čas in imena oddanih datotek. Trenutna datoteka se ob zagonu storitve ustvari na novo.
Razvoj lastnega modela
Ogrodje storitve lahko uporablja katerikoli model za analizo slik, ki implementira zahtevani vmesnik modula modela. Dodate lahko nov model ali razširite obstoječi modul z drugačnimi vhodi, anotacijami, učnimi možnostmi, izhodi ali elementi vmesnika.
Izhajajte iz trenutne izvorne kode modulov:
Preglejte module modelov SLAIF na GitHub
Repozitorij vsebuje več modulov modelov, ki jih lahko uporabite kot delujoče primere. Vsakega lahko razširite ali uporabite kot izhodišče za nov združljiv model. Ta navodila kot enega od možnih primerov uporabljajo razvrščanje po vrsti napake s SuperSimpleNet; ta razširitev ni objavljena funkcionalnost.
Kako se modul modela poveže s storitvijo
Storitev odkrije model v mapi, ki vsebuje majhen nabor dogovorjenih datotek. Modul SuperSimpleNet je celovit referenčni primer:
| Datoteka | Vloga v storitvi |
|---|---|
model.json |
Določa ime modela, opis in možnosti, prikazane pod Model options. Opisi so na voljo ob premiku kazalca nad možnost. Iste vrednosti se pretvorijo v argumente ukazne vrstice za učenje in napovedovanje. Formati datotek določajo tudi predloge manifestov in artefaktov MLflow. |
config.yml |
Določa anotacijski projekt za maske anomalij. |
setup.sh |
Prenese izvorno kodo modela, uveljavi popravke, ustvari njegovo okolje Python in namesti odvisnosti. Dejanje Install zažene to skripto. |
train.py |
Prebere manifest in možnosti modela, uči in ovrednoti model, beleži parametre in metrike v MLflow ter shrani artefakte, kot je weights.pt. Start new na strani Training zažene to skripto in odpre dnevnik njenega opravila. |
infer.py |
Naloži naučene uteži in implementira napovedovanje prek ukazne vrstice, HTTP in anotacijskega zaledja. Start new na strani Inference zažene ta modul kot poimenovani delovni proces. |
ui.html |
Določa brskalniški vmesnik, namenjen samo napovedovanju. Nalaga slike ter prikazuje vrnjene ocene in zemljevide anomalij. Isti fragment se uporablja v vsakem podoknu aktivnega delovnega procesa in na samostojni strani /infer/<alias>. |
| Datoteke s popravki | Prilagodijo izvorne odvisnosti in vizualizacijsko kodo okolju storitve ter beleženju artefaktov MLflow. |
Za možnost manifesta uporabite "format": "file:manifest.json", da lahko strani Dataset in Training odkrijeta manifeste pod /data. Za naučene uteži uporabite format datoteke, kot je "file:weights.pt", da lahko stran Inference prikaže ustrezne artefakte iz izvedb MLflow. Storitev sama doda neobvezno polje Alias, ki razlikuje več aktivnih delovnih procesov za napovedovanje; ni ga treba deklarirati v model.json.
Primer: dodajte razvrščanje po vrsti napake
Naslednji razdelki prikazujejo eno od možnih razširitev SuperSimpleNet. Standardni modul vrne oceno anomalije in zemljevid anomalij. Ta primer za slike, razvrščene med slike z napako, vrne tudi najverjetnejšo vrsto napake. Drug model ali razširitev lahko določa drugačno specifikacijo podatkovne zbirke, učni postopek in izhodni vmesnik.
Razširite specifikacijo podatkovne zbirke
Primerom z napako dodajte defect_type:
{
"image_path": "images/train/item-017.png",
"label": "abnormal",
"mask_path": "masks/train/item-017.png",
"defect_type": "scratch"
}
Uporabite fiksen seznam razredov, na primer scratch, dent in stain. Če lahko ena slika vsebuje več vrst, uporabite večoznačni izhod namesto tukaj prikazane zasnove z enim razredom.
Nalagalnik učnih podatkov posodobite tako, da:
- zavrne neznane vrste napak;
- preslika imena razredov v stabilne celoštevilske identifikatorje;
- uči klasifikator samo na slikah z napako znane vrste;
- shrani preslikavo imen razredov skupaj z artefakti modela.
Dodajte možnosti modela v uporabniški vmesnik
V model.json dodajte seznam razredov in morebitne nastavitve razvrščanja. Storitev te možnosti samodejno prikaže pod Model options in izbrane vrednosti posreduje v train.py in infer.py.
Preprosta možnost vrste niz lahko hrani fiksen seznam razredov:
"defect_types": {
"title": "Defect types",
"description": "Comma-separated class names in a fixed order.",
"type": "string",
"default": "scratch,dent,stain"
}
V kodi za učenje in napovedovanje uporabljajte ista imena možnosti. Če razširitev potrebuje kompleksnejši vhodni tip, ki ga model.json ne more predstaviti, je treba razširiti tudi uporabniški vmesnik storitve.
Razširite učenje in shranjene artefakte
train.py je vstopna točka za učenje, specifična za model, in povezava med splošnim vmesnikom storitve ter osnovno implementacijo SuperSimpleNet. Ko uporabnik izbere Start new, storitev prebere izbrane vrednosti, jih pretvori v argumente ukazne vrstice, zažene train.py in prikaže dnevnik njegovega opravila. Ogrodje ne implementira učnega postopka modela.
model.json in train.py skupaj določata celotno specifikacijo učenja:
model.jsondeklarira, kateri parametri so na voljo pod Model options, njihove tipe, opise in privzete vrednosti;train.pyprebere te vrednosti in določi njihov učinek;- naloži in preveri manifest, ustvari ali uporabi delitev na učno in testno množico ter določi režim nadzora pri učenju;
- ustvari nalagalnike podatkov in model, nato upravlja predobdelavo, izgube, optimizacijo, trajanje učenja in shranjevanje modela;
- določa, kdaj poteka validacija, katere metrike se izračunajo ter katere vizualizacije in povzetki JSON nastanejo;
- beleži parametre in metrike v MLflow ter shrani artefakte, kot je
weights.pt.
Nova učna možnost zato običajno zahteva spremembe na obeh mestih: najprej jo izpostavite v model.json, nato jo implementirajte in uporabite v train.py. Spremembe validacije, metrik ali shranjenih artefaktov sodijo v train.py; Toolbox prikaže nastale dnevnike in zapise MLflow, ne da bi sam implementiral to logiko, specifično za model.
Za razvrščanje po vrsti napake posodobite train.py tako, da:
- pridobi slikovne značilke iz modela ali napovedanega območja napake;
- doda klasifikacijsko glavo;
- združi njeno izgubo z obstoječimi izgubami za zaznavanje anomalij;
- beleži klasifikacijske metrike v trenutno izvedbo MLflow;
- shrani glavo, preslikavo razredov in drugo zahtevano konfiguracijo skupaj z naučenimi utežmi.
Ne razvrščajte samo na podlagi ene ocene anomalije. Poročajte o makro F1, natančnosti in priklicu po razredih ter matriki zamenjav. Ohranite izvorne metrike anomalij, da lahko razširitev primerjate s standardnim modelom.
Razširite napovedovanje in stran za napovedovanje
Posodobite infer.py, da poleg obstoječih izhodov vrne vrsto napake in njeno oceno:
{
"scores": [0.91],
"anomaly_maps": ["..."],
"defect_types": ["scratch"],
"defect_type_scores": [0.82]
}
Posodobite ui.html, da prikaže vrsto samo, kadar ocena anomalije preseže validirani prag anomalije. Ker se ui.html uporablja tudi na samostojni strani za napovedovanje, je sprememba vidna tako v storitvi kot pri vgradnji z iframe.
Če naj napovedovanje v podporo anotiranju vključuje vrsto napake, posodobite anotacijski odgovor, ki ga ustvari infer.py, in preverite, da config.yml vsebuje ustrezne oznake.
Pripravite paket prilagojenega modula in ga preizkusite
Ustvarite ločeno mapo modela, na primer super-simple-net-defect-types, namesto da neposredno spreminjate objavljeni modul. Nato:
- posodobite
setup.sh, če klasifikator potrebuje dodatne odvisnosti; - objavite novo mapo modela v repozitoriju Git;
- registrirajte jo s spodaj opisanim postopkom JSON za vir modelov;
- namestite jo prek Models;
- preizkusite učenje z manifestom, ki vsebuje vse konfigurirane vrste napak;
- preizkusite nalaganje shranjenih uteži v nov delovni proces za napovedovanje;
- preizkusite celotno stran modela in samostojno stran za iframe;
- potrdite, da rezultati samo za anomalije še vedno delujejo, kadar razvrščanje napak ni zahtevano.
Registrirajte lastni vir modelov
Vir modelov se registrira s seznamom JSON, kodiranim z Base64, bodisi prek TOOLBOX_MODELS ob prvi inicializaciji bodisi prek Add model source from clipboard. Storitev pred namestitvijo prebere model.json in ui.html iz registriranega vira. Učenje omogoči, kadar je prisoten train.py. Namestitev ostane ločena in zažene setup.sh šele, ko uporabnik izbere Install.
JSON za registracijo vira je ločen od datoteke model.json znotraj vsake mape modela. Storitvi pove, kateri repozitorij Git in katere mape modelov naj naloži. Na primer:
[
{
"owner": "My organisation",
"group": "Defect detection models",
"models": [
"super-simple-net-defect-types"
],
"url": "https://github.com/my-organisation/toolbox-models",
"branch": "main"
}
]
owneringroupsta prikazana na strani Models;- vsaka vrednost v
modelsse mora ujemati z mapo modela v repozitoriju; urlje repozitorij Git, ki vsebuje te mape;branchizbere vejo za kloniranje. Uporabite vejo, ki vsebuje objavljene module modelov; izpustite jo samo, kadar je privzeta veja repozitorija ustrezna.
V Linuxu JSON shranite in kodirajte z:
cat > model-source.json <<'JSON'
[
{
"owner": "My organisation",
"group": "Defect detection models",
"models": ["super-simple-net-defect-types"],
"url": "https://github.com/my-organisation/toolbox-models",
"branch": "main"
}
]
JSON
python3 -m json.tool model-source.json > /dev/null
base64 -w 0 model-source.json > model-source.b64
cat model-source.b64
Prvi ukaz zapiše JSON, drugi preveri njegovo sintakso, zadnja dva pa ustvarita in prikažeta niz Base64. Kodirano datoteko preverite z:
base64 --decode model-source.b64 | python3 -m json.tool
Kopirajte enovrstično vsebino model-source.b64. V obstoječi storitvi jo kopirajte v odložišče, odprite Models, izberite Add model source from clipboard in potrdite. Za prvo inicializacijo vstavite isti niz v vrednost TOOLBOX_MODELS, posredovano v docker run.
Uporaba spletnega kodirnika Base64
JSON vira modelov lahko prilepite v spletni kodirnik Base64 in kopirate kodirani izhod. Base64 ni šifriranje: ne vključujte gesel, žetonov za dostop, poverilnic za zasebne repozitorije ali drugih skrivnosti. Pred uvozom preverite dekodirani JSON.