Cody Robson's Project Proposal 1. Title and Due Date *Hotspot Driven Collaging* due March 2nd, 2006 2. Problem Statement To create a program that does the tedious human task of placing images in nice looking locations to create a collage. The program will rely on the user selecting regions of interest, or hotspots, that it will factor into its image placement. The goal is to create a collage that has the hotspots of each image visible and to have the less important regions be covered by other images or possibly blend. 3. Methods The plan is to have most of the program written in python. The image processing will be implemented with the libraries written by the graphics group. The core algorithm will try to place the inner 'hotspot' quads for each image in the collage in such a way that they don't intersect other hotspots and the overlapping regions of each image are only the non-hotspot regions of each image. Also the algorithm must be able to scale the images up or down to decrease the overall whitespace. This will either be done with some sort of reward/punishment system with a primary image placing entity or each image object will have its own 'collision handling' algorithm for moving and resizing to fill whitespace and not be covered by other images. Some constraints must be implemented in the latter suggestion so that it converges reasonably. 4. Plan - Milestone 1: Develop an algorithm for placing quads with inner 'hotspot' quads in a given frame space. - Milestone 2: Incorporate images into the above algorithm and get a feel for the important parameters that separate a good looking collage from a bad one. - Milestone 3: Implement an easy to use UI that allows the user to tweak the parameters (scaling range, rotation range, etc) - Milestone 4: Add support for different borders or blending between images. As far as division of labor, I think Bryan and I should attempt most of the steps independently and meet regularly to find what works better. I'd like to put off the decision of whether we will submit one unified or two similar projects at the end of the five week period until later on. 5. Evaluation Criteria The program will be completed when it can take an arbitrary number of images and place them into an arbitrarily sized collage that looks nice with as little tedious work asked of the user as possible. If the results look similar enough to someone doing a collage by hand (or by mouse) and requires a lot less time for the user, than the program will be a success. 6. Deliverables The program itself and a few example collages we feel best displays the programs ability. 7. Readings I have already read a few siggraph papers that have to do with image processing and manipulation, but nothing thats directly usable for this project. If I find myself with not enough to read, I will default to image processing-based siggraph papers. Additionally, any python issues that show up will require a brush up on python literature. 8. Risks The biggest potential risk I see at this time is running into language-related roadblocks. I feel comfortable with python but my experience has been relatively basic, and I expect to have to learn a bit more about the nuances of the language before this project is completed. 9. Motivation I think this is a great first project. I don't think the expectations are out of reach in five weeks and I'm eager to really solidify my python abilities. Overall, I want to ensure my first steps into the realm of CS research are smooth ones, even if they are small. --Cody Robson