Tuesday, November 29, 2011

Online Virtual Reverse Auctioning

Well this is a small idea for an online event for a technical symposium at our college campus. Well here goes the details of it. Feel free to post your comments on this idea.

Name of the Event - Virtual Reverse Auctioning

Event Description

  • Just like any auctions' website, this one will also hold auctions of various (virtual/random/nonsense) items. 
  • Generally in any auctions, the bidder who bids the highest gets the item with the price paid, but in Reverse Auctions, the person with the lowest bid wins the bidding (at the end of the time). 
  • To start with participant are given Rs. 100/- (negotiable) in their accounts to start off with. 
  • To maintain order in the system against all participant posting Rs. 1 for all the items, I have come up with a rule for posting the bidding amount. 
    • Least value of the bid can be only 95% of the current lowest bid value.
      Example - If the initial cost of the item is Rs. 100, and user A bids with Rs. 95/-, current cost of the item becomes now 95. User B, can now post a lowest of Rs. 90.25, highest being any value (no upper limits actually). 
    • Each bidding costs the user a Buck. (Rupee. 1 /-) 
    • Well again there is a small consideration to be made here, each bidding can be made as a pay-use or a bid on an item can be made as pay-use.
      Example - For every bid, I place on Item I can cost me Re. 1 /- or all the bids I place on an Item I can cost me Re. 1/-. I leave this for you to decide (post what you feel below as a comment)
  • Upon winning the bid, the original cost of the item is credited to the user's account. Thus the user get more money to bid more on the system. 
  • Since a limiting criteria of only 95% of the current lowest bid can be made, this keeps the participants checking in to the game often to see if anyone has made a lower bid than him/her. 
Winning Criteria - Participants with the highest cash on hand (plus number of items traded on the market, well this is again up to you. Feel free to post what you feel below as a comment) wins the game. 

General Doubts 
  1. Organizer of the event is given the Admin access to add items to the system. He can set the Name, type, initial cost, time period of auction of all the items currently enabled in the system. More about this to the developing team. 
  2. All the items will be completely virtual. It can range from a banana to iPhone - you are limited by your imagination. 
  3. System is yet to be developed. Hoping to create a team (of max 4) to build this system. Its fairly simple to do so. I would like to see second and third years volunteer in this (first years are also welcome) to make it a reality. 
  4. If you are interested in developing this idea, contact me, I will pour in more ideas.
Disclaimer: This Game plan is completely a creative idea, from Ashwanth Kumar. This was shared with a sole intention that it might be useful. If you already have a similar or the same idea, I would love to discuss about your implementation idea. 

Mid night Exam Boredum

I have Embedded Systems exam today, so I woke at 12.30 AM to start studying when I was faced with an interesting problem. I got myself an eBook of Raj Kamal, "Embedded Systems - Architecture, Programming and design", Tata McGraw Hill, Second Edition (i do not want to share the link here, a simple google search will get the link on many of the file sharing sites).

The pages were aligned for front-and-back printout. One page aligned left, and another right. It was a pain in the ass to read such a text. So, I wrote a simple iText based java program to correct it. This will run on 2 pasess to correct the even pages of the book to align left and go through the pages to make it in Portrait format from the default landscape view.

PS: This code is for personal use only. Try this at your own risk.  

Tuesday, November 22, 2011

Mini Online Judge - 6 Hour Hackathon

I was too bored and sleepless to study for the semesters. I just made a small try at one of my long time candidate at TODO List - "Creating an Online Judge System". Well guess what, I have came out with a prototype this time.

This is far from being complete, but definitely usable.

PS: This code is released under the pretext that it might be useful. Try this code at your own risk. Most of the instructions are commented in the code.

Tuesday, November 15, 2011

Image processing meets Semantic Web

For the past 2 days, I was working along side with a friend of mine for her final year project topic title. Her guide restricted the domain only to "Image Processing", for she had something to do with it I guess. Anyways after browsing and downloading about 40+ papers against Image processing. I really liked this one. 

Yesterday we were preparing the abstract and after a lot of local misunderstandings, the guide finally signed her abstract. Today morning, when I was preparing for my semester exam, this thought struck me and I thought before I forget, let me document it. So here it goes.

Image Processing + Semantic Web => My Kind of Vision

If you took time to read the abstract in the above link you would know how wonderfully they had brought about a new data structure for image annotation. Their motive is to build an online collaborative image annotation tool, something like LabelMe. The main feature being - modular design,  ability to import other online (LabelMe, Flickr) and offline (Caltech101, Lotus Hill) datasets into the system. Apart from the text based human annotation, it can also embed the low level image details like color histograms, etc. (I'm relatively new to Image Processing and let me just skip the rest of the details with the thought not to confuse you).

Well, this is already there and she has decided to implement such a tool with other added features like Web Services to search through the annotations, and more. Rest of blah.. blah.. content goes here.

When I was browsing through the dataset of LabelMe, I figured out something. Its like the usual temptation to study well only outside the exam hall. This is what I concluded myself with before I ran out of time for my E-Commerce exam.

I've a collection of images that were annotated very well (atleast decently well) to make it more human friendly and make the images more semantic. That does not make it Machine friendly does it? (or am I being carried away?) 

Another MIT Media Lab project is ConceptNet5. This provides general usage common sense knowledge to the computers in my most favorite language - JSON. It contains around 15+ million entries in it. 

So, this is what I'm going to build (hoping my guide would approve it). 

  1. Taking the existing annotated image dataset, apply ConceptNet common sense knowledge (on the annotation of the images) to make the images more semantic and machine friendly. Now at this point machine can learn from the annotated image - Let us call it TEACH mode
  2. Build an index of properties with all the available images to enable image or object recognition via a Search Interface - Let us call it SEARCH mode
  3. Build a reasoner on top of the ConceptNet relations and annotation currently processed. This helps make conclusions based on the image annotations - Let us call it PROCESS mode
Possible Applications 
  1. Now, combined the power of Relations and Reasoner I would be able to fetch dynamic content (from Google and Wikipedia) about a particular annotated object within a image when queried. 
  2. With the power of Image index thus created, I can recognize the object and thus automate the process of annotation. thus providing the previous application in a more automated way. 
Things I have to learn and random notes
  1. Basic image properties that I would be indexing with the images
  2. May be use SVG or a another custom data structure to store the index
  3. Bridge the relations and concepts to Predicate logic reasoning
  4. Modify a Machine Learning algorithm (something like Naive bayesian or even more sophisticated to make the image learning possible)

If anyone of you find any more features worthwhile to be added into the system, please feel free to post it as a comment. Probably this Idea isn't new at all. I didn't take time to Google about it. Let me know if its already there, probably we can build something really even more useful on top of that.