Sunteți pe pagina 1din 19

Detectarea în fază incipientă a

melanoamelor prin metoda


fotografierii longitudinale

Coordonator: Prof. Dan POPESCU


Masterand: Radu-Marian CÎCIU
Facultatea de Automatică și Calculatoare, Seria PCSAM

2020
Conținut
1. Introducere..............................................................................................................................................3
2. Stadiul actual în domeniul prelucrării seturilor de imagini cu nevi (alunițe) folosind rețele neuronale
convoluționale.................................................................................................................................................4
3. Metodologie specifică și implementare..................................................................................................6
4. Rezultate experimentale.......................................................................................................................10

2
1. Introducere

Cunoscuți în limbajul popular sub denumirea de „alunițe”, nevii melanocitari (pigmentari) sunt
mici pete sau excrescențe la nivelul pielii, cu o culoare mai închisă decât aceasta, variind de la
nuanțe de roz până la maro închis. Nevii reprezintă aglomerări de melanocite (celulele care produc
melanina, respectiv pigmentul care dă culoarea pielii).

Alunițele diferă nu doar în privința culorii, ci și a formei, mărimii și a numărului prezent pe


suprafața corpului. În general, o aluniță obișnuită nu are un diametru mai mare de 6 mm, are
marginile bine conturate, iar culoarea este uniformă și influențată de tenul persoanei (are un
colorit mai intens cu cât tenul este mai închis la culoare). De asemenea, unele alunițe pot dezvolta
fire de păr [HAW07][MAS14].

Majoritatea persoanelor prezintă alunițe. Cu unele ne naștem (alunițe congenitale), pe altele le


dobândim în timp, preponderent în copilărie și adolescență. Când alunițele își încheie procesul de
dezvoltare, se stabilizează și nu își mai modifică forma, dimensiunea etc. Alunițele apar ca urmare
a unei supraproducții de melanină. În majoritatea cazurilor, alunițele sunt inofensive. Ele pot fi
însă înlăturate printr-o intervenție chirurgicală dacă au un aspect inestetic, sunt incomode (de
exemplu piesele de vestimentație jenează sau traumatizează alunița sau aceasta e poziționată într-
o zonă în care îngreunează bărbieritul sau tunsul etc) [HAW07][MAS14].

Melanomul malign se poate dezvolta dintr-o aluniță sau în apropierea ei, de aceea o atenție
deosebită trebuie acordată observării și examinării alunițelor (atât a celor vechi, cât și a celor noi
care apar). Totodată, un melanom se poate ascunde sub aspectul unei alunițe normale, și numai o
consultație de specialitate poate face această diferență [CRO14][SOY19].

Persoanele cu nevi multipli prezintă un risc crescut de a dezvolta melanom, în special cei cu
pielea foarte deschisă, ochii albaștri/verzi și păr roșcat/blond/șaten. Studii genetice au arătat că
aceeași mutație (CDKN2A) este responsabilă atât de apariția melanomului, cât şi a nevilor cu
probleme (atipici/displazici). Deși alunițele sunt prezente la foarte multe persoane, anumite tipuri
de nevi predispun către dezvoltarea melanomului malign, la fel și un număr ridicat de alunițe
[SOY19].

În funcție de celula de origine, există 2 tipuri principale de cancer cutanat epidermic:


carcinoame și melanom. Prima categorie afectează în general vârstnicii și determină rar metastaze
sau deces [SOY19].

Melanomul reprezintă una dintre cele mai agresive tumori umane şi afectează o categorie mult
mai tânără de populație. Astfel, prevenția melanomului joacă un rol important în dermatologie, iar
una dintre cele mai eficiente metode o reprezintă controlul periodic al alunițelor (nevilor). Printre
factorii de risc ce favorizează dezvoltarea unui melanom malign se numără prezența nevilor atipici
(displazici) și numărul ridicat de alunițe normale [MAS14][CRO14].

3
Melanomul malign este o boală letală dacă nu este depistată la timp, dar tratabilă dacă este
descoperită în faza incipientă, de aceea se recomandă examinarea alunițelor o dată pe an și ori de
câte ori sesizăm modificări neobișnuite ale acestora [HAW07][MAS14][CRO14][SOY19].

