Git Product home page Git Product logo

mask-rcnn's Introduction

EDIT (AS OF 4th NOVEMBER 2019):

  1. This implementation has multiple errors and as of the date 4th, November 2019 is insufficient to be utilized as a resource to understanding the architecture of Mask R-CNN. It has been pointed out to me through multiple emails and comments on HackerNews that such a faulty implementation is to the detriment of the research endeavors in the deep learning community. It was a project that I had put together quite early in my academic career and I did not realize the scale of my mistake

  2. I intend to take care of the issues (the issues filed in this repository are representative) and make this code more "readable" and embellish it with better documentation so that it fulfills the purpose for which it was made. Unfortunately, as of right now, I am busy with my academics and cannot attend to this project. I shall start working on bettering this repository by mid-January to early February 2020. Until then, I have provided links to other implementations of Mask R-CNN that I think could help serve your purpose

  3. PR's fixing any one of the issues listed are always welcome and will allow me to get a headstart on this particular task of making this repository more presentable.

Once again I would like to apologize for any inconvenience caused

LINKS

  1. https://github.com/facebookresearch/detectron2 (PyTorch implementation)
  2. https://github.com/matterport/Mask_RCNN (Tensorflow implementation). Much of this repository was built using this repository as a reference

Mask-RCNN

A PyTorch implementation of the architecture of Mask RCNN

Decription of folders

  1. model.py includes the models of ResNet and FPN which were already implemented by the authors of the papers and reproduced in this implementation
  2. nms and RoiAlign are taken from Robb Girshick's implementation of faster RCNN
  3. Focal loss has been added to this implementtaion on lieu of better results as evidenced by the paper on RetinaNets

Mask-RCNN model:

alt text

Features:

  1. The part of the network responsible for bounding box detection derives it's inspiration from the faster RCNN model having a RPN working in tandem with a ConvNet
  2. The pooling layers present in the ConvNet round down or round up to the nearest integer when the stride is not a divisor of the receptive field, which tends to either lose or assume "information" from the image respectively at the non integral points.
  3. ROI align was proposed to deal with this, wherein bilinear interpolation is used to detect the values at the non integral values of the pixels
  4. Using a more complex interpolation scheme( cubic interpolation -> 16 additional features) offers a slightly better result when this model was tested, however not enough to justify the additional complexity
  5. Cross entropy loss when summed over a huge number of proposals tends to take a huge value for proposals that have a high confidence metric thereby dwarfing the contribution from the proposals of interest. Focal Loss was proposed to do away with this problem
  6. However Focal loss gives much better results with single stage networks. This is because a two stage network has some discriminative policy to deal with this class imbalance something which the single stage networks don't enjoy.

If you find any issue in this repsoritory, feel free to fork this repository and submit a PR with the necessary changes

mask-rcnn's People

Contributors

wannabeog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mask-rcnn's Issues

IndentationError in model.py

Python 3 treats IndentationErrors as syntax errors

flake8 testing of https://github.com/wannabeOG/Mask-RCNN on Python 3.6.3

$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

./model.py:1255:4: E999 IndentationError: unindent does not match any outer indentation level
   .
   ^
1     E999 IndentationError: unindent does not match any outer indentation level
1

Undefined names in ./model.py

Undefined names have the potential to raise NameError at runtime.

flake8 testing of https://github.com/wannabeOG/Mask-RCNN on Python 3.7.0

$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

./model.py:828:23: F821 undefined name 'parse_image_meta'
    _, _, window, _ = parse_image_meta(image_meta)
                      ^
./model.py:989:13: F821 undefined name 'one_hot_embedding'
        t = one_hot_embedding(y.data.cpu(), 1+self.num_classes) 
            ^
./model.py:1009:13: F821 undefined name 'one_hot_embedding'
        t = one_hot_embedding(y.data.cpu(), 1+self.num_classes)
            ^
./model.py:1158:22: F821 undefined name 'compute_rpn_class_loss'
    rpn_class_loss = compute_rpn_class_loss(rpn_match, rpn_class_logits)
                     ^
./model.py:1225:18: F821 undefined name 'compose_image_meta'
    image_meta = compose_image_meta(image_id, shape, window, active_class_ids)
                 ^
./model.py:1389:18: F821 undefined name 'mold_image'
        images = mold_image(image.astype(np.float32), self.config)
                 ^
./model.py:1996:28: F821 undefined name 'mold_image'
            molded_image = mold_image(molded_image, self.config)
                           ^
./model.py:1998:26: F821 undefined name 'compose_image_meta'
            image_meta = compose_image_meta(
                         ^
8     F821 undefined name 'parse_image_meta'
8

multi-gpu training

Hi, it seems that GPU_COUNT in config.py doesn't work. Is there any way to multi-gpu training? Thanks!

How to train Cityscapes dataset

Hi!How to load and train cityscapes dataset? Cityscapes dataset has no bounding box, so how do you train it for detection? thanks.

No module named 'nms._ext'

Could you help me with this problem?


ModuleNotFoundError Traceback (most recent call last)
in ()
17 from config import Config
18 import utils
---> 19 import model as modellib
20 import visualize
21 from model import log

~/cell_seg/Mask-RCNN/codes/model.py in ()
15 import utils
16 import visualize
---> 17 from nms.nms_wrapper import nms
18 from roialign.roi_align.crop_and_resize import CropAndResizeFunction
19

~/cell_seg/Mask-RCNN/codes/nms/nms_wrapper.py in ()
9 from future import print_function
10
---> 11 from nms.pth_nms import pth_nms
12
13

~/cell_seg/Mask-RCNN/codes/nms/pth_nms.py in ()
1 import torch
----> 2 from ._ext import nms
3 import numpy as np
4
5 def pth_nms(dets, thresh):

ModuleNotFoundError: No module named 'nms._ext'

A Bug in model.py

image
the mistake occurs when detecting nothing! The score of background is the highest!

No module named 'nms._ext'

I run the coco.py, but have this error:
from ._ext import nms
ModuleNotFoundError: No module named 'nms._ext'

can you solve this error, thanks!

Problems about Focal loss addition

Q1.In compute_loss( ) function, rpn_class_loss = utils.compute_rpn_class_loss(rpn_match, rpn_class_logits), but utils.compute_rpn_class_loss() doesn't exist.
Q2.In model.compute_rpn_class_loss(), you use the original cross-entropy instead. The only use of focal loss is in mask.forward(), but it seemed doesn't work.
Looking for your kind reply. Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.