File size: 2,873 Bytes
ea229ac
c2985c9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b8b88b4
 
 
 
 
 
 
19c8ff0
32676b7
407b708
 
 
 
 
 
c2985c9
 
 
 
 
30cd121
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91e037a
 
30cd121
ea229ac
 
 
445cf99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import gradio as gr
import numpy as np
import os
import six
import six.moves.urllib as urllib
import sys
import tarfile
import tensorflow as tf
import zipfile
import pathlib
import json
import matplotlib.pyplot as plt
from datetime import datetime
from collections import defaultdict
from io import StringIO
from matplotlib import pyplot as plt
from PIL import Image
from IPython.display import display
import os
import pathlib

if "models" in pathlib.Path.cwd().parts:
  while "models" in pathlib.Path.cwd().parts:
    os.chdir('..')
elif not pathlib.Path('models').exists():
  os.system('git clone --depth 1 https://github.com/tensorflow/models')
os.chdir('models/research/')
os.system('protoc object_detection/protos/*.proto --python_out=.')
os.system('cp object_detection/packages/tf2/setup.py .')
os.system('python -m pip install .')
from object_detection.utils import ops as utils_ops
from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_utils
# patch tf1 into `utils.ops`
utils_ops.tf = tf.compat.v1

# Patch the location of gfile
tf.gfile = tf.io.gfile
os.system('python object_detection/builders/model_builder_tf2_test.py')
def load_model(model_dir):
  model = tf.saved_model.load(str(model_dir))
  model = model.signatures['serving_default']
  return model
os.system('mkdir "Tortoise"')
os.chdir('Tortoise/')
os.system('curl -L "https://app.roboflow.com/ds/jCjxJgk04M?key=3JE38XqESy" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip')
os.chdir('..')
os.system('mkdir "COCO"')
os.chdir('COCO/')
os.system('curl -L "https://app.roboflow.com/ds/Yb2OGQm2xb?key=pbWEWpS5ec" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip')
os.chdir('..')

PATH_TO_TEST_IMAGES_DIR = pathlib.Path("COCO" + '/test/')
TEST_IMAGE_PATHS = sorted(list(PATH_TO_TEST_IMAGES_DIR.glob("*.jpg")))
dataset = 'Tortoise'
test_record_fname = dataset + '/test/tortoise.tfrecord'
train_record_fname = dataset + '/train/tortoise.tfrecord'
label_map_pbtxt_fname = dataset + '/train/tortoise_label_map.pbtxt'
PATH_TO_LABELS = dataset + '/train/tortoise_label_map.pbtxt'
category_index = label_map_util.create_category_index_from_labelmap(PATH_TO_LABELS, use_display_name=False)


test_data_json = 'COCO/test/_annotations.coco.json'
with open(test_data_json, 'r') as f:
  test_metadata = json.load(f)
for im in test_metadata['images']:
            im['date_captured'] = str(datetime.strptime(im['file_name'][6:21],"%Y%m%d-%H%M%S"))

image_id_to_datetime = {im['id']:im['date_captured'] for im in test_metadata['images']}
image_path_to_id = {im['file_name']: im['id'] 
                    for im in test_metadata['images']}

faster_rcnn_model = load_model('../../Faster RCNN/saved_model')
    
def segment(image):
    pass  # Implement your image segmentation model here...

gr.Interface(fn=segment, inputs="image", outputs="image").launch()