Skip to content

AlpacaTechJP/selectivesearch

develop
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?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Selective Search Implementation for Python

This is a simple Selective Search Implementation for Python

Install

$ pip install selectivesearch

Usage

It is super-simple.

import skimage.data
import selectivesearch

img = skimage.data.astronaut()
img_lbl, regions = selectivesearch.selective_search(img, scale=500, sigma=0.9, min_size=10)
regions[:10]
=>
[{'labels': [0.0], 'rect': (0, 0, 15, 24), 'size': 260},
 {'labels': [1.0], 'rect': (13, 0, 1, 12), 'size': 23},
 {'labels': [2.0], 'rect': (0, 15, 15, 11), 'size': 30},
 {'labels': [3.0], 'rect': (15, 14, 0, 0), 'size': 1},
 {'labels': [4.0], 'rect': (0, 0, 61, 153), 'size': 4927},
 {'labels': [5.0], 'rect': (0, 12, 61, 142), 'size': 177},
 {'labels': [6.0], 'rect': (7, 54, 6, 17), 'size': 8},
 {'labels': [7.0], 'rect': (28, 50, 18, 32), 'size': 22},
 {'labels': [8.0], 'rect': (2, 99, 7, 24), 'size': 24},
 {'labels': [9.0], 'rect': (14, 118, 79, 117), 'size': 4008}]

See also an example/example.py which generates : alt tag

Parameters of selective search

Let's see this paper: http://cs.brown.edu/~pff/papers/seg-ijcv.pdf

sigma

In general we use a Gaussian filter to
smooth the image slightly before computing the edge weights, in order to compensate
for digitization artifacts. We always use a Gaussian with σ = 0.8, which does not
produce any visible change to the image but helps remove artifacts.

min_size

If the rect size is reached on min_size, the calculation is stopped.

scale

There is one runtime parameter for the algorithm, which is the value of k that
is used to compute the threshold function τ . Recall we use the function τ (C) =
14
k/|C| where |C| is the number of elements in C. Thus k effectively sets a scale of
observation, in that a larger k causes a preference for larger components. We use
two different parameter settings for the examples in this section (and throughout the
paper), depending on the resolution of the image and the degree to which fine detail
is important in the scene.

Blog

About

Selective Search Implementation for Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages