diff --git a/src/app/system-management/host-config/host-config.component.ts b/src/app/system-management/host-config/host-config.component.ts index f2a0ac5..adb6b2c 100644 --- a/src/app/system-management/host-config/host-config.component.ts +++ b/src/app/system-management/host-config/host-config.component.ts @@ -911,18 +911,23 @@ ${newstr}class-id=0 console.log(this.hostData); //如果之前保存过文件 - if (this.hostData.configFiles && this.hostData.configFiles.length !== 0) { + let config_armFile = this.hostData.configFiles.find( + (item) => item.name == 'config_arm.yaml' + ); + let config_x86File = this.hostData.configFiles.find( + (item) => item.name == 'config_x86.yaml' + ); + let producerFile = this.hostData.configFiles.find( + (item) => item.name == 'producer.yaml' + ); + if ( + this.hostData.configFiles && + this.hostData.configFiles.length !== 0 && + config_armFile + ) { let config_arm = this.hostData.configFiles.find( (item) => item.name == 'config_arm.yaml' ).content; - let config_x86 = this.hostData.configFiles.find( - (item) => item.name == 'config_x86.yaml' - ).content; - let producer = this.hostData.configFiles.find( - (item) => item.name == 'producer.yaml' - ).content; - // console.log(111, config_arm); - // console.log(222, config_x86); //修改config_arm.yaml文件 //更改connet_oil let config_armObj = yaml.load(config_arm); @@ -946,6 +951,165 @@ ${newstr}class-id=0 }); config_armObj.connet_grounder.roi[0][key2] = [arr2]; config2 = yaml.dump(config_armObj, { lineWidth: -1 }); + } else { + //使用模板 + config2 = `# The all in one config file. + +debug: false #when the debug is on, osd. +video_record: 10 #time to record into the .ts video + +sources: + config: 'config/source.yaml' + +tracker: + config: 'config/dstest_tracker_config.txt' + +analytics: + config: 'config/config_nvdsanalytics.txt' + +## 通用模型 ## + +# 1:人物检测 +peoplenet: + enable: true + apply_on: -1 + interval: 1 + batch_size: 16 + topk: 5 + roi-top-offset: 0 + roi-bottom-offset: 0 + detected-min-w: 20 + detected-min-h: 200 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/peoplenet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp16.engine' + threshold: 0.3 + +# 2:车辆检测 +trafficcam: + enable: true + apply_on: 0 + interval: 1 + batch_size: 16 + topk: 5 + roi-top-offset: 0 + roi-bottom-offset: 0 + detected-min-w: 100 + detected-min-h: 100 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/trafficcam/weights/resnet18_trafficcamnet_pruned.etlt_b16_gpu0_int8.engine' + +# 3:人物倚靠行为 +actionnet: + enable: false + apply_on: 1 + # roi: + # - 'fuel_island-4': + # - [200, 0, 450, 500] + # - 'fuel_island-5': + # - [930, 93, 940, 987] + # - 'fuel_island-6': + # - [1174, 151, 746, 929] + # - 'fuel_island-7': + # - [1450, 300, 460, 650] + interval: 1 + batch_size: 32 + +# 4:烟火检测 +fire_smoke_net: + enable: true + apply_on: -1 + interval: 1 + batch_size: 16 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/fire_smoke_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp16.engine' + threshold: 0.95 + +# 5:抽烟打电话检测 +smoking_calling_net: + enable: true + apply_on: -1 + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/smoking_calling_net/weights/resnet50_smoking_calling_net_fp16.etlt_b2_gpu0_fp16.engine' + +## 油站专用模型 ## + +# 1:身份判别:工装、反光衣、便衣 +idnet: + enable: true + apply_on: -1 + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/idnet/weights/resnet50_idnet_fp16.etlt_b2_gpu0_fp16.engine' + +# 2:卸油区物体识别:油罐车、灭火器、手推车、三角木、取样桶、隔离锥、卸油管 +oilnet: + enable: true + apply_on: 2 + interval: 1 + batch_size: 2 + roi-top-offset: 0 + roi-bottom-offset: 0 + detected-min-w: 20 + detected-min-h: 20 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/oilnet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp16.engine' + threshold: 0.5 + +# 3:卸油管是否连接判定 +connet_oil: + enable: true + apply_on: 2 + roi: + - 'oil_tube-${oilDischargeOrder}': + - [${xieyouguan}] + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_oil/weights/resnet50_connet_oil_fp16.etlt_b2_gpu0_fp16.engine' + +# 4:静电接地仪器是否连接判定 +connet_grounder: + enable: true + apply_on: 2 + roi: + - 'grounder-${oilDischargeOrder}': + - [${jingdian}] + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_grounder/weights/resnet50_connet_grounder_fp16.etlt_b2_gpu0_fp16.engine' + +# 5:散装桶加油 +bulk_oil_net: + enable: False + apply_on: 2 + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/bulk_oil_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp16.engine' + threshold: 0.2 + +# 模型阈值通用设定 +rule_threshold: + object_occurence_interval_second: 3 + object_disappear_interval_second: 10 + on_car_parking_interval_second: 1800 + on_fire_smoke_interval_second: 5 + on_helmet_interval_second: 5 + threshold_relying_sitting: 0.4 #rolling mean confidence + threshold_smoking_calling: 0.3 #rolling mean confidence + threshold_connecting: 0.667 #rolling mean confidence + threshold_identity: 0.1 #only to filter out people net error + threshold_helmet: 0 #num of helmet detected on a person + enable_seconday_model: False # secondary model (双模型) + threshold_secondary_model: 0.5 + secondary_model_window: 50 + secondary_model_path: '/opt/app/xgboost' +`; + } + + if ( + this.hostData.configFiles && + this.hostData.configFiles.length !== 0 && + config_x86File + ) { + let config_x86 = this.hostData.configFiles.find( + (item) => item.name == 'config_x86.yaml' + ).content; //修改config_x86.yaml文件 //更改connet_oil let config_x86Obj = yaml.load(config_x86); @@ -970,307 +1134,154 @@ ${newstr}class-id=0 }); config_x86Obj.connet_grounder.roi[0][key4] = [arr4]; config3 = yaml.dump(config_x86Obj, { lineWidth: -1 }); - - // let producerObj = yaml.load(producer); - // config4 = yaml.dump(producerObj, { lineWidth: -1 }); - config4 = producer; - console.log(); } else { - //使用模板 - config2 = `# The all in one config file. - - debug: false #when the debug is on, osd. - video_record: 10 #time to record into the .ts video - - sources: - config: 'config/source.yaml' - - tracker: - config: 'config/dstest_tracker_config.txt' - - analytics: - config: 'config/config_nvdsanalytics.txt' - - ## 通用模型 ## - - # 1:人物检测 - peoplenet: - enable: true - apply_on: -1 - interval: 1 - batch_size: 16 - topk: 5 - roi-top-offset: 0 - roi-bottom-offset: 0 - detected-min-w: 20 - detected-min-h: 200 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/peoplenet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp16.engine' - threshold: 0.3 - - # 2:车辆检测 - trafficcam: - enable: true - apply_on: 0 - interval: 1 - batch_size: 16 - topk: 5 - roi-top-offset: 0 - roi-bottom-offset: 0 - detected-min-w: 100 - detected-min-h: 100 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/trafficcam/weights/resnet18_trafficcamnet_pruned.etlt_b16_gpu0_int8.engine' - - # 3:人物倚靠行为 - actionnet: - enable: false - apply_on: 1 - # roi: - # - 'fuel_island-4': - # - [200, 0, 450, 500] - # - 'fuel_island-5': - # - [930, 93, 940, 987] - # - 'fuel_island-6': - # - [1174, 151, 746, 929] - # - 'fuel_island-7': - # - [1450, 300, 460, 650] - interval: 1 - batch_size: 32 - - # 4:烟火检测 - fire_smoke_net: - enable: true - apply_on: -1 - interval: 1 - batch_size: 16 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/fire_smoke_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp16.engine' - threshold: 0.95 - - # 5:抽烟打电话检测 - smoking_calling_net: - enable: true - apply_on: -1 - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/smoking_calling_net/weights/resnet50_smoking_calling_net_fp16.etlt_b2_gpu0_fp16.engine' - - ## 油站专用模型 ## - - # 1:身份判别:工装、反光衣、便衣 - idnet: - enable: true - apply_on: -1 - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/idnet/weights/resnet50_idnet_fp16.etlt_b2_gpu0_fp16.engine' - - # 2:卸油区物体识别:油罐车、灭火器、手推车、三角木、取样桶、隔离锥、卸油管 - oilnet: - enable: true - apply_on: 2 - interval: 1 - batch_size: 2 - roi-top-offset: 0 - roi-bottom-offset: 0 - detected-min-w: 20 - detected-min-h: 20 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/oilnet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp16.engine' - threshold: 0.5 - - # 3:卸油管是否连接判定 - connet_oil: - enable: true - apply_on: 2 - roi: - - 'oil_tube-${oilDischargeOrder}': - - [${xieyouguan}] - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_oil/weights/resnet50_connet_oil_fp16.etlt_b2_gpu0_fp16.engine' - - # 4:静电接地仪器是否连接判定 - connet_grounder: - enable: true - apply_on: 2 - roi: - - 'grounder-${oilDischargeOrder}': - - [${jingdian}] - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_grounder/weights/resnet50_connet_grounder_fp16.etlt_b2_gpu0_fp16.engine' - - # 5:散装桶加油 - bulk_oil_net: - enable: False - apply_on: 2 - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/bulk_oil_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp16.engine' - threshold: 0.2 - - # 模型阈值通用设定 - rule_threshold: - object_occurence_interval_second: 3 - object_disappear_interval_second: 10 - on_car_parking_interval_second: 1800 - on_fire_smoke_interval_second: 5 - on_helmet_interval_second: 5 - threshold_relying_sitting: 0.4 #rolling mean confidence - threshold_smoking_calling: 0.3 #rolling mean confidence - threshold_connecting: 0.667 #rolling mean confidence - threshold_identity: 0.1 #only to filter out people net error - threshold_helmet: 0 #num of helmet detected on a person - enable_seconday_model: False # secondary model (双模型) - threshold_secondary_model: 0.5 - secondary_model_window: 50 - secondary_model_path: '/opt/app/xgboost' - `; config3 = `# The all in one config file. - debug: false #when the debug is on, osd. - video_record: 10 #time to record into the .ts video - - sources: - config: 'config/source.yaml' - - tracker: - config: 'config/dstest_tracker_config.txt' - - analytics: - config: 'config/config_nvdsanalytics.txt' - - ## 通用模型 ## - - # 1:人物检测 - peoplenet: - enable: true - apply_on: -1 - interval: 1 - batch_size: 16 - topk: 5 - roi-top-offset: 0 - roi-bottom-offset: 0 - detected-min-w: 20 - detected-min-h: 200 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/peoplenet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp32.engine' - threshold: 0.3 - - # 2:车辆检测 - trafficcam: - enable: true - apply_on: 0 - interval: 1 - batch_size: 16 - topk: 5 - roi-top-offset: 0 - roi-bottom-offset: 0 - detected-min-w: 100 - detected-min-h: 100 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/trafficcam/weights/resnet18_trafficcamnet_pruned.etlt_b16_gpu0_int8.engine' - - # 3:人物倚靠行为 - actionnet: - enable: false - apply_on: 1 - # roi: - # - 'fuel_island-4': - # - [200, 0, 450, 500] - # - 'fuel_island-5': - # - [930, 93, 940, 987] - # - 'fuel_island-6': - # - [1174, 151, 746, 929] - # - 'fuel_island-7': - # - [1450, 300, 460, 650] - interval: 1 - batch_size: 32 - - # 4:烟火检测 - fire_smoke_net: - enable: true - apply_on: -1 - interval: 1 - batch_size: 16 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/fire_smoke_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp32.engine' - threshold: 0.95 - - # 5:抽烟打电话检测 - smoking_calling_net: - enable: true - apply_on: -1 - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/smoking_calling_net/weights/resnet50_smoking_calling_net_fp16.etlt_b2_gpu0_fp32.engine' - - ## 油站专用模型 ## - - # 1:身份判别:工装、反光衣、便衣 - idnet: - enable: true - apply_on: -1 - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/idnet/weights/resnet50_idnet_fp16.etlt_b2_gpu0_fp32.engine' - - # 2:卸油区物体识别:油罐车、灭火器、手推车、三角木、取样桶、隔离锥、卸油管 - oilnet: - enable: true - apply_on: 2 - interval: 1 - batch_size: 2 - roi-top-offset: 0 - roi-bottom-offset: 0 - detected-min-w: 20 - detected-min-h: 20 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/oilnet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp32.engine' - threshold: 0.5 - - # 3:卸油管是否连接判定 - connet_oil: - enable: true - apply_on: 2 - roi: - - 'oil_tube-${oilDischargeOrder}': - - [${xieyouguan}] - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_oil/weights/resnet50_connet_oil_fp16.etlt_b2_gpu0_fp32.engine' - - # 4:静电接地仪器是否连接判定 - connet_grounder: - enable: true - apply_on: 2 - roi: - - 'grounder-${oilDischargeOrder}': - - [${jingdian}] - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_grounder/weights/resnet50_connet_grounder_fp16.etlt_b2_gpu0_fp32.engine' - - # 5:散装桶加油 - bulk_oil_net: - enable: False - apply_on: 2 - interval: 1 - batch_size: 2 - model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/bulk_oil_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp32.engine' - threshold: 0.3 - - #模型阈值通用设定 - rule_threshold: - object_occurence_interval_second: 3 - object_disappear_interval_second: 10 - on_car_parking_interval_second: 1800 - on_fire_smoke_interval_second: 5 - on_helmet_interval_second: 5 - threshold_relying_sitting: 0.4 #rolling mean confidence - threshold_smoking_calling: 0.3 #rolling mean confidence - threshold_connecting: 0.667 #rolling mean confidence - threshold_identity: 0.1 #only to filter out people net error - threshold_helmet: 0 #num of helmet detected on a person - enable_seconday_model: False # secondary model (双模型) - threshold_secondary_model: 0.5 - secondary_model_window: 50 - secondary_model_path: '/opt/app/xgboost' - `; +debug: false #when the debug is on, osd. +video_record: 10 #time to record into the .ts video + +sources: + config: 'config/source.yaml' + +tracker: + config: 'config/dstest_tracker_config.txt' + +analytics: + config: 'config/config_nvdsanalytics.txt' + +## 通用模型 ## + +# 1:人物检测 +peoplenet: + enable: true + apply_on: -1 + interval: 1 + batch_size: 16 + topk: 5 + roi-top-offset: 0 + roi-bottom-offset: 0 + detected-min-w: 20 + detected-min-h: 200 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/peoplenet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp32.engine' + threshold: 0.3 + +# 2:车辆检测 +trafficcam: + enable: true + apply_on: 0 + interval: 1 + batch_size: 16 + topk: 5 + roi-top-offset: 0 + roi-bottom-offset: 0 + detected-min-w: 100 + detected-min-h: 100 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/trafficcam/weights/resnet18_trafficcamnet_pruned.etlt_b16_gpu0_int8.engine' + +# 3:人物倚靠行为 +actionnet: + enable: false + apply_on: 1 + # roi: + # - 'fuel_island-4': + # - [200, 0, 450, 500] + # - 'fuel_island-5': + # - [930, 93, 940, 987] + # - 'fuel_island-6': + # - [1174, 151, 746, 929] + # - 'fuel_island-7': + # - [1450, 300, 460, 650] + interval: 1 + batch_size: 32 + +# 4:烟火检测 +fire_smoke_net: + enable: true + apply_on: -1 + interval: 1 + batch_size: 16 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/fire_smoke_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b16_gpu0_fp32.engine' + threshold: 0.95 + +# 5:抽烟打电话检测 +smoking_calling_net: + enable: true + apply_on: -1 + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/smoking_calling_net/weights/resnet50_smoking_calling_net_fp16.etlt_b2_gpu0_fp32.engine' + +## 油站专用模型 ## + +# 1:身份判别:工装、反光衣、便衣 +idnet: + enable: true + apply_on: -1 + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/idnet/weights/resnet50_idnet_fp16.etlt_b2_gpu0_fp32.engine' + +# 2:卸油区物体识别:油罐车、灭火器、手推车、三角木、取样桶、隔离锥、卸油管 +oilnet: + enable: true + apply_on: 2 + interval: 1 + batch_size: 2 + roi-top-offset: 0 + roi-bottom-offset: 0 + detected-min-w: 20 + detected-min-h: 20 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/oilnet/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp32.engine' + threshold: 0.5 + +# 3:卸油管是否连接判定 +connet_oil: + enable: true + apply_on: 2 + roi: + - 'oil_tube-${oilDischargeOrder}': + - [${xieyouguan}] + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_oil/weights/resnet50_connet_oil_fp16.etlt_b2_gpu0_fp32.engine' + +# 4:静电接地仪器是否连接判定 +connet_grounder: + enable: true + apply_on: 2 + roi: + - 'grounder-${oilDischargeOrder}': + - [${jingdian}] + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/connet_grounder/weights/resnet50_connet_grounder_fp16.etlt_b2_gpu0_fp32.engine' + +# 5:散装桶加油 +bulk_oil_net: + enable: False + apply_on: 2 + interval: 1 + batch_size: 2 + model_engine_file: '/opt/nvidia/deepstream/deepstream-6.0/sources/project/models/bulk_oil_net/weights/yolov4_cspdarknet_tiny_fp16.etlt_b2_gpu0_fp32.engine' + threshold: 0.3 + +#模型阈值通用设定 +rule_threshold: + object_occurence_interval_second: 3 + object_disappear_interval_second: 10 + on_car_parking_interval_second: 1800 + on_fire_smoke_interval_second: 5 + on_helmet_interval_second: 5 + threshold_relying_sitting: 0.4 #rolling mean confidence + threshold_smoking_calling: 0.3 #rolling mean confidence + threshold_connecting: 0.667 #rolling mean confidence + threshold_identity: 0.1 #only to filter out people net error + threshold_helmet: 0 #num of helmet detected on a person + enable_seconday_model: False # secondary model (双模型) + threshold_secondary_model: 0.5 + secondary_model_window: 50 + secondary_model_path: '/opt/app/xgboost' +`; } sessionStorage.setItem('config1', config1);