În general, melanomul malign apare frecvent pe spate la bărbați și pe picioare la femei.


Melanomul este o boală letală, care dacă nu este depistată în stadiul incipient, avansează rapid,
fără posibilitatea unui tratament curativ care să încetinească sau să oprească metastazarea
[MAS14].

Dintre toate tipurile de cancer de piele, melanomul malign este asociat cu prezența alunițelor.
Se pare că alunițele sunt atât indicatori ai riscului de a dezvolta cancer de piele, cât și baza din care
se dezvoltă unele melanoame. Deși are o incidență mai mică decât a celorlalte cancere de piele,
melanomul malign are o evoluție mult mai rapidă. Este un cancer agresiv, care apare prin
dezvoltarea haotică și necontrolată a melanocitelor (celulele din piele care produc pigmentul de
culoare, respectiv melanina) [SOY19].

Dermatologii recomandă auto-examinarea alunițelor cel puțin o dată pe lună. Este important
să acordăm atenție modificărilor acestora și în același timp să observăm noile alunițe care apar.

Uneori leziunile maligne incipiente pot fi confundate de pacient cu alunițele inofensive, ori
numai un consult de specialitate poate sesiza diferența subtilă dintre ele. De aceea se recomandă
o consultație de rutină la un medic dermatolog în fiecare an pentru examinarea nevilor.
Persoanele cu multe alunițe trebuie evaluate periodic de către un dermatolog cu experiență în
monitorizarea nevilor și cu competență în dermatoscopie [MAS14].

Evaluarea nevilor constă, în primul rând, în efectuarea TBSE (total body skin examination), ce
reprezintă analiza întregii suprafețe cutanate, cu selecția clinică a alunițelor de către dermatolog
pentru examenul dermatoscopic direct. La același pacient, profilul clinic şi dermatoscopic al
aluniţelor trebuie să fie același; toate discordanțele reprezintă elemente de apel, iar o leziune
atipică, ce nu seamănă cu restul, necesită control amănunțit [CRO14].

Limitarea expunerii la soare și protecția solară, precum și examinarea periodică a alunițelor ne


pot ajuta să reducem riscurile apariției, respectiv evoluției melanomului malign. Atunci când ne
examinăm alunițele trebuie să acordăm atenție în egală măsură și zonelor mai ascunse sau mai
greu accesibile, precum urechile, scalpul, zona genitală, zona dintre degete sau de sub sâni
[CRO14].

În lucrarea prezentă, ne propunem sa detectăm și să clasificăm 2 tipuri de nevi (alunițe):


Clasa1: Nevus Benign [ISI20] și Clasa2: Nevus Malign [ISI20]. Pentru a putea realiza acest lucru, ne
vom folosi de eficiența rețelelor neuronale convoluționale pentru a evalua un set de imagini pe
baza cărora să realizăm procese de învățare a rețelei, testare a rețelei și clasificarea nevului
[OTT19]. Înainte de aceste etape, vom segmenta imaginile cu alunițe pentru a putea concentra
întreg procesul pe zonele de interes și anume nevul în sine. Se va încerca eliminarea zonelor de
piele neafectate.

4
2. Stadiul actual în domeniul prelucrării seturilor de
imagini cu nevi (alunițe) folosind rețele neuronale
convoluționale

Au fost publicate o multitudine de lucrări în domeniul clasificării cancerului de piele, folosind


tehnici de învățare profundă și de rețele neuronale convoluționale. Aceste lucrări utilizează o
mulțime de abordări diferite, incluzând doar clasificarea, segmentarea și detectarea, procesarea
imaginilor folosind diferite tipuri de filtre etc.

[GIO15] a prezentat experților un sistem numit MEDNODE care ar ajuta medicii în detectarea
melanomului. Sistemul propus a folosit regiunile leziunilor extrase din imagine pentru a calcula
indicatori precum culoarea și textura, împreună cu atributele vizuale furnizate de experți. Sistemul
propus a funcționat la cote comparabile cu metodele de ultimă generație din domeniu.

[MAH15] a arătat că rețelele neuronale convoluționale sunt superioare metodelor tradiționale.


