Why Study at AIT?

คำเตือนก่อนอ่าน: บทความนี้เขียนไว้เมื่อประมาณปี 2552 นะครับ ปัจจุบันอาจจะมีการเปลี่ยนแปลงบ้าง ถ้าอยากทราบรายละเอียดเพิ่มเติม ขอให้ติดต่อเจ้าของบล็อกโดยตรงจ้า ยินดีตอบทุกคำถาม 😉

หัวข้อบล็อกนี้แปลเป็นภาษาไทยจะได้ว่า "ทำไมถึงศึกษาต่อที่ Asian Institute of Technology (AIT)?" ซึ่งเป็นหัวข้อที่มีหลายคนถามผมมาเยอะเหมือนกัน เลยมาเขียนเก็บไว้เผื่อจะเป็นข้อมูลในการตัดสินใจของผู้ที่จะสมัครเรียนที่นี่นะครับ แต่ว่าผมจะเน้นไปที่ภาควิชา Computer Science and Information Management (CSIM) เพราะผมกำลังศึกษาอยู่ในโปรแกรมนี้

จะขอเขียนถึงภาพรวมก่อน ซึ่งก็จะมีประมาณนี้

  • ก่อนเข้าเรียนจะมีการทดสอบภาษาอังกฤษ (เน้นทางด้านการเขียน) ทาง AIT จะเปิดให้สอบ และจะต้องผ่านเกณฑ์ขั้นต่ำก่อนถึงจะสามารถเข้ามาเรียนได้ พอเข้ามาเรียนแล้ว เราสามารถเข้าเรียนภาษาอังกฤษได้ฟรี โดยทาง Language Center จะเปิดคอร์สภาษาอังกฤษให้
  • ผมแนะนำให้สอบภาษาอังกฤษกับทาง AIT นะครับ ซึ่งเราสามารถมาขอสอบเมื่อไหร่ก็ได้ ถึงแม้จะต้องเสียเงินค่าสอบ (ครั้งแรก 800 บาท และ 2 ครั้งต่อไป 200 บาท ครั้งต่อไปจะเริ่ม 800 บาทใหม่ เราสามารถสอบกี่ครั้งก็ได้จนกว่าจะผ่านเกณฑ์ครับ)
  • ที่นี่เป็น international และ multi-cultural นะครับ และจะถือว่าทุกคนเป็นชาวต่างชาติหมดครับ เนื่องจาก AIT นั้นตั้งอยู่ในประเทศไทยก็จริง แต่ว่าก็ไม่ใช่ของประเทศไทยนะครับ
  • การเรียนการสอนเป็นภาษาอังกฤษหมดครับ เหมือนเราได้เรียนอยู่เมืองนอกไม่ต่างกันเท่าไหร่ ทุกอย่างอยู่ที่ตัวเราครับ ว่าเราเลือกจะทำงานกับคนไทยหรือคนต่างชาติ เรียนที่ไหนก็เหมือนกันหมดครับ
  • ตอนนี้ทุนสนับสนุนหลักจะเป็น AIT Fellowship 🙂 การให้ทุนจะดูหลายปัจจัยครับ เช่น เกรดเฉลี่ย คะแนนภาษาอังกฤษ ประสบการณ์การทำงาน (ถ้ามี) แล้วก็การสอบสัมภาษณ์ครับ
  • แล้วก็มีทุนสนับสนุนของรัฐบาลไทย Royal Thai Government (RTG) เป็นทุนให้เปล่าครับ เรียนจบแล้วไม่ต้องไปใช้หนี้ ตอนนี้จะมีแค่บางสาขาวิชา ดูรายละเอียดได้ >> ที่นี่ <<
  • AIT มีเครือข่ายที่ใหญ่มาก เกือบทั่วทั้งโลกครับ ถือว่าเป็นข้อที่ได้เปรียบของคนที่จบจากที่นี่ครับ
  • มีทรัพยากรพอเพียงต่อการวิจัย ยกตัวอย่าง ทาง CSIM ก็จะมีห้องแลป มีคอมพิวเตอร์ให้ใช้ มีเซิฟเวอร์ทำงานตลอด 24 ชม. ฯลฯ
  • มีกิจกรรมคลายเครียดเยอะแยะครับ จัดโดยทาง Student Union (SU) ถ้าเป็นคนไทยก็จะมีสมาคมนักเรียนไทย (TASA) คอยต้อนรับ
  • AIT สนับสนุนการกีฬาเป็นอย่างมากครับ มีทั้ง สนามฟุตบอล สนามเทนนิส ตะกร้อ แบดมินตัน สควอช ฯลฯ
  • มีการรักษาความปลอดภัยอย่างดีครับ จะมีคนเดินตรวจตราความเรียบร้อยอยู่ตลอดเวลา และเราสามารถแจ้งเหตุด่วนเหตุร้ายได้ตลอด 24 ชม.
  • บรรยากาศใน AIT ค่อนข้างเขียวชอุ่ม เต็มไปด้วยต้นไม้ ปลอดมลพิษ การเดินทางภายใน AIT จะเป็นการขี่จักรยานเป็นส่วนใหญ่
  • สำหรับเรื่องหอพัก AIT มีหอพักในครับ ราคาค่อนข้างถูกมาก ประมาณ 3,000 บาทต่อเดือน ค่าน้ำค่าไฟรวมแล้วแพงสุดไม่เกิน 500 บาทครับ ถ้าเราไม่ใช้เปลืองจริงๆ อีกอย่างก็มีอินเตอร์เนทให้ใช้ฟรี! (ในปัจจุบันต้องเสียเป็นรายเดือนแล้ว)
  • ข้อได้เปรียบของการเรียนที่นี่อีกอย่างก็คือ เราจะได้รู้จักสำเนียงภาษาอังกฤษของคนแทบทั่วทั้งโลกครับ 😀

