Files
AI_ENGINE_0.5/ai_engine_const.py
2024-03-04 14:22:56 +09:00

410 lines
10 KiB
Python

# -*- coding: utf-8 -*-
from REST_AI_ENGINE_CONTROL.app import models as M
import project_config
import os
# MQTT
MQTT_HOST = 'localhost'
# source
PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
DAOOL_RTSP = "rtsp://daool:Ekdnfeldpsdptm1@211.63.236.6:52554/axis-media/media.amp"
RTSP = "rtsp://223.171.144.245:8554/cam/0/low"
STREAMS_PATH = PROJECT_PATH + "/DL/wd.streams"
CON_VIDEO_PATH = PROJECT_PATH +"/AI_ENGINE/DATA/CON.mp4"
FACE_VIDEO_PATH = PROJECT_PATH +"/AI_ENGINE/DATA/FR.mov"
PPE_VIDEO_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/PPE.mp4"
WD_VIDEO_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/WD_2.mp4"
if project_config.CONFIG == project_config.CONFIG_AISERVER:
# <aiserver>
#MQTT
MQTT_PORT = 50083
MQTT_USER_ID = 'kepco'
MQTT_USER_PW = '!kepco1234'
#source
RTSP = "rtsp://223.171.144.245:8554/cam/0/low"
CON_SOURCE = CON_VIDEO_PATH
FR_SOURCE = FACE_VIDEO_PATH
PPE_SOURCE = PPE_VIDEO_PATH
WD_SOURCE = WD_VIDEO_PATH
#SFTP
FTP_IP = "106.255.245.242"
FTP_PORT = 2022
FTP_ID = "kepri_if_user"
FTP_PW = "kepri!123"
FTP_LOCATION = "/home/agics-dev/kepri_storage/rndpartners/"
FTP_CON_FILE_NAME = "3"
FTP_FR_FILE_NAME = "1"
FTP_PPE_FILE_NAME = "2"
FTP_WD_FILE_NAME = "5"
FTP_BI_FILE_NAME = "4"
elif project_config.CONFIG == project_config.CONFIG_MG:
#<KEPCO-MG>
# #MQTT
# MQTT_PORT = 1883
# MQTT_USER_ID = 'admin'
# MQTT_USER_PW = 'admin'
MQTT_PORT = 11883
MQTT_USER_ID = 'kepco'
MQTT_USER_PW = '!kepco1234'
# #source
# RTSP = "rtsp://10.20.10.1:8554/cam/0/low"
# RTSP = "rtsp://192.168.39.20:8554/cam/0/low"
RTSP = "rtsp://admin:admin1263!@10.20.10.99:28554/onvif/media?profile=Profile2"
CON_SOURCE = RTSP
FR_SOURCE = RTSP
PPE_SOURCE = RTSP
WD_SOURCE = RTSP
# ----------- <test> ----------
#CON_SOURCE = "rtsp://219.250.188.204:8554/con"
#FR_SOURCE = "rtsp://219.250.188.205:8554/fr"
#PPE_SOURCE = "rtsp://219.250.188.206:8554/ppe"
#WD_SOURCE = "rtsp://219.250.188.207:8554/wd"
# ----------- <test> ----------
if project_config.DEBUG_MODE:
CON_SOURCE = CON_VIDEO_PATH
FR_SOURCE = FACE_VIDEO_PATH
PPE_SOURCE = PPE_VIDEO_PATH
WD_SOURCE = WD_VIDEO_PATH
# #SFTP
FTP_IP = "106.255.245.242"
FTP_PORT = 2022
FTP_ID = "kepri_if_user"
FTP_PW = "kepri!123"
FTP_LOCATION = "/home/agics-dev/kepri_storage/rndpartners/"
# ----------- <test> ----------
# FTP_IP = "211.63.236.6"
# FTP_PORT = 50002
# FTP_ID = "fermat"
# FTP_PW = "1234"
# FTP_LOCATION = "/home/fermat/work/rest_ftp_test"
# ----------- <test> ----------
FTP_CON_FILE_NAME = "3"
FTP_FR_FILE_NAME = "1"
FTP_PPE_FILE_NAME = "2"
FTP_WD_FILE_NAME = "5"
FTP_BI_FILE_NAME = "4"
else :
# <fermat>
# MQTT(dev3)
MQTT_PORT = 1883
MQTT_USER_ID = 'admin'
MQTT_USER_PW = '12341234'
RTSP = DAOOL_RTSP
CON_SOURCE = CON_VIDEO_PATH
FR_SOURCE = FACE_VIDEO_PATH
PPE_SOURCE = PPE_VIDEO_PATH
WD_SOURCE = WD_VIDEO_PATH
# FTP
FTP_IP = "192.168.200.232"
FTP_PORT = 22
FTP_ID = "fermat"
FTP_PW = "1234"
FTP_LOCATION = "/home/fermat/work/rest_ftp_test"
FTP_CON_FILE_NAME = "c"
FTP_FR_FILE_NAME = "a"
FTP_PPE_FILE_NAME = "b"
FTP_WD_FILE_NAME = "e"
FTP_BI_FILE_NAME = "d"
#FTP result path
FTP_CON_RESULT = PROJECT_PATH + '/AI_ENGINE/DATA/ftp_data/con_setup.jpg'
FTP_FR_RESULT = PROJECT_PATH + '/AI_ENGINE/DATA/ftp_data/fr.jpg'
FTP_PPE_RESULT = PROJECT_PATH + '/AI_ENGINE/DATA/ftp_data/ppe.jpg'
FTP_WD_RESULT = PROJECT_PATH + '/AI_ENGINE/DATA/ftp_data/wd.jpg'
FTP_BI_RESULT = PROJECT_PATH + '/AI_ENGINE/DATA/ftp_data/bi.jpg'
# TOPIC
MQTT_CON_TOPIC = '/AI_KEPCO/AI_OD_CON_SETUP_DETECT/REPORT'
MQTT_FR_TOPIC = '/AI_KEPCO/AI_FACE_RECOGNIZE/REPORT'
MQTT_PPE_TOPIC = '/AI_KEPCO/AI_OD_PPE_DETECT/REPORT'
MQTT_PPE_FR_TOPIC = '/AI_KEPCO/AI_OD_PPE_FR_DETECT/REPORT' # test topic
MQTT_WD_TOPIC = '/AI_KEPCO/AI_OD_WORK_DETECT/REPORT'
MQTT_BI_TOPIC = '/AI_KEPCO/AI_BI_DETECT/REPORT'
# AI_MODEL
MODEL_CON = 'CON'
MODEL_PPE = 'PPE'
MODEL_WORK_DETECT = 'WD'
MODEL_FACE_RECOGNIZE = 'FR'
MODEL_BIO_INFO = 'BI'
# YOLO
BBOX_XYXY = 'XYXY'
BBOX_XYWH = 'XYWH'
# WD
WD_FRAME_COUNT = 80
# FACE_RECOGNITION
FACE_EVOLUTION_DISTANCE = 0.4
WORKER1_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco1.jpg"
WORKER2_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco1_1.jpg"
WORKER3_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco1_2.jpg"
if project_config.DEBUG_MODE:
WORKER1_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/facerec_worker1.png"
WORKER2_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/facerec_worker2.png"
WORKER3_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/facerec_worker3.png"
WORKER4_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/jangys_re.jpg"
WORKER5_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/whangsj.jpg"
WORKER6_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kimjw_re.jpg"
WORKER7_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/ksy_re.jpg"
WORKER8_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/agics.jpg"
WORKER9_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco1.jpg"
WORKER10_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_1.jpg"
WORKER11_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_2.jpg"
WORKER12_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_3.jpg"
WORKER13_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_4.jpg"
WORKER14_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_5.jpg"
WORKER15_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_6.jpg"
WORKER16_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_7.jpg"
WORKER17_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_8.jpg"
WORKER18_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_9.jpg"
WORKER19_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_10.jpg"
WORKER20_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_11.jpg"
WORKER21_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_12.jpg"
WORKER22_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/kepco2_13.jpg"
# WORKER16_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/yunikim.jpg"
# WORKER17_IMG_PATH = PROJECT_PATH + "/AI_ENGINE/DATA/facerec_worker3.png"
SIGNAL_INFERENCE = 'inference'
SIGNAL_STOP = 'stop'
SOURCE_CHANGED_MSG = "INPUT SOURCE CHANGED"
IMG_CHANGED_MSG = "INPUT IMAGE CHANGED"
INVALID_IMG_MSG = "INVALID IMAGE SIZE"
DEMO_KEY_NAME_SNAPSHOT_SFTP = "SnapshotSFTP"
OFF_CLASS_LIST = [2,4,7,9,11,15,17,19]
OFF_TRIGGER_CLASS_LIST = [2,4] #TODO(jwkim):BIXPO test (helmet,gloves)
AI_ENGINE_INIT = {
"version": project_config.PROJECT_VERSION,
"ai_engine_status": "init",
"demo": {
"ftp": {
"ip": FTP_IP,
"port": FTP_PORT,
"id": FTP_ID,
"pw": FTP_PW,
"location": FTP_LOCATION,
"file_con_setup": FTP_CON_FILE_NAME,
"file_face": FTP_FR_FILE_NAME,
"file_ppe": FTP_PPE_FILE_NAME,
"file_wd": FTP_WD_FILE_NAME,
"file_bi": FTP_BI_FILE_NAME
}
},
"input_video": [
{
"name": "CON_video",
"model": M.AEAIModelType.CON,
"sn": "serial_no",
"connect_url": CON_SOURCE,
"user_id": "user_id",
"user_pw": "user_pw"
},
{
"name": "FR_video",
"model": M.AEAIModelType.FR,
"sn": "serial_no",
"connect_url": FR_SOURCE,
"user_id": "user_id",
"user_pw": "user_pw"
},
{
"name": "PPE_video",
"model": M.AEAIModelType.PPE,
"sn": "serial_no",
"connect_url": PPE_SOURCE,
"user_id": "user_id",
"user_pw": "user_pw"
},
{
"name": "WD_video_1",
"model": M.AEAIModelType.WORK,
"sn": "serial_no",
"connect_url": WD_SOURCE,
"user_id": "user_id",
"user_pw": "user_pw"
}
],
"input_bi": {
"name": "device_name",
"model": "model_name",
"sn": "serial_no",
"connect_url": "connect_url",
"user_id": "user_id",
"user_pw": "user_pw",
"topic": "topic"
},
"con_model_info": {
"name": "CON",
"version": "20220101",
"status": "init",
"ri": {
"construction_code": "D54",
"work_no": 3,
"work_define_ri": 0.82,
"ri_parameter_list": [
{
"name": "작업자 숙련도",
"ratio": 0.6
},
{
"name": "작업자 교육레벨",
"ratio": 0.5
}
],
"evaluation_work_ri": 0
},
"weights": [
{
"id": 0,
"filename": "index_78.pt",
"version": "0.1",
"date": "2023-01-31T10:12:17",
"model": "small",
"nc": 26
}
],
"mode": "con",
"crop_images": False
},
"fr_model_info": {
"name": "FR",
"version": "20220101",
"status": "init",
"ri": {
"construction_code": "D54",
"work_no": 3,
"work_define_ri": 0.82,
"ri_parameter_list": [
{
"name": "작업자 숙련도",
"ratio": 0.6
},
{
"name": "작업자 교육레벨",
"ratio": 0.5
}
],
"evaluation_work_ri": 0
}
},
"ppe_model_info": {
"name": "PPE",
"version": "20220101",
"status": "init",
"ri": {
"construction_code": "D54",
"work_no": 3,
"work_define_ri": 0.82,
"ri_parameter_list": [
{
"name": "작업자 숙련도",
"ratio": 0.6
},
{
"name": "작업자 교육레벨",
"ratio": 0.5
}
],
"evaluation_work_ri": 0
},
"weights": [
{
"id": 0,
"filename": "index_78.pt",
"version": "0.1",
"date": "2023-01-31T10:12:17",
"model": "small",
"nc": 26
}
],
"mode": "ppe",
"crop_images": False
},
"wd_model_info": {
"name": "WORK",
"version": "20220101",
"status": "init",
"ri": {
"construction_code": "D54",
"work_no": 3,
"work_define_ri": 0.82,
"ri_parameter_list": [
{
"name": "작업자 숙련도",
"ratio": 0.6
},
{
"name": "작업자 교육레벨",
"ratio": 0.5
}
],
"evaluation_work_ri": 0
},
"weights": [
{
"id": 0,
"filename": "index_78.pt",
"version": "0.1",
"date": "2023-01-31T10:12:17",
"model": "small",
"nc": 26
}
],
"mode": "work",
"crop_images": False
},
"bi_model_info": {
"name": "BI",
"version": "20220101",
"status": "init",
"ri": {
"construction_code": "D54",
"work_no": 3,
"work_define_ri": 0.82,
"ri_parameter_list": [
{
"name": "작업자 숙련도",
"ratio": 0.6
},
{
"name": "작업자 교육레벨",
"ratio": 0.5
}
],
"evaluation_work_ri": 0
}
}
}