A fost propusă o metodă hibridă complet automatizată pentru clasificarea leziunilor cutanate. S-au
folosit trei modele profunde pre-antrenate (AlexNet, VGG16, ResNet-18) pentru a extrage
caracteristici. Funcțiile extrase au fost apoi utilizate pentru a antrena clasificatorii SVM (suport
vector machine) și evaluați pe cele 150 de imagini de validare din setul de date ISIC 2017. Metoda
propusă a obținut bune performanțe de clasificare.

[JAI17] a propus o metodă de segmentare a leziunilor cutanate în imagini și de clasificare a


tipurilor de cancer de piele. Metoda propusă are la bază preprocesarea și segmentarea utilizând
algoritmul de învățare semi-supravegheat. Scopul primei faze este eliminarea zgomotului folosind
tehnica de filtrare, iar în a doua fază, leziunile cutanate sunt segmentate pe baza tehnicii de
grupare. Imaginile de antrenament au fost descărcate de pe site-ul ISIC 2017. Rezultatele
experimentale au arătat o precizie redusă, dar vor trasa un punct de plecare pentru viitoare
îmbunătățiri.

[FIL19] a dezvoltat un model care poate extrage obiectul și elementele de textură dintr-o
imagine. Algoritmul Otsu este aplicat pe obiectul care generează o imagine segmentată. Textura
este proiectată pe o imagine segmentată formând o leziune texturală, care este alimentată
modelului CNN. Acuratețea metodei utilizată de ei folosind CNN pe ROI a fost de 93,50%.

Rețeaua neuronală convoluțională (CNN) reprezintă o clasă de rețea neuronală dinamică (DNN)
din domeniul învățării profunde care a fost utilizată în vederea computerizată și alte studii conexe.
CNN este construit pentru a avea o singură intrare, mai multe straturi ascunse, care includ de
obicei straturi convoluționale, straturi de tipul ReLU, straturi Max-Pooling, straturi complet
conectate și o singură ieșire. Cea mai importantă caracteristică este că rețeaua neuronală
convoluțională utilizează mai puțin preprocesarea și returnează rezultate remarcabile, a căror
performanță este determinată de calitatea imaginilor de intrare, dimensiunea datelor și numărul
de clase dorit [ZHU20].

5
3. Metodologie specifică și implementare

Imaginile pe care le-am folosit pentru segmentare, învățare, testare și clasificare au fost
preluate de pe site-ul „International Skin Imaging Collaboration”. Platforma este un parteneriat
academic și industrial conceput pentru a facilita aplicarea imaginii digitale a pielii pentru a ajuta la
reducerea mortalității prin melanom. Când este recunoscut și tratat în primele sale etape,
melanomul este ușor vindecabil. Imaginile digitale ale leziunilor cutanate pot fi folosite pentru a
educa profesioniștii și publicul în recunoașterea melanomului, precum și pentru a ajuta direct la
diagnosticarea melanomului prin teledermatologie, asistență clinică pentru decizii și diagnostic
automat. În prezent, lipsa standardelor pentru imagistica dermatologică subminează calitatea și
utilitatea imaginii cu leziuni cutanate. ISIC dezvoltă standarde propuse pentru a aborda
tehnologiile, tehnicile și terminologia utilizate în imagistica pielii cu o atenție specială la
problemele de confidențialitate și interoperabilitate (adică, capacitatea de a partaja imagini între
tehnologii și platforme clinice). În plus, ISIC a dezvoltat și extinde o arhivă open source de acces
public de imagini skin pentru a testa și valida standardele propuse. Această arhivă servește ca
resursă publică de imagini pentru predare și pentru dezvoltarea și testarea sistemelor automate
de diagnosticare [ISI20].

Antrenarea rețelei neuronale a fost efectuată utilizând un laptop HP Pavilion 15-e000,


alimentat de Intel Core i5-3230M, procesor dual-core la o viteză de bază de 2,6 GHz până la 3,2
GHz cu tehnologie Turbo Boost, care funcționează pe Windows 10-x64 cu GPU Intel HD Graphics
4000. Are un ecran de 15,6 inch BrightView cu iluminare LED cu o rezoluție de 1366 x 768 pixeli.

Ideea generală este de a utiliza cunoștințele pe care un model le-a învățat dintr-o sarcină cu o
cantitate mare de date de formare etichetate într-o nouă sarcină care nu are multe date. În loc să
începem procesul de învățare de la zero, începem cu modele învățate din rezolvarea unei sarcini
conexe.

