I use an image matching feature called SIFT to automatically match puzzle pieces to a template image. The puzzle pieces are segmented using a simple threshold operation and then matched with SIFT keypoints to the target image.
ATOM - Maya Plugin using MEL Script
I built a MEL script Maya plugin to automatically build architectural structres using procedural modeling. The plugin takes a shape grammar as an input and a footprint for the grammar to work on (box object). For simplification purposes, the footprint is rotated and translated to x,y,z = 0,0,0 and then the grammar is applied.
Here is an example of the House grammar
1: footprint >> roof facades
2: facades >> Comp('sidefaces'){facade}
3: facade >> Visible('street'){streetfacade}
4: facade >> Subdiv('X',1r,1r,1r) {wall|windowwall|wall} 0.5
Subdiv('X',1r,1r,1r,1r,1r,{wall|windows|wall|windows|wall} 0.25
Subdiv('X',1r,8,1r){wall|windows|wall} 0.25
5: streetfacade >> Subdiv('X',1r,6,1r){wall|doorwall|wall} 0.5
Subdiv('X',1r,1r,6,1r,1r){wall|windowwall|doorwall|windowwall|wall} 0.5
6: doorwall >> Subdiv('Y',1r,8){wall|door}
7: windows >> Repeat('X',3){windowwall}
8: windowwall >> Subdiv('Y',1r,4,1r){wall|window|wall}
9: door >> I('door.ma')
10: wall >> I('wall.ma')
11: window >> I('window.ma')
12: roof >> Roof('hipped',5){roofobj}
13: roofobj >> I('roof.ma')
Maya Animation
Work in progress. An animation I was making for an advanced animation class composed in Maya and Adobe After Effects. Several groundhogs are displaced by the destruction of their home, but are in possession of orbs, magical in nature ...
Example of Reinforcement Learning
I show an example of reinforcement learning here. The goal for the agent is to get from the start position 'S' to the end position 'G'. It has no idea what a good path is to take. Additionally, there are wind effects applied which correspond to the x-axis numbers. These wind effects push the agent north 0, 1, or 2 spaces.
In the first example, I use a Monte Carlo varying e-soft policy that moves from 1 to 0 as the number of iterations grows. I am able to achieve a good policy after a large number of iterations.
In the second example, I use the Sarsa algorithm with temporal difference. The sarsa method is able to learn after each time step. The parameters are epsilon = 0.1, alpha = 0.5, and gamma = 0.5. This gets the correct policy much faster that Monte Carlo methods.
Captcha Anaylsis
CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans Apart). CAPTCHAs are graphical password based problems that have certain characteristics that make them ideal from differentiating between a human versus an automated computer user.
This script inputs the CAPTCHA into a SVM testing application performs several steps to segment the individual characters. The first step is a threshold and majority morphing to eliminate lighter lines. Next, each element is segmented using an erosion/dilation/connected component analysis to get the following result.
Given the individual characters, the SVM method is able to analyze each character and output the most likely classification based upon the trained model. The final output is then automatically inserted into the web page and tested for accuracy.
Final output : 58241 (80% accurate)