ส่วนสำหรับโปรแกรม CSIM ก็จะประมาณนี้

  • อาจารย์ระดับเทพทุกคน ถ้าไม่เชื่อลองไปอ่านประวัติได้ ถ้าถามว่าทำไมถึงไม่ไปสอนที่ดีๆ ละ ผมคิดว่าเค้ารักเมืองไทย และเค้าต้องการพัฒนาให้การศึกษาของเมืองไทยให้ดีขึ้น
  • อ. ทุกท่านจะมีสไตล์ในการสอนเฉพาะตัว ที่สามารถนำเนื้อหาที่ยากมาพูดให้เข้าใจได้ง่าย
  • อ. ทุกท่านเปิดโอกาสให้นักศึกษา/นักวิจัย ได้เข้าพบและปรึกษาเรื่องการเรียนได้เกือบตลอดเวลา
  • อ. ยินดีที่จะช่วยเหลือและรับปรึกษาปัญหาด้านการศึกษาของนักศึกษา/นักวิจัย ทุกคน บางเรื่องก็ปรึกษาได้เช่นกัน
  • ส่วนเรื่องการเรียน งานค่อนข้างจะเยอะมากถึงมากที่สุด แต่ถ้าผ่านไปได้ก็ไม่ต้องกลัวงานที่ไหนอีกแล้วครับ โปรเจคแทบจะทุกวิชาจะทำเป็นกลุ่มครับ แต่ว่าเราสามารถเลือกทำเดี่ยวได้ถ้าเทพจัด แต่พวกการบ้านส่วนใหญ่จะเป็นงานเดี่ยวครับ
  • ทุกวิชามีโปรเจคและมีการบ้าน ซึ่งส่วนใหญ่จะทำกันไม่ค่อยทัน คำแนะนำก็คือ พอ อ. ให้งานมา ก็ให้รีบทำเลยครับ อย่าดองไว้นาน
  • บรรยากาศในการเรียนค่อนข้างเป็นกันเองครับ ก็เหมือนตอนเรียนปริญญาตรีนั่นแหละ ถ้าสงสัยอะไรให้ยกมือถามได้เลยครับ ไม่ต้องอาย ไม่ต้องกลัว จะมีประโยคที่ได้ยินบ่อยๆ ว่า "ถ้ารู้เรื่องแล้ว จะมาเรียนทำไม" จริงไหม?
  • ทุกวิชา ถ้าเราสนใจเราสามารถเข้าไปนั่งเรียนได้หมดครับ ค่อนข้างเปิดกว้างมากๆ
  • การเรียนการสอนของระดับปริญญาโท จะมีทั้งหมด 4 ภาคการศึกษา 2 ภาคแรกจะเป็นคอร์สวิชา ส่วนอีก 2 ภาคหลังจะเป็นการทำวิจัย
  • การทำวิจัยสำหรับระดับปริญญาโทมี 2 แบบครับคือ แบบ Research กับ แบบ Thesis ซึ่งแบบ Research จะใช้เวลาทำแค่ 1 ภาคการศึกษา ส่วนแบบ Thesis จะใช้เวลาทำ 2 ภาคการศึกษา ถ้าใครสนใจอยากเรียนระดับปริญญาเอกต่อ หรือว่าตั้งใจที่จะเป็นอาจารย์/นักวิจัย ผมแนะนำให้เลือกแบบ Thesis ครับ งานจะใหญ่กว่าและเป็นสากลมากกว่า ส่วนงาน Research จะเหมาะสำหรับคนที่ชอบเรียนครับ และไม่ชอบวิจัย เค้าก็จะลงคอร์สวิชาเพิ่มอีก 1 ภาคเรียน และภาคเรียนสุดท้ายก็จะทำวิจัย (ขอบเขตของงานจะน้อยกว่า Thesis ครับ)
  • เงื่อนไขการเรียนจบ ก็แค่ทำให้ผลงานอยู่ในระดับที่ยอมรับได้ สามารถตีพิมพ์ได้ (ปัจจุบัน งานไม่จำเป็นต้องตีพิมพ์ครับ)
  • การเรียนการสอนของระดับปริญญาเอก จะมีทั้งหมด (ขั้นต่ำ) 6 ภาคการศึกษา ซึ่ง 2 ภาคแรก จะเป็นคอร์สวิชา ส่วน 4 ภาคที่เหลือจะเป็นการวิจัย
  • การสอบหัวข้อ (Proposal defense) จะเริ่มตั้งแต่เราเสร็จสิ้นในส่วนของคอร์สวิชาหมดแล้ว สำหรับ เด็กปริญญาเอกเราจะต้องสอบภายใน 3 ภาคการศึกษา ส่วนเด็กปริญญาโทจะต้องสอบให้เสร็จภายใน 1 ภาคการศึกษา
  • ส่วนการทำวิจัยระดับปริญญาเอกนั้น เงื่อนไขการเรียนจบก็คือมีงานที่ตีพิมพ์ขั้นต่ำจำนวน 1 journal ที่เป็น international นะครับ และต้องเป็น journal ที่มี impact factor สูงๆ หรือเป็นที่ยอมรับกัน
  • โดยปกติแล้วในสาขา Computer Science นี้ การตีพิมพ์ใน Conference จะยากกว่าการตีพิมพ์ใน Journal นะครับ (อ. เค้าบอกมา)
  • วิชาที่สอนมีเนื้อหาค่อนข้างทันสมัย ถึงแม้ว่าเนื้อหาหลักจะคงเดิมไว้ แต่ว่า อ. แต่ละท่านก็สามารถสอดแทรกเนื้อหาใหม่ๆ เข้าไปได้
  • ได้เจอเพื่อนใหม่ต่างสถาบัน ได้ความรู้ใหม่ ได้แนวทางวิจัยใหม่ๆ
  • สำหรับคำถามที่เจอบ่อยอีกอย่างก็คือ ไม่ได้จบมาทางสาย Computer โดยตรงจะสามารถเรียนได้รึเปล่า? ผมขอตอบว่าเรียนได้ครับ ที่นี่มีคนที่จบไม่ตรงสายมาก็เยอะเหมือนกัน พวกเค้าช่วงแรกก็มีปัญหาครับ แต่พอปรับตัวได้ และเน้นความขยัน พวกเค้าก็เรียนได้สบายครับ