În învățarea prin transfer, cunoașterea unui model de învățare automată deja instruit va fi
aplicată unei probleme diferite, dar similare. De exemplu, dacă ați antrenat un clasificator simplu
pentru a prezice dacă imaginea conține un laptop, ați putea folosi cunoștințele pe care modelul le-
a câștigat în timpul antrenamentului său pentru a recunoaște alte obiecte precum televizoarele.

Aplicând învățarea prin transfer, încercăm, în esență, să folosim ceea ce a fost învățat anterior
în timpul unei sarcini pentru a îmbunătăți abstractizarea în alta. Practic, măsurile și cunoștințele pe
care le-a dobândit sistemul A vor fi aplicate sistemului B.
6
În studiul nostru de caz, am selectat 2 tipuri de nevus: Clasa1: Nevus Benign [ISI20] și Clasa2:
Nevus Malign [ISI20]. Fiecăreia dintre cele 2 clase de nevus îi vor fi alocate aproximativ 300 de
imagini pe care să realizăm procesele de segmentare, învățare, testare și ulterior clasificarea
imaginilor. Pentru partea de învățare, vor fi alocate 210 imagini din fiecare clasa, adică 70%, iar
restul de 90 de imagini vor fi utilizate pentru testare.

Figura 1. Cele 2 clase de nevus: 1. Clasa1: Nevus Benign și 2. Clasa2: Nevus Malign

Pentru a putea realiza clasificarea celor 2 tipuri de nevuri, vom utiliza rețeaua neuronală
convoluțională ResNet101. Organigrama întregului proces este prezentată mai jos:

Setul de imagini de prelucrat

Redimensionarea imaginilor (224x224)

Segmentarea imaginilor
imaginilor

Aplicare niveluri de gri + Aplicarea unei măști

Îmbunătățirea imaginilor

Instruirea rețelei neuronale utilizând ResNet-101

Instruire7terminată

Testarea rețelei
Redimensionarea imaginilor
Toate imaginile din setul de date pentru insecte sunt redimensionate în funcție de stratul de
intrare al rețelei neuronale convoluționale ResNet. În acest caz, rețeaua pre-antrenată AlexNet
este alocată pentru clasificarea imaginilor care are o dimensiune de intrare de 224 x 224. Prin
urmare, toate imaginile din setul de date obținut vor fi redimensionate la 224 x 224.
Îmbunătățirea datelor
Îmbunătățirea datelor de prelucrat este un proces în care cantitatea de seturi de date crește,
făcând copii ale setului de date original. Aceste copii sunt o versiune ușor modificată a imaginilor
originale și sunt obținute prin transformare geometrică a imaginilor originale. Aceste transformări
geometrice includ rotația imaginii, scalarea imaginii, translația imaginii și reflectarea imaginii. În
această lucrare clasificare a imaginilor, creșterea datelor este necesară deoarece există foarte
puține imagini pentru instruirea rețelei pre-antrenate [SHO19].
Rețea neuronală convoluțională ResNet-101
ResNet are o arhitectură similară cu cea a rețelei VGG din punct de vedere al stratului
convoluțional 3 x 3. Blocul rezidual are două straturi convoluționale de 3 x 3 cu același număr de
canale de ieșire. Fiecare strat convoluțional este urmat de un strat de normalizare în serie și de o
funcție de activare ReLU. Apoi, se omit cele două operații de convoluție și se adaugă direct
intrarea înainte de funcția finală de activare ReLU. Acest tip de proiectare necesită ca ieșirea celor
două straturi convoluționale să aibă aceeași formă cu intrarea, astfel încât să poată fi adăugate
împreună. Dacă dorim să schimbăm numărul de canale, trebuie să introducem un strat
convoluțional suplimentar 1 x 1 pentru a transforma intrarea în forma dorită pentru operația de
adăugare [ZHA21].

