提交 94196f5c 编写于 作者: W Waleed Abdulla

Fix comments

上级 38ed3398
...@@ -72,7 +72,7 @@ class Config(object): ...@@ -72,7 +72,7 @@ class Config(object):
RPN_ANCHOR_STRIDE = 1 RPN_ANCHOR_STRIDE = 1
# Non-max suppression threshold to filter RPN proposals. # Non-max suppression threshold to filter RPN proposals.
# You can reduce this during training to generate more propsals. # You can increase this during training to generate more propsals.
RPN_NMS_THRESHOLD = 0.7 RPN_NMS_THRESHOLD = 0.7
# How many anchors per image to use for RPN training # How many anchors per image to use for RPN training
......
...@@ -808,7 +808,9 @@ class DetectionLayer(KE.Layer): ...@@ -808,7 +808,9 @@ class DetectionLayer(KE.Layer):
return (None, self.config.DETECTION_MAX_INSTANCES, 6) return (None, self.config.DETECTION_MAX_INSTANCES, 6)
############################################################
# Region Proposal Network (RPN) # Region Proposal Network (RPN)
############################################################
def rpn_graph(feature_map, anchors_per_location, anchor_stride): def rpn_graph(feature_map, anchors_per_location, anchor_stride):
"""Builds the computation graph of Region Proposal Network. """Builds the computation graph of Region Proposal Network.
...@@ -1223,7 +1225,7 @@ def load_image_gt(dataset, config, image_id, augment=False, augmentation=None, ...@@ -1223,7 +1225,7 @@ def load_image_gt(dataset, config, image_id, augment=False, augmentation=None,
"""Determines which augmenters to apply to masks.""" """Determines which augmenters to apply to masks."""
return (augmenter.__class__.__name__ in MASK_AUGMENTERS) return (augmenter.__class__.__name__ in MASK_AUGMENTERS)
# Store original shapes to compare # Store shapes before augmentation to compare
image_shape = image.shape image_shape = image.shape
mask_shape = mask.shape mask_shape = mask.shape
# Make augmenters deterministic to apply similarly to images and masks # Make augmenters deterministic to apply similarly to images and masks
...@@ -1390,7 +1392,7 @@ def build_detection_targets(rpn_rois, gt_class_ids, gt_boxes, gt_masks, config): ...@@ -1390,7 +1392,7 @@ def build_detection_targets(rpn_rois, gt_class_ids, gt_boxes, gt_masks, config):
# Normalize bbox refinements # Normalize bbox refinements
bboxes /= config.BBOX_STD_DEV bboxes /= config.BBOX_STD_DEV
# Generate class-specific target masks. # Generate class-specific target masks
masks = np.zeros((config.TRAIN_ROIS_PER_IMAGE, config.MASK_SHAPE[0], config.MASK_SHAPE[1], config.NUM_CLASSES), masks = np.zeros((config.TRAIN_ROIS_PER_IMAGE, config.MASK_SHAPE[0], config.MASK_SHAPE[1], config.NUM_CLASSES),
dtype=np.float32) dtype=np.float32)
for i in pos_ids: for i in pos_ids:
...@@ -2223,9 +2225,17 @@ class MaskRCNN(): ...@@ -2223,9 +2225,17 @@ class MaskRCNN():
3+: Train Resnet stage 3 and up 3+: Train Resnet stage 3 and up
4+: Train Resnet stage 4 and up 4+: Train Resnet stage 4 and up
5+: Train Resnet stage 5 and up 5+: Train Resnet stage 5 and up
augmentation: Optional. An imgaug (https://github.com/aleju/imgaug) augmentation. augmentation: Optional. An imgaug (https://github.com/aleju/imgaug)
For example, passing imgaug.augmenters.Fliplr(0.5) flips images augmentation. For example, passing imgaug.augmenters.Fliplr(0.5)
right/left 50% of the time. flips images right/left 50% of the time. You can pass complex
augmentations as well. This augmentation applies 50% of the
time, and when it does it flips images right/left half the time
and adds a Gausssian blur with a random sigma in range 0 to 5.
augmentation = imgaug.augmenters.Sometimes(0.5, [
imgaug.augmenters.Fliplr(0.5),
imgaug.augmenters.GaussianBlur(sigma=(0.0, 5.0))
])
""" """
assert self.mode == "training", "Create model in training mode." assert self.mode == "training", "Create model in training mode."
......
...@@ -456,8 +456,8 @@ def resize_mask(mask, scale, padding): ...@@ -456,8 +456,8 @@ def resize_mask(mask, scale, padding):
def minimize_mask(bbox, mask, mini_shape): def minimize_mask(bbox, mask, mini_shape):
"""Resize masks to a smaller version to cut memory load. """Resize masks to a smaller version to reduce memory load.
Mini-masks can then resized back to image scale using expand_masks() Mini-masks can be resized back to image scale using expand_masks()
See inspect_data.ipynb notebook for more details. See inspect_data.ipynb notebook for more details.
""" """
...@@ -498,8 +498,8 @@ def mold_mask(mask, config): ...@@ -498,8 +498,8 @@ def mold_mask(mask, config):
def unmold_mask(mask, bbox, image_shape): def unmold_mask(mask, bbox, image_shape):
"""Converts a mask generated by the neural network into a format similar """Converts a mask generated by the neural network to a format similar
to it's original shape. to its original shape.
mask: [height, width] of type float. A small, typically 28x28 mask. mask: [height, width] of type float. A small, typically 28x28 mask.
bbox: [y1, x1, y2, x2]. The box to fit the mask in. bbox: [y1, x1, y2, x2]. The box to fit the mask in.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册