Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Képbővítési folyamat az Amazon Lookout for Vision számára

Amazon Lookout for Vision gépi tanuláson (ML) alapuló anomália-észlelési szolgáltatást biztosít normál képek (azaz objektumok képeinek) azonosítására nélkül hibák) vs anomáliás képek (azaz tárgyak képei val vel hibák), az anomáliák típusai (pl. hiányzó darab) és ezen anomáliák helye. Ezért a Lookout for Vision népszerű azon ügyfelek körében, akik automatizált megoldásokat keresnek az ipari minőségellenőrzéshez (pl. rendellenes termékek észleléséhez). Az ügyfelek adatkészletei azonban általában két problémával szembesülnek:

  1. Az anomáliákat tartalmazó képek száma nagyon alacsony lehet, és előfordulhat, hogy nem éri el a Lookout for Vision által előírt anomáliák/hibatípus-minimumot (~20).
  2. Előfordulhat, hogy a normál képek nem elég sokszínűek, és a modell meghibásodásához vezethet, ha a környezeti feltételek, például a világítás megváltozik a gyártás során

E problémák megoldása érdekében ez a bejegyzés bemutat egy képkibővítési folyamatot, amely mindkét problémát megcélozza: módot biztosít szintetikus rendellenes képek előállítására a képeken lévő objektumok eltávolításával, és további normál képeket generál ellenőrzött kiegészítések, például Gauss-zaj, színárnyalat, telítettség, pixel bevezetésével. értékskálázás stb. Használjuk a imgaug könyvtárat a kiegészítés bevezetésére, amely további rendellenes és normál képeket generál a második problémához. Mi használjuk Amazon Sagemaker Ground Truth objektumeltávolító maszkok létrehozásához és a Láma algoritmus az objektumok eltávolítására az első probléma esetén képfestési (objektumeltávolítás) technikák segítségével.

A bejegyzés többi része a következőképpen épül fel. A 3. részben bemutatjuk a normál képek képkiegészítő folyamatát. A 4. részben bemutatjuk az abnormális képek képnövelő folyamatát (más néven szintetikus hibagenerálás). Az 5. szakasz szemlélteti a Lookout for Vision edzési eredményeit a kiterjesztett adatkészlet használatával. A 6. szakasz bemutatja, hogy a szintetikus adatokra tanított Lookout for Vision modell hogyan teljesít a valódi hibákkal szemben. A 7. részben ennek a megoldásnak a költségbecsléséről beszélünk. A bejegyzéshez használt összes kód elérhető itt.

1. Megoldás áttekintése

ML diagram

A következő ábra a Lookout for Vision anomália lokalizációs modell képzéséhez javasolt képbővítési folyamat diagramja:

A fenti diagram egy képsorozat összegyűjtésével kezdődik (1. lépés). Az adatkészletet a normál képek kiegészítésével (3. lépés) és objektumeltávolító algoritmusok használatával (2. lépés, 5-6. lépés) bővítjük. Ezután az Amazon Lookout for Vision által felhasználható formátumba csomagoljuk az adatokat (7-8. lépés). Végül a 9. lépésben a csomagolt adatok segítségével betanítjuk a Lookout for Vision lokalizációs modellt.

Ez a képbővítési folyamat rugalmasságot biztosít az ügyfelek számára, hogy szintetikus hibákat generáljanak a korlátozott mintaadatkészletben, valamint több mennyiséget és változatosságot adnak a normál képekhez. Növelné a Lookout for Vision szolgáltatás teljesítményét, megoldaná az ügyféladatok hiányát, és gördülékenyebb lenne az automatizált minőségellenőrzési folyamat.

2. Adatok előkészítése

Innentől a bejegyzés végéig a nyilvánosságot használjuk FICS-PCB: Multimodális képadatkészlet automatizált nyomtatott áramköri lapok vizuális ellenőrzéséhez a alatt engedélyezett adatkészlet Creative Commons Nevezd meg! 4.0 International (CC BY 4.0) licenc a képbővítési folyamat és az ebből következő Lookout for Vision képzés és tesztelés illusztrálására. Ezt az adatkészletet az automatizált PCB vizuális ellenőrző rendszerek értékelésének támogatására tervezték. A Floridai Egyetem Security and AssuraNce (SCAN) laborjában gyűjtötték össze. El lehet érni itt.

