[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)
>>>
>
>