Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Cev za povečanje slike za Amazon Lookout for Vision

Amazon Lookout for Vision zagotavlja storitev zaznavanja anomalij, ki temelji na strojnem učenju (ML), za prepoznavanje običajnih slik (tj. slik predmetov brez napake) v primerjavi z nepravilnimi slikami (tj. slikami predmetov z okvare), vrste anomalij (npr. manjkajoči del) in lokacijo teh anomalij. Zato je Lookout for Vision priljubljen med strankami, ki iščejo avtomatizirane rešitve za inšpekcijo industrijske kakovosti (npr. odkrivanje nenormalnih izdelkov). Vendar se podatkovni nizi strank običajno soočajo z dvema težavama:

  1. Število slik z anomalijami je lahko zelo nizko in morda ne doseže najmanjšega števila anomalij/napak, ki ga določa Lookout for Vision (~20).
  2. Običajne slike morda nimajo dovolj raznolikosti in lahko povzročijo odpoved modela, ko se med proizvodnjo spremenijo okoljski pogoji, kot je osvetlitev

Za premagovanje teh težav ta objava uvaja cevovod za povečavo slike, ki se ukvarja z obema težavama: ponuja način za ustvarjanje sintetičnih nenormalnih slik z odstranjevanjem predmetov na slikah in ustvarja dodatne običajne slike z uvedbo nadzorovanega povečanja, kot so Gaussov šum, barvni odtenek, nasičenost, piksel lestvico vrednosti itd. Uporabljamo imgaug knjižnico za uvedbo razširitve za ustvarjanje dodatnih nenormalnih in normalnih slik za drugo težavo. Uporabljamo Amazon Sagemaker Ground Truth za ustvarjanje mask za odstranjevanje predmetov in LaMa algoritem za odstranjevanje predmetov za prvo težavo z uporabo tehnik slikanja slike (odstranjevanje predmetov).

Preostali del objave je organiziran na naslednji način. V razdelku 3 predstavljamo cevovod za povečanje slike za običajne slike. V razdelku 4 predstavljamo cevovod za povečavo slike za nenormalne slike (ali sintetično ustvarjanje napak). Razdelek 5 ponazarja rezultate usposabljanja Lookout for Vision z uporabo razširjenega nabora podatkov. Razdelek 6 prikazuje, kako se model Lookout for Vision, usposobljen na sintetičnih podatkih, obnese proti resničnim napakam. V razdelku 7 govorimo o oceni stroškov za to rešitev. Do vse kode, ki smo jo uporabili za to objavo, lahko dostopate tukaj.

1. Pregled rešitve

ML diagram

Sledi diagram predlaganega cevovoda za povečanje slike za usposabljanje modela lokalizacije anomalije Lookout for Vision:

Zgornji diagram se začne z zbiranjem serije slik (1. korak). Nabor podatkov povečamo tako, da povečamo običajne slike (3. korak) in uporabimo algoritme za odstranjevanje predmetov (2., 5.–6. korak). Podatke nato zapakiramo v obliko, ki jo lahko porabi Amazon Lookout for Vision (koraki 7–8). Na koncu v 9. koraku uporabimo pakirane podatke za usposabljanje lokalizacijskega modela Lookout for Vision.

Ta cevovod za povečavo slik daje strankam prilagodljivost za ustvarjanje sintetičnih napak v omejenem vzorčnem naboru podatkov, kot tudi dodajanje več količine in raznolikosti običajnim slikam. To bi povečalo učinkovitost storitve Lookout for Vision, rešilo bi težavo s pomanjkanjem podatkov o strankah in olajšalo postopek samodejnega preverjanja kakovosti.

2. Priprava podatkov

Od tu do konca objave uporabljamo javnost FICS-PCB: večmodalni nabor slikovnih podatkov za avtomatiziran vizualni pregled tiskanih vezij nabor podatkov, licenciran pod a Licenca Creative Commons Attribution 4.0 International (CC BY 4.0). za ponazoritev cevovoda za povečanje slike in posledično usposabljanje in testiranje Lookout for Vision. Ta nabor podatkov je zasnovan za podporo vrednotenju avtomatiziranih sistemov za vizualno pregledovanje tiskanih vezij. Zbrani so bili v laboratoriju SeCurity and AssuraNce (SCAN) na Univerzi na Floridi. Do njega je mogoče dostopati tukaj.

Začnemo s hipotezo, da stranka kot nabor podatkov zagotovi samo eno običajno sliko plošče tiskanega vezja (vzorec tiskanega vezja s10). To je mogoče videti na naslednji način:

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

