'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]) or ('keypoints' in anns[0])):
        datasetType = 'instances'
    elif ('caption' in anns[0]):
        datasetType = 'captions'
    else:
        raise Exception('datasetType    not    supported')
    if (datasetType == 'instances'):
        ax = plt.gca()
        ax.set_autoscale_on(False)
        polygons = []
        color = []
        for ann in anns:
            c = ((np.random.random((1, 3)) * 0.6) + 0.4).tolist()[0]
            if ('segmentation' in ann):
                if (type(ann['segmentation']) == list):
                    for seg in ann['segmentation']:
                        poly = np.array(seg).reshape((int((len(seg) / 2)), 2))
                        polygons.append(Polygon(poly))
                        color.append(c)
                else:
                    t = self.imgs[ann['image_id']]
                    if (type(ann['segmentation']['counts']) == list):
                        raise NotImplementedError('maskUtils    disabled!')
                    else:
                        rle = [ann['segmentation']]
                    raise NotImplementedError('maskUtils    disabled!')
                    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))))
            if (('keypoints' in ann) and (type(ann['keypoints']) == list)):
                sks = (np.array(self.loadCats(ann['category_id'])[0]['skeleton']) - 1)
                kp = np.array(ann['keypoints'])
                x = kp[0::3]
                y = kp[1::3]
                v = kp[2::3]
                for sk in sks:
                    if np.all((v[sk] > 0)):
                        plt.plot(x[sk], y[sk], linewidth=3, color=c)
                plt.plot(x[(v > 0)], y[(v > 0)], 'o', markersize=8, markerfacecolor=c, markeredgecolor='k', markeredgewidth=2)
                plt.plot(x[(v > 1)], y[(v > 1)], 'o', markersize=8, markerfacecolor=c, markeredgecolor=c, markeredgewidth=2)
        p = PatchCollection(polygons, facecolor=color, linewidths=0, alpha=0.4)
        ax.add_collection(p)
        p = PatchCollection(polygons, facecolor='none', edgecolors=color, linewidths=2)
        ax.add_collection(p)
    elif (datasetType == 'captions'):
        for ann in anns:
            print ann['caption']
