Esempio n. 1
0
def submission(pklpath):
    xdf = pd.read_csv("../../data/train/Annotations/train.csv")
    trainKeys = xdf.keys()

    testdf = pd.read_csv("../../data/test/test.csv")
    print len(testdf), " samples in test.csv"

    mdict = dict()
    for xfile in os.listdir(pklpath):
        if xfile.endswith('.pkl'):
            category = xfile.strip().split('.')[0]
            pkl = open(os.path.join(pklpath, xfile))
            mdict[category] = pickle.load(pkl)

    print testdf.keys()
    print mdict.keys()

    submissionDf = pd.DataFrame(columns=trainKeys,
                                index=np.arange(testdf.shape[0]))
    submissionDf = submissionDf.fillna(value='-1_-1_-1')
    submissionDf['image_id'] = testdf['image_id']
    submissionDf['image_category'] = testdf['image_category']

    for _index, _row in submissionDf.iterrows():
        image_id = _row['image_id']
        image_category = _row['image_category']
        kplst = get_kp_from_dict(mdict, image_category, image_id)
        fill_dataframe(kplst, getKpKeys('all')[1:], _row, image_category)

    print len(submissionDf), "save to ", os.path.join(pklpath,
                                                      'submission.csv')
    submissionDf.to_csv(os.path.join(pklpath, 'submission.csv'), index=False)
Esempio n. 2
0
def visualize_keypoint(imageName, category, dtkp):
    cvmat = cv2.imread(imageName)
    for key in getKpKeys(category)[1:]:
        index = get_kp_index_from_allkeys(key)
        _kp = dtkp[index]
        cv2.circle(cvmat,
                   center=(_kp.x, _kp.y),
                   radius=7,
                   color=(1.0, 0.0, 0.0),
                   thickness=2)
    cv2.imshow('demo', cvmat)
    cv2.waitKey()
Esempio n. 3
0
    def _prcoess_img(self, dfrow, inputSize, rotateFlag, flipFlag, cropFlag, nobgFlag):

        mlist = dfrow[getKpKeys(self.category)]
        imgName, kpStr = mlist[0], mlist[1:]

        # read kp annotation from csv file
        kpAnnlst = list()
        for _kpstr in kpStr:
            _kpAn = KpAnno.readFromStr(_kpstr)
            kpAnnlst.append(_kpAn)

        assert (len(kpAnnlst) == getKpNum(self.category)), str(len(kpAnnlst))+" is not the same as "+str(getKpNum(self.category))


        xcvmat = cv2.imread(os.path.join(self.train_img_path, imgName))
        if xcvmat is None:
            return None, None

        #flip as first operation.
        # flip image
        if random.choice([0, 1]) and flipFlag:
            xcvmat, kpAnnlst = self.flip_image(xcvmat, kpAnnlst)

        #if cropFlag:
        #    xcvmat, kpAnnlst = crop_image(xcvmat, kpAnnlst, 0.8, 0.95)

        # pad image to 512x512
        paddedImg, kpAnnlst = pad_image(xcvmat, kpAnnlst, inputSize[0], inputSize[1])

        assert (len(kpAnnlst) == getKpNum(self.category)), str(len(kpAnnlst)) + " is not the same as " + str(
            getKpNum(self.category))

        # output ground truth heatmap is 256x256
        trainGtHmap = self.__generate_hmap(paddedImg, kpAnnlst)

        if random.choice([0,1]) and rotateFlag:
            rAngle = np.random.randint(-1*40, 40)
            rotatedImage,  _ = rotate_image(paddedImg, list(), rAngle)
            rotatedGtHmap  = rotate_mask(trainGtHmap, rAngle)
        else:
            rotatedImage  = paddedImg
            rotatedGtHmap = trainGtHmap

        # resize image
        resizedImg    = cv2.resize(rotatedImage, inputSize)
        resizedGtHmap = cv2.resize(rotatedGtHmap, (inputSize[0]//2, inputSize[1]//2))

        return normalize_image(resizedImg), resizedGtHmap
 def _get_groundtruth_kpAnno(self, dfrow):
     mlist = dfrow[getKpKeys(self.category)]
     imgName, kpStr = mlist[0], mlist[1:]
     # read kp annotation from csv file
     kpAnnlst = [KpAnno.readFromStr(_kpstr) for _kpstr in kpStr]
     return kpAnnlst