Digit Cleaner Idea#

%load_ext autoreload
%autoreload 2

Imports#

import pandas as pd 
import numpy as np
import cv2
import os
import matplotlib.pyplot as plt
import itertools
from IPython.display import display, Image
from aiking.data.external import * #We need to import this after fastai modules
from ipywidgets.widgets import interact
import warnings
import os
import dask.bag as db
from fastprogress.fastprogress import master_bar, progress_bar
from matplotlib import cm
from fastcore.xtras import *
import PIL
import skimage
import imutils
from imutils import contours
import itertools
from dask.diagnostics import ProgressBar
path = untar_data("kaggle_competitions::ultra-mnist"); path
(path/"sample").ls()
(#560) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/zzoraczqoe.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/rwrnaoifjc.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/aadalkvtqc.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/qtmqrprqyd.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/wpkrnfycyr.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/ohzlpnyrpp.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/fnffkeomht.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/hzkaomeimm.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/owxpzanmht.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample/tapvaidyxs.jpeg')...]
Image((path/"sample").ls()[0])
../../_images/05_sample_preprocess_5_0.jpg
img_loc = (path/"sample").ls()[0]
img = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE)
plt.imshow(cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2), cmap='gray')
<matplotlib.image.AxesImage at 0xf9480874be0>
../../_images/05_sample_preprocess_7_1.png
plt.imshow(skimage.measure.label(img_thresh(img), background=0),cmap='gray')
Heelo
img_loc = (path/"sample").ls()[0]
img = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE)
blur = cv2.GaussianBlur(img,(5,5),0)
ret3,th3 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
plt.imshow(th3, cmap='gray')
<matplotlib.image.AxesImage at 0xf9480e99fd0>
../../_images/05_sample_preprocess_9_1.png
def image_cleaner(img, threshold=0.5):
    img = img/255
    for i,j in itertools.product(range(4), range(4)):
        x1 = 1000*i
        x2 = 1000*(i+1)
        y1 = 1000*j
        y2 = 1000*(j+1)
        if np.mean(img[x1:x2, y1:y2]) > threshold:
            img[x1:x2, y1:y2] = np.abs(img[x1:x2, y1:y2] -1)
    return img
def image_cleaner2(img, threshold=0.5):
    img = img/255
    for i,j in itertools.product(range(4), range(4)):
        x1 = 1000*i
        x2 = 1000*(i+1)
        y1 = 1000*j
        y2 = 1000*(j+1)
        max_xy = 4000
        border = img[x1:x2,min(y1,max_xy -1)].sum() + img[x1:x2, y2-1].sum() + img[min(x1, max_xy-1), y1:y2].sum() + img[x2-1, y1:y2].sum()
        if border >=2000: img[x1:x2, y1:y2] = np.abs(img[x1:x2, y1:y2] -1)
    return img
images = (path/"sample").ls()
df_train = pd.read_csv(path/"sample.csv")
@interact(idx=(0, len(images)))
def display_img(idx):
    img_loc = images[idx]
    img_name = os.path.splitext(img_loc.name)[0]
    print(df_train[df_train['id'] == img_name]['digit_sum'].values)
    
    img1 = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE)
    img2 = img1/255
    Hori = np.concatenate((img1/255, img2), axis=1)
    plt.imshow(Hori, cmap='gray')
    # return cv2.imread(img_loc)
    
    # return display(Image(img_loc, width=200, height=200), Image(img_loc, width=200, height=200))

Cleaning Background#

pb_train = (path/"sample_black")
pb_test = (path/"sample_black")
pb_train.mkdir(exist_ok=True)
pb_test.mkdir(exist_ok=True)
pb_train = (path/"sample_black")
pb_test = (path/"sample_black")
pb_train.mkdir(exist_ok=True)
pb_test.mkdir(exist_ok=True)
def create_clean_ds2(folder="train"):
    pb_folder = path/f"{folder}_black"
    def convert_image(img):
        if not (pb_folder/img.name).exists():
            data = image_cleaner2(cv2.imread(str(img.resolve()), cv2.IMREAD_GRAYSCALE))
            data = cv2.normalize(data, None, alpha = 0, beta = 255, norm_type = cv2.NORM_MINMAX, dtype = cv2.CV_32F).astype(np.uint8)
            cv2.imwrite(str(pb_folder/img.name), data)
        return True
    res = db.from_sequence((path/folder).ls()).map(convert_image)
    with ProgressBar():
        res.compute()