3. Povečanje slike za običajne slike

Storitev Lookout for Vision zahteva vsaj 20 običajnih slik in 20 anomalij na vrsto napake. Ker obstaja samo ena običajna slika iz vzorčnih podatkov, moramo ustvariti več običajnih slik s tehnikami povečave slike. S stališča ML lahko dovajanje več transformacij slike z uporabo različnih tehnik povečanja izboljša natančnost in robustnost modela.

Uporabili bomo imgaug za povečanje slike običajnih slik. Imgaug je odprtokodni paket python, ki vam omogoča razširitev slik v poskusih ML.

Najprej bomo namestili imgaug knjižnica v an Amazon SageMaker zvezek.

pip install imgaug

Nato lahko namestimo paket python z imenom 'IPyPlot'.

pip install ipyplot

Nato izvedemo povečanje slike izvirne slike z uporabo transformacij, vključno s GammaContrast, SigmoidContrastin LinearContrastin dodajanje Gaussovega šuma na sliko.

import imageio
import imgaug as ia
import imgaug.augmenters as iaa
import ipyplot
input_img = imageio.imread('s10.png')
noise=iaa.AdditiveGaussianNoise(10,40)
input_noise=noise.augment_image(input_img)
contrast=iaa.GammaContrast((0.5, 2.0))
contrast_sig = iaa.SigmoidContrast(gain=(5, 10), cutoff=(0.4, 0.6))
contrast_lin = iaa.LinearContrast((0.6, 0.4))
input_contrast = contrast.augment_image(input_img)
sigmoid_contrast = contrast_sig.augment_image(input_img)
linear_contrast = contrast_lin.augment_image(input_img)
images_list=[input_img, input_contrast,sigmoid_contrast,linear_contrast,input_noise]
labels = ['Original', 'Gamma Contrast','SigmoidContrast','LinearContrast','Gaussian Noise Image']
ipyplot.plot_images(images_list,labels=labels,img_width=180)

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Ker potrebujemo vsaj 20 običajnih slik in več, tem bolje, smo ustvarili 10 razširjenih slik za vsako od 4 transformacij, prikazanih zgoraj, kot naš običajni nabor slikovnih podatkov. V prihodnosti načrtujemo tudi preoblikovanje slik, ki bodo nameščene na različnih lokacijah in različnih angelih, tako da bo lahko izurjeni model manj občutljiv na postavitev objekta glede na fiksno kamero.

4. Generiranje sintetičnih napak za povečanje nenormalnih slik

V tem razdelku predstavljamo cevovod za ustvarjanje sintetičnih napak za povečanje števila slik z anomalijami v naboru podatkov. Upoštevajte, da v nasprotju s prejšnjim razdelkom, kjer ustvarjamo nove običajne vzorce iz obstoječih normalnih vzorcev, tukaj ustvarjamo nove slike anomalij iz običajnih vzorcev. To je privlačna lastnost za stranke, ki v svojih naborih podatkov popolnoma nimajo tovrstnih slik, npr. odstranitev komponente običajne tiskane plošče. Ta cevovod za ustvarjanje sintetičnih napak ima tri korake: najprej ustvarimo sintetične maske iz izvornih (normalnih) slik z uporabo Amazon SageMaker Ground Truth. V tej objavi ciljamo na določeno vrsto napake: manjkajoča komponenta. Ta generacija maske zagotavlja sliko maske in datoteko manifesta. Drugič, datoteko manifesta je treba spremeniti in pretvoriti v vhodno datoteko za končno točko SageMaker. In tretjič, vhodna datoteka je vhod v končno točko Object Removal SageMaker, ki je odgovorna za odstranjevanje delov običajne slike, ki jih označuje maska. Ta končna točka zagotavlja nastalo nenormalno sliko.

4.1 Ustvarite sintetične maske napak z uporabo Amazon SageMaker Ground Truth

Amazon Sagemaker Ground Truth za označevanje podatkov

Amazon SageMaker Ground Truth je storitev označevanja podatkov, ki poenostavi označevanje podatkov in vam daje možnost uporabe človeških označevalcev prek Amazon Mehanični Turk, prodajalci tretjih oseb ali vaša zasebna delovna sila. Lahko sledite to tutorski za nastavitev opravila označevanja.

