ysharma's picture
ysharma HF staff
Update index.html
b52a27f verified
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Gradio-Lite: Serverless Gradio Running Entirely in Your Browser</title>
<meta name="description" content="Gradio-Lite: Serverless Gradio Running Entirely in Your Browser">
<script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.css" />
<style>
html, body {
margin: 0;
padding: 0;
height: 100%;
}
</style>
</head>
<body>
<gradio-lite>
<gradio-file name="app.py" entrypoint>
import gradio as gr
from transformers_js_py import pipeline
from filters import convert
pipe = await pipeline('object-detection', 'Xenova/detr-resnet-50')
async def fn(image):
result = await pipe(image)
return result
#demo = gr.Interface.from_pipeline(pipe)
async def predict(image):
result = await pipe(image)
print(result)
result = convert(result)
print(result)
return image, result
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type='pil'),
outputs=gr.AnnotatedImage(),
title='On-Device Object-Detection with Gradio-Lite & Transformers.js'
)
demo.launch()
</gradio-file>
<gradio-file name="filters.py">
def convert(input_data):
# Initialize the output list
result_labels = []
# Iterate over each item in the input data
for item in input_data:
# Extract the label
label = item['label']
# Extract the bounding box coordinates
xmin = item['box']['xmin']
ymin = item['box']['ymin']
xmax = item['box']['xmax']
ymax = item['box']['ymax']
# Convert coordinates into the required output format (list of coordinates)
coordinates = [xmin, ymin, xmax, ymax]
# Append the tuple of coordinates and label to the output list
result_labels.append((coordinates, label))
# Return the output list
return result_labels
</gradio-file>
<gradio-requirements>
# Same syntax as requirements.txt
transformers-js-py
</gradio-requirements>
</gradio-lite>
</body>
</html>