Liver-Focal-Seg.yaml 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. # 一般训练需要给到路径,平台训练无需给到
  2. # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
  3. path: liver-obj # dataset root dir
  4. train: images/train # train images
  5. val: images/val # val images
  6. test: # test images (optional)
  7. # 平台训练需要给到下面的参数
  8. platform_data_args:
  9. token: 4925EC4929684AA0ABB0173B03CFC8FF # 39829c10d79745c6aaac35df80811966 4925EC4929684AA0ABB0173B03CFC8FF
  10. # 错误文件
  11. wrong_file: ''
  12. # "segment"生成分割的数据 "detection"生成检测的数据
  13. data_type: "segment"
  14. # 有些项目需要裁图,给到相应的裁图参数,
  15. # 如果不需要裁图,直接给 "" 即可
  16. extra_contours_args:
  17. # 如果路径不为空,则从该路径读取轮廓信息;如果不为空,则从下面的txt读取
  18. # 添加的文件格式如此文件所示,可以参考
  19. # 添加的每个roi轮廓给到的title,不要给额外的名字,需要在 crop_region_label 中
  20. extra_contours_txt_path: "" # 'vinno_files/extra_contours_file/liver_focal/example1.txt'
  21. crop_region_label:
  22. "肝":
  23. - "肝脏未见明显异常"
  24. - "肝脏有局灶性疾病/区域"
  25. - "脂肪肝声像图改变"
  26. - "肝脏弥漫性病变声像图改变"
  27. - "肝硬化声像图改变"
  28. - "肝血吸虫病声像图改变"
  29. # 限制每张图裁切部位个数,为"biggest"时每张图只裁切轮廓最大的;为"allMerged"时每张图裁切不限制,所有轮廓组合成一个
  30. # 此处假定: 轮廓上的点等间距采 -> 轮廓越大,轮廓点数量越多
  31. limit_crop: 'allMerged' #"biggest" "allMerged"
  32. # 外扩像素裁切参数有三个:expansion_mode模式有三种,expansion_range为范围,expansion_step为步长
  33. # expansion_range范围,前闭后开;比如:[20,22) 随机范围为[20,21];
  34. # 如果是 "fixed_pixel",随机范围内得到的像素值扩充,expansion_range需要为大于等于1的整数,expansion_step需要为大于等于1的整数
  35. # 如果是 "fixed_rate",根据额外轮廓的外接框宽或长较大的那个*随机得到的比例,得到确定的像素值扩充,expansion_range需要在[0,1]的范围内
  36. # 如果是 "",代表不外扩
  37. # 如果想固定像素值则 expansion_mode:"fixed_pixel",expansion_range: [需要的像素值, 需要的像素值+1],expansion_step:1
  38. expansion_mode: "fixed_rate" # "fixed_rate" 或者 "fixed_pixel" 或者 ""
  39. expansion_range: [0.1, 0.3]
  40. expansion_step: 0.1
  41. # 裁选之后的图像,非extra_contour的部分,是否使用原图的像素值。
  42. # 为true时,使用原图像素值,为false时,非extra_contour的部分全部设置为0
  43. use_orig_image_pixel: false
  44. # 所需的图像标签字典,从0开始,都是背景
  45. # 如果为空,给 "" 即可
  46. needed_image_results_dict: ""
  47. # 所需的ROI标签字典,从1开始都是需要的标签(取到的标签最终都会减1,yolo那边默认从0开始作为第一类)
  48. # 从部位标签开始取,如果不同部位标签内,相同名字的作为一类,则给相同的数字;不作为一类,则给不同的数字
  49. # 注意:默认的情况下,不会出现ROI标签为字典的键,其值为0;如果出现说明该轮廓是作为裁图所需要的,并不会生成类别的框或轮廓,
  50. # 此时注意上面的extra_contours_args中的crop_region_label与此处所有值为0的键是否一致,需要保持一致。
  51. needed_rois_dict:
  52. "肝":
  53. "肝脏未见明显异常": 0
  54. "肝脏有局灶性疾病/区域": 0
  55. "脂肪肝声像图改变": 0
  56. "肝脏弥漫性病变声像图改变": 0
  57. "肝硬化声像图改变": 0
  58. "肝血吸虫病声像图改变": 0
  59. "肝内强回声灶": 1
  60. "肝血管瘤声像图改变": 2
  61. "肝囊肿": 3
  62. "肝癌可能": 4
  63. # 一张图有多个ROI标签和图像标签时,后续采用谁的类别作为该图的扩充比例,给到相应的强弱等级
  64. # 该等级只用来比较多标签时,选择哪个作为扩充比例
  65. # 如果有多个相同的强弱等级的话,则按最后一个取到的标签的强弱等级计算
  66. # 该参数的键跟 needed_image_results_dict 和 needed_rois_dict一致
  67. label_aug_level:
  68. "肝":
  69. "肝脏未见明显异常": 1
  70. "肝脏有局灶性疾病/区域": 1
  71. "脂肪肝声像图改变": 1
  72. "肝脏弥漫性病变声像图改变": 1
  73. "肝硬化声像图改变": 1
  74. "肝血吸虫病声像图改变": 1
  75. "肝内强回声灶": 2
  76. "肝血管瘤声像图改变": 2
  77. "肝囊肿": 2
  78. "肝癌可能": 3
  79. # 所需标签在训练时的扩充比例,根据原有的数量*扩充比例
  80. # 所需标签的扩充比例都来自于needed_image_results_dict 和 needed_rois_dict
  81. # 额外添加了一个空字符:如果出现一张图有roi标签,但是没有所需的roi标签,则该图像也会作为背景进行训练,该图像的扩充比例即为空字符对应的数字
  82. # 需要注意:1.不裁图时,如果出现一张图只有图像标签,没有roi标签,但是没有所需的图像标签,则该图像直接舍弃。
  83. # 需要注意:2.裁图时,如果出现一张图没有额外轮廓,则该图像直接舍弃。
  84. class_aug_times:
  85. "": 1
  86. "肝":
  87. "肝脏未见明显异常": 0.01
  88. "肝脏有局灶性疾病/区域": 1
  89. "脂肪肝声像图改变": 1
  90. "肝脏弥漫性病变声像图改变": 1
  91. "肝硬化声像图改变": 1
  92. "肝血吸虫病声像图改变": 1
  93. "肝内强回声灶": 1
  94. "肝血管瘤声像图改变": 1
  95. "肝囊肿": 1
  96. "肝癌可能": 1
  97. # 评价指标计算时,各类别最终输出计算的标签字典
  98. # 可能设置多种参数,比如:甲状腺、乳腺疾病,计算分级、良恶性、检出病灶 三种输出的评价指标
  99. # 0为背景,其他都是类别
  100. class_id_map_list: [
  101. {0: 0, 1: 1, 2: 2, 3: 3, 4: 4}
  102. ]
  103. # c++后处理的dll
  104. dll_file: 'vinno_files/depends/YOLOInstanceSegOutputPostProcessUtil.dll'
  105. # 该resize方式只针对后续调用c++后处理时,图像的resize方式,不影响yolo本身训练的resize方式
  106. # resize方式跟c#中EnumResizeMode一致,会影响MoldedImageMetas的数值,从而影响c++后处理时返回原图的坐标
  107. # FitLargeSizeAndPad:以长边为准,将原始图像等比例缩放,短边用固定灰度值填充,暂时固定灰度值没有给到参数设置,默认给的128,128,128,后续需要改成和c#那边一致
  108. # FitSmallSizeAndCrop:以短边为准,将原始图像等比例缩放,长边直接裁切掉不要
  109. # Warp:非等比例缩放,长短边各自伸缩到模型所需的尺寸
  110. resize_mode: Warp
  111. # yolo后处理需要的参数
  112. yolo_inst_seg_metas:
  113. yolo_type: yolov8
  114. box_conf_thres: 0.3
  115. cls_conf_thres: 0.3
  116. batch_size: 1
  117. max_det: 10
  118. min_box_ratio: 0.001
  119. post_process_top_k: 6400
  120. iou_fltth: 0.3
  121. ios_fltth: 0.5
  122. enable_iou_filt: true
  123. enable_ios_filt: true
  124. iou_fltth_diff_cls: 0.3
  125. ios_fltth_diff_cls: 0.3
  126. enable_iou_filt_diff_cls: true
  127. enable_ios_filt_diff_cls: true
  128. mask_thres: 0.5
  129. # 用于c++的后处理参数,跟c#那边一致即可
  130. seg_post_process_param:
  131. 1:
  132. max_lesion_count: 5
  133. lesion_area_requirements:
  134. # NoneType (不设面积阈值)
  135. # PixelInMask(面积阈值是在mask上的像素数)
  136. # RatioInMask(面积阈值是病灶面积占mask的比例)
  137. # PixelInOrigImg(面积阈值是在原图上的像素数)
  138. # RatioInOrigImg(面积阈值是病灶面积占原图的比例)
  139. - lesion_area_threshold_type: RatioInMask
  140. lesion_min_area: 0.001
  141. lesion_max_area: 1.0
  142. - lesion_area_threshold_type: PixelInOrigImg
  143. lesion_min_area: 0
  144. lesion_max_area: 500000
  145. 2:
  146. max_lesion_count: 5
  147. lesion_area_requirements:
  148. - lesion_area_threshold_type: RatioInMask
  149. lesion_min_area: 0.001
  150. lesion_max_area: 1.0
  151. 3:
  152. max_lesion_count: 5
  153. lesion_area_requirements:
  154. - lesion_area_threshold_type: RatioInMask
  155. lesion_min_area: 0.001
  156. lesion_max_area: 1.0
  157. 4:
  158. max_lesion_count: 5
  159. lesion_area_requirements:
  160. - lesion_area_threshold_type: RatioInMask
  161. lesion_min_area: 0.001
  162. lesion_max_area: 1.0
  163. metrics_type:
  164. - pascal:
  165. iou_threshold: 0.5
  166. method_average_precision: EVERY_POINT_INTERPOLATION # EVERY_POINT_INTERPOLATION 或者 ELEVEN_POINT_INTERPOLATION
  167. generate_table: false
  168. # fn错误的有两种,一种是iou低于设置(也就是fp),一种是没有检测出来,为了方便查看,此时统计的fn将fp排除
  169. generate_fp_fn_image_names: true # 是否记录fp和fn所在图像的名称,用于可能后续画gt和dt看结果
  170. - coco:
  171. # coco默认计算0.5-0.95的mAP,这边给到值可以设置,所需要的范围
  172. lower_iou_threshold_limit: 0.50
  173. upper_iou_threshold_limit: 0.95
  174. # 默认前100个检测的结果,可以进行设置
  175. max_dets: 100
  176. # 根据面积区分 small medium large,计算时取 值的平方 作为界限
  177. lower_area_limit: 32
  178. upper_area_limit: 96
  179. # 最终训练的类别,目标从零开始,背景没有标签,对应的名称只是为了最终结果的显示
  180. # 给英文好点,中文显示不太好
  181. names:
  182. 0: '肝内强回声灶'
  183. 1: '肝血管瘤声像图改变'
  184. 2: '肝囊肿'
  185. 3: '肝癌可能'