import os import re import cv2 import numpy as np import io import sys import numpy as np import timm import pyiqa import torch from transformers import DonutProcessor, VisionEncoderDecoderModel device = "cuda" if torch.cuda.is_available() else "cpu" licence_model = torch.hub.load( "ultralytics/yolov5", "custom", path="Licenseplate_model.pt", device="cpu", force_reload=True ) licence_model.cpu() detector = cv2.dnn.DetectionModel("res10_300x300_ssd_iter_140000_fp16.caffemodel", "deploy.prototxt") processor = DonutProcessor.from_pretrained("naver-clova-ix/donut-base-finetuned-docvqa") doc_qa_model = VisionEncoderDecoderModel.from_pretrained("naver-clova-ix/donut-base-finetuned-docvqa") device = "cuda" if torch.cuda.is_available() else "cpu" doc_qa_model.to(device) model = torch.hub.load( "ultralytics/yolov5", "custom", path="best.pt", device="cpu", force_reload=True ) model.cpu() classes = [ "gas-distribution-meter", "gas-distribution-piping", "gas-distribution-regulator", "gas-distribution-valve" ] class_to_idx = {'gas-distribution-meter': 0, 'gas-distribution-piping': 1, 'gas-distribution-regulator': 2, 'gas-distribution-valve': 3} idx_to_classes = {v:k for k,v in class_to_idx.items()} modelname = "resnet50d" model_weights = "best_classifer_model.pt" num_classes = len(classes) classifier_model = timm.create_model( "resnet50d", pretrained=True, num_classes=num_classes, drop_path_rate=0.05 ) classifier_model.load_state_dict(torch.load(model_weights, map_location=torch.device('cpu'))["model_state_dict"]) musiq_metric = pyiqa.create_metric('musiq-koniq', device=torch.device('cpu'))