Category Archives: APIIT

Just a moment before the Graduation…. ;)

And the day is finally here, officially

Graduating in BENG(Hons) Software Engineering (Second Class First Division) ! xD

Reminds me of the very humble beginning of this dream, when I decided to drop off from my A/Ls Mathematics stream after 6 months of time waste…

When I decided to chase my dream, my passion for technology and innovation, that desperate need of achieving my goal…

Whereas most of my school friends got rid of me thinking that I’m a loser to skip the time waste of A/Ls and jump start my Undergraduate studies, even though they didn’t even know the meaning of what a “Degree” was back then ! 😛 (Seriously everyone thought, I was doing a computer diploma even though I tried to explain that I’m studying for a degree lol) When they were going for Tuition classes I was going for undergraduate Lectures, which I still remember most of them ignored me even in the buses ! 😀 lol

Well after all the hard work and incredible journey of over 3 years end, while my old school friends are still doing CIMA, SIM and all the typical lame courses you do when you waste your life with A/Ls, and trying to find their way… here I am,

Right after my final exams, I got recruited as

a Software Engineer by one of the top IT companies in Sri Lanka just by the age of 21, earning piles of money each month since then, and living my Dream to the fullest ! ^_^

Never underestimate the power of a passionate crazy Dreamer ! 😉

YES I DID IT ! 😀

The amazing journey I had as a Microsoft Student Partner..

I always loved building things, and solving problems, which is one of the reasons why I got into Software Development in my early higher studies. I would always look at any problem or requirement, and try to come up with a solution to fix them, with my passion for technology, even if I’m not able to solve it I would seek out and self-learn the knowledge and skills required.

I remember back in the day, around the end of my 1st year in University, when I was a self-taught Java code junkie, building cool little scripts, software tools and apps while sharing them among my friends and fellow students for fun, well for the sheer joy of building things and fixing problems. 😉

Around the same time, I stumbled into a senior fellow, Nisal “Cheezy”, who’d later become a good friend of mine, who heard of my work around the campus and introduced me into the world of Microsoft. So I was a bit skeptical in the beginning, given my inspiration towards Open Source Software movement where I started off of my enthusiasm.

So I attended few student work shops hosted by Microsoft Sri Lanka and I was stunned, well you could even say I was hooked. The next thing I know, I self taught .NET framework and started building things off of C#, given the amount of free tools and support they have for the University students those days. 😀

Since then I went down a journey that would inspire my whole career, from being an enthusiastic college kid to a Software Engineering professional. So here’s me sharing a bit of that journey to mark a remarkable turning point of my life…

One of the first few workshops for Students I attended was at the Microsoft Sri Lanka office, which was led by Mr. Wellington, Uditha and Malin, this was around May, 2012 as I recall…

Those workshops and demonstrations were truly incredible learning opportunities I’ve ever had, where the presenters and instructors were well experienced and very welcoming of us.

The Microsoft App Sunday was a workshop and a full day hackathon program that was hosted by Microsoft Sri Lanka, around October, 2012, which I believe they continued on for several months. This was really fun!

Oh that guy in Blue T-Shirt on the right side photo is me! xD

We were hand picked by the Student Ambassadors at the time, from different universities and we’d spend our whole Sunday at the Microsoft Sri Lanka office, with free food, snacks and drinks, building awesome Windows Phone and Windows 8 Store Apps. 😀

Early 2013 I got involved in organizing these Microsoft Student workshops in my own University as well… These were the days of Windows 8 hype!

APIIT Windows 8 App Fest was one of those initiatives that I was part of, sharing the awesomeness of latest Microsoft tech among fellow students…

Microsoft Student Champs is something that definitely needs mentioning here, where Microsoft Sri Lanka office hosted these monthly meetups for University students for free, to come together as a student community, and share knowledge and experience, gaining insights from industry experts.

Microsoft Student Champs: https://www.facebook.com/studentchamps

That’s the little meeting room that these monthly meetups were held, so much wonderful memories right here, lots of friendships formed and connections across universities all over Sri Lanka.

Even I got the opportunity to present some of my self taught expertise in Windows Phone App development… 😀

Udara Aliws presenting at Microsoft Student Champs meeting in Sri Lanka

Oh yeah goodie bags from Microsoft for coming forward and presenting was my all times favorites! 😉 lol

This was an incredible opportunity for us as students to share our knowledge and expertise with the rest of the student community and improve our presentation skills!

Then next big achievement was, around June 2013, when I was appointed for a Microsoft Student ambassadorship under the Student Partnership program, in recognition of my contribution to the student community as a fellow student.

News article: https://www.readme.lk/sri-lankan-msps-appointed/

That right there are some of my fellow Student Partners from my University at the time. Good friends, good times!

Microsoft Student Champs Ambassadors Sri Lanka APIIT 2012
Microsoft Student Champs Sri Lanka Monthly Meeting 2013

This wonderful opportunity only propelled me further sharing knowledge and experience where I continued on my passionate journey. One of those memorable events was Infotel 2013 where we got to volunteer for the Microsoft stall with our expertise of Windows Phone!

