Saturday, September 29, 2007

Model Generation progress


A simple version of model generation was done according to the body's "data points". In this version, it is more like plotting out the silhouette of the human. A dummy set of data was used for plotting and they are connected using flash's lineTo function. The model's skin is filled with skin's samples from 3dmd and the filling is done with beginBitmapFill method.

Subsequent will look into masking the clothes area of the model and improving the visual aesthetic of the model.

Friday, September 28, 2007

Face Detection

After analysing the OpenCV, I am able to edit the face detection sample code to use in our project. I was able to extract the face from a picture and save it as another picture. It works well for some pictures I have tested, even for virtual models.

The process is fully automated and purely written using OpenCV Library. The program will read an image each time, and write out an image with a file name using the userid of that user. Therefore it will save as a different image each time.

Sample picture tested:

Result:

Wednesday, September 19, 2007

Weekly update 6

COMPLETED:

1) Accurate pattern card detection and obtaining the dimension of the mark out rectangle for comparision with silhoutte. (See Object Detection Progress)[K]

2) Detailed line scanning of image in Java & differentiating color of pixels. (See Line Scanning)[A]

3) Paper prototyping on flash, able to click on sample clothes and map on the user in the picture given. [K]

4) Powerpoint presentation for prototype 1. Analyses on the current interface used for exsting market, the design problem of initial concept and possible solutions.[A][K]

TODO:

1) See Milestone update in Prototype 1 Presentation

2) Pipeline testing

3) Make nescessary change to project according prototype 1 presentation feedback

Line Scan 2nd Update

My line scanning program searches for prominent black pixels (at least a set number of pixels), and would not take in random black pixels as there may be a lot of noises in the actual test out.

It detect a non-black pixel by executing

"
return (colour != BLACK) ? true : false;
"
where BLACK is an integer holding the super big number, 256*256*256.


DEMO


Bad Points to note:
The program will be doing a for loop, extracting all the RGB value of the pixels' colour. This algorithm is a O(n2) algorithm, and takes a very long time to execute. We will be working on the algorithm again to decrease the time and execution speed to at most a O(n) algorithm. This reason is that if the picture we were having is very big, the user may need to wait a very long time before he can get a result. It may not be very good for commercial uses.

Tuesday, September 18, 2007

Prototype 1 Presentation Draft 1

Aim of this presentation is to :
1) Update on the progress of our project
2) Serve as a paper prototype to get a feel of how our project will look like base on our initial idea.
3) Analyse the pros & cons of existing system in market
4) Possible solutions
5) & ...

Line Scanning

Using the image differencing programme tested out from Kester, I expliot the use of its properties that the image will have a black background after it was differenced out.

Using PixelGrabber from the Java Image API, I was able to get each and every pixel RGB colour from one row of pixels from the image. By running a for loop on each row, I am able to identify which pixel is black or non black.

Using the PixelGrabber, the row of pixels' colour will be stored inside an int array, a black colour will have a value of -16777216, which is equivalent to the value of each RGB colour, 256 for each primary colour. We will use this colour or value to find out the position of each Critical Point as stated in our programme.

Monday, September 17, 2007

Object Detection Progress

The object detection of our "I" pattern card has been quite successful. Below are some pictures and details about the training process:

15 Sept 07
1) 115 pictures were collected as positive samples. For each picture, an average of 4-5 were mark out for sampling using haartraining's objectmarker.exe. In total, 468 samples were created. 1000 negatives samples (with arbitary background) were used.

Some variables such as i) background color and lighting ii) design and color of what user is wearing iii) angle of the pattern card iv) no. of pattern card v) posture vi) distance from camera etc (sit or stand) were all taken into consideration.

Samples positive pictures for training:


Different color pattern cards used:



2) Training of data were conducted twice. First was conducted on 15 Sept, results of test is not accurate, but managed to detect the "I" pattern. In this training session, only 30 negatives image were used. In the second training conduct on 16 Sept, 1000 negatives were used instead. The training took around 13 hours to complete (16 Stages of training)! Results are quite satisfatory with minor problem (i.e detect extra "I")

Results of 1st training:


Results of second training :


A few test sample detect "extra" stuff:

Some possible solutions to address this: i) training more negatives ii) Let user decide where the "I" is exactly (See Virtual Makeover where user locate exactly where the location of their eye is)

3) Also edited the testing application (performance.cpp) to extract the X, Y-Coordinates, the width and height of the detected I enclosing box. i.e we are able to obtain ratio of real life object.

iApparel

Introducing our project name:

iApparel

Thursday, September 13, 2007

Project Name

We would need to think of a name for our project.

Suggestions welcomed.
Calendar Updated.
I am thinking that our project is to be done by term break for a more refined usability test. More should be done on the integration and testing.

Project Milestone

Finally got our calendar online. Thanks to Google Calendar for making my life easy to post events on the calendar.

Proposed flow of work till term break:

1) We feel that a prototype would be necessary as our product is to be used on the web, which is viewed by many people. We would want them to have a good user experience on our product, therefore a user testing is necessary if we were to proceed further. A paper prototype would be completed by 18th Sept, or a semi-working prototype to work then. I will be setting up a mock-up terminal on 20th Sept at SoC COM1 to do the user testing. (Hope to see you there!)

2) We are training our pattern cards at the moment, with different backgrounds and different angles. We will try to aim for a perfect pattern recognition for our pattern card.

3) I will be also developing on Line Scanning on images, getting critical points of the human anatomy, eg. the tip of the head, neck, waist etc... This will be done on the image after the Image Differencing done by Kester.

4) Face detection is another vital part of our project. It is the most crucial part as it identifies the user and gives them a more customised experience when they are using our system. This had to be done precisely. Our test programme had already identified the faces quite nicely, where our work will be to extract the face out, saving it as a file inside the server.

~by qinjie

Wednesday, September 12, 2007

Weekly update 5

COMPLETED:

1) Tried out the face detection application (week 4)

2) Able to extract silhouette of the person by image differencing (week 4)

3) Experimented on the haartraining application of openCV for object detection the "I" sign used for our pattern card. Able to train sample pictures and successful convert trained data into xml format using cascade2xml.exe. Testing result still not satisfactory. See below.

TODO:

1) Thoroughly train actual pictures of different size/color/distance away from the a few users. Ensure the program can accurately detect the pattern.

2) Do comparision of the pattern card and the silhouette of the person get estimate of the body measurement.


-------------------------------------------------------------------------------------

Some of pictures use for training:



No. of samples trained: 42
No. of stages in training: 52

Test result:

Monday, September 10, 2007

About project update

We will be using this blog to do our project update as well. This is our first draft of project doc. Also there will be a post with the topic "Weekly update X" (X is the week number) containing 2 items:

1) COMPLETED - a description of what has been completed in week X.
2) TODO - things/tasks to be completed next week (X+1).

Saturday, September 1, 2007

Ideas Welcomed!

Anyone with fantastic ideas out there? Clothes aren't just fantastic ideas after all. We welcome more ideas for interactivity, perhaps something unusual, with something usual at the same time.