GSoC-2014; participation + ideas

edited March 2014 in Summer of Code 2014

Hello to all,

My name is Bocharov Dmitry. I'm 1st year master student (5th year at all) of the Moscow Institute of Physics and Technology. My specialisation is Computer Science.

I would like to take part in GSoC-2014, and I've searched for projects, connected with image analysis and image designing because now I'm writing my master's diploma on theme "Shape decomposition". This is its key point, however, my global plan is to create web-service, which will allow to try different instruments of image analysis online, without programming. I use Python (numpy, scikit-image... + Django). So I bumped into your Processing project and found our ideas quite similar. What do you think of an idea to create some kind of an image analysis library? I've looked through the existing libraries, but didn't find some kind of such a library. The closest is toxiclib. Maybe I wasn't attentive and missed something. However, if you help me with developing this ieda, it will be great!

Don't think I'm a python developer, Actually, I use Java as my professional language for 2 years practivcally. Here is my linked-in account. During the last year I'm a part-time developer of Amdocs CRM system for big Russian telecom provider.

One more thing. A year ago I took part in the Imagine Cup student competition. My team created a system for remote robot driving and programming, that allows students to learn robotics. We've got a robot with Linux OS and Kinect. We used to read and transfer data from kinect through wi-fi to the laptop with MRDS. So I have an experience working with kinect and openkinect and may be useful in updating Processing Kinect library and creating its new features. I saw here, that vva_innovate has already applied for this. Maybe we can work together for this.

Thanks for your help and comments in advance.

Answers

  • edited March 2014 Answer ✓

    Hello Dmitry, an image analysis library could be a very useful addition to Processing. I believe the OpenCV for Processing library includes some basic image analysis functionality like edge detection, but not sure if it exposes more advanced functionality in OpenCV like image segmentation. The Video&Vision section in the library page lists a few other libraries that perform blob detection and tracking. So, I think that a library doing some more advanced analysis like segmentation or shape decomposition would be very neat. But in order to implement such a library, it is probably a good idea to first play around with Processing, familiarizing with the environment and the API and looking into some libraries to get a sense of how they work. The github wiki page contains a couple of entries on library development, which are a useful reference to start planning a new library. You should also take a look a the source code of the PImage, which is the core class that Processing uses to encapsulate image data. Hopefully this information is useful!

  • codeanticode thanks a lot for your reply!

    I'm sorry for my inattentiveness of these libraries. I've looked only the ones mentioned here in the Processing GSoC ideas page. Are these libraries the only I can take part in development? Or I can join any library from all libraries page in GSoC?

    it is probably a good idea to first play around with Processing, familiarizing with the environment and the API

    That's what I'm doing now. I've watched all the tutorials and wrote and experimented with its' basic examples. Thats why I've become a bit familiar with PImage. My next point is to learn how to create a new processing library from your links.

  • The libraries mentioned in the Processing GSoC ideas page need to be updated to work with Processing 2.0, but you don't need to be restricted by that list. All the ones listed in the libraries page on the Processing website are stable libraries that are known to work with 2.0, so you could probably skip those (but keep them as a reference on what is available so far)

  • Codeantocode, I've analysed the OpenCV for Processing and I must say, it's really good and has lots of functionalities. That's why I'm not sure about creating a new image analisys library for Processing. Perhaps, it's a better idea to add more functionality to this one. On the other hand the idea of creating a new decomposition and segmentation library is very attractive for me. I'm sure, that I can create a useful and interesting one. Can you advise me somthing about it? And is it possible at all to join this opencv-processing project in the context of GSoC?

    Thanks in advance.

  • edited March 2014 Answer ✓

    Hi bdshadow. I'm the author of OpenCV for Processing. I'm excited about the prospect of you working on or with the library for GSoC! Let me tell you a little more about it and see if I can suggest some more specific ideas for what you might work on.

    The library is designed to provide access to all of OpenCV's functionality http://docs.opencv.org/java/ which includes (obviously) a ton of image-processing functionality including grabcut segmentation, watershed, and a number of background subtraction techniques, etc.

    I don't think it necessarily makes sense to re-implement any of the techniques that are already present in OpenCV. So I'd definitely make sure any of the scene analysis/image processing techniques you're thinking about implementing aren't already in OpenCV.

    That said, I haven't built nice wrappers for any of these more advanced functions so they're not really that usable by the mainstream Processing audience at the moment. OpenCV for Processing has core functions for converting between PImages and OpenCV's Mats, so you can use absolutely anything that's in the OpenCV API. It would be really great to have nice high-level wrappers for all of these that would be easy for Processing users. That might be a good project for you.

    Additionally, there are many other scene or object analysis techniques out there that can be built out of the primitives already present in OpenCV. Active Shape Models comes to mind immediately as something that's incredibly useful but there are many more. You could select one of and then implement it in a library on top of OpenCV for Processing.

    Or, finally, the other thing that comes to mind would be to implement some even higher-level vision tool that you'd build in Processing but could be tweaked and used even by people without super advanced coding skills. I'm imagining something like OpenTSPS https://github.com/labatrockwell/openTSPS a people-tracking tool that James George built in OpenFrameworks. OpenTSPS tracks people and then outputs OSC messages so that other creative coding sketches or environments can integrate with it.

    For example, I've had my eye on this Coarse Gaze Estimation in Visual Surveillance work from the Oxford Active Vision Group: http://www.robots.ox.ac.uk/ActiveVision/Research/Projects/2009bbenfold_headpose/project.html It tracks position and gaze-direction of large numbers of people in public space. I've looked at the papers and there's nothing crazy complicated in there. I could imagine a tool along the lines of OpenTSPS based on that work.

    Hope some of that is useful. Thanks for offering your work!

  • Greg, I'm really glad that you answered me! I agree with you about re-implementation totally. I liked all the three ideas, that you proposed. Every next one is somehow based on the previous. Of course, the result of realisation of the third idea is the most interesting. However, I think it's better to build a better base with realising the first one and going up after. I'm sure that 3 months of GSoC isn't enough to do all these, but I can continue woking on this after GSoC.

    Greg I'm sorry for the next quite direct and untimely question, but is it possible that you'll become my mentor for GSoC?

    Thanks in advance for the reply

Sign In or Register to comment.