This was an awesome event, we as students had quite a lot of fun, and had a lot networking opportunities showcasing our skills and passion.

One of the best things ever happened to me was, being inspired to build over 30 Windows Phone Apps and published them on Microsoft Store, gaining over 160,000 users across the world… 😀

Not only that, I even managed to build a whole bunch of Windows Store Apps for Windows 8 as well. My Windows 8 Store App Development Projects : https://theconfuzedsourcecode.wordpress.com/2013/11/11/my-windows-8-store-app-development-projects/

This is something I really enjoyed connecting a worldwide audience through the Apps that you have built by yourself, knowing that out there people are using stuff that you’ve built!

Well my official Microsoft Student Partnership came to an end in mid 2014, since I graduated from my University. But all in all, this entire journey had a massive effect in my Software Engineering career. I’ve gained so much knowledge and expertise thanks to the Microsoft Student Champs initiative, while making a whole bunch of friends and wonderful memories.

So once again thank you Microsoft for this incredible opportunity, and for Mr. Wellington who lead this entire program during the time. This is one of the most remarkable opportunities I had ever stumbled upon as a Student, for that I will forever be grateful, and I hope you guys keep on inspiring many more students like my myself. Cheers!

During The Final Year Project… The Reality from my Undergrad Eye…

The Final Year Project, for those who are undergraduates may know what am I talking about as for others, just wait till you get into a University, which is one of the most important pin points of an Undergrad Life. Some call it, “Thesis”, “Final Project”, “Final Research Project”, and so on, but nevertheless it is the Project that every single Undergrad is suppose to complete in order to graduate at their Final year of the Degree Program. I’m writing this based on my personal experience during I was an undergraduate at APIIT studying for my Software Engineering degree at Staffordshire University. Most of the people do not talk about publicly about this period of Life, moreover no one is bothered or everyone expects others to experience by themselves. But I thought of giving a little glimpse of it for all the curious young minds out there… 😉 I think it would be much better for a fresher to be aware of this huge storm they are gonna face someday ahead the years.

London-International-College-550x330[1]

The Heat…

It all begins at the beginning of the final semester of the final year, even though traditionally at APIIT, we have to start working on it according to a schedule from the first semester of the final year, well well  but everyone waits till the last moment to heat up themselves 😛 ! My fellow colleagues would definitely know about what am talking about 😉 lol Anyhow the heat increases, with the less time left, final assignment projects, final exams and so on, and added to that your supervisors and assessors of the project haunting you xD ! I still remember how we used to hide ourselves whenever we saw our supervisor or assessor.. Oh man, Good memories ! 😀 And also in the middle of all that, your parents and friends asking you about the project and and mentioning the fact that you are at the end of your degree you have to make them proud and all that talks ! -_-

The Stress…

The stress basically starts up with the heat which arises with the beginning of the final semester, which is caused by the facts, the biggest pin point of your degree life, the final project which everything depends on even your Honors class (1st Class, 2nd Class, so on) of the degree, speaking of which the FYP (Final Year Project) directly impacts on your final grade of the degree. Does not matter whether you have been a brilliant student through out your undergraduate life, if you screw this up even slightly, all that would be useless. This is the moment all your parents, cousins, friends, and neighbors are waiting to see the results of, which indeed is a killer stress having to imagine all those people around you staring at your final outcome. Specially the parents of yours who has spent a huge amount of money on your studies if you are an undergraduate of a private university.

The competition of course among the fellow batch mates, which is something always goes behind the back of everyone, in fact a known bitter truth no one likes to talk about. Among all that the fact that you have to deal with your final assignments, projects and exams, OMG talk about STRESS ! Imagine, having to study and work for your projects and exams while having to finish and entire research by your own and compile a full professional level undergraduate thesis by your own, YES ! that is what am talking about ! With in that very few months, you have to manage all that. This is a huge disadvantage for every single student, but which will eventually give a good experience for the student.
Even if you work hard, what if the final out come of the project does not suffice the objectives of your project ? Oh boy thinking that was one of the huge stresses I ever had personally. The stress is all those above added up together, like a frigging thunderstorm roaming around you, a huge rock on top of your head. Trust me this stress is the biggest an undergraduate would ever go through in his life.

Your Parents.. Responsibility.. Money…

The responsibility of the amount of money your parents have spent on you, whereas for us, having to be studying at private University where our parents had to pay from millions for our studies as payments. The funny thing is even though they have spent such a huge amount of money, we still can not guarantee proper grades, because does not matter how much you have paid it all depends on all your hard work as a student.
And the worst is that being in a private university which has a very strict line of academical rules and standards for course work for students, OMG, the pressure is even more higher. Knowing that even the slightest thing could screw up the whole degree which would waste all your parents money, would literally begin to give a heart attack every single time.

parentsweekend768x300[1]

