Beef Cattle Instance Segmentation Using Fully Convolutional Neural Network
We present an instance segmentation algorithm trained and applied to a CCTV recording of beef cattle during a winter finishing period. A fully convolutional network was transformed into an instance segmentation network that learns to label each instance of an animal separately. We introduce a conceptually simple framework that the network uses to output a single prediction for every animal. These results are a contribution towards behaviour analysis in winter finishing beef cattle for early detection of animal welfare-related problems.
School of Computer Science
Dublin Institute of Technology
Dublin, Ireland \addinstitution TEAGASC
Grange, Dunsany, Co. Meath, Ireland
Beef Cattle Instance Segmentation Using FCN
Recently deep convolutional neural networks have made strong contribution in a number of areas in computer vision. In particular, three areas have seen progress: object detection, class (semantic) segmentation and instance segmentation (mask representation). Object detection algorithms, such as [Girshick et al.(2014)Girshick, Donahue, Darrell, and
Malik, Ren et al.(2015)Ren, He, Girshick, and Sun, Girshick(2015)] generate bounding box proposals for every object in the image and classify these proposals. Class (semantic) segmentation algoithms delineate class of objects at a pixelwise level without making a distinction between two objects belonging to the same class [Long et al.(2015)Long, Shelhamer, and Darrell, Zheng et al.(2015)Zheng, Jayasumana, Romera-Paredes, Vineet, Su, Du,
Huang, and Torr]. Instance segmentation algorithms find a mask representation for every object in the image. Most algorithms, such as [He et al.(2017)He, Gkioxari, Dollár, and Girshick, Dai et al.(2016)Dai, He, and Sun, Li et al.(2016)Li, Qi, Dai, Ji, and Wei] use a three-stage approach: identify promising regions (bounding box around the object) using a region proposal network (RPN), predict the object class, and extract its mask, often using a fully convolutional network. Recent results on benchmark datasets show the viability of this approach, and currently it is considered the state-of-the-art for extraction of mask representations. Mask R-CNN uses the RPN to predict bounding box coordinates for the objects in the image and their label (object/not object), then refines these predictions using Region of Interest Align (RoI Align) tool, an improvement over RoI pooling, extracts e mask and produces the class of the object. MNC uses a three-layer cascade of layers: first producess bounding boxes around objects usig RPN, then extracts masks using RoI and then takes both of these inputs and predicts class for each object. FCIS uses position-sensitive score maps (object vs background) in each RoI and simultaneously outputs the mask and the class.
Another approach to instance segmentation that has seen grwoing interest in the past year is instance embedding, which does not make use of bounding boxes, e.g. discriminative loss function, [De Brabandere et al.(2017)De Brabandere, Neven, and Van Gool, Kong and Fowlkes(2017)] that use feature clustering to locate the centers of instances.
We introduce a new framework that uses the output of the FCN and the ground truth mask to refine the mask representation of animals in images without bounding box prediction. Our approach is conceptually simple and does not make use of bounding boxes or RPNs, yet manages to achieve results that comapre favourably to all state-of-the-art networks. We show the strength of our approach both on two benchmark datasets and our data. The framework, MaskSplitter, learns to output three different types of mask representations: two bad and one good. A good mask representation overlaps with exactly one animal, bad mask representation of the first type overlaps with two or more animals and multiple bad mask representations of the second type overlaps with one animal. The framework consists of the algorithm that determines the type of the mask representations and the number of true objects (cows) that they predict, pixelwise sigmoid and Euclidean loss functions and a set of convolutional and fully connected layers, one for every type of prediction. The overhead of the network on top of FCN8s is very small, 187000 parameters.
This work is a step towards real-time animal monitoring in farming evironments that have different applications, such as early lameness detection, animal welfare improvement and reduction of cattle maintenance costs. Some other recent applications of deep learning in animal husbandry and agriculture include [Stern et al.(2015)Stern, He, and Yang, Gomez et al.(2016)Gomez, Diez, Salazar, and Diaz]
2.1 Benchmark Datasets
Pascal VOC 2012 ([Everingham et al.(2010)Everingham, Van Gool, Williams, Winn, and Zisserman]) and MS COCO 2017 ([Lin et al.(2014)Lin, Maire, Belongie, Hays, Perona, Ramanan, Dollár, and Zitnick]) are two benchmark datasets that are widely used in the Computer Visions community. There is a total of 1986 images with cows in the MS COCO training set and 87 in the validation set. In Pascal VOC training set there are 64 images with cows and in the validation set there are 71 images. In the training stage we only used MS COCO images. Testing was done both on Pascal VOC and MS COCO datasets.
2.2 Our Dataset
The CCTV raw videos were recorded at a winter finishing feedlot for beef heifers over a two-week period on video cameras pointing at a fixed angle towards enclosures with 10 heifers each, a total of 24 pens. One of the cattle pens was selected for dataset construction. This video sequence is challenging for a number of reasons, each of which poses a particular challenge to the segmenter:
The objects The animals change position frequently and assume different postures when standing up and lying down. Unlike static objects, , e.g. tv sets or buildings their shape changes significantly when an animal moves around, lies down, eats, walks and grooms itself or other pen mates. Hence the network needs to have a much higher generalization capacity.
Similarity between objects: it is often difficult (or in fact impossible) to distinguish between two particular animals due to the same coat colorand absense of other distinct physical markings. In case of partial occlusion, it is nearly impossible even for a human eye to tell one from another.
Occlusion: animals were allotted to 24 individual pens, each containing 10 heifers, located in the same housing facility. CCTV cameras were positioned over each pen. The pens were evenly distributed in three separate rows, throughout the house. The pens were evenly distributed in three separate rows throughout the house and each row had two replicas of each treatment. To achieve the respective space allowances, the dimensions of the pens were 4.50 m 6.66 m (30 m2) for treatment 1, 9.0 m 5.0 m (45 m2) for treatment 2 and 9.0 m 6.66 m (60 m2) for treatments 3 and 4. The feed face length was the same (4.5 m) for all pens. As a result of this setup, the view of animals from the cameras suffers from a great degree of partial occlusion.
Lighting: The house had both artificial lighting (12 light: 12 hour dark) and had natural lighting through vents positioned in the overhead roof. The natural lighting is quite bad. Overall it is rather dark, but gaps in the ceiling which allows allow light through is standard feature of animal housing design. The natural light can leave which leaves rectangular shadows or patches of light all over the enclosure, including the animalscows. This can makes the work of the segmenters more difficult as they could much harderconsider the patch of light to be the feature of the object.
Background: the background (enclosure boundaries) in the video is dark and/or noisy and often cannot be distinguished from the segmented object, because heifers have a color pattern (dark/light brown or grey/white) similar to the background. In many cases the segmented animal instance nearly blends with the background making it impossible to be detected even by the most advanced algorithms.
Considering the substantial challenges, in [Ter-Sarkisov et al.(2017)Ter-Sarkisov, Ross, and Kelleher] we developed a separate naive segmentation algorithm that extracts images and ground truth from frames in the video. The pseudocode is presented as a flowchart in Figure 1.
The dataset constructed from this raw video data consists of about 500 frames extracted from one of the feedlots, each frame was cropped to size 250x250 around every animal in the frame and split randomly into the training and validation datasets, of size 4872 and 984. To show that this data is very unique, we tested the state-of-the art networks (Table 3) on the validation set. Results for all thresholds of IoU are far lower than those for the benchmark sets.
Although deeper networks like ResNet101, introduced in [He et al.(2016)He, Zhang, Ren, and Sun] have the capacity to learn more features, FCN, based on VGG16 ([Simonyan and Zisserman(2014)]), has a very convenient architecture that upsamples semantic features to the size of the input image, in effect producing image-sized score maps, adjusted for the number of classes. Therefore in all of our experiments we use FCN8s ([Long et al.(2015)Long, Shelhamer, and Darrell]), the most refined of FCN architectures (other being FCN-16s and FCN-32s) as a backbone network (feature and score map extractor). The output of FCN8s consists of two score maps (object and background score maps) that have the same dimensionality as the input image and accumulate pixelwise information about the corresponding class (i.e. either animal or background). If we take a pixel-wise argmax value of the score map layer, this results in a binary output mask with pixels valued at either 0 (background) or 1 (object), depending on the greater score. Each isolated group of pixels in the mask equal to 1 constitutes a prediction (mask representation) of the animal’s instance. This binary mask is the main output of the FCN. Our framework is a refinement of this predictive mask that attempts to recover the representation of every animal.
The main concept of MaskSplitter is to separate the learning of three types of predictions: good mask representations, and two bad ones. All predictions are taken from the FCN8s final binary mask. Good mask representation overlaps with exactly one animal in the ground truth map. Two bad predictions are the following two cases:
Single mask representation overlapping with two or more animals,
Two or more mask representations ovelapping with a single animal.
Predictions that have no overlaps with the animals at all are ignored. IoU matrix (number of predictions x number of animals) is used to find out which of the three classes the prediction belongs to. The discrepancy between the true and predicted number of animals gives rise to the three loss functions, one for each type. For the good predictions we use the total number of animals as the target value. For each of the bad predictions it is the total number of animals they overlap with. In addition, MaskSplitter splits the binary input mask into three masks, one of each type. These splits are used in the next step, sparsification. In total, MaskSplitter algorithm has 6 outputs.
Overall structure of the framework
A unified score map is connected to the two final score maps of FCN8s with a 3x3 convolutional filter. In order to learn the three types of predictions independently, we connect three different score maps to this unified score map, one for each type, also with a 3x3 filter. We use this approach instead of a convolutional layer with 3 maps because the loss functions for each type of prediction are computed independently. To maintain spatial features and add , we take a pixelwise product of these three score maps with the split masks. The output is a sparse layer. This approach resembles rectified linear unit, but empirically we found it more efficient. Each of the sparse layer is fully connected to a single unit. This architecture is designed to get the framework to learn to output the number of each type of predictions and compare it to the true number of predicted animals.
These three units are compared to the true number of predicted animals using Euclidean (L2) loss function. The fourth loss function is pixelwise sigmoid that takes the full ground truth mask and the score map for good predictions. The loss function of the full network is Equation 1.
here is a pixelwise cross-entropy loss taken over a sigmoid of the score map of the good predictions, the rest are Euclidean loss functions: is for predicted and true number (i.e. all animals) of good mask representations, is for one mask representation overlapping with 2 or more animals and is for two or more mask representation overlapping with a single animal.
Pseudocode of the main MaskSplitter logic is presented in Algorithm 1 and the flowchart in Figure 2. In the pseudocode and flowchart, for convenience we refer to a single prediction overlapping two or more animals as Type 1 bad prediction and two or more predictions per single animal as Type 2 bad predictions.
4 Main Results
|Image||Mask R-CNN||Mask R-CNN (heads)||FCN8s+MS|
For experiments on benchmark datasets, we extracted 1986 images with cows from MS COCO 2017 training datset and augemnted them with 800 images of persons, sheep, horses and dogs to provide the networks with a larger variety of negatively labelled features. We trained the networks on this combined dataset and tested them on MS COCO 2017 and Pascal VOC 2012 validation dataset.
All models were trained in Caffe framework with ADAM optimizer with standard parameters: for 20000 iterations, base learning rate of on Tesla K40m GPU with 12 GB of VRAM. Since the network is very large (137M parameters), we used a small batch size of 4, and each iteration (feedforward+backpropagation) during training took 1.26 sec/iteration. As the testing procedure is identical to FCN (with fewer score maps, 2 instead of 21), the network required only 90 ms/image (i.e. 11 images/sec). The output of our network is binarized mask for good predictions, size of the image.
We did not do any additional finetuning of the state-of-the art networks on benchmark datsets, as they have been extensively trained already (up to 160000 iterations). Images in the MS COCO training set were cropped to 250x250 for consistency. All images in the validation set retained their dimensions. When testing on MS COCO and VOC validation dataset, we kept all network parameters (number of RPN proposals, proposal thresholds, etc) for MNC, Mask R-CNN and FCIS the same as in the results reported by the developers. All mask representations less than 1010 for all networks were ignored as nuisance.
4.1 Pascal VOC 2012 dataset
Comparison on Pascal VOC 2012 validation dataset consisting of 71 images of cows (Table 1 shows that our framework, while being conceptually far simpler than those used in Mask R-CNN, FCIS and MNC, using FCN8s with VGG16 ([Simonyan and Zisserman(2014)]) as backbone network (far smaller than ResNet ([He et al.(2016)He, Zhang, Ren, and Sun]) with 101 layers used by FCIS and Mask R-CNN), outperforms the best of these networks (Mask R-CNN) by over 3 percentage points (mean Aveage Precision).
4.2 MS COCO 2017 dataset
MS COCO is a far more diverse dataset, in terms of the number, scale, distance and angle of the objects in images. Since both Mask R-CNN and FCIS were trained with ResNet101 as the backbone network, much of the gap between our results and theirs can be explained by ResNet’s depth rather than specific strengths of Mask R-CNN and FCIS architecture. Curently fully convolutional versions of ResNet are not available, but we plan to adapt it to our architecture.
4.3 Our Dataset
Before finetuning Mask R-CNN to our data, we tested all three networks on it. Results in Table 3 demonstrate that even the most advanced networks do not get good predictions due to the vast difference between the benchmark datasets and ou data (see Section 2). None of the networks generalized successfully to the CCTV data. Although Mask R-CNN performed slightly worse than FCIS, it showed greater capacity on other datasets, so we chose this network to train on our data. Mask R-CNN was finetuned from ResNet101-FPN (feature pyramid network) weights pre-trained on MS COCO (https://github.com/matterport/Mask_RCNN/releases, v1.0 from 23/10/2017) with the starting learning rate of 0.0002 and max/min image size 256x256 (as this is the closest to the 250x250 training images) for 20000 iterations. As the max/min image size was reduced, the maximal RPN anchor scale was also reduced to 256 and the number of train regions of interest (RoIs) to 32. Other configuration parameters were kept the same. For comparison we trained both the full network and only heads (classification, bounding box and mask). For comparison we also finetuned FCN8s that does only mask representation without instance segmentation to serve as the baseline. Results of finetuning are presented in Table 4: FCN8s with MaskSplitter framework confidently outperforms both Mask R-CNN models: mAP is more than 8% higher and AP@0.5 IoU is more than 2.5% higher than the best Mask R-CNN model. This demonstrates the framework’s ability to perform well on object-vs-background problems without the RPN and RoI frameworks.
In this article we presented a conceptually simple but efficient framework that we called MaskSplitter for extracting and refining mask representation of cows, both in benchmark datasets and a challenging dataset obtained from a raw video taken at a cattle finishing facility. The framework uses both the binary mask output of the last FCN8s layer and the ground truth mask to extract information such as the number of overlaps between predicted mask representations and true objects. Without tricks like ensemble networks, image flipping and rotation our network performs well compared to all state-of-the-art instance segmentation solutions. This approach is easily generalizable to other backbone networks that produce image-sized score maps and other image-vs-background problems (e.g tumor detection).
- [Dai et al.(2016)Dai, He, and Sun] Jifeng Dai, Kaiming He, and Jian Sun. Instance-aware semantic segmentation via multi-task network cascades. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 3150–3158, 2016.
- [De Brabandere et al.(2017)De Brabandere, Neven, and Van Gool] Bert De Brabandere, Davy Neven, and Luc Van Gool. Semantic instance segmentation with a discriminative loss function. arXiv preprint arXiv:1708.02551, 2017.
- [Everingham et al.(2010)Everingham, Van Gool, Williams, Winn, and Zisserman] Mark Everingham, Luc Van Gool, Christopher KI Williams, John Winn, and Andrew Zisserman. The pascal visual object classes (voc) challenge. International journal of computer vision, 88(2):303–338, 2010.
- [Girshick(2015)] Ross Girshick. Fast r-cnn. In The IEEE International Conference on Computer Vision (ICCV), December 2015.
- [Girshick et al.(2014)Girshick, Donahue, Darrell, and Malik] Ross Girshick, Jeff Donahue, Trevor Darrell, and Jitendra Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2014.
- [Gomez et al.(2016)Gomez, Diez, Salazar, and Diaz] Alexander Gomez, German Diez, Augusto Salazar, and Angelica Diaz. Animal identification in low quality camera-trap images using very deep convolutional neural networks and confidence thresholds. In International Symposium on Visual Computing, pages 747–756. Springer, 2016.
- [He et al.(2016)He, Zhang, Ren, and Sun] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770–778, 2016.
- [He et al.(2017)He, Gkioxari, Dollár, and Girshick] Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross Girshick. Mask r-cnn. arXiv preprint arXiv:1703.06870, 2017.
- [Kong and Fowlkes(2017)] Shu Kong and Charless C. Fowlkes. Recurrent pixel embedding for instance grouping. CoRR, abs/1712.08273, 2017. URL http://arxiv.org/abs/1712.08273.
- [Li et al.(2016)Li, Qi, Dai, Ji, and Wei] Yi Li, Haozhi Qi, Jifeng Dai, Xiangyang Ji, and Yichen Wei. Fully convolutional instance-aware semantic segmentation. arXiv preprint arXiv:1611.07709, 2016.
- [Lin et al.(2014)Lin, Maire, Belongie, Hays, Perona, Ramanan, Dollár, and Zitnick] Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C Lawrence Zitnick. Microsoft coco: Common objects in context. In European conference on computer vision, pages 740–755. Springer, 2014.
- [Liu et al.(2017)Liu, Cheng, Hu, Wang, and Bai] Yun Liu, Ming-Ming Cheng, Xiaowei Hu, Kai Wang, and Xiang Bai. Richer convolutional features for edge detection. 2017.
- [Long et al.(2015)Long, Shelhamer, and Darrell] Jonathan Long, Evan Shelhamer, and Trevor Darrell. Fully convolutional networks for semantic segmentation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 3431–3440, 2015.
- [Ren et al.(2015)Ren, He, Girshick, and Sun] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, and R. Garnett, editors, Advances in Neural Information Processing Systems 28, pages 91–99. Curran Associates, Inc., 2015.
- [Ridler and Calvard(1978)] TW Ridler and S Calvard. Picture thresholding using an iterative selection method. IEEE Trans Syst Man Cybern, 8(8):630–632, 1978.
- [Simonyan and Zisserman(2014)] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.
- [Stern et al.(2015)Stern, He, and Yang] Ulrich Stern, Ruo He, and Chung-Hui Yang. Analyzing animal behavior via classifying each video frame using convolutional neural networks. Scientific reports, 5, 2015.
- [Ter-Sarkisov et al.(2017)Ter-Sarkisov, Ross, and Kelleher] Aram Ter-Sarkisov, Robert Ross, and John Kelleher. Bootstrapping labelled dataset construction for cow tracking and behavior analysis. arXiv preprint arXiv:1703.10571, 2017.
- [Zheng et al.(2015)Zheng, Jayasumana, Romera-Paredes, Vineet, Su, Du, Huang, and Torr] Shuai Zheng, Sadeep Jayasumana, Bernardino Romera-Paredes, Vibhav Vineet, Zhizhong Su, Dalong Du, Chang Huang, and Philip HS Torr. Conditional random fields as recurrent neural networks. In Proceedings of the IEEE International Conference on Computer Vision, pages 1529–1537, 2015.