În viziunea computerizată, segmentarea semantică este sarcina de a clasifica fiecare pixel dintr-o imagine cu o clasă dintr-un set cunoscut de etichete, astfel încât pixelii cu aceeași etichetă să aibă anumite caracteristici. Acesta generează o mască de segmentare a imaginilor de intrare. De exemplu, următoarele imagini arată o mască de segmentare a cat
eticheta.
În noiembrie 2018, Amazon SageMaker a anunțat lansarea algoritmului de segmentare semantică SageMaker. Cu acest algoritm, vă puteți antrena modelele cu un set de date public sau propriul set de date. Seturile de date de segmentare a imaginilor populare includ setul de date Common Objects in Context (COCO) și PASCAL Visual Object Classes (PASCAL VOC), dar clasele etichetelor lor sunt limitate și este posibil să doriți să antrenați un model pe obiecte țintă care nu sunt incluse în seturi de date publice. În acest caz, puteți utiliza Amazon SageMaker Ground Adevăr pentru a eticheta propriul set de date.
În această postare, demonstrez următoarele soluții:
- Utilizarea Ground Truth pentru a eticheta un set de date de segmentare semantică
- Transformarea rezultatelor din Ground Truth în formatul de intrare necesar pentru algoritmul de segmentare semantică încorporat SageMaker
- Utilizarea algoritmului de segmentare semantică pentru a antrena un model și a efectua inferențe
Etichetarea datelor de segmentare semantică
Pentru a construi un model de învățare automată pentru segmentarea semantică, trebuie să etichetăm un set de date la nivel de pixel. Ground Truth vă oferă opțiunea de a utiliza adnotatori umani Amazon Mechanical Turk, furnizori terți sau forța de muncă privată. Pentru a afla mai multe despre forța de muncă, consultați Creați și gestionați forța de muncă. Dacă nu doriți să gestionați singur forța de muncă de etichetare, Amazon SageMaker Ground Truth Plus este o altă opțiune excelentă ca nou serviciu de etichetare a datelor la cheie, care vă permite să creați rapid seturi de date de instruire de înaltă calitate și reduce costurile cu până la 40%. Pentru această postare, vă arăt cum să etichetați manual setul de date cu funcția de auto-segment Ground Truth și etichetarea crowdsource cu o forță de muncă Mechanical Turk.
Etichetare manuală cu Ground Truth
În decembrie 2019, Ground Truth a adăugat o funcție de auto-segment la interfața de utilizator de etichetare cu segmentare semantică pentru a crește debitul de etichetare și pentru a îmbunătăți acuratețea. Pentru mai multe informații, consultați Segmentarea automată a obiectelor atunci când se efectuează etichetarea segmentării semantice cu Amazon SageMaker Ground Truth. Cu această nouă funcție, vă puteți accelera procesul de etichetare a sarcinilor de segmentare. În loc să desenați un poligon strâns sau să folosiți instrumentul pensulă pentru a captura un obiect într-o imagine, desenați doar patru puncte: în punctele de sus, de jos, de stânga și de dreapta ale obiectului. Ground Truth ia aceste patru puncte drept intrare și folosește algoritmul Deep Extreme Cut (DEXTR) pentru a produce o mască strânsă în jurul obiectului. Pentru un tutorial care folosește Ground Truth pentru etichetarea segmentării semantice a imaginii, consultați Segmentarea semantică a imaginii. Următorul este un exemplu despre modul în care instrumentul de auto-segmentare generează automat o mască de segmentare după ce alegeți cele patru puncte extreme ale unui obiect.
Crowdsourcing etichetare cu o forță de muncă Mechanical Turk
Dacă aveți un set de date mare și nu doriți să etichetați manual sute sau mii de imagini, puteți utiliza Mechanical Turk, care oferă o forță de muncă umană la cerere, scalabilă, pentru a finaliza sarcini pe care oamenii le pot face mai bine decât computerele. Software-ul Mechanical Turk oficializează ofertele de locuri de muncă pentru miile de lucrători dispuși să lucreze la bucată, după cum le convine. Software-ul preia și munca efectuată și o compilează pentru dvs., solicitantul, care plătește muncitorii pentru munca satisfăcătoare (doar). Pentru a începe cu Mechanical Turk, consultați Introducere în Amazon Mechanical Turk.
Creați o lucrare de etichetare
Următorul este un exemplu de sarcină de etichetare Mechanical Turk pentru un set de date privind broaștele țestoase marine. Setul de date privind țestoasele marine este din competiția Kaggle Detectarea feței țestoasei marine, și am selectat 300 de imagini ale setului de date în scop demonstrativ. Țestoasa de mare nu este o clasă comună în seturile de date publice, așa că poate reprezenta o situație care necesită etichetarea unui set de date masiv.
- Pe consola SageMaker, alegeți Etichetarea locurilor de muncă în panoul de navigare.
- Alege Creați un job de etichetare.
- Introduceți un nume pentru postul dvs.
- Pentru Configurarea datelor de intrare, Selectați Configurare automată a datelor.
Aceasta generează un manifest de date de intrare. - Pentru Locația S3 pentru seturile de date de intrare, introduceți calea pentru setul de date.
- Pentru Categoria de sarcini, alege Imagine.
- Pentru Selectarea sarcinilor, Selectați Segmentarea semantică.
- Pentru Tipuri de lucrători, Selectați Amazon Mechanical Turk.
- Configurați setările pentru expirarea sarcinii, timpul de expirare a sarcinii și prețul per sarcină.
- Adăugați o etichetă (pentru această postare,
sea turtle
) și furnizați instrucțiuni de etichetare. - Alege Crea.
După ce ați configurat sarcina de etichetare, puteți verifica progresul etichetării pe consola SageMaker. Când este marcat ca finalizat, puteți alege lucrarea pentru a verifica rezultatele și a le utiliza pentru pașii următori.
Transformarea setului de date
După ce obțineți rezultatul de la Ground Truth, puteți utiliza algoritmii încorporați SageMaker pentru a antrena un model pe acest set de date. Mai întâi, trebuie să pregătiți setul de date etichetat ca interfață de intrare solicitată pentru algoritmul de segmentare semantică SageMaker.
Canale de date de intrare solicitate
Segmentarea semantică SageMaker se așteaptă ca setul dvs. de date de antrenament să fie stocat Serviciul Amazon de stocare simplă (Amazon S3). Setul de date din Amazon S3 este de așteptat să fie prezentat pe două canale, unul pentru train
și unul pentru validation
, folosind patru directoare, două pentru imagini și două pentru adnotări. Se așteaptă ca adnotările să fie imagini PNG necomprimate. Setul de date poate avea, de asemenea, o hartă de etichete care descrie modul în care sunt stabilite mapările adnotărilor. Dacă nu, algoritmul folosește un implicit. Pentru deducere, un punct final acceptă imagini cu un image/jpeg
tipul de conținut. Următoarea este structura necesară a canalelor de date:
Fiecare imagine JPG din directoarele de tren și validare are o imagine de etichetă PNG corespunzătoare cu același nume în train_annotation
și validation_annotation
directoare. Această convenție de denumire ajută algoritmul să asocieze o etichetă cu imaginea corespunzătoare în timpul antrenamentului. Trenul, train_annotation
, validare și validation_annotation
canalele sunt obligatorii. Adnotările sunt imagini PNG cu un singur canal. Formatul funcționează atâta timp cât metadatele (modurile) din imagine ajută algoritmul să citească imaginile de adnotare într-un număr întreg nesemnat pe 8 biți pe un singur canal.
Ieșire din jobul de etichetare Ground Truth
Ieșirile generate din jobul de etichetare Ground Truth au următoarea structură de foldere:
Măștile de segmentare sunt salvate în s3://turtle2022/labelturtles/annotations/consolidated-annotation/output
. Fiecare imagine de adnotare este un fișier .png numit după indexul imaginii sursă și ora la care a fost finalizată etichetarea acestei imagini. De exemplu, următoarele sunt imaginea sursă (Imagine_1.jpg) și masca sa de segmentare generate de forța de muncă din Mechanical Turk (0_2022-02-10T17:41:04.724225.png). Observați că indexul măștii este diferit de numărul din numele imaginii sursă.
Manifestul de ieșire din jobul de etichetare este în /manifests/output/output.manifest
fişier. Este un fișier JSON și fiecare linie înregistrează o mapare între imaginea sursă și eticheta acesteia și alte metadate. Următoarea linie JSON înregistrează o mapare între imaginea sursă afișată și adnotarea acesteia:
Imaginea sursă se numește Image_1.jpg, iar numele adnotării este 0_2022-02-10T17:41: 04.724225.png. Pentru a pregăti datele ca formatele de canal de date necesare ale algoritmului de segmentare semantică SageMaker, trebuie să schimbăm numele adnotării astfel încât să aibă același nume ca și imaginile JPG sursă. Și, de asemenea, trebuie să împărțim setul de date în train
și validation
directoarele pentru imaginile sursă și adnotările.
Transformați rezultatul dintr-o lucrare de etichetare Ground Truth în formatul de intrare solicitat
Pentru a transforma rezultatul, parcurgeți următorii pași:
- Descărcați toate fișierele din jobul de etichetare de pe Amazon S3 într-un director local:
- Citiți fișierul manifest și schimbați numele adnotărilor cu aceleași nume ca și imaginile sursă:
- Împărțiți trenul și seturile de date de validare:
- Creați un director în formatul necesar pentru canalele de date ale algoritmului de segmentare semantică:
- Mutați trenul și imaginile de validare și adnotările acestora în directoarele create.
- Pentru imagini, utilizați următorul cod:
- Pentru adnotări, utilizați următorul cod:
- Încărcați seturile de date tren și validare și seturile de date de adnotare ale acestora pe Amazon S3:
Antrenamentul modelului de segmentare semantică SageMaker
În această secțiune, parcurgem pașii pentru a vă instrui modelul de segmentare semantică.
Urmați exemplul de blocnotes și configurați canale de date
Puteți urma instrucțiunile din Algoritmul de segmentare semantică este acum disponibil în Amazon SageMaker pentru a implementa algoritmul de segmentare semantică în setul de date etichetat. Acest eșantion caiet prezintă un exemplu end-to-end de introducere a algoritmului. În blocnotes, înveți cum să antrenezi și să găzduiești un model de segmentare semantică folosind rețeaua complet convoluțională (FCN) algoritm care utilizează Setul de date Pascal VOC pentru antrenament. Deoarece nu intenționez să antrenez un model din setul de date Pascal VOC, am sărit peste Pasul 3 (pregătirea datelor) din acest notebook. În schimb, am creat direct train_channel
, train_annotation_channe
, validation_channel
, și validation_annotation_channel
folosind locațiile S3 în care mi-am stocat imaginile și adnotările:
Ajustați hiperparametrii pentru propriul set de date în estimatorul SageMaker
Am urmărit caietul și am creat un obiect estimator SageMaker (ss_estimator
) pentru a-mi antrena algoritmul de segmentare. Un lucru pe care trebuie să îl personalizăm pentru noul set de date este ss_estimator.set_hyperparameters
: trebuie să ne schimbăm num_classes=21
la num_classes=2
(turtle
și background
), și m-am schimbat și eu epochs=10
la epochs=30
deoarece 10 este doar pentru scopuri demonstrative. Apoi am folosit instanța p3.2xlarge pentru antrenamentul modelului prin setare instance_type="ml.p3.2xlarge"
. Antrenamentul a fost finalizat în 8 minute. Cel mai bun MIoU (Mean Intersection over Union) de 0.846 este atins la epoca 11 cu un pix_acc
(procentul de pixeli din imaginea dvs. care sunt clasificați corect) de 0.925, care este un rezultat destul de bun pentru acest set de date mic.
Rezultatele inferenței modelului
Am găzduit modelul pe o instanță ml.c5.xlarge la preț redus:
În cele din urmă, am pregătit un set de testare de 10 imagini de broaște țestoasă pentru a vedea rezultatul inferenței modelului de segmentare antrenat:
Următoarele imagini arată rezultatele.
Măștile de segmentare ale țestoaselor marine arată precis și sunt mulțumit de acest rezultat antrenat pe un set de date de 300 de imagini etichetat de lucrătorii Mechanical Turk. De asemenea, puteți explora alte rețele disponibile, cum ar fi rețea de analiză a scenelor piramidale (PSP) or DeepLab-V3 în probă de caiet cu setul de date.
A curăța
Ștergeți punctul final când ați terminat cu el pentru a evita costurile continue:
Concluzie
În această postare, am arătat cum să personalizați etichetarea datelor de segmentare semantică și formarea modelelor folosind SageMaker. În primul rând, puteți configura o lucrare de etichetare cu instrumentul de auto-segmentare sau puteți utiliza o forță de muncă Mechanical Turk (precum și alte opțiuni). Dacă aveți mai mult de 5,000 de obiecte, puteți utiliza și etichetarea automată a datelor. Apoi transformați ieșirile din jobul dvs. de etichetare Ground Truth în formatele de intrare necesare pentru instruirea de segmentare semantică încorporată SageMaker. După aceea, puteți utiliza o instanță de calcul accelerată (cum ar fi p2 sau p3) pentru a antrena un model de segmentare semantică cu următoarele caiet și implementați modelul într-o instanță mai rentabilă (cum ar fi ml.c5.xlarge). În cele din urmă, puteți examina rezultatele inferenței din setul de date de testare cu câteva rânduri de cod.
Începeți cu segmentarea semantică SageMaker etichetarea datelor și antrenament model cu setul de date preferat!
Despre autor
Kara Yang este Data Scientist în AWS Professional Services. Este pasionată de a ajuta clienții să-și atingă obiectivele de afaceri cu serviciile cloud AWS. Ea a ajutat organizațiile să construiască soluții ML în mai multe industrii, cum ar fi producția, industria auto, sustenabilitatea mediului și industria aerospațială.
- Coinsmart. Cel mai bun schimb de Bitcoin și Crypto din Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. ACCES LIBER.
- CryptoHawk. Radar Altcoin. Încercare gratuită.
- Sursa: https://aws.amazon.com/blogs/machine-learning/semantic-segmentation-data-labeling-and-model-training-using-amazon-sagemaker/
- '
- "
- 000
- 10
- 100
- 11
- 2019
- a
- Despre Noi
- accelera
- accelerat
- precis
- Obține
- realizat
- peste
- adăugat
- Industria aerospațială
- Algoritmul
- algoritmi
- TOATE
- Amazon
- a anunțat
- O alta
- în jurul
- Avocat Colaborator
- Automata
- în mod automat
- auto
- disponibil
- AWS
- fundal
- deoarece
- CEL MAI BUN
- Mai bine
- între
- construi
- construit-in
- afaceri
- captura
- caz
- sigur
- Schimbare
- canale
- Alege
- clasă
- clase
- clasificate
- Cloud
- servicii de tip cloud
- cod
- Comun
- concurs
- Completă
- calculator
- Calculatoare
- tehnica de calcul
- încredere
- Consoleze
- conţinut
- comoditate
- Corespunzător
- cost-eficiente
- Cheltuieli
- crea
- a creat
- clienţii care
- personaliza
- de date
- om de știință de date
- adânc
- demonstra
- implementa
- diferit
- direct
- desen
- în timpul
- fiecare
- permite
- un capăt la altul
- Punct final
- Intrați
- de mediu
- stabilit
- exemplu
- Cu excepția
- de aşteptat
- se așteaptă
- explora
- extremă
- Față
- Caracteristică
- First
- urma
- următor
- format
- din
- generată
- Goluri
- bine
- gri
- mare
- fericit
- a ajutat
- ajutor
- ajută
- de înaltă calitate
- găzduit
- Cum
- Cum Pentru a
- HTTPS
- uman
- Oamenii
- sute
- imagine
- imagini
- punerea în aplicare a
- îmbunătăţi
- include
- inclus
- Crește
- index
- industrii
- informații
- intrare
- instanță
- interfaţă
- intersecție
- introducerea
- IT
- Loc de munca
- Locuri de munca
- cunoscut
- Etichetă
- etichetarea
- etichete
- mare
- lansa
- AFLAȚI
- învăţare
- Nivel
- Limitat
- Linie
- linii
- Listă
- local
- locaţie
- Locații
- Lung
- Uite
- maşină
- masina de învățare
- administra
- obligatoriu
- manual
- de fabricaţie
- Hartă
- cartografiere
- masca
- Măști
- masiv
- mecanic
- ar putea
- ML
- model
- Modele
- mai mult
- multiplu
- nume
- denumire
- Navigare
- reţea
- rețele
- următor
- caiet
- număr
- promoții
- Opțiune
- Opţiuni
- organizații
- Altele
- propriu
- pasionat
- la sută
- efectuarea
- puncte
- Poligon
- Popular
- Pregăti
- destul de
- preţ
- privat
- proces
- produce
- profesional
- furniza
- furnizează
- public
- scopuri
- repede
- RE
- înregistrări
- reprezenta
- necesar
- Necesită
- REZULTATE
- revizuiască
- acelaşi
- scalabil
- Om de stiinta
- SEA
- segmentarea
- selectate
- serviciu
- Servicii
- set
- instalare
- Distribuie
- Arăta
- indicat
- simplu
- situație
- mic
- So
- Software
- soluţii
- împărţi
- început
- depozitare
- Durabilitate
- Ţintă
- sarcini
- echipă
- test
- Sursa
- lucru
- terț
- mii
- Prin
- debit
- timp
- instrument
- Tren
- Pregătire
- Transforma
- uniune
- utilizare
- validare
- furnizori
- viziune
- OMS
- Apartamente
- muncitorii
- Forta de munca
- fabrică
- Ta