Friday 10 December 2010

Memulai OpenCV dengan Microsoft Visual Studio 2008

Kebutuhan Instalasi:
  1. Microsoft Visual Studio 2008
  2. OpenCV 2.1.0 Windows Executable Install
OpenCV 2.1.0 HelloWorld
  • Memulai Object baru dengan (Start->All Programs --> Microsoft Visual Studio 2008
  1. File --> New --> Project --> Win 32 Console Aplication
  2. Name:'OpenCV_Helloworld' ...'OK'....'Finish'


  • Configure Project Directory
  1. Tools -> Options -> Projects and Solutions -> VC++ Directories
  2. Include Directories... add: 'C:\OpenCV2.1\include\opencv
  3. Library Directories... add: 'C:\OpenCV2.1\lib
  4. Source Directories... add: 'C:\OpenCV2.1\src\cv; C:\OpenCV2.1\src\cvaux; C:\OpenCV2.1\src\cxcore; C:\OpenCV2.1\src\highgui; C:\OpenCV2.1\src\ml
  5. Linker -> Input -> Additional Dependencies
  • Buat Isi dari "OpenCV_Helloworld.cpp" seperti berikut:
#include "stdafx.h"
#include
#include
#include


int _tmain(int argc, _TCHAR* argv[])
{
IplImage *img = cvLoadImage("funny-pictures-cat-goes-pew.jpg");
cvNamedWindow("Image:",1);
cvShowImage("Image:",img);

cvWaitKey();
cvDestroyWindow("Image:");
cvReleaseImage(&img);

return 0;
}
  • Debug

Thursday 9 December 2010

Transfer Learning

Sudah hampir tiga bulan ini aku bergelut dengan transfer learning. Dimulai dengan TrAdaBoost sampai dengan multi source TrAdaBoost. Mengapasih kok harus ada Transfer Learning? Sebenarnya kalo tak amati kenapa sih kok harus ada transfer learning adalah gara-gara kita ingin membuat suatu system yang dia seperti manusia. Misal seperti ini, manusia yangsudha pernah nyetir mubil akan lebih mudah untuk nyetir bus dari pada manusia yang belum pernah nyetir mobil sama sekali. Kenapa demikian? Jawabannya adalah karena manusia bisa melakukan transfer learning. Pengetahuan yang dia dapatkan ketika belajar nyetir mobil dia gunakan lagi ketika belajar nyetir bus. Karena ada beberapa prosedur dari nyetir mobil dan nyetir bus yang hampir sama. Sehingga orang yang sudah pernah nyetir mobil tidak harus belajar dari awal untuk nyetir bus. Tentu saja denga begini mereka akan lebih cepat untuk menyesuaikan diri dari pada orang yang belum pernah belajar mobil sama sekali.
Lalu apa hubungannya dengan mesin? Kalau di suatu system sebenarnya tujuan kita menggunakan transfer learning adalah hampir sama. Namun mungkin kasusnya beda. Sebenarnya ada beberapa macam transfer learning seperti instance transfer, model transfer, dll. karena yang sudah saya pelajari adalah instance transfer makan yang saya ketahui lebih dalam adalah instance transfer. Di dalam instance transfer kita mengenal adanya target domain dan source domain. Inilah yang mebedakan dengan batch learning. Kalau di dalam batch learning kita hanya menggunakan satu domain, di sini kita menggunakan dua domain. Karena kita berasumsi kedua domain tersebut berbeda.
Target domain adalah domain dimana testing data berada. Biasanya jumla data di target domain ini sangat sedikit. Karena di dalam statistik suatu data yang jumlahnya sedikit itu kadang-kadang tidak valid untuk membuat model dengan sebab bisa menimbulkan overfitting, maka butu tambahan data. Di sisi lain, kemungkinan kita mempunyai banyak data dengan karakteristik yang berbeda dengan target domain namun masih ada beberapa kesamaan. Lha di sini kita bisa memakai data ini untuk training. Inilah yang di sebut dengan soure domain.