# 1. 我使用预训练的resnet_v1_101对faster rcnn 进行训练。训练20万次。
mAP:
cls : aeroplane|| Recall: 0.6666666666666666 || Precison: 0.0022756827048114434|| AP: 0.46463509684436277
____________________
cls : bicycle|| Recall: 0.8823529411764706 || Precison: 0.0012340600575894694|| AP: 0.6647693707354104
____________________
cls : bird|| Recall: 0.8260869565217391 || Precison: 0.0014851872117564292|| AP: 0.726061076604555
____________________
cls : boat|| Recall: 0.5714285714285714 || Precison: 0.0006957731779439903|| AP: 0.18661987013613413
____________________
cls : bottle|| Recall: 0.525 || Precison: 0.0017114914425427872|| AP: 0.26288153438397655
____________________
cls : bus|| Recall: 0.8947368421052632 || Precison: 0.0014474244359301831|| AP: 0.7767364360520345
____________________
cls : car|| Recall: 0.8727272727272727 || Precison: 0.0039049788480312398|| AP: 0.6629979033514892
____________________
cls : cat|| Recall: 0.8695652173913043 || Precison: 0.0017488632388947185|| AP: 0.7241643766664854
____________________
cls : chair|| Recall: 0.603448275862069 || Precison: 0.002913267854170135|| AP: 0.3342093527356763
____________________
cls : cow|| Recall: 0.8333333333333334 || Precison: 0.0008138020833333334|| AP: 0.6456923337137465
____________________
cls : diningtable|| Recall: 0.85 || Precison: 0.001575386896487814|| AP: 0.4378677644669432
____________________
cls : dog|| Recall: 0.9423076923076923 || Precison: 0.004218682737839001|| AP: 0.8287655837582466
____________________
cls : horse|| Recall: 0.9230769230769231 || Precison: 0.0010108668182966893|| AP: 0.735318642779188
____________________
cls : motorbike|| Recall: 0.8125 || Precison: 0.0010638297872340426|| AP: 0.6587310606060605
____________________
cls : person|| Recall: 0.7990867579908676 || Precison: 0.013724413771468904|| AP: 0.6867495503929344
____________________
cls : pottedplant|| Recall: 0.55 || Precison: 0.0009232835319791841|| AP: 0.3314001624013871
____________________
cls : sheep|| Recall: 0.6666666666666666 || Precison: 0.001166569452545621|| AP: 0.4209187768091877
____________________
cls : sofa|| Recall: 0.9285714285714286 || Precison: 0.001256402822074031|| AP: 0.3066758517301329
____________________
cls : train|| Recall: 1.0 || Precison: 0.0014677552518117603|| AP: 0.9336013645224172
____________________
cls : tvmonitor|| Recall: 0.8421052631578947 || Precison: 0.0014217167229429537|| AP: 0.7038577828454168
____________________
mAP is : 0.5746326945767893
NET_NAME = 'resnet_v1_101' #'MobilenetV2'
ADD_BOX_IN_TENSORBOARD = True
# ---------------------------------------- System_config
ROOT_PATH = os.path.abspath('../')
print(20*"++--")
print(ROOT_PATH)
GPU_GROUP = "0"
SHOW_TRAIN_INFO_INTE = 50
SMRY_ITER = 100
SAVE_WEIGHTS_INTE = 500
FAST_RCNN_IOU_MAP=0.5 # voc is 05, coco diffrent in voc
SUMMARY_PATH = ROOT_PATH + '/output/summary'
TEST_SAVE_PATH = ROOT_PATH + '/tools/test_result'
# INFERENCE_IMAGE_PATH = ROOT_PATH + '/tools/inference_image'
# INFERENCE_SAVE_PATH = ROOT_PATH + '/tools/inference_results'
if NET_NAME.startswith("resnet"):
weights_name = NET_NAME
elif NET_NAME.startswith("MobilenetV2"):
weights_name = "mobilenet/mobilenet_v2_1.0_224"
else:
raise Exception('net name must in [resnet_v1_101, resnet_v1_50, MobilenetV2]')
PRETRAINED_CKPT = ROOT_PATH + '/data/pretrained_weights/resnet_v1_101_2016_08_28/' + weights_name + '.ckpt'
TRAINED_CKPT = os.path.join(ROOT_PATH, 'output/trained_weights')
EVALUATE_DIR = ROOT_PATH + '/output/evaluate_result_pickle/'
# ------------------------------------------ Train config
RESTORE_FROM_RPN = False
IS_FILTER_OUTSIDE_BOXES = True
FIXED_BLOCKS = 1 # allow 0~3
RPN_LOCATION_LOSS_WEIGHT = 1.
RPN_CLASSIFICATION_LOSS_WEIGHT = 1.
FAST_RCNN_LOCATION_LOSS_WEIGHT = 1.
FAST_RCNN_CLASSIFICATION_LOSS_WEIGHT = 1.
RPN_SIGMA = 3.0
FASTRCNN_SIGMA = 1.0
MUTILPY_BIAS_GRADIENT = None # 2.0 # if None, will not multipy
GRADIENT_CLIPPING_BY_NORM = None # 10.0 if None, will not clip
EPSILON = 1e-5
MOMENTUM = 0.9
LR = 0.0003 # 0.001 # 0.0003
DECAY_STEP = [5000, 10000, 50000, 100000] # 50000, 70000
MAX_ITERATION = 200000
# -------------------------------------------- Data_preprocess_config
DATASET_NAME = 'pascal' # 'ship', 'spacenet', 'pascal', 'coco' airplane
PIXEL_MEAN = [123.68, 116.779, 103.939] # R, G, B. In tf, channel is RGB. In openCV, channel is BGR
IMG_SHORT_SIDE_LEN = 600
IMG_MAX_LENGTH = 1000
CLASS_NUM = 20
# --------------------------------------------- Network_config
BATCH_SIZE = 1
INITIALIZER = tf.random_normal_initializer(mean=0.0, stddev=0.01)
BBOX_INITIALIZER = tf.random_normal_initializer(mean=0.0, stddev=0.001)
WEIGHT_DECAY = 0.00004 if NET_NAME.startswith('Mobilenet') else 0.0001
# ---------------------------------------------Anchor config
BASE_ANCHOR_SIZE_LIST = [32, 64, 128, 256, 512] # can be modified
ANCHOR_STRIDE = [16] # can not be modified in most situations
ANCHOR_SCALES = [0.5, 1., 1.5, 2.0] # [4, 8, 16, 32]
ANCHOR_RATIOS = [0.5, 1., 1.5, 2.0]
ROI_SCALE_FACTORS = [10., 10., 5.0, 5.0]
ANCHOR_SCALE_FACTORS = None
# --------------------------------------------RPN config
KERNEL_SIZE = 3
RPN_IOU_POSITIVE_THRESHOLD = 0.7
RPN_IOU_NEGATIVE_THRESHOLD = 0.3
TRAIN_RPN_CLOOBER_POSITIVES = False
RPN_MINIBATCH_SIZE = 256
RPN_POSITIVE_RATE = 0.5
RPN_NMS_IOU_THRESHOLD = 0.7
RPN_TOP_K_NMS_TRAIN = 12000
RPN_MAXIMUM_PROPOSAL_TARIN = 2000
RPN_TOP_K_NMS_TEST = 6000 # 5000
RPN_MAXIMUM_PROPOSAL_TEST = 300 # 300
# -------------------------------------------Fast-RCNN config
ROI_SIZE = 14
ROI_POOL_KERNEL_SIZE = 2
USE_DROPOUT = False
KEEP_PROB = 1.0
SHOW_SCORE_THRSHOLD = 0.5 # only show in tensorboard
FAST_RCNN_NMS_IOU_THRESHOLD = 0.3 # 0.6
FAST_RCNN_NMS_MAX_BOXES_PER_CLASS = 100
FAST_RCNN_IOU_POSITIVE_THRESHOLD = 0.5
FAST_RCNN_IOU_NEGATIVE_THRESHOLD = 0.0 # 0.1 < IOU < 0.5 is negative
FAST_RCNN_MINIBATCH_SIZE = 256 # if is -1, that is train with OHEM
FAST_RCNN_POSITIVE_RATE = 0.25
ADD_GTBOXES_TO_TRAIN = False
cls : aeroplane|| Recall: 0.7619047619047619 || Precison: 0.001602323368884883|| AP: 0.6741481378722718
____________________
cls : bicycle|| Recall: 0.8823529411764706 || Precison: 0.0007361601884570083|| AP: 0.8715109573241061
____________________
cls : bird|| Recall: 0.9565217391304348 || Precison: 0.0011441647597254005|| AP: 0.8858960564712017
____________________
cls : boat|| Recall: 0.7857142857142857 || Precison: 0.0005639290474725725|| AP: 0.6115246098439377
____________________
cls : bottle|| Recall: 0.7 || Precison: 0.0014211755151761242|| AP: 0.6218996403084555
____________________
cls : bus|| Recall: 0.8421052631578947 || Precison: 0.0008425043441630246|| AP: 0.7195901250230623
____________________
cls : car|| Recall: 0.8545454545454545 || Precison: 0.002362165150525205|| AP: 0.7775615386015804
____________________
cls : cat|| Recall: 1.0 || Precison: 0.001188200650927313|| AP: 0.8049488314763458
____________________
cls : chair|| Recall: 0.7758620689655172 || Precison: 0.002310892004313665|| AP: 0.46282754992507574
____________________
cls : cow|| Recall: 0.9166666666666666 || Precison: 0.0005663097199341021|| AP: 0.7368307019777608
____________________
cls : diningtable|| Recall: 0.65 || Precison: 0.0007833212822366836|| AP: 0.3668397782093261
____________________
cls : dog|| Recall: 0.9615384615384616 || Precison: 0.002598077422707197|| AP: 0.8625212115702469
____________________
cls : horse|| Recall: 0.9230769230769231 || Precison: 0.0006301528120569238|| AP: 0.8547008547008548
____________________
cls : motorbike|| Recall: 0.9375 || Precison: 0.0007374268718352097|| AP: 0.9177083333333333
____________________
cls : person|| Recall: 0.8584474885844748 || Precison: 0.009370015948963317|| AP: 0.7914530917349596
____________________
cls : pottedplant|| Recall: 0.75 || Precison: 0.0007785332433694919|| AP: 0.4599851926825611
____________________
cls : sheep|| Recall: 0.6666666666666666 || Precison: 0.0007417611529087634|| AP: 0.529915371887559
____________________
cls : sofa|| Recall: 0.9285714285714286 || Precison: 0.0007365021811795365|| AP: 0.5368746286393346
____________________
cls : train|| Recall: 1.0 || Precison: 0.0008266597778351847|| AP: 0.9278143274853801
____________________
cls : tvmonitor|| Recall: 0.8421052631578947 || Precison: 0.0008258064516129032|| AP: 0.7607491923281398
____________________
mAP is : 0.7087650065697748