# create_clean_ds2(folder="sample")
[########################################] | 100% Completed |  1min 19.1s
(path/"sample_black").ls()
(#560) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/ozzioujjff.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/acworymlmx.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/nfvxbldmyo.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/pmnkjbsjqh.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/ssjpzbxbga.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/mcaakomsax.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/zxjkvwzvmd.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/ehvjfkpjjw.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/lyavphllie.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/mmyqlgtbrp.jpeg')...]
Image((path/"sample_black").ls()[0])
../../_images/05_sample_preprocess_19_0.jpg
path.ls()
(#16) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/test_black'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/train_sample.csv'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample.csv'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/train.csv'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/train'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/train_train.csv'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/test'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/train_black2'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/valid_train.csv')...]

Read Image sans background and make adjustment#

  • Gausian Blur

  • Threshold - erod & dilate (converts into 0 and 1)

  • Converts into labels (connected or non zero pixel)

  • mask image -> filters labels for which pixel count is less than zero and add filtered image ( all labels get 255)

img_loc = (path/"sample_black").ls()[0]; img_loc
Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black/ozzioujjff.jpeg')
img = cv2.imread(str(img_loc), 0)
img
array([[0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       ...,
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)
pd.concat([pd.read_csv(path/"train_sample.csv"), pd.read_csv(path/"valid_sample.csv")]).to_csv(path/"sample.csv", index=False)
df = pd.read_csv(path/"sample.csv")
pd.read_csv(path/"sample.csv")['digit_sum'].value_counts().sort_index()
0     20
1     20
2     20
3     20
4     20
5     20
6     20
7     20
8     20
9     20
10    20
11    20
12    20
13    20
14    20
15    20
16    20
17    20
18    20
19    20
20    20
21    20
22    20
23    20
24    20
25    20
26    20
27    20
Name: digit_sum, dtype: int64
df= pd.read_csv(path/"sample.csv")
# df[df['id'] == "jcjbrllwhj"]
df[df['id'] == img_loc.name.split(sep=".")[0]]['digit_sum'].values[0]
12
img_loc.name.split(sep=".")[0]
'ozzioujjff'
blurred = cv2.GaussianBlur(img, (11,11),0) 
plt.imshow(blurred, cmap='gray')
<matplotlib.image.AxesImage at 0xf3edfdfbd30>
../../_images/05_sample_preprocess_31_1.png
thresh = cv2.threshold(blurred, 10, 255, cv2.THRESH_BINARY)[1]
plt.imshow(thresh, cmap='gray')
<matplotlib.image.AxesImage at 0xf3edfd66820>
../../_images/05_sample_preprocess_32_1.png
def img_thresh(input_img):
    blurred = cv2.GaussianBlur(input_img, (11,11),0)
    thresh = cv2.threshold(blurred, 10, 255, cv2.THRESH_BINARY)[1]
    return thresh

plt.imshow(img_thresh(img), cmap='gray')
<matplotlib.image.AxesImage at 0xf3edfcde3a0>
../../_images/05_sample_preprocess_33_1.png
images = (path/"sample").ls()
images.sort()
images2 = (path/"sample_black").ls()
images2.sort()
df_train = pd.read_csv(path/"sample.csv")
@interact(idx=(0, len(images)))
def display_img(idx):
    img_loc  = images[idx]
    img_loc2 = images2[idx]
    img_name = os.path.splitext(img_loc.name)[0]
    print(df_train[df_train['id'] == img_name]['digit_sum'].values)
    
    img1 = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE)
    img2 = cv2.imread(str(img_loc2.resolve()), cv2.IMREAD_GRAYSCALE)
    img3 = img_thresh(img2)
    img4 = img_thresh(img1)
    Hori = np.concatenate((img1, img2, img3, img4), axis=1)
    plt.imshow(Hori, cmap='gray')
skimage.measure.label?
Signature:
skimage.measure.label(
    label_image,
    background=None,
    return_num=False,
    connectivity=None,
)
Docstring:
Label connected regions of an integer array.

Two pixels are connected when they are neighbors and have the same value.
In 2D, they can be neighbors either in a 1- or 2-connected sense.
The value refers to the maximum number of orthogonal hops to consider a
pixel/voxel a neighbor::

  1-connectivity     2-connectivity     diagonal connection close-up

       [ ]           [ ]  [ ]  [ ]             [ ]
        |               \  |  /                 |  <- hop 2
  [ ]--[x]--[ ]      [ ]--[x]--[ ]        [x]--[ ]
        |               /  |  \             hop 1
       [ ]           [ ]  [ ]  [ ]

Parameters
----------
label_image : ndarray of dtype int
    Image to label.
background : int, optional
    Consider all pixels with this value as background pixels, and label
    them as 0. By default, 0-valued pixels are considered as background
    pixels.
return_num : bool, optional
    Whether to return the number of assigned labels.
connectivity : int, optional
    Maximum number of orthogonal hops to consider a pixel/voxel
    as a neighbor.
    Accepted values are ranging from  1 to input.ndim. If ``None``, a full
    connectivity of ``input.ndim`` is used.

Returns
-------
labels : ndarray of dtype int
    Labeled array, where all connected regions are assigned the
    same integer value.
num : int, optional
    Number of labels, which equals the maximum label index and is only
    returned if return_num is `True`.

See Also
--------
regionprops
regionprops_table

References
----------
.. [1] Christophe Fiorio and Jens Gustedt, "Two linear time Union-Find
       strategies for image processing", Theoretical Computer Science
       154 (1996), pp. 165-181.
.. [2] Kensheng Wu, Ekow Otoo and Arie Shoshani, "Optimizing connected
       component labeling algorithms", Paper LBNL-56864, 2005,
       Lawrence Berkeley National Laboratory (University of California),
       http://repositories.cdlib.org/lbnl/LBNL-56864

Examples
--------
>>> import numpy as np
>>> x = np.eye(3).astype(int)
>>> print(x)
[[1 0 0]
 [0 1 0]
 [0 0 1]]
>>> print(label(x, connectivity=1))
[[1 0 0]
 [0 2 0]
 [0 0 3]]
>>> print(label(x, connectivity=2))
[[1 0 0]
 [0 1 0]
 [0 0 1]]
>>> print(label(x, background=-1))
[[1 2 2]
 [2 1 2]
 [2 2 1]]
>>> x = np.array([[1, 0, 0],
...               [1, 1, 5],
...               [0, 0, 0]])
>>> print(label(x))
[[1 0 0]
 [1 1 2]
 [0 0 0]]
File:      /opt/anaconda/envs/aiking/lib/python3.9/site-packages/skimage/measure/_label.py
Type:      function
plt.imshow(skimage.measure.label(img_thresh(img), background=0),cmap='gray')
<matplotlib.image.AxesImage at 0xf3ede7c24f0>
../../_images/05_sample_preprocess_36_1.png
plt.imshow(img[ 2075:2500, 600:1300])
<matplotlib.image.AxesImage at 0xf3edec5b400>
../../_images/05_sample_preprocess_37_1.png
np.unique(skimage.measure.label(img_thresh(img[ 2075:2500, 600:1300])).flatten())
array([0, 1])
np.unique(skimage.measure.label(img_thresh(img), background=0).flatten(), return_index=True)
(array([0, 1, 2, 3, 4, 5, 6, 7, 8]),
 array([       0,  1743489,  2894014,  5133973,  8256805,  8883269,
         8891560, 10280735, 14241163]))
labels = skimage.measure.label(img_thresh(img), background=0)
mask = np.zeros(img.shape, dtype='uint8')
@interact(x = (1,8))
def plt_ln(x=1):
    lbl_mask = np.zeros(img.shape, dtype="uint8")
    lbl_mask[labels == x] = 255
    plt.imshow(lbl_mask)
def mask_img(img, pxl_thresh=100):
    labels = skimage.measure.label(img, background=0)
    mask = np.zeros(img.shape, dtype='uint8')
    for lbl in np.unique(labels):
        if lbl==0: continue
        lbl_mask = np.zeros(img.shape, dtype='uint8')
        lbl_mask[labels==lbl] = 255
        if cv2.countNonZero(lbl_mask) > pxl_thresh: mask = cv2.add(mask, lbl_mask)
    return mask

plt.imshow(mask_img(img_thresh(img)), cmap='gray')
<matplotlib.image.AxesImage at 0xf3ebc5967c0>
../../_images/05_sample_preprocess_42_1.png
np.unique(mask_img(img_thresh(img)))
array([  0, 255], dtype=uint8)

Find contours and draw boxes#

plt.imshow(img, cmap='gray')
np.unique(img)
array([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9, 246, 247, 248,
       249, 250, 251, 252, 253, 254, 255], dtype=uint8)
../../_images/05_sample_preprocess_45_1.png
cv2.findContours?
Docstring:
findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy
.   @brief Finds contours in a binary image.
.   
.   The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours
.   are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the
.   OpenCV sample directory.
.   @note Since opencv 3.2 source image is not modified by this function.
.   
.   @param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero
.   pixels remain 0's, so the image is treated as binary . You can use #compare, #inRange, #threshold ,
.   #adaptiveThreshold, #Canny, and others to create a binary image out of a grayscale or color one.
.   If mode equals to #RETR_CCOMP or #RETR_FLOODFILL, the input can also be a 32-bit integer image of labels (CV_32SC1).
.   @param contours Detected contours. Each contour is stored as a vector of points (e.g.
.   std::vector<std::vector<cv::Point> >).
.   @param hierarchy Optional output vector (e.g. std::vector<cv::Vec4i>), containing information about the image topology. It has
.   as many elements as the number of contours. For each i-th contour contours[i], the elements
.   hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3] are set to 0-based indices
.   in contours of the next and previous contours at the same hierarchical level, the first child
.   contour and the parent contour, respectively. If for the contour i there are no next, previous,
.   parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.
.   @note In Python, hierarchy is nested inside a top level array. Use hierarchy[0][i] to access hierarchical elements of i-th contour.
.   @param mode Contour retrieval mode, see #RetrievalModes
.   @param method Contour approximation method, see #ContourApproximationModes
.   @param offset Optional offset by which every contour point is shifted. This is useful if the
.   contours are extracted from the image ROI and then they should be analyzed in the whole image
.   context.
Type:      builtin_function_or_method
def find_contours(img_in, mask, draw=True, debug=False):
    cnts = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    cnts = imutils.grab_contours(cnts)
    cnts = contours.sort_contours(cnts)[0]
    bbox_list = []
    if debug:print(f"Found {len(cnts)} countours/numbers")
    img_rgb = cv2.cvtColor(img_in.astype('float32'), cv2.COLOR_GRAY2RGB)
    for (i,c) in enumerate(cnts):
        (x,y,w,h) = cv2.boundingRect(c)
        bbox_list.append([x,y,w,h])
        if debug: print(bbox_list)
        if draw:
            red = (255, 0, 0)
            thickness = 5
            cv2.rectangle(img_rgb, (x,y), (x+w, y+h), red, thickness)
    return bbox_list, img_rgb
img_in = img.copy()
mask = mask_img(img_thresh(img_in))
bbox_list, img_rgb = find_contours(img_in, mask)
plt.imshow(img_rgb)
Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).
<matplotlib.image.AxesImage at 0xf3ebc24ca90>
../../_images/05_sample_preprocess_48_2.png

Crop#

display(PIL.Image.fromarray(img_rgb.astype(np.uint8)).resize((480,480)))
../../_images/05_sample_preprocess_50_0.png
bbox_list
[[586, 2064, 726, 510],
 [1121, 3560, 86, 86],
 [1924, 723, 694, 866],
 [2736, 2220, 950, 1186],
 [3486, 435, 13, 16]]
x, y, w, h = bbox_list[2]
x, y, w, h
(1924, 723, 694, 866)
@interact(i=(0,4))
def img_bbox(i=1):
    offset = 5
    y, x, h, w = bbox_list[i]
    bbox_img = img[x+offset:x+w-offset, y+offset:y+h-offset]
    plt.imshow(bbox_img, cmap='gray')
for bbox in bbox_list:
    bbox_img = img[bbox[1]:bbox[1]+bbox[3], bbox[0]:bbox[0]+bbox[2]]
    print(bbox)
    h, w = bbox_img.shape
    print(h,w)

    if bbox[3] > bbox[2]:
        scale = bbox[3]
        offset_w = int((scale - w) / 2)
        offset_h = 0
    else:
        scale = bbox[2]
        offset_h = int((scale - h) / 2)
        offset_w = 0
    print("----")
    print(scale, offset_h, offset_w)
[586, 2064, 726, 510]
510 726
----
726 108 0
[1121, 3560, 86, 86]
86 86
----
86 0 0
[1924, 723, 694, 866]
866 694
----
866 0 86
[2736, 2220, 950, 1186]
1186 950
----
1186 0 118
[3486, 435, 13, 16]
16 13
----
16 0 1
list('abcdefghijklmnopqrstuvwxyz')
['a',
 'b',
 'c',
 'd',
 'e',
 'f',
 'g',
 'h',
 'i',
 'j',
 'k',
 'l',
 'm',
 'n',
 'o',
 'p',
 'q',
 'r',
 's',
 't',
 'u',
 'v',
 'w',
 'x',
 'y',
 'z']
def img_bbox(bbox, img, offset=5):
    y, x, h, w = bbox
    bbox_img = img[x+offset:x+w-offset, y+offset:y+h-offset]
    return bbox_img
# (path/"sample_black_cropped").mkdir()
cropped = path/"sample_black_cropped"
cropped.mkdir(exist_ok=True)
img_loc = (path/"sample_black").ls()[0]; img_loc
def create_bbox_images(img_loc, cropped):
    img = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE); img
    img_in = img.copy()
    mask = mask_img(img_thresh(img_in))
    bbox_list, img_rgb = find_contours(img_in, mask)
    abcd = list('abcdefghijklmnopqrstuvwxyz')[:len(bbox_list)]
    folder = cropped/img_loc.stem
    folder.mkdir(exist_ok=True, parents=True)
    new_names = [folder/f"{n}.jpeg" for n in abcd]
    for bbox, new_name in zip(bbox_list, new_names):
        b_img = img_bbox(bbox, img_in)
        # if b_img.any():
        #     # print(b_img)
        cv2.imwrite(str(new_name), b_img)
    return True
create_bbox_images(img_loc, cropped = path/"sample_black_cropped")
True
folder.ls()
(#5) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/ozzioujjff/a.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/ozzioujjff/e.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/ozzioujjff/d.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/ozzioujjff/b.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/ozzioujjff/c.jpeg')]
def create_bbox_ds(path, inp_folder="sample_black", out_folder="sample_black_cropped"):
    def create_part_images(img_loc):
        return create_bbox_images(img_loc, cropped = path/out_folder)
    res = db.from_sequence((path/inp_folder).ls()).map(create_part_images)
    with ProgressBar():
        res.compute()
# !rm -rf  {path/"sample_black_cropped"}
(path/"sample_black_cropped").ls()
(#0) []
create_bbox_ds(path)
[########################################] | 100% Completed |  3min 52.6s
out_folder="sample_black_cropped"
df = pd.DataFrame([(len(p.ls()), p.name) for p in (path/out_folder).ls()], columns=['count','name'])
df['count'].min(), df['count'].max()
(2, 8)
Image(path/"sample_black"/"hfyjjdeumw.jpeg")
../../_images/05_sample_preprocess_64_0.jpg
create_bbox_images(path/"sample_black"/"hfyjjdeumw.jpeg", cropped)
True
(cropped/"hfyjjdeumw").ls()
(#4) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/hfyjjdeumw/b.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/hfyjjdeumw/c.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/hfyjjdeumw/a.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/hfyjjdeumw/d.jpeg')]
img_loc=path/"sample_black"/"hfyjjdeumw.jpeg"
img = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE); img
img_in = img.copy()
mask = mask_img(img_thresh(img_in))
bbox_list, img_rgb = find_contours(img_in, mask)

for bbox, new_name in zip(bbox_list, new_names):
    b_img = img_bbox(bbox, img_in)
    print(b_img.any())
plt.imshow(img_rgb)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_12339/2160189799.py in <module>
      6 
      7 for bbox, new_name in zip(bbox_list, new_names):
----> 8     b_img = img_bbox(bbox, img_in)
      9     print(b_img.any())
     10 plt.imshow(img_rgb)

TypeError: img_bbox() takes from 0 to 1 positional arguments but 2 were given
len(bbox_list)
4
@interact(i=(0,3))
def img_bbox(i=1):
    offset = 5
    IMG_SIZE=28
    y, x, h, w = bbox_list[i]
    bbox_img = img[x+offset:x+w-offset, y+offset:y+h-offset]
    b_img = cv2.resize(bbox_img, (IMG_SIZE, IMG_SIZE), interpolation = cv2.INTER_AREA)
    plt.imshow(b_img, cmap='gray')

Resize#

in_fldr = path/"sample_black_cropped"
in_fldr.ls()
(#560) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/llryflauvv'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/xrnwyjzamp'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/tpyloecpbx'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/jroekdxwjw'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/wbelpslmbg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/yupjnsjsqy'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/lafvkcfhcl'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/vfonzjfjwj'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/wmimfdlyif'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped/bfdzwlwrqz')...]
out_fldr = path/"sample_black_cropped_resized"
out_fldr.mkdir(exist_ok=True)
out_fldr.ls()
(#560) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/hegedhdtzz'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/tzcypygtyo'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/nghngkxuvz'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/elzufgggux'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/wgsfwpthji'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/fezzxwqxdj'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/smqaakeyiw'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/jdqosrkjgs'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/eofiyhqyty'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/mdggejfmfw')...]
def resize_img(img_loc, img_sz):
    img = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE)
    b_img = cv2.resize(img, (img_sz, img_sz), interpolation = cv2.INTER_AREA)
    return b_img

def resize_fldr(p, img_sz=28):
    img_fldr = (out_fldr/p.stem)
    img_fldr.mkdir(exist_ok=True, parents=True)
    new_fnames = [cv2.imwrite(str(img_fldr/o.name), resize_img(o, img_sz))  for o in  p.glob("*.jpeg")]
    return new_fnames

resize_fldr((path/in_fldr).ls()[0])
# [resize_fldr(p) for p in (path/in_fldr).ls()]
[True, True, True, True]
o =(path/in_fldr).ls()[0].name

(path/out_fldr/o).ls()
# cv2.imwrite?
(#4) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/hegedhdtzz/d.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/hegedhdtzz/a.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/hegedhdtzz/c.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/hegedhdtzz/b.jpeg')]
def create_resize_ds(path, inp_folder="sample_black_cropped", out_folder="sample_black_cropped_resized"):
    in_fldr = path/inp_folder
    out_fldr = path/out_folder

    def resize_fldr(p, img_sz=28):
        img_fldr = (out_fldr/p.stem)
        img_fldr.mkdir(exist_ok=True, parents=True)
        new_fnames = [cv2.imwrite(str(img_fldr/o.name), resize_img(o, img_sz))  for o in  p.glob("*.jpeg")]
        return new_fnames

    res = db.from_sequence(in_fldr.ls()).map(resize_fldr)
    with ProgressBar():
        res.compute()
!rm -rf {path/"sample_black_cropped_resized"}
create_resize_ds(path)
[########################################] | 100% Completed |  5.2s
out_folder="sample_black_cropped_resized"
df = pd.DataFrame([(len(p.ls()), p.name) for p in (path/out_folder).ls()], columns=['count','name'])
df['count'].min(), df['count'].max()
(2, 8)

Resize Integrated#

in_fldr = path/"sample_black_cropped_resized"
fnames = in_fldr.ls()[0].ls(); fnames
(#5) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/c.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/b.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/d.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/e.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/a.jpeg')]
len(fnames)
5
for i in range(9-len(fnames)):fnames.append(None)
fnames = fnames.shuffle()
fnames.shuffle()
(#9) [None,None,Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/c.jpeg'),None,Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/b.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/a.jpeg'),None,Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/e.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/d.jpeg')]
fnames_2d = [[1,2,3],[4,5,6],[7,8,9]]; fnames_2d
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in range(9-len(fnames)):fnames.append(None)
fnames = fnames.shuffle()
fnames_2d = [[fnames[0], fnames[1], fnames[2]], [fnames[3], fnames[4], fnames[5]], [fnames[6], fnames[7], fnames[8]]]
fnames_2d
[[None,
  Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/c.jpeg'),
  Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/d.jpeg')],
 [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/a.jpeg'),
  None,
  Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/e.jpeg')],
 [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized/abjhddkxns/b.jpeg'),
  None,
  None]]
def concat_img(img_list, orient='horizontal'):
    zero_img = np.zeros((30, 30), dtype = "uint8")
    def get_img_mat(img_loc):
        if img_loc is not None:
            img = cv2.imread(str(img_loc.resolve()), cv2.IMREAD_GRAYSCALE)
            return cv2.copyMakeBorder(img,1,1,1,1,cv2.BORDER_CONSTANT,value=0)
        else:
            return zero_img.copy()
            
    if orient == "horizontal":
        return cv2.hconcat([get_img_mat(img_loc) for img_loc in img_list])
    else:
        return cv2.vconcat([get_img_mat(img_loc) for img_loc in img_list])
    
plt.imshow(cv2.vconcat([concat_img(row) for row in fnames_2d]),cmap='gray')
<matplotlib.image.AxesImage at 0xf3eb9e74b80>
../../_images/05_sample_preprocess_88_1.png
def create_integrated_image(fnames, shuffle=True):
    # fnames = img_fldr.ls(); fnames
    for i in range(9-len(fnames)):fnames.append(None)
    if shuffle:fnames = fnames.shuffle()
    def get_name(fname): 
        if fname:return fname.stem
        else:return "o"
    name_root = "".join([get_name(fname) for fname in fnames])
    fnames_2d = [[fnames[0], fnames[1], fnames[2]], [fnames[3], fnames[4], fnames[5]], [fnames[6], fnames[7], fnames[8]]]
    intg_img = cv2.vconcat([concat_img(row) for row in fnames_2d])
    return intg_img, name_root
            
            
def save_integrated_images(path, 
                           inp_folder="sample_black_cropped_resized", 
                           out_folder="sample_black_cropped_resized_integrated",
                           count = 9):
    
    in_fldr = path/"sample_black_cropped_resized"
    out_fldr = path/"sample_black_cropped_resized_integrated"
    out_fldr.mkdir(exist_ok=True, parents=True)
    # print(in_fldr)
    for rsz_fldr in in_fldr.ls():
        img_fldr = out_fldr/rsz_fldr.stem
        img_fldr.mkdir(exist_ok=True, parents=True)
        print(rsz_fldr.stem, img_fldr)
        for i in range(count):
            intg_img, name_root = create_integrated_image(rsz_fldr.ls())
            cv2.imwrite(str(img_fldr/f"{rsz_fldr.stem}_{name_root}.jpeg"), intg_img) 
            

# intg_img, name_root = create_integrated_image(in_fldr.ls()[2].ls())                        
# plt.imshow(intg_img, cmap='gray')
# name_root
(path/"sample_black_cropped_resized_integrated").ls()[0].ls()
# !rm -rf {path/"sample_black_cropped_resized_integrated"}
(#9) [Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_doocaoebo.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_ocboeoaod.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_cdaoooebo.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_bacoooeod.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_oocabodoe.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_aodbcoeoo.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_obeocaood.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_bodaoocoe.jpeg'),Path('/Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad/mptgfndbad_cboeoooda.jpeg')]
# create_integrated_image(in_fldr.ls()[2].ls()).shape
save_integrated_images(path)
abjhddkxns /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/abjhddkxns
zmfrlmbvlt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zmfrlmbvlt
nkfylqqiii /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nkfylqqiii
exfmknrvrr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/exfmknrvrr
nmlwjxfpig /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nmlwjxfpig
qjqcaorcmg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qjqcaorcmg
gfjdvwvlvw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gfjdvwvlvw
rwmoakdqkh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rwmoakdqkh
jdqvnemdge /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jdqvnemdge
kjyuldglrs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kjyuldglrs
ghvrisqecy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ghvrisqecy
rpdgaeurkx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rpdgaeurkx
nzplrttbqa /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nzplrttbqa
hvfqbvsdgq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hvfqbvsdgq
qkgxmpddfn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qkgxmpddfn
zhqkayhtwg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zhqkayhtwg
spisoujtmr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/spisoujtmr
flzcuiokal /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/flzcuiokal
ibwnvsohet /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ibwnvsohet
tnmkmbaqky /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tnmkmbaqky
ayauzouvwg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ayauzouvwg
beohhiehwm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/beohhiehwm
bqdyvtnyid /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bqdyvtnyid
jiydsxifhf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jiydsxifhf
lfeghzcfsg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lfeghzcfsg
rbzrgtrzbd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rbzrgtrzbd
wuffpfleuy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wuffpfleuy
foxhhzuxcj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/foxhhzuxcj
vwxlrpgxcv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vwxlrpgxcv
lmdwjyvgaz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lmdwjyvgaz
vadlogbfwc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vadlogbfwc
uyqdmchqcd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uyqdmchqcd
dkjyfdevie /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dkjyfdevie
squpcmlxcx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/squpcmlxcx
dosbnawght /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dosbnawght
ltawrwqubh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ltawrwqubh
mnhgpytrdo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mnhgpytrdo
bzcyqoervs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bzcyqoervs
azuthanjmr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/azuthanjmr
ssjpzbxbga /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ssjpzbxbga
ebrkillkse /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ebrkillkse
ljboxkjwvm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ljboxkjwvm
bqamnqgnxq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bqamnqgnxq
zjberebamw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zjberebamw
cdpwwaubqo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cdpwwaubqo
oykfhlxbnr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oykfhlxbnr
ktseigclor /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ktseigclor
pkplseezri /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pkplseezri
rgrqkwvgjg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rgrqkwvgjg
iqjinhuhsc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iqjinhuhsc
pqxnofarjb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pqxnofarjb
gtjpnwrhdv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gtjpnwrhdv
hjjdbxnubl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hjjdbxnubl
bjsoybworq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bjsoybworq
vxofivsxya /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vxofivsxya
uqktsrpjrl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uqktsrpjrl
cqfmfdtzft /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cqfmfdtzft
hfyjjdeumw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hfyjjdeumw
hkfrapbjye /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hkfrapbjye
ibsjggixav /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ibsjggixav
qozibhfszu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qozibhfszu
oyydszhqmn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oyydszhqmn
vaydtquozu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vaydtquozu
nfvxbldmyo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nfvxbldmyo
miufhofcuu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/miufhofcuu
remvzqmyjz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/remvzqmyjz
qnmsjaxiur /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qnmsjaxiur
ulqvbljawm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ulqvbljawm
acqxepkdru /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/acqxepkdru
eosmlyurxy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eosmlyurxy
nhglyxvavm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nhglyxvavm
fxymcmswqo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fxymcmswqo
rvtpxhmhgb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rvtpxhmhgb
wrvchaedmy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wrvchaedmy
isbunydqvj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/isbunydqvj
pmelujoylq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pmelujoylq
rjaztmytcg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rjaztmytcg
ddnwmjnjkh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ddnwmjnjkh
uasxrdjxab /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uasxrdjxab
zwfecbyrjc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zwfecbyrjc
xyktzdlnuu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xyktzdlnuu
dhmnqathly /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dhmnqathly
jlimyupxsr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jlimyupxsr
ekpgtcsmqg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ekpgtcsmqg
hwejorafxu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hwejorafxu
heppxymbzr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/heppxymbzr
dznyqkcizv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dznyqkcizv
hiczbetctw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hiczbetctw
gemfzvrlsa /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gemfzvrlsa
ojjwxbydup /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ojjwxbydup
ehvjfkpjjw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ehvjfkpjjw
kmnfrxnlio /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kmnfrxnlio
neyhbazrzs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/neyhbazrzs
sltoymkjzo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/sltoymkjzo
yftzgnhbke /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yftzgnhbke
dzlqudiykz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dzlqudiykz
oxpvyibyml /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oxpvyibyml
ntdahhukhj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ntdahhukhj
fhzskpfwdt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fhzskpfwdt
abbymdmgzq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/abbymdmgzq
bquqboxeyx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bquqboxeyx
xiwbpoahpi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xiwbpoahpi
wcwqeggoky /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wcwqeggoky
euibkfzzid /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/euibkfzzid
fsnaafcqor /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fsnaafcqor
cfxmuahete /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cfxmuahete
bkeucybgcx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bkeucybgcx
uuunxwxtxv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uuunxwxtxv
oxudyfqkfu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oxudyfqkfu
pjepeqyseb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pjepeqyseb
bmkrssbflh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bmkrssbflh
jtccmihpfw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jtccmihpfw
gkgqxrodxe /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gkgqxrodxe
nphunajnco /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nphunajnco
dhxwgmgutm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dhxwgmgutm
efstasnumi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/efstasnumi
xbgfseogty /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xbgfseogty
ytlwuwflrt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ytlwuwflrt
jfsumbgtsg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jfsumbgtsg
uznkagrqln /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uznkagrqln
tvkpbnawop /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tvkpbnawop
gkuhpigoxr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gkuhpigoxr
mptgfndbad /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mptgfndbad
obauwuwprk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/obauwuwprk
ktdjpqgjao /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ktdjpqgjao
irbhntfmhz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/irbhntfmhz
bdeujujzif /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bdeujujzif
czgiipkoxq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/czgiipkoxq
kedbaocteg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kedbaocteg
vjaaybovqj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vjaaybovqj
karlhndhbf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/karlhndhbf
ajjizshrtb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ajjizshrtb
leiyqrvdyd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/leiyqrvdyd
gsehidkwdz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gsehidkwdz
jkyscspzim /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jkyscspzim
yimzughwbs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yimzughwbs
aytcpcgaqy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/aytcpcgaqy
gkmvjmregd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gkmvjmregd
wlzhziyrev /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wlzhziyrev
crdbfqulcn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/crdbfqulcn
wnmnyskbnw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wnmnyskbnw
hwmmjcyrtz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hwmmjcyrtz
qrsdeisngh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qrsdeisngh
qyyfbtijxs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qyyfbtijxs
lzjxowenmr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lzjxowenmr
qvpydldffw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qvpydldffw
zetkjlzmqr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zetkjlzmqr
lofghnbmij /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lofghnbmij
cgajqcgvmm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cgajqcgvmm
oiubwldhim /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oiubwldhim
rhffwdxpsq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rhffwdxpsq
cpztzmwkpf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cpztzmwkpf
zpdqopyglv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zpdqopyglv
ypfnocoejf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ypfnocoejf
slzznnmhjz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/slzznnmhjz
mvzmksslhw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mvzmksslhw
gynczztnif /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gynczztnif
qwugpdakxb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qwugpdakxb
yiyjqsroio /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yiyjqsroio
romkdppvlv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/romkdppvlv
kvimswfmqf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kvimswfmqf
kaqzhfcail /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kaqzhfcail
eehesujeer /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eehesujeer
caucxzlmuc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/caucxzlmuc
yduhyypsjp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yduhyypsjp
xfijopjrme /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xfijopjrme
ttnverhkrm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ttnverhkrm
hkhgngedbt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hkhgngedbt
qiuyvyuqxx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qiuyvyuqxx
zupkutqswn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zupkutqswn
xwzayqqrud /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xwzayqqrud
vzvhcuwvwp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vzvhcuwvwp
ojnpgixyvc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ojnpgixyvc
ndgspcozss /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ndgspcozss
itcbfeogkn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/itcbfeogkn
bqdpshwxad /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bqdpshwxad
cadfrlpsyu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cadfrlpsyu
cyoclwmnht /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cyoclwmnht
qwowmfkqhv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qwowmfkqhv
zhmvqhspeb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zhmvqhspeb
cakpgtexig /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cakpgtexig
arjxmexnsn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/arjxmexnsn
rcjiakzmtn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rcjiakzmtn
fnazecceis /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fnazecceis
dlbfohrvfr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dlbfohrvfr
hglaysiesv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hglaysiesv
rddrhokabn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rddrhokabn
eoyzxdkzru /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eoyzxdkzru
wltebojiyd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wltebojiyd
ufvpfaxbbl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ufvpfaxbbl
hhjljuxssa /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hhjljuxssa
lbpjlqpaph /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lbpjlqpaph
kdsnhbscrq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kdsnhbscrq
qcrtdcqaby /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qcrtdcqaby
kxgzuymqwb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kxgzuymqwb
zkvlujnxoz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zkvlujnxoz
iuznpbcggs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iuznpbcggs
zqzktykpmm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zqzktykpmm
bwmdxkepnf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bwmdxkepnf
ranrntxpgc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ranrntxpgc
rsmfovljmh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rsmfovljmh
kzpngmylnv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kzpngmylnv
frqmintina /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/frqmintina
mxmkfkixam /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mxmkfkixam
ihclsevzrf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ihclsevzrf
cmshilacak /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cmshilacak
ermmakxkma /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ermmakxkma
csjhprgydm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/csjhprgydm
bfqrcoxwji /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bfqrcoxwji
hvwmbdzory /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hvwmbdzory
doedopupbj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/doedopupbj
diqnbgjakw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/diqnbgjakw
wkvyuxxahn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wkvyuxxahn
hehxkettly /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hehxkettly
edwdxwrhst /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/edwdxwrhst
pczoeuzqsc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pczoeuzqsc
xxhlpyerts /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xxhlpyerts
gxjcaeffsm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gxjcaeffsm
nxwwqmodsd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nxwwqmodsd
zuvdwkpabd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zuvdwkpabd
dedfyqxfmp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dedfyqxfmp
vdnsgevquz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vdnsgevquz
psptaiinqw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/psptaiinqw
qrbfcezbfu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qrbfcezbfu
drxftnlnks /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/drxftnlnks
sgrhqufvxt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/sgrhqufvxt
btzlknyhep /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/btzlknyhep
yrbxjfdqnx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yrbxjfdqnx
qkbmnxxfwf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qkbmnxxfwf
igrasbmlqc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/igrasbmlqc
bkuxewbzyd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bkuxewbzyd
tbvbjajanv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tbvbjajanv
xcydtqrawc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xcydtqrawc
duzegjyami /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/duzegjyami
kfutmimfnt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kfutmimfnt
srpyzykwlf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/srpyzykwlf
eosdowunse /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eosdowunse
evoznzvpnm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/evoznzvpnm
aduuusmhil /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/aduuusmhil
qzbhhormwo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qzbhhormwo
kpvebpwrcr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kpvebpwrcr
aovdyjzphj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/aovdyjzphj
nwujqzpdlt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nwujqzpdlt
ionkqahriu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ionkqahriu
gnuovjgixb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gnuovjgixb
mmyqlgtbrp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mmyqlgtbrp
hzydffnoft /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hzydffnoft
gxraqykrwp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gxraqykrwp
lwtqkwxsrl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lwtqkwxsrl
rshrzkcvdk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rshrzkcvdk
tjajhrbwhy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tjajhrbwhy
rhipwqbvdl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rhipwqbvdl
kskwaiecjx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kskwaiecjx
lbprsccetc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lbprsccetc
tjkrpwjemf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tjkrpwjemf
unubzoybys /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/unubzoybys
mfgzgkksvl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mfgzgkksvl
pzayanidxm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pzayanidxm
gtdtsfuniw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gtdtsfuniw
fsxgkietzc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fsxgkietzc
xkbcbzdzqo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xkbcbzdzqo
mrpqadqsbp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mrpqadqsbp
qrlxkqpfwc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qrlxkqpfwc
bzmvqrpnka /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bzmvqrpnka
crhwubeseo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/crhwubeseo
vgdkkslesr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vgdkkslesr
noremmzkip /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/noremmzkip
ropwtovzgr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ropwtovzgr
fcelsgyhug /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fcelsgyhug
dqbnrqbbba /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dqbnrqbbba
doodjvjeid /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/doodjvjeid
tccnppvmpt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tccnppvmpt
lvgmfbwlbt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lvgmfbwlbt
nkuyczeuvq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nkuyczeuvq
mcaakomsax /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mcaakomsax
aalwjaqqgi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/aalwjaqqgi
hgqhowlarx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hgqhowlarx
mscmzomgau /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mscmzomgau
npusxhzgxi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/npusxhzgxi
iipfupgfcs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iipfupgfcs
wfvwthaoiz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wfvwthaoiz
lhnuvzgqln /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lhnuvzgqln
ulkbdhnrhc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ulkbdhnrhc
gbrwrezjys /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gbrwrezjys
gjbfuixwml /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gjbfuixwml
nbtdpmjvaz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nbtdpmjvaz
kqduiuenrn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kqduiuenrn
yhyritrqyt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yhyritrqyt
njerirxowj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/njerirxowj
fultunwotm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fultunwotm
paapthpxig /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/paapthpxig
xvsjuasffs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xvsjuasffs
nsvivokucr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nsvivokucr
rklcrswcxa /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rklcrswcxa
vadxynnagi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vadxynnagi
pftliktvch /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pftliktvch
qhfsyajsgw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qhfsyajsgw
yaxzvcvhqk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yaxzvcvhqk
ymwtaevzrs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ymwtaevzrs
hlvdnwbino /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hlvdnwbino
dslvxgmuvu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dslvxgmuvu
yjzsezwgcl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yjzsezwgcl
cchnsiwuwx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cchnsiwuwx
hzgzmztvhr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hzgzmztvhr
tnwpshlgye /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tnwpshlgye
mvbtxuiawt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mvbtxuiawt
ozudlkadbw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ozudlkadbw
yvhzfppehs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yvhzfppehs
bbdamclrue /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bbdamclrue
rstjkwlrbs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rstjkwlrbs
hivrqlsfgb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hivrqlsfgb
yblsjpwdsw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yblsjpwdsw
qwrjqdvyjh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qwrjqdvyjh
ampindflja /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ampindflja
eiebjpcwjd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eiebjpcwjd
rudvkajpsn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rudvkajpsn
xqvrwdiror /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xqvrwdiror
kkopjdprtg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kkopjdprtg
vagworcjmi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vagworcjmi
qsxhfbrgns /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qsxhfbrgns
hpuasokfbf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hpuasokfbf
uixafakliq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uixafakliq
jgwcdessmd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jgwcdessmd
hyyekyitnd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hyyekyitnd
xrpefafxmu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xrpefafxmu
fpeibyvhdn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fpeibyvhdn
ndsoqfbcnv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ndsoqfbcnv
xmqfsijqhx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xmqfsijqhx
dgtqtxytcj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dgtqtxytcj
qmqzwoqhru /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qmqzwoqhru
igjuhsnhvw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/igjuhsnhvw
phxfqoebbx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/phxfqoebbx
iauoudthbl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iauoudthbl
mjyibwwytq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mjyibwwytq
kmjazimiqq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kmjazimiqq
wjqluhuwqn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wjqluhuwqn
tqyftnmlpc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tqyftnmlpc
ablxaraptb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ablxaraptb
fatlbaappz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fatlbaappz
oyjzcgdoqt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oyjzcgdoqt
gqubepikcs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gqubepikcs
qccbvubmpo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qccbvubmpo
lietfpnuwy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lietfpnuwy
thvzyhswab /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/thvzyhswab
hbiuelnltd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hbiuelnltd
oghzcqvnos /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oghzcqvnos
jyttczurxx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jyttczurxx
gpetococzd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gpetococzd
fsmlbbcqey /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fsmlbbcqey
dxkthbepck /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dxkthbepck
mvazagiqeq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mvazagiqeq
smqmsecdix /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/smqmsecdix
zmgqpaelqh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zmgqpaelqh
hsbkgjgibz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hsbkgjgibz
ouurfiuneo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ouurfiuneo
eowvhigjnk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eowvhigjnk
ajtacwszgj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ajtacwszgj
nonctqkdaz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nonctqkdaz
bancizykuu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bancizykuu
orihkgszbc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/orihkgszbc
eroygrlesk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eroygrlesk
inzvdhlcfo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/inzvdhlcfo
efnfneqwif /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/efnfneqwif
ubfzxfnxyk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ubfzxfnxyk
rmnqmjwcqf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rmnqmjwcqf
jlvyasxzui /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jlvyasxzui
ulsnfstvql /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ulsnfstvql
komhrqocpl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/komhrqocpl
nmqxhzzzof /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nmqxhzzzof
ydjcatgrly /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ydjcatgrly
htwhquzrev /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/htwhquzrev
wcclervfcv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wcclervfcv
axipkflvxz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/axipkflvxz
wdgolmybeb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wdgolmybeb
bktimvvroa /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bktimvvroa
oyfyiyania /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/oyfyiyania
jgpvxfxwtt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jgpvxfxwtt
ozhfevpcna /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ozhfevpcna
bfwvcycfze /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bfwvcycfze
hpiskjatbk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hpiskjatbk
idtqkcazrq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/idtqkcazrq
cjfrftugbv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cjfrftugbv
iggqbwlygw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iggqbwlygw
hutchrcupy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hutchrcupy
lurbqmihmi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lurbqmihmi
ubwsfjzuyh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ubwsfjzuyh
zbalfnqqda /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zbalfnqqda
glqglhqtvm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/glqglhqtvm
wliovzjcpv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wliovzjcpv
xzxufrguen /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xzxufrguen
auvbyzfnli /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/auvbyzfnli
iqevtbwczy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iqevtbwczy
xmzfcnjldm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xmzfcnjldm
fcwebxrszv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fcwebxrszv
ctbxceeqnh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ctbxceeqnh
nahoohbuvk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nahoohbuvk
eqpkebdpyp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eqpkebdpyp
gtwimuhhum /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gtwimuhhum
bttpuvftmg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bttpuvftmg
pdmtylcyao /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pdmtylcyao
cokamqgrbg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cokamqgrbg
ekklcvkcjv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ekklcvkcjv
hnybulfnsz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hnybulfnsz
cgvxhfwwyg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cgvxhfwwyg
pqlsjslzjx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pqlsjslzjx
hiivuccidh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hiivuccidh
ltduuikrac /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ltduuikrac
zgwnvxhywv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zgwnvxhywv
ozzioujjff /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ozzioujjff
zuapyypknl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zuapyypknl
tdwrfthykf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tdwrfthykf
kbwghmorls /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kbwghmorls
blalvuxpqc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/blalvuxpqc
tvqvvpnnpf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tvqvvpnnpf
tiywdtykbk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tiywdtykbk
wknlalwejm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wknlalwejm
acworymlmx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/acworymlmx
fhtqluftri /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fhtqluftri
havhbubzvq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/havhbubzvq
twahevwlst /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/twahevwlst
mdggejfmfw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mdggejfmfw
eofiyhqyty /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/eofiyhqyty
elzufgggux /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/elzufgggux
wgsfwpthji /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wgsfwpthji
hegedhdtzz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/hegedhdtzz
tzcypygtyo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tzcypygtyo
nghngkxuvz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nghngkxuvz
smqaakeyiw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/smqaakeyiw
jdqosrkjgs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jdqosrkjgs
fezzxwqxdj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fezzxwqxdj
xtokeehzuw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xtokeehzuw
mziydugcab /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mziydugcab
zvwujrfyes /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zvwujrfyes
qufwgzshzk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qufwgzshzk
dmbfnkgzwg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dmbfnkgzwg
vjqoqhygxt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vjqoqhygxt
fdfsmfrcjq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fdfsmfrcjq
qandmjdwkv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qandmjdwkv
stgrqdfhhx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/stgrqdfhhx
prwctlgino /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/prwctlgino
fsbwusckre /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fsbwusckre
girfutedyg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/girfutedyg
wmbyozkoag /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wmbyozkoag
xzsidzvfjr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xzsidzvfjr
phryokdofk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/phryokdofk
fygczqbizo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fygczqbizo
rqupbwebuw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rqupbwebuw
iwajkimqsc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iwajkimqsc
jnxohynsfp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jnxohynsfp
mhtuojvfce /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mhtuojvfce
qkymtuxaht /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qkymtuxaht
wtyqieukzb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wtyqieukzb
gnigjsprxr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gnigjsprxr
aaqfvwndck /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/aaqfvwndck
nzebotbdak /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nzebotbdak
ypeahzycnq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ypeahzycnq
rsdukntwvt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rsdukntwvt
vvvwcjgdvi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vvvwcjgdvi
dykncvzwmt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/dykncvzwmt
afyqjdrvkk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/afyqjdrvkk
xdbkbtgfkk /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xdbkbtgfkk
ajldmlqerr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ajldmlqerr
cxdbyutcuf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cxdbyutcuf
btqrnlyvyd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/btqrnlyvyd
ehujwpmgjt /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ehujwpmgjt
wazrmepklm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wazrmepklm
afljkeleeq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/afljkeleeq
zajwqxlewc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zajwqxlewc
xsqkfdpfqz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xsqkfdpfqz
qpimvgfscz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qpimvgfscz
qrsdvvfpvj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qrsdvvfpvj
wqfuppgpuy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wqfuppgpuy
zptchokxoe /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zptchokxoe
wdzeqhunph /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wdzeqhunph
skmjqvsjcs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/skmjqvsjcs
maurxcxgbu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/maurxcxgbu
nsylmafwum /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/nsylmafwum
ujblunuskh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ujblunuskh
yshavfcrax /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yshavfcrax
gakfyiajuh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/gakfyiajuh
ijzwrlyddo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ijzwrlyddo
ctghesbwkb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ctghesbwkb
sbhghcveld /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/sbhghcveld
mqpkczecri /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mqpkczecri
bptjzlmznm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bptjzlmznm
axcyfgmygb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/axcyfgmygb
efbtlpqenl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/efbtlpqenl
jxnkeeyluw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jxnkeeyluw
qoulhqfyvi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qoulhqfyvi
ktdokbmnzu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ktdokbmnzu
sgnnnmzdit /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/sgnnnmzdit
ofmcxlyfwq /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ofmcxlyfwq
grcqzswhld /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/grcqzswhld
cholwyrogr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/cholwyrogr
faqfcpfsnx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/faqfcpfsnx
wqxepzxjes /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wqxepzxjes
auxbzwwznd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/auxbzwwznd
ovwnsqzuhf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ovwnsqzuhf
tkkaylzfzo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tkkaylzfzo
uauonvrovr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uauonvrovr
luznurtulf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/luznurtulf
zfvouqoazh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zfvouqoazh
wrukfascnm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wrukfascnm
rkllofernp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/rkllofernp
lvpuvzjwhi /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lvpuvzjwhi
khthwvkbtn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/khthwvkbtn
ttehbdntxx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ttehbdntxx
jilrbcamdm /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jilrbcamdm
plpyfgciyf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/plpyfgciyf
snbkrtezsr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/snbkrtezsr
yusiicenos /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yusiicenos
yohkyakstr /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yohkyakstr
kjyzskfyfe /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kjyzskfyfe
urtvhspjps /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/urtvhspjps
mmoxvdjbrg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/mmoxvdjbrg
jeyglgkicg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jeyglgkicg
znmvhkappu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/znmvhkappu
auatttebyj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/auatttebyj
aiyxomaicf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/aiyxomaicf
srsocddscf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/srsocddscf
pmnkjbsjqh /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pmnkjbsjqh
uxrycwbpqd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uxrycwbpqd
yupjnsjsqy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/yupjnsjsqy
jroekdxwjw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jroekdxwjw
wbelpslmbg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wbelpslmbg
tpyloecpbx /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/tpyloecpbx
xrnwyjzamp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xrnwyjzamp
llryflauvv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/llryflauvv
agrfrpnppc /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/agrfrpnppc
ogdwxoxbuw /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ogdwxoxbuw
bfdzwlwrqz /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/bfdzwlwrqz
wmimfdlyif /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/wmimfdlyif
lafvkcfhcl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lafvkcfhcl
vfonzjfjwj /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vfonzjfjwj
lhojstakgs /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lhojstakgs
zxjkvwzvmd /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/zxjkvwzvmd
antvxaehoa /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/antvxaehoa
lyavphllie /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lyavphllie
qtosgqlezo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/qtosgqlezo
botatouncn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/botatouncn
ntpikwusod /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ntpikwusod
lktzsnrtwo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/lktzsnrtwo
fupqpayhjb /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fupqpayhjb
vhwrqwkrxu /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vhwrqwkrxu
uxbbotrtzg /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/uxbbotrtzg
ufxoxfvpbl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ufxoxfvpbl
berktdxgie /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/berktdxgie
xtaledhowl /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/xtaledhowl
pjdppgudym /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/pjdppgudym
iicqfagwvy /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/iicqfagwvy
veygrtzxad /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/veygrtzxad
vbczxxgrof /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vbczxxgrof
jjdlwcella /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/jjdlwcella
vefidkyevf /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/vefidkyevf
ptdsvwuuag /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ptdsvwuuag
ujtdlathpv /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ujtdlathpv
ovdxjsrsxp /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ovdxjsrsxp
ebxomsptgo /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/ebxomsptgo
fjpugsvqsn /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/fjpugsvqsn
kzchsshqny /Landmark2/pdo/aiking/data/ultra-mnist/sample_black_cropped_resized_integrated/kzchsshqny
path
Path('/Landmark2/pdo/aiking/data/ultra-mnist')
out_fldr = path/"sample_black_cropped_resized_integrated"
pd.DataFrame([(p, p.name, p.parent.stem) for p in out_fldr.glob("*/*.jpeg")], 
             columns=['path','fname','id']).to_csv(path/"sample_intg.csv", index=False)