ถ้ามีอะไรเพิ่มเติม จะมาอัพเดทนะครับ 🙂

Creating an OpenCV application with Eclipse on Windows

เนื่องจากว่าผมใช้ระบบ Windows เป็นหลัก แต่งานวิจัยผมพัฒนาบน Ubuntu ซึ่งยังยอมรับว่าไม่สามารถใช้ Ubuntu เพียวๆ ได้ เป็นเหตุทำให้งานวิจัยค่อนข้างล่าช้าไปพอสมควร ผมจึงคิดว่าจะมาเขียนโปรแกรมบน Windows แทน และวันนี้ได้ลองผิดลองถูกที่จะใช้ OpenCV กับ Eclipse อยู่นานมาก ขอจดขั้นตอนเก็บไว้หน่อยละกัน

โปรแกรมที่จำเป็นต้องติดตั้ง

  1. MinGW: เป็นชุดคำสั่งรวมพวกไลบรารี่ของภาษา Programming ซึ่งในที่นี้โปรแกรมที่จะติดตั้งก็คือ C/C++ compiler
  2. Eclipse CDT: ดั้งเดิมเป็น IDE สำหรับภาษา Java แต่ตัวนี้ได้ติดตั้งโปรแกรมเสริมให้รองรับการพัฒนาภาษา C/C++
  3. OpenCV for Windows: และแน่นอนที่ขาดไม่ได้ นั่นก็คือ OpenCV ซึ่งเป็นชุดคำสั่งรวมพวกไลบรารี่ของการพัฒนาโปรแกรมทาง Computer Vision หรือ Image Processing

