Hi Wei. While I'm not so active in skimage at the moment, I am very interested in how to connect sklearn and skimage. I think at the moment the best approach would be to leave the two packages independent but try not to reimplement to much. Many of the ML methods applied to images can be made much more efficient for images, so reimplementing these is definitely worth it. For example image segmentation algorithms often build on clustering algorithms (like the one you mentioned) but they can be made much faster by only considering local neighborhoods. (which is why I work on #206 https://github.com/scikits-image/scikits-image/pull/206) In most cases that I am interested in the "higher level" ML sort of "wraps around" the CV, as for example with descriptors and classification. I would place all descriptors in skimage but skimage doesn't need sklearn as a dependence for me to be able to use an SVM on them. Do you have more examples where sklearn and skimage might overlap? I was actually wondering about doing a grab-cut implementation which needs Gaussian mixture models. But before I get there, we need graph cuts in skimage ;) Cheers, Andy On 07/24/2012 08:09 AM, LI, Wei wrote:
I am new to scikits-image and I am not sure the intended coverage of this package. Seems digital image processing using a signal processing view is quite mature but there are also trends where methods from statistical learning theory and computer vision are adpated into solving standard digial image processing tasks just like using learning method to do super resolution, image denoising. There are also some discussion in this forum that are related to computer vision like the object detection. As far as I know, there is one scikits package as the scikits-learn implementing many machine learning algorithm. When we need some functions to perform some tasks whether we need to reimplement some functions or just to use another package as a denepdence?
As I am a computer vision researcher I find this package by searching for available implementation for hog features in python. Just wondering whether some modules I can help to implement for this as I have already gotten help from package :-). But I have some questions when picturing whether I can take the tasks in the wiki page http://scikits-image.org/docs/dev/contribute.html . For example the graph-cut based segmentation. As we know, the graph cut base algorithm based mainly on graph-based clustering method. Such method is implemented in various packages and is in scikits-learn http://scikit-learn.org/dev/modules/generated/sklearn.cluster.SpectralCluste....
Then we have two choices, 1. Write one JUST for image clustering in this package (Pros: self contained package, Cons: cannot get updated when clustering methods are updated) 2. Include the sklearn as a dependence, adapt the mehtods in that package, and write a routine that just build the graph from the image ,throw it to sklearn to solve the learning problem and convert the result back?
As more and more papers in standard image processing conference like ICIP, using the statistical learning method, furthuer implementations may have more functions need the machine learning as subroutines. So what is the indented choice from the founders of this package?