config.py 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import numpy as np
  2. #CLIENT_URL = 'http://172.16.20.23:8081/'
  3. SAVE_IMG_PATH = '/mnt/xcd/code/ai_test/static/images' # 图片保存在服务器的实际位置
  4. POST_IMG_PATH1 = 'http://172.16.20.163:5001/images' # 通过端口映射post发送能够访问的位置 焊接考核科目1
  5. POST_IMG_PATH2 = 'http://172.16.20.163:5002/images' #焊接考核科目2
  6. POST_IMG_PATH3 = 'http://172.16.20.163:5003/images' #平台搭设科目1,劳保穿戴
  7. POST_IMG_PATH4 = 'http://172.16.20.163:5004/images' #平台搭设科目2,搭建和拆除
  8. POST_IMG_PATH5 = 'http://172.16.20.163:5005/images'#吊篮清洗
  9. #焊接考核视频流
  10. # Define paths to RTSP streams
  11. WELDING_CH1_RTSP = 'rtsp://admin:yaoan1234@172.16.22.230/cam/realmonitor?channel=1&subtype=0'#焊机开关视频
  12. WELDING_CH2_RTSP = 'rtsp://admin:yaoan1234@172.16.22.231/cam/realmonitor?channel=1&subtype=0'#焊台视频
  13. WELDING_CH3_RTSP = 'rtsp://admin:yaoan1234@172.16.22.233/cam/realmonitor?channel=1&subtype=0'#检查油桶视频
  14. WELDING_CH4_RTSP = 'rtsp://admin:yaoan1234@172.16.22.232/cam/realmonitor?channel=1&subtype=0'#检查总开关视频
  15. WELDING_CH5_RTSP = 'rtsp://admin:yaoan1234@172.16.22.234/cam/realmonitor?channel=1&subtype=0'#检查面具手套接地线视频
  16. WELDING_CH6_RTSP = 'rtsp://admin:yaoan1234@172.16.22.235/cam/realmonitor?channel=1&subtype=0'#劳保用品穿戴视频
  17. WELDING_CH1_MODEL="/mnt/xcd/code/ai_test/weights/ch1_welding_switch_813.pt"
  18. WELDING_CH2_MODEL="/mnt/xcd/code/ai_test/weights/ch2_welding_desk_cls_813.pt"
  19. WELDING_CH3_MODEL="/mnt/xcd/code/ai_test/weights/ch3_oil_barrel_detect_813.pt"
  20. WELDING_CH4_MODEL="/mnt/xcd/code/ai_test/weights/ch4_main_switch_cls_813.pt"
  21. WELDING_CH5_MODEL="/mnt/xcd/code/ai_test/weights/ch5_mask_gloves_wire_detect_813.pt"
  22. WELDING_CH6_MODEL='/mnt/xcd/code/ai_test/weights/ch6_wearing_detect_813.pt'
  23. HUMAN_DETECTION_MODEL="/mnt/xcd/code/ai_test/weights/yolov8n.pt"#人体检测模型
  24. # Define paths to models
  25. WELDING_MODEL_PATHS = [
  26. WELDING_CH1_MODEL,
  27. WELDING_CH2_MODEL,
  28. WELDING_CH3_MODEL,
  29. WELDING_CH4_MODEL,
  30. WELDING_CH5_MODEL
  31. ]
  32. WELDING_VIDEO_SOURCES = [
  33. WELDING_CH1_RTSP,
  34. WELDING_CH2_RTSP,
  35. WELDING_CH3_RTSP,
  36. WELDING_CH4_RTSP,
  37. WELDING_CH5_RTSP
  38. ]
  39. WELDING_WEARING_MODEL=[
  40. HUMAN_DETECTION_MODEL,
  41. WELDING_CH6_MODEL
  42. ]
  43. WELDING_WEARING_VIDEO_SOURCES= WELDING_CH6_RTSP
  44. #WEAR_DETECTION_VIDEO_SOURCES= "/home/dxc/special_test/ch1.mp4"
  45. # 劳保用品 指定要检测的区域 (xmin, ymin, xmax, ymax)
  46. WEAR_DETECTION_AREA = (350, 0, 1400, 1080)
  47. # 头盔检测区域(xmin, ymin, xmax, ymax)
  48. WELDING_REGION1=(1499,339,1839,723)
  49. # 油桶危险区域(多边形)
  50. WELDING_REGION2 = np.array([[607, 555], [454, 0], [2560, 0], [2560, 1440], [430, 1440]], np.int32)
  51. # 搭铁夹连接焊台位置
  52. WELDING_REGION3 = np.array([[1613, 627], [1601, 658], [1697, 987], [1710, 962]], np.int32)
  53. ####平台搭设视频流
  54. PLATFORM_CH1_RTSP='rtsp://admin:yaoan1234@172.16.22.241/cam/realmonitor?channel=1&subtype=0'#检测穿戴
  55. PLATFORM_CH2_RTSP='rtsp://admin:yaoan1234@172.16.22.240/cam/realmonitor?channel=1&subtype=0'#脚手架搭建
  56. PLATFORM_CH3_RTSP='rtsp://admin:yaoan1234@172.16.22.243/cam/realmonitor?channel=1&subtype=0'#脚手架搭建
  57. PLATFORM_CH1_MODEL='/mnt/xcd/code/ai_test/weights/platform_ch1_wearing.pt'
  58. PLATFORM_CH2_MODEL='/mnt/xcd/code/ai_test/weights/high_work_obb_final.pt'
  59. # Define paths to input videos
  60. #焊接劳保检测相关参数
  61. #################平台搭设检测相关参数
  62. PLATFORM_WEARING_MODEL=[
  63. HUMAN_DETECTION_MODEL,
  64. PLATFORM_CH1_MODEL
  65. ]
  66. PLATFORM_WEARING_VIDEO_SOURCES=PLATFORM_CH1_RTSP
  67. PLATFORM_SETUP_VIDEO_SOURCES=PLATFORM_CH2_RTSP
  68. PLATFORM_SETUP_MODEL=PLATFORM_CH2_MODEL
  69. #吊篮清洗
  70. BASKET_CLEANING_CH4_POSE_MODEL='/mnt/xcd/code/ai_test/weights/yolov8s-pose1.pt'
  71. BASKET_CLEANING_CH5_DETECT_MODEL='/mnt/xcd/code/ai_test/weights/yolov8s1.pt'
  72. BASKET_CLEANING_CH6_POSE_MODEL='/mnt/xcd/code/ai_test/weights/yolov8s-pose2.pt'
  73. BASKET_CLEANING_CH6_DETECT_MODEL='/mnt/xcd/code/ai_test/weights/yolov8s2.pt'
  74. BASKET_CLEANING_CH4_RTSP='rtsp://admin:yaoan1234@172.16.22.237/cam/realmonitor?channel=1&subtype=0'
  75. BASKET_CLEANING_CH5_RTSP='rtsp://admin:yaoan1234@172.16.22.239/cam/realmonitor?channel=1&subtype=0'
  76. BASKET_CLEANING_CH6_RTSP='rtsp://admin:yaoan1234@172.16.22.242/cam/realmonitor?channel=1&subtype=0'
  77. BASKET_CLEANING_VIDEO_SOURCES=[BASKET_CLEANING_CH4_RTSP,
  78. BASKET_CLEANING_CH5_RTSP,
  79. BASKET_CLEANING_CH6_RTSP,
  80. BASKET_CLEANING_CH6_RTSP]
  81. BASKET_CLEANING_MODEL_SOURCES=[BASKET_CLEANING_CH4_POSE_MODEL,
  82. BASKET_CLEANING_CH5_DETECT_MODEL,
  83. BASKET_CLEANING_CH6_POSE_MODEL,
  84. BASKET_CLEANING_CH6_DETECT_MODEL]
  85. #
  86. #悬挂机构区域,分为四个区域 D4
  87. BASKET_SUSPENSION_REGION = np.array([
  88. [[668, 310], [800, 310], [800, 1070], [668, 1070]],
  89. [[1690, 310], [1750, 310], [1750, 710], [1690, 710]],
  90. [[1350, 340], [1405, 340], [1405, 720], [1350, 720]],
  91. [[550, 385], [635, 385], [635, 880], [550, 880]]
  92. ], np.int32)
  93. BASKET_STEEL_WIRE_REGION = np.array([
  94. [(374, 846), (601, 970), (630, 900), (441, 786)], # 右一多边形区域
  95. [(1518, 736), (1649, 945), (2005, 917), (1888, 677)] # 右二多边形区域
  96. # [(1293, 0), (1867, 935), (1904, 906), (1354, 9)], # 左边多边形区域
  97. ], np.int32)#钢丝绳区域,暂时没有钢丝绳的区域
  98. BASKET_PLATFORM_REGION = np.array([[450, 935], [370, 1275], [1685, 1350], [1600, 720]], np.int32)
  99. BASKET_LIFTING_REGION = np.array([
  100. [[1275, 975], [1270, 1160], [1500, 1160], [1480, 975]],
  101. [[570, 1015], [560, 1150], [820, 1190], [832, 1060]]
  102. ],np.int32)
  103. BASKET_SAFETY_LOCK_REGION = np.array([
  104. [[1635, 813], [1742, 927], [1955, 910], [1906, 747]],
  105. [[650, 944], [800, 1000], [800, 923], [680, 872]]
  106. ], np.int32)
  107. BASKET_ELECTRICAL_SYSTEM_REGION = np.array([[950, 680], [930, 880], [1360, 910], [1250, 660]], np.int32)
  108. BASKET_CLEANING_OPERATION_REGION = np.array([[668, 310], [800, 310], [800, 1070], [668, 1070]], np.int32)
  109. BASKET_EMPTY_LOAD_REGION = np.array([(752, 855), (712, 969), (836, 1020), (896, 918)], np.int32)