BaOnlineCameraCalibration

Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

A Web based Photogrammetric Camera Calibration Toolbox

This Bachelor's Thesis was finished in August 2014. Below is an overview of the project and its results. More information and other projects of mine are available on my website http://benjaminschagerl.com/#projects_cacatoo

Overview

Computer Vision and Augmented Reality are gaining more and more popularity and importance these days. Camera calibration, which is an essential step in preparation of those, remains a complex and time consuming process. The analysis of commonly found camera calibration tools and applications has shown that they are often either inaccessible or hard to use. This thesis describes the implementation of a camera calibration service.
This web service uses a 2D plane based calibration for a straightforward procedure which provides accurate results. Besides, it features presets for calibration patterns, module parameters, and export templates. Additionally, camera calibrations can be saved, reviewed, and loaded. All of this is achieved with cutting-edge technologies. The front-end is created with HTML5, CSS3, and JavaScript?. The back-end is powered by the fast and scalable server environment Node.js. Persistent user data is made possible with the document-oriented database MongoDB?.
The finished implementation demonstrates that camera calibration as a web service is, in fact, both feasible and beneficial. Furthermore, it serves as a great foundation for future work and it could possibly be the pioneer in web based photogrammetric camera calibration services.

Structure and Technologies

web service structure Front-end:
+ HTML5 http://www.w3schools.com/html/html5_intro.asp
+ CSS3 http://www.w3schools.com/css/css3_intro.asp
+ JavaScript? http://www.w3schools.com/js/
+ AngularJS? https://angularjs.org/

Back-end:
+ Node.js http://nodejs.org/

Database:
+ MongoDB? http://www.mongodb.org/
web service technologies

Functions

The Calibration Procedure

target selection site image upload site module selection site result overview site
Put into the context of a web application, it consists of 3 user input pages and a final result page. The first page lets users select a preferred calibration target. The available options depend on the capability of the calibration algorithm. Certain characteristics of the selected pattern have to be known for the camera calibration. OpenCV? for example needs the count of rows, columns and the horizontal and vertical distance on the target. These four values have to be provided by the user. It became apparent that it is cumbersome to enter them every time. Therefore calibration presets are made available which can be used with just one click. To cover user specific patterns, custom presets can also be created. On the second page users can select images that they want to upload via a standard open file dialog. Alternatively, they can use the drag and drop feature to provide their images. If there is a camera connected to the device, images can also be taken directly through the web interface. Once an image is selected it will be uploaded and then processed by the external server. Once detected, the corners are sent back to the front-end where they are visualized on the image. Users can then decide if they want to use that image for camera calibration. Lastly, the users can select the module they want to use for the calibration. A module represents a specific calibration algorithm which has its own set of configuration variables. These variables can be provided by the user. Similar to the calibration target presets, there are custom presets for these modules which can be used with just one click. Finally, everything is send to the external server where the camera parameters are calculated. Then the users receive their results on the final page. In addition to the intrinsic camera values a vector field for radial and tangential distortion is rendered. This is only one of many possible supplementary information that could be displayed here. Because it is important that the results can be easily used in further applications, there is a template system which allows users to save them in custom file formats with just one click.

Login and Profile

profile site To enable some of the discussed features like custom presets for calibration targets and module configuration parameters, it is necessary to keep track of all users. Because this thesis is all about camera calibration as web service, this is at all times voluntarily and only used to further enhance the user experience. The option to use your Google+ login is provided as an additional perk, so it is not even necessary to create an extra account for this web service.
Logged in users have a profile page where a detailed history about previous actions is displayed. This history can be deleted at any time. If users created a web login, they can connect with their Google+ account. This could be used later to bill for certain services. The connected account can be easily disconnected if the user choses to.

Projects

project site Having the calibration as web service and a functioning user login gives a convenient possibility to save projects. This is a major advantage over the previously analyzed tools. Not only can calibration results of saved projects be reviewed, they can also be loaded on the fly. This allow the user to make adjustments to the calibration target and/or add additional images to further refine the calibration at any time.

Configuration

config site Lastly, there is a page were all the presets and the export templates can be managed. Three things can be done here:
  • New target and/or module presets as well as export templates can be created.
  • They can all be modified and re-saved.
  • Individual presets and templates can be deleted for good

Contacts


ProjectForm
Title: A Web based Photogrammetric Camera Calibration Toolbox
Abstract: Computer Vision and Augmented Reality are gaining more and more popularity and importance these days. Camera calibration, which is an essential step in preparation of those, remains a complex and time consuming process. The analysis of commonly found camera calibration tools and applications has shown that they are often either inaccessible or hard to use. This thesis describes the implementation of a camera calibration service. This web service uses a 2D plane based calibration for a straightforward procedure which provides accurate results. Besides, it features presets for calibration patterns, module parameters, and export templates. Additionally, camera calibrations can be saved, reviewed, and loaded. All of this is achieved with cutting-edge technologies. The front-end is created with HTML5, CSS3, and JavaScript?. The back-end is powered by the fast and scalable server environment Node.js. Persistent user data is made possible with the document-oriented database MongoDB?. The finished implementation demonstrates that camera calibration as a web service is, in fact, both feasible and beneficial. Furthermore, it serves as a great foundation for future work and it could possibly be the pioneer in web based photogrammetric camera calibration services.
Student: Benjamin Schagerl
Director: Gudrun Klinker
Supervisor: Dr. Manuel Huber , Frieder Pankratz and Christian Waechter
Type: Bachelor Thesis
Area: Computer Vision, Industrial Augmented Reality
Status: finished
Start: 2014/04/15
Finish: 2014/08/15
Thesis (optional):  
Picture:  


Edit | Attach | Refresh | Diffs | More | Revision r1.15 - 28 Oct 2016 - 08:11 - BenjaminSchagerl