Well that is of course if you care about the money your parents have spent on you and if you really wanna succeed in life with a good degree. This comes as a true motivation at times, well for me it was more of a motivation rather than a stress which is of course was a bit of a stress. Knowing that you somehow have to make your parents proud and prove them that they have not wasted their hard earned money on you, yes it comes from the bottom of the heart and when they see you working so hard to make them proud, nothing else would make them proud even if you loose. Some parents puts their whole life in jeopardy just to send you to a good university and lead you to a better life, specially in those cases the stress on the student is too damn high, and it is their responsibility no matter what…

Doing Something out of the Box ? Good Luck Son !

So I heard that you are hoping to do something out of the box yeah ? Oh well Boy, Good Luck ! I don’t about other Universities, but as in at where I studied doing something totally new and creative or totally out of the box for Your Final year Project, is like literally hanging your self. lol ! Its gonna be a huge risk that you would be taking, but it would all be totally worth it at the end IF you succeed ! but if you mess it up or if you are unable to fulfill the objectives you have defined at the beginning, oh well everything would go down the drain no matter how well you have done so far, what kind of a good research you have done. This would actually kill you when you are in the middle of all the stress, knowing that you are literally putting your neck out there for this new creative idea you wanna do for your project. And also when you tell people about it, (if you are an ordinary student) everyone would go like, Are you crazy ? You wouldn’t be able to finish it on time ? Is that even possible to do ? -_- and all that shit. Well if you are a well known talented student, they would go like, Oh WOW ! Thats awesome ! but isn’t that a lil risky ? 😛 lol either way all these outer environment would freak you out. And knowing the fact that You are on your own, oh boy, the pressure !

Sometimes this drives you crazy while you are going through all the final assignments and exams and crap -_- Yes I have been there. I still recall my Supervisor used to tell me, do you think you would have enough time to finish this up with the limited time and all these work you have got ? And every single time I heard that, it literally freaked me out, BUT I never gave up on my self, I knew my skill set and how i should achieve it using them and moreover I had a huge passion for the idea I had for my Project, which literally drew me to success. So hopefully I never had any doubts. This usually happens if your supervisor or assessor does not know you much as a student, even in my case he used to doubt me all the time, asking me whether I was able to do the work, asking me to show him the work I have done already every single time and so on. But do not get put down yourself, keep on working from your best and prove them wrong. 😉
Starting off is a huge problem whereas when you dont know where or how to start off prolly because no one has done that before, but do not worry, start somewhere and keep on researching. At the end of the tunnel you may find a light..

A Reason to be Proud..

If you think about it, in one way it is a reason to be proud of your self, when everyone else in your batch is doing some obvious random useless crap which has already been done before by the past seniors, YOU in the other hand is doing something EPIC ! something no one has ever done before. Trust me son, this factor will keep you on top of the world ! Even telling people that you are in to such a huge risk, such an innovative creation.. BOOM ! You would know the feeling..
Being different always feels good (well at least for my personally), but do not let it totally blind you with it. Keep an open mind, think of every single circumstances, always remind yourself of the risk that you are taking and be alerted.
If you are going through this, just know, You are taking a huge risk, but DO NOT GIVE UP and NEVER STOP BELIEVING ! NEVER LOSE YOUR PASSION ! no matter what they say or whatever happens. Just work hard ! work your *ss off ! 🙂 You will see a miracle at the end…

Your Friends and The Competition…

This is some kind of a dirty truth which no one would like to talk about. This is a moment where you get to choose between friendship and your personal success. But just because that you don’t have to be a total di**. Even though this is evaluated individually, there is still a competition going on between everyone in the batch, because at the end of the day everyone is trying to achieve the best GPA and get a good class from the degree, specially given the fact that 1st classes are given for only the best few.
Sometimes a good friend of yours would refuse to help you out with your project if they are jealous of you and they would probably ignore you. Be alerted, this happens with most of your so called friends 😉 or else they would lead you to a wrong path just to mess you up.. So be careful son !

Along with this some people decide to completely put down their friends in every single way possible, out of jealousy and out of being scared of other’s success. Which is really pathetic but some losers can not help themselves. lol 😛 Most of the time they would condemn your Project Idea, make fun of it in front of everyone else, discourage you saying that you can not do it, you wouldn’t finish it and so on such lame drama.. lol
Therefore make sure to stay away from such losers specially during your final year project and always surround your self with a supportive crowd of true friends.

You honestly don’t want to.. but you have no Choice…

During your Project days, with all the given stress and workload, you get extremely busy and sometimes unfortunately your friend comes up to you and ask for help with their project when they know you are good at it. But so sadly you are also extremely stuck and messed up with your own project in a totally different way which you can’t even figure out, at times like these you have to make a choice and like it or not you prolly would have to give priority for your own project having to turn down your friend who is in need… This is totally fair unless you are doing it out of your selfishness and competition.
I have personally faced so many situations like these during my project days. So what I did was trying to explain how I’m stuck with my one and how much more I have to finish in my, being politely said that its their responsibility be fair and understand the situation and approach someone else for help.
I had this one friend who was a girl, she asked me for some help with her project, and I said alright fine, I ll try my best but I’m also honestly messed up with mine. But later I forgot to get back to her with the help because I was really stressed and stuck with mine. Because of it until this day she does not speak with me. Funny enough she is the only one who acted like this when everyone else understood. So these kind of cases would be there once out of 10 times 😉
Well given the obvious reasons, its their responsibility to understand. It is a two way path actually you should be honest and give the fair reasons and they should understand the given circumstances. If they don’t cannot help it, this is about your future man !