Abból a hipotézisből indulunk ki, hogy az ügyfél csak egyetlen normál képet ad meg egy nyomtatott áramköri lapról (s10 PCB minta) adatkészletként. Ez a következőképpen látható:

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

3. Képbővítés normál képekhez

A Lookout for Vision szolgáltatáshoz hibatípusonként legalább 20 normál képre és 20 anomáliára van szükség. Mivel a mintaadatokból csak egy normál kép van, több normál képet kell generálnunk képkiegészítési technikák segítségével. ML szempontból több képtranszformáció betáplálása különböző kiegészítési technikákkal javíthatja a modell pontosságát és robusztusságát.

Használjuk imgaug normál képek képkiegészítésére. Az Imgaug egy nyílt forráskódú python-csomag, amely lehetővé teszi a képek bővítését az ML-kísérletekben.

Először telepítjük a imgaug könyvtár egy Amazon SageMaker jegyzetfüzet.

pip install imgaug

Ezután telepíthetjük az „IPyPlot” nevű python csomagot.

pip install ipyplot

Ezután végrehajtjuk az eredeti kép képkiegészítését transzformációk segítségével, beleértve GammaContrast, SigmoidContrastés LinearContrast, és Gauss-zajt adunk hozzá a képhez.

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)

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Mivel legalább 20 normál képre van szükségünk, és minél több, annál jobb, a fent bemutatott 10 transzformáció mindegyikéhez 4 kiterjesztett képet generáltunk normál képadatkészletünkként. A jövőben tervezzük, hogy a képeket különböző helyekre és különböző angyalokra helyezzük el, hogy a képzett modell kevésbé legyen érzékeny a tárgy elhelyezésére a rögzített kamerához képest.

4. Szintetikus hibagenerálás abnormális képek fokozására

Ebben a részben egy szintetikus hibageneráló folyamatot mutatunk be, amely növeli az adatkészletben anomáliákat tartalmazó képek számát. Vegye figyelembe, hogy az előző szakasztól eltérően, ahol új normál mintákat hozunk létre a meglévő normál mintákból, itt új anomália képeket hozunk létre normál mintákból. Ez vonzó szolgáltatás azoknak az ügyfeleknek, akiknek teljesen hiányoznak az ilyen típusú képek az adatkészleteikből, például eltávolítják a normál PCB kártya egy alkatrészét. Ez a szintetikus hibageneráló folyamat három lépésből áll: először szintetikus maszkokat generálunk a forrás (normál) képekből az Amazon SageMaker Ground Truth segítségével. Ebben a bejegyzésben egy adott hibatípust célozunk meg: hiányzó alkatrészt. Ez a maszkgenerálás maszkképet és jegyzékfájlt biztosít. Másodszor, a jegyzékfájlt módosítani kell, és egy SageMaker-végpont bemeneti fájljává kell alakítani. Harmadszor pedig a bemeneti fájl egy Object Removal SageMaker végpontba kerül, amely felelős a normál kép maszk által jelzett részeinek eltávolításáért. Ez a végpont biztosítja az eredményül kapott abnormális képet.

4.1 Szintetikus hibamaszkok létrehozása az Amazon SageMaker Ground Truth segítségével

Amazon Sagemaker Ground Truth az adatcímkézéshez

Az Amazon SageMaker Ground Truth egy adatcímkézési szolgáltatás, amely megkönnyíti az adatok címkézését, és lehetőséget ad az emberi annotátorok használatára. Amazon Mechanical Turk, külső szállítók vagy saját magánszemélyek. Követheti ez a bemutató címkézési munka beállításához.

Ebben a részben bemutatjuk, hogyan használjuk Amazon SageMaker Ground Truth a normál képeken a következő lépésben eltávolítandó bizonyos „összetevők” megjelölésére. Vegye figyelembe, hogy e bejegyzés kulcsfontosságú hozzájárulása az, hogy nem használjuk az Amazon SageMaker Ground Truth-ot a hagyományos módon (vagyis az edzésképek címkézésére). Itt maszk létrehozására használjuk a normál képek későbbi eltávolításához. A normál képeken ezek az eltávolítások szintetikus hibákat okoznak.

