Friday, March 26, 2010

Weekly Report 3

We have worked on the configuration management plan report in this week. In addition, I have researched about the image processing part. The k-means clustering algorithm is commonly used in computer vision as a form of image segmentation. The results of the segmentation are used to aid border detection and object recognition. We can use this algorithm to detect object for feature extraction. However, the standard Euclidean distance is insufficient in forming the clusters in our case due to space dimension histogram. Therefore, Mahalanobis distance can be used instead of Euclidean distance to form clusters better in large histogram space dimensions. ISODATA algorithm is a good modified version of k-mean clustering algorithm. It uses both an iterative version of native k-mean clustering algorithm to find the best number of clusters (K) and Mahalanobis distance.

Reference:

Fatos T. Yarman-Vural, Ergin Ataman: Noise, histogram and cluster validity for Gaussian-mixtured data. Pattern Recognition 20(4): 385-401 (1987)

Thursday, March 25, 2010

Configuration Management Report - Weekly Report 3

This week we were dealing with the configuration management plan report. When we build computer software, change happens. And because it happens, you need to control it effectively. So, with configuration management we tried to provide a set of activities that are designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling changes that are imposed, and auditing and reporting on the changes that are made.

Weekly Report 3

This week, all members of our group worked on the Configuration Management Plan Report.
The purpose of this Configuration Management (CM) Plan is to provide an overview of the organization, activities, overall tasks, and objectives of Configuration Management for our application. It addresses configuration item (CI) identification, change control and configuration audits at a high level; additional details regarding CM activities, techniques, and tools should be provided in the CM-related procedures.

We specified the tools we are using, and explained the workload further.

Weekly Report 2

Last week, I worked on the problem of sending large image files to the client from Android part. We haven't come up with a solution yet, but still working on it.

Friday, March 19, 2010

GoogleMaps Api problem and alternatives

There is a problem with the authorization system of Google Maps API. It requires a domain name to activate the product. In the web site it is said that

"For most applications we recommend that you simply register your domain name. Your key will be valid for that domain, its subdomains, all URLs on hosts in those domains, and all ports on those hosts.

For example, if you sign up for a key using http://www.mygooglemapssite.com/, your key is valid for:

  • http://www.mygooglemapssite.com/
  • http://www.mygooglemapssite.com/mysite/

However this key will not be valid for:

  • http://mygooglemapssite.com/
  • http://host1.mygooglemapssite.com/
  • http://host2.mygooglemapssite.com/mysite

If as recommended you request a key for http://mygooglemapssite.com/ your key will be valid for all of the URLs listed above.

Note that a key for http://www.mygooglemapssite.com/ will only be accepted when the site is accessed using this address. It will not be accepted if the site is accessed by IP address (eg. http://10.1.2.3/) or by a hostname that is aliased to www.mygooglemapssite.com using a DNS CNAME record"

Therefore, we need to search other alternatives to Google map or find a solution to that authorization problem. JXMapViewer can be an alternative to Google Maps API. The JXMapViewer is an open source (LGPL) Swing component created by the developers at SwingLab. It is used for displaying maps on swing panels. On the other hand, Google Earth application already uses Google Maps API as a native PC program, so there should be a way to use it without a domain. This fact encourages us to search more about this problem.

Thursday, March 18, 2010

First Demo Contents

This demo consists of extracting the most similar image to a reference image from between a set of subject images.

Entering the image names as command line input:


Most similar container image to the given image of an object - Weekly Report 2

Last week, I started the image processing part of the project and used SURF method which is implemented in OpenCV library (2.0). I prepared the proper environment to develop the sample code which was presented with OpenCV version 2.0.

What Does This Program Actually Do?

This week I had the opportunity of examining and improving that sample. The code begins with specifying parameters for extracting Speeded Up Robust Features using the line

Monday, March 15, 2010

Solution of file size problem in Demo

We cannot transfer large images in the first demo due to the problem of android operating system. A solution to that problem is the direct binary file transfer ability of org.apache.commons. fileupload.* package. The classes, FileItem, disk.DiskFileItemFactory, portlet.PortletFileUpload and servlet.ServletFileUpload, are used for binary file transfer by using HttpServletRequest and HttpServletResponse. We do not need raw char image transfer anymore because of servlet file upload technique.

Friday, March 12, 2010

1st Demo

