my senoir project (full)
DESCRIPTION
Senoir ProjectTRANSCRIPT
บทท 1
บทนำ
1.1 ทมาและความสำคญของปญหา
ศพทภาษาองกฤษมอยมากมายโดยอาจพบจากการอานหนงสอนวนยาย หนงสอพมพ หนงสอ
เรยน ซงคนไทยสวนหนงไมสามารถใชภาษาองกฤษไดหรออาจตดขดในคำศพททไมทราบความหมาย ดง
นนจงตองมเครองมอทใชแปลศพทองกฤษเปนภาษาไทยโดยทเครองมอเหลานควรจะพกพาไดสะดวก
ทงนอปกรณพกพามหลากหลายรปแบบโดยทสวนหนงเปนแบบทใชระบบหนาจอสมผสและอกทงยงม
กลองถายรป ดงนนจงมแนวคดทจะใชกลองและหนาจอสมผสนสรางแอปพลเคชนแปลภาษาองกฤษเปน
ภาษาไทยดวยวธใชงานทแตกตางจากการพมพ เพอตอบโจทยทวา “เปนไปไดไหมทเพยงแคการสมผส
หนาจอเพยงครงเดยวกสามารถไดความหมายของศพททตองการ” โดยอาศยภาพจากกลองถายรปแลวใช
กระบวนการ OCR เพออานคำศพทในภาพ
1.2 วตถประสงค
1.2.1 เพอสรางแอปพลเคชนทสามารถแปลคำศพทภาษาองกฤษเปนภาษาไทยโดยใช OCR
1.2.2 เพอสรางแอปพลเคชนแปลคำศพทภาษาองกฤษทใชงานงาย สะดวก
1.2.3 เพอสรางแอปพลเคชนแปลคำศพททสามารถใชงานไดบนอปกรณพกพา
! 1.3 ลกษณะและขอบเขตของโครงงาน
1.3.1 สามารถอานตวอกษร A - Z และ a - z ในภาพได
1.3.2 Font ของภาษาองกฤษทรองรบคอ Times New Roman และ Font อน ๆรวมกนอยางนอย 3
Fonts
1.3.3 สามารถเลอกถายภาพใหมหรอภาพทมอยแลวในเครอง (Photo Albums)
1.3.4 การทำงานของแอปพลเคชนเปนแบบ Snapshot คอ ผใชเลอกถายภาพหรอเลอกภาพ
(Photo Album) แลวจงนำเขาสการประมวลผลภาพ
1.3.5 ตวอกษรในภาพตองคมชดมากพอและไมเลกจนเกนไป อยางนอยตองสามารถอานไดดวย
มนษย เพอประสทธภาพในการประมลผลภาพ
1
1.3.6 เลอกคำศพทโดยการลากแทบดำครอบทตวอกษร
1.3.7 สามารถปอนคำโดยตรงดวยการพมพคำศพทได
1.3.8 การแปลคำศพทอางองจาก Google Translate ซงตองมการเชอมตออนเตอรเนตในขณะใช
งานแอปพลเคชน
1.3.9 สรางแอปพลเคชนททำงานบน iOS เวอรชน 4.0 ขนไปและมกลอง
1.4 อปกรณและเครองมอทใช
1.4.1 ฮารดแวร
- คอมพวเตอรโนตบค (Macbook Pro 5,5 13 นว)
- หนวยประมวลผลกลาง Intel Core 2 Duo 2.26 GHz
- หนวยความจำหลก 2 GB
- ฮารดดสก ขนาด 160 GB
- iPhone 3GS, iPhone 4 หรอ iPod Touch 4 Generation
1.4.2 ซอฟตแวร
- Mac OS X 10.6 (Snow Leopard)
- Xcode
- iOS SDK
1.5 ผลทคาดวาจะไดรบ
1.5.1 มแอปพลเคชนเพอแปลภาษาองกฤษเปนภาษาไทยทเพยงแคการสมผสครงเดยวกสามารถ
ไดความหมายของศพททตองการ
1.5.2 มการนำแอปพลเคชนทไดไปใชอยางแพรหลาย
1.5.3 เปนแนวคดเพอพฒนาแอปพลเคชนอน ๆ ตอไป
2
บทท 2
ผลงานทเกยวของ
2.1 แอปพลเคชนชอ : vTranslator
จดทำโดย : Vlad Seryakov
รปท 2.1 แอปพลเคชน vTranslator
vTranslator เปนแอปพลเคชนทใชในการแปลภาษาโดยใช Google Translate ซงตวแปลภาษากม
อยมากมายโดยทสวนใหญแลวการรบคำทจะนำไปแปลผานทางคยบอรด แตสำหรบ vTranslator จะแตก
ตางตรงทใชการถายภาพคำทตองการแปลแทน จากนน vTranslator กจะอานคำจากภาพทถายไดแลวสง
ไปใหกบ Google Translate แปลให
กระบวนอานคำจากภาพหรอ Optical Character Recognition (OCR) ท vTranslator ตองใชเพอ
อานคำมาจากเครองมอชอ Tesseract ทเปน Open Source อยใน Google Code
ขอด
vTranslator เปนฟรแอปพลเคชนทใคร ๆ กสามารถโหลดมาใชงานได เพยงแคม iTunes ID หรอ
Apple ID และเขาไปดาวโหดลท Apple App Store
ขอเสย
การเลอกถายคำทจะนำมาแปลมขอจำกดตรงทกรอบซงเปนตวระบสวนทจะอานเลกเกนไปและ
ไมสามารถปรบเปลยนขนาดได ทำใหในบางครงการถายคำแคเพยงคำเดยวกอาจจะไมพอและถานำมาใช
กบการถายคำเพยงคำเดยวการพมพผานคยบอรดจะเรวและแมนยำกวาวธการถายภาพ ซงจะทำใหเกด
ภาระเพมมากกวาความสะดวก
3
2.2 แอปพลเคชนชอ : Page Scanner จดทำโดย : FastIntelligence
รปท 2.2 แอปพลเคชน Page Scanner รปท 2.3 สวนของการสแกนภาพ
แทนทการพมพเพอคดลอกขอมลทเปนตวอกษรในกระดาษ การนำ Optical Character
Recognition (OCR) เขามาชวยทำหนาทปอนขอความสคอมพวเตอรจะชวยลดเวลาในการคดลอกขอมล
ไดมาก โดยหลกการทำงานกคอนำเอากระดาษไปสแกนผานเคร องสแกนเพอใหไดเปนไฟลใน
คอมพวเตอรซงกคอไฟลภาพ จากนนนำภาพทไดไปอานเอาขอความออกมาผานกระบวนการ OCR ซง
การทจะไดภาพเพอนำมาอานเอาขอความออกมายงมสงอนอกทใชแทนกนได โดยในทนกคอกลองถาย
รปของโทรศพทมอถอทมความละเอยดสงและคมชดมากพอจะเทยบเทากบเครองสแกนได จงมาเปน
แอปพลเคชนนททำเสมอนวาเปนเครองสแกนขนาดเลกทรวมเอาการทำงานของ OCR เขาไวดวยกน
ขอด
แทนทเครองสแกนอนใหญโต (เมอเทยบกบขนาดของมอถอ) ดวยขนาดทเลกกระทดรดของมอ
ถอ
ขอเสย
ความแมนยำในการอานคำจากภาพ (OCR)
4
บทท 3
ทฤษฏและความรทเกยวของ
3.1 Optical Character Recognition (OCR) OCR คอการอานตวอกษรในภาพดงเชนกบการทคนเรามองภาพแลวอานตวอกษรในภาพดวยตา
โดยคอมพวเตอรนนการมองคอการใชกลองรบแสงทสะทอนออกมาจากวตถและเกบคาของแสงแตละ
ตำแหนงในขณะหนงไวซงกคอภาพนง จากนนภาพทไดจะถกนำไปคนหาตวอกษรแลวนำตวอกษรท
คนหาไดมาเปรยบเทยบวาเปนตวอกษรตวอะไร
3.2 Google Translate API เปนเครองมอทใชในการแปลภาษาทมหลากหลายภาษาใหเลอก อกทงเครองมอแปลภาษานยง
สามารถแปลคำศพทแบบกลมคำหลาย ๆคำรวมกนไดอกดวย ซงถงแมวาการแปลแบบนจะยงเรยบเรยงคำ
ไมคอยด แตอยางไรแลวเครองมอตวนกยงถกพฒนาตอไปอยางตอเนอง
การใชงานกระทำโดยการสงผาน URL
h t t p : / / a j a x . g o o g l e a p i s . c o m / a j a x / s e r v i c e s / l a n g u a g e / t r a n s l a t e ?
v=1.0&q=TEXT&langpair=SOURCE|DESTINATION
โดยแทนทคำทตองการคนหาแทนทตำแหนง TEXT ภาษาตงตนท SOURCE ในลกษณะตวยอ
เชน en คอ English, ja คอ Japanese เปนตน และสดทายคอภาษาทตองการแปลไปท DESTINATION ใน
ลกษณะตวยอเชนเดยวกบภาษาตงตน จากนนเราจะไดขอความทเปนผลการแปลอางองตาม URL ทสงไป
5
บทท 4
ขนตอนและแผนการดาเนนงาน
4.1 ขนตอนการดำเนนงาน 4.1.1 ศกษาขอมลเบยงตน
คนหาขอมลความเปนไปไดของโครงงานทจะนำเสนอวามเปนเปนไปไดมากนอยเพยงใด คอ
4.1.1.1 แนวคดทจะทำสามารถทำใหเปนจรงไดหรอไม
4.1.1.2 มแอปพลเคชนอน ๆ ทใกลเคยงกบแนวคดทจะทำ เพอศกษาหาจดออนจดแขง
4.1.2 เสนอโครงงาน
สงเอกสารขอทำโครงงานพรอมทงนำเสนอและใหคณะจารยพจารณาหวขอโครงงาน
4.1.3 ศกษาทฤษฏและความรทเกยวของ
4.1.3.1 เรยนรภาษา Objective-C ซงใชในการพฒนาแอปพลเคชนบนระบบปฎบตการ iOS
4.1.3.2 ศกษาหลกการทำงานของ Optical Character Recognition ซงตองนำมาใชในการอานตว
อกษรในภาพ
4.1.3.3 ศกษาการใช Google Translate API เพอใชในการแปล
4.1.4 วเคราะหและออกแบบแอปพลเคชน
วางแผนขนตอนการทำงานของแอปพลเคชนทงในสวนของการอานภาพ การแปลคำ ซงรวมไป
ถงการนำการทำงานแตละสวนมารวมเขาดวยกน
4.1.5 เขยนโปรแกรม
ลงมอสรางการทำงานสวนตาง ๆ ขนมาโดยการเขยนดวภาษา Objective-C รวมกบ iOS SDK
4.1.6 ทดสอบและปรบปรงแอปพลเคชน
ทดสอบการทำงานของแอปพลเคชนทงในเรองการใช เชน หนวยประมวลผล หนวยความจำ
เปนตน โดยอนดบแรกทดสอบในตวจำลอง (Simulator) หลงจากนนจงนำไปทดสอบบนอปกรณจรงตอ
ไป
4.1.7 จดทำเอกสาร
ทำเอกสารรายละเอยดของโครงงานและวธใชแอปพลเคชนทไดจากแนวคดตามโครงงานทไดนำ
เสนอ
6
4.2 แผนการดำเนนงาน
ขนตอนการดำเนนงานส.ค.
53
ก.ย.
53
ต.ค.
53
พ.ย.
53
ธ.ค.
53
ม.ค.
54
ก.พ.
54
ศกษาขอมลเบองตน
เสนอโครงงาน
ศกษาทฤษฏและความรทเกยวของ
วเคราะหและออกแบบแอปพลเคชน
เขยนโปรแกรม
ทดสอบและปรงปรงแอปพลเคชน
จดทำเอกสาร
ตารางท 4.1 แผนการดำเนนงาน
7
บทท 5
วธการดำเนนงาน
รปท 5.1 สวนเลอกภาษา รปท 5.2 หนาตางหลก
5.1 สวนตดตอผใช เมอเรยกใชงานแอปพลเคชนนข นมากจะพบกบหนาจอตามภาพทางดานขวาโดยแตละสวน
มหนาทดงน
- กลองขอความดานบน ใชเพอเพอรบขอความทจะถกนำไปแปล ซงขอความอาจจะมาจากการ
ใชงานความสามารถในการดงขอความมาในภาพหรอพมพโดยตรงผานคบอรดของ iOS กได นนคอเรา
สามารถเพม ลบ หรอแกไขขอความไดตรงน
- กลองขอความดานลาง ใชเพอแสดงผลลพธจากการแปลขอความ ดงนนขอความในสวนนจง
สามารถทำไดเพยงแคคดลอกเทานน
- ปมรปถงขยะ(มมขวาลาง) ใชเพอลางขอความในกลองขอความทงสองออกทงหมด
- ขอความดานบนกลองขอความทงสอง ใชเพอแสดงภาษาสำหรบแตละสวน โดยในสวนบน
หมายความถงภาษาของขอความทจะถกนำไปแปล และสวนลางกคอภาษาทจะไดจากการแปล
- ปม Settings (มมซายบน) ใชเพอเลอกภาษาสำหรบกลองขอความทงสองดงทกลาวมาแลว โดย
จะมหนาตางใหมปรากฏขนมาตามรปดานซาย (ตวอยางภาพ) ซงภาษาทจะแปลออกมาไดจะอางองจาก
ภาษาท Google Translate สามารถแปลได และภาษาทจะถกนำไปแปลคอภาษาทใชตวอกษร a ถง z และ
A ถง Z
- ปม Translate (กลางลาง) ใชเพอสงแปลขอความ
- ปมรปกลองถายรป (มมขวาลาง) ใชเพอเปดสวนของกลองถายรป ทงนเพอถายรปภาพขอความ
ทตองการจะแปลความหมาาย
- ปมรปกระดาษ (ดานขวาตดกบปมรปกลอง) ใชเพอเลอกรปภาพจากแหลงภาพทมอยแลว
(Photo Albums)
- ปม Help (มมขวาบน) ใชเพอแสดงขอความแนะนำการใชงานแอปพลเคชน
8
5.2 การทำงานของ OCR 5.2.1 การแบงขอความตามบรรทด
เมอไดภาพมาแลวอนดบแรกกคอการคำออกไปแตละบรรทด โดยเกบคาเอาไวเปนคอนดบ เชน บรรทดท
1 เรมตนทแถว 1 และสนสดทแถว 15 เปนตน โดยการตรวจสอบหาเสนแบงบรรทด คอ ถาหากแถวใด
ไมมคาสดำอยในแถวเลยและอยกอนบรรทดทมสดำอยถอวาเปนจดเรมตนบรรทด และ ถาแถวนนไมมส
ดำอยเลยและอยหลงจากบรรทดทมสดำอยแสดงวาเปนแถวสนสดบรรทด ดงตวอยางการขดเสนแบง
บรรทดตามรป
5.2.2 การแบงตวอกษรในแตละบรรทด
หลงจากคนหาไดตำแหนงของแตละบรรทดมาแลวกจะทำการแบงแตละตวอกษรออกจากกน
โดยใชหลกการลกษณะเดยวกบการพจารณาบรรทด คอ หาคอลมทไมมสดำซงเรมจากแถวเรมตนบรรทด
ไปยงแถวทสนสดบรรทด หากพบวาเปนคอลมทไมมสดำอยเลยและอยกอนคอลมทมสดำอยแสดงวาเปน
คอลมเรมตน ซงคอลมสนสดกคอคอลมวางทอยหลงนนเอง
เกบขอมลตำแหนงของแตละตวอกษรไว เชน ทแถวท 1 มตวอกษรเรมตนท 10 สนสดท 30 เปนตน
5.2.3 การหาตำแหนงของเวนวรรค
หลงจากสองกระบวนการทผานมาแลวสงทไดคอตำแหนงของตวอกษรทแนนอนแตตวอกษรทง
หลายกยงตองพจารณาหาเวนวรรค เพอแบงตวอกษรออกเปนคำตามกลมทแบงดวยเวนวรรค
หลกการ คอ หาคาเฉลยความหางของแตละตวอกษรออกมาแลวนำคาเฉลยทไดมาเปรยบเทยบกบความ
หางของแตละตวอกษร ถาตวอกษรหางกบอกตวอกษรมากกวาคาเฉลยทไดแสดงวาตวอกษรสองตวนน
ถกขนดวยเวนวรรคนนเอง
5.2.4 การเปรยบเทยบเพอหาตวอกษร
หลกจากไดตำแหนงและวรรคแบงคำแลวตอไปกจะนำเอาสวนของตวอกษรแตละตวมาเปรยบ
เทยบกบภาพตวอกษรแตละฟอนตทเตรยมเอาไว โดยทำการสเกลภาพตวอกษรของฟอนตทเตรยมไวให
เทากบขนาดของฟอนตทตดออกมาในอตราสวนทเทากน (ผลหารของความยาวและความสง) จากนนนำ
ภาพทงสองมาลบหาผลตางกนหากภาพนนเหมอนกนกจะลบกนไดพอดหมายความวาคอตวอกษรตวทนำ
มาเปรยบเทยบกนนนเอง
ทำในขนตอนทกลาวมาไปในแตละบรรทดจดหมดโดยหากพบวามเวนวรรคขนใหแทนทดวยเวนวรรคลง
ไป
5.3 การแปลคำศพทโดย Google Translate หลงจากไดขอความออกมาแลวตอไปคอการสงคำทจะแปลไปยง Google Translate โดยผานทาง
URL คอ http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=TEXT&langpair=
SOURCE|DESTINATION
โดยคำจะถกแทนตรงตำแหนง TEXT ซงตองแทนทเวนวรรคดวย %20 และระบภาษาทจะแปลทตำแหนง
SOURCE และ DESTINATION เปนแบบตวยอ เชน en : English, th : Thai, ja : Japanese เปนตน
SOURCE คอ ภาษาทถกนำไปแปล
DESTINATION คอ ภาษาทจะใหแปลออกมา
เมอ URL ดงกลาวถกสงไปและถกประมวลผลแลว Google Translate จะใหขอความกลบมาในรปแบบ
ดงน
9
{"responseData": {"translatedText":"TEXT"}, "responseDetails": null, "responseStatus": 200} ซงจาก
ขอความทไดกจะตดสวน TEXT ทเปนคำแปลออกมาแสดงเปนผลลพธ
10
บทท 6
ผลการดำเนนงาน ขอจำกด และขอเสนอแนะ
6.1 ผลการดำเนนงาน การดำเนนงานสวนใหญแลวเปนไปตามทคาดหวงเอาไว คอ ในสวนของการแปลคำศพทก
สามารถทำไดโดยใชเครองมอตดตอทางอนเตอรเนต (Google Translate) สวนรปลกษณของแอปพลเคชน
จากการสอบถามแลวพบวาเปนทนาพอใจคอดแลวใชไมยากและสวยงาม แตในสวนของการอานคำจาก
ผลทไดสมบรณแบบตามทคาดหวงไวทงหมด ซงจากการทดลองแลวพบวามขอจำกดอยซงจะกลาวถงใน
หวขอตอไป
6.2 ขอจำกด ในสวนของการประมวลผลภาพเพอดงตวอกษรออกมาพบวามขอจำกดดงน
- ภาพทจะนำมาประมวลผลตองเปนภาพทมเพยงแคขอความ ทงนเพราะวาวธทใชในการ
ประมวลผลภาพไมไดถกออกแบบมาเพอคนหาขอความจากภาพทมรปตาง ๆ ปะปนอย เชน ภาพ
โปสเตอร ใบปลว เปนตน แตเพอการคนหาขอความจากภาพทประกอบไปดวยตวอกษรเพยงอยางเดยว
เชน หนงสอนยาย หนงสอเรยน (ทมเพยงบทบรรยาย ไมมรปภาพ) เปนตน
- การแยกตวอกษรในแตละบรรทดหากตวอกษรตดกนหรอตำแหนงครอมกน เชน fa จะไม
สามารถแยกแยะตวอกษรเชนนได ทงนเพราะในการพจารณาแบงตวอกษรพจารณาโดยการแบงตาม
ชองไฟโดยดจากสวนบนของบรรทดไลลงมายงสวนลางของบรรทด ถาหากวาจากบนสดถงลางสดเปน
สวนทวางทงหมด(พจารณาทละหลก)แสดงวาเปนชองไฟหรอชองวาง ซงถาสงเกตจากตวอกษร f และ a
ทวางตดกนเปน fa สวนปลายหวของ f จะโคงมาอยบนตวอกษร a ดงนนจงทำใหไมสามารถหาชองไฟ
ระหวางตวอกษรทงสองไดตามหลกการพจารณาทกลาวมา
- เพอความแมนยำในการเปรยบเทยบเพอจดจำตวอกษร ขนาดของตวอกษรในภาพควรจะเปนตว
อกษรขนาด 15 พอยต ทงนเพราะการจดจำตวอกษรใชการนำภาพตนฉบบของแตละตวอกษรในแตละ
ฟอนตมาเปรยบเทยบกบแตละตวอกษรในภาพ ซงภาพตนฉบบนถกเตรยมไวทขนาดฟอนต 15 พอยต ดง
นนถาขนาดของตวอกษรในภาพเลกกวาหรอใหญกวาจงตองมการยอหรอขยายภาพตนฉบบเพอให
สามารถนำไปเปรยบเทยบ ตรงนเองทการยอหรอขยายอาจทำใหภาพตนฉบบผดเพยนไป
- ตวอปกรณ iOS นนสามารถใชไดทง iPhone, iPod Touch และ iPad ทใช iOS เวอรชน 4.0 ขน
ไป แตในสวนการใชงานกลองจะมเพยงแค iPhone และ iPod Touch 4G เทานน สวน iPad สามารถใชงาน
เกยวกบรปภาพไดจาก Photo Albums
- สวนของกลองทใชในการถายภาพจะมเพยงแค iPhone 3Gs และ iPhone 4 ทมระบบ Auto-
Focus ซงทำใหสามารถถายรปภาพระบบใกลไดชดเจน แตกลองของ iPod Touch 4G จะขาดในสวนนไป
ทำใหภาพทไดอาจจะไมคมชดเพยงพอทจะนำไปประมวลผลแลวไดผลลพธทนาพอใจ
11
6.3 ขอเสนอแนะ จากการศกษาในระหวางการทำงานพบวามเครองมอทนาสนใจเกยวกบการอานตวอกษรจากใน
ภาพทชอ Tesseractโดยเครองมอนถกเผลแพรอยในเวบไซตยอยของ Google ทเกยวของกบการเขยน
โปรแกรมคอมพวเตอร ซงจากการทดสอบประสทธภาพของซอฟแวรทใชงานเครองมน (ซอฟแวรใน
คอมพวเตอรบนระบบปฏบตการ Mac OS X) พบวามความแมนยำสงและรองรบฟอนตไดหลายรปแบบ
แตทงนการนำเครองมอ Tesseract มาใชในระบบปฏบตการ iOS ถอเปนเรองยากเพราะเดมนนเครองมอน
ไมไดทำมาสำหรบ iOS ดงนนจงมขนตอนมากมายทตองทำหากตองการนำเครองมอนมาใชงาน
จากทไดกลาวมาแลวจงขอแนะนำกบผอานหรอผทจะทำงานเกยวของกบการอานตวอกษรจากภาพใหลอง
ศกษาและใชงานเครองมอนเพราะจะชวยใหงานมประสทธภาพมากยงขน อกทงหากจดประสงคในการ
ทำงานไมไดอยทการสรางวธการอานตวอกษรแตเปนการนำไปใชแลวละก เครองมอนจะชวยใหผพฒนา
สามารถทจะใชเวลาพฒนาตามจดประสงคไดอยางชดเจน ไมตองเสยเวลากบการพฒนาเครองมอการอาน
ตวอกษรจากภาพ
12
บรรณานกรม
[1] Chaoji Li, 2011, “Page Scanner”, [แอปพลเคชน], เขาถงได: http://itunes.apple.com/th/app/page-
scanner/id368331275?mt=8
[2] Vlad Seryakov , 2010, “vTranslator”, [แอปพลเคชน], เขาถงได: http://itunes.apple.com/us/app/
vtranslator/id351260186?mt=8
13