prakrutpatel's picture
Update app.py
91e037a
raw
history blame
2.87 kB
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()