Inspiration

I had several classes at UCSB where the professors would just use the whiteboard and there would be some parts of the board that are difficult to see. Say, sometimes the podium is in the way, the computer monitor, or maybe even the professor him/herself.

What it does

This project looks at 2 viewpoints and combines them into 1 viewpoint.

How we built it

I used Computer Vision concepts I learned in an upper-division undergraduate course at UCSB. Using these concepts, I defined a homography transformation function such that the frames from both videos are transformed such that only the whiteboards show and everything else is cropped out. I then used a transparency layer on both the videos so that it would be possible to view both sides of the video at the same time.

Challenges we ran into

Saving the output list of frames into a video proved challenging using OpenCV2. A specific codec file was required for a specific video file format, but neither was known and there were 50 possibilities for each. Making a script that checked whether a specific codec file and file format work with OpenCV2 became very time-consuming.

Accomplishments that we're proud of

I am glad I was able to find the Python package MoviePy that would allow me to concatenate my hundreds of frames into a really fast video and save it. I am also proud of completing the minimum viable product for my vision of this project.

What we learned

I learned how to use OpenCV2 functions more easily and how to use linear algebra to simplify the more complex topics of my project. I also learned the various dos and don'ts with OpenCV2, and how to get around those don'ts when I really need them as dos.

What's next for Whiteboard Homography

The process for using this product is not streamlined for inexperienced users. The next step would be to streamline the process.

Built With

Share this project:

Updates