V tem razdelku bomo pokazali, kako uporabljamo Amazon SageMaker Ground Truth da označite določene "komponente" v običajnih slikah, ki jih želite odstraniti v naslednjem koraku. Upoštevajte, da je ključni prispevek te objave ta, da Amazon SageMaker Ground Truth ne uporabljamo na tradicionalen način (to je za označevanje slik za usposabljanje). Tukaj ga uporabimo za ustvarjanje maske za prihodnjo odstranitev v običajnih slikah. Te odstranitve na običajnih slikah bodo povzročile sintetične napake.

Za namen te objave bomo pri našem označevanju umetno odstranili do tri komponente s plošče PCB: IC, upor1 in upor2. Ko vstopite v opravilo označevanja kot označevalec, lahko izberete ime etikete in okoli komponente, ki jo želite odstraniti s slike kot sintetično napako, narišete masko poljubne oblike. Upoštevajte, da v ime oznake za ta preizkus ne morete vključiti »_«, saj uporabljamo »_« za ločevanje različnih metapodatkov v imenu napake pozneje v kodi.

Na naslednji sliki narišemo zeleno masko okoli IC (integriranega vezja), modro masko okoli upora 1 in oranžno masko okoli upora 2.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Ko izberemo predloži bo Amazon SageMaker Ground Truth ustvaril izhodno masko z belim ozadjem in datoteko manifesta, kot sledi:
Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

{"source-ref":"s3://pcbtest22/label/s10.png","s10-label-ref":"s3://pcbtest22/label/s10-label/annotations/consolidated-annotation/output/0_2022-09-08T18:01:51.334016.png","s10-label-ref-metadata":{"internal-color-map":{"0":{"class-name":"BACKGROUND","hex-color":"#ffffff","confidence":0},"1":{"class-name":"IC","hex-color":"#2ca02c","confidence":0},"2":{"class-name":"resistor_1","hex-color":"#1f77b4","confidence":0},"3":{"class-name":"resistor_2","hex-color":"#ff7f0e","confidence":0}},"type":"groundtruth/semantic-segmentation","human-annotated":"yes","creation-date":"2022-09-08T18:01:51.498525","job-name":"labeling-job/s10-label"}}

Upoštevajte, da doslej nismo ustvarili nobene neobičajne slike. Pravkar smo označili tri komponente, ki bodo umetno odstranjene in katerih odstranitev bo ustvarila nenormalne slike. Kasneje bomo uporabili (1) zgornjo sliko maske in (2) informacije iz datoteke manifesta kot vhodne podatke za cevovod za ustvarjanje neobičajne slike. Naslednji razdelek prikazuje, kako pripraviti vnos za končno točko SageMaker.

4.2 Pripravite vnos za končno točko SageMaker

Pretvorite manifest Amazon SageMaker Ground Truth kot vhodno datoteko končne točke SageMaker

Najprej smo postavili Preprosta storitev shranjevanja Amazon (Amazon S3) vedro za shranjevanje vseh vhodnih in izhodnih podatkov za cevovod za povečanje slike. V objavi uporabljamo vedro S3 z imenom qualityinspection. Nato ustvarimo vse razširjene običajne slike in jih naložimo v to vedro S3.

from PIL import Image 
import os 
import shutil 
import boto3

s3=boto3.client('s3')

# make the image directory
dir_im="images"
if not os.path.isdir(dir_im):
    os.makedirs(dir_im)
# create augmented images from original image
input_img = imageio.imread('s10.png')

for i in range(10):
    noise=iaa.AdditiveGaussianNoise(scale=0.2*255)
    contrast=iaa.GammaContrast((0.5,2))
    contrast_sig = iaa.SigmoidContrast(gain=(5,20), cutoff=(0.25, 0.75))
    contrast_lin = iaa.LinearContrast((0.4,1.6))
      
    input_noise=noise.augment_image(input_img)
    input_contrast = contrast.augment_image(input_img)
    sigmoid_contrast = contrast_sig.augment_image(input_img)
    linear_contrast = contrast_lin.augment_image(input_img)
      
    im_noise = Image.fromarray(input_noise)
    im_noise.save(f'{dir_im}/input_noise_{i}.png')

    im_input_contrast = Image.fromarray(input_contrast)
    im_input_contrast.save(f'{dir_im}/contrast_sig_{i}.png')

    im_sigmoid_contrast = Image.fromarray(sigmoid_contrast)
    im_sigmoid_contrast.save(f'{dir_im}/sigmoid_contrast_{i}.png')

    im_linear_contrast = Image.fromarray(linear_contrast)
    im_linear_contrast.save(f'{dir_im}/linear_contrast_{i}.png')
    
