Gemma-sciling's picture
Upload app.py
60f4adf
import gradio as gr
import math
import os
import yolov5
import cv2
import torch
import numpy as np
# load model
model_face = torch.load('face_model.pt')
model_face.eval()
model_plate = yolov5.load('keremberke/yolov5m-license-plate', device="cpu")
# # set model parameters
model_plate.conf = 0.25 # NMS confidence threshold
model_plate.iou = 0.45 # NMS IoU threshold
model_plate.agnostic = False # NMS class-agnostic
model_plate.multi_label = False # NMS multiple labels per box
model_plate.max_det = 1000 # maximum number of detections per image
def blur_plates_image(image, plate_blur):
results_plate = model_plate(image, augment=True)
boxes_plate_list = results_plate.pred[0][:, :4].cpu().numpy().tolist()
for box in boxes_plate_list:
ROI = image[int(box[1]):int(box[3]), int(box[0]):int(box[2])]
blur_value = (int(plate_blur) * 2 - 1)
blur = cv2.GaussianBlur(ROI, (blur_value, blur_value), 20, cv2.BORDER_DEFAULT)
# Insert ROI back into image
image[int(box[1]):int(box[3]), int(box[0]):int(box[2])] = blur
return image
def blur_faces_image(image, face_blur):
results = model_face(np.array(image))
# parse results
boxes_face_list = results.pred[0][:, :4].cpu().numpy().tolist() # x1, y1, x2, y2
for box in boxes_face_list:
p1 = (int(box[0]), int(box[1]))
p2 = (int(box[2]), int(box[3]))
w = p2[0] - p1[0]
h = p2[1] - p1[1]
circle_center = ((p1[0] + p2[0]) // 2, (p1[1] + p2[1]) // 2)
circle_radius = int(math.sqrt(w * w + h * h) // 2)
ROI = np.zeros(image.shape, dtype='uint8')
cv2.circle(ROI, circle_center, circle_radius, (255, 255, 255), -1)
blur_value = (int(face_blur) * 2 - 1)
blur = cv2.GaussianBlur(image, (blur_value, blur_value), cv2.BORDER_DEFAULT)
image = np.where(ROI > 0, blur, image)
return image
def blur(image, face_blur, plate_blur):
image = blur_plates_image(image, plate_blur)
image = blur_faces_image(image, face_blur)
return image
sciling = "<div style='display: flex; justify-content: center; align-items: center;margin-bottom:30px'> <a href='https://sciling.com' target='_blank' style='display: flex; justify-content: center; align-items: center;'><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ8AAABECAYAAABebDjMAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF92lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMTEtMzBUMTQ6MDE6MDgrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMTEtMzBUMTQ6MDE6MDgrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTExLTMwVDE0OjAxOjA4KzAxOjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA1YmY1ZWZmLTQ5NjktNDZmOC1hYmUyLTMwZWQ5NmJjYzBhZCIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmI0ZjQxZGMwLTFlYzUtMmU0OC1iZDU0LWZjNWJhNTUwNmRmMCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjQ4M2I3YTg2LTE0MzMtNDRhNS1hYmJiLTNkOTQ1NzY1M2Y2MCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NDgzYjdhODYtMTQzMy00NGE1LWFiYmItM2Q5NDU3NjUzZjYwIiBzdEV2dDp3aGVuPSIyMDIwLTExLTMwVDE0OjAxOjA4KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDViZjVlZmYtNDk2OS00NmY4LWFiZTItMzBlZDk2YmNjMGFkIiBzdEV2dDp3aGVuPSIyMDIwLTExLTMwVDE0OjAxOjA4KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5w2WU0AAAYRklEQVR4nO2de7yVRdXHvxxRQU3RybtWhNfSxAYveU+F1BQzMyYMM99UvJWKgualUguNV0UzRY231KhRLLzl20VRLEu0UUxTNEpJy1IH8QYvcnv/mDl0OJz9XOd59j7nzPfz2R/4sGfWLM7Z+1nPM7PWb/UhEolEIpUhhe4LDAF2Abbyr0HAAGAt4H2dpiwAFvs/5wFvANa//gG84F8vAi8Zq5ZW/X+ogj5FJkmh+wAb4n5wRVkIvN5qPzgp9Jq4/1vfEmbeMlbNC+TS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' alt='Descripción de la imagen' style='display: block; margin: 0 auto; max-width: 100%; height: auto;'></a></div>"
interface = gr.Interface(
fn=blur,
inputs=[
gr.Image(source="upload", type="numpy", optional=False),
gr.Slider(minimum=0, maximum=30, step=1, value=5, label="Face Blur Intensity"),
gr.Slider(minimum=0, maximum=30, step=1, value=5, label="Plate Blur Intensity"),
],
outputs="image",
title= sciling + "Plate Licenses and Faces Blur",
enable_queue=False,
sidebar="<img src='images/22.png' width='100%'/>",
description="This app uses image processing techniques to automatically blur out license plates and faces in photos. Protect the privacy of individuals and comply with regulations by obscuring sensitive information in your images with ease.",
examples=[["images/22.png", 5, 5], ["images/18.jpg", 5, 5]],
css=".gradio-container {margin-top:80px !important;};.g-window {background-image: url('logo.png'); background-size: cover;}",
).launch()