No Sleep, No Appetite,  No Food,  No Mood !

This is some of the worst side effects you would face when you are going through your final year project, specially when there is only one or two weeks left for the submission. You literally do not feel like sleeping at all, you stay up all night long due to the stress, but for some people its the total opposite, they fell asleep even more often and sleep pretty well. lol 😛 Well after we humans are different from each other in nature. You get no appetite for food and you could stay without food even throughout a whole day.
Being moody is very common these days which comes obviously with the stress that you go through. This would be very annoying for your family members and specially your other friends, not to mention, obviously for your gf or bf. Well after all its their responsibility to understand the situation and deal with it.

I recall being up all night long coding on my project and coming to APIIT in the next day morning, being all moody and sleepy lol 😛 And I used to act very lazy and mean with everyone, looking all pale and sleepy.. oh oh and having my hair totally messed up, having a long beard looking like a cave man 😀 lol Everyone used to be like omg what has happened to you ? why are you acting like this and so on.. 😛 hikz xD Oh Yeah ! Good memories ! 😀
This actually drives you even more and sometimes it makes you even more harder knowing the fact that you should finish this off soon and get rid of this whole suffering.
So be prepared child !

being Extra Respectful and Scared for Lecturers and Admins.. lol

Being an undergrad for about 3 or 4 years you prolly have a clear idea whats the drill with interacting with Lecturers and the Academic Administration, knowing that they could screw you up from top to bottom if you mess with them. This is gets extremely cautions during the final year project time period. If you mess with a lecturer they could bring down your whole final year project results and like it or not, true or false, we all know this has already happened before for our seniors. Due to this reason you start paying extra respect for lecturers and being scared of them over the limit. 😛
And then the Admins, where when were at APIIT we had a very rude, unnecessary strict administration which we were really scared of thinking they would mess up our results or exams 😛 so we were acting like innocent mouses in front of them. lol 😀 Its actually an obvious reacting that comes from every single Final Year student knowing that you are going through the very final step and you have to be cool with everyone without making any issues which you know would bite you in the back 😛 !

The Insanity and Nonsense Blast !

So getting back to the stress, this one of the EPIC-EST outcomes of it in mostly every single student ! You may see some of your batch mates even your own self going completely insane due to the stress, where as start playing around nonsense even in the middle of all the hectic serious workload, randomly shouting out loud in the middle the class or the lab, running around, hurraaaying even for the tiniest thing, dancing in the middle of the lab and so on, oh yeah the list goes on… xD Specially I’m personally a lot experienced regarding this, where as I was one of those victims who had such side effects to the extreme level. Even today if you talk to any of my colleagues, they would tell you xD  😛
Oh yeah, so much of epic memories with that… 😉 and be warned child, your time is ahead of you ! 😛

So…

So this is some of the reality experience I had during my Final year Project when I was an undergraduate at University. Well of course this is totally based on my own personal experience at APIIT Sri Lanka, if you are a student from other University it would be different, but in common these facts are true for most of the undergrads. I’m just leaving these experiences in my blog for you guys out there, just to mark some of the unforgettable experience I had at my University days, hoping you would be able to gain something from them and add more of you own to it.
Well as now I am a graduate and working for some big a** corporate company I would never get the chance to go back to those amazing days, and someday you will also get to this point in your life, and make sure you wouldn’t regret the time you spent during the Final Year Project, the last few weeks at your University.
So get the maximum of it, help out your friends in possible ways without being selfish all the time, do not mess with the lecturers 😛 , take some risk, do something different for your final thesis, work yours a**es off, and play some random nonsense just to have fun and get rid of stress 😉 making some good memories ! 😀
Behold the Secret Recipe ! 😉

Good Luck for all you folks out there ! 😀 Have an EPIC time !

(Image Sources – Google, 2014)

Your Friends before the Final Year Project

I’m sharing these based on my own personal experience based on four years I spent APIIT studying my Software Engineering degree. Well for the most part no one actually talks about these in public, because prolly they think its not nice, or they not bothered, or may be they think everyone else will learn these life experiences by them selves in time. Right now I’m going through the aftermath of waiting for Final results of my degree, which means I’m going through an utter boredom 😛 sleeping all day long, eating, watching movies, crushing some code to get rid of boredom, or trying sneak out of the house to hang out with my gf, which is almost impossibru ! xD So I guess this time period offers me the perfecto atmosphere to waste some time on my blog ! 😀 yeeeeei ! lol

Will be Around You..

