代码注释
基于双分支融合的病理图像分类BifusionNet
- 生成GRAPH
- supernode_generation_V3.py #获得节点坐标
- superpatch_network_construction.py #获得graph
- convert_dgl_graph.py #将graph转化为 .bin格式
- Visulization_graph_bin_v2.py # 可视化graph
- 训练
相对应脚本train_focalloss_bracs.py
- 设置输入节点特征维度
NODE_DIM = 1792
- 设置相应的输入参数(如下代码,见名知意)
def parse_arguments():
parser = argparse.ArgumentParser()
parser.add_argument(
'--graph_path',
type=str,
help='',
default='/home/hero/disk/DATASET/BRACS/Graduate_data_big/BRACS/patchgraph',
# default='/home/hero/disk/DATASET/BRACS/Graduate_data/BRACS/patchgraph',
required=False
)
parser.add_argument(
'--img_path',
type=str,
help='',
default='/home/hero/disk/DATASET/BRACS/Graduate_data_big/BRACS/nonmalization_lastet_version_small_size_v2',
# default='/home/hero/disk/DATASET/BRACS/Graduate_data/BRACS/un_nonmalization_lastet_version_small_size',
required=False
)
parser.add_argument(
'--checkpoint_path',
help='预训练的CNN权重',
type=str,
default=''
)
parser.add_argument(
'-conf',
'--config_fpath',
type=str,
help='path to the config file.',
default='/home/hero/disk/CODE/hact-net-main_V1/core/config/double_net_7_classes.yml',
required=False
)
parser.add_argument(
'--model_path',
type=str,
help='path to where the model is saved.',
default='./model_saved',
required=False
)
parser.add_argument(
'--in_ram',
help='if the data should be stored in RAM.',
# action='store_true',
default=False
)
parser.add_argument(
'-b',
'--batch_size',
type=int,
help='batch size.',
default=16,
required=False
)
parser.add_argument(
'--epochs', type=int, help='epochs.', default=100, required=False
)
parser.add_argument(
'-l',
'--learning_rate',
type=float,
help='learning rate.',
default=1e-5,
required=False
)
parser.add_argument(
'--out_path',
type=str,
help='path to where the output data are saved (currently only for the interpretability).',
default='./double_net_result',
required=False
)
parser.add_argument(
'--logger',
type=str,
help='Logger type. Options are "mlflow" or "none"',
required=False,
default='mlflow'
)
return parser.parse_args()
- 测试(推理)
相关脚本computer_f1score_bracs_with_floss.py
测试脚本包含两个输入:graph和img
- metrics_txt = open(f’./{txt_name}_软硬件验收_new.txt’,‘w’) # 测试结果保存文件名
- 设置相应的输入参数,包含数据,模型等
注意:模型放在MODEL_PATH = '/home/hero/disk/Graduate_CODE_v2/model_saved_bracs'
,如果地址中包含多个模型,则计算他们的均值和方差
其他的参数在parse_arguments中设置
细胞核分割识别:hover_net-author_From_FZY
运行脚本:run_infer_feng.py
在如下代码四修改input_dir
和output_dir
就好
if __name__ == '__main__':
# /home/hero/disk/DATASET/BRACS/BRACS/BRACS_Rol/lastet_version/train/0_N
# /home/hero/disk/HP-FENG-BACKUP/F/HOVERNT_DEBUG_data
from infer.tile import InferManager
method_args={'method': {'model_args': {'nr_types': 6, 'mode': 'fast'},
'model_path': './weights/hovernet_fast_pannuke_type_tf2pytorch.tar'},
'type_info_path': 'type_info_pan.json'}
run_args={'batch_size': 24,
'nr_inference_workers': 8,
'nr_post_proc_workers': 16,
'patch_input_shape': 256,
'patch_output_shape': 164,
'input_dir': '/media/hero/Extreme Pro/SXCH_for_pan/40x/Plu190116 TP - 2022-01-14 17.52.43/',
'output_dir': '/home/hero/disk/CODE/visualization_for_neopla.inflam/for_pan_data/SXCH/cell_seg/Plu190116 TP - 2022-01-14 17.52.43/',
'mem_usage': 0.1,
'draw_dot': True,
'save_qupath': True,
'save_raw_map': False}
infer = InferManager(**method_args)
infer.process_file_list(run_args)
注意:如果在分割的时候不需要可视化结果,将tile.py
中下面代码注释掉即可
save_path = "%s/overlay/%s.png" % (self.output_dir, img_name)
cv2.imwrite(save_path, cv2.cvtColor(overlaid_img, cv2.COLOR_RGB2BGR))
组织分割:tissue_seg_wzz
相关脚本:WSI_seg.py
输入:parser.add_argument('--WSI_fold', type=str, default='/media/hero/2T-wym/patch/for_tissue_10x_01/11/', help='put the path of WSI')
输出:parser.add_argument('--save_dir', type=str, default='/media/hero/2T-wym/patch/seg_tissue_for_tissue_10x/11/', help='save path')
细胞核矫正:Pooling_post_processing
相关脚本1:pooling_for_process.py
相关脚本2:pooling_for_process_V2.py
矫正使用到的信息包含hovernet的分割结果,组织分割结果(用的加泰博士的)
注意:这两个脚本的都有同样的功能,区别在于脚本2中新的MAT文件将会覆盖旧的mat文件