A method comprising: accessing, by a data processing system, a plurality of images of one or more cells; wherein the plurality of images are labelled with nuclei point labels; extracting, by the data processing system, three pixel-level labels from the plurality of images, wherein the three labels are extracted using a Voronoi transformation, a local clustering, and application of repel code; training, by a multi-task scheduler of the data processing system, a convolutional neural network model based on three loss functions corresponding to the three labels, wherein the convolutional network model comprises a plurality of model parameters comprising weights, and wherein the training is iterative and each training iteration comprises; generating, by the convolutional neural network model, a nuclei probability map and a background probability map for each of the plurality of images; comparing, by the data processing system, the nuclei probability map and the background probability map to the three labels; selecting, by the multi-task scheduler, one of the three loss functions; and updating, by the data processing system, one or more weights of the convolutional neural network based on a gradient of the selected loss function; and providing, by the data processing system, a trained convolutional neural network model with the updated weights. accessing, by a data processing system, a plurality of images of one or more cells; wherein the plurality of images are labelled with nuclei point labels; extracting, by the data processing system, three pixel-level labels from the plurality of images, wherein the three labels are extracted using a Voronoi transformation, a local clustering, and application of repel code; training, by a multi-task scheduler of the data processing system, a convolutional neural network model based on three loss functions corresponding to the three labels, wherein the convolutional network model comprises a plurality of model parameters comprising weights, and wherein the training is iterative and each training iteration comprises; generating, by the convolutional neural network model, a nuclei probability map and a background probability map for each of the plurality of images; comparing, by the data processing system, the nuclei probability map and the background probability map to the three labels; selecting, by the multi-task scheduler, one of the three loss functions; and updating, by the data processing system, one or more weights of the convolutional neural network based on a gradient of the selected loss function; and generating, by the convolutional neural network model, a nuclei probability map and a background probability map for each of the plurality of images; comparing, by the data processing system, the nuclei probability map and the background probability map to the three labels; selecting, by the multi-task scheduler, one of the three loss functions; and updating, by the data processing system, one or more weights of the convolutional neural network based on a gradient of the selected loss function; and providing, by the data processing system, a trained convolutional neural network model with the updated weights.