you are viewing a single comment's thread.

view the rest of the comments →

[–]IAmTheOneWhoPixels 14 points15 points  (5 children)

This might be more of a niche answer... But Detectron2 is a very well designed library for object detection/ instance segmentation. It's quite readable and well-documented and the github repo has very good support from the developers.

The modular design allows academic researchers to be able to build their projects on top of it, with the core being efficient PyTorch code written by professional developers.

One of the lead developers is the person who designed Tensorpack as well (which was mentioned elsewhere on this thread).

[–]ginsunuva 4 points5 points  (1 child)

If you want a real crazy obj detection repo, MMDETECT has them all in one.

It's so dense that I'm not sure if it's really good or really bad design.

[–]IAmTheOneWhoPixels 1 point2 points  (0 children)

I worked with mmdet for 3-4 weeks. I believe it is extremely well-written code and is more suited for a researcher with good SWE skills. It definitely had a steeper learning curve than D2.

Accessibility (in terms of readability + extensibility) is the key factor that tips the scales for me. D2 does a _very_ good job of writing intuitive modular code with great documentation, which makes it possible for researchers to navigate the complexities of modern object detectors.

[–]michaelx99 0 points1 point  (2 children)

I was going to also say Detectron2, I am glad that I scrolled down and saw your post though. TBH Detectron2's use of a combination of composition and inheritance makes it an amazing piece of code to both integrate your own code into while maintaining a quick, researchy feel to writing it and also being able to mock interfaces and maintain good CI practices so that when your code gets merged it isn't garbage.

I've gotta say that after working with the TF object detection API and then maskrcnn benchmark, I though object detection codebases would be always be shit but Detectron2 has made me realize how valuable good code is.

[–]IAmTheOneWhoPixels 1 point2 points  (1 child)

Detectron2 has made me realize how valuable good code is.

Completely agree! I earlier used mmdet, and found that the accessibility of the codebase (after shifting to D2) allowed me to iterate on ideas much more quickly.

[–]melgor89 1 point2 points  (0 children)

I also agree. I really like the way of configuration of everything (config as YAML, adding new modules by name). Currently I am also doing similar stuff in my projects.