config.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. from ultralytics import YOLO
  2. from paddleocr import PaddleOCR
  3. import platform, torch, os, json
  4. import pydantic
  5. os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
  6. barcode_type_list = ['RFID吊牌', '普通吊牌', '洗水唛', '饰品洗水唛', '饰品吊牌']
  7. if platform.system().lower() == "linux":
  8. model_dir = "./ocr_needs/yolo-material/yolo_v8_model/"
  9. ocr_det = "./ocr_needs/ocr_models/en_PP-OCRv3_det_infer"
  10. ocr_rec = "./ocr_needs/ocr_models/en_PP-OCRv4_rec_infer"
  11. ocr_det_ch = "./ocr_needs/ocr_models/ch_PP-OCRv4_det_infer"
  12. ocr_rec_ch = "./ocr_needs/ocr_models/ch_PP-OCRv4_rec_infer"
  13. ocr_cls = "./ocr_needs/ocr_models/ch_ppocr_mobile_v2.0_cls_infer"
  14. ocr_images_dir = './ocr_workspace/'
  15. ttf_path = './ocr_needs/MiSans-Heavy.ttf'
  16. header = '/data'
  17. address = 'ocr.gloria.com.cn'
  18. port = 8066
  19. file_url = f'http://{address}:{port}{header}'
  20. # 检查CUDA是否可用
  21. device = 'cuda' if torch.cuda.is_available() else 'cpu'
  22. print(f'device: {device} is used')
  23. dirs_to_check = [model_dir, ocr_images_dir]
  24. # ocr = PaddleOCR(use_angle_cls=True, lang='en', show_log=False, det_model_dir=ocr_det,
  25. # rec_model_dir=ocr_rec, cls_model_dir=ocr_cls)
  26. ocr = PaddleOCR(use_angle_cls=True, lang='ch', show_log=False, det_model_dir=ocr_det_ch,
  27. rec_model_dir=ocr_rec_ch, cls_model_dir=ocr_cls, use_gpu=True)
  28. print('ocr model is ready!')
  29. for directory in dirs_to_check:
  30. if not os.path.exists(directory):
  31. os.makedirs(directory)
  32. print(f"Directory {directory} created.")
  33. else:
  34. print(f"Directory {directory} already exists.")
  35. # Define the model path
  36. model_path = os.path.join(model_dir, "obb-s-best-4.pt")
  37. model = YOLO(model_path).to(device)
  38. model.fuse()
  39. print('yolo model is ready !')
  40. sql_config = {
  41. 'user': 'root',
  42. 'password': 'Ywkj2020',
  43. 'host': '10.40.0.30',
  44. 'db': 'unique-code'
  45. }
  46. color_config = {
  47. 'user': 'IT',
  48. 'password': 'it@2022*',
  49. 'host': '10.40.0.81',
  50. 'database': 'goelia_erp',
  51. }
  52. class Search(pydantic.BaseModel):
  53. matio_id: str = None
  54. item_num : str = None
  55. uploadStartTime : str = None
  56. uploadEndTime : str = None
  57. ocrStartTime : str = None
  58. ocrEndTime : str = None
  59. difference : str = None
  60. pageSize : int = 20
  61. pageNum : int = 1
  62. barcode_type: str = None
  63. class Matio(pydantic.BaseModel):
  64. barcode: str = ''
  65. matio_id: str = ''
  66. image_origin_path : str = 'None'
  67. upload_time : str = 'None'
  68. barcode_type : str = 'RFID吊牌'
  69. class ID(pydantic.BaseModel):
  70. id: str = None
  71. class Item(pydantic.BaseModel):
  72. name: str
  73. description: str