├── README.md ├── data.py ├── eval.py ├── files ├── README.md ├── data.csv └── score.csv ├── metrics.py ├── model.py ├── new_data └── README.md ├── people_segmentation └── README.md ├── predict.py ├── results ├── football-american-football-referee-referee-football-official-163039_0.png ├── girl-bicycle-garden-people-630770_0.png ├── girl-blonde-wreath-water-160526_0.png ├── girl-cascada-water-waves-160588_0.png ├── girl-cat-kitten-fashion_0.png ├── girl-dance-dress-flowers-163508_0.png ├── girl-forest-nature-stroll-160627_0.png ├── girl-in-leather-jacket-beautiful-hair-model-160974_0.png ├── girl-model-blonde-slav-157666_0.png ├── girl-park-woman-greens-157854_0.png ├── girl-peasant-woman-tradition-water-158007_0.png ├── girl-portrait-face-woman-122426_0.png ├── girl-rustic-grass-meadow-89779_0.png ├── girl-sunset-lake-water-160534_0.png ├── girl-water-wet-summer-122436_0.png ├── girl-wild-water-rock-160440_0.png ├── girl-woman-portrait-young-115015_0.png ├── girl-young-blue-eyes-eyes-39295_0.png ├── girls-children-kids-friends-50581_0.png ├── girls-women-happy-sexy-53364_0.png ├── glamour-style-hat-woman-37649_0.png ├── hammer-throw-athlete-track-and-field-training-37636_0.png ├── hanging-out-trainer-young-79990_fk4fhyJJPf_0.png ├── hiker-traveler-trip-travel-160483_0.png ├── james-stewart-man-person-actor-53487_0.png ├── kickboxer-girl-kickboxing-athletic-girl-160920_0.png ├── love-old-people-the-heart-of-pension-160936_0.png ├── man-selling-razors-black-and-white-older-68655_0.png ├── man-stress-male-face_0.png ├── maternity-baby-belly-pregnant-pregnancy-160776_0.png ├── model-fashion-girl-female-39678_0.png ├── motorbike-racing-motorcycle-race-51388_0.png ├── motorcycle-stunt-jump-motocross-38277_0.png └── norway-mountain-sky-blue_0.png ├── test_images ├── image │ ├── wp5815325.jpg │ ├── wp6244146.jpg │ ├── wp8058382.jpg │ ├── wp8725152.jpg │ ├── wp8725153.jpg │ ├── wp8725159.jpg │ ├── wp8725161.jpg │ ├── wp8725163.jpg │ ├── wp8725167.jpg │ ├── wp8725175.jpg │ ├── wp8725177.jpg │ ├── wp8725190.jpg │ ├── wp8725197.jpg │ ├── wp8725209.jpg │ ├── wp8725227.jpg │ ├── wp8725377.jpg │ └── wp8725382.jpg └── mask │ ├── wp5815325.png │ ├── wp6244146.png │ ├── wp8058382.png │ ├── wp8725159.png │ └── wp8725197.png └── train.py /README.md: -------------------------------------------------------------------------------- 1 | # Human Image Segmentation with DeepLabV3+ in TensorFlow 2 | DeepLabV3+ with squeeze and excitation network for human image segmentation in TensorFlow 2.5.0

