| import boto3 | |
| import gradio as gr | |
| from transformers import pipeline | |
| from PIL import Image | |
| import matplotlib.pyplot as plt | |
| import matplotlib.patches as patches | |
| aws_access_key_id='ASIAWDEJB3WQULQXBS72' | |
| aws_secret_access_key='OrMNfIfCZD7knsUvs3RQ3VpUNoE/hX2bFXRqpOWx' | |
| aws_session_token='IQoJb3JpZ2luX2VjELb//////////wEaCXVzLXdlc3QtMiJIMEYCIQD5JVTnkUfl7ehFSSNW+KpDzhtEsZKYVn4piDOjVMmzZgIhANfdBnBPS4oU9YLaxmQfmTVnrfYmhi5sxGpUt7Q/NqCqKqMCCE4QARoMNDE5MDQ2NzQzNDU3IgwN3iW0SrX7qURt0wcqgAL/dVk7U6i/X6B6kItJkl9FfpaKT8Yj3vrjGTuUILGR+uArJkWJV0/4oeL35wyCkAMD9rvmJYspNEqZbg/IT4DJrXJGX4nlL7vJg9J9xrtPpZIrAa7EMgE1q/zz6d9UNMnyeqnV+ARZ6D2/Wa3uxEUZ47y6p7WPBW0fJVnoQtpdEO6hJ13CL69QCb6QWkr2eg9Ei2DCwboWY3DKTaEbTwsP/OZ2pkEznFM52ub1PSNCOsEnoCJxytNgBXaLdG30FeAmvaLeCispXppHpV8ofiMiEEXo8G9VcubN/vPASIizbF4dgjIj8lVYWkBTIw+BYilHuPDtUdOJNm3EBGyMmd6qMLSctcAGOpwBuGHNR2QZIimzBqUJlEJcLi4AGbBxwp4R9uV/2hqLcOG1/PAOhp4rq5cub587mSa1E47BPNHj8/WqQ+sh1CprvoVe8zI2D4nuXIkDRnkjFdlpbWyjJswbo7IlTCRxnJjsfcURuCuGYyyZuhuiUoo6JgMqGcXeQ4sHNns+4Qf4U6vrMUUKG6k/vyDvxXoSpbKm2XcPQ45HELl7cyIu' | |
| s3 = boto3.client('s3',aws_access_key_id=aws_access_key_id,aws_secret_access_key=aws_secret_access_key,aws_session_token=aws_session_token,region_name='us-east-1') | |
| nom_bucket = 'jiongzem3eac5bucket' | |
| rekognition = boto3.client('rekognition',aws_access_key_id=aws_access_key_id,aws_secret_access_key=aws_secret_access_key,aws_session_token=aws_session_token,region_name='us-east-1') | |
| def detect_labels(image_path): | |
| s3.upload_file(image_path, nom_bucket, 'image_predict.jpg') | |
| response = rekognition.detect_labels(Image={'S3Object': {'Bucket': nom_bucket, 'Name': 'image_predict.jpg'}}, MaxLabels=10) | |
| s3.delete_object(Bucket=nom_bucket, Key='image_predict.jpg') | |
| img = Image.open(image_path) | |
| plt.imshow(img) | |
| ax = plt.gca() | |
| results_label = [] | |
| labels = response['Labels'] | |
| for label in labels : | |
| for instance in label['Instances'] : | |
| bbox = instance['BoundingBox'] | |
| left = bbox['Left'] * img.width | |
| top = bbox['Top'] * img.height | |
| width = bbox['Width'] * img.width | |
| height = bbox['Height'] * img.height | |
| rect = patches.Rectangle((left, top), width, height, linewidth=1, edgecolor='r', facecolor='none') | |
| ax.add_patch(rect) | |
| label_text = label['Name'] + ' (' + str(round(label['Confidence'], 2)) + '%)' | |
| results_label.append(label_text) | |
| plt.text(left, top - 2, label_text, color='r', fontsize=8) | |
| plt.show() | |
| plt.savefig('result.png') | |
| plt.close() | |
| return results_label, Image.open('result.png') | |
| with gr.Blocks() as demo: | |
| gr.Markdown("Label detection.") | |
| with gr.Row(): | |
| with gr.Column(): | |
| input_image = gr.Image(visible=False,type="filepath") | |
| image_box = gr.Image() | |
| with gr.Row(): | |
| examples = gr.Examples( | |
| examples=[ | |
| ['./image_1.jpg'], | |
| ['./image_2.jpg'], | |
| ], | |
| inputs=input_image, | |
| ) | |
| btn = gr.UploadButton("Use your own image", file_count="single") | |
| labels_text = gr.Textbox("Results") | |
| btn.upload(fn=detect_labels, inputs=btn, outputs=[labels_text,image_box]) | |
| input_image.change(fn=detect_labels, inputs=input_image, outputs=[labels_text,image_box]) | |
| demo.launch(debug=True) |