# move original image to image augmentation folder
shutil.move('s10.png','images/s10.png')
# list all the images in the image directory
imlist =  [file for file in os.listdir(dir_im) if file.endswith('.png')]

# upload augmented images to an s3 bucket
s3_bucket='qualityinspection'
for i in range(len(imlist)):
    with open('images/'+imlist[i], 'rb') as data:
        s3.upload_fileobj(data, s3_bucket, 'images/'+imlist[i])

# get the image s3 locations
im_s3_list=[]
for i in range(len(imlist)):
    image_s3='s3://qualityinspection/images/'+imlist[i]
    im_s3_list.append(image_s3)

Nato prenesemo masko iz Amazon SageMaker Ground Truth in jo naložimo v mapo z imenom 'mask' v tem vedru S3.

# download Ground Truth annotation mask image to local from the Ground Truth s3 folder
s3.download_file('pcbtest22', 'label/S10-label3/annotations/consolidated-annotation/output/0_2022-09-09T17:25:31.918770.png', 'mask.png')
# upload mask to mask folder
s3.upload_file('mask.png', 'qualityinspection', 'mask/mask.png')

Po tem prenesemo datoteko manifesta iz Amazon SageMaker Ground Truth labeling job in jo preberemo kot vrstice json.

import json
#download output manifest to local
s3.download_file('pcbtest22', 'label/S10-label3/manifests/output/output.manifest', 'output.manifest')
# read the manifest file
with open('output.manifest','rt') as the_new_file:
    lines=the_new_file.readlines()
    for line in lines:
        json_line = json.loads(line)

Nazadnje ustvarimo vhodni slovar, ki beleži lokacijo S3 vhodne slike, lokacijo maske, informacije o maski itd., ga shranimo kot datoteko txt in nato naložimo v mapo 'input' ciljnega vedra S3.

# create input dictionary
input_dat=dict()
input_dat['input-image-location']=im_s3_list
input_dat['mask-location']='s3://qualityinspection/mask/mask.png'
input_dat['mask-info']=json_line['S10-label3-ref-metadata']['internal-color-map']
input_dat['output-bucket']='qualityinspection'
input_dat['output-project']='synthetic_defect'

# Write the input as a txt file and upload it to s3 location
input_name='input.txt'
with open(input_name, 'w') as the_new_file:
    the_new_file.write(json.dumps(input_dat))
s3.upload_file('input.txt', 'qualityinspection', 'input/input.txt')

Sledi vzorčna vhodna datoteka:

{"input-image-location": ["s3://qualityinspection/images/s10.png", ... "s3://qualityinspection/images/contrast_sig_1.png"], "mask-location": "s3://qualityinspection/mask/mask.png", "mask-info": {"0": {"class-name": "BACKGROUND", "hex-color": "#ffffff", "confidence": 0}, "1": {"class-name": "IC", "hex-color": "#2ca02c", "confidence": 0}, "2": {"class-name": "resistor1", "hex-color": "#1f77b4", "confidence": 0}, "3": {"class-name": "resistor2", "hex-color": "#ff7f0e", "confidence": 0}}, "output-bucket": "qualityinspection", "output-project": "synthetic_defect"}

4.3 Ustvarite asinhrono končno točko SageMaker za ustvarjanje sintetičnih napak z manjkajočimi komponentami

4.3.1 Model LaMa

Za odstranitev komponent iz izvirne slike uporabljamo odprtokodni model PyTorch, imenovan LaMa from LaMa: ločljivostno robustno slikanje velike maske s Fourierjevimi konvolucijami. To je ločljivostno robusten model velike maske v slikanju s Fourierjevimi konvolucijami, ki ga je razvil Samsung AI. Vhodi za model so slika in črno-bela maska, izhod pa je slika z odstranjenimi predmeti znotraj maske. Za ustvarjanje izvirne maske uporabljamo Amazon SageMaker Ground Truth, nato pa jo po potrebi spremenimo v črno-belo masko. Aplikacija modela LaMa je ​​prikazana na naslednji način:

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

4.3.2 Predstavitev asinhronega sklepanja Amazon SageMaker 

