diff --git a/annotations/annotations_test.csv b/annotations/annotations_test.csv new file mode 100644 index 0000000..be54e9e --- /dev/null +++ b/annotations/annotations_test.csv @@ -0,0 +1,3 @@ +test1.jpg,0,0,10,10,object,3000,2000 +test2.jpg,0,0,10,10,object,427,367 +test3.jpg,0,0,10,10,object,363,481 \ No newline at end of file diff --git a/images/test1.jpg b/images/test1.jpg new file mode 100644 index 0000000..5b99705 Binary files /dev/null and b/images/test1.jpg differ diff --git a/images/test2.jpg b/images/test2.jpg new file mode 100644 index 0000000..5ba0a4e Binary files /dev/null and b/images/test2.jpg differ diff --git a/images/test3.jpg b/images/test3.jpg new file mode 100644 index 0000000..a878e7d Binary files /dev/null and b/images/test3.jpg differ diff --git a/object_detector_retinanet/keras_retinanet/backend/tensorflow_backend.py b/object_detector_retinanet/keras_retinanet/backend/tensorflow_backend.py index 9625c9a..5d38da8 100644 --- a/object_detector_retinanet/keras_retinanet/backend/tensorflow_backend.py +++ b/object_detector_retinanet/keras_retinanet/backend/tensorflow_backend.py @@ -53,7 +53,7 @@ def resize_images(images, size, method='bilinear', align_corners=False): 'bicubic' : tensorflow.image.ResizeMethod.BICUBIC, 'area' : tensorflow.image.ResizeMethod.AREA, } - return tensorflow.image.resize_images(images, size, methods[method], align_corners) + return tensorflow.image.resize(images, size, methods[method], align_corners) def non_max_suppression(*args, **kwargs): diff --git a/object_detector_retinanet/keras_retinanet/bin/class_mappings.csv b/object_detector_retinanet/keras_retinanet/bin/class_mappings.csv old mode 100755 new mode 100644 diff --git a/object_detector_retinanet/keras_retinanet/bin/predict.py b/object_detector_retinanet/keras_retinanet/bin/predict.py index c2281d6..ef5eb63 100644 --- a/object_detector_retinanet/keras_retinanet/bin/predict.py +++ b/object_detector_retinanet/keras_retinanet/bin/predict.py @@ -20,7 +20,7 @@ import os import sys -import keras +import tensorflow.keras as keras import tensorflow as tf @@ -34,9 +34,9 @@ def get_session(): """ Construct a modified tf session. """ - config = tf.ConfigProto() + config = tf.compat.v1.ConfigProto() config.gpu_options.allow_growth = True - return tf.Session(config=config) + return tf.compat.v1.Session(config=config) def create_generator(args): @@ -127,7 +127,7 @@ def main(args=None): os.environ["CUDA_VISIBLE_DEVICES"] = str(666) else: os.environ["CUDA_VISIBLE_DEVICES"] = gpu_num - keras.backend.tensorflow_backend.set_session(get_session()) + tf.compat.v1.keras.backend.set_session(get_session()) # make save path if it doesn't exist if args.save_path is not None and not os.path.exists(args.save_path): diff --git a/object_detector_retinanet/keras_retinanet/initializers.py b/object_detector_retinanet/keras_retinanet/initializers.py index f41faf8..65ce938 100644 --- a/object_detector_retinanet/keras_retinanet/initializers.py +++ b/object_detector_retinanet/keras_retinanet/initializers.py @@ -34,6 +34,6 @@ def get_config(self): def __call__(self, shape, dtype=None): # set bias to -log((1 - p)/p) for foreground - result = np.ones(shape, dtype=dtype) * -math.log((1 - self.probability) / self.probability) + result = np.ones(shape, dtype=np.float32) * -math.log((1 - self.probability) / self.probability) return result diff --git a/object_detector_retinanet/keras_retinanet/layers/filter_detections.py b/object_detector_retinanet/keras_retinanet/layers/filter_detections.py index aebd317..2651659 100644 --- a/object_detector_retinanet/keras_retinanet/layers/filter_detections.py +++ b/object_detector_retinanet/keras_retinanet/layers/filter_detections.py @@ -14,12 +14,12 @@ limitations under the License. """ -import keras +import tensorflow as tf +import tensorflow.keras as keras import numpy from .. import backend - def filter_detections(boxes, classification, other=[], nms=True, score_threshold=0.05, max_detections=300, nms_threshold=0.5): """ Filter detections using the boxes and classification values. @@ -60,9 +60,11 @@ def filter_detections(boxes, classification, other=[], nms=True, score_threshold indices = keras.backend.gather(indices, nms_indices) # add indices to list of all indices - labels = c * keras.backend.ones((keras.backend.shape(indices)[0],), dtype='int64') + init_shape = (keras.backend.shape(indices)[0],) + labels = c * tf.ones(init_shape, dtype='int64') indices = keras.backend.stack([indices[:, 0], labels], axis=1) all_indices.append(indices) + # concatenate indices to single tensor indices = keras.backend.concatenate(all_indices, axis=0) diff --git a/object_detector_retinanet/keras_retinanet/models/__init__.py b/object_detector_retinanet/keras_retinanet/models/__init__.py index 4df9ac8..d48f149 100644 --- a/object_detector_retinanet/keras_retinanet/models/__init__.py +++ b/object_detector_retinanet/keras_retinanet/models/__init__.py @@ -71,9 +71,9 @@ def load_model(filepath, backbone_name='resnet50', convert=False, nms=False): ImportError: if h5py is not available. ValueError: In case of an invalid savefile. """ - import keras.models + import tensorflow.keras.models - model = keras.models.load_model(filepath, custom_objects=backbone(backbone_name).custom_objects) + model = tensorflow.keras.models.load_model(filepath, custom_objects=backbone(backbone_name).custom_objects) if convert: from object_detector_retinanet.keras_retinanet.models.retinanet import retinanet_bbox model = retinanet_bbox(model=model, nms=nms) diff --git a/object_detector_retinanet/keras_retinanet/models/densenet.py b/object_detector_retinanet/keras_retinanet/models/densenet.py index fb9defb..9415a59 100644 --- a/object_detector_retinanet/keras_retinanet/models/densenet.py +++ b/object_detector_retinanet/keras_retinanet/models/densenet.py @@ -14,7 +14,7 @@ limitations under the License. """ -import keras +import tensorflow.keras as keras from keras.applications.densenet import DenseNet, get_file from . import retinanet diff --git a/object_detector_retinanet/keras_retinanet/models/mobilenet.py b/object_detector_retinanet/keras_retinanet/models/mobilenet.py index 06fbb0b..b179299 100644 --- a/object_detector_retinanet/keras_retinanet/models/mobilenet.py +++ b/object_detector_retinanet/keras_retinanet/models/mobilenet.py @@ -14,7 +14,7 @@ limitations under the License. """ -import keras +import tensorflow.keras as keras from keras.applications.mobilenet import MobileNet, BASE_WEIGHT_PATH, get_file, relu6, DepthwiseConv2D from . import retinanet diff --git a/object_detector_retinanet/keras_retinanet/models/resnet.py b/object_detector_retinanet/keras_retinanet/models/resnet.py index 9050661..ac45efa 100644 --- a/object_detector_retinanet/keras_retinanet/models/resnet.py +++ b/object_detector_retinanet/keras_retinanet/models/resnet.py @@ -14,7 +14,7 @@ limitations under the License. """ -import keras +import tensorflow.keras as keras import keras_resnet import keras_resnet.models from keras.utils import get_file diff --git a/object_detector_retinanet/keras_retinanet/models/retinanet.py b/object_detector_retinanet/keras_retinanet/models/retinanet.py index 1a9df15..3a1b008 100644 --- a/object_detector_retinanet/keras_retinanet/models/retinanet.py +++ b/object_detector_retinanet/keras_retinanet/models/retinanet.py @@ -14,7 +14,7 @@ limitations under the License. """ -import keras +import tensorflow.keras as keras from .. import initializers from .. import layers diff --git a/object_detector_retinanet/keras_retinanet/preprocessing/generator.py b/object_detector_retinanet/keras_retinanet/preprocessing/generator.py index dec47d3..a71d8fa 100644 --- a/object_detector_retinanet/keras_retinanet/preprocessing/generator.py +++ b/object_detector_retinanet/keras_retinanet/preprocessing/generator.py @@ -19,7 +19,7 @@ import threading import warnings -import keras +import tensorflow.keras as keras from ..utils.anchors import anchor_targets_bbox, bbox_transform from ..utils.image import ( diff --git a/object_detector_retinanet/keras_retinanet/utils/Boxes.py b/object_detector_retinanet/keras_retinanet/utils/Boxes.py index 22d6320..86d60ac 100644 --- a/object_detector_retinanet/keras_retinanet/utils/Boxes.py +++ b/object_detector_retinanet/keras_retinanet/utils/Boxes.py @@ -145,7 +145,7 @@ def perform_nms_on_image_dataframe(image_data, overlap_threshold=0.5): number_of_images = len(image_data['image_name'].unique()) if number_of_images > 1: print('nms received data including more than 1 image - cannot perform nms!') - image_boxes = image_data.as_matrix(BOX_CONSTANTS) + image_boxes = image_data.to_numpy() image_scores = numpy.array(image_data['confidence']) nms_boxes, nms_scores, deleted_indices = non_maximal_suppression(image_boxes, image_scores, diff --git a/object_detector_retinanet/keras_retinanet/utils/CollapsingMoG.py b/object_detector_retinanet/keras_retinanet/utils/CollapsingMoG.py index e2ca15a..aac75ab 100644 --- a/object_detector_retinanet/keras_retinanet/utils/CollapsingMoG.py +++ b/object_detector_retinanet/keras_retinanet/utils/CollapsingMoG.py @@ -15,11 +15,13 @@ def __init__(self, sec): self.sec = sec def __enter__(self): - signal.signal(signal.SIGALRM, self.raise_timeout) - signal.setitimer(signal.ITIMER_REAL, self.sec) + # signal.signal(signal.SIGALRM, self.raise_timeout) + # signal.setitimer(signal.ITIMER_REAL, self.sec) + pass def __exit__(self, *args): - signal.alarm(0) # disable alarm + # signal.alarm(0) # disable alarm + pass def raise_timeout(self, *args): raise Timeout.Timeout() diff --git a/object_detector_retinanet/keras_retinanet/utils/EmMerger.py b/object_detector_retinanet/keras_retinanet/utils/EmMerger.py index b13591c..0a86f51 100644 --- a/object_detector_retinanet/keras_retinanet/utils/EmMerger.py +++ b/object_detector_retinanet/keras_retinanet/utils/EmMerger.py @@ -64,6 +64,8 @@ def filter_duplicate_candidates(self, data, image): cv2.normalize(heat_map, heat_map, 0, 255, cv2.NORM_MINMAX) heat_map = cv2.convertScaleAbs(heat_map) h2, heat_map = cv2.threshold(heat_map, 4, 255, cv2.THRESH_TOZERO) + # cv2.imshow("Heat map", heat_map) + # cv2.waitKey() contours = cv2.findContours(numpy.ndarray.copy(heat_map), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) candidates = self.find_new_candidates(contours, heat_map, data, original_detection_centers, image) @@ -75,13 +77,12 @@ def filter_duplicate_candidates(self, data, image): filtered_data = pandas.DataFrame(columns=data.columns) for i, candidate in candidates.items(): label = candidate['original_detection_ids'] - original_detections = data.ix[label] - original_detections[ - 'avg_score'] = 0.5 * original_detections.confidence + 0.5 * original_detections.hard_score + original_detections = data.iloc[label] + original_detections.insert(0, 'avg_score', 0.5 * original_detections.confidence + 0.5 * original_detections.hard_score, True) best_detection_id = original_detections.avg_score.argmax() # best_detection_id = original_detections.confidence.argmax() # best_detection_id = original_detections.hard_score.argmax() - best_detection = original_detections.ix[best_detection_id].copy() + best_detection = original_detections.iloc[best_detection_id].copy() # The following code creates the median bboxes # original_detections = original_detections[original_detections.confidence > 0.5] @@ -110,7 +111,7 @@ def filter_duplicate_candidates(self, data, image): def find_new_candidates(self, contours, heat_map, data, original_detection_centers, image): candidates = [] - for contour_i, contour in enumerate(contours[1]): + for contour_i, contour in enumerate(contours[0]): contour_bounding_rect = cv2.boundingRect(contour) contour_bbox = extract_boxes_from_edge_boxes(numpy.array(contour_bounding_rect))[0] @@ -200,8 +201,9 @@ def remove_redundant(self, contour_bbox, cov, k, mu, image, sub_heat_map): ellipse_mask = cv2.fillPoly(local_m, [poly], (1, 1, 1)) contours = cv2.findContours(ellipse_mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) - cnts.append(contours[1][0]) + cnts.append(contours[0][0]) center_points = mu.copy() + distances = scipy.spatial.distance.cdist(center_points, center_points) scaled_distances = numpy.ndarray(shape=[k, k], dtype=numpy.float64) for i in range(0, k): @@ -368,6 +370,7 @@ def merge_detections(image_name, results): result_df['y2'] = results[:, 3].astype(int) result_df['confidence'] = results[:, 4] result_df['hard_score'] = results[:, 5] + result_df['classification'] = results[:, 6] result_df['uuid'] = 'object_label' result_df['label_type'] = 'object_label' # result_df['project'] = project diff --git a/object_detector_retinanet/keras_retinanet/utils/image.py b/object_detector_retinanet/keras_retinanet/utils/image.py index 1e8dd3d..16713ea 100644 --- a/object_detector_retinanet/keras_retinanet/utils/image.py +++ b/object_detector_retinanet/keras_retinanet/utils/image.py @@ -15,7 +15,7 @@ """ from __future__ import division -import keras +import tensorflow.keras as keras import numpy as np import cv2 from PIL import Image diff --git a/object_detector_retinanet/keras_retinanet/utils/keras_version.py b/object_detector_retinanet/keras_retinanet/utils/keras_version.py index 1423f77..2342586 100644 --- a/object_detector_retinanet/keras_retinanet/utils/keras_version.py +++ b/object_detector_retinanet/keras_retinanet/utils/keras_version.py @@ -16,7 +16,7 @@ from __future__ import print_function -import keras +import tensorflow.keras as keras import sys minimum_keras_version = 2, 1, 3 diff --git a/object_detector_retinanet/keras_retinanet/utils/predict_iou.py b/object_detector_retinanet/keras_retinanet/utils/predict_iou.py index ef660c9..d6be72b 100644 --- a/object_detector_retinanet/keras_retinanet/utils/predict_iou.py +++ b/object_detector_retinanet/keras_retinanet/utils/predict_iou.py @@ -39,11 +39,11 @@ def predict( hard_score_rate=1.): all_detections = [[None for i in range(generator.num_classes())] for j in range(generator.size())] csv_data_lst = [] - csv_data_lst.append(['image_id', 'x1', 'y1', 'x2', 'y2', 'confidence', 'hard_score']) + csv_data_lst.append(['image_id', 'x1', 'y1', 'x2', 'y2', 'confidence', 'hard_score', 'classification']) result_dir = os.path.join(root_dir(), 'results') create_folder(result_dir) timestamp = datetime.datetime.utcnow() - res_file = result_dir + '/detections_output_iou_{}_{}.csv'.format(hard_score_rate, timestamp) + res_file = result_dir + '/detections_output_iou_{}.csv'.format(hard_score_rate) for i in range(generator.size()): image_name = os.path.join(generator.image_path(i).split(os.path.sep)[-2], generator.image_path(i).split(os.path.sep)[-1]) @@ -89,7 +89,7 @@ def predict( filtered_scores.append(detection['confidence']) filtered_labels.append('{0:.2f}'.format(detection['hard_score'])) row = [image_name, detection['x1'], detection['y1'], detection['x2'], detection['y2'], - detection['confidence'], detection['hard_score']] + detection['confidence'], detection['hard_score'], generator.labels[int(detection['classification'])]] csv_data_lst.append(row) if save_path is not None: diff --git a/object_detector_retinanet/utils.py b/object_detector_retinanet/utils.py index d59c786..ad1335f 100644 --- a/object_detector_retinanet/utils.py +++ b/object_detector_retinanet/utils.py @@ -40,7 +40,7 @@ def root_dir(): if platform.system() == 'Linux': return os.path.join(os.getenv('HOME'), 'Documents', 'SKU110K') elif platform.system() == 'Windows': - return os.path.abspath('C:/Users/{}/Documents/SKU110K/'.format(os.getenv('username'))) + return os.path.abspath('C:/Users/{}/Desktop/SKU110K_CVPR19/'.format(os.getenv('username'))) def image_path(): diff --git a/requirements.txt b/requirements.txt index bf626eb..1db5391 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,8 @@ -Keras==2.2.5 -keras-retinanet==0.5.1 -tensorflow-gpu==1.15.4 -numpy==1.19.2 -opencv-python==3.1.0.5 -tqdm==4.50.2 -pandas==0.23.4 \ No newline at end of file +keras==2.4.3 +keras_resnet +tensorflow==2.4.0 +numpy==1.19.5 +opencv-python==4.5.1 +opencv-contrib-python==4.5.1 +tqdm +pandas diff --git a/res_images_iou/0.png b/res_images_iou/0.png new file mode 100644 index 0000000..92df718 Binary files /dev/null and b/res_images_iou/0.png differ diff --git a/res_images_iou/1.png b/res_images_iou/1.png new file mode 100644 index 0000000..9670d55 Binary files /dev/null and b/res_images_iou/1.png differ diff --git a/res_images_iou/2.png b/res_images_iou/2.png new file mode 100644 index 0000000..193f1a6 Binary files /dev/null and b/res_images_iou/2.png differ diff --git a/results/detections_output_iou_0.5.csv b/results/detections_output_iou_0.5.csv new file mode 100644 index 0000000..d1892a3 --- /dev/null +++ b/results/detections_output_iou_0.5.csv @@ -0,0 +1,289 @@ +image_id,x1,y1,x2,y2,confidence,hard_score,classification +images\test1.jpg,298,1782,524,1861,0.5316545963287354,0.30758997797966003,object +images\test1.jpg,2451,1672,2646,1869,0.7982776165008545,0.7281691431999207,object +images\test1.jpg,2835,1666,2993,1866,0.6599013209342957,0.47837570309638977,object +images\test1.jpg,2663,1663,2827,1875,0.8269672989845276,0.7847433090209961,object +images\test1.jpg,2266,1663,2432,1878,0.8432811498641968,0.8194441795349121,object +images\test1.jpg,2066,1674,2259,1879,0.7850136160850525,0.7161191701889038,object +images\test1.jpg,1889,1662,2012,1857,0.5784319639205933,0.32359886169433594,object +images\test1.jpg,1673,1655,1873,1763,0.5348150730133057,0.29995620250701904,object +images\test1.jpg,783,1657,1012,1864,0.6223239898681641,0.4157572090625763,object +images\test1.jpg,1247,1654,1459,1868,0.6613514423370361,0.477186918258667,object +images\test1.jpg,542,1657,770,1771,0.7169162034988403,0.5744006037712097,object +images\test1.jpg,1018,1657,1229,1763,0.6036052107810974,0.39289391040802,object +images\test1.jpg,1463,1658,1663,1764,0.7015480995178223,0.5796728730201721,object +images\test1.jpg,33,1637,277,1850,0.6277311444282532,0.428213894367218,object +images\test1.jpg,296,1648,534,1767,0.7271313667297363,0.6083411574363708,object +images\test1.jpg,1667,1517,1862,1644,0.6071606874465942,0.42705237865448,object +images\test1.jpg,1463,1504,1655,1650,0.7224683165550232,0.6166661977767944,object +images\test1.jpg,780,1494,1012,1651,0.7945425510406494,0.7371550798416138,object +images\test1.jpg,301,1469,534,1638,0.8504781723022461,0.8229937553405762,object +images\test1.jpg,1874,1446,2003,1642,0.5933452844619751,0.41319698095321655,object +images\test1.jpg,2818,1414,2971,1652,0.7710386514663696,0.6661400198936462,object +images\test1.jpg,2627,1413,2800,1654,0.8139406442642212,0.7572591304779053,object +images\test1.jpg,2447,1406,2616,1654,0.8107115626335144,0.7517251968383789,object +images\test1.jpg,2248,1405,2428,1619,0.7097938060760498,0.6006260514259338,object +images\test1.jpg,2049,1401,2237,1616,0.7134258151054382,0.6205370426177979,object +images\test1.jpg,1659,1368,1844,1502,0.6493184566497803,0.4872380793094635,object +images\test1.jpg,1240,1375,1443,1490,0.7778186798095703,0.6885368227958679,object +images\test1.jpg,1241,1502,1450,1646,0.7297542691230774,0.6345154047012329,object +images\test1.jpg,1446,1371,1650,1490,0.6999909281730652,0.5609665513038635,object +images\test1.jpg,1018,1496,1231,1647,0.7289613485336304,0.6327220797538757,object +images\test1.jpg,787,1364,1009,1481,0.6629854440689087,0.5145775675773621,object +images\test1.jpg,544,1347,772,1465,0.6968091726303101,0.571897566318512,object +images\test1.jpg,543,1478,774,1645,0.8504227995872498,0.8356693983078003,object +images\test1.jpg,46,1477,293,1635,0.6692559719085693,0.5395269989967346,object +images\test1.jpg,50,1332,298,1451,0.6797152161598206,0.5244026184082031,object +images\test1.jpg,303,1332,535,1446,0.7816972732543945,0.7233739495277405,object +images\test1.jpg,2242,1196,2402,1390,0.7768522500991821,0.7356578707695007,object +images\test1.jpg,2790,1162,2956,1404,0.757953405380249,0.6554648876190186,object +images\test1.jpg,2611,1159,2777,1402,0.836747944355011,0.8066697120666504,object +images\test1.jpg,2425,1156,2601,1393,0.8403412103652954,0.8297364711761475,object +images\test1.jpg,2033,1128,2219,1385,0.7916239500045776,0.7329950332641602,object +images\test1.jpg,1856,1112,1986,1197,0.6285029649734497,0.4803939461708069,object +images\test1.jpg,1857,1237,1992,1368,0.6440858244895935,0.4998413324356079,object +images\test1.jpg,1444,1143,1642,1363,0.6926541924476624,0.5913662910461426,object +images\test1.jpg,1651,1120,1843,1369,0.6928826570510864,0.5795897841453552,object +images\test1.jpg,1236,1218,1436,1364,0.8635638952255249,0.8410067558288574,object +images\test1.jpg,1234,1084,1425,1205,0.7955251932144165,0.7377409934997559,object +images\test1.jpg,1014,1072,1226,1205,0.7570695877075195,0.6617039442062378,object +images\test1.jpg,1010,1215,1229,1363,0.8484145998954773,0.8264681100845337,object +images\test1.jpg,794,1060,1010,1211,0.8258296251296997,0.7837767601013184,object +images\test1.jpg,790,1220,1008,1358,0.8227072954177856,0.7852743864059448,object +images\test1.jpg,556,1045,774,1276,0.7156082391738892,0.6085346341133118,object +images\test1.jpg,70,998,289,1313,0.8358480334281921,0.8030948638916016,object +images\test1.jpg,310,1178,539,1327,0.7934380769729614,0.7214914560317993,object +images\test1.jpg,318,1029,542,1155,0.7750219106674194,0.723006010055542,object +images\test1.jpg,2878,821,2979,1013,0.6055436134338379,0.43080541491508484,object +images\test1.jpg,2698,828,2865,1011,0.6721146106719971,0.5491928458213806,object +images\test1.jpg,2522,810,2691,999,0.6801579594612122,0.5547512769699097,object +images\test1.jpg,2347,785,2506,996,0.7763353586196899,0.7148916125297546,object +images\test1.jpg,1769,799,1925,946,0.749805748462677,0.6626635789871216,object +images\test1.jpg,1599,799,1764,936,0.7478092908859253,0.6628345251083374,object +images\test1.jpg,2165,777,2336,972,0.7898017168045044,0.7455121874809265,object +images\test1.jpg,1425,770,1584,902,0.6654008030891418,0.5318620800971985,object +images\test1.jpg,1999,762,2154,963,0.7562113404273987,0.6896874904632568,object +images\test1.jpg,1255,771,1407,900,0.7935107946395874,0.7535576224327087,object +images\test1.jpg,1072,771,1243,922,0.7494393587112427,0.6849247217178345,object +images\test1.jpg,902,742,1062,865,0.7233312129974365,0.6214935779571533,object +images\test1.jpg,717,740,891,867,0.7522082924842834,0.6701256036758423,object +images\test1.jpg,525,733,701,876,0.7967838048934937,0.7290365695953369,object +images\test1.jpg,318,709,498,832,0.8058726787567139,0.7633873224258423,object +images\test1.jpg,1,691,106,839,0.5982874631881714,0.35405421257019043,object +images\test1.jpg,125,700,300,830,0.8188867568969727,0.7825385332107544,object +images\test1.jpg,2852,599,2974,806,0.5798963904380798,0.3845709264278412,object +images\test1.jpg,1764,613,1919,794,0.828464925289154,0.8019254207611084,object +images\test1.jpg,1592,610,1750,786,0.8084056377410889,0.7871080636978149,object +images\test1.jpg,2689,595,2838,809,0.6373342275619507,0.47688546776771545,object +images\test1.jpg,1418,595,1578,770,0.7603485584259033,0.682207465171814,object +images\test1.jpg,2498,576,2660,758,0.6109641194343567,0.4551033079624176,object +images\test1.jpg,1247,583,1403,761,0.8581781983375549,0.8484281301498413,object +images\test1.jpg,2330,563,2485,771,0.7121685743331909,0.585120677947998,object +images\test1.jpg,1079,585,1236,759,0.771154522895813,0.6920861005783081,object +images\test1.jpg,899,563,1062,736,0.7921618223190308,0.7482315897941589,object +images\test1.jpg,2149,557,2304,761,0.6648598909378052,0.5136447548866272,object +images\test1.jpg,718,556,887,727,0.8162217140197754,0.782688319683075,object +images\test1.jpg,1976,566,2132,741,0.6204161643981934,0.48878487944602966,object +images\test1.jpg,525,536,701,720,0.8117454648017883,0.7723374366760254,object +images\test1.jpg,0,566,107,682,0.5603813529014587,0.30330967903137207,object +images\test1.jpg,320,529,501,700,0.7811622619628906,0.7368616461753845,object +images\test1.jpg,129,504,307,690,0.8106071949005127,0.7742592692375183,object +images\test1.jpg,0,474,112,567,0.5478028059005737,0.2935015559196472,object +images\test1.jpg,1753,423,1906,589,0.8072314262390137,0.7727241516113281,object +images\test1.jpg,1577,412,1741,587,0.8307172656059265,0.8092715740203857,object +images\test1.jpg,1411,406,1568,582,0.7736440896987915,0.7111404538154602,object +images\test1.jpg,1241,396,1394,567,0.8354216814041138,0.8187806606292725,object +images\test1.jpg,2827,378,2970,574,0.6286579370498657,0.4509838819503784,object +images\test1.jpg,1070,382,1227,558,0.8034785985946655,0.7741990685462952,object +images\test1.jpg,2658,369,2805,568,0.6751455664634705,0.5427203178405762,object +images\test1.jpg,898,362,1060,542,0.8159035444259644,0.7926244139671326,object +images\test1.jpg,2480,348,2633,558,0.7076681852340698,0.5952333807945251,object +images\test1.jpg,2308,355,2464,541,0.7140903472900391,0.6295991539955139,object +images\test1.jpg,718,346,888,537,0.809917688369751,0.7623878717422485,object +images\test1.jpg,2132,352,2293,509,0.6455826759338379,0.5100300908088684,object +images\test1.jpg,528,325,701,512,0.8705538511276245,0.8641456961631775,object +images\test1.jpg,1952,330,2110,489,0.5795857310295105,0.42766934633255005,object +images\test1.jpg,326,315,500,492,0.8358436226844788,0.8369171619415283,object +images\test1.jpg,140,287,318,484,0.8388959169387817,0.7913362979888916,object +images\test1.jpg,0,364,117,467,0.6361097693443298,0.42877838015556335,object +images\test1.jpg,0,261,122,359,0.6164340972900391,0.3929925262928009,object +images\test1.jpg,1741,241,1890,413,0.7977981567382812,0.752263069152832,object +images\test1.jpg,1565,221,1734,402,0.8102900981903076,0.7639943957328796,object +images\test1.jpg,1407,203,1548,391,0.744407594203949,0.6483132839202881,object +images\test1.jpg,1236,193,1384,371,0.8438369035720825,0.8284053802490234,object +images\test1.jpg,1065,177,1224,353,0.8736178874969482,0.8851896524429321,object +images\test1.jpg,2803,176,2953,352,0.6472971439361572,0.49164849519729614,object +images\test1.jpg,892,163,1056,345,0.8640204668045044,0.8680420517921448,object +images\test1.jpg,2459,171,2619,329,0.7197676301002502,0.6443317532539368,object +images\test1.jpg,2628,154,2783,321,0.6677615642547607,0.541099488735199,object +images\test1.jpg,716,148,886,327,0.848589301109314,0.8088228702545166,object +images\test1.jpg,2296,128,2443,317,0.6533632278442383,0.5301185250282288,object +images\test1.jpg,530,132,701,305,0.8196523189544678,0.8031595945358276,object +images\test1.jpg,2106,87,2268,269,0.5477365851402283,0.3760001063346863,object +images\test1.jpg,152,66,327,272,0.8419913649559021,0.8374074697494507,object +images\test1.jpg,1952,21,2093,275,0.6475310325622559,0.5138421654701233,object +images\test1.jpg,0,25,137,251,0.6567769646644592,0.45768406987190247,object +images\test1.jpg,1738,16,1875,224,0.7789937257766724,0.7007846832275391,object +images\test1.jpg,1394,8,1541,191,0.8357878923416138,0.8159208297729492,object +images\test1.jpg,1228,7,1383,180,0.9037961363792419,0.926422119140625,object +images\test1.jpg,1558,10,1722,206,0.7499959468841553,0.664409875869751,object +images\test1.jpg,2780,8,2932,153,0.695407509803772,0.5400879979133606,object +images\test1.jpg,2447,10,2605,163,0.6128644943237305,0.4295143187046051,object +images\test1.jpg,1059,4,1222,165,0.8941671848297119,0.902347981929779,object +images\test1.jpg,2615,3,2771,148,0.6385197043418884,0.4588983952999115,object +images\test1.jpg,890,1,1053,152,0.8499571681022644,0.8115640878677368,object +images\test1.jpg,712,2,886,139,0.8332281112670898,0.7762765884399414,object +images\test1.jpg,526,1,696,120,0.745652437210083,0.6413201093673706,object +images\test1.jpg,339,6,511,106,0.5763004422187805,0.3296777009963989,object +images\test1.jpg,339,80,504,288,0.8016639947891235,0.7682168483734131,object +images\test1.jpg,156,6,326,73,0.5769731402397156,0.32752981781959534,object +images\test2.jpg,59,250,107,314,0.801018476486206,0.729637086391449,object +images\test2.jpg,412,248,426,291,0.4400940537452698,0.11075714230537415,object +images\test2.jpg,174,243,219,311,0.7594102025032043,0.649909496307373,object +images\test2.jpg,298,222,344,241,0.48703861236572266,0.1722324788570404,object +images\test2.jpg,67,172,115,245,0.8007408976554871,0.7681559324264526,object +images\test2.jpg,8,171,59,247,0.7423845529556274,0.6517671346664429,object +images\test2.jpg,30,266,50,314,0.5502703189849854,0.3757634162902832,object +images\test2.jpg,1,254,30,314,0.5137532949447632,0.26238101720809937,object +images\test2.jpg,403,154,426,238,0.5172021389007568,0.22836750745773315,object +images\test2.jpg,299,162,347,225,0.8792812824249268,0.8906440734863281,object +images\test2.jpg,353,155,400,227,0.8376981019973755,0.8230947256088257,object +images\test2.jpg,254,157,296,227,0.8001360893249512,0.7558552026748657,object +images\test2.jpg,302,236,354,313,0.9085724353790283,0.9054087996482849,object +images\test2.jpg,255,232,299,311,0.8326586484909058,0.7924961447715759,object +images\test2.jpg,359,235,414,314,0.8093956112861633,0.7509750127792358,object +images\test2.jpg,177,166,222,235,0.7184070348739624,0.5942806601524353,object +images\test2.jpg,120,169,170,241,0.8166701793670654,0.7722864151000977,object +images\test2.jpg,114,247,165,313,0.8302181959152222,0.7959311008453369,object +images\test2.jpg,19,95,64,167,0.843973696231842,0.8355448246002197,object +images\test2.jpg,74,92,123,165,0.900121808052063,0.9184241890907288,object +images\test2.jpg,126,92,172,163,0.9083437919616699,0.9251919984817505,object +images\test2.jpg,296,82,344,155,0.9261415004730225,0.9604940414428711,object +images\test2.jpg,255,86,293,151,0.7445986270904541,0.6557105183601379,object +images\test2.jpg,397,79,426,156,0.8100707530975342,0.7514365315437317,object +images\test2.jpg,348,79,393,150,0.9077741503715515,0.9314100742340088,object +images\test2.jpg,178,129,221,159,0.7275435924530029,0.6286336183547974,object +images\test2.jpg,181,92,220,127,0.7133986353874207,0.6176987886428833,object +images\test2.jpg,3,74,47,92,0.44040367007255554,0.15114885568618774,object +images\test2.jpg,386,53,425,71,0.4284225106239319,0.12435665726661682,object +images\test2.jpg,13,3,51,62,0.8417229652404785,0.8171992301940918,object +images\test2.jpg,54,0,94,60,0.9021308422088623,0.9079192876815796,object +images\test2.jpg,143,0,185,54,0.8566294312477112,0.835944414138794,object +images\test2.jpg,98,1,139,56,0.8780795335769653,0.8790695071220398,object +images\test2.jpg,188,0,230,53,0.7879704236984253,0.7054785490036011,object +images\test2.jpg,293,0,339,50,0.8468934297561646,0.8071654438972473,object +images\test2.jpg,248,0,290,50,0.768011748790741,0.6662397980690002,object +images\test2.jpg,229,0,247,50,0.5041489005088806,0.2179069221019745,object +images\test2.jpg,343,1,388,47,0.8160885572433472,0.752623438835144,object +images\test2.jpg,389,0,426,47,0.653477132320404,0.4669412672519684,object +images\test3.jpg,302,434,317,464,0.5174921751022339,0.30994293093681335,object +images\test3.jpg,158,428,194,469,0.5124067664146423,0.23444190621376038,object +images\test3.jpg,108,371,140,397,0.8604767322540283,0.865466833114624,object +images\test3.jpg,274,370,306,395,0.8609222173690796,0.8496857285499573,object +images\test3.jpg,73,369,105,397,0.8636065125465393,0.8752720355987549,object +images\test3.jpg,39,367,70,397,0.859434187412262,0.8615511059761047,object +images\test3.jpg,242,366,273,394,0.8639954328536987,0.8624826669692993,object +images\test3.jpg,307,365,338,393,0.8297525644302368,0.7962448000907898,object +images\test3.jpg,209,360,239,394,0.7580668926239014,0.6688238382339478,object +images\test3.jpg,175,363,206,385,0.692543625831604,0.5902461409568787,object +images\test3.jpg,142,362,172,390,0.7721061706542969,0.722549557685852,object +images\test3.jpg,107,338,139,366,0.8488232493400574,0.8737097978591919,object +images\test3.jpg,72,337,104,366,0.878786027431488,0.9244391918182373,object +images\test3.jpg,37,336,69,365,0.7911823987960815,0.7730765342712402,object +images\test3.jpg,310,335,339,362,0.7848555445671082,0.7251770496368408,object +images\test3.jpg,277,334,309,364,0.8389101028442383,0.8534071445465088,object +images\test3.jpg,243,334,275,363,0.8740761280059814,0.8887284994125366,object +images\test3.jpg,176,334,207,360,0.7573045492172241,0.6967905759811401,object +images\test3.jpg,210,331,241,354,0.7581515312194824,0.6740335822105408,object +images\test3.jpg,141,332,173,358,0.8720501661300659,0.8741036653518677,object +images\test3.jpg,0,293,20,343,0.5078268051147461,0.2583635151386261,object +images\test3.jpg,105,296,139,333,0.8658243417739868,0.9084088802337646,object +images\test3.jpg,70,296,104,334,0.8511955738067627,0.8807228803634644,object +images\test3.jpg,35,296,68,333,0.7366186380386353,0.6884320974349976,object +images\test3.jpg,177,293,208,331,0.8310304880142212,0.8400310277938843,object +images\test3.jpg,142,295,174,329,0.8468064069747925,0.8655853271484375,object +images\test3.jpg,246,295,278,331,0.8477157354354858,0.8740066885948181,object +images\test3.jpg,211,294,243,330,0.8184661865234375,0.8219527006149292,object +images\test3.jpg,279,293,312,329,0.8110589981079102,0.8104934096336365,object +images\test3.jpg,314,292,345,330,0.7571306824684143,0.7006661891937256,object +images\test3.jpg,342,245,360,280,0.5659597516059875,0.3343377709388733,object +images\test3.jpg,310,240,340,268,0.8017958402633667,0.7690201997756958,object +images\test3.jpg,25,239,60,271,0.8495497703552246,0.8405323028564453,object +images\test3.jpg,274,238,309,267,0.8805951476097107,0.8888418674468994,object +images\test3.jpg,239,239,273,267,0.8992905020713806,0.9102221727371216,object +images\test3.jpg,204,239,238,267,0.8935767412185669,0.9008781909942627,object +images\test3.jpg,170,239,203,270,0.8721156120300293,0.8621882200241089,object +images\test3.jpg,133,238,168,269,0.9124483466148376,0.9351140260696411,object +images\test3.jpg,97,238,131,268,0.9067250490188599,0.9074126482009888,object +images\test3.jpg,315,207,347,239,0.8319064378738403,0.8218616247177124,object +images\test3.jpg,278,208,312,237,0.8913926482200623,0.9159762859344482,object +images\test3.jpg,24,208,57,238,0.8822807669639587,0.9040602445602417,object +images\test3.jpg,133,205,167,238,0.9252458214759827,0.9603757858276367,object +images\test3.jpg,97,205,131,237,0.9357540607452393,0.9732959270477295,object +images\test3.jpg,62,236,95,269,0.8733876347541809,0.8666383028030396,object +images\test3.jpg,60,206,96,236,0.9064556360244751,0.9220809936523438,object +images\test3.jpg,242,205,276,237,0.9230754375457764,0.9612849950790405,object +images\test3.jpg,206,204,240,238,0.9178470373153687,0.9561254978179932,object +images\test3.jpg,170,204,204,238,0.9221985340118408,0.9532024264335632,object +images\test3.jpg,348,199,362,234,0.5129005908966064,0.21102669835090637,object +images\test3.jpg,0,227,22,244,0.5563448071479797,0.29005417227745056,object +images\test3.jpg,0,203,20,229,0.620728611946106,0.4295172393321991,object +images\test3.jpg,320,167,352,204,0.8390243649482727,0.810350775718689,object +images\test3.jpg,283,167,317,206,0.8947526216506958,0.9099085927009583,object +images\test3.jpg,246,166,280,203,0.9026675224304199,0.924325704574585,object +images\test3.jpg,22,168,55,205,0.8554340600967407,0.8581311702728271,object +images\test3.jpg,172,166,206,201,0.9121270179748535,0.9396469593048096,object +images\test3.jpg,96,165,130,203,0.9182303547859192,0.9348529577255249,object +images\test3.jpg,209,166,243,201,0.9039151072502136,0.9308509826660156,object +images\test3.jpg,133,165,168,202,0.9023062586784363,0.914918065071106,object +images\test3.jpg,58,165,94,203,0.9078807234764099,0.9230983257293701,object +images\test3.jpg,0,143,10,185,0.5432609915733337,0.2216399610042572,object +images\test3.jpg,346,131,358,160,0.6153872013092041,0.4515533447265625,object +images\test3.jpg,291,131,319,159,0.8871049880981445,0.901339590549469,object +images\test3.jpg,260,132,290,158,0.9148743748664856,0.9389195442199707,object +images\test3.jpg,230,132,259,158,0.9065390825271606,0.9292819499969482,object +images\test3.jpg,200,130,228,158,0.9253233671188354,0.9648313522338867,object +images\test3.jpg,320,129,345,158,0.8125253915786743,0.7701935768127441,object +images\test3.jpg,170,129,199,158,0.9232423901557922,0.9609378576278687,object +images\test3.jpg,140,129,168,157,0.8603276610374451,0.8621461391448975,object +images\test3.jpg,64,128,81,156,0.7862536907196045,0.7309632897377014,object +images\test3.jpg,46,129,62,156,0.8017145395278931,0.7395266890525818,object +images\test3.jpg,26,130,44,156,0.7562769651412964,0.6546121835708618,object +images\test3.jpg,101,98,116,155,0.7454681396484375,0.6239882707595825,object +images\test3.jpg,118,98,134,152,0.7171550989151001,0.6385214328765869,object +images\test3.jpg,0,103,11,127,0.557659387588501,0.304344117641449,object +images\test3.jpg,293,97,318,129,0.8227055668830872,0.811403751373291,object +images\test3.jpg,319,98,336,124,0.7061431407928467,0.6099064350128174,object +images\test3.jpg,263,96,292,130,0.8892360329627991,0.9002217054367065,object +images\test3.jpg,82,97,99,127,0.7150150537490845,0.5999637246131897,object +images\test3.jpg,60,97,79,126,0.8489217758178711,0.8284212350845337,object +images\test3.jpg,43,97,59,127,0.8280061483383179,0.8074440360069275,object +images\test3.jpg,11,98,25,127,0.6366590261459351,0.48199716210365295,object +images\test3.jpg,25,96,41,127,0.802230954170227,0.7624903917312622,object +images\test3.jpg,339,99,361,121,0.7216334342956543,0.5811344385147095,object +images\test3.jpg,232,94,260,130,0.9155247807502747,0.9486371278762817,object +images\test3.jpg,201,94,229,128,0.9187986850738525,0.9484440088272095,object +images\test3.jpg,170,94,199,127,0.9160935878753662,0.9459331035614014,object +images\test3.jpg,139,94,168,126,0.8102320432662964,0.7668249607086182,object +images\test3.jpg,174,75,186,92,0.5689058303833008,0.3771458566188812,object +images\test3.jpg,135,76,153,93,0.7392261028289795,0.6579591035842896,object +images\test3.jpg,341,74,362,96,0.6966795921325684,0.5545555353164673,object +images\test3.jpg,154,76,172,92,0.7639350295066833,0.6783729791641235,object +images\test3.jpg,316,73,339,95,0.7726395726203918,0.7056927680969238,object +images\test3.jpg,118,70,133,93,0.5749036073684692,0.42513307929039,object +images\test3.jpg,101,62,117,94,0.6462202072143555,0.5112002491950989,object +images\test3.jpg,23,59,38,94,0.6940279603004456,0.571251392364502,object +images\test3.jpg,292,66,314,95,0.7554222345352173,0.6978611350059509,object +images\test3.jpg,77,63,100,94,0.7075265645980835,0.6062454581260681,object +images\test3.jpg,39,57,56,95,0.795540452003479,0.7674035429954529,object +images\test3.jpg,57,55,74,95,0.832539439201355,0.8240576386451721,object +images\test3.jpg,8,56,23,94,0.6568794846534729,0.5208057165145874,object +images\test3.jpg,174,56,186,73,0.6362404823303223,0.5003753900527954,object +images\test3.jpg,154,55,172,74,0.8350518941879272,0.8043726682662964,object +images\test3.jpg,274,47,290,94,0.6930717825889587,0.5659434795379639,object +images\test3.jpg,134,54,152,74,0.78397536277771,0.7437763214111328,object +images\test3.jpg,116,53,132,66,0.6504586338996887,0.5227662324905396,object +images\test3.jpg,95,53,115,64,0.558854877948761,0.3553214371204376,object +images\test3.jpg,346,52,362,71,0.5529536604881287,0.30324655771255493,object +images\test3.jpg,318,53,345,71,0.7049825191497803,0.6078498959541321,object +images\test3.jpg,163,35,174,54,0.5687743425369263,0.36893466114997864,object