Simultaneous Detection and Segmentation

Overview

##Simultaneous Detection and Segmentation

This is code for the ECCV Paper:
Simultaneous Detection and Segmentation
Bharath Hariharan, Pablo Arbelaez, Ross Girshick, Jitendra Malik
To appear in ECCV, 2014.

###Installation

  • Installing caffe: The code comes bundled with a version of caffe that we have modified slightly for SDS. (These modifications might be merged into the public caffe version sometime in the future). To install caffe, follow the instructions on the caffe webpage. (You'll have to install some pre-requisites). After installing all prerequisites, cd into extern/caffe and do make caffe.
    After you have made caffe, you will also need to do make matcaffe.

  • Downloading other external dependencies (MCG and liblinear): The extern folder has a script that downloads MCG and liblinear and compiles liblinear. After running the script, cd into extern/MCG-PreTrained and change the path in root_dir.m to the path to the MCG-PreTrained directory.

  • Starting MATLAB: Start MATLAB and call startup_sds from the main SDS directory. This will compile all mexes in MCG and liblinear, and add all paths.

    A few possible issues related to Caffe:

    • You may need to add the path to CUDA libraries (usually in /usr/local/cuda/lib64) to LD_LIBRARY_PATH before starting MATLAB.
    • When running the code, if you get an error saying: /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0: undefined symbol: FT_Face_GetCharVariantIndex, try adding /usr/lib/x86_64-linux-gnu/libfreetype.so.6(or the equivalent library that your system may have) to the LD_PRELOAD environment variable before starting MATLAB.

###Using Pre-computed results To get started you can look at precomputed results. Download the precomputed results from this ftp link: ftp://ftp.cs.berkeley.edu/pub/projects/vision/sds_precomputed_results.tar.gz and untar it. The precomputed results contain results on VOC2012 val images (SDS, detection and segmentation). You can visualize the precomputed results using the function visualize_precomputed_results.m: visualize_precomputed_results('/path/to/precomputed/results', '/path/to/VOC2012/VOCdevkit/VOC2012/JPEGImages', categ_id);
Here categ_id is the number of the category, for example 15 for person.

Note that you do not need to install Caffe or any of the external dependencies above if you want to simply visualize or use precomputed results.

###Testing Pre-trained models

Download the pretrained models from this ftp link: ftp://ftp.cs.berkeley.edu/pub/projects/vision/sds_pretrained_models.tar.gz and untar them in the main SDS directory.

demo_sds.m is a simple demo that uses the precomputed models to show the outputs we get on a single image. It takes no arguments. It runs the trained models on an example image and displays the detections for the person category. This function is a wrapper around the main function, which is called imagelist_to_sds.m.

###Benchmarking and evaluation

You can also run the benchmark demo, demo_sds_benchmark, which tests our pipeline on a small 100 image subset of VOC2012 val and then evaluates for the person category. You can call it as follows:
demo_sds_benchmark('/path/to/VOC2012/VOCdevkit/VOC2012/JPEGImages/', '/path/to/cachedir', '/path/to/SBD');
Here the cachedir is a directory where intermediate results will be stored. The function also requires the SBD (Semantic Boundaries Dataset), which you can get here. The function does the evaluation for both before refinement and after refinement, and reports an APr of 59.9 in the first case and 66.8 in the second case.

The main function for running the benchmark is evaluation/run_benchmark.m. demo_sds_benchmark should point you to how to run the benchmark.

###Evaluating on detection and segmentation

  • Detection: Look at imagelist_to_det.m to see how to produce a bounding box detection output. In summary, after computing scores on all regions, we use misc/box_nms.m to non-max suppress the boxes using box overlap. misc/write_test_boxes then writes the boxes out to a file that you can submit to PASCAL.

  • Semantic segmentation: Look at imagelist_to_seg.m to see how we produce a semantic segmentation output. In summary, after we compute scores on all regions, we do misc/region_nms.m to non-max suppress boxes, and use misc/get_top_regions.m to get the top regions per category. For our experiments, we picked the top 5K regions for seg val and seg test. Then we call paste_segments: [local_ids, labels, scores2] = paste_segments(topchosen, scores, region_meta_info, 2, 10, -1); topchosen is the first output of get_top_regions.m. These parameters above were tuned on seg val 2011. This function will pick out the segments to paste. To do the actual pasting, use create_pasted_segmentations (if you don't want any refinement) or create_pasted_segmentations_refined (if you want refinement). Refinement is a bit slower but works ~1 point better.

###SDS results format If you want to do more with our results, you may want to understand how we represent our results.

  • Representing region candidates: Because we work with close to 2000 region candidates, saving them as full image-sized masks uses up a lot of space and requires a lot of memory to process. Instead, we save these region candidates using a superpixel representation: we save a superpixel map, containing the superpixel id for each pixel in the image, and we represent each region as a binary vector indicating which superpixels are present in the region. To allow this superpixel representation to be accessible to Caffe, we
  • save the superpixel map as a text file, the first two numbers in which represent the size of the image and the rest of the file contains the superpixel ids of the pixels in MATLAB's column-major order (i.e, we first store the superpixel ids of the first column, then the second column and so on).
  • stack the representation of each region as a matrix (each column representing a region) and save it as a png image.

read_sprep can read this representation into matlab.

  • Representing detections: After the regions have been scored and non-max suppressed, we store the chosen regions as a cell array, one cell per category. Each cell is itself a cell array, with as many cells as there are images, and each cell containing the region id of the chosen regions. The scores are stored in a separate cell array.

  • Representing refined detections: After refinement, the refined regions are stored as binary matrices in mat files, one for each image. The refined regions for different categories are stored in different directories

###Retraining region classifiers

To retrain region classifiers, you first need to save features for all regions including ground truth. You can look at the function setup_svm_training.m. This function will save features and return a region_meta_info struct, which has in it the overlaps of all the regions with all the ground truth. The function expects a list of images, a number of paths to save stuff in, and a path to the ground truth (SBD).

Once the features are saved you can use the region_classification/train_svms.m function to train the detectors. You can also train refinement models for each category using refinement/train_refiner.m

###Retraining the network To retrain the network you will have to use caffe. You need two things: a prototxt specifying the architecture, and a window file specifying the data.

  • Window file: Writing the window file requires you to make a choice between using box overlap to define ground truth, or using region overlap to define ground truth. In the former case, use feature_extractor/make_window_file_box.m and in the latter use feature_extractor/make_window_file_box.m. Both functions require as input the image list, region_meta_info (output of preprocessing/preprocess_mcg_candidates; check setup_svm_training to see how to call it), sptextdir, regspimgdir (specifying the superpixels and regions) and the filename in which the output should go.

  • Prototxt: There are 3 prototxts that figure during training. One specifies the solver, and points to the other two: one for training and the other for testing. Training a single pathway network for boxes can be done with the window_train and window_val, a single pathway network on regions can be done using masked_window_train and masked_window_val, and a two pathway network (net C) can be trained using piwindow_train and piwindow_val. (Here "pi" refers to the architecture of the network, which looks like the capital greek pi.) The train and val prototxts also specify which window file to use. The solver prototxt specifies the path to the train and val prototxts. It also specifies where the snapshots are saved. Make sure that path can be saved to.

  • Initialization: A final requirement for finetuning is to have an initial network, and also the imagenet mean. The latter you can get by running extern/caffe/data/ilsvrc12/get_ilsvrc_aux.sh The initial network is the B network for net C. For everything else, it is the caffe reference imagenet model, which you can get by running extern/caffe/examples/imagenet/get_caffe_reference_imagenet_model.sh

  • Finetuning: cd into caffe and use the following command to train the network (replace caffe_reference_imagenet_model by the appropriate initialization):
    GLOG_logtostderr=1 ./build/tools/finetune_net.bin ../prototxts/pascal_finetune_solver.prototxt ./examples/imagenet/caffe_reference_imagenet_model 2>&1 | tee logdir/log.txt
    Finally, extracting features requires a network with the two-pathway architecture. If you trained the box and region pathway separately, you can stitch them together using feature_extractor/combine_box_region_nets.m

Comments
  • Error(crash) with demo_sds on matlab.

    Error(crash) with demo_sds on matlab.

    Hi, i use cuda-6.5 ,nvidia-340, no-gpu and caffe installation, mkl etc... when i run demo_sds on matlab crash is happend. this is command screen.

    ... ( many line ..... ) .... I0824 19:19:50.779052 8457 net.cpp:402] Collecting Learning Rate and Weight Decay. I0824 19:19:50.779070 8457 net.cpp:167] Network initialization done. I0824 19:19:50.779080 8457 net.cpp:168] Memory required for data: 158297088 F0824 19:19:53.303887 8457 syncedmem.cpp:91] CPU-only Mode *** Check failure stack trace: *** die

    So i debug the demo_sds.m in matlab. Crash is occured 20 line

    demo_sds.m(20 line) : imagelist_to_sds({imname}, imgdir, mcgdir, ovoutdir, sptextdir, regspimgdir, featdir, refinedoutdir, scorefile,10);

    how can i solve this problem.. @bharath272

    opened by blackCmd 0
  • Fix broken headings in Markdown files

    Fix broken headings in Markdown files

    GitHub changed the way Markdown headings are parsed, so this change fixes it.

    See bryant1410/readmesfix for more information.

    Tackles bryant1410/readmesfix#1

    opened by bryant1410 0
  • Instance delienation

    Instance delienation

    I have a challenging object segmentation problem, with bad lighting, multiple shadows and objects (cows) of different colours.

    I've been able so far to detect and correctly classify some instances of the class 'cow' using a different CNN algorithm, but I can't delineate between instances of it (i.e. tell 'this is where cow1 ends and cow2 begins'). Can sds handle this problem (I don't have matlab installed on my computer, so I haven't tried it yet)?

    img

    figure6_2

    opened by AlexTS1980 0
  • http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/mcg/resources/MCG-PreTrained.tgz not found

    http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/mcg/resources/MCG-PreTrained.tgz not found

    extern/get_external_dependencies.sh fails because http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/mcg/resources/MCG-PreTrained.tgz no longer exists. Can I download it from another location?

    opened by gavinmh 3
  • I can't make matcaffe.

    I can't make matcaffe.

    It shows the following: build/lib/libcaffe.a(net.o):在函数‘caffe::Net::ToProto(caffe::NetParameter_, bool)’中: net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x33):对‘google::protobuf::internal::kEmptyString’未定义的引用 net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x82):对‘google::protobuf::internal::StringTypeHandlerBase::New()’未定义的引用 net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x1d0):对‘google::protobuf::internal::StringTypeHandlerBase::New()’未定义的引用 net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x298):对‘google::protobuf::internal::StringTypeHandlerBase::New()’未定义的引用 net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x389):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x3a1):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x3c5):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text._ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb[ZN5caffe3NetIfE7ToProtoEPNS_12NetParameterEb]+0x3d9):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 build/lib/libcaffe.a(net.o):在函数‘caffe::Net::ToProto(caffe::NetParameter, bool)’中: net.cpp:(.text._ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x33):对‘google::protobuf::internal::kEmptyString’未定义的引用 net.cpp:(.text._ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x82):对‘google::protobuf::internal::StringTypeHandlerBase::New()’未定义的引用 net.cpp:(.text._ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[_ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x1d0):对‘google::protobuf::internal::StringTypeHandlerBase::New()’未定义的引用 net.cpp:(.text.ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x298):对‘google::protobuf::internal::StringTypeHandlerBase::New()’未定义的引用 net.cpp:(.text.ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x389):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text.ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x3a1):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text.ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x3c5):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text.ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb[ZN5caffe3NetIdE7ToProtoEPNS_12NetParameterEb]+0x3d9):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 build/lib/libcaffe.a(net.o):在函数‘caffe::Net::Forward(std::string const&, double)’中: net.cpp:(.text.ZN5caffe3NetIdE7ForwardERKSsPd[ZN5caffe3NetIdE7ForwardERKSsPd]+0x44):对‘google::protobuf::MessageLite::ParseFromString(std::string const&)’未定义的引用 net.cpp:(.text.ZN5caffe3NetIdE7ForwardERKSsPd[ZN5caffe3NetIdE7ForwardERKSsPd]+0x18f):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text.ZN5caffe3NetIdE7ForwardERKSsPd[ZN5caffe3NetIdE7ForwardERKSsPd]+0x1b8):对‘google::protobuf::MessageLite::SerializeToString(std::string) const’未定义的引用 build/lib/libcaffe.a(net.o):在函数‘caffe::Net::Forward(std::string const&, float)’中: net.cpp:(.text.ZN5caffe3NetIfE7ForwardERKSsPf[ZN5caffe3NetIfE7ForwardERKSsPf]+0x44):对‘google::protobuf::MessageLite::ParseFromString(std::string const&)’未定义的引用 net.cpp:(.text.ZN5caffe3NetIfE7ForwardERKSsPf[ZN5caffe3NetIfE7ForwardERKSsPf]+0x18f):对‘google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)’未定义的引用 net.cpp:(.text.ZN5caffe3NetIfE7ForwardERKSsPf[ZN5caffe3NetIfE7ForwardERKSsPf]+0x1b8):对‘google::protobuf::MessageLite::SerializeToString(std::string) const’未定义的引用 build/lib/libcaffe.a(caffe.pb.o):在函数‘caffe::PowerParameter::ByteSize() const’中: caffe.pb.cc:(.text+0xa53):对‘google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(google::protobuf::UnknownFieldSet const&)’未定义的引用 build/lib/libcaffe.a(caffe.pb.o):在函数‘caffe::DropoutParameter::ByteSize() const’中: caffe.pb.cc:(.text+0xaa3):对‘google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(google::protobuf::UnknownFieldSet const&)’未定义的引用 build/lib/libcaffe.a(caffe.pb.o):在函数‘caffe::WindowDataParameter::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream) const’中: caffe.pb.cc:(.text+0xb6d):对‘google::protobuf::internal::WireFormatLite::WriteString(int, std::string const&, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xb8a):对‘google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xba6):对‘google::protobuf::internal::WireFormatLite::WriteString(int, std::string const&, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xbc1):对‘google::protobuf::internal::WireFormatLite::WriteUInt32(int, unsigned int, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xbdc):对‘google::protobuf::internal::WireFormatLite::WriteUInt32(int, unsigned int, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xbf8):对‘google::protobuf::internal::WireFormatLite::WriteBool(int, bool, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xc15):对‘google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xc32):对‘google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xc50):对‘google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xc6c):对‘google::protobuf::internal::WireFormatLite::WriteUInt32(int, unsigned int, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xc89):对‘google::protobuf::internal::WireFormatLite::WriteString(int, std::string const&, google::protobuf::io::CodedOutputStream)’未定义的引用 build/lib/libcaffe.a(caffe.pb.o):在函数‘caffe::PowerParameter::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream) const’中: caffe.pb.cc:(.text+0xcfb):对‘google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xd14):对‘google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream)’未定义的引用 caffe.pb.cc:(.text+0xd2d):对‘google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream)’未定义的引用 build/lib/libcaffe.a(caffe.pb.o):在函数‘caffe::PoolingParameter::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream) const’中: caffe.pb.cc:(.text+0xdac):对‘google::protobuf::internal::WireFormatLite::WriteEnum(int, int, googl make: ** [matlab/caffe/caffe.mexa64] 错误 255 How to solve it?

    opened by tjusxh 7
  • Why can't I make it?

    Why can't I make it?

    After I do the Prerequisites,I want to make all the project.But I come across the question follow.Please help me,

    2 errors detected in the compilation of "/tmp/tmpxft_00002ae5_00000000-15_math_functions.compute_50.cpp1.ii". make: *** [build/src/caffe/util/math_functions.cuo] 错误 2

    opened by tjusxh 1
Owner
Bharath Hariharan
Bharath Hariharan
SIMULEVAL A General Evaluation Toolkit for Simultaneous Translation

SimulEval SimulEval is a general evaluation framework for simultaneous translation on text and speech. Requirement python >= 3.7.0 Installation git cl

Facebook Research 48 Dec 28, 2022
TorchDistiller - a collection of the open source pytorch code for knowledge distillation, especially for the perception tasks, including semantic segmentation, depth estimation, object detection and instance segmentation.

This project is a collection of the open source pytorch code for knowledge distillation, especially for the perception tasks, including semantic segmentation, depth estimation, object detection and instance segmentation.

yifan liu 147 Dec 3, 2022
A Data Annotation Tool for Semantic Segmentation, Object Detection and Lane Line Detection.(In Development Stage)

Data-Annotation-Tool How to Run this Tool? To run this software, follow the steps: git clone https://github.com/Autonomous-Car-Project/Data-Annotation

TiVRA AI 13 Aug 18, 2022
This is a GUI interface which can process forest fire detection, smoke detection and fire segmentation

This is a GUI interface which can process forest fire detection, smoke detection and fire segmentation. Yolov5 is used to detect fire and smoke and unet is used to segment fire.

null 7 Jan 8, 2023
Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP

Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP Abstract: We introduce a method that allows to automatically se

Daniil Pakhomov 134 Dec 19, 2022
Realtime segmentation with ENet, the fast and accurate segmentation net.

Enet This is a realtime segmentation net with almost 22 fps on GTX1080 ti, and the model size is very small with only 28M. This repo contains the infe

JinTian 14 Aug 30, 2022
Complete-IoU (CIoU) Loss and Cluster-NMS for Object Detection and Instance Segmentation (YOLACT)

Complete-IoU Loss and Cluster-NMS for Improving Object Detection and Instance Segmentation. Our paper is accepted by IEEE Transactions on Cybernetics

null 290 Dec 25, 2022
Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow

Mask R-CNN for Object Detection and Segmentation This is an implementation of Mask R-CNN on Python 3, Keras, and TensorFlow. The model generates bound

Matterport, Inc 22.5k Jan 4, 2023
Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation)

Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation) Download Synthia dataset The model uses

