# An Empirical Evaluation of Nuclei Segmentation from H&E Images in a Real Application Scenario
## 4 Experimental Evaluation
### Nuclei Segmentation Methods  
In order to make a fair comparison, the CNN-based methods tested in this work were selected from among the ones whose source code was publicly available. These constraints greatly facilitated the research and allowed us to select five representative methods based on different CNN architectures. The first one exploits a fully convolutional network (FCN) for semantic segmentation [57] (implemented in the Python programming language [[https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo](https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo)]([https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo](https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo))) in order to deal with the large appearance variations of the nuclei. Indeed, in this architecture, the fully connected layers are replaced with convolutional ones that are able to produce a pixel-wise prediction on arbitrary-sized images. The second one is based on the holistically-nested edge detector (HED) [58] (implemented in the Python programming language [[https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo](https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo)]([https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo](https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo))), which is a learning-based end-to-end edge detection system that uses a common CNN to predict a rich hierarchical edge map to image at multiple scales by fusing the output of all convolutional layers. Thus, the HED model is naturally multi-scale. The third method is based on a UNet architecture [59], which is one of the most used for cell nuclei segmentation, even combined with other architectures or other UNets; however, in this case, we used a single UNet (implemented in the Python programming language [[https://github.com/limingwu8/UNet-pytorch](https://github.com/limingwu8/UNet-pytorch)]([https://github.com/limingwu8/UNet-pytorch](https://github.com/limingwu8/UNet-pytorch))). The UNet is a particular type of FCN that owes its name to its symmetric shape, which is different from other FCN variants. The fourth approach is based on the mask-regional CNN (Mask R-CNN) [60] that, differently from the previously mentioned approaches, as it is an extension of object detection CNNs, performs an instance segmentation. Thus, Mask R-CNNs should be able to individuate and separate single cells [61] (implemented in the Python programming language [[https://github.com/hwejn23/histopathology_segmentation](https://github.com/hwejn23/histopathology_segmentation)]([https://github.com/hwejn23/histopathology_segmentation](https://github.com/hwejn23/histopathology_segmentation))). The last methods exploit a specific architecture for nuclei segmentation called Deep Interval-Marker-Aware Network (DIMAN) [23] (implemented in the Python programming language [[https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo](https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo)]([https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo](https://github.com/appiek/Nuclei_Segmentation_Experiments_Demo))), which learns multi-scale feature maps that are stacked as a feature pyramid by skip connections. Unlike the other methods that predict just the foreground regions, this architecture predicts the foreground, the interval regions and the marker of nuclei simultaneously. Thus, it has been designed to facilitate and simplify further post-processing operations.