Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

COB: Convolutional Oriented Boundaries


COB is a technique that produces multiscale oriented contours and region hierarchies from a single forward pass of a generic image classification CNN. The whole pipeline runs in the order of 0.8 seconds per image to produce state-of-the-art hierarchical boundaries.

Check our visit our project page for pre-computed results (on BSDS500, PASCAL, SBD, MS-COCO, ImageNet, etc.), public benchmarks, results visualization, and additional information.


  • We have extended the ECCV paper with more experiments for RGB-D boundary detection, object boundary detection, as well as experiments that combine COB with high-level tasks that include Semantic Contours, Semantic Segmentation, Object Detection, and Segmented/Box Proposals. You can additionally download:
  1. Model trained on NYUD-v2 train set (for RGB-D boundary detection) Link. All images and ground truth associated to the NYUD-v2 database can be found here. We followed the experimental of this paper.
  2. Model trained on PASCAL Segmentation 2012 train set (for Object Boundary Detection) Link.
  3. All additional results from our project page


  • Install this version of Caffe along with standard dependencies and matcaffe.
  • The CNN models of COB to reproduce the results of this paper are available. Download them and put them under models/:
  1. Model trained on PASCALContext train set (VOC train) Link.
  2. Model trained on PASCALContext trainval set (VOC trainval) Link.
  3. Model trained on BSDS500 trainval set Link.

####Note: In the paper, we split the original val set of PASCALContext into VOC val and VOC test sets, while keeping the original training set as is (VOC train). VOC val was selected not to overlap with SBD val set.

COB Usage

  • To compute COB UCMs, see im2ucm.m (and scripts/im2cob_all.m)
  • To compute COB proposals, see im2prop.m (and scripts/im2cob_all.m)
  • For demos about how to use these functions, see the demos folder

For more information on how to use the code, please read README.txt


If you use this code, please consider citing the following papers:

  Title          = {Convolutional Oriented Boundaries},
  Author         = {K.K. Maninis and J. Pont-Tuset and P. Arbel\'{a}ez and L. Van Gool},
  Booktitle      = {European Conference on Computer Vision (ECCV)},
  Year           = {2016}

  Author 	 = {K.K. Maninis and J. Pont-Tuset and P. Arbel\'{a}ez and L. Van Gool},
  Title 	 = {Convolutional Oriented Boundaries: From Image Segmentation to High-Level Tasks},
  Journal 	 = {IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)},
  Year 		 = {2017}

If you encounter any problems with the code, please contact the first author.