Can you write down the things that you will do till next week here. (The things that we talked about.)

Thursday, March 11, 2010

Weekly Report - Project Website

This week, I started to work on our project website. After exploring some alternatives, I decided on using Google Sites to build our website. Google Sites is a free-to-use facility from Google that makes it possible to build websites. Websites can be created from scratch or by using some predefined templates. I looked through the templates to choose the most suitable one for our purpose and found one.

On our website, there are pages that show the uploaded documents, tasks and actions to perform, a project timeline, our contact information and so on. It has all the features to coordinate and maintain the process of our project development. The site is located at https://sites.google.com/site/zephyrmetu/. Since we are given some disk space at the department to host our site, I redirected http://senior.ceng.metu.edu.tr/2010/zephyr/ to our website.

Finally, I thought of writing a piece of PHP code to maintain a log of the visitors of our page. Turns out, Google does not allow embedding PHP into web pages. So, I wrote the code to keep track of the visitors in PHP and uploaded it to our disk space at our department. Every time our page on Google Sites is requested, this script runs on the department's machine and returns the result. Google Sites allows this kind of "embedding" through a facility named "Embed Gadget". So, we have a log of visitors now.


Tolga AKIN
Department of Computer Engineering
Middle East Technical University

SVN -Weekly Report 1

First Task
This week, before starting to implement core functions of our project, I started to work on how to use Subversion in eclipse in order to control our source codes in a better way. As far as I see, using SVN via Eclipse is much more easier than using it from the command line.

First, we have to prepare our environment to use SVN in eclipse.
From Help->Install New Software tab, we will use “http://download.eclipse.org/technology/subversive/0.7/update-site/” site for downloading SVN.

OpenCV and SURF -Weekly Report 1

As we have mentioned in our project design, we are going to use image processing techniques to measure the similarity of two images. One of the methods we have choosen is SURF, and the detailed information will be found in here. Luckly, the method is implemented in OpenCV library version 2.0.

Server Side of the project

The server side of the system is a web service to be accessed by not only an Android application but also other type of applications. This feature makes the system more generic and usable. Apache tomcat and axis2 technologies are used for web service. Due to lack of web service support of Android operating system, a servlet is written for direct http request and response with the mobile application. This servlet forwards the message and the image to the web service.

Wednesday, March 10, 2010

Server Side of the Project (Admin Console)

In order to control the server side of the project, we decided to create a user friendly admin console. Currently it consists of web pages for admin and user tables but it will be improved during the development of our project. 

Client Side of the Project (Android Application)


During graphical user interface design, we took simplicity into account. Since functionality is the main purpose of the GUI design (the KISS principle), developing simple functions for user is what has been done so far.

Now, we will explain the details of the user interface of the Android application.

Application Entrance Point

The application will start by double clicking the icon presented to the user on the main menu and “Conqi” will be the user friendly abbreviation of the application name “Conqueror”.









Main Window

This is the menu of our application. The user will be able to take a picture, view the gallery consisting of the pictures she had taken via Conqi and see her location on the satellite view of the map.








Take Picture Window

This is the screen the user will encounter, when she has already chosen the “Take Picture” option. After taking the picture, she will see the still image of the landmark with information given below it. Additionally, she will be supplied with more options with menu button of the phone.







More Options Menu

If the user wishes to see other options and she has already pressed menu button, she will encounter with this screen. Through this screen, she will be able to get more information about the landmark that she has previously viewed. Furthermore, she may send the tagged picture to other mobile phone users. Additionally she may save the picture to her phone if she chooses “Save” option.




View Gallery Window

When user chooses to view the gallery, she will be able to see the pictures in the SD card of the phone which are taken by Conqi itself. The user will be able to display them and send a picture via MMS if she chooses an individual picture.





View Gallery Window Displaying an Individual Picture

While the user is displaying the gallery, if she selects an individual picture, she will face this screen. She will be provided with “Send as MMS” option which enables her to send the picture to someone else via MMS.








Locate Me Window

If the user chooses “Locate Me” option in the main menu, she will be able to see her location on the satellite view of the map. She will be able to wander around and and zoom in or zoom out in the map.


Mobile Conqueror

Mobile Conqueror is a system that can be easily used via mobile phones. Its purpose is to present the user with data about their surroundings, nearby landmarks, and other points of interest by overlaying information on the real­time camera view of a smart­phone.