Beispiel #1
0
def triplet_train_gen1(BASE_DIR,
                       IMG_ROW,
                       IMG_COL,
                       pathdata,
                       labeldata,
                       batch_size=50):
    while (True):
        imglist = []
        for i in range(batch_size):
            rndid = random.randint(0, len(pathdata) - 1)
            imgpath = BASE_DIR + pathdata[pathdata.index[rndid]]
            anchor = imgarr(imgpath)
            anchor = cv2.resize(anchor, (IMG_ROW, IMG_COL))
            positive = siamese_fetch_img(BASE_DIR,
                                         labeldata[labeldata.index[rndid]],
                                         labeldata,
                                         pathdata,
                                         kind=1)
            negative = siamese_fetch_img(BASE_DIR,
                                         labeldata[labeldata.index[rndid]],
                                         labeldata,
                                         pathdata,
                                         kind=0)
            positive = cv2.resize(positive, (IMG_ROW, IMG_COL))
            negative = cv2.resize(negative, (IMG_ROW, IMG_COL))
            imglist.append([anchor, positive, negative])
        imglist = np.asarray(imglist)
        yield ([imglist[:, 0], imglist[:, 1], imglist[:, 2]])
Beispiel #2
0
def triplet_train_gen(BASE_DIR,
                      IMG_ROW,
                      IMG_COL,
                      pathdata,
                      labeldata,
                      batch_size=50):
    while (True):
        anchorlist = []
        positivelist = []
        negativelist = []
        for i in range(batch_size):
            rndid = random.randint(0, len(pathdata) - 1)
            imgpath = BASE_DIR + pathdata[pathdata.index[rndid]]
            anchor = imgarr(imgpath)
            anchor = cv2.resize(anchor, (IMG_ROW, IMG_COL))
            anchorlist.append(anchor)
            positive = siamese_fetch_img(BASE_DIR,
                                         labeldata[labeldata.index[rndid]],
                                         labeldata,
                                         pathdata,
                                         kind=1)
            negative = siamese_fetch_img(BASE_DIR,
                                         labeldata[labeldata.index[rndid]],
                                         labeldata,
                                         pathdata,
                                         kind=0)
            positive = cv2.resize(positive, (IMG_ROW, IMG_COL))
            negative = cv2.resize(negative, (IMG_ROW, IMG_COL))
            positivelist.append(positive)
            negativelist.append(negative)
        yield ([
            np.asarray(anchorlist),
            np.asarray(positivelist),
            np.asarray(negativelist)
        ], None)
Beispiel #3
0
def triplet_valid_gen(BASE_DIR, IMG_ROW, IMG_COL, pathdata, labeldata):
    anchorlist = []
    positivelist = []
    negativelist = []
    for i in range(len(pathdata)):
        imgpath = BASE_DIR + pathdata[pathdata.index[i]]
        print(imgpath)
        print(os.path.exists(imgpath))
        anchor = imgarr(imgpath)
        anchor = cv2.resize(anchor, (IMG_ROW, IMG_COL))
        positive = siamese_fetch_img(BASE_DIR,
                                     labeldata[labeldata.index[i]],
                                     labeldata,
                                     pathdata,
                                     kind=1)
        negative = siamese_fetch_img(BASE_DIR,
                                     labeldata[labeldata.index[i]],
                                     labeldata,
                                     pathdata,
                                     kind=0)
        positive = cv2.resize(positive, (IMG_ROW, IMG_COL))
        negative = cv2.resize(negative, (IMG_ROW, IMG_COL))
        anchorlist.append(anchor)
        positivelist.append(positive)
        negativelist.append(negative)
    return ([
        np.asarray(anchorlist),
        np.asarray(positivelist),
        np.asarray(negativelist)
    ], None)
Beispiel #4
0
def siamese_train_gen(BASE_DIR,
                      IMG_ROW,
                      IMG_COL,
                      pathdata,
                      labeldata,
                      batch_size=50):
    while (True):
        imglist1 = []
        imglist2 = []
        labellist = []
        for i in range(batch_size):
            rndid = random.randint(0, len(pathdata) - 1)
            imgpath = BASE_DIR + pathdata[pathdata.index[rndid]]
            img1 = imgarr(imgpath)
            if (i % 2 == 0):
                kind = 0
                labellist.append(0)
            else:
                kind = 1
                labellist.append(1)
            img2 = siamese_fetch_img(BASE_DIR,
                                     labeldata[labeldata.index[rndid]],
                                     labeldata,
                                     pathdata,
                                     kind=kind)
            img1 = cv2.resize(img1, (IMG_ROW, IMG_COL))

            img2 = cv2.resize(img2, (IMG_ROW, IMG_COL))
            imglist1.append(img1)
            imglist2.append(img2)
        yield ([np.asarray(imglist1),
                np.asarray(imglist2)], np.asarray(labellist))
Beispiel #5
0
def triplet_valid_gen1(BASE_DIR, IMG_ROW, IMG_COL, pathdata, labeldata):
    imglist = []
    for i in range(len(pathdata)):
        imgpath = BASE_DIR + pathdata[pathdata.index[i]]
        anchor = imgarr(imgpath)
        anchor = cv2.resize(anchor, (IMG_ROW, IMG_COL))
        positive = siamese_fetch_img(BASE_DIR,
                                     labeldata[labeldata.index[i]],
                                     labeldata,
                                     pathdata,
                                     kind=1)
        negative = siamese_fetch_img(BASE_DIR,
                                     labeldata[labeldata.index[i]],
                                     labeldata,
                                     pathdata,
                                     kind=0)
        positive = cv2.resize(positive, (IMG_ROW, IMG_COL))
        negative = cv2.resize(negative, (IMG_ROW, IMG_COL))
        imglist.append([anchor, positive, negative])
    imglist = np.asarray(imglist)
    return ([imglist[:, 0], imglist[:, 1], imglist[:, 2]])
Beispiel #6
0
def siamese_valid_gen(BASE_DIR, IMG_ROW, IMG_COL, pathdata, labeldata):
    imglist1 = []
    imglist2 = []
    labellist = []
    for i in range(len(pathdata)):
        imgpath = BASE_DIR + pathdata[pathdata.index[i]]
        img1 = imgarr(imgpath)
        if (i % 2 == 0):
            kind = 0
            labellist.append(0)
        else:
            kind = 1
            labellist.append(1)
        img2 = siamese_fetch_img(BASE_DIR,
                                 labeldata[labeldata.index[i]],
                                 labeldata,
                                 pathdata,
                                 kind=kind)
        img1 = cv2.resize(img1, (IMG_ROW, IMG_COL))
        img2 = cv2.resize(img2, (IMG_ROW, IMG_COL))
        imglist1.append(img1)
        imglist2.append(img2)
    return ([np.asarray(imglist1),
             np.asarray(imglist2)], np.asarray(labellist))