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

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



A kalman filter is I think implementable in numpy without much
difficulty, and numpy is already a dependency.

It depends on what you are looking for, but searching Google Scholar
on a specific topic is a great way to learn about various algorithms.

Nirav

On Fri, Apr 10, 2009 at 5:07 AM, el lauwer <el.lauwer@xxxxxxxxx> wrote:
> 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)
>>>
>
>