SoC2007 project Anti Ghosting
High Dynamic Range (HDR) Panoramas are formed by taking numerous pictures of different exposures, tone mapping them to an exposure that provides the most detail for the human eye, and stitching them into a single image. Since there are multiple base images per area in HDR imags, moving objects, such as people, result in semi-transparency, blurring, or incomplete objects. This phenomenon is called ghosting. Some commercial products support ghosting elimination, but most of them only work with small variations in the camera. The goal of this project is to devise a robust blending algorithm to eliminate ghosting in an HDR panorama.
Deliverables and Details
The execution of the project involves 3 phases: research, implementation, and integration.
Phase 1 - Research This phase involves gaining a deeper understanding of the current challenges of anti-ghosting, taking a look at the methods used by current softwares and research papers, and devising a plan of attack.
Phase 2 - Implementation In this phase, the core funcionality of the anti-ghosting algorithm derived from phase one. This phase should take up a majority of the project timeline, and will probably encounter the most unexpected delays. At the end of the phase, the blending algorithm should be fairly robust (works on most if not all possible use cases), and should be able to produce the result within a reasonable amount of time.
Phase 3 - Integration During this phase, the algorithm will be integrated into the current HDR algorithm so it can be used by the general populace. This phase also accounts for optimization of the code and any final debugging to tie up the loose ends.
Phase 1 - Research (2 weeks)
- Week 1: research different algorithms used in current softwares and proposed in research papers. Understand their pros and cons.
- Week2: design an efficient and robust algorithm and plan out the detailed schedule of the implementation and integration phases. Also design the main classes/functions that are involved in the algorithm and those that are needed to integrate.
Phase 2 - Implementation (7 weeks)
- Weeks 3-6 implement the merging algorithm and do any unit and incremental tests involved
- Weeks 7-9 time for general testing and debugging
Phase 3 - Integration (5 weeks)
- Weeks 10-11 integrate the algorithm with the rest of the panorama stitching process, testing as needed/possible
- Weeks 12-13 robust testing debugging of the whole process
- Week 14 optimization, documentation, etc.
Pablo d'Angelo, Yuval Levy