Continue reading "Creating an OpenCV application with Eclipse on Windows"

Installing OpenCV on Ubuntu

Since I often reinstall Ubuntu as well as OpenCV, it would be better to note here. Thanks to Dr. Dailey for his tutorial on VGLWiki.

These are the main packages we need to install first.

  • libcv1
  • libcvaux1
  • libcvaux-dev
  • libcv-dev
  • libhighgui1
  • libhighgui-dev
  • opencv-doc (optional)

If you want to use gstreamer, here are the steps:

  1. Install two additional packages: libgstreamer0.10-dev and libdc1394-13-dev.
  2. Download OpenCV from sourceforge and extract to a folder, let's say "opencv".
  3. Change directory to that folder and run this command:
    ./configure --prefix=${HOME}/opencv --without-xine --without-quicktime --with-gstreamer --with-1394libs --with-v4l
  4. make
  5. make install
  6. The last thing is to is to tell the dynamic linker where the DLLs are; so, add the line:
    export LD_LIBRARY_PATH=${HOME}/opencv/lib
    to ~/.bashrc and then relogin.To check if it is working, type: env | grep LD_L Then you should see the result like this:
    LD_LIBRARY_PATH=/home/<your username>/opencv/lib

If you want to use ffmpeg, follow the steps (Thanks to Phong for his guidance):

  1. Install two additional packages: libswscale-dev and ffmpeg.
  2. create a folder /usr/include/ffmpeg.
  3. For Jaunty Jackalope (Ubuntu 9.04), we need to create some soft links under /usr/include/ffmpeg as follows:
    • avcodec.h to ../libavcodec/avcodec.h
    • avformat.h to ../libavformat/avformat.h
    • avio.h to ../libavformat/avio.h
    • avutil.h to ../libavutil/avutil.h
    • swscale.h to ../libswscale/swscale.h
  4. Then run this: ./configure --prefix=${HOME}/opencv --with-ffmpeg --without-quicktime
  5. make
  6. make install
  7. And don't forget to tell the dynamic linker: export LD_LIBRARY_PATH=${HOME}/opencv/lib

For the system-wide installation, change --prefix=${HOME}/opencv to --prefix=/usr/. If you want to remove OpenCV, use the commands: make uninstall or make distclean

Here I also give an example of Makefile to compile with OpenCV (Thanks to Dr. Dailey again for his example).

#What needs to be built (TARG) from what source code (SRC)
SRC = opencv-test.c
TARG = opencv-test

#Tell make what compiler we use
CC = gcc

#Tell gcc about non-standard places to find include (.h) files
#For a system wide installation use -I /usr/include/opencv
INC = -I $(HOME)/opencv/include/opencv

#Also tell gcc to include debug symbols (-g), give all possible warnings
#(-Wall), but don't generate the annoying "unused function" warning
CFLAGS = -g -Wall -Wno-unused-function $(INC)

#Tell the linker where to look for libraries and what's needed for OpenCV
#For a system wide installation -L isn't necessary
LIB = -L $(HOME)/opencv/lib -lcxcore -lcv -lhighgui -lcvaux -lml
LDFLAGS = $(LIB)

#The object files we want are just the source files with .c -> .o
OBJ = $(SRC:.c=.o)

#What make should try to build by default
all: $(TARG)

#What object files the target executable depends on
$(TARG): $(OBJ)

#Clean up executables, object files, and temp files
clean: rm -f *~ *.o $(TARG)

That's it. Enjoy OpenCV!