Segmentation m ́ edicale d’un coeur Samy Madiou, Nadir Mohammed Bouakel, Soufiane Ham, Imad Idrissi Apprentissage profond pour la vision par ordinateur (MTI881) Travail remis au professeur Jose Dolz, 22 D ́ ecembre 2022 ́ Ecole de Technologie Sup ́ erieure ( ́ ETS), Montr ́ eal, QC Abstract Ce travail est r ́ ealis ́ e dans le cadre du cours de maˆ ıtrise Apprentissage profond pour la vision par ordinateur (MTI881) et il consiste ` a cr ́ eer un r ́ eseau de neurones profond capable de segmenter des images m ́ edicales de coeur du challenge ACDC (Automated Cardiac Diagnosis Challenge) [1] selon le myocarde, le ventricule gauche et le ventricule droite. Le but est de d ́ evelopper le mod` ele le plus performant quant ` a la pr ́ ecision de sa segmentation en explorant divers r ́ eseaux de neurones ` a convolution d ́ evelopp ́ es pour la segmentation d’images biom ́ edicales. La finalit ́ e de ce projet fut une comp ́ etition avec d’autres ́ equipes dans laquelle les meilleurs mod` eles de chaque ́ equipe ont ́ et ́ e test ́ es sur des images. Le classement de la comp ́ etition a ́ et ́ e d ́ etermin ́ e selon le crit` ere de la performance en ́ evaluant les m ́ etriques suivantes: le coefficient Dice, la distance de Haus- dorff (HDD) et la distance de surface moyenne (ASD). 1 Introduction L’imagerie m ́ edicale joue un rˆ ole essentiel dans le domaine de la sant ́ e. En effet, elle permet aux professionnels de la sant ́ e de mieux analyser et diag- nostiquer leurs patients. L’ ́ etude des images m ́ edicales d ́ epend principalement de l’interpr ́ etation visuelle et de l’exp ́ erience des radiologues. Cependant, cela peut ˆ etre un exercice fastidieux pour les m ́ edecins. Par exemple, les images peuvent avoir une mauvaise qualit ́ e et il peut ˆ etre difficile de situer une tumeur. Cela ́ etant dit, l’utilisation de syst` emes assist ́ es par ordinateur peut ˆ etre tr` es utile et int ́ eressante afin d’ ́ eviter ces probl` emes. La segmentation d’image est une technique critique de l’analyse d’image. Son objectif est d’extraire des in- formations d’une image quelconque. Dans le domaine m ́ edical, les segments d’images correspondent souvent ` a diff ́ erentes cat ́ egories de tissus, d’organes, ou d’autres structures biologiques du corps humain. Ainsi, des syst` emes bas ́ es sur des mod` eles d’apprentissage machine profond peuvent assister les sp ́ ecialistes en d ́ etectant les zones potentielles de tumeur avec un certain pourcentage erreur. Le pr ́ esent rapport synth ́ etise le travail effectu ́ e dans le cadre du cours MTI881 1 dispens ́ e ` a l’ ́ Ecole de Technologie Sup ́ erieure de Montr ́ eal. Le but de l’exercice est de mettre en oeuvre le meilleur r ́ eseau de neurones pour la segmentation d’images de coeur. Pour ˆ etre plus pr ́ ecis, l’objectif de ce projet est de segmenter le coeur en trois parties. Ces parties sont le ventricule droit (VD), le ventricule gauche (VG) et le myocarde(MYO). 2 Travaux connexes Famille des UNet: Le mod` ele UNet est un des mod` eles les plus utilis ́ es pour la segmentation d’images m ́ edicales due ` a sa simplicit ́ e. De plus, il existe plusieurs variantes de ce mod` ele comme le ResidualUNet, le TransUNet [1] et le Swin- UNet [2]. Ces deux derniers mod` eles font partie des plus performants pour la segmentation d’imagerie m ́ edicale. Pour ˆ etre plus pr ́ ecis, le mod` ele TransUNet propos ́ e par Chen et al. [1] le SwinUNet de Cao et al. [2] ont respectivement termin ́ e en troisi` eme et deuxi` eme position pour le challenge ACDC. [3] [4]. 3 M ́ ethodologie Beaucoup d’options se sont pr ́ esent ́ ees pour le choix du mod` ele d’apprentissage pour le challenge. Cependant, il fallait d’abord s’int ́ eresser ` a la nature des images en entr ́ ee avant de choisir un mod` ele. Les images sont de taille 256x256 et elles sont en 2D. De plus, notre ́ etiquette est constitu ́ ee de quatre classes. Ces classes sont [Arri` ere-plan, VG, VD, MYO], o` u l’arri` ere-plan ` a des composants diff` ere des autres classes. Par ailleurs, l’ensemble de donn ́ ees d’entraˆ ınement contient 1208 images et l’ensemble de validation en contient 90. 3.1 Augmentation des donn ́ ees L’augmentation de donn ́ ees est une technique tr` es populaire dans le domaine de l’apprentissage automatique. Elle est utilis ́ ee pour augmenter la quantit ́ e et la qualit ́ e des donn ́ ees disponibles pour l’entraˆ ınement d’un mod` ele. En ef- fet, elle consiste ` a g ́ en ́ erer de nouvelles donn ́ ees ` a partir de celles existantes, en utilisant diff ́ erentes techniques de transformation et de modification. Un des principaux avantages de l’augmentation de donn ́ ees est justement le fait qu’on ́ evite la g ́ en ́ eralisation. En effet, l’augmentation de donn ́ ees aide ` a r ́ eduire le risque de surapprentissage en fournissant au mod` ele une vari ́ et ́ e suppl ́ ementaire de donn ́ ees d’entraˆ ınement. ́ Egalement, en augmentant les donn ́ ees, nous pou- vons entraˆ ıner des mod` eles d’apprentissage machine de mani` ere plus efficace afin d’obtenir de meilleurs r ́ esultats. Cela ́ etant dit, nous avons donc d ́ ecid ́ e d’utiliser cette technique, car nous avions peu de donn ́ ees. Nous avions en notre possession uniquement 1208 images pour l’entraˆ ınement, ce qui est clairement insuffisant. Pour ce faire, nous avions utilis ́ e la libraire python ”Albumenta- tion” [2], qui offre diverses techniques et transformations pour l’augmentation de donn ́ ees. 2 RandomRotate90 : Elle permet de faire pivoter al ́ eatoirement une image de 0, 90, 180 ou 270 degr ́ es. Figure 1: Rotation Al ́ eatoire VerticalFlip et HorizontalFlip : Ces deux fonctions retournent l’image par rapport ` a l’axe vertical et horizontal comme l’effet d’un miroir. Figure 2: Vertical and Horizontal Flip 3 CenterCrop : La fonction CenterCrop (recadrage au centre) est utilis ́ ee pour recadrer une image en ne gardant que la partie centrale de celle-ci. Cela signifie que les bords de l’image sont coup ́ es et que seule la partie centrale de l’image est conserv ́ ee. Nous avons d ́ ecid ́ e d’enlever 32 pixels ` a la longueur et la largeur de l’image. Figure 3: Center Crop RandomBrightness : Cette transformation est utilis ́ ee pour ajuster la lumi- nosit ́ e (augmenter ou diminuer) d’une image de mani` ere al ́ eatoire. Figure 4: Luminosit ́ e al ́ eatoire 4 RandomContrast : Cette transformation est utilis ́ ee pour ajuster le con- traste (augmenter ou diminuer) d’une image de mani` ere al ́ eatoire. Figure 5: Contraste al ́ eatoire MotionBlur : Cette transformation permet d’ajouter un flou de mouvement ` a une image. Figure 6: Motion Blur 5 GaussNoise : Cette transformation permet d’ajouter du bruit gaussien ` a une image. Le bruit gaussien est un type de bruit al ́ eatoire qui suit une distri- bution normale. Figure 7: Gaussian Noise CoarseDropout : Cette fonction masque diff ́ erentes r ́ egions al ́ eatoires dans l’image. Figure 8: Coarse Dropout Ces transformations sont donc appliqu ́ ees sur les images et leurs ́ etiquettes de fa ̧ con al ́ eatoire avec une probabilit ́ e de 0,4. Il y a donc 40% de chance qu’on applique chaque transformation sur les images. Ainsi, grˆ ace ` a l’augmentation de donn ́ ee, nous avons pu entrainer le mod` ele avec pr` es de 5000 images. 6 3.2 Architecture des mod` eles Voici les architectures des mod` eles que nous avons d ́ evelopp ́ es ou que nous avons consid ́ er ́ e d ́ evelopper: 3.2.1 UNet C’est un mod` ele qui a un peu plus de 30 millions de param` etres (selon notre con- figuration). Il a ́ et ́ e d ́ evelopp ́ e par Olaf Ronneberger, Philipp Fischer, et Thomas Brox en 2015. Le mod` ele est compos ́ e d’un encodeur et un d ́ ecodeur. Dans le bloc encodeur, on retrouve une s ́ erie de couches convolutionnelles qui permettent de r ́ eduire les dimensions de l’image re ̧ cue en entr ́ ee. Le bloc d ́ ecodeur contient des couches de sur ́ echantillonage ou ”upsampling” et une s ́ erie de couches con- volutionnelles. [5] Figure 9: Architecture du mod` ele UNet 7 3.2.2 TransUNet L’architecture du TransUNet ressemble beaucoup ` a celle du UNet. Ce mod` ele contient aussi des blocs encodeur et d ́ ecodeur et des connexions de sauts entre les couches d’encodeur/d ́ ecodeur. Contrairement au UNet, il y a une traduc- tion d’image ` a image qui est faite avant de pr ́ edire le masque de segmentation. L’image est traduite dans un domaine synth ́ etique o` u les objets sont plus claire- ment visibles et plus faciles ` a segmenter. Figure 10: Architecture du mod` ele TransUNet 3.2.3 ResidualUNet Encore une fois, le ResidualUNet n’est pas bien diff ́ erent du UNet. Ce qui diff ́ erencie les deux mod` eles est que dans le ResidualUNet, on retrouve des couches r ́ esiduelles, ce qui permet au mod` ele d’apprendre le r ́ esiduel entre l’entr ́ ee et la sortie de la couche. Ces couches r ́ esiduelles permettent aussi d’ ́ eviter le probl` eme de la disparition des gradients qui est un ph ́ enom` ene qui peut se produire durant l’entraˆ ınement o` u les gradients des param` etres par rap- port ` a la fonction de coˆ ut tendent vers le z ́ ero. Cela peut se produire lorsque les param` etres sont initialis ́ es avec de grandes valeurs ou lorsque l’architecture du r ́ eseau comporte un grand nombre de couches, ce qui est le cas avec le Resid- ualUNet qui contient un peu plus de 70 millions de param` etres (selon notre configuration). En bref, nous avons seulement d ́ evelopp ́ e et test ́ e le UNet et le ResidualUNet dˆ u ` a la limite de temps pour d ́ evelopper un mod` ele fonctionnel et assez performant pour tenter de gagner le challenge ACDC. 8 Figure 11: Architecture du mod` ele ResidualUNet 3.2.4 SwinUNet La diff ́ erence entre le SwinUNet et le UNet est que dans le SwinUNet une classification des images avec une approche d’apprentissage autosupervis ́ e est effectu ́ ee avant de pr ́ edire le masque de segmentation. Figure 12: Architecture du mod` ele SwinUNet 9 3.3 Hyperparam` etres Les hyperparam` etres sont des param` etres qui permettent de contrˆ oler le proces- sus d’apprentissage. Ils sont choisis par les d ́ eveloppeurs avant de commencer l’entraˆ ınement du mod` ele. D’ailleurs, il est crucial de choisir les bonnes valeurs pour ces derniers afin d’avoir les meilleures performances du mod` ele sur les im- ages qu’il n’a jamais vu. Dans notre cas, pour configurer notre mod` ele on a utilis ́ e des hyperparam` etres ` a plusieurs niveaux. Tout d’abord, nous avons le ”batch size” qui permet de d ́ eterminer le nombre d’ ́ echantillons d’image ` a utiliser par it ́ eration durant la phase d’entraˆ ınement et de validation. Le mod` ele est alors entraˆ ın ́ e sur un batch de donn ́ ees ` a la fois. Apr` es plusieurs tentatives, nous avons remarqu ́ e que plus le batch size est grand, plus le mod` ele est capable de traiter rapidement de grands lots d’images, mais cela risque d’entraˆ ıner une instabilit ́ e dans la convergence et une augmentation d’erreur du mod` ele. Cependant, nous avons utilis ́ e un batch size ` a la fois assez grand pour permettre une convergence rapide et assez petit pour ́ eviter l’augmentation d’erreur afin d’augmenter nos performances. Apr` es avoir test ́ e diff ́ erentes tailles de lot pour l’entraˆ ınement et la validation, nous avons finalement choisi une taille de 8-12 images par lot pour l’entraˆ ınement et un lot de 3-6 images pour la validation. D’autre part, il fallait aussi trouver les bons r ́ eglages pour notre fonction de coˆ ut. Tout d’abord, notre fonction de perte est une combinaison de deux fonc- tions de coˆ ut qui ont chacune un poids w Ce poids permet d’accorder plus de p ́ enalisation au mod` ele lorsque le mod` ele effectue de mauvaises pr ́ edictions. Dans notre situation, on a voulu augmenter la p ́ enalisation sur le facteur dˆ u Dice Loss afin de concentrer le mod` ele sur l’aspect de similitudes au masque de segmentation. Apr` es plusieurs r ́ eglages de poids, nous avons choisi les poids suiv- ants w DiceLoss = 0.6 et w CE = 0.4. Ces r ́ eglages ont chang ́ e de mani` ere con- sid ́ erable la performance sur notre mod` ele UNet et ResidualUNet. Les mod` eles r ́ ealisaient environ 83-85% de Dice moyen sur les images de test. Ensuite, il fallait choisir un taux d’apprentissage. Le taux d’apprentissage est le r ́ eglage le plus important dans l’apprentissage machine. En effet, il permet de contrˆ oler la vitesse ` a laquelle le mod` ele apprend sur les images d’entraˆ ınement. Le choix de ce dernier est crucial, car il peut grandement impacter l’apprentissage du mod` ele. Un taux trop grand peut faire en sorte que le mod` ele ne converge jamais pour minimiser les pertes. Sinon, un taux trop petit risque de prendre beaucoup trop de temps pour converger. De plus, avoir un tr` es petit taux risque de pousser le mod` ele ` a rester bloquer sur un minimum local. Par cons ́ equent, il faut choisir un taux d’apprentissage qui soit ` a la fois assez ́ elev ́ e pour converger rapidement, mais assez petit pour ́ eviter pour bien entraˆ ıner le mod` ele. Cependant, il n’y a pas de solution miracle pour trouver le bon taux d’apprentissage, car ce dernier d ́ epend de plusieurs facteurs comme la complexit ́ e du mod` ele, la qualit ́ e des images d’entraˆ ınement, etc. La meilleure strat ́ egie pour trouver le taux optimal est l’essai/erreur jusqu’` a trou- ver le taux qui offre les meilleures performances. Apr` es avoir utilis ́ e plusieurs techniques d’optimisation du taux d’apprentissage, on a abouti ` a un lr =0.001 10 avec l’optimisateur Adam En r ́ esum ́ e, les hyperparam` etres sont des param` etres tr` es importants pour l’apprentissage d’un mod` ele. Ces derniers ont un gros impact sur la performance de notre mod` ele. Pour trouver les meilleures combinaisons de param` etres, il suffit d’effectuer plusieurs tests avec diff ́ erents r ́ eglages, pour avoir un mod` ele performant sur les images de l’ensemble de tests. C’ ́ etait la phase la plus longue dans le projet, et selon nous, nous aurions pu avoir de meilleures performances avec des r ́ eglages diff ́ erents. 3.4 Fonctions de coˆ ut Pour ́ evaluer notre mod` ele d’apprentissage, il faut utiliser une fonction de coˆ ut qui mesure l’erreur du mod` ele en comparant les pr ́ edictions du mod` ele aux images GT. Cette fonction permet d’ajuster les poids du mod` ele de mani` ere ` a minimiser l’erreur. D’ailleurs, la fonction de coˆ ut est utilis ́ ee avec la descente de gradient pour propager l’erreur dans le mod` ele pour ajuster les param` etres du mod` ele pour minimiser la fonction de coˆ ut. Tout d’abord, nous avons commenc ́ e par utiliser seulement l’entropie crois ́ ee comme fonction de coˆ ut dans l’entraˆ ınement. Mais celle-ci n’ ́ etait pas optimale puisqu’elle ne maximisait pas la m ́ etrique de similitude de Dice. Pour ce faire, on a ajout ́ e le Diceloss ` a notre fonction de coˆ ut en la combinant avec l’entropie crois ́ ee pour maximiser le taux de similitude. [6] Loss = w dice ∗ L dice + w C E ∗ L C E L dice : 1 − Dice ( s p red, one h ot l abels ) L C E : CrossEntropy ( pred, labels ) En ajoutant des poids aux fonctions de coˆ uts ̧ ca nous permet de mieux contrˆ oler quelle fonction p ́ enalise le plus le mod` ele. Dans notre situation, on a donn ́ e un plus petit poids pour l’entropie crois ́ ee que le diceloss, pour la simple et bonne raison c’est que l’entropie crois ́ ee favoris ́ ee la classe du background, car les classes dans nos images ́ etaient d ́ es ́ equilibr ́ ees, il y avait environ 75% de background par image. De plus, en accordant plus d’importance au diceloss, ̧ ca for ̧ cait notre mod` ele ` a mieux s’entraˆ ıner pour maximiser le dice. D’ailleurs, notre fonction de diceloss ne tient pas compte du background. Celle-ci calcule la dice de chaque classe pour ensuite faire une moyenne de toutes les classes : L dice = 1 − 1 C ∗ C ∑ c =0 dice ( GT c , pred c ) C = Classes − 1 Dans la validation, on a uniquement utilis ́ e le diceloss comme fonction de coˆ ut afin de maximiser le dice et effectuer notre condition d’arrˆ et afin d’ ́ eviter le surapprentissage de notre mod` ele. De plus, nous avons une simple fonction d’arrˆ et, on pr ́ ecise un terme de patience = 3, si l’erreur sur la validation ne diminue plus apr` es trois it ́ erations, on arrˆ ete notre apprentissage et on sauveg- arde notre mod` ele. 11 3.5 Optimisateurs Les optimisateurs [7] sont primordiaux dans l’apprentissage machine, car ils per- mettent d’am ́ eliorer la convergence vers des minimums globaux. Il existe une vari ́ et ́ e d’optimisateurs qui ont chacun leurs avantages et inconv ́ enients. Cepen- dant, nous avons d ́ ecid ́ e d’utiliser les optimisateurs Adam et SGD combin ́ e avec Momentum. De plus, afin de faire varier le taux d’apprentissage et am ́ eliorer la convergence, nous avons utilis ́ e diff ́ erents types de Scheduler. L’optimisateur SGD est un algorithme qui est utilis ́ e pour am ́ eliorer la con- vergence et la performance de notre mod` ele. Ce dernier permet d’avoir une meilleure g ́ en ́ eralisation de notre mod` ele, mais il peut ˆ etre long ` a converger. Il est efficace d’utiliser des Scheduler pour augmenter la vitesse de conver- Figure 13: Entrainement avec l’optimisateur SGD gence. Cependant, nous avons test ́ e l’optimisateur avec un Scheduler person- nalis ́ e [7], celui-ci change le taux d’apprentissage par un facteur ` a chaque epoch. Le d ́ esavantage de ce Scheduler personnalis ́ e est qu’apr` es un certain nombre d’epoch, le taux d’apprentissage devient tr` es petit et le mod` ele n’apprend plus rien. Figure 14: Lamda LR 12 D’autre part, on a essay ́ e avec le Scheduler ReduceLROnPlateau [7]. Ce dernier permet de diminuer le taux d’apprentissage lorsque l’erreur de validation commence ` a plafonner apr` es un certain nombre d’epoch. Ce Scheduler est tr` es efficace, car il permet de diminuer le taux de mani` ere automatique si on stagne ` a un niveau d’erreur. Le plus important avec ce Scheduler est de bien choisir le bon taux de patience, car si on a un taux de patience vraiment grand, le mod` ele peut faire du surapprentissage avant que le taux d’apprentissage soit diminu ́ e. Figure 15: ReduceOnPlateau LR De plus, on a test ́ e le Scheduler Cyclic [7]. Celui-ci permet de d ́ efinir un taux d’apprentissage cyclique qui varie de mani` ere triangulaire au cours de l’entraˆ ınement du mod` ele. Cela permet de converger plus rapidement en prenant le chemin le plus rapide qui m` ene au minimum global. Si on avait utilis ́ e un Scheduler standard, on aurait fait un long d ́ etour pour aboutir sur le minimum global. Le graphique ci-dessous illustre ce comportement : Figure 16: Cyclique LR ` A la fin, on a d ́ ecid ́ e de garder l’optimisateur Adam [7], car il n’a pas r ́ eellement besoin de Scheduler, puisque ce dernier g` ere seulement le taux d’apprentissage. Il est tr` es utilis ́ e par la communaut ́ e scientifique. Bien que celui-ci soit rapide ` a converger, il n’offre pas une meilleure g ́ en ́ eralisation que l’optimisateur SGD. Par contre, il offre des performances tr` es satisfaisantes. Cependant, c’est l’optimisateur Adam sans Scheduler qui a donn ́ e les meilleures pr ́ edictions. 13 Figure 17: Adam 4 R ́ esultats Pendant l’entraˆ ınement, nous avons seulement test ́ e les mod` eles UNet et Resid- ualUNet avec diff ́ erentes configurations. Le tableau suivant montre les Dice obtenus pour chaque mod` ele et chaque classe: Mod` ele Param` etres Classe 1 Classe 2 Classe 3 Moyenne ResidualUNet lr=0.01, opt=Adam, epoch=20 0,83 0,84 0,93 0,8700 ResidualUNet lr=0.01, opt=SGD, epoch=33 0,79 0,74 0,88 0,8033 UNet lr=0.001, opt=SGD+CyclicLr, epoch=22 0,80 0,79 0,90 0,7233 UNet lr=0.001, opt=SGD+LamdaLr, epoch=22 0,69 0,68 0,80 0,7233 UNet lr=0.005, opt=Adam, epoch=62 0,83 0,82 0,92 0,8567 UNet lr=0.001, opt=Adam, epoch=30 0,85 0,85 0,93 0,8767 Table 1: Tableau des r ́ esultats dice obtenus sur les images de tests Comme on peut le voir, les deux mod` eles ont ́ et ́ e tr` es performants. Nous avons pass ́ e beaucoup plus de temps ` a entraˆ ıner le ResidualUNet, car il avait presque deux fois plus de param` etres. Pour le challenge, nous avons finalement choisi le mod` ele UNet, car les valeurs que retournait sa fonction de coˆ ut ́ etaient plus basses. M ́ etrique Classe 1 Classe 2 Classe 3 Moyenne Dice 0,67 0,77 0,85 0,76 HD 8,41 5,64 4,57 6,21 ASD 2,51 1,93 1,79 2,07 Table 2: Tableau des r ́ esultats obtenus lors du challenge 14 5 Conclusion Pour conclure, nous avons choisi d’utiliser le mod` ele Unet. Sur ce mod` ele, nous avons fait de l’augmentation de donn ́ ee. Cela permet d’augmenter la quan- tit ́ e de donn ́ ees disponibles pour l’entraˆ ınement du mod` ele. On a dˆ u utiliser diff ́ erentes techniques comme le RandomRotate90, CenterCrop, GaussNoise, etc. afin d’avoir des donn ́ ees de qualit ́ e. De plus, grˆ ace aux hyperparam` etre, le mod` ele Unet a obtenu les meilleurs r ́ esultats durant l’entraˆ ınement avec un score Dice moyen de 0.87. Toutefois, il serait int ́ eressant de voir la perfor- mance de notre mod` ele avec d’autres tˆ aches dans le mˆ eme domaine d’imagerie m ́ edicale. Cependant, nous proposerons une impl ́ ementation plus ́ elabor ́ ee afin de maximiser nos chances d’avoir de meilleurs r ́ esultats. 15 References [1] Olivier Bernard, Alain Lalande, Clement Zotti, Frederick Cervenansky, Xin Yang, Pheng-Ann Heng, Irem Cetin, Karim Lekadir, Oscar Camara, Miguel Angel Gonzalez Ballester, et al. Deep learning techniques for automatic mri cardiac multi-structures segmentation and diagnosis: is the problem solved? IEEE transactions on medical imaging , 37(11):2514–2525, 2018. [2] Alexander Buslaev, Vladimir I. Iglovikov, Eugene Khvedchenya, Alex Pari- nov, Mikhail Druzhinin, and Alexandr A. Kalinin. Albumentations: Fast and flexible image augmentations. Information , 11(2), 2020. [3] Hu Cao, Yueyue Wang, Joy Chen, Dongsheng Jiang, Xiaopeng Zhang, Qi Tian, and Manning Wang. Swin-unet: Unet-like pure transformer for medical image segmentation. arXiv preprint arXiv:2105.05537 , 2021. [4] Jieneng Chen, Yongyi Lu, Qihang Yu, Xiangde Luo, Ehsan Adeli, Yan Wang, Le Lu, Alan L Yuille, and Yuyin Zhou. Transunet: Transformers make strong encoders for medical image segmentation. arXiv preprint arXiv:2102.04306 , 2021. [5] Huimin Huang, Lanfen Lin, Ruofeng Tong, Hongjie Hu, Qiaowei Zhang, Yutaro Iwamoto, Xianhua Han, Yen-Wei Chen, and Jian Wu. Unet 3+: A full-scale connected unet for medical image segmentation. In ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) , pages 1055–1059. IEEE, 2020. [6] Shruti Jadon. A survey of loss functions for semantic segmentation. In 2020 IEEE Conference on Computational Intelligence in Bioinformatics and Computational Biology (CIBCB) , pages 1–7. IEEE, 2020. [7] Aliasghar Mortazi. Optimization algorithms for deep learning based medical image segmentations. 2019. 16