[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] GSOC: Extending Camera support for PyGame to Mac OSX Updates!



Hoi,

Those mask functions sound useful. Do you think it would be a good idea to implement a kalman filter in pygame that can be used for color based object
tracking.

Is there a good place I can find computer vision related information.

Grtz


On 9-apr-09, at 18:08, Nirav Patel wrote:

Excellent.  Making your code available as you work on it is a great
idea, especially for something like this that needs to be tested on a
wide range of hardware.

About pattern recognition, something like face recognition is probably
too heavy for pygame purposes and would be better suited for pyehci or
opencv-python.  However, extending some of the basic computer vision
stuff would certainly be useful, like higher or even arbitrary moments
[0] in masks, thresholding with hysteresis, hole detection in masks, a
mask to surface function, etc.

Nirav

[0] http://en.wikipedia.org/wiki/Moment_(mathematics)

On Thu, Apr 9, 2009 at 11:44 AM, el lauwer <el.lauwer@xxxxxxxxx> wrote:
Hoi,

I recently posted my proposal for GSOC to socghop. There where some comments about the content, so I have updated my proposal, and hereby posted it to
this mailing list so guys can comment further on my proposal...


Rene Dudfield maid the following remark about my original proposal:

"
Also a section on user testing would be good. Where you ask others to download pygame to run your tests - to make sure it works ok with their
computer/camera.

Finally a change in your proposal to seek feedback from the community on what changes you will do after the osx stuff is finished would be good. Since I have a feeling that you should have some time left over at the end.
"
I am planning to make a branch of my code available on github.com so
everybody who like can follow my daily work on the project.
Later on in the project I intend to make some blog post about my work and
post them on reddit.com/r/python, reddit.com/r/mac,
pygame ML and other communities so people can test my code. I have 2 mac at
home and know some other people with macs who
would be willing to test out my work.

Pattern recognition is a complicated subject, But I think that it would be a
good thing if there where some basic pattern recognition
included like a steering wheel or a face. This would allow any gygame
programmer to use this feartues in there game without any
additional work. A possible interesting project to experiment with could
be http://code.google.com/p/ehci/wiki/pyehci

If you have any suggestions, remarks or questions please comment.

original
proposal: http://socghop.appspot.com/student_proposal/show/google/gsoc2009/abe/t123872941171
updated
proposal: http://socghop.appspot.com/document/show/user/abe/gsoc_updates


=====================================================================

Updated proposal:

Instructions

Start by getting in contact with the mentor(s) familiar with your proposed project. They will help you polish your proposal and introduce you to the
developer team you'd be working with over the Summer.



Summary:

Nirav Patel has recently implemented camera support into pygame as a way to interact with a game. However, this camera module is limited to the Linux platform. The goal of my project is to extend this camera module to the Mac OSX platform, and thus extending the portability of games written in pygame
that use a webcam as mean to interact with the player.

I will be using the OSX QiuckTime multimedia framework to work with the camera. The camera module shall be implemented in C as a python extension. It is my intension to fully port the capabilities of the existing camera module. If there are any existing capabilities in the QT Isight framework,
that could be useful to have in the pygame module, I will make these
available by writhing a wrapper around them.

I will use pyobjc to experiment during the project. For the final code I
will use objc and C wrappers,since pyobjc is no longer used in
pygane.

When I am finished implementing the camera module for OSX, I will work on optimizing the existing code, like optimizing the sbggr8_to_rgb function. Ather this I will write documentation and a simple game to demonstrate the
capabilities.

I am planning to make a branch of my code available on github.com so
everybody who like can follow my daily work on the project.
Later on in the project I intend to make some blog post about my work and
post them on reddit.com/r/python, reddit.com/r/mac,
pygame ML and other communities so people can test my code. I have 2 mac at
home and know some other people with macs who
would be willing to test out my work.

Pattern recognition is a complicated subject, But I think that it would be a
good thing if there where some basic pattern recognition
included like a steering wheel or a face. This would allow any gygame
programmer to use this feartues in there game without any
additional work. A possible interesting project to experiment with could
be http://code.google.com/p/ehci/wiki/pyehci

Schedule:

I intent to work about 42 hours a week on the project

April:
Third week: study the camera implementation in linux version and see which
methods must me re-implemented for OSX.
Fourth week: Read about things like the SequenceGrabber from the QT api.

May
First week: make simple python extension in C to get familiar with the
concept. Read more doc about python extensions.
Second week: Implement simple app that grabs images from the camera with the QT SequenceGrabber API in C (obj-C). this is to get a good feeling with the
QT api.
Third week: start coding on the project, implement the ‘list_cameral’
function and open_device, …
Fourth week: write functions that deal with the controllers…

June
First-third week: implement rest of the functions
Fourth week: write wrapper around some additional functionality that the QT framework provides that isn’t in the existing module. I will probably use
pyobjc for this.


July
First week by now, most camera functions must be implemented. Start
debugging and testing
Second week: write a better sbggr8_to_rgb function and other optimization
that aren’t yet implemented in the existing camera module.
Thrid week: more optimization and testing/debugging.
Fourth week: write simple game to demonstrate functionality, and get people
exited about the result.

August:
First week: write documentation and tut explaining how I made the game. Tie
up lose connections

About Me:

I am a 20 year old student from belgium, and I am currently studying applied computer science at the "Hogeschool Gent". I first became interested in programming at the age of 16 while programming in Turbo Pascal. I spend a lot of my free time coding and reading about related topics. My interest in
the field of computer science range from web security, visual user
interaction, low level programming, … I enjoy programming in both Python and C because both language are elegant and don’t get into your way. Other interests of mine include, but are not limited to films, music, poker and
reading.

I speak fluent Dutch and English

I have GOOD knowledge/experience with the following programming languages:

   * Python
   * C
   * C++
   * Object-C
   * Java
   * SQL
   * (X)HTML/CSS

and MEDIUM knowledge/experience with the following programming languages:

   * JavaScript
   * Bash
   * sed, awk

I have the following (relevant) skills:

   * Algorithms: sorting, searching, image filters, ...
   * Lineare algebra
   * Data structures: lists, maps, sets, ...
   * Web security: sql-injection, code/file injection, XSS, ...

Here is a list of things I have coded, including some small pygames:

* Statistical visualization of combination of enzymes in DNA: Java, GUI,
SWING, MVC, OOP, XML
   * Monopoly Game: Java, GUI, SWING, MVC, OOP
   * Managing application: Java, GUI, SWING, SQL, MVC, OOP
   * Image filters: C/C++, OOP, Templates
   * Sniffer: C, pcap
   * Simple chat-client and server: C, pthreads
* Poker odd calculator with GUI (work in progress): C, Object-C, Reverse
Engineering
   * Small IRC bot: Python
   * Sniffer: Python (reimplementation of the C one)
   * Blog engine: Python, Django, Web
* Simple Blind SQL-injector (ugly script :P): Python, SQL, Web Security
   * a lot of small python scripts to do think with text, web, ...
   * Tetris: just Tetris (pygame)
* Square vs Circle: You control a circle with your mouse, and must try to
place this circle in
a square without hitting one of the bouncing circles. If you succeed,
you must try again, but
     this time with an extra circle. (pygame)
* Divide and conquer: There is an amount of an always increasing number
of bouncing balls. You
Must try to drive the balls into a corner by drawing lines until you
have filled 70% of the
     screen. (pygame)
* Balls of steel: similar to the above, with the difference that you must
draw balls
by holding down the right mouse key, the longer you press the bigger
the ball.(pygame)