Ennek a bejegyzésnek a céljaira a címkézési munkánk során legfeljebb három komponenst távolítunk el a PCB kártyáról: IC, Resistor1 és Resistor2. Miután megadta a címkézési feladatot címkézőként, kiválaszthatja a címke nevét, és tetszőleges alakú maszkot rajzolhat a képről szintetikus hibaként eltávolítani kívánt összetevő köré. Vegye figyelembe, hogy a kísérlet címkenevében nem szerepeltetheti a „_” jelet, mivel a „_” karaktert használjuk a különböző metaadatok elkülönítésére a hibanévben a kód későbbi részében.

A következő képen egy zöld maszkot rajzolunk az IC (Integrated Circuit) köré, egy kék maszkot az 1. ellenállás köré és egy narancssárga maszkot a 2. ellenállás köré.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Miután kiválasztottuk a beküldése gombot, az Amazon SageMaker Ground Truth létrehoz egy kimeneti maszkot fehér háttérrel és egy manifest fájlt az alábbiak szerint:
Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. 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"}}

Vegye figyelembe, hogy eddig nem generáltunk rendellenes képeket. Csak azt a három összetevőt jelöltük meg, amelyeket mesterségesen eltávolítunk, és amelyek eltávolítása abnormális képeket generál. Később mind (1) a fenti maszkképet, mind pedig (2) a jegyzékfájlból származó információkat használjuk bemenetként a rendellenes képalkotási folyamathoz. A következő rész bemutatja, hogyan kell előkészíteni a bemenetet a SageMaker végponthoz.

4.2 Bemenet előkészítése a SageMaker végponthoz

Az Amazon SageMaker Ground Truth manifest átalakítása SageMaker végpont bemeneti fájlként

Először is felállítottunk egy Amazon Simple Storage Service (Amazon S3) vödör a képkiegészítő folyamat összes bemeneti és kimeneti adatának tárolásához. A bejegyzésben egy S3 nevű vödröt használunk qualityinspection. Ezután létrehozzuk az összes kibővített normál képet, és feltöltjük ebbe az S3 tárolóba.

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)

Ezután letöltjük a maszkot az Amazon SageMaker Ground Truth webhelyről, és feltöltjük egy „maszk” nevű mappába, amely abban az S3-ban található.

# 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')

Ezt követően letöltjük a manifest fájlt az Amazon SageMaker Ground Truth címkézési feladatból, és json-sorokként olvassuk be.

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)

Végül létrehozunk egy bemeneti szótárat, amely rögzíti a bemeneti kép S3 helyét, maszk helyét, maszkinformációit stb., elmentjük txt fájlként, majd feltöltjük a cél S3 vödör „bemeneti” mappájába.

# 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')

A következő minta bemeneti fájl:

