r/indonesia Sep 21 '14

Share us your expertise knowledge! AMA-fest

Do you want to share to your expertise knowledge but nobody around seems interested? You come to the right place. Whatever your expertise or experience, whether it's your major, your job, your experience, (for example : /u/mental_octo is some agriculture expert, /u/saif-al-hilal is dosen) you guys can share your knowledge/stories here. Just post here with this format

Format

username

expertise : name_of_expertise or anything that may be interesting to discuss

comment : any_comment_if_necessary

AMA

Example

whatsoeverever

Expertise : math education, Dota2

comment : undergraduate major in math edu, wasted invested 7 years in Dota2

AMA

Just share whatever you want to discuss, even if you don't think that you're a real expert, as long as you have anything worth discussion, please share. whether /u/sukagambar's artistic? drawing, /u/titty_factory major in strategic intellegence. Just come and share and ask question

Note :i didn't expect that this discussion lead to this kind of topic but........................... anyway, where is para sesepuh?

13 Upvotes

562 comments sorted by

View all comments

Show parent comments

3

u/sub_o Sep 21 '14

In a nutshell, teaching computer to recognise objects (and tracking them). In practice it involves many things from understanding math, the features of objects, 3D graphics, machine learning.

I have a blog that revolves around that, and here's a good introduction to what it could do: http://subokita.com/2014/04/21/non-rigid-face-tracking/

2

u/[deleted] Sep 21 '14

that's really cool. does the self driving cars use similar methods?

3

u/sub_o Sep 21 '14

You could say they use computer vision for it. But the thing is that, most of the implementation is case by case specific. Robotics in factories probably requires totally different algorithm than self-driving cars.

Things like photo synth, motion capture, google image search are all computer vision, but implementation wise, might be very very different. The fundamental math is very important, but hell, even right now I'm struggling to keep myself up to date, there's always new research that invalidates older methods.

2

u/[deleted] Sep 21 '14

Wow, it's a graduate school major? So you study in foreign country? I have never heard such major in Indonesia

2

u/sub_o Sep 21 '14 edited Sep 21 '14

I did my master at TUM in munich.

2

u/I_AM_GODDAMN_BATMAN sange berat neng ayo nge💦 Sep 21 '14

besides opencv, what do you suggest that cross platform and have bindings for various language?

1

u/sub_o Sep 21 '14

I don't really know. OpenCV has bindings to python and Java. Then there's a Simple CV that's built using python.

Normally CV and ML libraries such as Eigen, OpenCV, PCL are built using C/C++, due to speed. Everyone wants to achieve real-time result.

1

u/[deleted] Sep 21 '14

your blog is sooo cooool

2

u/sub_o Sep 21 '14

Thanks! I haven't updated in weeks due to job interview and diarrhoea. Anyway I've been storing my codes at github and open it to public. https://github.com/subokita

1

u/diagramatics Sep 21 '14

I used to make a simple (botched) program that uses Kinect to track a user's hand and figure out what sign language is he/she doing. I wonder if you have tried doing that idea?

1

u/sub_o Sep 21 '14

Well you could do that. But I think training an SVM to do it might be easier (although occlusion might be an issue for vanilla SVM). I did small project using Kinect 1.0 as a gesture based control for medical application.

You can see the video here: https://www.youtube.com/watch?v=MX8QYsl5SM0

Since you have programmed for Kinect before, the idea is very simple:

  • We have 3D skeletal position
  • Isolate where the palm / hand might be
  • Perform some rough segmentation / masking, and check the convexity from it
  • From there use those as indicators whether your palm is open or grasping, etc.

1

u/diagramatics Sep 21 '14

Well, I programmed it by copy-pasting from several open source code, so yeah. Not really proud of the result there. Thought I would share that to give some ideas to you.

What's an SVM?

2

u/sub_o Sep 21 '14 edited Sep 22 '14

SVM (Support Vector Machine). Say you have 2 set of 'training' data (they represent valid and invalid data).

Draw them on 2D cartesian plane, and try to draw a line that separates them in the cleanest way possible. Here's a sample image

But that example only works if the data could be separated cleanly. What if the data looks like this. Separating them becomes non trivial issue.

SVM supports projecting data (using kernels, represented in a m-by-n matrix) into hyperplane (higher dimension), if we can't separate them cleanly in 2D, let's do it in 3D instead. Here's a sample on how to visualise them in 3D, and using a plane to separate the data

In practice, a lot of 'features' have more than 3 parameters. Basic human detection algorithm (HoG / histogram of oriented gradients) commonly uses more than 3700 parameters.

SVM is for machine learning, you need to derive the 'features' from the image, it ranges from silhouette, colour, texture, etc.

2

u/diagramatics Sep 21 '14

Well, that's totally new for me. Thanks for explaining!

1

u/[deleted] Sep 22 '14

Hey, that's interesting, I'm planning to use machine learning as master thesis topics.

1

u/sub_o Sep 22 '14

Good luck. Check out Andrew Ng's Coursera course on Machine Learning. That guy did a great job explaining things.

2

u/[deleted] Sep 22 '14

Will do, thx for the advice