'Display the specified annotations.
:param anns (array of object): annotations to display
:return: None'

def showAnns(self, anns):

    if (len(anns) == 0):
        return 0
    if ('segmentation' in anns[0]):
        datasetType = 'instances'
    elif ('caption' in anns[0]):
        datasetType = 'captions'
    if (datasetType == 'instances'):
        ax = plt.gca()
        polygons = []
        color = []
        for ann in anns:
            c = np.random.random((1, 3)).tolist()[0]
            if (type(ann['segmentation']) == list):
                for seg in ann['segmentation']:
                    poly = np.array(seg).reshape(((len(seg) / 2), 2))
                    polygons.append(Polygon(poly, True, alpha=0.4))
                    color.append(c)
            else:
                t = self.imgs[ann['image_id']]
                if (type(ann['segmentation']['counts']) == list):
                    rle = mask.frPyObjects([ann['segmentation']], t['height'], t['width'])
                else:
                    rle = [ann['segmentation']]
                m = mask.decode(rle)
                img = np.ones((m.shape[0], m.shape[1], 3))
                if (ann['iscrowd'] == 1):
                    color_mask = (np.array([2.0, 166.0, 101.0]) / 255)
                if (ann['iscrowd'] == 0):
                    color_mask = np.random.random((1, 3)).tolist()[0]
                for i in range(3):
                    img[:, :, i] = color_mask[i]
                ax.imshow(np.dstack((img, (m * 0.5))))
        p = PatchCollection(polygons, facecolors=color, edgecolors=(0, 0, 0, 1), linewidths=3, alpha=0.4)
        ax.add_collection(p)
    elif (datasetType == 'captions'):
        for ann in anns:
            print ann['caption']