O altă asemănare a ResNet este cu GoogLeNet și ține de primele două straturi: stratul
convoluțional 7 x 7 cu 64 de canale de ieșire și un pas de 2 este urmat de stratul de Max-Pooling 3
x 3 cu un pas de 2. Diferența este dată de stratul de normalizare a lotului adăugat după fiecare
strat convoluțional din ResNet. GoogLeNet utilizează patru module formate din blocuri Inception,
pe când ResNet folosește patru module formate din blocuri reziduale, fiecare dintre acestea
utilizând mai multe blocuri reziduale cu același număr de canale de ieșire. Numărul de canale din
primul modul este același cu numărul de canale de intrare. Deoarece a fost deja utilizat un strat
maxim de grupare cu un pas de 2, nu este necesar să se reducă înălțimea și lățimea. În primul bloc
rezidual pentru fiecare dintre modulele ulterioare, numărul de canale este dublat în comparație cu
cel al modulului anterior, iar înălțimea și lățimea sunt înjumătățite [ZHA21].

8
Figura 2. Arhitectura ResNet-101: Convoluție, Ponderea maximă, Activare Liniară Rectificată și
Straturi complet conectate [ZHA21]

9
4. Rezultate experimentale

Pentru a observa diferențele de procesare și de rezultat, am utilizat doua versiuni ale rețelei
ResNet: ResNet18 și ResNet101.

Figura 3. Evoluția în timp a procesării setului de imagini pentru ResNet18

Figura 4. Evoluția în timp a procesării setului de imagini pentru ResNet101

În cazul rețelei ResNet18, prelucrarea imaginilor a avut o durata de aproximativ 18 minute. Un


număr de 12 epoci, fiecare având 14 imagini per epocă au fost procesate de sistem. În urma
procesării, rețeaua neuronală a avut o rată de acuratețe de 71.11%. Cu toate că s-a ținut cont ca
datele de intrare să fie de bună calitate, eroarea rezultată este semnificativă. Pentru a obține un
caz favorabil, imaginile pentru cele 2 clase (Benign și Malign) au fost atent selectate astfel încât
diferențele acestora să fie cât mai vizibile pentru o mai bună clasificare.
În cazul rețelei ResNet101, prelucrarea imaginilor a avut o durata de aproximativ 84 minute.
Un număr de 12 epoci, fiecare având 14 imagini per epocă au fost procesate de sistem. În urma

10
procesării, rețeaua neuronală a avut o rată de acuratețe de 70.56%. Și în cazul rețelei îmbunătățite
ResNet101 s-a constatat o rată de acuratețe chiar mai scăzută cu aproximativ 1%.
Figura 5. Numărul de imagini pentru învățare
Figura 6. Numărul de imagini pentru testare

Figura 7. Matricea de confuzie pentru ResNet18

Figura 8. Matricea de confuzie pentru ResNet101

11
Procesul de segmentare a nevului

Figura 9. Etapele de segmentare a nevului de tip melanom

Tehnicile care au la baza segmentarea regiunilor din imagini au ca obiectiv principal gruparea
pixelilor in funcție de proprietăți comune ale imaginii, cum este cazul valorilor de intensitate,
textura sau profile spectrale. Cea mai populara metoda de segmentare a unei regiuni dintr-o
imagine este partiționarea histogramei.
Pentru oricare dintre cele 2 clase de nev (Benign și Malign), procesul de segmentare se împarte
în 7 etape. Fiecare dintre aceste etape au rolul de a ajuta rețeaua DenseNet să clasifice corect
imaginile.
Etapa 1. Setul de imagini este convertit în format 224 𝘹 224 pentru a servi drept intrare pentru
ResNet-101.
Etapa 2. Imaginea este convertită din imagine color (RGB) în imagine alb-negru (Grey). Se
elimină astfel potențialele redundanțe care pot cauza erori în interpretarea regiunilor de
interes.