Asinhrono sklepanje Amazon SageMaker je nova možnost sklepanja v Amazon SageMaker ki postavlja dohodne zahteve v čakalno vrsto in jih asinhrono obdeluje. Asinhrono sklepanje omogoča uporabnikom, da prihranijo stroške s samodejnim skaliranjem števila primerkov na nič, ko ni nobenih zahtev za obdelavo. To pomeni, da plačate le, ko vaša končna točka obdeluje zahteve. Nova možnost asinhronega sklepanja je idealna za delovne obremenitve, kjer so zahteve velike (do 1 GB) in so časi obdelave sklepanja v minutah. Koda za uvajanje in priklic končne točke je tukaj.

4.3.3 Namestitev končne točke

Za uvedbo asinhrone končne točke moramo najprej pridobiti Vloga IAM in nastavite nekaj spremenljivk okolja.

from sagemaker import get_execution_role
from sagemaker.pytorch import PyTorchModel
import boto3

role = get_execution_role()
env = dict()
env['TS_MAX_REQUEST_SIZE'] = '1000000000'
env['TS_MAX_RESPONSE_SIZE'] = '1000000000'
env['TS_DEFAULT_RESPONSE_TIMEOUT'] = '1000000'
env['DEFAULT_WORKERS_PER_MODEL'] = '1'

Kot smo že omenili, uporabljamo odprtokodni model PyTorch LaMa: ločljivostno robustno slikanje velike maske s Fourierjevimi konvolucijami in vnaprej usposobljeni model je bil naložen v s3://qualityinspection/model/big-lama.tar.gz. image_uri kaže na docker vsebnik z zahtevanim okvirjem in različicami python.

model = PyTorchModel(
    entry_point="./inference_defect_gen.py",
    role=role,
    source_dir = './',
    model_data='s3://qualityinspection/model/big-lama.tar.gz',
    image_uri = '763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:1.11.0-gpu-py38-cu113-ubuntu20.04-sagemaker',
    framework_version="1.7.1",
    py_version="py3",
    env = env,
    model_server_workers=1
)

Nato moramo med ustvarjanjem konfiguracije končne točke podati dodatne konfiguracijske parametre, specifične za asinhrono sklepanje.

from sagemaker.async_inference.async_inference_config import AsyncInferenceConfig
bucket = 'qualityinspection'
prefix = 'async-endpoint'
async_config = AsyncInferenceConfig(output_path=f"s3://{bucket}/{prefix}/output",max_concurrent_invocations_per_instance=10)

Nato razmestimo končno točko na primerek ml.g4dn.xlarge z zagonom naslednje kode:

predictor = model.deploy(
    initial_instance_count=1,
    instance_type='ml.g4dn.xlarge',
    model_server_workers=1,
    async_inference_config=async_config
)

Po približno 6-8 minutah je končna točka uspešno ustvarjena in prikazana bo v konzoli SageMaker.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

4.3.4 Priklic končne točke

Nato uporabimo vhodno datoteko txt, ki smo jo ustvarili prej, kot vhod končne točke in prikličemo končno točko z naslednjo kodo:

import boto3
runtime= boto3.client('runtime.sagemaker')
response = runtime.invoke_endpoint_async(EndpointName='pytorch-inference-2022-09-16-02-04-37-888',
                                   InputLocation='s3://qualityinspection/input/input.txt')

Zgornji ukaz bo takoj končal izvajanje. Vendar se bo sklepanje nadaljevalo nekaj minut, dokler ne dokonča vseh nalog in vrne vseh izhodov v vedro S3.

4.3.5 Preverite rezultat sklepanja končne točke 

Ko izberete končno točko, boste videli sejo Monitor. Izberite 'Ogled dnevnikov', da preverite rezultate sklepanja v konzoli.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Dva zapisa dnevnika bosta prikazana v tokovih dnevnika. Tisti z imenom data-log bo prikazal končni rezultat sklepanja, medtem ko bo drugi zapis dnevnika prikazal podrobnosti sklepanja, ki se običajno uporablja za namene odpravljanja napak.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Če je zahteva za sklepanje uspešna, boste videli sporočilo: Inference request succeeded.v podatkovnem dnevniku in v sporočilu dobite tudi informacije o skupni zakasnitvi modela, skupnem času procesa itd. Če sklep ne uspe, preverite drugi dnevnik za odpravljanje napak. Rezultat lahko preverite tudi tako, da vprašate status zahteve za sklepanje. Izvedite več o asinhronem sklepanju Amazon SageMaker tukaj.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

4.3.6 Ustvarjanje sintetičnih napak z manjkajočimi komponentami z uporabo končne točke