{"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 Aszinkron SageMaker végpont létrehozása szintetikus hibák létrehozásához hiányzó összetevőkkel

4.3.1 LaMa modell

Az összetevők eltávolításához az eredeti képből egy nyílt forráskódú PyTorch-modellt használunk, a LaMa from LaMa: Felbontás-robusztus nagy maszkfestés Fourier-konvolúciókkal. Ez a Samsung AI által kifejlesztett, nagy felbontású, nagy maszkba festett modell Fourier-konvolúciókkal. A modell bemenetei egy kép és egy fekete-fehér maszk, a kimenet pedig egy kép, amelyen a maszkon belüli objektumok vannak eltávolítva. Az Amazon SageMaker Ground Truth segítségével elkészítjük az eredeti maszkot, majd szükség szerint átalakítjuk fekete-fehér maszkká. A LaMa modellalkalmazást a következőképpen mutatjuk be:

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

4.3.2 Az Amazon SageMaker aszinkron következtetés bemutatása 

Amazon SageMaker aszinkron következtetés egy új következtetési lehetőség Amazon SageMaker amely sorba állítja a bejövő kéréseket és aszinkron módon feldolgozza azokat. Az aszinkron következtetés lehetővé teszi a felhasználók számára, hogy költséget takarítsanak meg azáltal, hogy automatikusan nullára skálázza a példányszámot, amikor nincs feldolgozandó kérés. Ez azt jelenti, hogy csak akkor kell fizetnie, ha a végpontja kéréseket dolgoz fel. Az új aszinkron következtetési opció ideális olyan munkaterhelésekhez, ahol a kérések mérete nagy (akár 1 GB), és a következtetések feldolgozási ideje percek nagyságrendje. A végpont telepítéséhez és meghívásához szükséges kód itt.

4.3.3 Végpontok telepítése

Az aszinkron végpont üzembe helyezéséhez először meg kell szereznünk a IAM szerepkör és állítson be néhány környezeti változót.

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'

Mint korábban említettük, nyílt forráskódú PyTorch modellt használunk LaMa: Felbontás-robusztus nagy maszkfestés Fourier-konvolúciókkal és az előre betanított modell fel lett töltve ide s3://qualityinspection/model/big-lama.tar.gz Az image_uri a szükséges keretrendszerrel és python verziókkal rendelkező docker-tárolóra mutat.

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
)

Ezután további aszinkron következtetés-specifikus konfigurációs paramétereket kell megadnunk a végpont-konfiguráció létrehozásakor.

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)

Ezután telepítjük a végpontot egy ml.g4dn.xlarge példányra a következő kód futtatásával:

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

Körülbelül 6-8 perc elteltével a végpont sikeresen létrejön, és megjelenik a SageMaker konzolon.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

4.3.4 A végpont meghívása

Ezután a korábban generált bemeneti txt fájlt használjuk a végpont bemeneteként, és a következő kóddal hívjuk meg a végpontot:

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')

A fenti parancs azonnal befejezi a végrehajtást. A következtetés azonban néhány percig folytatódik, amíg be nem fejezi az összes feladatot, és visszaadja az S3 tároló összes kimenetét.

4.3.5 Ellenőrizze a végpont következtetési eredményét 

A végpont kiválasztása után megjelenik a Monitor munkamenet. Válassza a „Naplók megtekintése” lehetőséget a következtetések konzolon történő ellenőrzéséhez.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Két naplórekord jelenik meg a naplófolyamokban. A nevezett data-log a végső következtetési eredményt mutatja, míg a másik naplórekord a következtetés részleteit mutatja, amelyet általában hibakeresési célokra használnak.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Ha a következtetési kérés sikeres, akkor a következő üzenet jelenik meg: Inference request succeeded.az adatnaplóban, és információt kaphat az üzenetben a teljes modell késleltetéséről, a teljes folyamatidőről stb. Ha a következtetés sikertelen, ellenőrizze a másik naplót a hibakereséshez. Az eredményt a következtetési kérés állapotának lekérdezésével is ellenőrizheti. Tudjon meg többet az Amazon SageMaker aszinkron következtetésről itt.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

4.3.6 Szintetikus hibák generálása hiányzó komponensekkel a végpont segítségével

A végpontban négy feladatot hajtunk végre:

  1. A Lookout for Vision anomália lokalizációs szolgáltatásához képenként egy hibára van szükség a betanítási adatkészletben a modell teljesítményének optimalizálása érdekében. Ezért színszűréssel el kell különítenünk a végpont különböző hibáihoz tartozó maszkokat.
    Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.
  2. A vonat/teszt adatkészlet felosztása a következő követelmény teljesítése érdekében:
    • legalább 10 normál kép és 10 anomália a vonatadatkészlethez
    • egy hiba/kép a vonatadatkészletben
    • legalább 10 normál kép és 10 anomália a tesztadatkészlethez
    • képenként több hiba is megengedett a tesztadatkészletben
  3. Generáljon szintetikus hibákat, és töltse fel azokat a cél S3 helyekre.

Képenként egy hibát és osztályonként több mint 20 hibát generálunk a vonatadatkészlethez, valamint képenként 1-3 hibát és osztályonként több mint 20 hibát a tesztadatkészlethez.

