Jump to content
  • Advertisement
Sign in to follow this  
Thomas M

Machine Learning in Graphics

This topic is 2588 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm taking a machine learning course this semester, and we have to do a final project at the end of the semester. The final project allows us to work in depth on a specific aspect of machine learning that we are interested in. I came up with the idea to do something computer graphics related, but haven't found anything good yet. I would appreciate some brain-storming action from your side. =)

Basically I'm just looking for some cool ideas or inspirations how to apply machine learning techniques to a computer graphics problem.Browsing the internet I found most topics related to this are about "synthesis-by-example" (given an exemplar, make more stuff similar to it, for example motion or texture synthesis).

Share this post


Link to post
Share on other sites
Advertisement
You can apply machine learning to anything that requires optimization of a set of parameters or functions controlling the transformation of data. Generally, it's used in cases where searching the entire space of solutions has non-trivial complexity, and you simply want to find a good enough solution that isn't obvious.

I can think of at least one area within real-time computers graphics that might bear fruit. Occlusion culling often uses general purpose hard-coded heuristics to determine "good" objects or surfaces for use as occluders, and may rely on input from content designers or programmers to flag which objects should be used for occlusion or to generate acceptable bounding volumes or primitives to use when rendering into the occlusion buffer. Using machine learning, you could have the system do all of the hard work for you in determining good heuristics that are custom tailored for a specific scene, level, or sub-region/sector within a level, and for generating better occlusion geometry for static (occluder planes) or dynamic (optimal LOD for an occluder mesh) datasets, duration of time before reconsidering an object as an occluder in implementing temporal coherence, etc. There's probably an endless number of things you could optimize for.

A starting point would probably involve simulating the contribution of various objects as occluders across the different regions of a level as a preprocessing step, generating feature vectors that capture the camera position & orientation, a measure of contribution from objects into the occlusion buffer, perhaps some other information, and then performing clustering analysis of the feature vectors and optimizing for least amount of over-draw and least cost of performing the occlusion culling pass. Note that your feature vectors will be very large as they have to account for every possible occluder in a given level data set, and so you they will be n-dimensional where n is probably in the thousands or tens of thousands. You could probably implement a lot of this to run on a GPU using DirectCompute or OpenCL.

Alternatively, you could record a number play throughs and use the play-back for your simulation and analysis phase and combine the results. Think of it as profile-guided optimization for occlusion culling.

I'm not sure how much of this kind of stuff is already done in COTS occlusion systems like Umbra, but I seem to recall the original paper on it used simple heuristics and statistical geometric methods to generate occluder sets and the like.

Share this post


Link to post
Share on other sites
Once I thought that it would have been nice to create a program capable of identifying the author of a painting, by teaching him to detect important features.

Could that fit your assignment?

Share this post


Link to post
Share on other sites
it's quite commonly used for OCR, as scans are never 1:1 to the source, and sometimes you have fonts that are unkown, but as a human can read it, OCR software also tries to handle unknown fonts.

the ++ version would be captcha decoding, but that's challenging for sure.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!