V končni točki bomo opravili štiri naloge:

  1. Storitev lokalizacije anomalij Lookout for Vision zahteva eno napako na sliko v naboru podatkov za usposabljanje za optimizacijo delovanja modela. Zato moramo z barvnim filtriranjem ločiti maske za različne napake v končni točki.
    Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
  2. Razdelite nabor podatkov o vlaku/testiranju, da izpolnite naslednjo zahtevo:
    • vsaj 10 običajnih slik in 10 nepravilnosti za nabor podatkov o vlaku
    • ena napaka/slika v nizu podatkov o vlaku
    • vsaj 10 običajnih slik in 10 anomalij za testni niz podatkov
    • za nabor testnih podatkov je dovoljeno več napak na sliko
  3. Ustvarite sintetične napake in jih naložite na ciljne lokacije S3.

Ustvarimo eno napako na sliko in več kot 20 napak na razred za nabor podatkov o vlaku ter 1–3 napake na sliko in več kot 20 napak na razred za testni nabor podatkov.

Sledi primer izvorne slike in njenih sintetičnih napak s tremi komponentami: IC, upor 1 in upor 2 manjkajo.

izvirna slika

izvirna slika

40_im_mask_IC_resistor1_resistor2.jpg (ime napake označuje manjkajoče komponente)

40_im_mask_IC_resistor1_resistor2.jpg (ime napake označuje manjkajoče komponente)

  1.  Ustvarite datoteke manifesta za nabor podatkov o usposabljanju/testiranju, ki beleži vse zgornje informacije.

Končno bomo ustvarili manifeste usposabljanja/testiranja za beleženje informacij, kot so lokacija sintetične napake S3, lokacija maske S3, razred napake, barva maske itd.

Sledijo vzorčne vrstice json za anomalijo in običajno sliko v manifestu.

Za anomalijo:

{"source-ref": "s3://qualityinspection/synthetic_defect/anomaly/train/6_im_mask_IC.jpg", "auto-label": 11, "auto-label-metadata": {"class-name": "anomaly", "type": "groundtruth/image-classification"}, "anomaly-mask-ref": "s3://qualityinspection/synthetic_defect/mask/MixMask/mask_IC.png", "anomaly-mask-ref-metadata": {"internal-color-map": {"0": {"class-name": "IC", "hex-color": "#2ca02c", "confidence": 0}}, "type": "groundtruth/semantic-segmentation"}}

Za normalno sliko:

{"source-ref": "s3://qualityinspection/synthetic_defect/normal/train/25_im.jpg", "auto-label": 12, "auto-label-metadata": {"class-name": "normal", "type": "groundtruth/image-classification"}}

4.3.7 Struktura map Amazon S3

Vhod in izhod končne točke sta shranjena v ciljnem vedru S3 v naslednji strukturi:

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

5 Lookout for Vision model usposabljanja in rezultat

5.1 Nastavite projekt, naložite nabor podatkov in začnite usposabljanje modela. 

  1. Najprej lahko obiščete Lookout za Vision iz Konzola AWS in ustvarite projekt.
    Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
  2. Nato lahko z izbiro ustvarite nabor podatkov za usposabljanje Uvozite slike, označene s SageMaker Ground Truth in podajte lokaciji Amazon S3 manifest nabora podatkov o vlaku, ki ga ustvari končna točka SageMaker.
    Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
  3. Nato lahko z izbiro ustvarite testni nabor podatkov Uvozite slike, označene s SageMaker Ground Truth znova in navedite Amazon S3 lokacijo manifesta preskusnega nabora podatkov, ki ga je ustvarila končna točka SageMaker.
    Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
    .......Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
    ....
  4. Ko so nabori podatkov o usposabljanju in testu uspešno naloženi, lahko izberete Model vlaka gumb v zgornjem desnem kotu, da sprožite usposabljanje modela lokalizacije anomalije.
    ......
  5. V našem eksperimentu je model potreboval nekaj več kot eno uro, da je dokončal usposabljanje. Ko stanje pokaže, da je usposabljanje končano, lahko izberete povezavo modela, da preverite rezultat.
    ....
    Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

5.2 Rezultat usposabljanja modela

5.2.1 Meritve uspešnosti modela 

Po izbiri pri Model 1 kot je prikazano zgoraj, lahko iz rezultatov 100 % natančnosti, 100 % priklica in 100 % F1 vidimo, da je zmogljivost modela precej dobra. Prav tako lahko preverimo uspešnost na oznako (manjkajoča komponenta) in z veseljem bomo ugotovili, da so rezultati F1 vseh treh založb nad 93 %, povprečni IoU pa nad 85 %. Ta rezultat je zadovoljiv za ta majhen nabor podatkov, ki smo ga prikazali v objavi.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