A következő példa a forrásképre és annak szintetikus hibáira három összetevővel: hiányzik az IC, az 1. ellenállás és a 2. ellenállás.

eredeti kép

eredeti kép

40_im_mask_IC_resistor1_resistor2.jpg (a hiba neve a hiányzó alkatrészeket jelzi)

40_im_mask_IC_resistor1_resistor2.jpg (a hiba neve a hiányzó alkatrészeket jelzi)

  1.  Manifest fájlokat generál a vonat/teszt adatkészlethez, amely rögzíti az összes fenti információt.

Végül vonat-/tesztjegyzékeket generálunk az információk rögzítésére, például a szintetikus hiba S3 helyére, a maszk S3 helyére, a hibaosztályra, a maszk színére stb.

A következőkben a jegyzékben található anomáliára és egy normál képre vonatkozó json-sorok minta látható.

Anomáliára:

{"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"}}

Normál képhez:

{"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 Amazon S3 mappastruktúra

A végpont bemenete és kimenete a cél S3 tárolóban tárolódik a következő struktúrában:

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

5 Lookout for Vision modell tréning és eredmény

5.1 Hozzon létre egy projektet, töltse fel az adatkészletet, és indítsa el a modell betanítását. 

  1. Először is lépjen a Lookout for Vision oldalra a webhelyről AWS konzol és hozzon létre egy projektet.
    Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.
  2. Ezután a választással létrehozhat egy edzési adatkészletet Importáljon képeket a SageMaker Ground Truth címkéjével és adja meg a SageMaker végpont által generált vonatadatkészlet-jegyzék Amazon S3 helyét.
    Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.
  3. Ezután a választással létrehozhat egy tesztadatkészletet Importáljon képeket a SageMaker Ground Truth címkéjével ismét, és adja meg a SageMaker végpont által generált tesztadatkészlet-jegyzékfájl Amazon S3 helyét.
    Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.
    .......Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.
    ....
  4. A vonat- és tesztadatkészletek sikeres feltöltése után kiválaszthatja a Vonat modell gombot a jobb felső sarokban az anomália lokalizációs modell képzésének elindításához.
    ......
  5. Kísérletünkben a modellnek valamivel több, mint egy órába telt a képzés befejezése. Amikor az állapot azt mutatja, hogy az edzés befejeződött, kiválaszthatja a modell hivatkozását az eredmény ellenőrzéséhez.
    ....
    Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

5.2 Modell edzés eredménye

5.2.1 A modell teljesítménymutatói 

Miután kiválasztotta a Model 1 Amint fentebb látható, a 100% Precision, 100% Recall és 100% F1 pontszámokból láthatjuk, hogy a modell teljesítménye meglehetősen jó. A címkénkénti teljesítményt is ellenőrizhetjük (hiányzó komponens), és örömmel tapasztaljuk, hogy mindhárom címke F1-es pontszáma 93% felett van, az átlagos IoU-k pedig 85% felettiek. Ez az eredmény kielégítő ehhez a kis adatkészlethez, amelyet a bejegyzésben bemutattunk.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

5.2.2 Szintetikus hibák észlelésének megjelenítése a tesztadatkészletben. 

Ahogy a következő kép is mutatja, minden kép hibás lesz normal or anomaly megbízhatósági pontszámot tartalmazó címkét. Ha anomáliáról van szó, akkor egy maszkot fog megjeleníteni a kép rendellenes területe felett, minden hibatípushoz eltérő színnel.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

A következő példa a tesztadatkészlet hiányzó összetevőinek kombinálására (ebben az esetben három hiba):

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Ezután összeállíthatja és csomagolhatja a modellt egy AWS IoT Greengrass az ebben a bejegyzésben található utasításokat követve, Határozza meg az anomáliák helyét az Amazon Lookout for Vision segítségével, GPU használata nélkül, és fuss le következtetéseket a modellen.

6. Tesztelje a szintetikus adatokra kiképzett Lookout for Vision modellt valódi hibákkal szemben

Annak tesztelésére, hogy a szintetikus hibára kiképzett modell jól teljesít-e a valódi hibákkal szemben, kiválasztottunk egy adatkészletet (aliens-dataset) itt kísérletet futtatni.

Először összehasonlítjuk a generált szintetikus hibát és a valódi hibát. A bal oldali kép valódi hiba hiányzó fejjel, a jobb oldali kép pedig egy ML modellel eltávolított fejjel generált hiba.

Valódi hiba

Valódi hiba

Szintetikus hiba

Szintetikus hiba

Másodszor, a Lookout for Vision próbaérzékeléseit használjuk, hogy teszteljük a modellt a valódi hibával szemben. A tesztképeket elmentheti az S3 vödörbe, és importálhatja őket az Amazon S3-ból, vagy feltöltheti a képeket a számítógépéről. Ezután válassza ki Anomáliák észlelése az észlelés futtatásához.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Végül láthatja a valódi hiba előrejelzési eredményét. A szintetikus hibákra kiképzett modell ebben a kísérletben pontosan tudja hibázni a valódi hibát.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

A szintetikus hibákra kiképzett modell nem mindig teljesít jól valódi hibákon, különösen az áramköri lapokon, amelyek sokkal bonyolultabbak, mint ez a mintaadatkészlet. Ha valódi hibákkal szeretné átnevelni a modellt, akkor válassza a narancssárga feliratú gombot Ellenőrizze a gép előrejelzéseit az előrejelzés eredményének jobb felső sarkában, majd ellenőrizze a következőképpen: Helyes or Helytelen.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

Ezután hozzáadhatja az ellenőrzött képet és címkét az edzési adatkészlethez a jobb felső sarokban található narancssárga gomb kiválasztásával a modell teljesítményének javítása érdekében.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.

7. Költségbecslés 

Ez a képbővítési folyamat a Lookout for Vision számára nagyon költséghatékony. A fenti példában az Amazon SageMaker Ground Truth Labeling, az Amazon SageMaker notebook és a SageMaker aszinkron végpontok telepítése és következtetése csak néhány dollárba kerül. A Lookout for Vision szolgáltatásért csak azért fizet, amit használ. Három összetevő határozza meg a számlát: a modell betanításának díjai (oktatási órák), a felhőben lévő rendellenességek észlelésének díjai (felhőkövetkeztetési órák) és/vagy a peremen lévő anomáliák észlelésének díjai (élkövetkeztetési egységek). Kísérletünkben a Lookout for Vision modellje valamivel több mint egy órát vett igénybe az edzés befejezéséhez, és edzésóránként 2.00 dollárba került. Ezenkívül a betanított modell segítségével következtetéseket vonhat le a felhőn vagy a szélén a feltüntetett ár mellett itt.

8. Tisztítsa meg

A szükségtelen költségek elkerülése érdekében a konzol segítségével törölje a végpontokat és az erőforrásokat, amelyeket a bejegyzés gyakorlatainak futtatása közben hozott létre.

  1. Nyissa meg a SageMaker konzolt, és törölje a következő erőforrásokat:
    • A végpont. A végpont törlése törli az ML számítási példányt vagy az azt támogató példányokat is.
      1. Alatt Következtetés, választ Végpontok.
      2. Válassza ki a példában létrehozott végpontot, válassza ki Hozzászólások, majd válassza ki töröl.
    • A végpont konfigurációja.
      1. Alatt Következtetés, választ Végpont konfigurációk.
      2. Válassza ki a példában létrehozott végpont-konfigurációt, majd válassza ki Hozzászólások, majd válassza ki töröl.
    • A modell.
      1. Alatt Következtetés, választ Modellek.
      2. Válassza ki a példában létrehozott modellt, válassza ki Hozzászólások, majd válassza ki töröl.
    • A notebook példány. A notebook példány törlése előtt állítsa le.
      1. Alatt jegyzetfüzet, választ Notebook példányok.
      2. Válassza ki a példában létrehozott jegyzetfüzet-példányt, majd válassza Hozzászólások, majd válassza ki megáll. A notebook példány néhány percet vesz igénybe, amíg leáll. Amikor az Állapot megváltozik megállt, folytassa a következő lépéssel.
      3. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Hozzászólások, majd válassza ki töröl.
  2. Nyissa meg a Amazon S3 konzol, majd törölje a modellműtermékek és a betanítási adatkészlet tárolására létrehozott tárolót.
  3. Nyissa meg a Amazon CloudWatch konzol, majd törölje az összes olyan naplócsoportot, amelyeknek a neve kezdődik /aws/sagemaker/.

A végpontot a SageMaker jegyzetfüzetből is törölheti a következő kód futtatásával:

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

9. Következtetés

Ebben a bejegyzésben bemutattuk, hogyan lehet szintetikus hibamaszkokat megjegyzésekkel ellátni az Amazon SageMaker Ground Truth segítségével, hogyan lehet különböző képkibővítési technikákat használni egy normál kép kívánt számú normál képpé alakítására, egy aszinkron SageMaker végpont létrehozására és a bemeneti fájl előkészítésére a végpontot, valamint meghívja a végpontot. Végül bemutattuk, hogyan használható a vonat/teszt jegyzék egy Lookout for Vision anomália lokalizációs modelljének betanításához. Ez a javasolt folyamat kiterjeszthető más ML modellekre szintetikus hibák generálására, és mindössze annyit kell tennie, hogy testreszabja a modellt és a következtetési kódot a SageMaker végpontban.

Kezdje a Lookout for Vision felfedezésével az automatikus minőségellenőrzés érdekében itt.


A szerzőkről

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.Kara Yang az AWS Professional Services adattudósa. Szenvedélyesen segíti ügyfeleit üzleti céljaik elérésében az AWS felhőszolgáltatásaival, és segített a szervezeteknek végpontok közötti AI/ML megoldások kidolgozásában számos iparágban, például a gyártásban, az autóiparban, a környezeti fenntarthatóságban és az űriparban.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.Octavi Obiols-Sales egy számítástechnikai tudós, aki a mély tanulásra (DL) és a gépi tanulásra szakosodott, és társult megoldások építészként oklevelet kapott. Széleskörű tudásával mind a felhőben, mind a szélsőségekben segít az üzleti eredmények felgyorsításában a végpontok közötti AI-megoldások kidolgozásával. Octavi a Kaliforniai Egyetemen (Irvine) szerzett PhD fokozatot számítástudományból, ahol a legkorszerűbb DL+HPC algoritmusokat dolgozta ki.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.Fabian Benitez-Quiroz az IoT Edge Data Scientist az AWS Professional Services területén. Az Ohio Állami Egyetemen szerzett PhD fokozatot számítógépes látásból és mintafelismerésből. A Fabian részt vesz abban, hogy segítse az ügyfeleket gépi tanulási modelljeik alacsony késleltetésű futtatásában az IoT-eszközökön és a felhőben.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.Manish Talreja az AWS IoT-megoldásokért felelős fő termékmenedzsere. Szenvedélyesen segíti ügyfeleit innovatív megoldások kidolgozásában az AWS IoT és ML szolgáltatások segítségével a felhőben és a széleken.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.Yuxin Yang AI/ML építész az AWS-nél, az AWS Machine Learning Specialty tanúsítványával. Lehetővé teszi az ügyfelek számára, hogy felgyorsítsák eredményeiket azáltal, hogy teljes körű AI/ML-megoldásokat készítenek, beleértve a prediktív karbantartást, a számítógépes látást és a megerősítő tanulást. Yuxin a Stanford Egyetemen szerzett MS-t, ahol a mély tanulásra és a nagy adatelemzésre összpontosított.

Képbővítési folyamat az Amazon Lookout for Vision PlatoBlockchain Data Intelligence számára. Függőleges keresés. Ai.Yingmao Timothy Li az AWS adatkutatója. 11 hónapja csatlakozott az AWS-hez, és a szolgáltatások és a gépi tanulási technológiák széles skálájával dolgozik, hogy megoldásokat hozzon létre különféle ügyfelek számára. Villamosmérnöki Ph.D fokozattal rendelkezik. Szabadidejében szeret szabadtéri játékokat, autóversenyzést, úszást, és sífutó kölyköt repül, hogy terepfutót és az eget fedezze fel.

 

Időbélyeg:

Még több AWS gépi tanulás