Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from PIL import Image, ImageDraw | |
| from io import BytesIO | |
| import boto3 | |
| # Inicieu un laboratori a AWS i copieu les credencials de la sessi贸 (AWS CLI) | |
| ACCESS_KEY='ASIA47CRWWK5XKZMPTTZ' | |
| SECRET_KEY='Xn/8P+HXMq8aQF2ZjKQw78vPOQ4eQFTA7x+dppOE' | |
| SESSION_TOKEN='IQoJb3JpZ2luX2VjENb//////////wEaCXVzLXdlc3QtMiJIMEYCIQDYWsAhaEVjsOLcA0MIzQ2qRnLojp4GF2PpAJvK3NSCNgIhALfrOzfHBkfhpe2j/8N3r4ojUY8EVTSdmx4wMLrJj2LbKqMCCG8QABoMODkxMzc3MDcwNzc5IgyEYmwqgac9JNnYvyQqgALV5+iV04/MXnA9qCZCT87zVoUtq9xyYoAUh2T7PiitBU5dN+nEYojC1C8r4TD0Lbfe/9S20V8srAMwet6XEsybHIHu92FjVFHlzTlPYM3w0PiJg1km/X/4BEUo1J5htZSDThEL00euy4zOnXH93Xyia+tezh79kXYlVYkD7AC3WLxvQoPvfgOjiQXrSp6qYpdSvMCDZPSG2Sw48OpYH8BVyBaGhkan2pVmBKFWl2Jwh3HdTuNaoQff5XaW+syNXglWgeI7I1Mty0IbbiF3qCVAFiqtX2dHu6ol7TcMAUWcI1wubkDsPUVMbPOSWjiDOH/Gxr/gnPem4mveAWGqrgRKMOmwvMAGOpwB7K2oqI+KxwP01iHMT4GsI6b+L/a/HarsJr7kML43zlxQz53gFxmlD55HPDvlDBiKm7lEm8PGSOXzOkn28mW5Ro0Yd4W+z5vHpddWMDUnE/2V9Q9vvoKfXHOGUAQVjhqCZPINn8g39TUAyK35v1HgBVxQy/anthk7KSSJR9cSbluOBp47gPDSNKEyepRXJps4TZDn2tVUfPUrTMBd' | |
| s3_client = boto3.client('s3', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY, aws_session_token=SESSION_TOKEN) | |
| rekognition = boto3.client('rekognition', region_name='us-east-1', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY, aws_session_token=SESSION_TOKEN) | |
| s3BucketName = 'eac5' | |
| rutes = ["biblioteca.jpg", "skyline_tarragona.jpg"] | |
| def procesar(input_image): | |
| #s3_client = boto3.client('s3') | |
| #rekognition = boto3.client('rekognition') | |
| s3_client.upload_file(input_image, s3BucketName, input_image) | |
| #Font exercici de detecci贸 de cares | |
| image_file = s3_client.get_object( | |
| Bucket= "eac5", | |
| Key= input_image) | |
| image_bytes = image_file['Body'].read() | |
| image = Image.open(BytesIO(image_bytes)) | |
| response = rekognition.detect_labels( | |
| Image={ | |
| 'S3Object': { | |
| 'Bucket': s3BucketName, | |
| 'Name': input_image | |
| } | |
| }) | |
| resultats = [] | |
| # Crear un objecte ImageDraw | |
| draw = ImageDraw.Draw(image) | |
| for instance in response["Labels"]: | |
| #Busquem les noms i la confian莽a i les imprimim | |
| nom = instance["Name"] | |
| grau = instance["Confidence"] | |
| resultats.append('%s %d%%' % (nom, grau)) | |
| #Busquem les capses i les dibuixem | |
| for instance_label in instance["Instances"]: | |
| bounding_box = instance_label["BoundingBox"] | |
| # Calcular les coordenades de p铆xels per al quadre delimitador | |
| left = int(bounding_box["Left"] * image.width) | |
| top = int(bounding_box["Top"] * image.height) | |
| width = int(bounding_box["Width"] * image.width) | |
| height = int(bounding_box["Height"] * image.height) | |
| # Dibuixar el quadre delimitador a la imatge | |
| draw.rectangle([left, top, left + width, top + height], outline="red", width=2) | |
| return "\n".join(resultats), image | |
| example1 = s3_client.get_object( | |
| Bucket= s3BucketName, | |
| Key= "biblioteca.jpg") | |
| example1_bytes = example1['Body'].read() | |
| image1 = Image.open(BytesIO(example1_bytes)) | |
| example2 = s3_client.get_object( | |
| Bucket= s3BucketName, | |
| Key= "skyline_tarragona.jpg") | |
| example2_bytes = example2['Body'].read() | |
| image2 = Image.open(BytesIO(example2_bytes)) | |
| text_output = gr.Textbox(lines=10, label="Results") | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| gr.Markdown( | |
| """ | |
| Label Detection | |
| """) | |
| with gr.Row(): | |
| with gr.Column(): | |
| image_input = gr.Image(type='filepath') | |
| with gr.Row(): | |
| examples = gr.Examples(rutes, inputs=[image_input], fn=procesar, outputs=[text_output, image_input], cache_examples=True, label="Choose a sample image") | |
| upload_button = gr.UploadButton("Use your own image", file_types=["image"], file_count="single") | |
| with gr.Column(): | |
| text_output.render() | |
| upload_button.upload(procesar, upload_button, [text_output, image_input]) | |
| demo.launch() |