5.2.2 Vizualizacija odkrivanja sintetičnih napak v naboru testnih podatkov. 

Kot prikazuje naslednja slika, bo vsaka slika defektirana kot normal or anomaly oznako z oceno zaupanja. Če gre za anomalijo, bo nad nenormalnim območjem na sliki prikazana maska ​​z drugačno barvo za vsako vrsto napake.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Sledi primer združenih manjkajočih komponent (v tem primeru tri napake) v naboru testnih podatkov:

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Nato lahko prevedete in zapakirate model kot AWS IoT Zelena trava komponento po navodilih v tej objavi, Identificirajte lokacijo anomalij z uporabo Amazon Lookout for Vision na robu brez uporabe GPEin zaženite sklepanje na modelu.

6. Preizkusite model Lookout for Vision, naučen na sintetičnih podatkih, glede na resnične napake

Da bi preizkusili, ali se lahko model, ki je naučen na sintetični napaki, dobro obnese v primerjavi z resničnimi napakami, smo izbrali nabor podatkov (nabor tujcev) iz tukaj izvesti poskus.

Najprej primerjamo generirano sintetično napako in pravo napako. Leva slika je resnična napaka z manjkajočo glavo, desna slika pa je ustvarjena napaka z glavo, odstranjeno z modelom ML.

Prava napaka

Prava napaka

Sintetična napaka

Sintetična napaka

Drugič, uporabimo poskusna zaznavanja v programu Lookout for Vision, da preizkusimo model glede na resnično napako. Preskusne slike lahko shranite v vedro S3 in jih uvozite iz Amazon S3 ali naložite slike iz svojega računalnika. Nato izberite Odkrivanje nepravilnosti za zagon odkrivanja.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Končno lahko vidite rezultat napovedi dejanske napake. Model, usposobljen za sintetične napake, lahko v tem poskusu natančno pokvari pravo napako.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Model, naučen na sintetičnih napakah, morda ne bo vedno dobro deloval na resničnih napakah, zlasti na ploščah z vezjem, ki so veliko bolj zapletena od tega vzorčnega nabora podatkov. Če želite ponovno usposobiti model z resničnimi napakami, lahko izberete oranžni gumb z oznako Preverite napovedi stroja v zgornjem desnem kotu rezultata napovedi in ga nato označite kot Prav or Nepravilno.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Nato lahko dodate preverjeno sliko in oznako naboru podatkov o usposabljanju, tako da izberete oranžni gumb v zgornjem desnem kotu, da izboljšate zmogljivost modela.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

7. Ocena stroškov 

Ta cevovod za povečanje slike za Lookout for Vision je zelo stroškovno učinkovit. V zgornjem primeru stane Amazon SageMaker Ground Truth Labeling, prenosni računalnik Amazon SageMaker in asinhrona končna točka in sklepanje le nekaj dolarjev. Za storitev Lookout for Vision plačate samo tisto, kar uporabljate. Obstajajo tri komponente, ki določajo vaš račun: stroški za usposabljanje modela (ure usposabljanja), stroški za odkrivanje anomalij v oblaku (ure sklepanja v oblaku) in/ali stroški za odkrivanje anomalij na robu (enote robnega sklepanja). V našem poskusu je model Lookout for Vision potreboval malo več kot eno uro za dokončanje usposabljanja in je stal 2.00 USD na uro usposabljanja. Poleg tega lahko uporabite usposobljeni model za sklepanje v oblaku ali na robu z navedeno ceno tukaj.

8. Očistite

Da se izognete nepotrebnim stroškom, s konzolo izbrišite končne točke in vire, ki ste jih ustvarili med izvajanjem vaj v objavi.

  1. Odprite konzolo SageMaker in izbrišite naslednje vire:
    • Končna točka. Z brisanjem končne točke izbrišete tudi primerek računanja ML ali primerke, ki ga podpirajo.
      1. Pod Sklepanje, izberite Končne točke.
      2. Izberite končno točko, ki ste jo ustvarili v primeru, izberite Proces, nato pa izberite Brisanje.
    • Konfiguracija končne točke.
      1. Pod Sklepanje, izberite Konfiguracije končne točke.
      2. Izberite konfiguracijo končne točke, ki ste jo ustvarili v primeru, izberite Proces, nato pa izberite Brisanje.
    • Model.
      1. Pod Sklepanje, izberite Modeli.
      2. Izberite model, ki ste ga ustvarili v primeru, izberite Proces, nato pa izberite Brisanje.
    • Primerek prenosnega računalnika. Preden izbrišete primerek zvezka, ga ustavite.
      1. Pod notebook, izberite Primeri prenosnih računalnikov.
      2. Izberite primerek zvezka, ki ste ga ustvarili v primeru, izberite Proces, nato pa izberite stop. Primerek prenosnega računalnika se ustavi nekaj minut. Ko Status spremeni v Ustavljen, pojdite na naslednji korak.
      3. Izberite Proces, nato pa izberite Brisanje.
  2. odprite Konzola Amazon S3, nato pa izbrišite vedro, ki ste ga ustvarili za shranjevanje artefaktov modela in nabora podatkov o usposabljanju.
  3. odprite Konzola Amazon CloudWatchin nato izbrišite vse skupine dnevnikov, katerih imena se začnejo z /aws/sagemaker/.

