|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###河道巡检的参数####
|
|
|
###河道巡检的参数####
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
par={
|
|
|
par={
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'labelnames':"../AIlib2/weights/yolov5/class8/labelnames.json", ###检测类别对照表
|
|
|
|
|
|
|
|
|
'labelnames':"../AIlib2/weights/river/labelnames.json", ###检测类别对照表
|
|
|
'gpuname':'3090',###显卡名称
|
|
|
'gpuname':'3090',###显卡名称
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_seg':True,###分割模型是否采用TRT
|
|
|
'trtFlag_seg':True,###分割模型是否采用TRT
|
|
|
'Detweights':"../AIlib2/weights/yolov5/class8/bestcao_A10_fp16.engine",###检测模型路径
|
|
|
|
|
|
|
|
|
'Detweights':"../AIlib2/weights/river/yolov5_2080Ti_fp16.engine",###检测模型路径
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6,7] ],###控制哪些检测类别显示,输出
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6,7] ],###控制哪些检测类别显示,输出
|
|
|
'slopeIndex':[5,6,7],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'slopeIndex':[5,6,7],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
'segRegionCnt':1,###分割模型结果需要保留的等值线数目
|
|
|
'segRegionCnt':1,###分割模型结果需要保留的等值线数目
|
|
|
'segPar':{'modelSize':(640,360),'mean':(0.485, 0.456, 0.406),'std' :(0.229, 0.224, 0.225),'numpy':False, 'RGB_convert_first':True},###分割模型预处理参数
|
|
|
'segPar':{'modelSize':(640,360),'mean':(0.485, 0.456, 0.406),'std' :(0.229, 0.224, 0.225),'numpy':False, 'RGB_convert_first':True},###分割模型预处理参数
|
|
|
'Segweights' : '../AIlib2/weights/STDC/model_maxmIOU75_1720_0.946_360640_A10_fp16.engine',###分割模型权重位置
|
|
|
|
|
|
'postFile': '../AIlib2/conf/para.json',###后处理参数文件
|
|
|
|
|
|
|
|
|
'Segweights' : '../AIlib2/weights/river/stdc_360X640_2080Ti_fp16.engine',###分割模型权重位置
|
|
|
|
|
|
'postFile': '../AIlib2/weights/river/para.json',###后处理参数文件
|
|
|
'txtFontSize':40,###文本字符的大小
|
|
|
'txtFontSize':40,###文本字符的大小
|
|
|
'digitFont': { 'line_thickness':2,'boxLine_thickness':1, 'fontSize':1.0,'waterLineColor':(0,255,255),'waterLineWidth':3},###显示框、线、数字设置
|
|
|
'digitFont': { 'line_thickness':2,'boxLine_thickness':1, 'fontSize':1.0,'waterLineColor':(0,255,255),'waterLineWidth':3},###显示框、线、数字设置
|
|
|
'testImgPath':'images/slope/',
|
|
|
'testImgPath':'images/slope/',
|
|
|
#'images/river2/',
|
|
|
#'images/river2/',
|
|
|
#'../../../data/无人机起飞测试图像/',###测试图像的位置
|
|
|
#'../../../data/无人机起飞测试图像/',###测试图像的位置
|
|
|
'testOutPath':'images/results/',###输出测试图像位置
|
|
|
'testOutPath':'images/results/',###输出测试图像位置
|
|
|
}'''
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
####公路巡检的参数
|
|
|
####公路巡检的参数
|
|
|
'''
|
|
|
|
|
|
|
|
|
'''
|
|
|
par={
|
|
|
par={
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'labelnames':"../AIlib2/weights/road/labelnames.json", ###检测类别对照表
|
|
|
'labelnames':"../AIlib2/weights/road/labelnames.json", ###检测类别对照表
|
|
|
|
|
|
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_seg':True,###分割模型是否采用TRT
|
|
|
'trtFlag_seg':True,###分割模型是否采用TRT
|
|
|
'Detweights':"../AIlib2/weights/road/best_A10_fp16.engine",###检测模型路径
|
|
|
|
|
|
|
|
|
'Detweights':"../AIlib2/weights/road/yolov5_2080Ti_fp16.engine",###检测模型路径
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'slopeIndex':[5,6,7],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'slopeIndex':[5,6,7],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
'segRegionCnt':2,###分割模型结果需要保留的等值线数目
|
|
|
'segRegionCnt':2,###分割模型结果需要保留的等值线数目
|
|
|
'segPar':{'modelSize':(640,360),'mean':(0.485, 0.456, 0.406),'std' :(0.229, 0.224, 0.225),'numpy':False, 'RGB_convert_first':True},###分割模型预处理参数
|
|
|
'segPar':{'modelSize':(640,360),'mean':(0.485, 0.456, 0.406),'std' :(0.229, 0.224, 0.225),'numpy':False, 'RGB_convert_first':True},###分割模型预处理参数
|
|
|
'Segweights' : '../AIlib2/weights/road/BiseNet_A10_fp16.engine',###分割模型权重位置
|
|
|
|
|
|
|
|
|
'Segweights' : '../AIlib2/weights/road/stdc_360X640_2080Ti_fp16.engine',###分割模型权重位置
|
|
|
'postFile': '../AIlib2/weights/road/para.json',###后处理参数文件
|
|
|
'postFile': '../AIlib2/weights/road/para.json',###后处理参数文件
|
|
|
'txtFontSize':80,###文本字符的大小
|
|
|
'txtFontSize':80,###文本字符的大小
|
|
|
'digitFont': { 'line_thickness':2,'boxLine_thickness':1, 'fontSize':1.0,'waterLineColor':(0,255,255),'waterLineWidth':3},###显示框、线设置
|
|
|
'digitFont': { 'line_thickness':2,'boxLine_thickness':1, 'fontSize':1.0,'waterLineColor':(0,255,255),'waterLineWidth':3},###显示框、线设置
|
|
|
|
|
|
|
|
|
def det_demo(business ):
|
|
|
def det_demo(business ):
|
|
|
|
|
|
|
|
|
####森林巡检的参数
|
|
|
####森林巡检的参数
|
|
|
|
|
|
|
|
|
|
|
|
'''
|
|
|
par={
|
|
|
par={
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'labelnames':"../AIlib2/weights/forest/labelnames.json", ###检测类别对照表
|
|
|
'labelnames':"../AIlib2/weights/forest/labelnames.json", ###检测类别对照表
|
|
|
|
|
|
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'Detweights':"../AIlib2/weights/forest/best_A10_fp16.engine",###检测模型路径
|
|
|
|
|
|
|
|
|
'Detweights':"../AIlib2/weights/forest/yolov5_2080Ti_fp16.engine",###检测模型路径
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
|
|
|
|
|
|
'testImgPath':'../AIdemo2/images/forest/',###测试图像的位置
|
|
|
'testImgPath':'../AIdemo2/images/forest/',###测试图像的位置
|
|
|
'testOutPath':'images/results/',###输出测试图像位置
|
|
|
'testOutPath':'images/results/',###输出测试图像位置
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
'''
|
|
|
###车辆巡检参数
|
|
|
###车辆巡检参数
|
|
|
'''
|
|
|
'''
|
|
|
par={
|
|
|
par={
|
|
|
|
|
|
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'Detweights':"../AIlib2/weights/vehicle/yolov5_A10_fp16.engine",###检测模型路径
|
|
|
|
|
|
|
|
|
'Detweights':"../AIlib2/weights/vehicle/yolov5_2080Ti_fp16.engine",###检测模型路径
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
|
|
|
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'Detweights':"../AIlib2/weights/pedestrian/yolov5_A10_fp16.engine",###检测模型路径
|
|
|
|
|
|
|
|
|
'Detweights':"../AIlib2/weights/pedestrian/yolov5_2080Ti_fp16.engine",###检测模型路径
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
'seg_nclass':2,###分割模型类别数目,默认2类
|
|
|
|
|
|
|
|
|
}'''
|
|
|
}'''
|
|
|
|
|
|
|
|
|
###烟雾火焰检测模型
|
|
|
###烟雾火焰检测模型
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
par={
|
|
|
par={
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'device':'0', ###显卡号,如果用TRT模型,只支持0(单显卡)
|
|
|
'labelnames':"../AIlib2/weights/smogfire/labelnames.json", ###检测类别对照表
|
|
|
'labelnames':"../AIlib2/weights/smogfire/labelnames.json", ###检测类别对照表
|
|
|
|
|
|
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'max_workers':1, ###并行线程数
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_det':True,###检测模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'trtFlag_seg':False,###分割模型是否采用TRT
|
|
|
'Detweights':"../AIlib2/weights/smogfire/yolov5_A10_fp16.engine",###检测模型路径
|
|
|
|
|
|
|
|
|
'Detweights':"../AIlib2/weights/smogfire/yolov5_2080Ti_fp16.engine",###检测模型路径
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'detModelpara':[{"id":str(x),"config":{"k1":"v1","k2":"v2"}} for x in [0,1,2,3,4,5,6] ],###控制哪些检测类别显示、输出
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'slopeIndex':[],###岸坡类别(或者其它业务里的类别),不与河道(分割的前景区域)计算交并比,即不论是否在河道内都显示。
|
|
|
'seg_nclass':2,###没有分割模型,此处不用
|
|
|
'seg_nclass':2,###没有分割模型,此处不用
|
|
|
|
|
|
|
|
|
'testImgPath':'../AIdemo2/images/smogfire/',###测试图像的位置
|
|
|
'testImgPath':'../AIdemo2/images/smogfire/',###测试图像的位置
|
|
|
'testOutPath':'images/results/',###输出测试图像位置
|
|
|
'testOutPath':'images/results/',###输出测试图像位置
|
|
|
}
|
|
|
}
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
segRegionCnt=par['segRegionCnt']
|
|
|
segRegionCnt=par['segRegionCnt']
|
|
|
trtFlag_seg = par['trtFlag_seg'];segPar=par['segPar']
|
|
|
trtFlag_seg = par['trtFlag_seg'];segPar=par['segPar']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
device = select_device(device_)
|
|
|
device = select_device(device_)
|
|
|
half = device.type != 'cpu' # half precision only supported on CUDA
|
|
|
half = device.type != 'cpu' # half precision only supported on CUDA
|
|
|
|
|
|
|
|
|
trtFlag_det=par['trtFlag_det'] ###是否采用TRT模型加速
|
|
|
trtFlag_det=par['trtFlag_det'] ###是否采用TRT模型加速
|
|
|
|
|
|
|
|
|
##以下参数目前不可改
|
|
|
##以下参数目前不可改
|
|
|
#business='forest';imageW=4916 ####森林模型
|
|
|
|
|
|
#business='road';
|
|
|
|
|
|
imageW=1536 ####道路模型
|
|
|
imageW=1536 ####道路模型
|
|
|
digitFont= par['digitFont']
|
|
|
digitFont= par['digitFont']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#jkm_demo()
|
|
|
#jkm_demo()
|
|
|
|
|
|
|
|
|
det_demo( 'pedestrian' )
|
|
|
|
|
|
#detSeg_demo()
|
|
|
|
|
|
|
|
|
#det_demo( 'pedestrian' )
|
|
|
|
|
|
detSeg_demo()
|
|
|
|
|
|
|