12
Etapa 3. Nuanța de alb-negru este intensificată pentru a nuanța zona de interes. Se produce
astfel o îmbunătățire a imaginii de prelucrat.
Etapa 4. Imaginea este etichetată după indexul de grup. Procesul constă în atribuirea unui
număr central pe baza numărului de grupuri date. Fiecare punct de date este alocat grupului al
cărui centru este cel mai apropiat de acesta. Algoritmul își propune să minimizeze distanțele
euclidiene pătrate între observație și centrul grupului căruia îi aparține. [SAH13]
Etapa 5. Se aplică imaginii o mască. Mascare, cunoscută și sub denumirea de prag, este
utilizată pentru a izola caracteristicile dintr-o imagine a cărei valoare a pixelului este mai mare,
mai mica sau chiar egală cu o valoare specificată. Imagine căreia I se aplică masca este pur și
simplu o imagine în care unele dintre valorile pixelilor sunt zero, iar restul sunt 1, pentru
simplitate [VER99].
Etapa 6. Imaginea obținută la pasul anterior este accentuată. Această operațiune reprezintă
mărirea treptată a limitelor regiunilor pixelilor din prim plan (adică pixelii albi, de obicei).
Astfel, suprafețele pixelilor din prim-plan cresc în timp ce găurile din aceste regiuni devin mai
mici.
Etapa 7. Se obține imaginea segmentată. Rezultatul segmentării imaginii este un set de
segmente care acoperă în mod colectiv întreaga imagine sau un set de contururi extrase din
imagine. Fiecare dintre pixelii dintr-o regiune au caracteristici similare, cum ar fi culoarea,
intensitatea sau textura. Regiunile adiacente sunt semnificativ diferite pentru a nuanța zona de
interes. (vezi Figura 9) [OGU16].

5. Concluzii

În urma rezultatelor utilizării rețelei neuronale DenseNet-101 și compararea sa cu rețeaua neuronală


DenseNet-18, am constatat că acuratețea rezultatelor nu a fost foarte diferită. Cazul ar putea fi privit dintr-
o altă perspectivă: date fiind ipotezele de lucru, este posibil ca recunoașterea imaginilor pe care le-am
inserat să fie îngreunată de faptul că nevurile, atât cele maligne cat si cele benigne, prezintă similarități și
rețeaua nu este atât de performantă încât să diferențieze cu o precizie ridicata clasa din care face parte
nevul. Îmbunătățirea rezultatelor ar putea fi posibilă prin oferirea unor imagini de lucru explicite fiecărei
categorii astfel încât rețelei să îi fie ușor să diferențieze clasele. O alta ipoteză de lucru ar putea fi utilizarea
unui set de imagini bogat și de o calitate înaltă. La aceste considerente am putea îmbina mai multe rețele
neuronale să realizeze procesarea imaginilor (conversie, segmentare, instruire, testare, clasificare) și astfel
am putea obține performante mai ridicate. De asemenea, o rafală de re-iterații ale procesului ar putea
corecta erorile existente și astfel am putea îmbunătăți performanțele. Dat fiind faptul ca procesul are o
durată ridicată de operare pentru cazul ales, ar fi nevoie să suplinim performanțele unității de la care se
efectuează sarcina de lucru. Ținând cont de faptul ca au fost utilizate un număr total de 600 de imagini de
prelucrat și ipotezele de lucru nu au fost tocmai prietenoase, acuratețea de aproximativ 70% este
acceptabilă. Desigur, cu ulterioare îmbunătățiri, așa cum a fost punctat mai sus, acest procentaj ar putea fi
mult mai bun.

13
14
6. Anexe

Pseudocod MATLAB pentru segmentarea imaginilor


clc
clear
close all

myFolder = 'D:\Facultate\PCIM\Proiect - Detectarea in faza incipienta a


melanoamelor prin metoda fotografierii longitudinale\Nevus_type\Nev de tip
malign';

filePattern = fullfile(myFolder, '*.jpg');


matFiles = dir(filePattern);

for k = 1:length(matFiles)

baseFileName = matFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);

RGB = imread(fullFileName);
I = rgb2gray(RGB);
J = imadjust(I);

nColors = 2;
[pixel_labels,cluster_center] = imsegkmeans(J,nColors);

[tmp, idx] = sort(cluster_center(:,1));


mask = pixel_labels == idx(1);

radius = 3;
se = strel('disk', radius);
BW = imdilate(mask, se);

Iseg = RGB .* uint8(BW);