So talking about friends, before and during your FYP (Final year project) period, All your friends will be around you. Specially before and after lectures they will be hanging around with you inside the class room and outside. Most of the time we used to bug each other or talk about something hilarious one of us had done during may be our outings or batch trips and so on. And once in a while you may see a couple of friends in a corner with some serious discussion. Talking about  relationship issues, family issues and so on. And then comes a one who talk about techy stuff or gaming stuff all the time with some more geeky friends around. Usually the nerdy type ones, who could be a lil socially awkward.

Usually.. Where Moments Captured…

Usually after lectures, hanging around in the lab, canteen and having all the chit chats, would happen more often. These would be the moment most prolly where random pictures will be captured, where those random pictures will let you cherish the moments in later time of your life.

Asking for help…

Your Friends will be asking for help if you are so good at studies, specially when it comes to girls, from what I have experience there is a higher ratio of girls than guys who asks you for help with their studies if you are good at studies. Some of your friends wouldn’t ask you for help because they are so up in their heads, that they don’t wanna second them selves for you, asking you for help. The type of friends who are jealous of you may be spreading rumors of you or talk low about you when they hear how others are seeking your help in studies.

The Selfish…

There would be those friends of yours who always thinks only about themselves, without even giving you a simple help when you ask for one. Those who thinks that they are the best among everyone and they should not share whatever they know with others. Where as they are mostly motivated by the fact that being selfish and getting good grades than everyone else is the holy grail in undergrad life. lol 😛

Oh the Outings…

Outings will be much more often specially at the beginning of the semester, but in later times, it would fade away with the work load. There in the middle, you may find the little sub groups among friends, go for their own personal outings, while the rejected ones get hurt. The emotional friend which we all have will be crying out loud if you drop them any outing of your little group.

Home Runners…

We often find those friends who return home as soon as the lectures are over, skipping all the hangouts and outings saying various reasons and so on. Sometimes the ones who are in serious relationships, who desires to spend out with their girlfriends or boyfriends would also ditch you in most of the times.

Late Staying…

Knowing the fact that we are leaving in couple of months, there are some of us, our friends who stays late in the campus till the labs are being closed down, having random chit chats, running around here and there, checking out girls in junior batches. lol 😉

The Checking Out…

Something in common in most of the hangouts there will be those friends who checks our girls in the junior batches, rate them, and comment on them, while specially some of them checking out their secret crushes. 😛

A** Givers…

Oh forgot to tell about those ones who gives a**es to the lecturers, going behind everyone in the batch. Hahaha 😀 Have so much of funny memories of most of them in my own batch even. The wanna be nerds or the absolute nerds who pretend to be the good students in the batch in front of lecturers. Oh boy I often wondered whether those people had some mental illness or something. Do not worry these days the batch will be full of that sorta people as specially being at the end of the degree.

The Awesome Group Studies…

The group studies, on one of the best 😀 When the project submissions comes nearby or exams, you and your friends will be doing the legendary ‘Group Study’ thingy, where as the main objective is to study with the whole bunch together but end up wasting time and having some random fun most of the time. Oh so much of memories in group studies. You and your friends starts studying and the whole topic converts into some other jabberish and everyone ends up playing fool and having fun !

Finally…

Those are some of the memories and experiences I had with my Friends before our Final Year Project thesis. Never the less every single one of those memories and experiences I still remind my self as Good times 😀 after all now we all have just left the university and there would not be any turning backs for that wonderful time.

Cheers folks ! 😀

Thoughts in my head on the night of FYP Submission Completion Day !

Yes, I submitted my Final Year Project ! WOHOOOOOOOOOOOO ! 😀 Oh god, it feels so great to say that out loud ! xD lol

Okay now that the FYP submission is done, I’m actually feeling really blank at the moment. So my friends went out tonight to celebrate, but my mind wasn’t in a good mood and i was dead tired after the submission as I couldn’t sleep in two days stretch. Not to mention the fact that I’m kinda financially broke these days by spending all my money on my Server maintenance cost. LOL ! 😛 So I came home after hanging around for sometime, actually after having a tummy filling meal at Mc-Donalds.

Yeah ! I really feel blank and empty ! When I was walking way home, I was actually thinking. So the biggest submission of our graduate life is done, yet the presentation is coming up.. What am I suppose to do now.. well after the presentation, waiting for results at home.. No more college, no more nothing ! 😦

I mean if it was just another submission I would definitely be getting ready for the next day to go to college. But right now, We have no lectures, no meetings, nothing… Its like a big question mark in my head asking, what am I suppose to do now ?
Yeah I have reached the end of my College life, and that is how it actually feels… !

Funny it reminds me of something, I was always very social and friendly with everyone, where I talked to a lot of people and hung around with lot of seniors and so on. Those days when those seniors were about to leave just like us right now, I used to make fun of them saying, You old buggers are not invalid coins, why do you even come to APIIT anymore ? 😛 blah blah… So now when I think about it, yes I actually do feel like some invalid coin with no purpose at College..