null 32 Sep 21, 2022
nnFormer: Interleaved Transformer for Volumetric Segmentation Code for paper "nnFormer: Interleaved Transformer for Volumetric Segmentation "

nnFormer: Interleaved Transformer for Volumetric Segmentation Code for paper "nnFormer: Interleaved Transformer for Volumetric Segmentation ". Please

jsguo 610 Dec 28, 2022
Mae segmentation - Reproduction of semantic segmentation using masked autoencoder (mae)

ADE20k Semantic segmentation with MAE Getting started Install the mmsegmentation

null 97 Dec 17, 2022
Multi-atlas segmentation (MAS) is a promising framework for medical image segmentation

Multi-atlas segmentation (MAS) is a promising framework for medical image segmentation. Generally, MAS methods register multiple atlases, i.e., medical images with corresponding labels, to a target image;

NanYoMy 13 Oct 9, 2022
Detectron2 is FAIR's next-generation platform for object detection and segmentation.

Detectron2 is Facebook AI Research's next generation software system that implements state-of-the-art object detection algorithms. It is a ground-up r

Facebook Research 23.3k Jan 8, 2023
This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows" on Object Detection and Instance Segmentation.

Swin Transformer for Object Detection This repo contains the supported code and configuration files to reproduce object detection results of Swin Tran

Swin Transformer 1.4k Dec 30, 2022
Fast, modular reference implementation of Instance Segmentation and Object Detection algorithms in PyTorch.

Faster R-CNN and Mask R-CNN in PyTorch 1.0 maskrcnn-benchmark has been deprecated. Please see detectron2, which includes implementations for all model

Facebook Research 9k Jan 4, 2023
BMW TechOffice MUNICH 148 Dec 21, 2022
Object detection and instance segmentation toolkit based on PaddlePaddle.

Object detection and instance segmentation toolkit based on PaddlePaddle.

null 9.3k Jan 2, 2023
Aerial Imagery dataset for fire detection: classification and segmentation (Unmanned Aerial Vehicle (UAV))

Aerial Imagery dataset for fire detection: classification and segmentation using Unmanned Aerial Vehicle (UAV) Title FLAME (Fire Luminosity Airborne-b

null 79 Jan 6, 2023