Spaces:
Sleeping
Sleeping
| import os | |
| import cv2 | |
| import gradio as gr | |
| import numpy as np | |
| # from configs.config import Configuration | |
| from scripts.charExtraction import CharExtraction | |
| from scripts.bboxAnnotator import BBOXAnnotator | |
| wPathPlat = "licence_plat.pt" | |
| wPathChar = "licence_character.pt" | |
| classList = np.array(['A','B','C','D','E','F','G','H','I','J','K','L','M', | |
| 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', | |
| '0','1','2','3','4','5','6','7','8','9']) | |
| sizePlat = (416,200) | |
| # imageSample = Configuration['imageSample'] | |
| extractor = CharExtraction(wPlatePath=wPathPlat, wCharacterPath=wPathChar, classList=classList, | |
| sizePlate=sizePlat, conf=0.5) | |
| annotator = BBOXAnnotator() | |
| def getAnnotatedImage(frame, conf): | |
| bbox, plateNum, confidence = extractor.predict(image=frame, conf=conf) | |
| annotateImg, plateNum = annotator.draw_bbox(frame, bbox, plateNum) | |
| prob_dict = {key: value for key, value in zip(plateNum, confidence)} | |
| # pathOu = os.path.join(os.path.abspath(''), "output/sample.jpg") | |
| # cv2.imwrite(pathOu, annotateImg) | |
| return annotateImg, prob_dict | |
| def video_identity(frame, conf=0.45): | |
| image, plateNumber = getAnnotatedImage(frame, conf) | |
| return image, plateNumber | |
| demo = gr.Interface(fn=video_identity, | |
| inputs=[gr.Image(label='Input image'), gr.Slider(minimum=0.1, maximum=1.0, label='Conf value')], | |
| outputs=[gr.Image(label='Result'), gr.Label(label='Plate Number Detected')], | |
| examples = [["sample_image2.jpg"], ["sample_image3.jpg"], ["sample_image5.jpg"], ["sample_image6.jpg"]], | |
| cache_examples=True) | |
| if __name__ == "__main__": | |
| demo.queue() | |
| demo.launch() |