Končno točko lahko tudi izbrišete iz prenosnika SageMaker tako, da zaženete naslednjo kodo:

import boto3
sm_boto3 = boto3.client("sagemaker")
sm_boto3.delete_endpoint(EndpointName='endpoint name')

9. Zaključek

V tej objavi smo pokazali, kako označiti sintetične maske napak z uporabo Amazon SageMaker Ground Truth, kako uporabiti različne tehnike povečave slike za pretvorbo ene običajne slike v želeno število običajnih slik, ustvariti asinhrono končno točko SageMaker in pripraviti vhodno datoteko za končno točko, kot tudi priklic končne točke. Končno smo pokazali, kako uporabiti manifest usposabljanja/testiranja za usposabljanje modela lokalizacije anomalije Lookout for Vision. Ta predlagani cevovod je mogoče razširiti na druge modele ML za ustvarjanje sintetičnih napak, in vse, kar morate storiti, je, da prilagodite model in kodo sklepanja v končni točki SageMaker.

Začnite z raziskovanjem Lookout for Vision za avtomatiziran pregled kakovosti tukaj.


O avtorjih

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Kara Yang je podatkovni znanstvenik pri AWS Professional Services. Strastno želi pomagati strankam pri doseganju njihovih poslovnih ciljev s storitvami v oblaku AWS in je pomagala organizacijam zgraditi celovite rešitve AI/ML v številnih panogah, kot so proizvodnja, avtomobilska industrija, okoljska trajnost in vesoljska industrija.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Octavi Obiols-Prodaja je računalniški znanstvenik, specializiran za globoko učenje (DL) in strojno učenje, certificiran kot pridruženi arhitekt rešitev. Z obsežnim znanjem tako na področju oblaka kot na robu pomaga pospeševati poslovne rezultate z gradnjo celovitih rešitev umetne inteligence. Octavi je doktoriral iz računalniških znanosti na kalifornijski univerzi v Irvinu, kjer je promoviral najsodobnejše algoritme DL+HPC.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Fabian Benitez-Quiroz je IoT Edge Data Scientist v AWS Professional Services. Ima doktorat iz računalniškega vida in prepoznavanja vzorcev na Državni univerzi Ohio. Fabian sodeluje pri pomoči strankam pri izvajanju njihovih modelov strojnega učenja z nizko zakasnitvijo na napravah IoT in v oblaku.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Manish Talreja je glavni produktni vodja za rešitve interneta stvari pri AWS. Strastno želi pomagati strankam zgraditi inovativne rešitve z uporabo storitev AWS IoT in ML v oblaku in na robu.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Yuxin Yang je arhitekt AI/ML pri AWS, certificiran v AWS Machine Learning Speciality. Strankam omogoča, da pospešijo svoje rezultate z gradnjo celovitih rešitev AI/ML, vključno s predvidenim vzdrževanjem, računalniškim vidom in učenjem za krepitev. Yuxin je magistrirala na univerzi Stanford, kjer se je osredotočila na globoko učenje in analitiko velikih podatkov.

Cevovod za povečanje slike za Amazon Lookout za Vision PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Yingmao Timothy Li je podatkovni znanstvenik pri AWS. AWS se je pridružil pred 11 meseci in dela s širokim naborom storitev in tehnologij strojnega učenja za gradnjo rešitev za raznoliko skupino strank. Je doktor elektrotehnike. V prostem času uživa v igrah na prostem, dirkanju z avtomobili, plavanju in letenju z mladičem piperja, da prečka državo in raziskuje nebo.

 

Časovni žig:

Več od Strojno učenje AWS