3 | Watch the YouTube video for better explaination: [https://youtu.be/4LhUpCWBzT8](https://youtu.be/4LhUpCWBzT8) 4 | 5 | ## Dataset 6 | Download the dataset: [Person Segmentation](https://www.kaggle.com/nikhilroxtomar/person-segmentation/download) 7 | 8 | ## Weight file 9 | Download the weight files from here: [model.h5](https://drive.google.com/file/d/17QKxSIBFhyJoDps93-sCVHnVV6UWS1sG/view?usp=sharing) 10 | 11 | ## Quantitative results 12 | These results are on the validation/test set. 13 | | Accuacy | F1 | Jaccard | Recall | Precision | 14 | | :---: | :---: | :---: | :---: | :---: | 15 | | 0.97404 | 0.95379 | 0.92124 | 0.95885 | 0.95683 | 16 | 17 | ## Qualtiative results 18 | These qualitative results are on the validation/test set. The figure consists of a) Input Image b) Ground Truth Mask c) Predicted Mask d) Masked Image 19 | ![](results/football-american-football-referee-referee-football-official-163039_0.png) 20 | :--------------------------------------------------------------------------------------: 21 | ![](results/girl-bicycle-garden-people-630770_0.png) 22 | ![](results/girl-model-blonde-slav-157666_0.png) 23 | ![](results/model-fashion-girl-female-39678_0.png) 24 | 25 | These qualitative results are on random images taken from [https://wallpapercave.com](https://wallpapercave.com). The figure consists of a) Input Image b) Masked Image. 26 | ![](test_images/mask/wp5815325.png) 27 | :--------------------------------------------------------------------------------------: 28 | ![](test_images/mask/wp6244146.png) 29 | ![](test_images/mask/wp8725159.png) 30 | ![](test_images/mask/wp8725197.png) 31 | 32 | ## Contact 33 | For any query contact below: 34 | - [Facebook](https://www.facebook.com/idiotdeveloper) 35 | - [Instagram](https://instagram/nikhilroxtomar) 36 | - [Telegram](t.me/idiotdeveloper) 37 | 38 | 39 | -------------------------------------------------------------------------------- /data.py: -------------------------------------------------------------------------------- 1 | 2 | import os 3 | import numpy as np 4 | import cv2 5 | from glob import glob 6 | from tqdm import tqdm 7 | from sklearn.model_selection import train_test_split 8 | from albumentations import HorizontalFlip, GridDistortion, OpticalDistortion, ChannelShuffle, CoarseDropout, CenterCrop, Crop, Rotate 9 | 10 | """ Creating a directory """ 11 | def create_dir(path): 12 | if not os.path.exists(path): 13 | os.makedirs(path) 14 | 15 | def load_data(path, split=0.1): 16 | """ Loading the images and masks """ 17 | X = sorted(glob(os.path.join(path, "images", "*.jpg"))) 18 | Y = sorted(glob(os.path.join(path, "masks", "*.png"))) 19 | 20 | """ Spliting the data into training and testing """ 21 | split_size = int(len(X) * split) 22 | 23 | train_x, test_x = train_test_split(X, test_size=split_size, random_state=42) 24 | train_y, test_y = train_test_split(Y, test_size=split_size, random_state=42) 25 | 26 | return (train_x, train_y), (test_x, test_y) 27 | 28 | def augment_data(images, masks, save_path, augment=True): 29 | H = 512 30 | W = 512 31 | 32 | for x, y in tqdm(zip(images, masks), total=len(images)): 33 | """ Extract the name """ 34 | name = x.split("/")[-1].split(".")[0] 35 | 36 | """ Reading the image and mask """ 37 | x = cv2.imread(x, cv2.IMREAD_COLOR) 38 | y = cv2.imread(y, cv2.IMREAD_COLOR) 39 | 40 | """ Augmentation """ 41 | if augment == True: 42 | aug = HorizontalFlip(p=1.0) 43 | augmented = aug(image=x, mask=y) 44 | x1 = augmented["image"] 45 | y1 = augmented["mask"] 46 | 47 | x2 = cv2.cvtColor(x, cv2.COLOR_RGB2GRAY) 48 | y2 = y 49 | 50 | aug = ChannelShuffle(p=1) 51 | augmented = aug(image=x, mask=y) 52 | x3 = augmented['image'] 53 | y3 = augmented['mask'] 54 | 55 | aug = CoarseDropout(p=1, min_holes=3, max_holes=10, max_height=32, max_width=32) 56 | augmented = aug(image=x, mask=y) 57 | x4 = augmented['image'] 58 | y4 = augmented['mask'] 59 | 60 | aug = Rotate(limit=45, p=1.0) 61 | augmented = aug(image=x, mask=y) 62 | x5 = augmented["image"] 63 | y5 = augmented["mask"] 64 | 65 | X = [x, x1, x2, x3, x4, x5] 66 | Y = [y, y1, y2, y3, y4, y5] 67 | 68 | else: 69 | X = [x] 70 | Y = [y] 71 | 72 | index = 0 73 | for i, m in zip(X, Y): 74 | try: 75 | """ Center Cropping """ 76 | aug = CenterCrop(H, W, p=1.0) 77 | augmented = aug(image=i, mask=m) 78 | i = augmented["image"] 79 | m = augmented["mask"] 80 | 81 | except Exception as e: 82 | i = cv2.resize(i, (W, H)) 83 | m = cv2.resize(m, (W, H)) 84 | 85 | tmp_image_name = f"{name}_{index}.png" 86 | tmp_mask_name = f"{name}_{index}.png" 87 | 88 | image_path = os.path.join(save_path, "image", tmp_image_name) 89 | mask_path = os.path.join(save_path, "mask", tmp_mask_name) 90 | 91 | cv2.imwrite(image_path, i) 92 | cv2.imwrite(mask_path, m) 93 | 94 | index += 1 95 | 96 | 97 | if __name__ == "__main__": 98 | """ Seeding """ 99 | np.random.seed(42) 100 | 101 | """ Load the dataset """ 102 | data_path = "people_segmentation" 103 | (train_x, train_y), (test_x, test_y) = load_data(data_path) 104 | 105 | print(f"Train:\t {len(train_x)} - {len(train_y)}") 106 | print(f"Test:\t {len(test_x)} - {len(test_y)}") 107 | 108 | """ Create directories to save the augmented data """ 109 | create_dir("new_data/train/image/") 110 | create_dir("new_data/train/mask/") 111 | create_dir("new_data/test/image/") 112 | create_dir("new_data/test/mask/") 113 | 114 | """ Data augmentation """ 115 | augment_data(train_x, train_y, "new_data/train/", augment=True) 116 | augment_data(test_x, test_y, "new_data/test/", augment=False) 117 | -------------------------------------------------------------------------------- /eval.py: -------------------------------------------------------------------------------- 1 | 2 | import os 3 | os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" 4 | 5 | import numpy as np 6 | import cv2 7 | import pandas as pd 8 | from glob import glob 9 | from tqdm import tqdm 10 | import tensorflow as tf 11 | from tensorflow.keras.utils import CustomObjectScope 12 | from sklearn.metrics import accuracy_score, f1_score, jaccard_score, precision_score, recall_score 13 | from metrics import dice_loss, dice_coef, iou 14 | from train import load_data 15 | 16 | """ Global parameters """ 17 | H = 512 18 | W = 512 19 | 20 | """ Creating a directory """ 21 | def create_dir(path): 22 | if not os.path.exists(path): 23 | os.makedirs(path) 24 | 25 | def save_results(image, mask, y_pred, save_image_path): 26 | ## i - m - yp - yp*i 27 | line = np.ones((H, 10, 3)) * 128 28 | 29 | mask = np.expand_dims(mask, axis=-1) ## (512, 512, 1) 30 | mask = np.concatenate([mask, mask, mask], axis=-1) ## (512, 512, 3) 31 | mask = mask * 255 32 | 33 | y_pred = np.expand_dims(y_pred, axis=-1) ## (512, 512, 1) 34 | y_pred = np.concatenate([y_pred, y_pred, y_pred], axis=-1) ## (512, 512, 3) 35 | 36 | masked_image = image * y_pred 37 | y_pred = y_pred * 255 38 | 39 | cat_images = np.concatenate([image, line, mask, line, y_pred, line, masked_image], axis=1) 40 | cv2.imwrite(save_image_path, cat_images) 41 | 42 | if __name__ == "__main__": 43 | """ Seeding """ 44 | np.random.seed(42) 45 | tf.random.set_seed(42) 46 | 47 | """ Directory for storing files """ 48 | create_dir("results") 49 | 50 | """ Loading model """ 51 | with CustomObjectScope({'iou': iou, 'dice_coef': dice_coef, 'dice_loss': dice_loss}): 52 | model = tf.keras.models.load_model("files/model.h5") 53 | 54 | """ Load the dataset """ 55 | dataset_path = "new_data" 56 | valid_path = os.path.join(dataset_path, "test") 57 | test_x, test_y = load_data(valid_path) 58 | print(f"Test: {len(test_x)} - {len(test_y)}") 59 | 60 | """ Evaluation and Prediction """ 61 | SCORE = [] 62 | for x, y in tqdm(zip(test_x, test_y), total=len(test_x)): 63 | """ Extract the name """ 64 | name = x.split("/")[-1].split(".")[0] 65 | 66 | """ Reading the image """ 67 | image = cv2.imread(x, cv2.IMREAD_COLOR) 68 | x = image/255.0 69 | x = np.expand_dims(x, axis=0) 70 | 71 | """ Reading the mask """ 72 | mask = cv2.imread(y, cv2.IMREAD_GRAYSCALE) 73 | 74 | """ Prediction """ 75 | y_pred = model.predict(x)[0] 76 | y_pred = np.squeeze(y_pred, axis=-1) 77 | y_pred = y_pred > 0.5 78 | y_pred = y_pred.astype(np.int32) 79 | 80 | """ Saving the prediction """ 81 | save_image_path = f"results/{name}.png" 82 | save_results(image, mask, y_pred, save_image_path) 83 | 84 | """ Flatten the array """ 85 | mask = mask.flatten() 86 | y_pred = y_pred.flatten() 87 | 88 | """ Calculating the metrics values """ 89 | acc_value = accuracy_score(mask, y_pred) 90 | f1_value = f1_score(mask, y_pred, labels=[0, 1], average="binary") 91 | jac_value = jaccard_score(mask, y_pred, labels=[0, 1], average="binary") 92 | recall_value = recall_score(mask, y_pred, labels=[0, 1], average="binary") 93 | precision_value = precision_score(mask, y_pred, labels=[0, 1], average="binary") 94 | SCORE.append([name, acc_value, f1_value, jac_value, recall_value, precision_value]) 95 | 96 | """ Metrics values """ 97 | score = [s[1:]for s in SCORE] 98 | score = np.mean(score, axis=0) 99 | print(f"Accuracy: {score[0]:0.5f}") 100 | print(f"F1: {score[1]:0.5f}") 101 | print(f"Jaccard: {score[2]:0.5f}") 102 | print(f"Recall: {score[3]:0.5f}") 103 | print(f"Precision: {score[4]:0.5f}") 104 | 105 | df = pd.DataFrame(SCORE, columns=["Image", "Accuracy", "F1", "Jaccard", "Recall", "Precision"]) 106 | df.to_csv("files/score.csv") 107 | -------------------------------------------------------------------------------- /files/README.md: -------------------------------------------------------------------------------- 1 | # files 2 | It contains the following: 3 | 1. data.csv 4 | 2. model.h5 5 | 3. score.csv 6 | 7 | Download the weight files from here: [model.h5](https://drive.google.com/file/d/17QKxSIBFhyJoDps93-sCVHnVV6UWS1sG/view?usp=sharing) 8 | -------------------------------------------------------------------------------- /files/data.csv: -------------------------------------------------------------------------------- 1 | epoch,dice_coef,iou,loss,lr,precision,recall,val_dice_coef,val_iou,val_loss,val_precision,val_recall 2 | 0,0.9236060380935669,0.8614596724510193,0.0763932317495346,1e-04,0.9160043001174927,0.9380590319633484,0.9534931182861328,0.9122545719146729,0.04655572399497032,0.9438676238059998,0.9629934430122375 3 | 1,0.9488314986228943,0.904120922088623,0.05116594210267067,1e-04,0.9418964982032776,0.9590457677841187,0.9520673155784607,0.9096073508262634,0.047952279448509216,0.9500304460525513,0.9547289609909058 4 | 2,0.9558566212654114,0.9166592359542847,0.04414021968841553,1e-04,0.9500699639320374,0.9645980596542358,0.9521860480308533,0.9101199507713318,0.047862760722637177,0.952200174331665,0.9531099796295166 5 | 3,0.9609637260437012,0.9258140921592712,0.03903239592909813,1e-04,0.9560630321502686,0.9683946967124939,0.9569557309150696,0.9188218712806702,0.04308772832155228,0.948343813419342,0.9654064178466797 6 | 4,0.9648945331573486,0.9330200552940369,0.03510143235325813,1e-04,0.9602518081665039,0.971794605255127,0.9606366157531738,0.9253696799278259,0.03939945995807648,0.9589961171150208,0.9630980491638184 7 | 5,0.9689694046974182,0.9404242634773254,0.031025903299450874,1e-04,0.9648586511611938,0.9749219417572021,0.9609988331794739,0.9259451031684875,0.03903193771839142,0.9564933180809021,0.9650676846504211 8 | 6,0.9708828926086426,0.943962812423706,0.029113758355379105,1e-04,0.9675348997116089,0.9757340550422668,0.96592777967453,0.9348747134208679,0.03410392999649048,0.9649562835693359,0.9667566418647766 9 | 7,0.9747037291526794,0.9510557055473328,0.025292672216892242,1e-04,0.9716162085533142,0.9793248772621155,0.9606902599334717,0.9253950715065002,0.039344802498817444,0.9671708941459656,0.9552639722824097 10 | 8,0.9731919169425964,0.9483922123908997,0.02680276334285736,1e-04,0.9702030420303345,0.977674663066864,0.9639149904251099,0.9315752983093262,0.03612154349684715,0.9654141068458557,0.9632377624511719 11 | 9,0.9760316610336304,0.9536292552947998,0.023963898420333862,1e-04,0.9729712009429932,0.9803910851478577,0.9603624939918518,0.9253203868865967,0.03967543691396713,0.9668949246406555,0.9548359513282776 12 | 10,0.9771482944488525,0.9557695388793945,0.022847160696983337,1e-04,0.9744585752487183,0.9809694886207581,0.9464969038963318,0.9013042449951172,0.05355329066514969,0.9259641766548157,0.9685927629470825 13 | 11,0.9785595536231995,0.9583388566970825,0.021437058225274086,1e-04,0.9761689901351929,0.9821127653121948,0.9622300863265991,0.9282627105712891,0.03780001774430275,0.9521223902702332,0.9730828404426575 14 | 12,0.9790946245193481,0.9593554139137268,0.02090105228126049,1e-04,0.9768486022949219,0.9824462532997131,0.9607579112052917,0.9257270693778992,0.03928377851843834,0.9579097628593445,0.964905321598053 15 | 13,0.9803131818771362,0.9616795778274536,0.01968376711010933,1e-04,0.9783193469047546,0.9834476709365845,0.9665282368659973,0.9360746145248413,0.0335049107670784,0.9687449932098389,0.965411365032196 16 | 14,0.9808645248413086,0.9627286195755005,0.019131800159811974,1e-04,0.9789907932281494,0.9837662577629089,0.9660096764564514,0.9350560307502747,0.034016381949186325,0.9705449938774109,0.963333249092102 17 | 15,0.9819546937942505,0.9647705554962158,0.018042568117380142,1e-04,0.980270504951477,0.9845969080924988,0.966107964515686,0.9353917241096497,0.033921435475349426,0.9647469520568848,0.969424307346344 18 | -------------------------------------------------------------------------------- /files/score.csv: -------------------------------------------------------------------------------- 1 | ,Image,Accuracy,F1,Jaccard,Recall,Precision 2 | 0,adult-baby-background-bump-41286_0,0.977405548095703,0.982527353556331,0.965654808500768,0.988261824224082,0.976859048434686 3 | 1,adult-caucasian-child-daughter-41316_0,0.983078002929688,0.988819155639571,0.977885569287064,0.982829284912618,0.994882484809754 4 | 2,aircraft-women-fashion-pilot-48797_0,0.986316680908203,0.99148480582651,0.983113404294383,0.990964913113214,0.992005244331704 5 | 3,american-football-football-football-player-quarterback-159819_0,0.976207733154297,0.96303189440055,0.928699628465276,0.975152446343688,0.951208945612084 6 | 4,american-football-referees-american-football-football-referees-decision-making-163454_0,0.975193023681641,0.979694813325298,0.960197817398383,0.976465974941025,0.982945075876242 7 | 5,baby-boy-child-cuddle-40975_0,0.995906829833984,0.997581911889647,0.995175489869878,0.99833560364814,0.996829357269284 8 | 6,baby-child-cute-doll-41307_0,0.897792816162109,0.903377269694729,0.823781273841783,0.994379123365539,0.82763519585558 9 | 7,ball-bauble-christmas-decoration-41516_0,0.9921875,0.99428698951127,0.988638885190609,0.994581080100677,0.993993072791464 10 | 8,ballerina-in-the-city-girl-beautiful-cute-161000_0,0.987728118896484,0.934476648267715,0.877011889742708,0.942210539286154,0.926868686868687 11 | 9,baseball-player-running-sport-163209_0,0.996009826660156,0.993337324993312,0.986762844849405,0.992793481028775,0.993881765110766 12 | 10,bass-guitar-musician-instrument-guitarist-159260_0,0.935325622558594,0.924907208093049,0.860304538413368,0.964063452198482,0.888807545627894 13 | 11,beautiful-cute-dress-eyes-41537_0,0.992671966552734,0.994982958774599,0.99001600765041,0.992083621951283,0.997899291731277 14 | 12,beautiful-face-female-girl-41533_0,0.994579315185547,0.995722726739128,0.991481887771923,0.99595955946553,0.995486006620524 15 | 13,beautiful-woman-picnic-spring-vintage-val_0,0.983081817626953,0.984099554357296,0.968696842863092,0.997267838976893,0.971274495233647 16 | 14,beverage-diet-drink-female-41556_0,0.892543792724609,0.883790774714417,0.791778776499808,0.796411815876934,0.992706344646068 17 | 15,black-and-white-silhouette-girl-playful-463193_0,0.995861053466797,0.987088098439861,0.974505380891959,0.987240829346092,0.986935414782733 18 | 16,black-white-bw-nature-dress-157915_0,0.991313934326172,0.990844427646049,0.98185498330531,0.993052533165691,0.988646120022146 19 | 17,box-christmas-claus-cute-41940_0,0.988121032714844,0.989376872010753,0.978977073262942,0.990356640395569,0.988399040296636 20 | 18,boy-child-fun-beach_0,0.978260040283203,0.981359308407119,0.963400850276789,0.980778660390311,0.981940644350478 21 | 19,boy-child-sad-alone-158305_0,0.977012634277344,0.97573663823996,0.952622806465815,0.97251785857613,0.978976795294422 22 | 20,brunette-cute-fashion-female-41366_0,0.994773864746094,0.996367743440728,0.992761777960935,0.999027040821752,0.993722565973875 23 | 21,building-joy-planning-plans_0,0.994884490966797,0.981866861384934,0.964379631843175,0.997609430384964,0.966613418530351 24 | 22,call-calling-cell-cellphone-41515_0,0.980945587158203,0.989095100763889,0.978425469607771,0.994979597752898,0.983279798593628 25 | 23,child-girl-read-learn-159543_0,0.971458435058594,0.96740465797109,0.936867152693398,0.962749076530878,0.972105484345451 26 | 24,cold-person-woman-water_0,0.454586029052734,0,0,0,0 27 | 25,cute-dive-fun-goggles-41517_0,0.989486694335938,0.99090561106638,0.981975147155003,0.992038269165967,0.989775536438248 28 | 26,desk-office-workspace-coworking_0,0.910011291503906,0.921287954621288,0.854062915648489,0.862493362071658,0.98868478533319 29 | 27,dirt-bike-motorcycle-exhaust-67557_0,0.989215850830078,0.932327947336924,0.873234384108336,0.906737440052149,0.959404867474628 30 | 28,dog-dog-advisor-non-fiction-cocktail_0,0.991691589355469,0.981438238251888,0.963552997088256,0.976528051014178,0.986398053928119 31 | 29,dots-dotted-color-cute-41512_0,0.972965240478516,0.967966479386359,0.937921550077959,0.950712979241028,0.985857786043771 32 | 30,fashion-woman-model-portrait_0,0.992733001708984,0.995585137324246,0.991209085329555,0.994260215889944,0.996913594571639 33 | 31,food-man-person-eating_0,0.906124114990234,0.935208612523334,0.87830219470462,0.882000933623353,0.995248048505769 34 | 32,football-american-football-game-sport-163294_0,0.968051910400391,0.96958781043129,0.94097082725421,0.966992850986158,0.972196734681988 35 | 33,football-american-football-quarterback-runner-163439_0,0.98944091796875,0.990903235135597,0.981970480570066,0.992717167992414,0.989095919170712 36 | 34,football-american-football-referee-referee-football-official-163039_0,0.993843078613281,0.996177293978883,0.992383702822843,0.994415573975913,0.997945267233893 37 | 35,girl-bicycle-garden-people-630770_0,0.990833282470703,0.979828589176439,0.960454859625448,0.972651823211786,0.987112050739957 38 | 36,girl-blonde-wreath-water-160526_0,0.990959167480469,0.981010832638934,0.962729402884147,0.992188133093467,0.970082558194812 39 | 37,girl-cascada-water-waves-160588_0,0.992351531982422,0.985476592323238,0.971369004269659,0.980568529089546,0.990434035613925 40 | 38,girl-cat-kitten-fashion_0,0.995994567871094,0.99612188365651,0.992273730684327,0.995673233113795,0.996570938705529 41 | 39,girl-dance-dress-flowers-163508_0,0.976947784423828,0.963962620835247,0.930432279974673,0.937871333085778,0.991547153144974 42 | 40,girl-forest-nature-stroll-160627_0,0.995628356933594,0.995871043984551,0.991776044320376,0.997373111924195,0.994373493542469 43 | 41,girl-in-leather-jacket-beautiful-hair-model-160974_0,0.996589660644531,0.992562519758407,0.985234854991081,0.992975564285239,0.992149818714034 44 | 42,girl-model-blonde-slav-157666_0,0.993213653564453,0.989594361419004,0.979403047283842,0.998418449844796,0.980924882302465 45 | 43,girl-park-woman-greens-157854_0,0.985031127929688,0.966025974025974,0.934284565916399,0.982667512153879,0.94993870044953 46 | 44,girl-peasant-woman-tradition-water-158007_0,0.988849639892578,0.98931780889001,0.978861424087707,0.999992612074825,0.978868503077157 47 | 45,girl-portrait-face-woman-122426_0,0.985935211181641,0.991490903552034,0.983125394747682,0.984892389799268,0.998178430197166 48 | 46,girl-rustic-grass-meadow-89779_0,0.795295715332031,0.861737212585928,0.757063502483148,0.781460141219573,0.960395812155775 49 | 47,girl-sunset-lake-water-160534_0,0.992431640625,0.991692418494418,0.98352173154708,0.992091219074907,0.991293938404614 50 | 48,girl-water-wet-summer-122436_0,0.998626708984375,0.988114889402443,0.976508972267537,0.979128500392567,0.997267759562842 51 | 49,girl-wild-water-rock-160440_0,0.988815307617188,0.974153281969005,0.949609005757498,0.989665054630127,0.959120261074851 52 | 50,girl-woman-portrait-young-115015_0,0.999408721923828,0.999703441797104,0.999407059435597,0.999575306563618,0.99983160988603 53 | 51,girl-young-blue-eyes-eyes-39295_0,0.994575500488281,0.991045340050378,0.982249628640261,0.993334764002676,0.988766445095058 54 | 52,girls-children-kids-friends-50581_0,0.975234985351562,0.978315619300836,0.957551703620397,0.989968296029906,0.966934072826912 55 | 53,girls-women-happy-sexy-53364_0,0.986698150634766,0.974540569350846,0.950345318618726,0.99472366302987,0.955160223841079 56 | 54,glamour-style-hat-woman-37649_0,0.981643676757812,0.984814057411194,0.97008244115343,0.981895070701731,0.987750451049283 57 | 55,hammer-throw-athlete-track-and-field-training-37636_0,0.996376037597656,0.994000858824421,0.988073267799079,0.997983819837184,0.990049563489068 58 | 56,hanging-out-trainer-young-79990_fk4fhyJJPf_0,0.982124328613281,0.961408594534943,0.925685105303223,0.984117885082277,0.939723733779824 59 | 57,hiker-traveler-trip-travel-160483_0,0.991310119628906,0.979771968459189,0.960346058105732,0.986923076923077,0.9727237463855 60 | 58,james-stewart-man-person-actor-53487_0,0.997043609619141,0.998079263230159,0.996165890774886,0.997646569193343,0.998512332761408 61 | 59,kickboxer-girl-kickboxing-athletic-girl-160920_0,0.990772247314453,0.936769741485218,0.881060084570754,0.904132398203744,0.971851610803775 62 | 60,love-old-people-the-heart-of-pension-160936_0,0.988174438476562,0.939122579631593,0.885231942541927,0.975521194565705,0.905342470940138 63 | 61,man-selling-razors-black-and-white-older-68655_0,0.991424560546875,0.99346062996707,0.987006230997769,0.9962601882158,0.990676761523511 64 | 62,man-stress-male-face_0,0.9578857421875,0.973728922457488,0.948802849232738,0.958578135102465,0.98936633203737 65 | 63,maternity-baby-belly-pregnant-pregnancy-160776_0,0.981250762939453,0.985265417349934,0.970958745465074,0.975720834125024,0.994998577077013 66 | 64,model-fashion-girl-female-39678_0,0.996551513671875,0.997380332790467,0.994774355031706,0.997102943988319,0.997657875971779 67 | 65,motorbike-racing-motorcycle-race-51388_0,0.742496490478516,0.661321639832826,0.494010853921804,0.989297186946471,0.496665285052187 68 | 66,motorcycle-stunt-jump-motocross-38277_0,0.943801879882812,0.814074410621435,0.68644644985527,0.973380817287378,0.699579193961216 69 | 67,norway-mountain-sky-blue_0,0.981136322021484,0.951063345505646,0.906692831669717,0.920977479635841,0.98318124155993 70 | 68,nymph-forest-nature-elf_0,0.975296020507812,0.971302213044287,0.944205601840285,0.950940154624415,0.992555359326179 71 | 69,peasant-farmer-farmer-romania-botiza-47862_0,0.981338500976562,0.989653130287648,0.97951818326453,0.998651129039143,0.980815830293883 72 | 70,people-man-model-glasses-46503_0,0.991859436035156,0.990583521604067,0.981342728997456,0.991677489464338,0.989491964702875 73 | 71,people-mother-family-father_0,0.992443084716797,0.992377339033334,0.984870008859561,0.99897740213661,0.985863914373089 74 | 72,person-woman-eyes-face_0,0.987907409667969,0.99257381673023,0.985257116812933,0.9970443859806,0.988143158994547 75 | 73,person-woman-girl_0,0.994937896728516,0.985731949895167,0.971865326718399,0.981878547713398,0.989615716753022 76 | 74,person-woman-music-musician_0,0.992008209228516,0.98600805455189,0.972402255242913,0.992350711155325,0.979745961801362 77 | 75,pexels-photo-106684_0,0.997184753417969,0.985797860056962,0.971993472733483,0.992444203347799,0.97923994494571 78 | 76,pexels-photo-108155_0,0.976028442382812,0.941829895952901,0.890055287283925,0.905840455840456,0.980797408806972 79 | 77,pexels-photo-108261_0,0.997707366943359,0.993410015460696,0.986906318082789,0.989817546159729,0.997028656952943 80 | 78,pexels-photo-10988_0,0.995532989501953,0.992150053964189,0.984422391315916,0.993582083540327,0.990722146357137 81 | 79,pexels-photo-112362_0,0.782661437988281,0.876168244611947,0.779625811791918,0.995785822974922,0.782206612853151 82 | 80,pexels-photo-116079_0,0.973464965820312,0.936947063089195,0.881373853132781,0.995837989903272,0.884632501454931 83 | 81,pexels-photo-119972_0,0.974559783935547,0.966344188581551,0.934880042182969,0.970512209708974,0.962211814837893 84 | 82,pexels-photo-122084_0,0.975368499755859,0.976175629554469,0.953460044255123,0.970144109126911,0.982282616766912 85 | 83,pexels-photo-122101_0,0.984233856201172,0.965330380585684,0.932984174341679,0.963495704884543,0.967172056747125 86 | 84,pexels-photo-123335_0,0.991241455078125,0.970218175214673,0.942158962085905,0.980828743771309,0.959834719228005 87 | 85,pexels-photo-12628_0,0.995136260986328,0.997542116555724,0.995096285869227,0.999652270672508,0.995440852272072 88 | 86,pexels-photo-128121_0,0.983299255371094,0.940152012248469,0.887063072359087,0.994361228384709,0.891547835105004 89 | 87,pexels-photo-128202_0,0.991054534912109,0.950415494893536,0.905515935372094,0.954715378079864,0.946154169999579 90 | 88,pexels-photo-134993_0,0.920154571533203,0.937794037666541,0.88287401024034,0.945445175517444,0.930265741357657 91 | 89,pexels-photo-136409_0,0.994461059570312,0.993924940379064,0.987923247748085,0.996677155443675,0.991187883339592 92 | 90,pexels-photo-137079_0,0.992595672607422,0.943610005519886,0.893240195808811,0.963912630579297,0.924144995163034 93 | 91,pexels-photo-138329_0,0.960762023925781,0.975125869965806,0.951459151313802,0.96262521127164,0.987955467570905 94 | 92,pexels-photo-141376_0,0.866024017333984,0.523789507938875,0.354820339481226,0.358548357156117,0.971530607112318 95 | 93,pexels-photo-157023_0,0.95477294921875,0.931098609884234,0.871079987821321,0.900747737111374,0.963566161877383 96 | 94,pexels-photo-167374_0,0.981861114501953,0.982964133320436,0.966498985458235,0.996976678270602,0.969340022611645 97 | 95,pexels-photo-167635_0,0.994297027587891,0.995640013881962,0.991317881679278,0.996741719998131,0.994540740524951 98 | 96,pexels-photo-168890_0,0.995227813720703,0.974590213880934,0.950439743285001,0.969059255968009,0.980184670697826 99 | 97,pexels-photo-169523_0,0.988525390625,0.959943537433084,0.922972523110804,0.928488626703418,0.993604410751206 100 | 98,pexels-photo-173285_0,0.991661071777344,0.989196936001977,0.97862478976806,0.991578488487298,0.986826796032262 101 | 99,pexels-photo-175353_0,0.979385375976562,0.886603995299647,0.796306068601583,0.824011233325532,0.959487691888455 102 | 100,pexels-photo-175708_0,0.991989135742188,0.967669427594913,0.937363915650073,0.970598227246054,0.964758250191865 103 | 101,pexels-photo-185930_0,0.998359680175781,0.992217194570136,0.984554597701149,0.995930528304629,0.988531448355453 104 | 102,pexels-photo-192454_0,0.995426177978516,0.987849245518206,0.975990227882574,0.987278951526323,0.988420198742648 105 | 103,pexels-photo-192478_0,0.999038696289062,0.974259448416752,0.949810794662418,0.984516928158547,0.964213505863324 106 | 104,pexels-photo-193355_0,0.996421813964844,0.99737915618888,0.994772014112218,0.998852736084528,0.995909917751961 107 | 105,pexels-photo-194087_0,0.992885589599609,0.995003630070378,0.990056939349996,0.998703910854881,0.991330667762789 108 | 106,pexels-photo-194446_0,0.993728637695312,0.994186457699761,0.988440119255218,0.994313037573563,0.994059910050066 109 | 107,pexels-photo-204495_0,0.997730255126953,0.970440657757464,0.942578652769736,0.977481985588471,0.963500049324258 110 | 108,pexels-photo-206271_0,0.991085052490234,0.978739276389407,0.95836376917458,0.974069245255686,0.9834543027954 111 | 109,pexels-photo-206272_0,0.972984313964844,0.954253601188554,0.912509574284091,0.915824581850644,0.996048923230444 112 | 110,pexels-photo-206273_0,0.964057922363281,0.978699064947279,0.95828666297731,0.99356908755405,0.964267576645848 113 | 111,pexels-photo-206296_0,0.992805480957031,0.99080771255337,0.981782882091008,0.985762915692797,0.995904410107681 114 | 112,pexels-photo-206300_0,0.918903350830078,0.722405755846598,0.56544224361726,0.648627101554623,0.81512258368694 115 | 113,pexels-photo-206302_0,0.992404937744141,0.980150936624562,0.961074507810514,0.996270925377974,0.964544295104484 116 | 114,pexels-photo-206305_0,0.989768981933594,0.960944780987884,0.924825517840626,0.982461886612673,0.940349977200182 117 | 115,pexels-photo-206331_0,0.827220916748047,0.571498850531216,0.400068876909016,0.437878743947346,0.822481823380443 118 | 116,pexels-photo-206336_0,0.921894073486328,0.940152053244942,0.887063145353455,0.905788857097799,0.977225358360323 119 | 117,pexels-photo-206342_0,0.974285125732422,0.950536750731933,0.905736100234926,0.977203463987206,0.925286781617406 120 | 118,pexels-photo-206345_0,0.9920654296875,0.900961813160651,0.819772983277012,0.981126205537696,0.832907826393168 121 | 119,pexels-photo-206354_0,0.989227294921875,0.960688234311487,0.924350388427538,0.992492881180429,0.93085866896868 122 | 120,pexels-photo-206374_0,0.991847991943359,0.98362765753687,0.967782786329167,0.982551198457158,0.984706477888052 123 | 121,pexels-photo-206395_0,0.960502624511719,0.926856836067195,0.863684238243193,0.948348391760029,0.906317781799594 124 | 122,pexels-photo-206396_0,0.736759185791016,0.846218815113597,0.73343093664412,0.966922830122378,0.752306082987289 125 | 123,pexels-photo-206487_0,0.973514556884766,0.97713553690159,0.955293269199812,0.977351181849324,0.97691998709363 126 | 124,pexels-photo-206514_0,0.961009979248047,0.951234523724325,0.90700403974233,0.996232411256796,0.910125900430015 127 | 125,pexels-photo-206533_0,0.988899230957031,0.989240394001242,0.978709861504357,0.993545847506721,0.984972094187639 128 | 126,pexels-photo-206543_ridJMC97dj_0,0.996875762939453,0.944755480607083,0.895295320889798,0.950590471019411,0.938991686779298 129 | 127,pexels-photo-206557_0,0.99737548828125,0.992590997200086,0.985290973617822,0.99789966004807,0.987338517899608 130 | 128,pexels-photo-206560_0,0.992729187011719,0.993447244473476,0.986979807088013,0.99997231565688,0.987006776696907 131 | 129,pexels-photo-206585_0,0.986724853515625,0.977034553757622,0.955100250303202,0.981516839034739,0.972593020811436 132 | 130,pexels-photo-206592_0,0.970272064208984,0.954298347984682,0.912591412804522,0.935637074517019,0.973719168491724 133 | 131,pexels-photo-207188_0,0.995197296142578,0.952258162375337,0.908867173362287,0.979254406488847,0.926710458336408 134 | 132,pexels-photo-207688_0,0.950229644775391,0.963013360774942,0.928665157628842,0.993832831105,0.934047865203141 135 | 133,pexels-photo-207744_0,0.969070434570312,0.964951412663831,0.932276440420307,0.980454852906298,0.94993063652689 136 | 134,pexels-photo-207789_0,0.979679107666016,0.975267084840353,0.951728075103757,0.972175168698453,0.978378730856653 137 | 135,pexels-photo-207884_0,0.948997497558594,0.869147353585969,0.768577016945632,0.858194820255122,0.880383059719248 138 | 136,pexels-photo-208134_0,0.982955932617188,0.989718430426818,0.979646130578181,0.988181233342524,0.991260417434914 139 | 137,pexels-photo-209230_0,0.977291107177734,0.976265564136402,0.953631654788332,0.985772832309439,0.96693992955188 140 | 138,pexels-photo-209840_0,0.979377746582031,0.962480740668767,0.927675059534958,0.981277330427522,0.944390722253245 141 | 139,pexels-photo-210913_0,0.812816619873047,0.845710979678209,0.732668304721848,0.770432072596446,0.937293959394755 142 | 140,pexels-photo-211046_0,0.993495941162109,0.978146348966278,0.957227434649541,0.992947850525658,0.963779646889445 143 | 141,pexels-photo-212951_0,0.992454528808594,0.989442220443021,0.979105045212541,0.987565661193569,0.991325924895986 144 | 142,pexels-photo-213155_cNJhKCTRzx_0,0.987026214599609,0.988276820091758,0.97682532111342,0.984276729559748,0.992309555947807 145 | 143,pexels-photo-213496_0,0.971092224121094,0.870885299529749,0.771299230421005,0.965581079038839,0.7931045183714 146 | 144,pexels-photo-214574_0,0.995677947998047,0.979048393956765,0.958956710740808,0.991683524387503,0.966731183581054 147 | 145,pexels-photo-215305_0,0.970493316650391,0.968801300382774,0.939490420946406,0.993547106125285,0.945258203398635 148 | 146,pexels-photo-215316_RI0FPinnir_0,0.993865966796875,0.991021976058603,0.982203727477976,0.996519122369691,0.985585145370144 149 | 147,pexels-photo-217860_0,0.962726593017578,0.953339668683473,0.910839591564847,0.998809249827391,0.911829725038823 150 | 148,pexels-photo-219004_0,0.990856170654297,0.992912917885051,0.985925582323894,0.995010488640269,0.990824172257726 151 | 149,pexels-photo-219596_0,0.992954254150391,0.990442580451532,0.981066119938493,0.991022056539298,0.989863781636896 152 | 150,pexels-photo-219621_0,0.958023071289062,0.96484165324745,0.93207155820586,0.94125201042303,0.989644097791178 153 | 151,pexels-photo-220452_0,0.989261627197266,0.974457157893782,0.950186689317124,0.991835679190218,0.957677147800032 154 | 152,pexels-photo-220453_0,0.993270874023438,0.993668977992162,0.987417615338526,0.99726966883028,0.99009419455431 155 | 153,pexels-photo-221212_0,0.994068145751953,0.987401868250278,0.97511721312787,0.995247350111875,0.979679109996463 156 | 154,pexels-photo-225600_0,0.996749877929688,0.995021386999509,0.990092101590846,0.994695889898825,0.995347097196568 157 | 155,pexels-photo-225896_0,0.913425445556641,0.946326581290574,0.898121338630395,0.909123956577255,0.986703885266761 158 | 156,pexels-photo-226273_0,0.995689392089844,0.940217966352767,0.887180511182109,0.969663902226102,0.912507701786814 159 | 157,pexels-photo-235127_0,0.960369110107422,0.910651472801548,0.83595970441483,0.863811388480992,0.962862598890606 160 | 158,pexels-photo-235444_QuAkTRxqz5_0,0.995998382568359,0.996424517787087,0.992874512627532,0.995837307535086,0.997012420962164 161 | 159,pexels-photo-235469_0,0.960838317871094,0.922881610576923,0.856806103803719,0.866645974124917,0.986921803955592 162 | 160,pexels-photo-235474_0,0.991039276123047,0.984632092691576,0.969729381443299,0.988596802375228,0.980699056456237 163 | 161,pexels-photo-235514_0,0.995460510253906,0.99152143864799,0.983185440569717,0.99016692043886,0.992879667812959 164 | 162,pexels-photo-235574_0,0.990261077880859,0.981303414891358,0.963293123032019,0.989294626640875,0.973440269665533 165 | 163,pexels-photo-235837_0,0.998706817626953,0.981670721816707,0.964001274291176,0.976549053356282,0.986846396347429 166 | 164,pexels-photo-235922_0,0.996196746826172,0.98325186043777,0.967055480289462,0.981356045872175,0.985155013969771 167 | 165,pexels-photo-236220_0,0.956474304199219,0.968791882060119,0.939472707018195,0.958457808373382,0.979351228198237 168 | 166,pexels-photo-237593_0,0.980472564697266,0.942719348305303,0.891645323116652,0.905834032212976,0.982736095558044 169 | 167,pexels-photo-237738_0,0.985012054443359,0.916872950386121,0.846505449857405,0.982363875413701,0.859568390986988 170 | 168,pexels-photo-239604_0,0.987049102783203,0.993409903972886,0.986906098017209,0.992248482850883,0.994574047154484 171 | 169,pexels-photo-240177_0,0.9959716796875,0.971967082559066,0.945462996436503,0.991604376557253,0.953092461474385 172 | 170,pexels-photo-240513_0,0.998085021972656,0.962514934289128,0.927738592198071,0.959648600357355,0.965398442180947 173 | 171,pexels-photo-245241_nqhmPJpFTU_0,0.993217468261719,0.976541059742453,0.95415753512956,0.969277108433735,0.983914708071892 174 | 172,pexels-photo-247202_0,0.982734680175781,0.969173557096348,0.940190818510981,0.9582738464025,0.980324074074074 175 | 173,pexels-photo-247204_0,0.978736877441406,0.988843208448257,0.977932618076725,0.999502304371224,0.978409059401823 176 | 174,pexels-photo-247885_0,0.992397308349609,0.994907879373207,0.98986735539501,0.99851272898845,0.991328964720139 177 | 175,pexels-photo-247917_0,0.993988037109375,0.995403452077488,0.990848967315252,0.996589362783173,0.994220360411799 178 | 176,pexels-photo-248023_0,0.99273681640625,0.965527230590962,0.933352002240269,0.98474720242272,0.9470431539691 179 | 177,pexels-photo-249100_0,0.994720458984375,0.985519377249519,0.971452145214522,0.99314649627802,0.978008514172983 180 | 178,pexels-photo-249613_0,0.98760986328125,0.988383820321162,0.977034413027031,0.996085753005969,0.980800079496898 181 | 179,pexels-photo-249757_0,0.997207641601562,0.998274919401972,0.99655578036042,0.998571435306764,0.997978579539832 182 | 180,pexels-photo-255311_0,0.531772613525391,0.672895552458287,0.507040386839738,0.507066861060571,0.999897039489316 183 | 181,pexels-photo-257283_0,0.9737548828125,0.978744307614358,0.958373417070529,0.990519963730732,0.967245348460886 184 | 182,pexels-photo-257357_0,0.995758056640625,0.995134799310472,0.990316709771241,0.993865084289547,0.99640776273711 185 | 183,pexels-photo-258641_0,0.986892700195312,0.98911866231751,0.978471582614362,0.997986988918853,0.980406559188388 186 | 184,pexels-photo-259806_0,0.984710693359375,0.975028037383177,0.951272886424976,0.966226645756412,0.983991247374841 187 | 185,pexels-photo-260175_0,0.991691589355469,0.993891596879049,0.987857365862361,0.998850017475225,0.988982161594963 188 | 186,pexels-photo-26138_0,0.995647430419922,0.993479888226655,0.98704424939536,0.988346048457699,0.998667340655301 189 | 187,pexels-photo-262172_0,0.991817474365234,0.992834833731398,0.985771616198468,0.997938448934642,0.987783154312453 190 | 188,pexels-photo-262214_0,0.989974975585938,0.992072589500102,0.984269878133455,0.98501275892226,0.999234349744176 191 | 189,pexels-photo-264165_0,0.980632781982422,0.986558862228999,0.973474260576074,0.977006612237621,0.996299742265285 192 | 190,pexels-photo-264216_0,0.977481842041016,0.988119891885582,0.976518743635438,0.981728239048541,0.994595317292149 193 | 191,pexels-photo-265720_hIUI3020WU_0,0.990993499755859,0.985443986165313,0.971305647719401,0.97967589301037,0.991280403854979 194 | 192,pexels-photo-265819_0,0.954872131347656,0.948968587426343,0.902892697662201,0.979456995040115,0.920320958524729 195 | 193,pexels-photo-267447_0,0.859268188476563,0.92430795492782,0.859268188476563,0.859268188476563,1 196 | 194,pexels-photo-267751_nvo8tdciLn_0,0.996665954589844,0.994657505776495,0.989371792689155,0.995667817020339,0.993649242794333 197 | 195,pexels-photo-267778_0,0.993862152099609,0.99220283295454,0.984526316801785,0.987899023429961,0.996544305892202 198 | 196,pexels-photo-268004_0,0.994827270507812,0.98567141468363,0.971747645637136,0.984111577659148,0.9872362043054 199 | 197,pexels-photo-268791_0,0.994449615478516,0.984076258851083,0.968651699918128,0.988370559268378,0.979819112999891 200 | 198,pexels-photo-269393_0,0.995449066162109,0.992979090283132,0.986056079572682,0.991922493562686,0.994037940379404 201 | 199,pexels-photo-270789_0,0.992061614990234,0.990930446417287,0.982023927784736,0.992734639701002,0.989132799109046 202 | 200,pexels-photo-270856_0,0.981857299804688,0.987928198672,0.976144377677237,0.99079514097486,0.985077799937234 203 | 201,pexels-photo-270968_0,0.971149444580078,0.9601012898631,0.923264237664749,0.937871042216359,0.983410964973901 204 | 202,pexels-photo-271821_0,0.984119415283203,0.991996154770488,0.984119415283203,0.984119415283203,1 205 | 203,pexels-photo-274078_0,0.967632293701172,0.951747826235307,0.907937851268363,0.995740073061317,0.911478302544441 206 | 204,pexels-photo-274643_0,0.992378234863281,0.995003825899086,0.990057327122895,0.993761332247768,0.99624943040415 207 | 205,pexels-photo-275583_0,0.989383697509766,0.984816493990431,0.970087169620688,0.991137808721626,0.978575300878239 208 | 206,pexels-photo-276080_0,0.994503021240234,0.994098156544247,0.988265567869968,0.997607911155683,0.990613011182761 209 | 207,pexels-photo-277062_0,0.891849517822266,0.887192974777478,0.797256806138576,0.948340833113586,0.833452946981251 210 | 208,pexels-photo-284006_0,0.991813659667969,0.991318559511962,0.982786556509184,0.995191526690276,0.987475620174406 211 | 209,pexels-photo-285977_0,0.997566223144531,0.994778794376156,0.989611827536798,0.995104540170604,0.994453261776592 212 | 210,pexels-photo-300849_0,0.957847595214844,0.660062757644743,0.492607218293691,0.987754350428137,0.495634095634096 213 | 211,pexels-photo-300968_0,0.997077941894531,0.997041008683828,0.994099476964081,0.997480271141375,0.996602132933826 214 | 212,pexels-photo-301279_0,0.995361328125,0.994118329915258,0.988305443354491,0.994435789005119,0.99380107344906 215 | 213,pexels-photo-301342_0,0.991596221923828,0.979167257699982,0.95918480778138,0.985251298837231,0.973157894736842 216 | 214,pexels-photo-302053_0,0.991436004638672,0.977106553950012,0.955237867368505,0.988527803569586,0.965946207508367 217 | 215,pexels-photo-304648_0,0.996166229248047,0.992424299530382,0.984962518516302,0.998256069635898,0.986660271590875 218 | 216,pexels-photo-305832_0,0.994056701660156,0.691118160190325,0.528021811572251,0.537796976241901,0.966722129783694 219 | 217,pexels-photo-306980_0,0.990215301513672,0.979834747128515,0.960466693381832,0.995622373823713,0.964539995047053 220 | 218,pexels-photo-310386_0,0.999004364013672,0.853453116226839,0.744368266405485,0.992167101827676,0.748768472906404 221 | 219,pexels-photo-310825_0,0.993762969970703,0.96373838408481,0.930014553548498,0.998162355859788,0.931609638967498 222 | 220,pexels-photo-313690_0,0.909351348876953,0.908661810773932,0.832612493308163,0.987468776367783,0.84150387287846 223 | 221,pexels-photo-314373_0,0.998119354248047,0.991835991190157,0.983804204993429,0.99353062172384,0.990147131757315 224 | 222,pexels-photo-318209_0,0.997306823730469,0.996117508606372,0.992265048096939,0.99604082350871,0.996194205512902 225 | 223,pexels-photo-318236_0,0.952548980712891,0.942940628712712,0.892041312272175,0.94880316080017,0.937150099385451 226 | 224,pexels-photo-318377_0,0.976001739501953,0.977592882151596,0.956167914997387,0.993714790517154,0.961985742024576 227 | 225,pexels-photo-319961_0,0.993183135986328,0.988567370623197,0.977393196452743,0.981877335231172,0.995349196737996 228 | 226,pexels-photo-321576_0,0.995292663574219,0.992401758555718,0.984918112930824,0.993478394871479,0.991327453223604 229 | 227,pexels-photo-322484_0,0.932140350341797,0.884274348315411,0.792555362494607,0.793907040312124,0.997856408750551 230 | 228,pexels-photo-325523_0,0.995395660400391,0.990484899606625,0.981149166783801,0.993013404147698,0.987969238995392 231 | 229,pexels-photo-325686_nlDONZXWsV_0,0.985439300537109,0.989184670964086,0.978600781517175,0.985985822012596,0.992404343623856 232 | 230,pexels-photo-326603_0,0.989837646484375,0.989545069228596,0.979306487695749,0.989987985582699,0.989102549014993 233 | 231,pexels-photo-327253_0,0.996555328369141,0.991976685295921,0.984081092992508,0.99513325608343,0.988840076525189 234 | 232,pexels-photo-327538_0,0.957942962646484,0.978519784204199,0.957942962646484,0.999952216174029,0.957986815802725 235 | 233,pexels-photo-333994_12TQ3nQsnH_0,0.998561859130859,0.970786516853933,0.943231441048035,0.996658711217184,0.946223564954683 236 | 234,pexels-photo-339800_0,0.986366271972656,0.986679090570257,0.973708409042424,0.992099957276809,0.981317141522653 237 | 235,pexels-photo-341004_8AgutZKy5e_0,0.996463775634766,0.990535311354563,0.981248103570345,0.987259331623723,0.99383310455039 238 | 236,pexels-photo-341392_0,0.991107940673828,0.983457173880645,0.967452770912747,0.991854789069098,0.975200562983814 239 | 237,pexels-photo-346692_0,0.981914520263672,0.972448380666794,0.946374237916954,0.999569913026856,0.946759756939337 240 | 238,pexels-photo-346693_0,0.996585845947266,0.988972807806513,0.978186161008067,0.989326299701728,0.988619568430387 241 | 239,pexels-photo-346736_0,0.992107391357422,0.992074770650987,0.984274172094826,0.990780624775254,0.993372301744373 242 | 240,pexels-photo-346750_0,0.948894500732422,0.901159058882552,0.820099638775866,0.907634461337257,0.894775397778885 243 | 241,pexels-photo-346808_0,0.989906311035156,0.980716253443526,0.962162162162162,0.994604502653402,0.967210522532883 244 | 242,pexels-photo-346842_0,0.966854095458984,0.926358790077209,0.862819703189138,0.949131642931574,0.904653126086309 245 | 243,pexels-photo-347024_0,0.967525482177734,0.95890239015936,0.921049458855389,0.92470274950885,0.995728895127331 246 | 244,pexels-photo-351699_0,0.994438171386719,0.942202489494965,0.890721031329636,0.959702818380037,0.925328972981391 247 | 245,pexels-photo-354946_0,0.991146087646484,0.980531953263267,0.961807441049185,0.985616242011365,0.97549984979472 248 | 246,pexels-photo-354957_0,0.987594604492188,0.980116172424335,0.961007661778636,0.971361741322474,0.989029837853846 249 | 247,pexels-photo-354972_0,0.989017486572266,0.990164024038182,0.98051965626903,0.991244331046371,0.989086069210293 250 | 248,pexels-photo-355005_0,0.995388031005859,0.991189652031335,0.982533192712773,0.989149722197981,0.99323801317346 251 | 249,pexels-photo-355036_0,1,1,1,1,1 252 | 250,pexels-photo-356170_D2OYiQ5pj5_0,0.995143890380859,0.990145151925682,0.980482644425365,0.988011185440388,0.992288356504469 253 | 251,pexels-photo-356176_0,0.989372253417969,0.965100839283477,0.932555437203447,0.94637022478811,0.98458785942492 254 | 252,pexels-photo-356842_0,0.995407104492188,0.990441713505446,0.981064418721691,0.99089797150255,0.989985875482059 255 | 253,pexels-photo-357275_0,0.754261016845703,0.76691620503877,0.621949788143053,0.994146506195886,0.624235748701215 256 | 254,pexels-photo-364362_0,0.957984924316406,0.956519336144141,0.916662252858256,0.934841154092491,0.979226783707979 257 | 255,pexels-photo-371163_0,0.987594604492188,0.988422184404839,0.977109392047414,0.995275105037498,0.981662989364109 258 | 256,pexels-photo-371218_0,0.951637268066406,0.957932389206695,0.919261264129916,0.993762607312758,0.924595981270697 259 | 257,pexels-photo-371248_0,0.989013671875,0.987034969568192,0.974401820315,0.984058023051237,0.990029982299606 260 | 258,pexels-photo-372021_0,0.990303039550781,0.986624572480926,0.973602226468389,0.982890570943325,0.990387053156427 261 | 259,pexels-photo-373899_0,0.991889953613281,0.987633351559501,0.975568834750632,0.984757795100223,0.990525750822579 262 | 260,pexels-photo-374632_0,0.993598937988281,0.97799632835038,0.956940131899715,0.99543537451284,0.961157791638744 263 | 261,pexels-photo-374810_0,0.993999481201172,0.995152198769096,0.990351173132955,0.996346671274469,0.993960586826568 264 | 262,pexels-photo-374849_0,0.901191711425781,0.854863111180841,0.746516088624442,0.90711474201182,0.808303222319943 265 | 263,pexels-photo-374882_0,0.994049072265625,0.984495815857998,0.969465051185187,0.992465684801122,0.976652929229192 266 | 264,pexels-photo-374912_0,0.995632171630859,0.990150113983397,0.980492375841213,0.997832683138275,0.982584941096124 267 | 265,pexels-photo-375382_0,0.992095947265625,0.987448661877128,0.975208490374146,0.993672583634058,0.981302222543283 268 | 266,pexels-photo-375880_0,0.992351531982422,0.993567718609344,0.987217656846682,0.998452531400717,0.988730469872364 269 | 267,pexels-photo-377945_0,0.98980712890625,0.990040627679004,0.980277677312686,0.984010906369705,0.996144701214344 270 | 268,pexels-photo-378153_0,0.981010437011719,0.967051005414278,0.936204024093298,0.970726197594844,0.963403536998694 271 | 269,pexels-photo-384273_0,0.994945526123047,0.989643987650944,0.979500270751141,0.985676475167367,0.993643569018284 272 | 270,pexels-photo-386133_0,0.980342864990234,0.987364368647548,0.975044071211329,0.99262915010896,0.982155140031904 273 | 271,pexels-photo-386140_0,0.993526458740234,0.975633570249121,0.952426340724959,0.984896361791564,0.966543385490754 274 | 272,pexels-photo-388517_0,0.992649078369141,0.994912681336378,0.989876862300111,0.992405369961711,0.997432694241824 275 | 273,pexels-photo-388622_0,0.973854064941406,0.953532203389831,0.911191157987483,0.991596046193545,0.918282602734359 276 | 274,pexels-photo-395196_0,0.997642517089844,0.925145348837209,0.860716700473293,0.954272863568216,0.897743300423131 277 | 275,pexels-photo-406197_0,0.982688903808594,0.976345117336141,0.953783481006212,0.989048358309835,0.96396405669408 278 | 276,pexels-photo-411468_0,0.918819427490234,0.908887737670667,0.83299195605258,0.9818965596988,0.845984633532056 279 | 277,pexels-photo-412840_0,0.991905212402344,0.994410847486198,0.988883824970009,0.99654744621882,0.992283390892509 280 | 278,pexels-photo-413744_0,0.997444152832031,0.953166503564938,0.910523504273504,0.972471829981458,0.934612748457848 281 | 279,pexels-photo-413948_0,0.760871887207031,0.799556175176507,0.666050471203073,0.666476536720845,0.999041112309721 282 | 280,pexels-photo-413979_0,0.978363037109375,0.987735844976929,0.97576886435776,0.982416826168305,0.993112773978112 283 | 281,pexels-photo-414012_0,0.991657257080078,0.965611585452144,0.933509668004378,0.987870793385239,0.944333384591727 284 | 282,pexels-photo-414029_0,0.937141418457031,0.92433996051242,0.859323509826353,0.895332805564698,0.955289606802889 285 | 283,pexels-photo-414192_0,0.983661651611328,0.984409523913526,0.969297711127519,0.984205316330393,0.984613816254159 286 | 284,pexels-photo-415188_0,0.988723754882812,0.967892598787826,0.937782829239544,0.970760616162276,0.965041478048041 287 | 285,pexels-photo-415274_0,0.992694854736328,0.981329277447912,0.963342968166766,0.988781264121658,0.973988774917747 288 | 286,pexels-photo-415556_0,0.997200012207031,0.996972471766443,0.993963220054611,0.995166377088463,0.998785134007157 289 | 287,pexels-photo-416747_0,0.982841491699219,0.959250602453299,0.921692200557103,0.945038467717463,0.97389672743327 290 | 288,pexels-photo-42157_0,0.995670318603516,0.905723066699892,0.827690906330651,0.925322471147318,0.886936717097771 291 | 289,pexels-photo-423366_0,0.971797943115234,0.95258435469699,0.909461643969825,0.990054526790118,0.917846990483253 292 | 290,pexels-photo-424706_0,0.980396270751953,0.990006631132096,0.980211020832531,0.995195089530065,0.984871992292841 293 | 291,pexels-photo-428333_0,0.987781524658203,0.990117888072664,0.980429177206682,0.992834912168893,0.987415694382907 294 | 292,pexels-photo-432498_0,0.96759033203125,0.982595941511219,0.965787322463345,0.967247957282399,0.998438852994072 295 | 293,pexels-photo-432689_0,0.926460266113281,0.940494490230577,0.887673052719899,0.897652548964152,0.987630790773659 296 | 294,pexels-photo-439851_0,0.978710174560547,0.954280705491067,0.912559145175947,0.95104746664925,0.957536003156441 297 | 295,pexels-photo-442544_0,0.946399688720703,0.951013648961947,0.906602500614851,0.995133482660752,0.910639888900758 298 | 296,pexels-photo-450276_0,0.945621490478516,0.938757974781432,0.884584244190754,0.998391680602389,0.885846562991551 299 | 297,pexels-photo-45720_0,0.941143035888672,0.919572345272288,0.851118852103095,0.983059159199322,0.863788156258263 300 | 298,pexels-photo-458508_0,0.99456787109375,0.993835391089023,0.987746321314861,0.989730722470835,0.997974247732983 301 | 299,pexels-photo-458713_0,0.956527709960938,0.966529998472762,0.935227918608616,0.980385614528468,0.953060562531857 302 | 300,pexels-photo-458771_0,0.993751525878906,0.974469278967549,0.950209739193872,0.964100666173205,0.985063339005483 303 | 301,pexels-photo-460273_0,0.997528076171875,0.982110319695213,0.964849471114727,0.971065130752852,0.993409662105557 304 | 302,pexels-photo-460550_0,0.994411468505859,0.993447389019345,0.986980092428013,0.990907793065296,0.996000035874117 305 | 303,pexels-photo-462475_0,0.914413452148438,0.899634971191354,0.817578664932108,0.915300521577659,0.884496635440032 306 | 304,pexels-photo-462620_0,0.996692657470703,0.989491036472285,0.979200652528548,0.985180179092949,0.993839785731677 307 | 305,pexels-photo-47296_0,0.990150451660156,0.991663760928803,0.983465358581428,0.996140623986508,0.987226957740322 308 | 306,pexels-photo-530024_0,0.949718475341797,0.886185250105776,0.795630736789878,0.852621084987954,0.922500269658074 309 | 307,pexels-photo-531474_0,0.996189117431641,0.893892724375996,0.808142884578452,0.92280701754386,0.866735324407827 310 | 308,pexels-photo-532290_0,0.502494812011719,0.667178759544322,0.50057632583663,0.998785128134599,0.500881300339492 311 | 309,pexels-photo-532301_0,0.991786956787109,0.991561131819589,0.983263500750149,0.995850883753887,0.987308178653387 312 | 310,pexels-photo-532400_0,0.975105285644531,0.966034829133227,0.934301131558813,0.973503125917845,0.958680247092122 313 | 311,pexels-photo-534256_0,0.984954833984375,0.986229819563153,0.972833723653396,0.995503052003891,0.977127755254528 314 | 312,pexels-photo-546162_0,0.989974975585938,0.989700176366843,0.97961036240486,0.993664709678435,0.985767152805971 315 | 313,pexels-photo-547116_0,0.997001647949219,0.980161534578495,0.961094886897986,0.988595285372435,0.971870463987186 316 | 314,pexels-photo-551576_0,0.997016906738281,0.978978494623656,0.958822600179032,0.991829620349692,0.966456132901651 317 | 315,pexels-photo-551594_0,0.993724822998047,0.9489653460739,0.902886829210697,0.942735622264686,0.95527795128045 318 | 316,pexels-photo-551657_0,0.9534912109375,0.935425096925913,0.878684152918466,0.896480310244358,0.977907221403971 319 | 317,pexels-photo-551855_0,0.994735717773438,0.971484068272926,0.944549363121308,0.96316479554208,0.979948307487077 320 | 318,pexels-photo-55529_0,0.997196197509766,0.971714450644603,0.94498502994012,0.96721060292653,0.976260439220538 321 | 319,pexels-photo-561652_0,0.990146636962891,0.98306773561282,0.966699327024727,0.979644896199422,0.986514577412904 322 | 320,pexels-photo-562624_0,0.997566223144531,0.994659479006228,0.989375697323941,0.992930677184304,0.99639431139733 323 | 321,pexels-photo-570093_0,0.996776580810547,0.993272453683431,0.98663482221941,0.997824522114692,0.988761729647477 324 | 322,pexels-photo-573238_0,0.998153686523438,0.988951789627465,0.978145037478551,0.987554137223615,0.99035340373977 325 | 323,pexels-photo-573253_0,0.995090484619141,0.990304427418808,0.980795057749127,0.995079634227578,0.985574832431136 326 | 324,pexels-photo-573565_0,0.989482879638672,0.969651604381089,0.94109100232901,0.995839739531518,0.944805543042238 327 | 325,pexels-photo-582429_0,0.987640380859375,0.982482509542707,0.965568178195305,0.980870334985048,0.984099992418252 328 | 326,pexels-photo-582431_0,0.995002746582031,0.989347514962269,0.978919588690601,0.987116036802051,0.991589104956886 329 | 327,pexels-photo-584306_0,0.993938446044922,0.995565255493194,0.991169671238358,0.993776326639773,0.997360636578669 330 | 328,pexels-photo-58571_MX1VrmUxeW_0,0.997421264648438,0.977030241250425,0.95509200823756,0.960451599973278,0.994191273079317 331 | 329,pexels-photo-58572_0,0.987812042236328,0.964758049393882,0.931915528373857,0.972881582167249,0.956769055745165 332 | 330,pexels-photo-586336_0,0.996585845947266,0.997008739827209,0.99403532155948,0.996359385437542,0.997658941172536 333 | 331,pexels-photo-590140_0,0.987945556640625,0.96905964829828,0.939976446453672,0.992996889736129,0.946249306843605 334 | 332,pexels-photo-590513_0,0.983798980712891,0.978941157219856,0.958750971250971,0.981164519720102,0.976727848414387 335 | 333,pexels-photo-590617_0,0.916683197021484,0.956125919274584,0.915939898239591,0.989427426328744,0.924993100982187 336 | 334,pexels-photo-590798_0,0.981693267822266,0.983962008775946,0.968430331616375,0.988020053825865,0.979937162180153 337 | 335,pexels-photo-593349_0,0.992687225341797,0.991053135136397,0.982264943427297,0.988051145563848,0.994073422153979 338 | 336,pexels-photo-593578_0,0.961498260498047,0.974799190018552,0.950837319408859,0.959417483362987,0.990682142295258 339 | 337,pexels-photo-594685_0,0.996364593505859,0.991285263591057,0.982721108169852,0.989972602739726,0.992601410127278 340 | 338,pexels-photo-596146_0,0.979373931884766,0.861865467644279,0.757261503928171,0.790773990905255,0.947002021109364 341 | 339,pexels-photo-601319_0,0.994182586669922,0.988124625244321,0.97652798941066,0.981437366581072,0.994903639585392 342 | 340,pexels-photo-60682_0,0.993019104003906,0.995322922789889,0.990689392012211,0.998287653675392,0.992375749174379 343 | 341,pexels-photo-612872_0,0.993721008300781,0.988805614875066,0.977859083694278,0.981489732269432,0.996231379589152 344 | 342,pexels-photo-614510_0,0.998889923095703,0.985134099616858,0.970703714889761,0.984279297672519,0.985990387565191 345 | 343,pexels-photo-615491_0,0.985397338867188,0.990017992646484,0.980233296670953,0.984381076834524,0.995719838235063 346 | 344,pexels-photo-620331_0,0.993343353271484,0.983895231327236,0.968300968228306,0.983396059331415,0.984394910339988 347 | 345,pexels-photo-620334_0,0.986358642578125,0.968093649065829,0.938160374911374,0.970431453921008,0.965767080855912 348 | 346,pexels-photo-62376_0,0.996677398681641,0.937736793194653,0.882772543741588,0.981739260589732,0.897509578544061 349 | 347,pexels-photo-62377_0,0.993782043457031,0.416189111747851,0.262777023971054,0.26289592760181,0.998281786941581 350 | 348,pexels-photo-625393_0,0.993682861328125,0.995448198520115,0.9909376470717,0.992550853171232,0.998362508614748 351 | 349,pexels-photo-627935_0,0.956661224365234,0.957835237879626,0.919082349254284,0.966635454511405,0.949193809397711 352 | 350,pexels-photo-631037_0,0.984146118164062,0.774815778066753,0.632407571201132,0.816116881634517,0.73749355337803 353 | 351,pexels-photo-631214_0,0.996074676513672,0.995854934802838,0.991744090887209,0.992261565507775,0.999474424697188 354 | 352,pexels-photo-631546_0,0.995174407958984,0.99670286993669,0.993427410555631,0.993980006134363,0.99944069249587 355 | 353,pexels-photo-633277_0,0.997982025146484,0.986663977613634,0.973678973032142,0.98316921221865,0.990183676567323 356 | 354,pexels-photo-634509_0,0.731193542480469,0.72572785302818,0.569523437165914,0.99882147487063,0.569906408367618 357 | 355,pexels-photo-63775_0,0.965656280517578,0.935064373039056,0.878047789336801,0.93485534627477,0.935273493297935 358 | 356,pexels-photo-64609_0,0.962905883789062,0.890409106277471,0.802466126312796,0.903152792702165,0.878020048454135 359 | 357,pexels-photo-667247_0,0.984867095947266,0.985307461824216,0.971040413478946,0.981631809661565,0.989010743893825 360 | 358,pexels-photo-668927_0,0.957695007324219,0.977125153667813,0.955273420958173,0.996038737946956,0.958916476727569 361 | 359,pexels-photo-669276_0,0.998001098632812,0.95623851678637,0.916146583453352,0.950365205843294,0.96218487394958 362 | 360,pexels-photo-669277_0,0.990371704101562,0.975511312919626,0.952193347980908,0.984895088454832,0.966304661220567 363 | 361,pexels-photo-671613_0,0.986366271972656,0.987890574706412,0.976070916857483,0.982206501600135,0.99364081871903 364 | 362,pexels-photo-671804_0,0.990959167480469,0.987292088923205,0.974903106931825,0.994845527928162,0.979852485711549 365 | 363,pexels-photo-673058_0,0.921428680419922,0.5002305097906,0.333538262417085,0.656602331358685,0.40401348279376 366 | 364,pexels-photo-675927_0,0.979053497314453,0.966237694989455,0.934680719451846,0.94164809088948,0.992145968811162 367 | 365,pexels-photo-679350_0,0.995227813720703,0.978307236123394,0.957535641547861,0.996080508474576,0.961157109271185 368 | 366,pexels-photo-682013_0,0.972709655761719,0.982417593220672,0.965442785444814,0.967789576645022,0.997494597413746 369 | 367,pexels-photo-682020_0,0.891609191894531,0.870583091175747,0.770825267776487,0.982119001130408,0.781797061614476 370 | 368,pexels-photo-68441_0,0.870155334472656,0.811208359679191,0.682380605789149,0.767313019390582,0.860430638898694 371 | 369,pexels-photo-688675_0,0.986743927001953,0.985361086186342,0.97114458431594,0.979259817466298,0.991538859356852 372 | 370,pexels-photo-690729_0,0.977561950683594,0.943182257254356,0.892473904539056,0.914816272228156,0.973363638176127 373 | 371,pexels-photo-690737_0,0.995841979980469,0.310998735777497,0.184131736526946,0.184684684684685,0.984 374 | 372,pexels-photo-690903_0,0.996906280517578,0.997229822278241,0.994474949927105,0.996858674497217,0.997601246531717 375 | 373,pexels-photo-691034_0,0.998996734619141,0.864363073749355,0.761126248864669,0.865702479338843,0.86302780638517 376 | 374,pexels-photo-691232_SHDJullPaf_0,0.993515014648438,0.989792242103999,0.979790775083214,0.9892220168511,0.990363125135181 377 | 375,pexels-photo-691399_0,0.966323852539062,0.894257719857221,0.808739736118032,0.957939848080476,0.838514758075385 378 | 376,pexels-photo-691861_0,0.989601135253906,0.981822304019631,0.964293666906805,0.978130605194978,0.985541975126842 379 | 377,pexels-photo-694742_0,0.984893798828125,0.970068932156246,0.941877531849938,0.994544665550803,0.946768958394807 380 | 378,pexels-photo-69494_0,0.994880676269531,0.994260591390032,0.988586688438707,0.998188079106233,0.990363888865222 381 | 379,pexels-photo-698848_0,0.995452880859375,0.968649729104203,0.939205385831591,0.967275974367055,0.970027391487568 382 | 380,pexels-photo-700535_0,0.988918304443359,0.987089520067908,0.974508152126222,0.992572664545422,0.981666622468553 383 | 381,pexels-photo-700700_0,0.977996826171875,0.962293260116363,0.927326790056571,0.994352801307772,0.932236450456612 384 | 382,pexels-photo-700701_0,0.992774963378906,0.986077419544539,0.972537192239654,0.997560830507466,0.974855382110985 385 | 383,pexels-photo-700703_uH8OCGIi1J_0,0.986591339111328,0.98995384197665,0.98010752688172,0.992435746826738,0.987484319762801 386 | 384,pexels-photo-701747_0,0.970027923583984,0.926616044159265,0.863266158504751,0.8682676655406,0.993371515539891 387 | 385,pexels-photo-703836_0,0.995121002197266,0.995347314429146,0.990737723319357,0.996460151208356,0.994236960487206 388 | 386,pexels-photo-704955_0,0.970088958740234,0.980164080821062,0.961099783198639,0.98408505580136,0.976274227198968 389 | 387,pexels-photo-705121_0,0.991550445556641,0.954111334396818,0.912249425560574,0.943342892257271,0.965128463053774 390 | 388,pexels-photo-709575_0,0.997539520263672,0.994664703498135,0.989386035643173,0.992030623525335,0.997312808944033 391 | 389,pexels-photo-709807_0,0.997268676757812,0.995662341124156,0.991362150293759,0.994746335145081,0.996580035654948 392 | 390,pexels-photo-712940_0,0.874835968017578,0.65820094796604,0.490536155148052,0.963435088896344,0.499841782165686 393 | 391,pexels-photo-713133_0,0.720001220703125,0.756587717960112,0.608476954014711,0.645746180364896,0.913365841160033 394 | 392,pexels-photo-713955_0,0.996997833251953,0.989422185185683,0.979065808373677,0.983276787860978,0.99564488206016 395 | 393,pexels-photo-714025_0,0.995182037353516,0.93801226993865,0.883260929845642,0.954454654414702,0.922126797259481 396 | 394,pexels-photo-714031_0,0.993022918701172,0.938373934431753,0.883902500952139,0.914974702674289,0.963001383125864 397 | 395,pexels-photo-714037_0,0.995349884033203,0.871182500264187,0.771765586968732,0.872011846837318,0.87035472972973 398 | 396,pexels-photo-714063_0,0.996189117431641,0.987419878858093,0.975152344235791,0.98073844306584,0.994192975782934 399 | 397,pexels-photo-714155_0,0.974929809570312,0.981559837933085,0.963787441317141,0.964648525826982,0.999074676993728 400 | 398,pexels-photo-716543_0,0.988712310791016,0.973444973929587,0.948263803895514,0.955615463227261,0.991952446273434 401 | 399,pexels-photo-716966_0,0.979232788085938,0.965947758206565,0.93413825643011,0.936756159996118,0.997017238039899 402 | 400,pexels-photo-720276_0,0.978347778320312,0.984149855907781,0.968794326241135,0.972006023531488,0.996600967112519 403 | 401,pexels-photo-722231_0,0.992038726806641,0.989654539956675,0.979520945156954,0.993154909959208,0.986178757372482 404 | 402,pexels-photo-722904_0,0.986171722412109,0.97617122535776,0.95345164107042,0.992899360808751,0.959997414183205 405 | 403,pexels-photo-725458_0,0.995254516601562,0.990427381996706,0.981036296285004,0.98968105065666,0.991174839822573 406 | 404,pexels-photo-730055_0,0.996368408203125,0.997263943255563,0.99454281767164,0.997648154750267,0.996880027579867 407 | 405,pexels-photo-730837_0,0.996547698974609,0.987789905422361,0.97587438686287,0.998881248635669,0.976942168610392 408 | 406,pexels-photo-731794_sNHLIf9pHk_0,0.950054168701172,0.972639638566553,0.9467365834608,0.997839015208359,0.948681678841638 409 | 407,pexels-photo-732629_0,0.994968414306641,0.981088792349492,0.962879576731489,0.995866806380254,0.966742957249018 410 | 408,pexels-photo-732843_0,0.99200439453125,0.991538082665181,0.983218171773541,0.984084880636605,0.999105043486751 411 | 409,pexels-photo-733697_0,0.985305786132812,0.959543764572437,0.92223366240688,0.935051377573996,0.985353753235548 412 | 410,pexels-photo-736509_0,0.966281890869141,0.711002125224783,0.551592938311688,0.975331898098314,0.559397026290065 413 | 411,pexels-photo-743861_0,0.992877960205078,0.994090182485795,0.988249806471103,0.991012824396648,0.997186712136511 414 | 412,pexels-photo-743937_7TZxmJGKVc_0,0.988613128662109,0.985904984960595,0.972201786163288,0.977774447639296,0.994171872619229 415 | 413,pexels-photo-745136_0,0.984710693359375,0.974173260819136,0.949646976054675,0.980669434353918,0.967762585138526 416 | 414,pexels-photo-746801_0,0.981094360351562,0.986953912246896,0.974243841596508,0.978622774184455,0.995428116288331 417 | 415,pexels-photo-747007_0,0.985454559326172,0.984972510690287,0.97038998555609,0.978896243782069,0.991124682741117 418 | 416,pexels-photo-749074_0,0.983688354492188,0.963187437583939,0.928988973030424,0.931991603078871,0.996543984038194 419 | 417,pexels-photo-751160_0,0.994724273681641,0.997240121410711,0.99449543475319,0.994966690160755,0.999523965725532 420 | 418,pexels-photo-751245_0,0.993808746337891,0.963594356340145,0.929746342308025,0.971944431874745,0.95538653144738 421 | 419,pexels-photo-752398_0,0.956203460693359,0.857755256278418,0.75093823893095,0.964072856904139,0.772557859263062 422 | 420,pexels-photo-753603_0,0.992393493652344,0.926761184162198,0.863518138261465,0.977908689248895,0.880698080279232 423 | 421,pexels-photo-755401_0,0.996822357177734,0.994666649593116,0.989389886638645,0.992449021311391,0.996894210654654 424 | 422,pexels-photo-756453_0,0.9874267578125,0.98690629419523,0.974151046976708,0.992560629669583,0.981316016084817 425 | 423,pexels-photo-756565_0,0.950225830078125,0.798797224363917,0.66499781765899,0.684632057517446,0.958657191501962 426 | 424,pexels-photo-757056_0,0.987201690673828,0.979698779506357,0.960205437206434,0.99838439149524,0.961699751713651 427 | 425,pexels-photo-758855_0,0.975582122802734,0.756606715084224,0.608501529051988,0.955440314990877,0.626274707289437 428 | 426,pexels-photo-758857_0,0.969615936279297,0.972407653108946,0.946297095390922,0.990619706380576,0.954853150278596 429 | 427,pexels-photo-763219_0,0.988784790039062,0.991721154983358,0.983578262982388,0.993932244335821,0.989519881318978 430 | 428,pexels-photo-764340_0,0.991245269775391,0.993780673204864,0.987638228307649,0.989354182516686,0.998246951219512 431 | 429,pexels-photo-768108_0,0.991531372070312,0.983915840723352,0.968340891588945,0.972905592251372,0.995178144831528 432 | 430,pexels-photo-769726_0,0.980731964111328,0.968292728859204,0.938534365264798,0.987882824608369,0.949464483565185 433 | 431,pexels-photo-769729_0,0.994857788085938,0.991652320382457,0.98344285451084,0.98813990225601,0.995189797896935 434 | 432,pexels-photo-769731_0,0.994846343994141,0.995184853852651,0.990415856755721,0.994933082481721,0.995436752679125 435 | 433,pexels-photo-769750_0,0.990837097167969,0.990262609555777,0.980713023928055,0.988467421477303,0.992064330097876 436 | 434,pexels-photo-769773_0,0.983467102050781,0.982213357628886,0.965048387096774,0.995126900176296,0.969630673991606 437 | 435,pexels-photo-769774_0,0.995609283447266,0.996567304394506,0.993158094966355,0.995875280892179,0.997260290325661 438 | 436,pexels-photo-770136_0,0.983688354492188,0.954506766533322,0.912972686937762,0.9326375317061,0.977426243081884 439 | 437,pexels-photo-770158_0,0.948501586914062,0.928196072591111,0.866012942157291,0.979688991186212,0.88184583666003 440 | 438,pexels-photo-773327_0,0.991199493408203,0.904830658801205,0.826201597107127,0.847199691000386,0.970874645892351 441 | 439,pexels-photo-774557_0,0.977024078369141,0.985924445846625,0.972239634225033,0.973087302502595,0.999104816937432 442 | 440,pexels-photo-775325_0,0.981586456298828,0.982207297698781,0.965036687213438,0.966282518983761,0.998665767183869 443 | 441,pexels-photo-775358_0,0.975292205810547,0.970663502171816,0.942999207955646,0.943896337273832,0.998993110263749 444 | 442,pexels-photo-776216_0,0.996372222900391,0.994014764838789,0.988100749490122,0.994208737252927,0.993820868098816 445 | 443,pexels-photo-776944_0,0.979839324951172,0.948771385644356,0.902535730751498,0.985958055482805,0.914287849349873 446 | 444,pexels-photo-777155_yBOc5wst95_0,0.992694854736328,0.990058506855218,0.980312734525192,0.99362287429143,0.986519620521628 447 | 445,pexels-photo-783344_0,0.994728088378906,0.94341167799525,0.892884824058286,0.974042445252389,0.914648670107185 448 | 446,pexels-photo-784028_0,0.980968475341797,0.985801332494714,0.972000224492087,0.972425913240727,0.999549832918756 449 | 447,pexels-photo-784155_0,0.994762420654297,0.969725033626601,0.9412293468025,0.985081981901263,0.954839550132442 450 | 448,pexels-photo-784375_0,0.982620239257812,0.969968228019986,0.9416876783863,0.983044733044733,0.957235044625433 451 | 449,pexels-photo-786265_0,0.994590759277344,0.966461684011353,0.935100004576868,0.97685871384174,0.956283641469694 452 | 450,pexels-photo-787472_0,0.989822387695312,0.973734987202205,0.948814365743228,0.984042341517768,0.963641323409064 453 | 451,pexels-photo-787581_0,0.978103637695312,0.665462175078681,0.498646169971176,0.516838674633351,0.934064136125654 454 | 452,pexels-photo-788218_HmHgpPsHsX_0,0.935050964355469,0.922982973564695,0.856980856300453,0.983847014349637,0.869210714650854 455 | 453,pexels-photo-788741_0,0.992267608642578,0.994668946018805,0.989394430898988,0.990737005349275,0.998632220450153 456 | 454,pexels-photo-791085_0,0.993972778320312,0.950553921261814,0.905767280968569,0.980945614261723,0.921988829528898 457 | 455,pexels-photo-792537_yBAzy3yZcW_0,0.978569030761719,0.973898903549526,0.949125682565268,0.979917538496059,0.967953749965368 458 | 456,pexels-photo-792776_fHzosf2RPV_0,0.992179870605469,0.966576450255976,0.935314905969961,0.967522929790776,0.965631820699091 459 | 457,pexels-photo-792906_G4bGW1y54r_0,0.998378753662109,0.967041488949205,0.936186186186186,0.954677691012096,0.97972972972973 460 | 458,pexels-photo-793253_0,0.993335723876953,0.991981567243302,0.984090702121847,0.997968286804023,0.986066246920339 461 | 459,pexels-photo-794432_0,0.983436584472656,0.985511598729345,0.971437029240535,0.986070953999426,0.984952877695442 462 | 460,pexels-photo-795160_0,0.996128082275391,0.973584905660377,0.948529411764706,0.990154041607114,0.957561175386505 463 | 461,pexels-photo-795771_0,0.991477966308594,0.991980471694727,0.984088545747212,0.994007237358005,0.989961954302173 464 | 462,pexels-photo-795825_NWYTnhd29j_0,0.994335174560547,0.988536447919963,0.977332743119686,0.982717868434785,0.994424340317145 465 | 463,pexels-photo-796060_0,0.959056854248047,0.888549681733695,0.799450652117045,0.812414552635577,0.980430348999748 466 | 464,pexels-photo-797366_0,0.992656707763672,0.988798826931693,0.977845806815435,0.991469946439199,0.986142061281337 467 | 465,pexels-photo-797408_0,0.743381500244141,0.456013520616514,0.2953481307677,0.295660927374536,0.996430717037141 468 | 466,pexels-photo-797770_0,0.995262145996094,0.995283878611136,0.990612032018867,0.992660425377204,0.997921235380117 469 | 467,pexels-photo-799965_0,0.988201141357422,0.989223184265082,0.978676171500665,0.990710950749195,0.987739879486216 470 | 468,pexels-photo-800212_0,0.874649047851563,0.647923541764882,0.47920628882972,0.970128661725543,0.486383012949409 471 | 469,pexels-photo-802457_0,0.914043426513672,0.954068185292769,0.912170537196848,0.919001598290968,0.991917025533214 472 | 470,pexels-photo-802522_0,0.983978271484375,0.95959906885473,0.922335842008913,0.941859586842404,0.978019607843137 473 | 471,pexels-photo-803968_cxuub1Q6aC_0,0.99725341796875,0.989537925021796,0.979292493528904,0.987042351508827,0.992046149812079 474 | 472,pexels-photo-804430_0,0.995521545410156,0.990129974946614,0.98045288045288,0.992901343854857,0.987374033769849 475 | 473,pexels-photo-804607_0,0.9984130859375,0.982317436028224,0.965249352602122,0.989382652624368,0.9753524098928 476 | 474,pexels-photo-805178_0,0.792461395263672,0.88421585799018,0.792461395263672,0.792461395263672,1 477 | 475,pexels-photo-807843_0,0.995800018310547,0.991271256986562,0.982693577289446,0.995525335201758,0.98705338112004 478 | 476,pexels-photo-808908_0,0.988609313964844,0.979517923531752,0.959858037802812,0.9690948328515,0.99016766284375 479 | 477,pexels-photo-808964_0,0.821006774902344,0.852404768645214,0.742774756600298,0.75011902784698,0.986990093240093 480 | 478,pexels-photo-811011_0,0.994808197021484,0.994100179898997,0.988269567240978,0.997555310023229,0.990668901522351 481 | 479,pexels-photo-812745_0,0.994438171386719,0.993390872332324,0.986868532211725,0.995358090185676,0.991431415128483 482 | 480,pexels-photo-813283_0,0.974170684814453,0.962117100735726,0.926999665779004,0.956407603919867,0.96789517527073 483 | 481,pexels-photo-813544_0,0.985569000244141,0.984982433854032,0.970409248771941,0.988329111100489,0.981658345136455 484 | 482,pexels-photo-813940_q7nmAaYz0A_0,0.992019653320312,0.994611608223737,0.989280974754954,0.990931113414972,0.998319544984488 485 | 483,pexels-photo-813961_0,0.844913482666016,0.818419348355256,0.692647892647893,0.969821426681203,0.70790579799728 486 | 484,pexels-photo-818556_0,0.983249664306641,0.971984917409418,0.945496747927114,0.960882508767061,0.983346888191782 487 | 485,pexels-photo-819150_0,0.993160247802734,0.980837670596031,0.962395922904302,0.99037423921958,0.971483010479517 488 | 486,pexels-photo-819482_0,0.995742797851562,0.995724301750891,0.991485011025232,0.993546956594873,0.997911211113586 489 | 487,pexels-photo-821382_0,0.988445281982422,0.987784073723054,0.975863003219329,0.979053908204952,0.99667133276906 490 | 488,pexels-photo-821419_0,0.993114471435547,0.994769889631632,0.98959420273145,0.992885485233044,0.996661460480401 491 | 489,pexels-photo-824113_0,0.980022430419922,0.982057510526694,0.964747537982054,0.967156363243739,0.997425012178996 492 | 490,pexels-photo-825706_0,0.996658325195312,0.989554516836783,0.979324994099599,0.985605700712589,0.993535102001724 493 | 491,pexels-photo-825860_wyhja5jIzr_0,0.976818084716797,0.856121410138031,0.748437305956865,0.95991505176533,0.772583539868387 494 | 492,pexels-photo-825996_0,0.990398406982422,0.992762270639894,0.985628557888306,0.996099204837909,0.989447619265976 495 | 493,pexels-photo-833052_0,0.969795227050781,0.935100488508573,0.87811148227398,0.981621379773192,0.892789507457781 496 | 494,pexels-photo-833169_0,0.990440368652344,0.981216645679679,0.963125910448639,0.978707815607291,0.983738371131852 497 | 495,pexels-photo-833185_KHjpHKhX3f_0,0.988147735595703,0.980993570725082,0.962696154354116,0.984516778605896,0.977495489345102 498 | 496,pexels-photo-835907_0,0.988529205322266,0.989814893220655,0.979835167414382,0.996317863815511,0.983396261971584 499 | 497,pexels-photo-835942_0,0.9962158203125,0.994750322812811,0.98955547600497,0.991831996623048,0.997685873211329 500 | 498,pexels-photo-835969_o4Lyl8nM5g_0,0.994949340820312,0.990253526103472,0.980695205878922,0.983793587643342,0.996798861817535 501 | 499,pexels-photo-835986_0,0.983020782470703,0.972158803034947,0.945825878458149,0.992502905603024,0.95263196606762 502 | 500,pexels-photo-838574_0,0.995571136474609,0.997664956446711,0.995340792346218,0.996068304672252,0.999266735158438 503 | 501,pexels-photo-839604_0,0.993446350097656,0.995344753770533,0.990732649340281,0.995274634759613,0.995414882662186 504 | 502,pexels-photo-840266_nUmtBFybka_0,0.980110168457031,0.957916996238842,0.919232914059112,0.951359497242529,0.964565521276942 505 | 503,pexels-photo-840667_0,0.996318817138672,0.963090457066361,0.928808557727776,0.988614055751865,0.938851603281134 506 | 504,pexels-photo-848203_0,0.890384674072266,0.8635130834596,0.759809084374007,0.783720168299076,0.96139567843129 507 | 505,pexels-photo-848305_0,0.974124908447266,0.975136086215428,0.951478604231941,0.978173100258128,0.972117872334205 508 | 506,pexels-photo-848607_0,0.96435546875,0.903868312757202,0.824598288031236,0.866532528504359,0.944566292521395 509 | 507,pexels-photo-848699_0,0.979061126708984,0.95695273348966,0.917458646616541,0.968628447139886,0.945555142272643 510 | 508,pexels-photo-852485_0,0.993747711181641,0.989462991893126,0.979145725446286,0.991675257731959,0.987260574492925 511 | 509,pexels-photo-852793_0,0.951820373535156,0.954904775166563,0.913701213512627,0.931082022002506,0.979978600847172 512 | 510,pexels-photo-852854_0,0.9774169921875,0.950618107806009,0.905883849223383,0.917642322248168,0.986052226279267 513 | 511,pexels-photo-852858_0,0.992347717285156,0.977349201689212,0.955701793127816,0.983054697437761,0.971709551394315 514 | 512,pexels-photo-852943_0,0.996845245361328,0.970370104976532,0.942445542487299,0.950716090985678,0.990853881612643 515 | 513,pexels-photo-853169_0,0.998889923095703,0.996592864920559,0.993208868144691,0.9977259939985,0.995462306738708 516 | 514,pexels-photo-855248_0,0.999111175537109,0.995261820030503,0.990568329015544,0.994756097560976,0.995768056968464 517 | 515,pexels-photo-859194_0,0.993244171142578,0.986881772997637,0.974103265240469,0.996917182963695,0.977046391223361 518 | 516,pexels-photo-859209_0,0.976367950439453,0.955570058737888,0.914920207652374,0.994105709254783,0.919910520719701 519 | 517,pexels-photo-860481_0,0.995677947998047,0.956921790046006,0.917401764234162,0.965771297006907,0.948232989224625 520 | 518,pexels-photo-860491_0,0.992790222167969,0.755940082644628,0.607639609715591,0.876872378669862,0.66432137993645 521 | 519,pexels-photo-860645_0,0.994403839111328,0.995733641992363,0.99150353295494,0.995690206707225,0.995777081067247 522 | 520,pexels-photo-863075_0,0.966335296630859,0.979895250267114,0.960582970056457,0.960861931079469,0.999697854300695 523 | 521,pexels-photo-864078_0,0.970558166503906,0.977694157360524,0.956361703691558,0.989261964779712,0.966393756391871 524 | 522,pexels-photo-866019_0,0.978275299072266,0.984816451022057,0.970087086235332,0.989769560557342,0.979912668389246 525 | 523,pexels-photo-866821_0,0.994331359863281,0.987595164952584,0.975494318837712,0.991684688762594,0.983539231498262 526 | 524,pexels-photo-867852_0,0.998748779296875,0.994150169431068,0.988368381857513,0.990299886299034,0.998030509202893 527 | 525,pexels-photo-868866_0,0.991657257080078,0.984685195689166,0.969832402234637,0.977694960507287,0.99177610698114 528 | 526,pexels-photo-873513_0,0.995967864990234,0.994647640556402,0.989352271582553,0.997369810707612,0.991940289462787 529 | 527,pexels-photo-874283_0,0.934795379638672,0.777443589443121,0.635916332964131,0.69981950727831,0.8744361783141 530 | 528,pexels-photo-875722_0,0.992733001708984,0.989995851297913,0.98018988592286,0.9887133656408,0.991281668366864 531 | 529,pexels-photo-878119_0,0.985187530517578,0.964729819334563,0.931862848318944,0.945450337374708,0.984811957569913 532 | 530,pexels-photo-879471_0,0.925167083740234,0.925151379874775,0.860727141061958,0.928271722152461,0.922051945088793 533 | 531,pexels-photo-879651_0,0.990146636962891,0.987149317665086,0.974624724929268,0.991396022784051,0.982938839405138 534 | 532,pexels-photo-880470_0,0.987926483154297,0.963191254288539,0.92899607403253,0.958409516976416,0.968020945345738 535 | 533,pexels-photo-881638_0,0.996894836425781,0.993913745663357,0.987901128138052,0.990226605682275,0.997628446632544 536 | 534,pexels-photo-883090_0,0.978145599365234,0.930602158613254,0.870211368115811,0.886744540375825,0.979023830763349 537 | 535,pexels-photo-884417_0,0.993427276611328,0.996026612243016,0.992084675140918,0.994845099619947,0.997210934613964 538 | 536,pexels-photo-884421_0,0.996665954589844,0.992426999393467,0.984967837363696,0.988828455495122,0.996051830593965 539 | 537,pexels-photo-9058_0,0.960117340087891,0.789124427681075,0.651697371489489,0.984647908592138,0.65838718362951 540 | 538,pexels-photo-91626_0,0.995594024658203,0.975385205549517,0.951953076251092,0.959175119456786,0.992152612182961 541 | 539,pexels-photo-91950_0,0.9881591796875,0.987564800051279,0.975435069919831,0.982432507831244,0.992750996737948 542 | 540,pexels-photo-93140_0,0.99737548828125,0.995925377554042,0.99188382545506,0.994182540527119,0.997674335821161 543 | 541,photographer-ocean-woman-with-camera-center-591670_0,0.954715728759766,0.920628765135762,0.852930609413135,0.963271816540975,0.881601188341956 544 | 542,plank-fitness-muscular-exercising-163437_0,0.992130279541016,0.985760727769687,0.971921276132404,0.974986687784165,0.99677554438861 545 | 543,portrait-child-hands-57449_0,0.994853973388672,0.996949847718491,0.993918245713693,0.994577378374477,0.999333662724549 546 | 544,portrait-of-a-girl-girl-hair-makeup-159072_0,0.9952392578125,0.990810150071428,0.981787668734039,0.982863403944485,0.998886447321535 547 | 545,portrait-studio-female-underwear-104840_0,0.978668212890625,0.970477678759978,0.942648506727929,0.943868224855717,0.998631000239032 548 | 546,portrait-sunset-beauty-young-women_0,0.980236053466797,0.98234771024487,0.965307816957052,0.990368431538234,0.97445586048398 549 | 547,pylon-flight-girl-model-163497_0,0.969898223876953,0.96993389342935,0.941622957247379,0.97088459866208,0.968985048265782 550 | 548,review-viewing-platform-view-sky-160407_0,0.990264892578125,0.986704871060172,0.973758624589978,0.988208162456042,0.985206146419617 551 | 549,smile-color-laugh-black-157907_0,0.989326477050781,0.994188944456444,0.988445035453671,0.989933121848931,0.998481517481321 552 | 550,soccer-football-soccer-player-goal-keeper-159636_0,0.977615356445312,0.972694022280338,0.946839640161981,0.950931688321141,0.995475759596152 553 | 551,softball-player-female-youth-163375_0,0.989154815673828,0.992873990189517,0.98584882181362,0.987746613736559,0.998054876666079 554 | 552,soldier-military-uniform-american_0,0.981147766113281,0.978910984040283,0.9586930901614,0.985555937446297,0.97235503560529 555 | 553,sunglasses-white-dress-fashion-model-157887_0,0.975791931152344,0.982149286646564,0.964924692552162,0.981442545536317,0.982857046345088 556 | 554,tea-summer-pretty-young-woman-vintage-37832_0,0.893501281738281,0.813285001538235,0.685324616771867,0.72357491372129,0.928388200085507 557 | 555,tourist-girl-backpack-vacation-163259_0,0.990325927734375,0.994140372280449,0.98834901499559,0.988976030451532,0.999358932669349 558 | 556,tulips-yellow-blonde-pretty-young-woman-37606_0,0.98577880859375,0.988636294358993,0.977527954429006,0.980340831464342,0.997073344687444 559 | 557,vintage-woman-on-bed-retro-bedroom-37738_0,0.933490753173828,0.873355657410165,0.775183102950278,0.975149637463706,0.790805051302289 560 | 558,water-splashing-childhood-child-160976_0,0.988430023193359,0.9801641542134,0.9610999243289,0.978315077614006,0.98202023378938 561 | 559,wedding-dresses-character-fashion-individuality-157997_0,0.900753021240234,0.918941317589145,0.850038330518586,0.957039209832959,0.883760509615212 562 | 560,wildernessculture-rei1440project-welltravelled-awesomeearth_0,0.997577667236328,0.94656231591349,0.89854609362518,0.917455138662316,0.977576916391448 563 | 561,woman-poses-e-learning-female-159750_0,0.988040924072266,0.991298023943619,0.982746190127629,0.996834718725402,0.985822494092706 564 | 562,woman-pregnant-pier-belly-54634_0,0.997200012207031,0.997425862020593,0.994864942388011,0.997376892810302,0.997474836039701 565 | 563,women-modeling-style-skin_0,0.981113433837891,0.93627974620008,0.880193587416818,0.888340741464368,0.989687916632656 566 | 564,women-sexy-outdoors-girl-48843_0,0.992816925048828,0.992527748125985,0.985166337117243,0.990982281530318,0.994078042653991 567 | 565,young-girl-ballerina-dance-591679_0,0.994487762451172,0.988787236849252,0.977823137603978,0.981332306507509,0.996356300628655 568 | 566,young-woman-pretty-shooting-157717_0,0.9683837890625,0.973640521337565,0.948634997366056,0.963697720247052,0.98379062787215 569 | -------------------------------------------------------------------------------- /metrics.py: -------------------------------------------------------------------------------- 1 | 2 | import numpy as np 3 | import tensorflow as tf 4 | from tensorflow.keras import backend as K 5 | 6 | def iou(y_true, y_pred): 7 | def f(y_true, y_pred): 8 | intersection = (y_true * y_pred).sum() 9 | union = y_true.sum() + y_pred.sum() - intersection 10 | x = (intersection + 1e-15) / (union + 1e-15) 11 | x = x.astype(np.float32) 12 | return x 13 | return tf.numpy_function(f, [y_true, y_pred], tf.float32) 14 | 15 | smooth = 1e-15 16 | def dice_coef(y_true, y_pred): 17 | y_true = tf.keras.layers.Flatten()(y_true) 18 | y_pred = tf.keras.layers.Flatten()(y_pred) 19 | intersection = tf.reduce_sum(y_true * y_pred) 20 | return (2. * intersection + smooth) / (tf.reduce_sum(y_true) + tf.reduce_sum(y_pred) + smooth) 21 | 22 | def dice_loss(y_true, y_pred): 23 | return 1.0 - dice_coef(y_true, y_pred) 24 | -------------------------------------------------------------------------------- /model.py: -------------------------------------------------------------------------------- 1 | 2 | import os 3 | os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" 4 | 5 | from tensorflow.keras.layers import Conv2D, BatchNormalization, Activation, MaxPool2D, Conv2DTranspose, Concatenate, Input 6 | from tensorflow.keras.layers import AveragePooling2D, GlobalAveragePooling2D, UpSampling2D, Reshape, Dense 7 | from tensorflow.keras.models import Model 8 | from tensorflow.keras.applications import ResNet50 9 | import tensorflow as tf 10 | 11 | def SqueezeAndExcite(inputs, ratio=8): 12 | init = inputs 13 | filters = init.shape[-1] 14 | se_shape = (1, 1, filters) 15 | 16 | se = GlobalAveragePooling2D()(init) 17 | se = Reshape(se_shape)(se) 18 | se = Dense(filters // ratio, activation='relu', kernel_initializer='he_normal', use_bias=False)(se) 19 | se = Dense(filters, activation='sigmoid', kernel_initializer='he_normal', use_bias=False)(se) 20 | x = init * se 21 | return x 22 | 23 | def ASPP(inputs): 24 | """ Image Pooling """ 25 | shape = inputs.shape 26 | y1 = AveragePooling2D(pool_size=(shape[1], shape[2]))(inputs) 27 | y1 = Conv2D(256, 1, padding="same", use_bias=False)(y1) 28 | y1 = BatchNormalization()(y1) 29 | y1 = Activation("relu")(y1) 30 | y1 = UpSampling2D((shape[1], shape[2]), interpolation="bilinear")(y1) 31 | 32 | """ 1x1 conv """ 33 | y2 = Conv2D(256, 1, padding="same", use_bias=False)(inputs) 34 | y2 = BatchNormalization()(y2) 35 | y2 = Activation("relu")(y2) 36 | 37 | """ 3x3 conv rate=6 """ 38 | y3 = Conv2D(256, 3, padding="same", use_bias=False, dilation_rate=6)(inputs) 39 | y3 = BatchNormalization()(y3) 40 | y3 = Activation("relu")(y3) 41 | 42 | """ 3x3 conv rate=12 """ 43 | y4 = Conv2D(256, 3, padding="same", use_bias=False, dilation_rate=12)(inputs) 44 | y4 = BatchNormalization()(y4) 45 | y4 = Activation("relu")(y4) 46 | 47 | """ 3x3 conv rate=18 """ 48 | y5 = Conv2D(256, 3, padding="same", use_bias=False, dilation_rate=18)(inputs) 49 | y5 = BatchNormalization()(y5) 50 | y5 = Activation("relu")(y5) 51 | 52 | y = Concatenate()([y1, y2, y3, y4, y5]) 53 | y = Conv2D(256, 1, padding="same", use_bias=False)(y) 54 | y = BatchNormalization()(y) 55 | y = Activation("relu")(y) 56 | 57 | return y 58 | 59 | def deeplabv3_plus(shape): 60 | """ Input """ 61 | inputs = Input(shape) 62 | 63 | """ Encoder """ 64 | encoder = ResNet50(weights="imagenet", include_top=False, input_tensor=inputs) 65 | 66 | image_features = encoder.get_layer("conv4_block6_out").output 67 | x_a = ASPP(image_features) 68 | x_a = UpSampling2D((4, 4), interpolation="bilinear")(x_a) 69 | 70 | x_b = encoder.get_layer("conv2_block2_out").output 71 | x_b = Conv2D(filters=48, kernel_size=1, padding='same', use_bias=False)(x_b) 72 | x_b = BatchNormalization()(x_b) 73 | x_b = Activation('relu')(x_b) 74 | 75 | x = Concatenate()([x_a, x_b]) 76 | x = SqueezeAndExcite(x) 77 | 78 | x = Conv2D(filters=256, kernel_size=3, padding='same', use_bias=False)(x) 79 | x = BatchNormalization()(x) 80 | x = Activation('relu')(x) 81 | 82 | x = Conv2D(filters=256, kernel_size=3, padding='same', use_bias=False)(x) 83 | x = BatchNormalization()(x) 84 | x = Activation('relu')(x) 85 | x = SqueezeAndExcite(x) 86 | 87 | x = UpSampling2D((4, 4), interpolation="bilinear")(x) 88 | x = Conv2D(1, 1)(x) 89 | x = Activation("sigmoid")(x) 90 | 91 | model = Model(inputs, x) 92 | return model 93 | 94 | if __name__ == "__main__": 95 | model = deeplabv3_plus((512, 512, 3)) 96 | -------------------------------------------------------------------------------- /new_data/README.md: -------------------------------------------------------------------------------- 1 | # new_data 2 | This folder contains the augmenated data. 3 | -------------------------------------------------------------------------------- /people_segmentation/README.md: -------------------------------------------------------------------------------- 1 | # people_segmentation 2 | The folder contains the dataset. Download the dataset: [Person Segmentation](https://www.kaggle.com/nikhilroxtomar/person-segmentation/download) 3 | -------------------------------------------------------------------------------- /predict.py: -------------------------------------------------------------------------------- 1 | 2 | import os 3 | os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" 4 | 5 | import numpy as np 6 | import cv2 7 | import pandas as pd 8 | from glob import glob 9 | from tqdm import tqdm 10 | import tensorflow as tf 11 | from tensorflow.keras.utils import CustomObjectScope 12 | from metrics import dice_loss, dice_coef, iou 13 | from train import create_dir 14 | 15 | """ Global parameters """ 16 | H = 512 17 | W = 512 18 | 19 | if __name__ == "__main__": 20 | """ Seeding """ 21 | np.random.seed(42) 22 | tf.random.set_seed(42) 23 | 24 | """ Directory for storing files """ 25 | create_dir("test_images/mask") 26 | 27 | """ Loading model """ 28 | with CustomObjectScope({'iou': iou, 'dice_coef': dice_coef, 'dice_loss': dice_loss}): 29 | model = tf.keras.models.load_model("files/model.h5") 30 | 31 | """ Load the dataset """ 32 | data_x = glob("test_images/image/*") 33 | 34 | for path in tqdm(data_x, total=len(data_x)): 35 | """ Extracting name """ 36 | name = path.split("/")[-1].split(".")[0] 37 | 38 | """ Reading the image """ 39 | image = cv2.imread(path, cv2.IMREAD_COLOR) 40 | h, w, _ = image.shape 41 | x = cv2.resize(image, (W, H)) 42 | x = x/255.0 43 | x = x.astype(np.float32) 44 | x = np.expand_dims(x, axis=0) 45 | 46 | """ Prediction """ 47 | y = model.predict(x)[0] 48 | y = cv2.resize(y, (w, h)) 49 | y = np.expand_dims(y, axis=-1) 50 | 51 | """ Save the image """ 52 | masked_image = image * y 53 | line = np.ones((h, 10, 3)) * 128 54 | cat_images = np.concatenate([image, line, masked_image], axis=1) 55 | cv2.imwrite(f"test_images/mask/{name}.png", cat_images) 56 | -------------------------------------------------------------------------------- /results/football-american-football-referee-referee-football-official-163039_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/football-american-football-referee-referee-football-official-163039_0.png -------------------------------------------------------------------------------- /results/girl-bicycle-garden-people-630770_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-bicycle-garden-people-630770_0.png -------------------------------------------------------------------------------- /results/girl-blonde-wreath-water-160526_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-blonde-wreath-water-160526_0.png -------------------------------------------------------------------------------- /results/girl-cascada-water-waves-160588_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-cascada-water-waves-160588_0.png -------------------------------------------------------------------------------- /results/girl-cat-kitten-fashion_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-cat-kitten-fashion_0.png -------------------------------------------------------------------------------- /results/girl-dance-dress-flowers-163508_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-dance-dress-flowers-163508_0.png -------------------------------------------------------------------------------- /results/girl-forest-nature-stroll-160627_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-forest-nature-stroll-160627_0.png -------------------------------------------------------------------------------- /results/girl-in-leather-jacket-beautiful-hair-model-160974_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-in-leather-jacket-beautiful-hair-model-160974_0.png -------------------------------------------------------------------------------- /results/girl-model-blonde-slav-157666_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-model-blonde-slav-157666_0.png -------------------------------------------------------------------------------- /results/girl-park-woman-greens-157854_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-park-woman-greens-157854_0.png -------------------------------------------------------------------------------- /results/girl-peasant-woman-tradition-water-158007_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-peasant-woman-tradition-water-158007_0.png -------------------------------------------------------------------------------- /results/girl-portrait-face-woman-122426_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-portrait-face-woman-122426_0.png -------------------------------------------------------------------------------- /results/girl-rustic-grass-meadow-89779_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-rustic-grass-meadow-89779_0.png -------------------------------------------------------------------------------- /results/girl-sunset-lake-water-160534_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-sunset-lake-water-160534_0.png -------------------------------------------------------------------------------- /results/girl-water-wet-summer-122436_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-water-wet-summer-122436_0.png -------------------------------------------------------------------------------- /results/girl-wild-water-rock-160440_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-wild-water-rock-160440_0.png -------------------------------------------------------------------------------- /results/girl-woman-portrait-young-115015_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-woman-portrait-young-115015_0.png -------------------------------------------------------------------------------- /results/girl-young-blue-eyes-eyes-39295_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girl-young-blue-eyes-eyes-39295_0.png -------------------------------------------------------------------------------- /results/girls-children-kids-friends-50581_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girls-children-kids-friends-50581_0.png -------------------------------------------------------------------------------- /results/girls-women-happy-sexy-53364_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/girls-women-happy-sexy-53364_0.png -------------------------------------------------------------------------------- /results/glamour-style-hat-woman-37649_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/glamour-style-hat-woman-37649_0.png -------------------------------------------------------------------------------- /results/hammer-throw-athlete-track-and-field-training-37636_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/hammer-throw-athlete-track-and-field-training-37636_0.png -------------------------------------------------------------------------------- /results/hanging-out-trainer-young-79990_fk4fhyJJPf_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/hanging-out-trainer-young-79990_fk4fhyJJPf_0.png -------------------------------------------------------------------------------- /results/hiker-traveler-trip-travel-160483_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/hiker-traveler-trip-travel-160483_0.png -------------------------------------------------------------------------------- /results/james-stewart-man-person-actor-53487_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/james-stewart-man-person-actor-53487_0.png -------------------------------------------------------------------------------- /results/kickboxer-girl-kickboxing-athletic-girl-160920_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/kickboxer-girl-kickboxing-athletic-girl-160920_0.png -------------------------------------------------------------------------------- /results/love-old-people-the-heart-of-pension-160936_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/love-old-people-the-heart-of-pension-160936_0.png -------------------------------------------------------------------------------- /results/man-selling-razors-black-and-white-older-68655_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/man-selling-razors-black-and-white-older-68655_0.png -------------------------------------------------------------------------------- /results/man-stress-male-face_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/man-stress-male-face_0.png -------------------------------------------------------------------------------- /results/maternity-baby-belly-pregnant-pregnancy-160776_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/maternity-baby-belly-pregnant-pregnancy-160776_0.png -------------------------------------------------------------------------------- /results/model-fashion-girl-female-39678_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/model-fashion-girl-female-39678_0.png -------------------------------------------------------------------------------- /results/motorbike-racing-motorcycle-race-51388_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/motorbike-racing-motorcycle-race-51388_0.png -------------------------------------------------------------------------------- /results/motorcycle-stunt-jump-motocross-38277_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/motorcycle-stunt-jump-motocross-38277_0.png -------------------------------------------------------------------------------- /results/norway-mountain-sky-blue_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/results/norway-mountain-sky-blue_0.png -------------------------------------------------------------------------------- /test_images/image/wp5815325.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp5815325.jpg -------------------------------------------------------------------------------- /test_images/image/wp6244146.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp6244146.jpg -------------------------------------------------------------------------------- /test_images/image/wp8058382.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8058382.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725152.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725152.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725153.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725153.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725159.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725159.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725161.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725161.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725163.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725163.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725167.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725167.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725175.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725175.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725177.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725177.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725190.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725190.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725197.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725197.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725209.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725209.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725227.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725227.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725377.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725377.jpg -------------------------------------------------------------------------------- /test_images/image/wp8725382.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/image/wp8725382.jpg -------------------------------------------------------------------------------- /test_images/mask/wp5815325.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/mask/wp5815325.png -------------------------------------------------------------------------------- /test_images/mask/wp6244146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/mask/wp6244146.png -------------------------------------------------------------------------------- /test_images/mask/wp8058382.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/mask/wp8058382.png -------------------------------------------------------------------------------- /test_images/mask/wp8725159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/mask/wp8725159.png -------------------------------------------------------------------------------- /test_images/mask/wp8725197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilroxtomar/Human-Image-Segmentation-with-DeepLabV3Plus-in-TensorFlow/a67022b652f7fa1e24e37044c133a54f49d87ed8/test_images/mask/wp8725197.png -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | 2 | import os 3 | os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" 4 | 5 | import numpy as np 6 | import cv2 7 | from glob import glob 8 | from sklearn.utils import shuffle 9 | import tensorflow as tf 10 | from tensorflow.keras.callbacks import ModelCheckpoint, CSVLogger, ReduceLROnPlateau, EarlyStopping, TensorBoard 11 | from tensorflow.keras.optimizers import Adam 12 | from tensorflow.keras.metrics import Recall, Precision 13 | from model import deeplabv3_plus 14 | from metrics import dice_loss, dice_coef, iou 15 | 16 | """ Global parameters """ 17 | H = 512 18 | W = 512 19 | 20 | """ Creating a directory """ 21 | def create_dir(path): 22 | if not os.path.exists(path): 23 | os.makedirs(path) 24 | 25 | def shuffling(x, y): 26 | x, y = shuffle(x, y, random_state=42) 27 | return x, y 28 | 29 | def load_data(path): 30 | x = sorted(glob(os.path.join(path, "image", "*png"))) 31 | y = sorted(glob(os.path.join(path, "mask", "*png"))) 32 | return x, y 33 | 34 | def read_image(path): 35 | path = path.decode() 36 | x = cv2.imread(path, cv2.IMREAD_COLOR) 37 | x = x/255.0 38 | x = x.astype(np.float32) 39 | return x 40 | 41 | def read_mask(path): 42 | path = path.decode() 43 | x = cv2.imread(path, cv2.IMREAD_GRAYSCALE) 44 | x = x.astype(np.float32) 45 | x = np.expand_dims(x, axis=-1) 46 | return x 47 | 48 | def tf_parse(x, y): 49 | def _parse(x, y): 50 | x = read_image(x) 51 | y = read_mask(y) 52 | return x, y 53 | 54 | x, y = tf.numpy_function(_parse, [x, y], [tf.float32, tf.float32]) 55 | x.set_shape([H, W, 3]) 56 | y.set_shape([H, W, 1]) 57 | return x, y 58 | 59 | def tf_dataset(X, Y, batch=2): 60 | dataset = tf.data.Dataset.from_tensor_slices((X, Y)) 61 | dataset = dataset.map(tf_parse) 62 | dataset = dataset.batch(batch) 63 | dataset = dataset.prefetch(10) 64 | return dataset 65 | 66 | 67 | if __name__ == "__main__": 68 | """ Seeding """ 69 | np.random.seed(42) 70 | tf.random.set_seed(42) 71 | 72 | """ Directory for storing files """ 73 | create_dir("files") 74 | 75 | """ Hyperparameters """ 76 | batch_size = 2 77 | lr = 1e-4 78 | num_epochs = 20 79 | model_path = os.path.join("files", "model.h5") 80 | csv_path = os.path.join("files", "data.csv") 81 | 82 | """ Dataset """ 83 | dataset_path = "new_data" 84 | train_path = os.path.join(dataset_path, "train") 85 | valid_path = os.path.join(dataset_path, "test") 86 | 87 | train_x, train_y = load_data(train_path) 88 | train_x, train_y = shuffling(train_x, train_y) 89 | valid_x, valid_y = load_data(valid_path) 90 | 91 | print(f"Train: {len(train_x)} - {len(train_y)}") 92 | print(f"Valid: {len(valid_x)} - {len(valid_y)}") 93 | 94 | train_dataset = tf_dataset(train_x, train_y, batch=batch_size) 95 | valid_dataset = tf_dataset(valid_x, valid_y, batch=batch_size) 96 | 97 | """ Model """ 98 | model = deeplabv3_plus((H, W, 3)) 99 | model.compile(loss=dice_loss, optimizer=Adam(lr), metrics=[dice_coef, iou, Recall(), Precision()]) 100 | 101 | callbacks = [ 102 | ModelCheckpoint(model_path, verbose=1, save_best_only=True), 103 | ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=5, min_lr=1e-7, verbose=1), 104 | CSVLogger(csv_path), 105 | TensorBoard(), 106 | EarlyStopping(monitor='val_loss', patience=20, restore_best_weights=False), 107 | ] 108 | 109 | model.fit( 110 | train_dataset, 111 | epochs=num_epochs, 112 | validation_data=valid_dataset, 113 | callbacks=callbacks 114 | ) 115 | --------------------------------------------------------------------------------