vk
rbg-bgr-1
db5fd2f
from yolox_onnx import YOLOX_ONNX
import albumentations as A
import gradio as gr
import cv2
import numpy as np
def show_example(path):
return cv2.cvtColor(cv2.imread(path), cv2.COLOR_BGR2RGB)
def get_response(input_img,add_snow,add_rain,add_fog,confidence_threshold,iou_threshold):
'''
detects all possible pedestrians in the image and recognizes it
Args:
input_img (numpy array): one image of type numpy array
add_snow (boolean) : apply random snow augmentation
add_rain (boolean) : apply random rain augmentation
add_fog (boolean) : apply random fog augmentation
confidence_threshold (float) : minimum confidence prob required for bounding box candidate
iou_threshold (float) : intersection threshold above which bounding box will be neglected
Returns:
return img(numpy array): image with bounding boxes of pedestrians
'''
if not hasattr(input_img,'shape'):
return "invalid input",input_img
input_img=cv2.cvtColor(input_img,cv2.COLOR_RGB2BGR).astype(np.float32)
pedestrian_detector.predict(input_img,confidence_threshold,iou_threshold)
out_img=pedestrian_detector.output_img.astype(np.uint8)
if add_snow:
out_img = weather_transform["add_snow"] (image=out_img)['image']
elif add_rain:
out_img = weather_transform["add_rain"](image=out_img)['image']
elif add_fog:
out_img = weather_transform["add_fog"](image=out_img)['image']
else:
pass
return cv2.cvtColor(out_img,cv2.COLOR_BGR2RGB).astype(np.uint8)
if __name__ == "__main__":
weather_transform = {}
weather_transform["add_rain"] = A.RandomRain(brightness_coefficient=0.9, drop_width=1, blur_value=5, p=1)
weather_transform["add_snow"] = A.RandomSnow(brightness_coeff=2.5, snow_point_lower=0.3, snow_point_upper=0.5, p=1)
weather_transform["add_fog"] = A.RandomFog(fog_coef_lower=0.7, fog_coef_upper=0.8, alpha_coef=0.1, p=1)
pedestrian_detector=YOLOX_ONNX('models/pedestrian-detection-best95.onnx')
iface = gr.Interface(
cache_examples=False,
fn=get_response,
inputs=[gr.Image(type="numpy"), # Accepts image input
gr.Checkbox(label="add_snow"),
gr.Checkbox(label="add_rain"),
gr.Checkbox(label="add_fog"),
gr.Slider(0, 1,value=0.5, step=0.01, label="confidence_threshold"),
gr.Slider(0, 1,value=0.4, step=0.01, label="iou_threshold")],
examples=[[show_example('test-images/test1.jpg')],[show_example('test-images/test2.jpg')],[show_example('test-images/test3.jpg')]],
outputs=[gr.Image(type="numpy")],
title="Pedestrian Detection with All weather augmentation",
description="Upload images for pedestrian detection")
iface.launch()