When families gather for major events, they often drag out thick photo albums, brush off the dust and take a trip down memory lane. Whether the photographs within are in black and white or color, faded or discolored, they rarely fail to entertain.
Several decades ago, photos were a privilege of the rich, but the widespread availability of digital cameras has lowered the cost and made it possible for more people to take photos.
Among the young generation, the digital camera has become somewhat ubiquitous, along with mobile phones, and the digital photo collection of a single person can number in the hundreds and thousands.
The problem is how to organize all those photos for viewing. Developing all of them and pasting them into a photo album requires a lot of time and energy. However, simply keeping them in the computer does not make it easy for searching and viewing, and also knowing exactly where, when and in what occasion the photo was taken is not effortless if few years have elapsed.
Devices such as digital cameras and mobiles phones are being equipped with Global Positioning System (GPS). GPS is a satellite-based navigation system that works in any weather conditions, anywhere in the world, 24 hours a day. It provides reliable positioning, navigation, and timing services to worldwide users. This technology together with photo tagging technique can help in this domain. Photo tagging is a simple technique through which, tags like keywords or labels are added to a photo to make it easier to find later. Tagging was popularized by websites associated with Web 2.0 and it is an important feature of many Web 2.0 services.[ ]
By retrieving information obtain from the Global Positioning System; the photo can be tagged on a world map very precisely according to its latitude and longitude which in turn will make it easy to search for photos according to location or any other relevant information such as when the photo was taken, in what occasion it was taken and what is the theme of the photo.
1.1 Problem under investigation
Everyday thousands of photos are taken all around the world and stored on hard disk or uploaded on social networking sites for sharing. With the increasing number of photos for a single person, it become very difficult to manage the photos, especially when the searching need arises, there is no proper way to deal with the problem. Adding tags to photos can simplify this task, the tags stores numerous information about the photo, one among many of the important information would be the exact location where the photo was taken. Consequently the photos can also be mapped on a world map to allow easy searching and sharing. With photo management techniques evolving over time; this project aim is to investigate and provide a photo management solution based on a world map.
1.2 Aims and scope of the project
The aim of this project is to investigate some photo management techniques that are available and to create a user friendly location-based photo library system to be able to manage very huge amount of photos. In order to be more detailed, below is a set of objectives for this project:
- Explore different photo management techniques.
- Create an easy to use photo management system.
- The system should allow users to add, remove photos to the library.
- Add/ update tags to/of photos in the library.
- Retrieve information from the header/tags of the photos.
- Search for photos efficiently.
- Locate where the photo was taken using its GPS coordinates.
- Map the photos on a world map according to their coordinates.
- Pop up thumbnails and other information on the world map.
1.3 Schedule Plan
A schedule plan is an important component of a project as it provided us with the useful framework so that we can evaluate our progress throughout the project.
1.4 Individual Contribution
Chapter 2: Background Study
2.0 Literature Review
This section is an evaluation of fundamental information that is relevant to this project. It provides an insight about what is going on in the current field and related work being carried out.
A photo library is a collection of images which is stored in an archive for future use or viewing. Storing images is becoming more and more popular in this new technology age, with the advent of internet, it is now possible to store and share images worldwide. Some of the websites offering these services are Flickr, Facebook and Photobucket.
2.2 Image Management Applications (Image Organiser)
An image management application is application software focused on organizing digital images.
2.2.1 Common image organizer features:
- Multiple thumbnail previews.
- Images can be organized into albums.
- Albums can be organized into collections.
- Adding tags.
- Resizing, exporting, e-mailing and printing.
2.2.2 Not so common image organizer features:
- Pictures can be organized by one or more mechanism
- Images can be organized into folders.
- Images may be organized into albums.
- Albums may be organized into collections.
- Grouping or sorting by date, location, and special photographic metadata obtain from Exif headers.
- Images can appear in more than one album.
- Albums can appear in more than one collection.
- Grouped or stacking of images within an album, by date, time, and linking copies to originals.
- Adding and editing titles and descriptions.
- Simple or sophisticated search engines to find photos
- Searching by keywords, caption text, metadata, dates, location or title
- Searching with logical operators and fields, such as "(Title contains birthday) and (keywords contain cake) not (date before 2007)"
- Separate backing up and exporting of metadata associated with photos.
- Editing images in third-party graphical software and then re-incorporating them into the album automatically
- Grouping of images to form a slideshow view
- Exporting of slideshows as HTML or flash presentations for web deployment
- Synchronizing of albums with web-based counterparts, either third-party (such as Lightroom and Flickr), or application specific (such as Picasa and Picasa Web)
- Preservation of Exif, IPTC and XMP metadata already embedded in the image file itself
2.2.3 Type of Image organizer:
1. Automatic image organizers. These are software packages that read data present in digital pictures and use this data to automatically create an organization structure. Each digital picture contains information about the date when the picture was taken. It is this piece of information that serves as the basis for automatic picture organization. The user usually has little or no control over the automatically created organization structure. Some tools create this structure on the hard drive (physical structure), while other tools create a virtual structure (it exists only within the tool).
2. Manual image organizers. This kind of software provides a direct view of the folders present on a user's hard disk. Sometimes referred to as image viewers, they only allow the user to see the pictures but do not provide any automatic organization features. They give maximum flexibility to a user and show exactly what the user has created on his hard drive. While they provide maximum flexibility, manual organizers rely on the user to have his/her own method to organize their pictures. Currently there are two main methods for organizing pictures manually: tag and folder based methods. While not mutually exclusive, these methods are different in their methodology, outcome and purpose.
Presently, many commercial image organizers offer both automatic and manual image organization features.
2.2.4 Future of photo management
There are several imminent advances anticipated in the image organization domain which may soon allow widespread automatic assignment of keywords or image clustering based on image content:
- Colour, shape and texture recognition (For example, Picasa experimentally allows searching for photos with primary colour names)
- Subject recognition
- Fully- or semi-automated facial, torso or body recognition (For example, FXPAL in Palo Alto experimentally extracts faces from images and measures the distance between each face and a template.)
- Geo-temporal sorting and event clustering. Many software will sort by time or place; experimental software has been used to predict special events such as birthdays based on geo-temporal clustering.
In general, these methods either:
- automatically assign keywords based on content, or
- measure the distance between an unclassified image and some template image which is associated with a keyword, and then propose that the operator apply the same keyword(s) to the unclassified images
2. 3 Existing Implementations
2.4 Current Studies
GPS is a system that uses satellites revolving around the earth to determine the position of a particular point on the Earth in terms of latitude and longitude. The GPS System is made up of three segments: the Space Segment, the Control Segment and the User Segment.
The space segment is made up of 24 satellites orbiting around the earth and which form part of the GPS system. Each satellite is at a distance of 20.2 Km from the earth and they revolve around it twice a day.
The control segment is the part of the system found on earth and whose main jobs are to maintain the overall structure and make sure communication is ensured between the satellites and the antennas.
The user control segment is made up of the users of the GPS system and is generally represented by any person in possession of a GPS receiver.
2.5.1 GPS Photo Taggers
Originally developed for the military, global positioning system (GPS) technology is now at the heart of some of the world coolest consumer gadgets. GPS is the power behind onboard navigation systems in cars. It allows cell phones to know where it is located. And most recently, it is what allows users to tag their digital photos with precise geographic information.
GPS photo tagging, also known as geo-tagging, is the process of embedding a digital photo with latitude, longitude and even altitude data. GPS photo tagging is one of the latest offshoots of a larger tagging movement that lets users categorize and organize content.
GPS photo tagging can cut down on the amount of work it takes to tag images on the Internet. If users upload a geo-tagged photo to Flickr, the Web site automatically loads the photo onto its interactive world map. Now other users can search for and view pictures taken in its precise geographic location.
GPS photo tagging also allows users to organize their personal photo library. In the past, when users wanted to search for a particular photo on his/her computer, he/she had to remember the date that it was taken. But if all of the digital photos are tagged with location information, then users can search the library according to location and see all of the photos that were taken there.
GPS photo tagging also has professional applications. Real estate agents can provide clients with an interactive photo map of all of their properties.
2.5.2 Mechanics of GPS Photo Taggers
When you take a photo with a digital camera, the camera records a lot more data than just the image. This information includes the time and date when the photo was taken, the orientation of the camera (portrait or landscape), whether a flash was used and even detailed camera settings like aperture, exposure and focal length. All of these data is stored in header called the EXIF header of the photo.
EXIF stands for Exchangeable Image File Format. EXIF headers provide a way of stamping photos with data that can be read by other applications like photo management software or photo Web sites. This is how computers automatically know that it should put your photo in a folder titled for example 'February 28, 2009', and to rotate the image 90 degrees.
The important aspect about EXIF headers is that there is room to include longitude, latitude and altitude coordinates. In recent years, we have seen new hardware and software applications that can insert location data into EXIF headers using GPS technology.
2.6 Google Map
Google Maps is a basic web mapping service application and technology provided by Google for free (for non-commercial use), that powers many map-based services, including the Google Maps website, Google Ride Finder, Google Transit, and maps embedded on third-party websites via the Google Maps API. It offers street maps, a route planner for traveling by foot, car, or public transport and an urban business locator for numerous countries around the world.
2.6.1 Google Maps API
By using the Google Maps API, it is possible to embed the full Google Maps site into an external website. Developers are required to request an API key, which is bound to the website and directory entered when creating the key.
Latitude, usually denoted by the Greek letter phi (f) gives the location of a place on Earth, north or south of the equator. Lines of Latitude are the imaginary horizontal lines shown running east-to-west (or west to east) on maps that run either north or south of the equator. Technically, latitude is an angular measurement in degrees (marked with °) ranging from 0° at the equator (low latitude) to 90° at the poles (90° N or +90° for the North Pole and 90° S or -90° for the South Pole). The latitude is approximately the angle between straight up at the surface and the sun at an equinox.
Longitude, identified by the Greek letter lambda (?), is the geographic coordinate most commonly used in cartography and global navigation for east-west measurement. The line of longitude that passes through the Royal Observatory, Greenwich, in England, establishes the meaning of zero degrees of longitude. Any other longitude is identified by the east-west angle, referenced to the center of the Earth as vertex, between the intersections with the equator of the meridian through the location in question and the prime meridian. A location's position along a meridian is given by its latitude, which is identified by the north-south angle between the local vertical and the plane of the equator.
Chapter 3: Analysis
Any projects are affected by a large number of events (risks), which can significantly change the course of a project, thus the need for this chapter arises. This chapter is critical to the success of a development project, it consist of functional and non-functional requirements together with use-cases resulting in a document concerned with determining the goals, functions, and constraints of hardware and software systems.
3.1 Functional Requirement
- The website should allow navigation between the different pages.
- The website should allow a user to register for personalized service.
- The website should ask the user to login, to access his account.
- The website should validate the user.
- The website must provide help features.
- The website should allow users to tag photos on the Google map of the site.
- The website should store photos on the server in a convenient way.
- The website should present photos with all the details that have been provided for them.
- The user must be able to view the location where the photo was taken, especially photos having GPS data.
- Users of the website should be able to search for photos using keywords in the title, description or tags of the files stored.
- The website should provide a Tag Cloud to the visitors so that they can view the tags that are most frequently being associated to the photos uploaded.
- Basic administration facilities should be provided to the administrator.
3.2 Non-functional Requirement
- Registered users only should be able to upload photos and access their personal account.
- No user should have access to other user's personal data or photos.
- Website should be easy to navigate.
- Photo tagging and searching should be easy to learn and use.
- The website should work on different web browsers.
- The server together with the website should always be ready to respond to any request.
- The amount of time the server should be able to run properly without any crash encountered should be greater than 97%.
- The server and website should be able to handle a large number of requests coming from users.
- Navigating through the website should be smooth and there should be not much delay in getting a response from a request.
- Photo tagging and searching should take the minimum time possible and the response from the server should be prompt.
- The website should be able to handle growing amount of users and the server should be able to do the required large amount of processing.
- The website should tackle invalid inputs and take necessary actions such as showing respective error messages.
- Maintenance should not cause the whole website to be out of service.
3.3 Alternative ways of solving the problem
3.3.1 The Old Way: Folders
The folder concept can be use as a way of grouping and organizing digital images, but the folder concept has its limitations. The most significant limitation of folders, especially for digital photo organization, is that an item can only be in a single folder at a time without duplicating that item. For instance, if a digital photo of a sunset was taken at a Seychelles Beach during the 2006 vacation, the person will be faced with the dilemma of whether to put it in a folder for sunsets, a folder for beach photos, or a folder of 2006 Seychelles vacation. If the latter were to put it in all three folders it would certainly be a waste of disk space and create a lot of confusion trying to keep track of multiple copies of the same image. But if the person only put the photo into a single folder, he/she has to decide which folder is the best fit, and this type of decision-making can hinder the organizational process.
3.3.2 The New Way: Tagging
Tags are really nothing more than keywords used to describe a piece of data: be it a web page, a digital photo, or another type of digital document. Organizing digital images by keywords and categories has been around for a long time, it just was not called "tagging" until fairly recently.
With the concept of tagging, categorizing that sunset picture is much less of a dilemma. The person simply tags it with the words sunset, Beach, 2006 Seychelles vacation, and any other words which might be appropriate.
The true power of tags is revealed when it comes time to search for photos later. The person no longer needs to remember which folder he/she might have put the photo in. The latter only need to think of some aspect of the photo that he/she would have used in a tag. When he/she search on a tag, all the matching photos associated with that tag can be displayed.
3.4 Proposed Solution
3.4.1 GPS Location-Based Photo Library
The system will use location based data to tag, group and search digital photos. It will offer a solution that integrates automated location tagging with existing manual approaches. The portable component of the system captures GPS based data at regular intervals to create trail logs of the user's movements. The desktop component automates location tagging of the photos and makes use of the GPS location data to provide assisted photo key wording through a process of reverse geo-coding.
3.4.2 Why Photo Library?
Managing hundreds of photographs is not an easy task. Photographs gets lost and time can be wasted searching for a particular photo. Photo Library offers a best solution for managing digital photographs.
3.5 Choice development tools
3.5.1 Web Language
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. The .NET Framework is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .NET language.
- ASP.NET drastically diminishes the amount of code required to build large applications.
- With built-in Windows authentication and per-application configuration, your applications are safe and secured.
- It provides better performance by taking advantage of early binding, just-in-time compilation, native optimization, and caching services right out of the box.
- The ASP.NET framework is complemented by a rich toolbox and designer in the Visual Studio integrated development environment. WYSIWYG editing, drag-and-drop server controls, and automatic deployment are just a few of the features this powerful tool provides.
- Provides simplicity as ASP.NET makes it easy to perform common tasks, from simple form submission and client authentication to deployment and site configuration.
- The source code and HTML are together therefore ASP.NET pages are easy to maintain and write. Also the source code is executed on the server. This provides a lot of power and flexibility to the web pages.
- All the processes are closely monitored and managed by the ASP.NET runtime, so that if process is dead, a new process can be created in its place, which helps keep your application constantly available to handle requests.
- It is purely server-side technology so, ASP.NET code executes on the server before it is sent to the browser.
- Being language-independent, it allows you to choose the language that best applies to your application or partition your application across many languages.
- ASP.NET makes for easy deployment. There is no need to register components because the configuration information is built-in.
- The Web server continuously monitors the pages, components and applications running on it. If it notices any memory leaks, infinite loops, other illegal activities, it immediately destroys those activities and restarts itself.
- Easily works with ADO.NET using data-binding and page formatting features. It is an application which runs faster and counters large volumes of users without having performance problems.
- Setting up a development area using the .NET framework requires money and it is not feasible in case of non-commercial applications.
- Representing pages as web forms unnecessarily use up resources since when updating a particular part of a page, it needs reloading of the component.
- The .NET framework is available for the Windows platform only.
- A web server that can host ASP.net pages has a higher cost than a PHP one.
- It is open source and developers are continuously trying to improve it.
- It is simple and can be easily learnt.
- There are many libraries available in order to solve common tasks.
- It has native support for many databases such as MySQL and PostgreSQL.
- It provides a solution to SQL injection through the use of magic quotes.
- It is stable and compatible with many platforms, ranging from Windows to Linux.
- Many APIs such as Google Maps support the language.
- PHP web hosting is relatively cheap.
- The fact that there is not a defined standard brings about different language specifications with each new release.
- The naming conventions for functions and variables do not provide consistency.
- Compared to ASP.net, a PHP page is interpreted at the server every time the browser requests it.
- Error handling and validation have to be catered by the developer.
- It is completely open source and free.
- It provides exceptional support for the SQL standard in terms of features such as Cursors,
- Referential Integrity, Transactions and Triggers.
- It supports major languages such as PHP, C++, Java, Python and Perl.
- It runs on several platforms such as Linux, Windows and FreeBSD.
- It provides GUI development environments.
- Support is available from many companies and user communities.
- Many web servers support PostgreSQL databases.
- Compared to MySQL, it is slow because of the number of features it provides.
- Features such as functions and stored procedures are not as advanced as in Oracle and Microsoft SQL Server.
- It is not as secure as other databases.
- It cannot cater storage of large objects.
- It is less used than MySQL and hence has a smaller support community.
- It is free and a license is needed only for commercial applications.
- It offers great flexibility since it can be used for small applications or either large ones dealing with terabytes of data.
- It is fast since it uses the MyISAM table format.
- It provides support for specialized web functions such as full-text searches.
- It provides powerful data protection through the use of data encryption and decryption, together with secured connections such as SSH and SSL.
- Major languages such as PHP and Java support it.
- It runs on many platforms ranging from Windows to Linux.
- It is supported by most web servers and is known as the de-facto database to be used with PHP.
- Much support is available from companies and user communities.
- It doesn't provide all features as specified in the SQL standard, but newer versions include several additional features.
- Recovery of a database is not guaranteed in case of a power cut.
- It is not suitable for applications that will use front-ends of different platforms.
3.6 Choice & Justification of Final Tools
This part lists the different tools that have been chosen and the justifications why they have been selected.
- It is free and open source, and does not require any license for use.
- Its syntax is simple and easy to learn.
- It can be used for development on either Linux or Windows.
- There are many libraries available in order to solve a wide range of problems.
- Premium PHP hosting is very cheap.
- Support is widely available in terms of tutorials and documentation.
- It is free and open source, thus not needing any license for the development of the proposed system.
- Since it does not implement all features of the SQL standard, it processes queries faster and the proposed system needs to be sensible in terms of response time.
- It provides Magic Quotes for the prevention of SQL Injection, which might be unsafe for the system.
- Most IDEs embed MySQL, PHP and Apache Server for development.
- Premium MySQL hosting is very cheap.
- Many documentation and tutorials are available.