Well its time to get ready for the next big step in life, stepping in to the Real World, with finding a Job, making some money to live, getting frustrated of work and suffocating with the actual society out there…. Yeah it is time now !

😐

And I’m still feeling EMPTY and BLANK !          😐

Finally the long awaited Final Year Project Done ! :D

The FYP or the Final Year Project as they all call it at APIIT, is finally done for our batch  !8 Months of torture finally came to an end ! 😀 So i thought of leaving a small note on my Final Year Project.

The title of my Final year Project was “Augmented Reality based Product Identification and Advertising System”. Which is a system where users can identify Products or Advertisements using their mobile phones in real time.

Anyhow after going through weeks of sleepless nights, endless number of experimentations and self learning, I was able to develop and implement in a middle of huge amount of technological difficulties. I used SURF Feature Extraction Algorithm as the base Image Matching Algorithm for this System, even though this is the first time anyone in our University has used Computer Vision based algorithm for image matching as I have been told, due to the impossibility of it or may be even more because people actually haven’t looked into it properly.

Anyhow I may give a descriptional explanation on my FYP later, but for the moment, as leaving a note, I was able to successfully complete my FYP even though some of the objectives of the system could not be achieved, well not completely lets say, due to the technological difficulties or more over due to the time constrains. Now you must be wondering why am I blaming for the time constrains, well you would never understand that phrase unless you are an APIITian, because we all know the tough deadlines and submissions we get at APIIT, where as even for the Final Year Project, no matter what, you need to submit on the given date. Yes we do deal with extreme stressed up, packed up deadline submissions. Lemme give you a heads up, Final assignment Submissions, Final Exams, and after that within less than a month Final Year Project Submission.

Now you may say dafaq dude, less than a month is more than enough. Listen you bloody idiotic retard, this is the FYP we are talking about, which is not just another CRUD application or some lame-ass inventory control shit. We are suppose to research, self learn, experiment and innovate something under the topic which we have decided, that is the whole point of it. In mine i was never in to Image Processing, to be honest I haven’t even had any idea about Image Processing until i started researching for my FYP. And then imagine using all that research and developing something completely new out of all those theories that you self learn ! Yeah, enough of me boasting ! lol

We are suppose to do a complete extensive Documentation along with the given proper standards of APIIT, where as mine was 217 Pages, along with 37607 Words ! Yeah well more like I wrote my own personal Bible or something lol ! Yeah now you can imagine, think of it even typing such amount of words thinking from one’s head ? Yeah that is what am talking about. lol. Well not to mention the fact that when I get enthusiastic and passionate about something I could write a whole book about it. 😛

So the next step is the Final Presentation, which is due on next 20th ! Scares me when I even  think of it, but hoping for the best with the determination !

Woah ! What a feeling of relief ! 😀

Final Year Project Log – Image Matching Experiment using SURF Feature Extraction

This post is regarding my Final Year Project I’m working on for my degree in Software Engineering at APIIT, which I’m working on an Augmented Reality based Product Identification and Advertising System.

Through this post I’m keeping a log book of the experiments I’m running for my utilized Image Matching algorithm based on SURF Feature Extraction and Matching algorithm.
This post is no educational or knowledge source, just some post that I’m keeping online to mark the progress of my experiment.