imwrite(Iseg,['D:\Facultate\PCIM\Proiect - Detectarea in faza incipienta a
melanoamelor prin metoda fotografierii longitudinale\Segmentare
nev\Malign\',baseFileName])
end

Pseudocod MATLAB pentru instruirea sistemului


clc
clear
close all

imds = imageDatastore('D:\Facultate\PCIM\Proiect - Detectarea in faza incipienta


a melanoamelor prin metoda fotografierii longitudinale\Segmentare
nev','FileExtensions','.jpg', ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');

[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomized');

augimdsTrain = augmentedImageDatastore([224 224],imdsTrain);


augimdsValidation = augmentedImageDatastore([224 224],imdsValidation);
15
numClasses = numel(categories(imdsTrain.Labels));

net = resnet101;
lgraph = layerGraph(net);

newFCLayer =
fullyConnectedLayer(numClasses,'Name','new_fc','WeightLearnRateFactor',10,'BiasL
earnRateFactor',10);
lgraph = replaceLayer(lgraph,'fc1000',newFCLayer);

newClassLayer = classificationLayer('Name','new_classoutput');
lgraph = replaceLayer(lgraph,'ClassificationLayer_predictions',newClassLayer);

miniBatchSize = 30;
valFrequency = floor(numel(augimdsTrain.Files)/miniBatchSize);

options = trainingOptions('sgdm', ...


'MiniBatchSize',miniBatchSize, ...
'MaxEpochs',12, ...
'InitialLearnRate',1e-4, ...
'Shuffle','every-epoch', ...
'ValidationData',augimdsValidation, ...
'ValidationFrequency',valFrequency, ...
'Verbose',false, ...
'Plots','training-progress', ...
'OutputFcn',@(info)stopIfAccuracyNotImproving(info,5));

trainedNet = trainNetwork(augimdsTrain,lgraph,options);

[YPred,scores] = classify(trainedNet,augimdsValidation);

YValidation = imdsValidation.Labels;
accuracy = mean(YPred == YValidation);

figure('Units','normalized','Position',[0.2 0.2 0.4 0.4]);


cm = confusionchart(YValidation,YPred);
cm.Title = 'Confusion Matrix for Validation Data';
cm.ColumnSummary = 'column-normalized';
cm.RowSummary = 'row-normalized';

function stop = stopIfAccuracyNotImproving(info,N)

stop = false;

% Keep track of the best validation accuracy and the number of validations for
which
% there has not been an improvement of the accuracy.
persistent bestValAccuracy
persistent valLag

% Clear the variables when training starts.


if info.State == "start"
bestValAccuracy = 0;
valLag = 0;

elseif ~isempty(info.ValidationLoss)

16
% Compare the current validation accuracy to the best accuracy so far,
% and either set the best accuracy to the current accuracy, or increase
% the number of validations for which there has not been an improvement.
if info.ValidationAccuracy > bestValAccuracy
valLag = 0;
bestValAccuracy = info.ValidationAccuracy;
else
valLag = valLag + 1;
end

% If the validation lag is at least N, that is, the validation accuracy


% has not improved for at least N validations, then return true and
% stop training.
if valLag >= N
stop = true;
end
end
end

Pseudocod MATLAB pentru segmentare nev 7 etape


clc
clear
close all

%% Image Loading
filename = 'D:\Facultate\PCIM\Proiect - Detectarea in faza incipienta a
melanoamelor prin metoda fotografierii longitudinale\Nevus_type\Nev de tip
malign\ISIC_0000155.jpg';
RGB = imread(filename);

figure
imshow(RGB)
title('Original Image');

%% RGB to Gray Conversion


I = rgb2gray(RGB);
figure
imshow(I)
title('Grayscale Image');

%% Image Enhancement
J = imadjust(I);
figure
imshow(J)
title('Enhanced Image');

%% Kmean Clustering
nColors = 2;
[pixel_labels,cluster_center] = imsegkmeans(J,nColors);

figure
imshow(pixel_labels,[])
title('Image Labeled by Cluster Index');

%% Mask Extraction
[tmp, idx] = sort(cluster_center(:,1));
17
mask = pixel_labels == idx(1);

figure
imshow(mask)
title('Mask');

%% Dilation
radius = 3;
se = strel('disk', radius);
BW = imdilate(mask, se);
figure
imshow(BW)
title('Dilation');

%% Segmented Image
Iseg = RGB .* uint8(BW);
figure
imshow(Iseg)
title('Segmented Image');

% %% HOG Feature Extraction


% [hog,hogVisualization] = extractHOGFeatures(Iseg);
% [Nhog,edges] = histcounts(hog,100);
% figure
% imshow(RGB);
% hold on;
% plot(hogVisualization);

Pseudocod MATLAB pentru testarea clasificării imaginilor


clc
clear
close all

FileName, PathName] = uigetfile({'*.jpg'},'File Selector');


RGB =imread(fullfile(PathName,FileName));
I = rgb2gray(RGB);
J = imadjust(I);

nColors = 2;
[pixel_labels,cluster_center] = imsegkmeans(J,nColors);

[tmp, idx] = sort(cluster_center(:,1));


mask = pixel_labels == idx(1);

radius = 3;
se = strel('disk', radius);
BW = imdilate(mask, se);

Iseg = RGB .* uint8(BW);


Iseg = imresize(Iseg,[224 224]);
load trainedM.mat
[YPred,scores] = classify(trainedNet,Iseg);

figure
imshow(RGB)
title(YPred)

18
7. Referințe

[1] A. Neil Crowson, Cynthia M. Magro, Martin C. Mihm. 2014. „The Melanocytic Proliferations: A
Comprehensive Textbook of Pigmented Lesions, Second Edition.”
[2] Abhinav Sagar, Dheeba J. 2020. „Convolutional Neural Networks for Classifying Melanoma Images.”
[3] Agnieszka Mikołajczyk, Michał Grochowski. 2018. „Data augmentation for improving deep learning in image
classification problem.”
[4] Aishwariya Dutta, Md. Kamrul Hasan, Mohiuddin Ahmad. 2020. „Skin Lesion Classification Using
Convolutional Neural Network for Melanoma Recognition.”
[5] Aston Zhang, Zachary C. Lipton, Mu Li, and Alexander J. Smola. 2021. „Dive into Deep Learning.”
[6] Elena Limonova, Daniil Alfonso, Dmitry Nikolaev. 2020. „ResNet-like Architecture with Low Hardware
Requirements.”
[7] Gao Huang, Zhuang Liu, Geoff Pleiss, Laurens van der Maaten, Kilian Q. Weinberger. 2020. „Convolutional
Networks with Dense Connectivity.”
[8] Guido Massi, Philip E. LeBoit. 2014. Histological Diagnosis of Nevi and Melanoma 2nd edition. Springer.
[9] H. Peter Soyer, Giuseppe Argenziano, Rainer Hofmann-Wellenhof, Iris Zalaudek. 2019. „ermoscopy E-Book:
The Essentials 3rd Edition, Kindle Edition.”
[10] I Oguz, H Bogunović, S Kashyap, MD Abràmoff, X Wu, M Sonka. 2016. „Medical Image Recognition,
Segmentation and Parsing.” 179-208.
[11] J.L.M. Hawk, J. McGregor. 2007. Pielea, radiatia solara si cancerul de piele. Minerva.
[12] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. 2015. „Deep Residual Learning for Image
Recognition.”
[13] Kurtansky, Nick. fără an. The International Skin Imaging Collaboration - ISIC. Accesat 2020.
https://www.isic-archive.com/#!/topWithHeader/wideContentTop/main.
[14] Ottom, Mohammad Ashraf. 2019. „Convolutional Neural Network for Diagnosing Skin Cancer.”
[15] Pathiranage, Anuruddha Jayasekara. 2017. „Convolutional Neural Networks for Predicting Skin Lesions of
Melanoma.”
[16] Rishu Garg, Saumil Maheshwari, Anupam Shukla. 2019. „Decision Support System for Detection and
Classification of Skin Cancer using CNN.”
[17] Seung Seog Han, Ik Jun Moon, Woohyung Lim, In Suck Suh, Sam Yong Lee, Jung-Im Na, Seong Hwan Kim,
Sung Eun Chang. 2019. „Keratinocytic Skin Cancer Detection on the Face Using Region-Based Convolutional
Neural Network.”
[18] Titus Josef Brinker, Achim Hekler, Jochen Sven Utikal, Niels Grabe, Dirk Schadendorf, Joachim Klode,
Carola Berking, Theresa Steeb, Alexander H Enk, Christof von Kalle. 2018. „Skin Cancer Classification Using
Convolutional Neural Networks: Systematic Review.”

19

S-ar putea să vă placă și