Spaces:
Sleeping
Sleeping
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() |