Language – C#
API – EmguCV (C# Wrapper for OpenCV)

Log 1 – Successfully installed and configured EmguCV in the Laptop running Window 8 Pro and imported all the required dll files for the project solution in Visual Studio 2012.

Log 2 – Implemented Simple Image Matching code and was able to find the matching points based on Extracted Feature points of a given Source Image and a Model Image.

Model Image – the Model Image that you want to look for in other image sceneries.
Source Image – the actual scenery to look up for the given image.

Log 3 – Started SURF Experiment project solution and implemented the following functionality,

– Load the given set of images to the memory at Run time and their feature points will be extracted and saved in the Memory. This was done in order to make the execution, as in the matching process faster.

– Look up for the brand logo of a given Product Image by extracting the Feature points of the given image and matching them with the feature points of the existing brand logos.

Log 4 – Oki now the process does not seem to be working for images that are from other sources, rather than a model image captured from the actual scenery image.

The model Image or the brand logo image in this case has to be an image which is being captured from the same exact product image that we are giving in to the system. The matching process does not work for custom logo images which are from other sources. Now lets say if we download a logo image from the internet and add it to the logo image library and load it to the program, and I give the actual product image in order to find the matching brand logo, it would not give accurate result and catch the above given logo as the result.

Concluded Reason based on Knowledge – I guess this is because of the essence of the SURF Algorithm, frankly speaking its capable of detecting a given object from a scenery where the object actually includes in the scenery. And now if we apply it to this scenario, the given logo is from another source and its feature points, colors, pixels are different from the product image that we are going to identify, therefore the algorithm would not detect it as the result logo.

This could be a constraint, but it would not matter if I implement an option to let the admin user capture the exact logo from the given product image and store that logo in the Database ! 😀

Log 5 – The Important attributes in extracting the matching results from the Algorithm in Code,

Matrix<int> indices – Still have no idea, but it stores some X,Y points based on the matched points I suppose.
Matrix<byte> mask – Store the results of filtering the matched features and votes for the points given by the algorithm. This matrix exactly includes the number of matched feature points. 

The actual voting for matched feature points happens in here –

using (Matrix<float> dist = new Matrix<float>(observedDescriptors.Rows, k))
 {
 matcher.KnnMatch(observedDescriptors, indices, dist, k, null);
 mask = new Matrix<byte>(dist.Rows, 1);
 mask.SetValue(255);
 Features2DToolbox.VoteForUniqueness(dist, uniquenessThreshold, mask);
 }

And I have discovered that using those values, specially “mask ” matrix value, I could determine something like the percentage of the matching between two images which actually stores the voting results of the Feature point matching. And then I could take the highest matching points count and get the best match for identifying the product logo.

But there is a drawback in that when I actually executed the process, that is the SURF detector detects several matching feature points in a given Product Logo image and a Product Image, where sometimes it detects randomly more than the actual supposed result, which leads to incorrect results. Therefore I need to look for a better approach.

Looking for a Better Approach… Rather than counting the number of matching points…

Log 6 – I just figured out that In order to solve this I need to consider some factors regarding the area of the detected results, as in when the algorithm look for the product logo in the given product image, it specifically pinpoints to a specific area of the logo in the product image. If I could calculate that that determine it, BOOM ! its done !

Here are some of the factors I found and their samples,

Test Samples –

This is how the algorithm actually detects the logo in the given product Image,
Capture

As you can see in the above Image in the right side the UI displays the Logo image and in the left side it displays the given product Image. The dots represents the detected feature points of the both images and those lines in between the two images determines and maps the matching feature points of the two images. As in how it displays where the logo is detected in the given product Image.

Pretty cool eh ! 😀

Then when I started digging deeper I noticed that those mapped lines actually forms some kind of a polygon around the detected logo area in the product image. So I edited the code to draw a line around it.
Capture2

The for a clear view I painted the formed polygon, just for the sake of viewing ease.Capture3
Looks perfect eh ! 😉 Now this should lead me to something useful while determining the exact accurate result.

Chasing the Polygon………..

Log 7 – I noticed that the formed Polygon on incorrect results or i n those results where the logo can not be detected, takes a malformed shape. Such as below,
Capture4

Capture6

And on some of the matching it does not even draw out the polygon as an example,
Capture5

Now this seems to provide a great opportunity, as in if I could determine whether its a properly formed polygon or not and whether it is actually a polygon in the given matching result, then I could easily figure out the perfect accurate match.

This is where the Polygon is initiated from the Homography matrix,

#region draw the projected region on the image
 if (homography != null)
 { //draw a rectangle along the projected model
 Rectangle rect = modelImage.ROI;
 PointF[] pts = new PointF[] { 
 new PointF(rect.Left, rect.Bottom),
 new PointF(rect.Right, rect.Bottom),
 new PointF(rect.Right, rect.Top),
 new PointF(rect.Left, rect.Top)};
 homography.ProjectPoints(pts);
}

Log 8 – Right now at this point I am calculating the below values in order to determine the perfect match result of the product image’s logo,

  • Number of Matching points count
  • Area of the Polygon
  • Number of Matching points within the Polygon Area

based on these values of each and every matching circle i was able to determine the best matching result.

Log 9 – Right now at this point I’m going through a crisis issue where there is no possible way to determine a matching instance of when a user inserts a product image which is not available in the database to find the product logo. As in lets say the user inserts a product image where it’s product logo isn’t available in the database, right now there is no way to determine whether it could be found or not.

This is because of the fact that, even though the number of matching counts goes down, some other factor such as area of the polygon, or may be if the area of the polygon goes down the number of matching points could increase. This situation changes from one image to another unpredictably and of course I tried my best to track down a pattern for this, but it was also unsuccessful as it differs from one image to another ! 😦

 Suggested Solutions at the point –

Get rid of the process of Identifying the Brand Logo of a given product Image and directly move on to visual product identification. This could take a long time to give a result.

As you can see the reason why I came up with this, “brand Logo Recognition process” was to increase the speed of the product identification. There is a huge set of product images in the database which are related to each and every brand type. So rather than search through all the product images, what if I identify the brand type first and then search through only the products that falls under that brand type ? Which will definitely increase the speed of matching reduce unwanted time consumption in matching.

Right at this point I’m pretty confused about what I should do, but I may have to go through the above solution ! :\ Must contact the supervisor and assessor immediately.

Log 10 – I contacted my Assessor lecturer of my FYP and presented him this issue. He came up with an amazing idea of taking the percentage of detected feature points between the Model, Logo Image and the Scenery, Product Image. This was a lil confusing for me at once but then later only it triggered me ! 😀

Therefore following that lead, I took the percentage of the difference between the Logo and the Given Product Image at every circulation of the matching and kept that value for later use in order to determine which gives the best percentage.

 percentage = (( (double)result.modelDescriptors.Rows) / (double)result.observedDescriptors.Rows) * 100;

In the above code I get the percentage and store it with the index number of the corresponding Logo and Product.

Then at the end, the matching percentage has to be over 20% and the Polygon Area should not be 0 and the Number of the matches inside the polygon area has to be over 0, otherwise it would be identified as unidentifiable.

if (currentLargestPercentage <= 20)
 {
    if ((currentlargestArea == 0 && currentlargestMatchesInPolygonArea == 0))
    {
       MessageBox.Show("Sorry ! This can not be Identified ! :( ");
    }
    else
    {

    }
 }
 else
 {
    if (currentlargestMatchesCount > 10)
    {

    }
 }

Log 11 – Using the above found method I was able to successfully identify the Product images which can not be identified with the Logo Images in the database. But the problem is sometimes it doesn’t identify the products which can even be identifies with the product logo in the database 😦 ! I tried changing the matching percentage but nothing seems to be working, when I change it, the product images which can be identified doesn’t get identified and  the ones that can not be identified comes up with wrong matches. 

So now I’m in need of a new approach for this, something similar to the same method.

Log 12 – The I used “descriptors” of the model and the observed images, which has the computed values of the given image and the points locations because of its convenience, as it appeared to be it was holding some significant set of values. But later I found out there is not much of use of it in take the percentage so i thought of switching to the “vector of feature points” of both logo and product image, where as those vectors holds the values for the detected SURF Feature points. Therefore according to that,

 percentage = (((double)result.modelKeypoints.Size) / ((double)result.observedKeypoints.Size)) * 100;

So now this seems like a perfect match by getting the ration between the keypoints of the model image and observed image. And then I did some tuning in matching identification condition.

if ((currentlargestArea == 0 && 
currentlargestMatchesInPolygonArea == 0) ||
currentLargestPercentage <= 5)
 {
         MessageBox.Show("Sorry ! This can not be Identified ! :( ");
 }

Now this appears to be giving fair results even though it is not 100% accurate, but according to the time constraints I should not waste anymore time with the matching process.

Screw this torture, I finished developing and successfully Implemented ! PS – Based on the above experimentations and results ! 😉
Hope it may help any of you !
Cheers ! 😀

Welcome to APIIT Knowledge Share !

Welcome to APIIT Knowledge Share !

The ultimate collaborative Educational Knowledge and Experience Sharing platform for APIITians ! 🙂 

We believe, that Knowledge is meant to be Shared, Evolved and Nurtured ! The more you share, the more you gain, the more you connect, the more we success in extreme speeds ! Its more productive and efficient to achieve success together as a community rather than trying to win a rat race where no one will achieve the perfection.

Its a well known fact that once we are done with a semester, we leave all that knowledge and experience behind us, and move on to the next… and then the next batch also goes through the same waste of time. Instead of that, why don’t we share our knowledge and experiences with everyone, specially the next set of juniors and among everyone else ? Share and Collaborate with each other, which will lead us to achieve much more greater success with less effort and waste of time.

Therefore why don’t we share the knowledge and experiences we have already gained ? What if, we could share our Knowledge and Experiences with everyone else ? That way they could gain that knowledge with ease and achieve much better than we used to as they could use their time discovering new knowledge and experiences. Likewise imagine the same process being carried over one semester to another. This way we could let them achieve in their assignments and exams much better than we did. 

At APIIT Knowledge Share we facilitate you, to Share your Educational Knowledge and Experiences, Collaborate and Connect with others, Gain Knowledge and Information with ease, by providing an ultimate collaborative platform.Are you looking for Knowledge resources or Educational Resources for your Studies and Assignments ? or are you looking to share Resources which you have used for your Modules, Exams and Assignments with everyone, so that you can help Juniors to learn and achieve their studies much better ? Then this is the place for you, APIITian !

It is time for a change, a change of the whole game,
Share your Knowledge ! Share your Experience ! Let them Nurture ! Let them Evolve ! Help Others !
Ask Questions ! Get Seniors Help ! Collaborate with the Community ! Achieve the Best with your Studies !

At APIIT Knowledge Share, We Welcome you ! 🙂

http://www.apiitknowledgeshare.com/ 

If you want to know more about the project’s infrastructure, concept and the philosophy, follow this link,
http://apiitknowledgeshare.com/About.aspx 

You can get an idea of how to add resources and collaborate with each other through this, How to Get started tutorial,
http://apiitknowledgeshare.com/HowTo/HowTo.aspx 

If you have any Questions, Concerns or any Issues please contact me directly or post your questions here where the Admins will assist you.
http://apiitknowledgeshare.com/GeneralQuestions.aspx

Please forward this blog post to your fellow APIITians, Share the Link, Join the Community to achieve Accelerated Success through online collaboration ! Spread the word. 🙂 The Evolution has just begun.

Join with us on Facebook ! 🙂 
https://www.facebook.com/APIITKnowledgeShare

Regards,
– Udara Alwis

[ÇøŋfuzëÐ SøurcëÇødë]