การพฒั นาหุ่นยนต์เกบ็ ผลมะเขือเทศราชินีแบบอตั โนมัตดิ ้วยวธิ ีการประมวลผล
ภาพ
The Development of An Autonomous Cherry Tomato Harvesting Robot
by Image Processing
ธีรวฒั น์ สัตตะโส
วภิ าพร บุญหล้า
วรี ศักด์ิ วริ ิยนามชัย
ระดบั ปริญญาวศิ วกรรมศาสตรบณั ฑติ
สาขาวชิ าวศิ วกรรมไฟฟ้า
คณะเทคโนโลยี
มหาวทิ ยาลยั ราชภัฏอดุ รธานี
ปี การศึกษา 2564
การพฒั นาหุ่นยนต์เกบ็ ผลมะเขือเทศราชินีแบบอตั โนมัตดิ ้วยวธิ ีการประมวลผล
ภาพ
The Development of An Autonomous Cherry Tomato Harvesting Robot
by Image Processing
ธีรวฒั น์ สัตตะโส
วภิ าพร บุญหล้า
วรี ศักด์ิ วริ ิยนามชัย
ระดบั ปริญญาวศิ วกรรมศาสตรบณั ฑิต
สาขาวชิ าวศิ วกรรมไฟฟ้า
คณะเทคโนโลยี
มหาวทิ ยาลยั ราชภฏั อดุ รธานี
ปี การศึกษา 2564
การพฒั นาหุ่นยนตเ์ ก็บผลมะเขือเทศราชินีแบบอตั โนมตั ิดว้ ยวธิ ีการประมวลผลภาพ
The Development of An Autonomous Cherry Tomato Harvesting Robot by Image Processing
ธีรวฒั น์ สัตตะโส
วิภาพร บุญหลา้
วรี ศกั ด์ิ วริ ิยนามชยั
ระดบั ปริญญาวิทยาศาสตรบณั ฑิต
สาขาวชิ าวศิ วกรรมไฟฟ้า
คณะเทคโนโลยี
มหาวิทยาลยั ราชภฏั อดุ รธานี
ปี การศึกษา 2564
ไดผ้ า่ นการพจิ ารณาจาก
ลงชื่อ........................................หวั หนา้ สาขาวชิ า/ ลงชื่อ........................................อาจารยท์ ี่ปรึกษา
อาจารยป์ ระจาวชิ า (ผชู้ ่วยศาสตราจารย์ ดร.ภเู บศร์ พพิ ิธหิรัญการ)
(ดร.ยทุ ธศกั ด์ิ ทอดทอง)
ลงช่ือ........................................กรรมการ ลงช่ือ........................................กรรมการ
(ผชู้ ่วยศาสตราจารยส์ มชาย สิริพฒั นากลุ ) (รองศาสตราจารย์ ดร.อลงกรณ์ พรมที)
ลงช่ือ........................................กรรมการ ลงชื่อ........................................กรรมการ
(ดร.อภยั ภกั ด์ิ ประทมุ ทิพย)์ (ผชู้ ่วยศาสตราจารยจ์ ุไรรัตน์จินดา อรรคนิตย)์
ลงช่ือ........................................กรรมการ ลงชื่อ........................................กรรมการ
(ดร.บวั วรณ์ ไชยธงรัตน)์ (อาจารยว์ ชั รวิชญ์ ดาวสวา่ ง)
ก
ช่ือเรื่อง การพฒั นาหุ่นยนตเ์ กบ็ ผลมะเขือเทศราชินีแบบอตั โนมตั ิดว้ ยวธิ ีการประมวล
ผ้วู ิจัย ผลภาพ
ปริญญาตรี ธีรวฒั น์ สตั ตะโส รหสั นกั ศึกษา 60041303104
อาจารย์ท่ปี รึกษา
มหาวทิ ยาลยั วภิ าพร บญุ หลา้ รหสั นกั ศึกษา 60041303106
วรี ศกั ด์ิ วิริยนามชยั รหสั นกั ศึกษา 60041303111
วิศวกรรมศาสตรบณั ฑิต สาขาวิชาวศิ วกรรมไฟฟ้า
ผชู้ ่วยศาสตราจารย์ ดร. ภเู บศร์ พิพธิ หิรัญการ
มหาวิทยาลยั ราชภฏั อุดรธานี ปี การศึกษา 2564
บทคดั ย่อ
การพฒั นาหุ่นยนต์เก็บผลมะเขือเทศราชินีแบบอตั โนมตั ิด้วยวิธีการประมวลผลภาพ มี
วตั ถุประสงคเ์ พื่อศึกษาออกแบบและสร้างหุ่นยนตเ์ กบ็ ผลมะเขือเทศราชินีแบบอตั โนมตั ิดว้ ยวิธีการ
ประมวลผลภาพ และเพ่ือหาประสิทธิภาพของหุ่นยนต์เก็บผลมะเขือเทศราชินีแบบอตั โนมัติด้วย
วิธีการประมวลผลภาพ หุ่นยนตเ์ ก็บผลมะเขือเทศราชินีแบบอตั โนมตั ิดว้ ยวิธีการประมวลผลภาพมี
ส่วนประกอบหลัก คือ โปรแกรมส่ังงานหุ่นยนต์ SCARA, ตวั หุ่นยนต์ SCARA และวงจรการ
ทางานของหุ่นยนต์ SCARA ซ่ึงการทดลองแบ่งออกเป็ น 7 ตอน ได้แก่ (1) ผลการทดลองการ
ตรวจจบั สี (2) ผลการพฒั นาโปรแกรมควบคุมการทางานของหุ่นยนต์เก็บผลมะเขือเทศราชินีแบบ
อัตโนมัติด้วยวิธีการประมวลผลภาพ (3) ผลการทดลองการตรวจจับมะเขือเทศด้วยวิธีการ
ประมวลผลภาพ (4) ผลการทดลองการตรวจจบั มะเขือจากไฟล์วีดิโอ (5) ผลทดลองการเคล่ือนท่ี
ของหุ่นยนต์ SCARA (6) ผลการทดลองเก็บผลมะเขือเทศจาลองบนฉากจาลอง และ (7) ผลการ
ทดลองการเก็บผลมะเขอื เทศบนตน้ จริง
จากการทดลองพบว่า (1) โปรแกรมสามารถตรวจจบั สีแดง สีส้ม เส้นขอบวงกลม และ
จดั การสีท่ีไม่ตอ้ งการออกได้อย่างถูกตอ้ ง (2) การทางานของโปรแกรม Visual Basic 2010 ท้งั 8
ส่วน สามารถสั่งงานควบคุมการทางานของหุ่นยนต์และอุปกรณ์ต่าง ๆ ไดอ้ ยา่ งถูกตอ้ งทุกคร้ัง (3)
ค่าท่ีเหมาะสมในการตรวจจับมะเขือเทศจากภาพนิ่ง ได้แก่ Canny Min = 9 Max = 109, Radius
Circle Min = 40, Max = 50 และ dp = 3 (4) การปรับค่า Canny, Radius Circle และ dp ในการ
ตรวจจบั มะเขือเทศจากไฟล์วีดีโอมีความแตกต่างจากภาพนิ่ง (5) หุ่นยนต์สามารถเคล่ือนท่ีตาม
แนวแกน y (x, ±y, z) ไดถ้ ูกตอ้ ง โดยมีค่าความผิดพลาดมากที่สุดคือ y = 5 %, q1 = 3.73 % และ
ข
q2 = 2.15 % (6) หุ่นยนตส์ ามารถเก็บผลมะเขอื เทศบนฉากจาลองไดถ้ กู ตอ้ งท้งั หมด และ (7) หุ่นยนต์
สามารถเกบ็ ผลมะเขอื เทศบนตน้ จริง ที่ไดอ้ ยา่ งถูกตอ้ งและมีประสิทธิภาพ
คาสาคัญ: หุ่นยนต์ SCARA, หุ่นยนต์อตั โนมตั ิ, การประมวลผลภาพ, มะเขือเทศราชินี, การเก็บ
มะเขือเทศ
ค
TITLE The Development of An Autonomous Cherry Tomato Harvesting Robot by
AUTHORS Image Processing
DEGREE Teerawat Sattaso Student's ID number 60041303104
ADVISOR
UNIVERSITY Wipaporn Boonla Student's ID number 60041303106
Wirasak Wiriyanamchai Student's ID number 60041303111
Bachelor of Engineering Program in Electrical Engineering
Asst. Prof. Dr.Phubet Phiphithirankarn
Udon Thani Rajabhat University. DATE 2021
ABSTRACT
The Development of An Autonomous Cherry Tomato Harvesting Robot by Image
Processing. The objective of this research was to build an autonomous Cherry Tomato harvesting
robot by image processing and to find the efficiency of Cherry Tomato automatic harvesting robot
by image processing. Cherry Tomato automatic harvesting robot by image processing the have
main components are the SCARA robot command program, the body SCARA robot and circuit
working the SCARA robot. Which the experiment was divided into 7 parts. (1) Color detection
experiment results. (2) The result of the development of a program to control the operation of an
autonomous cherry tomato harvesting robot by image processing. (3) Tomato detection experiment
results by image processing method. (4) Tomato detection test results from video files. (5) The
results of the movement test of the SCARA robot. (6) Experimental results of collection simulated
tomato fruit on a simulated scene. And (7) The results of the experiment on collection tomatoes on
real tomatoes tree.
From the experiment, it was found that (1) the program was able to detect red, orange,
circular borders and manage the unwanted color correctly. (2) The working of Visual Basic 2010
in all 8 parts Able to command and control the operation of robots and devices correctly every time.
(3) Optimal values for detecting tomatoes from still images are Canny Min = 9 Max = 109, Radius
Circle Min = 40, Max = 50 and dp = 3. (4) Canny, Radius Circle and dp adjustments to detect
tomatoes from video files differ from still images. (5) The robot can move along the y (x, ±y, z)
ง
axis correctly by the maximum error value y = 5 %, q1 = 3.73 % and q2 = 2.15 %. (6) The robot
can accurately collect up all the tomatoes on the simulation scene. (7) Robots can collect tomatoes
on real tomatoes tree correctly and efficiently.
Keyword: SCARA Robot, Autonomous Robots, Image Processing, Cherry Tomato, Tomato
Harvesting.
จ
กติ ติกรรมประกาศ
โครงงานวิจยั เร่ือง การพฒั นาหุ่นยนต์เก็บผลมะเขือเทศราชินีแบบอตั โนมตั ิด้วยวิธีการ
ประมวลภาพ ได้รับความกรุณาและความช่วยเหลือจาก ผศ.ดร.ภูเบศร์ พิพิธหิรัญการ อาจารยท์ ่ี
ปรึกษาโครงงานวจิ ยั ที่ใหค้ าปรึกษาและตรวจสอบแกไ้ ขขอ้ บกพร่องต่าง ๆ เกี่ยวกบั รูปแบบเอกสาร
การศึกษาคน้ ควา้ ขอ้ มูลท่ีเก่ียวขอ้ งจนงานวจิ ยั เสร็จสมบรู ณ์ ผวู้ จิ ยั ขอกราบพระคณุ เป็นอยา่ งสูง
ขอขอบพระคุณคณาจารย์สาขาวิชาวิศวกรรมไฟฟ้า ขอขอบคุณเจ้าหน้าที่สาขาวิชา
วิศวกรรมไฟฟ้า และขอขอบคุณ บิดา-มารดา ท่ีให้การอบรมเล้ียงดูส่งเสียค่าใช้จ่ายในการศึกษา
รวมถึงญาติพ่ีน้องทุก ๆ ท่านท่ีค่อยให้กาลงั ใจ และเป็ นห่วงเป็ นใย และสุดทา้ ยขอขอบคุณคณะ
ผูจ้ ดั ทาโครงงานวิจยั ทุกท่านที่ช่วยกนั จดั ทาโครงงานวิจยั ในคร้ังน้ีให้ประสบผลสาเร็จ และลุล่วง
ผา่ นไปดว้ ยดีตลอดมา
ธีรวฒั น์ สตั ตะโส
วิภาพร บญุ หลา้
วีรศกั ด์ิ วิริยนามชยั
สารบญั ฉ
เรื่อง หน้า
บทคดั ยอ่ ก
ABSTRACT ค
กิตติกรรมประกาศ จ
สารบญั ฉ
สารบญั รูป ฎ
สารบญั ตาราง ถ
บทท่ี 1 บทนา 1
1.1 ท่ีมาและความสาคญั 2
1.2 วตั ถุประสงค์ 2
1.3 ขอบเขตของงาน 2
1.3.1 ขอบเขตเชิงทฤษฎี 2
1.3.2 ขอบเขตเชิงอปุ กรณ์ 3
1.4 ประโยชนท์ ี่คาดว่าจะไดร้ ับ 3
1.4.1 ประโยชนท์ างตรง 3
1.4.1 ประโยชนท์ างออ้ ม
4
บทท่ี 2 หลกั การ ทฤษฎี และงานวิจัยทเี่ ก่ียวข้อง 4
2.1 แผนผงั การทางาน 5
2.2 หุ่นยนต์ (Robot) 6
2.2.1 โครงสร้างของหุ่นยนต์ 6
2.2.2 ส่วนประกอบของหุ่นยนต์ 9
2.2.3 ชนิดของหุ่นยนต์ 10
2.2.4 การหา DH Parameters
2.2.5 การหาเวกเตอร์การเคล่ือนท่ีของหุ่นยนต์
สารบัญ (ต่อ) ช
เร่ือง หน้า
2.3 การประมวลผลภาพ 13
2.3.1 โครงสร้างและชนิดของไฟลภ์ าพดิจิตอล 14
2.3.2 รูปแบบการเกบ็ ขอ้ มูลของไฟลภ์ าพบนคอมพวิ เตอร์ 15
2.3.3 การปรับปรุงภาพ 17
2.4 OpenCV Library 18
2.4.1 Emgu CV 20
2.4.2 ระบบสี RGB 20
2.4.3 ระบบสี HSV 21
2.4.4 ระบบสี Grayscale 22
2.4.5 Canny Operator 23
2.4.6 Hough Circle Transform 26
2.5 เวบ็ แคม (Webcam) 27
2.5.1 ชนิดของเซ็นเซอร์ 27
2.5.2 การใชง้ าน 27
2.6 มะเขือเทศราชินี 28
2.6.1 ลกั ษณะทางพฤกษศาสตร์ 29
2.7 Visual Basic 2010 31
2.8 Arduino 33
2.9 Arduino IDE 35
2.9.1 แถบเคร่ืองมือเมนูมีแถบรายการของคาสงั่ ต่างๆ 35
2.10 สเตป็ ปิ้ งมอเตอร์ (Stepping Motor) 37
2.11 TB6600 Stepper Motor Driver 39
2.12 Sharp IR Sensor 2Y0A21 40
2.12 งานวจิ ยั ที่เก่ียวขอ้ ง 41
บทที่ 3 วิธีการดาเนนิ งาน 46
3.1 ผงั ดาเนินงาน
สารบัญ (ต่อ) ซ
เร่ือง หน้า
3.2 แผนการดาเนิน 47
3.3 วิธีการดาเนินงาน 48
3.3.1 การจดั ทาเอกสาร 48
3.3.2 การจดั ทาตวั ชิ้นงาน 48
3.4 ตารางงบประมาณ 49
3.5 ออกแบบชิ้นงาน 50
3.5.1 กลอ้ งไกล 54
3.5.2 ส่วนการเคล่ือนท่ีในแนวแกน x 55
3.5.3 ส่วนการเคล่ือนที่ในแนวแกน z 55
3.5.4 ส่วนการเคลื่อนท่ีของแขนท่อนที่ 1 56
3.5.5 ส่วนการเคลื่อนท่ีของแขนทอ่ นท่ี 2 56
3.5.6 กลอ้ งใกล้ (กลอ้ ง 2) 57
3.5.7 เซนเซอร์วดั ระยะทาง 57
3.5.8 มือของหุ่นยนต์ 58
3.6 การพฒั นาโปรแกรม 58
3.6.1 การพฒั นาหนา้ จอสั่งการหุ่นยนต์ SCARA 59
3.6.2 การพฒั นาโปรแกรม Controller 64
3.7 การสร้างหุ่นยนต์ 65
3.7.1 กลอ้ งไกล 68
3.7.2 การเคลื่อนที่ในแนวแกน x 69
3.7.3 การเคล่ือนที่ในแนวแกน z 69
3.7.4 การเคลื่อนที่ของแขนท่อนท่ี 1 70
3.7.5 การเคลื่อนท่ีของแขนท่อนท่ี 2 70
3.7.6 กลอ้ งใกล้ (กลอ้ ง 2) 71
3.7.7 เซนเซอร์วดั ระยะทาง 71
ฌ
สารบัญ (ต่อ) หน้า
72
เรื่อง 72
73
3.7.8 มือของหุ่นยนต์
3.7.9 ตรู้ ะบบควบคุม 74
3.8 วงจรการทางาน
บทที่ 4 ผลการทดลอง 78
4.1 ผลการทดลองการตรวจจบั สี 79
4.2 ผลการพฒั นาโปรแกรมควบคุมการทางานของหุ่นยนต์ 80
เก็บผลมะเขอื เทศราชินีแบบอตั โนมตั ิดว้ ยวธิ ีการประมวลผลภาพ
4.2.1 ผลการทางานของกลอ้ ง 80
4.2.2 ส่วนของการกาหนดคา่ ท่ีเหมาะสมของการประมวลผลภาพ
4.2.3 ส่วนของการควบคุมหุ่นยนตแ์ บบ Manual และเร่ิมตน้ การทางาน 81
ของระบบประมวลภาพ ตาแหน่งของมะเขอื เทศ และคานวณองศา 83
การทางานของหุ่นยนต์ 83
4.2.4 ส่วนของการเช่ือมต่อ COM Port, Baud Rate และ 84
แสดงตาแหน่ง (x, y, z) ของมะเขอื เทศ 85
4.2.5 พกิ ดั ของเมาส์คลิกและกาหนดคา่ x และ x00 85
82 88
4.2.6 การเลือก Mode การทางานของหุ่นยนต์ 91
4.2.7 ส่วนของการทางานและระยะเซนเซอร์ 94
4.2.8 ส่วนแสดงพิกดั ตาแหน่งและคานวณมุมองศาของแขนกล 96
4.3 ผลการทดลองการตรวจจบั มะเขอื เทศดว้ ยวธิ ีการประมวลผลภาพ 101
4.3.1 Canny 102
4.3.2 Radius Circle
4.3.3 Hough Circle Transform
4.4 ผลการทดลองการตรวจจบั มะเขือจากไฟลว์ ีดิโอ (mp4)
4.5 ผลการทดลองการเคลื่อนท่ีของหุ่นยนต์ SCARA
4.6 ผลการทดลองเก็บผลมะเขือเทศจาลองบนฉากจาลอง
4.6.1 การเกบ็ ผลมะเขอื เทศตามแนวแกน y ท่ีแกน z เท่ากบั 0 (0.52, ±y, 0)
4.6.2 การเก็บผลมะเขือเทศตามแนวแกน z ที่ตาแหน่ง (0.52, 0, ±z ) ญ
สารบญั (ต่อ) 106
เร่ือง หน้า
111
4.6.3 การเกบ็ ผลมะเขอื เทศแบบสุ่มตาแหน่ง (0.52, ±y, ±z) 133
บทท่ี 5 สรุปผล อภปิ รายผล และข้อเสนอแนะ 134
136
5.1 สรุปผล
5.2 อภิปรายผล
5.3 ขอ้ เสนอแนะ
บรรณานุกรม
ภาคผนวก
ประวัตผิ ้จู ดั ทา
ฎ
สารบัญรูป
รูปท่ี หน้า
2.1 แสดงแผนผงั การทางาน 4
2.2 The Cartesian Robot 6
2.3 The Cylindrical Robot 7
2.4 The Spherical Robot 7
2.5 The Articulate Robot 8
2.6 The SCARA Robot 9
2.7 The Parallel Robot 9
2.8 รายละเอียดของตาแหน่งตวั แปรต่าง ๆ ของ DH Parameter 10
2.9 แสดงตวั อยา่ งแบบจาลองของหุ่นยนต์ 2 แขน 11
2.10 ภาพ Binary Image 14
2.11 ภาพ Grayscale 14
2.12 ภาพ True color 15
2.13 โลโก้ OpenCV Library 18
2.14 โครงสร้างของ OpenCV Library 19
2.15 โลโก้ Emgu CV 20
2.16 วงจรสีของแสงแบบแม่สีหลกั และแม่สีรอง 21
2.17 ระบบสี HSV 21
2.18 Range สีขาว – ดา 23
2.19 การแปลงรูภาพแบบ Canny 23
2.20 รูปแบบการแปลงจากภาพปกติเป็น Gaussian Filter 24
2.21 รูปแบบของสมการท่ีใชห้ า Edge strength และ Edge orientation จากภาพ Gaussian Filter 24
2.22 เสน้ แบง่ องศาใน Edge orientation 25
2.23 การเปรียบเทียบตาแหน่งใน Edge orientation 25
2.24 Flow Chart แสดงการแปลงจากภาพปกติจนถึง Hysteresis 26
2.25 กลอ้ งเวบ็ แคม 27
2.26 ตน้ มะเขือเทศราชินี ฏ
สารบัญรูป (ต่อ) 28
รูปท่ี หน้า
31
2.27 Icon Visual Basic 2010 33
2.28 หนา้ จอ Visual Basic 2010 33
2.29 บอร์ด Arduino Mega 2560 R3 34
2.30 ส่วนประกอบของ Arduino Mega 2560 35
37
2.31 หนา้ จอ Arduino IDE 38
38
2.32 ภาพโครงสร้าง Stepping Motor 39
39
2.33 แผงผงั การทางานของ Stepping Motor 40
40
2.34 การตอ่ Stepping Motor 46
51
2.35 TB6600 Stepper Motor Driver 51
52
2.36 การต่อ TB6600 Stepper Motor Driver 52
53
2.37 Sharp IR Sensor 2Y0A21 53
54
2.38 การต่อ Sharp IR Sensor 2Y0A21 54
55
3.1 แผนผงั วธิ ีดาเนินการ 55
3.2 หุ่นยนต์ SCARA แบบเตม็ ตวั 55
3.3 ส่วนของตวั แขนของหุ่นยนต์ SCARA 56
3.4 ส่วนดา้ นหนา้ ของตวั แขนของหุ่นยนต์ SCARA
3.5 ส่วนดา้ นหลงั ของตวั แขนของหุ่นยนต์ SCARA
3.6 ส่วนดา้ นซา้ ยของตวั แขนของหุ่นยนต์ SCARA
3.7 ส่วนดา้ นขวาของตวั แขนของหุ่นยนต์ SCARA
3.8 ส่วนดา้ นบนของตวั แขนของหุ่นยนต์ SCARA
3.9 ส่วนดา้ นลา่ งของตวั แขนของหุ่นยนต์ SCARA
3.10 กลอ้ งจบั ภาพระยะไกล
3.11 การเคลื่อนที่ในแนวแกน x
3.12 การเคล่ือนท่ีในแนวแกน z
3.13 การเคล่ือนที่ของแขนทอ่ นท่ี 1
ฐ
สารบัญรูป (ต่อ)
รูปท่ี หน้า
3.14 การเคล่ือนที่ของแขนท่อนท่ี 2 56
3.15 กลอ้ งจบั ภาพระยะใกล้ 57
3.16 เซนเซอร์วดั ระยะ 57
3.17 แสดงส่วนของมือ SCARA Robot 58
3.18 ผงั การทางานของโปรแกรม 58
3.19 ผงั การทางานของ Visual Basic 2010 59
3.20 ออกแบบหนา้ จอการทางานของโปรแกรม 60
3.21 กลอ้ ง 1 (Camera1) และ 2 (Camera2)แบบ Real Timeแสดงภาพนิ่งที่นามาประมวลผลภาพ60
3.22 ส่วนของการกาหนดค่าท่ีเหมาะสมของการประมวลผลภาพ 61
3.23 ส่วนของการควบคมุ หุ่นยนตแ์ บบ Manual 61
3.24 ส่วนของการเชื่อมต่อ COM Port, Baud Rate และแสดงตาแหน่ง (x, y, z) ของมะเขอื เทศ 62
3.25 แสดงพกิ ดั ของเมาส์คลิก กาหนดคา่ x และ x0 62
3.26 การเลือก Mode การทางานของหุ่นยนต์ 63
3.27 ส่วนของการทางานและระยะเซนเซอร์ 63
3.28 ส่วนแสดงพิกดั ตาแหน่งและคานวณมุมองศาของแขนกล 64
3.29 ผงั การทางานของ Arduino 64
3.30 การเกบ็ ลายละเอียดหลงั จากการเช่ือมเหลก็ 65
3.31 โครงสร้างที่เสร็จสมบูรณ์ 65
3.32 การต่อรางอลมู ิเนียมโปรไฟล์ 66
3.33 การตอ่ ฐานยดึ หุ่นยนต์ 66
3.34 การตอ่ ตวั หุ่นยนตก์ บั ฐานยดึ 67
3.35 หุ่นยนต์ SCARA แบบเตม็ ตวั 67
3.36 ส่วนของตวั แขนของหุ่นยนต์ SCARA 68
3.37 กลอ้ งจบั ภาพระยะไกล 68
ฑ
สารบัญรูป (ต่อ)
รูปท่ี หน้า
3.38 ระบบสายพานขบั เคลื่อนดว้ ยสเตป็ มอเตอร์ ตามแนวแกน x 69
3.39 การเคล่ือนที่ในแนวแกน z 69
3.40 การเคลื่อนท่ีของแขนทอ่ นท่ี 1 70
3.41 การเคล่ือนที่ของแขนท่อนที่ 2 70
3.42 กลอ้ งจบั ภาพระยะใกล้ 71
3.43 เซนเซอร์วดั ระยะ 71
3.44 แสดงส่วนของมือ SCARA Robot 72
3.45 ตรู้ ะบบควบคุม 72
3.46 วงจรการทางาน 73
4.1 สีตวั ตวั อยา่ งชุดท่ี 1 75
4.2 สีตวั ตวั อยา่ งชุดที่ 2 75
4.3 สีตวั ตวั อยา่ งชุดท่ี 3 76
4.4 สีตวั ตวั อยา่ งชุดที่ 4 76
4.5 สีตวั ตวั อยา่ งชุดที่ 5 76
4.6 สีตวั ตวั อยา่ งชุดท่ี 6 77
4.7 สีตวั ตวั อยา่ งชุดที่ 7 77
4.8 สีตวั ตวั อยา่ งชุดที่ 8 77
4.9 สีตวั ตวั อยา่ งชุดท่ี 9 78
4.10 สีตวั ตวั อยา่ งชุดที่ 10 78
4.11 หนา้ จอโปรแกรมสั่งการหุ่นยนต์ 79
4.12 การทางานของกลอ้ ง 1 (Camera1) และ 2 (Camera2) แบบ Real Time
และแสดงภาพนิ่งที่นามาประมวลผลภาพ 79
4.13 ส่วนของการกาหนดค่าท่ีเหมาะสมของการประมวลผลภาพ 80
4.14 ส่วนของการควบคุมหุ่นยนตแ์ บบ Manual 81
4.15 ส่วนของการเชื่อมต่อ COM Port, Baud Rate และแสดงตาแหน่ง (x, y, z) ของมะเขือเทศ 82
ฒ
สารบญั รูป (ต่อ)
รูปที่ หน้า
4.16 แสดงพิกดั ของเมาส์คลิก กาหนดค่า x และ x00
82
4.17 การเลือก Mode การทางานของหุ่นยนต์ 83
4.18 ส่วนของการทางานและระยะเซนเซอร์ 84
4.19 ส่วนแสดงพกิ ดั ตาแหน่งและคานวณมุมองศาของแขนกล 84
4.20 การปรับคา่ Canny ที่ Min = 44 และ Max = 110044 85
4.21 การปรับค่า Canny ท่ี Min = 99 และ Max = 110099 86
4.22 การปรับคา่ Canny ที่ Min = 1144 และ Max = 111144 86
4.23 การปรับค่า Canny ท่ี Min = 1199 และ Max = 111199 87
4.24 การปรับคา่ Canny ท่ี Min = 2244 และ Max = 112244 87
4.25 การปรับค่า Radius Circle ที่ Min = 3355, Max = 4455 และ Canny Min = 99, Max = 110099
88
4.26 การปรับคา่ Radius Circle ท่ี Min = 4400, Max = 5500 และ Canny Min = 99, Max = 110099
89
4.27 การปรับคา่ Radius Circle ที่ Min = 4455, Max = 5555 และ Canny Min = 99, Max = 110099
89
4.28 การปรับค่า Radius Circle ท่ี Min = 5500, Max = 6600 และ Canny Min = 99, Max = 110099
90
4.29 การปรับคา่ Radius Circle ที่ Min = 5555, Max = 6655 และ Canny Min = 99, Max = 110099
90
4.30 การปรับคา่ Canny Min = 99 Max = 110099, Radius Circle Min = 4400, Max = 5500 และ
dp = 22 91
4.31 การปรับค่า Canny Min = 99 Max = 110099, Radius Circle Min = 4400, Max = 5500 และ
dp = 33 92
ณ
4.32 การปรับค่า Canny Min = 99 Max = 110099, Radius Circle Min = 4400, Max = 5500 และ
dp = 44 92
4.33 การปรับคา่ Canny Min = 99 Max = 110099, Radius Circle Min = 4400, Max = 5500 และ
dp = 55 93
4.34 การปรับคา่ Canny Min = 99 Max = 110099, Radius Circle Min = 4400, Max = 5500 และ
dp = 66 93
4.35 การปรับคา่ Radius, Canny และ dp ที่เหมาะสม 94
4.36 การปรับคา่ Canny Min = 99 Max = 110099, Radius Circle Min = 4400 Max = 5500 และ
dp = 33 94
4.37 การปรับค่า Canny Min = 99 Max = 110099, Radius Circle Min = 5500 Max = 6600 และ
dp = 33 95
4.38 การปรับคา่ Canny Min = 99 Max = 110099, Radius Circle Min = 6600 Max = 7700 และ
dp = 33 95
4.39 การปรับค่า Canny Min = 2200 Max = 112200, Radius Circle Min = 7700 Max = 8855 และ
dp = 33 96
4.40 ลกั ษณะการเคลื่อนที่ของหุ่นยนต์ SCARA และตวั แปรต่างๆ 96
สารบัญรูป (ต่อ)
รูปท่ี หน้า
4.41 วดั มมุ q11 = 6600 องศา ที่ y = 00.1155 เมตร (00.4400, 00.1155, 00)
98
4.42 วดั มุม q22 = -9944 องศา ที่ y = 00.1155 เมตร (00.4400, 00.1155, 00)
99
4.43 วดั คา่ +y ที่ y = 00.1155 เมตร (00.4400, 00.1155, 00)
99
4.44 วดั มุม q11 = -5599 องศา ที่ y = -00.1155 เมตร (00.4400, -00.1155, 00)
100
ด
4.45 วดั มมุ q22 = 9944 องศา ที่ y = -00.1155 เมตร (00.4400, -00.1155, 00)
101
4.46 วดั ค่า -y ท่ี y = -00.1155 เมตร (00.4400, -00.1155, 00)
101
4.47 ภาพฉากจริงของมะเขือเทศตามแนวแกน y ท่ีแกน z เท่ากบั 00 (00.5522, ± y, 00)
103
4.48 ภาพจากกลอ้ ง 11 ของมะเขอื เทศตามแนวแกน y ที่แกน z เท่ากบั 00 (00.5522, ± y, 00)
104
4.49 ภาพจากกลอ้ ง 11 ท่ีแสดงเส้นพิกดั (00.5522, ± y, 00) 104
4.50 ตาแหน่งและการประมวลผลภาพของมะเขือเทศบนฉากตามแนวแกน y ที่
แกน z เทา่ กบั 00 (00.5522, ± y, 00) 105
4.51 ภาพมะเขือเทศลูกท่ี 11 จากกลอ้ ง 22 105
4.52 ภาพมุมนอกของแขนกลเคล่ือนที่ไปยงั มะเขอื เทศลูกที่ 11 106
4.53 ภาพฉากจริงของมะเขือเทศตามตาแหน่งตามแนวแกน z (00.5522, 00, ±z )
108
4.54 ภาพจากกลอ้ ง 11 ของมะเขอื เทศตามแนวแกน z ท่ีแกน y เทา่ กบั 00 (00.5522, 00, ±z )
108
4.55 ภาพจากกลอ้ ง 11 ท่ีแสดงเส้นพกิ ดั (00.5522, 00, ±z) 109
4.56 ตาแหน่งและการประมวลผลภาพของมะเขือเทศบนฉากตามแนวแกน y ท่ี
แกน z เทา่ กบั 00 (00.5522, 00, ±z ) 109
4.57 ภาพมะเขือเทศลูกที่ 11 จากกลอ้ ง 22 110
4.58 ภาพมมุ นอกของแขนกลเคล่ือนที่ไปยงั มะเขอื เทศลูกท่ี 11 110
4.59 ภาพฉากจริงของมะเขือเทศตามตาแหน่งแบบสุ่มตาแหน่ง (00.5522, ±y, ±z) 112
4.60 ภาพจากกลอ้ ง 11 ของมะเขอื เทศแบบสุ่มตาแหน่ง (00.5522, ±y, ±z)
112
4.61 ภาพจากกลอ้ ง 11 ท่ีแสดงเสน้ พกิ ดั (00.5522, ±y, ±z) 113
4.62 ตาแหน่งและการประมวลผลภาพของมะเขือเทศแบบสุ่มบนฉาก (00.5522, ±y, ±z)
113
4.63 ภาพมะเขือเทศลูกที่ 11 จากกลอ้ ง 22 114
ต
สารบัญรูป (ต่อ)
รูปที่ หน้า
4.64 ภาพมมุ นอกของแขนกลเคลื่อนที่ไปยงั มะเขอื เทศลกู ท่ี 11 114
4.65 ภาพฉากจริงของมะเขือเทศตามตาแหน่งแบบสุ่มตาแหน่ง (00.5522, ±y, ±z) 115
4.66 ภาพจากกลอ้ ง 11 ของมะเขือเทศแบบสุ่มตาแหน่ง (00.5522, ±y, ±z) 116
4.67 ภาพจากกลอ้ ง 11 ท่ีแสดงเส้นพกิ ดั (00.5522, ±y, ±z) 116
4.68 ตาแหน่งและการประมวลผลภาพของมะเขอื เทศแบบสุ่มบนฉาก (00.5522, ±y, ±z)
117 117
4.69 ภาพมะเขอื เทศลูกที่ 11 จากกลอ้ ง 22 118
4.70 ภาพมุมนอกของแขนกลเคล่ือนที่ไปยงั มะเขอื เทศลูกที่ 11 119
4.71 ภาพฉากจริงของมะเขือเทศตามตาแหน่งแบบสุ่มตาแหน่ง (00.5522, ±y, ±z) 119
4.72 ภาพจากกลอ้ ง 11 ของมะเขอื เทศแบบสุ่มตาแหน่ง (00.5522, ±y, ±z) 120
4.73 ภาพจากกลอ้ ง 11 ท่ีแสดงเส้นพกิ ดั (00.5522, ±y, ±z)
4.74 ตาแหน่งและการประมวลผลภาพของมะเขือเทศแบบสุ่มบนฉาก (00.5522, ±y, ±z) 121
120 121
4.75 ภาพมะเขือเทศลกู ที่ 11 จากกลอ้ ง 22 123
4.76 ภาพมมุ นอกของแขนกลเคลื่อนที่ไปยงั มะเขอื เทศลกู ท่ี 11 123
4.77 ภาพฉากจริงของมะเขือเทศตามตาแหน่งแบบสุ่มตาแหน่ง (00.5555, ±y, ±z) 124
4.78 ภาพจากกลอ้ ง 11 ของมะเขือเทศแบบสุ่มตาแหน่ง (00.5555, ±y, ±z)
4.79 ภาพจากกลอ้ ง 11 ที่แสดงเสน้ พกิ ดั (00.5555, ±y, ±z) 125
4.80 ตาแหน่งและการประมวลผลภาพของมะเขือเทศแบบสุ่มบนฉาก (00.5555, ±y, ±z) 125
124 126
4.81 ภาพมะเขือเทศลูกท่ี 11 จากกลอ้ ง 22 127
4.82 ภาพมุมนอกของแขนกลเคลื่อนท่ีไปยงั มะเขอื เทศลกู ที่ 11
4.83 ภาพฉากจริงของมะเขือเทศตามตาแหน่งแบบสุ่มตาแหน่ง (00.5555, ±y, ±z)
4.84 ภาพจากกลอ้ ง 11 ของมะเขือเทศแบบสุ่มตาแหน่ง (00.5555, ±y, ±z)
ถ
4.85 ภาพจากกลอ้ ง 11 ที่แสดงเสน้ พกิ ดั (00.5555, ±y, ±z) 127
4.86 ตาแหน่งและการประมวลภาพของมะเขือเทศแบบสุ่มบนฉาก (00.5555, ±y, ±z) 128
4.87 ภาพมะเขือเทศลกู ที่ 11 จากกลอ้ ง 22 128
สารบญั รูป (ต่อ)
รูปท่ี หน้า
4.88 ภาพมุมนอกของแขนกลเคล่ือนที่ไปยงั มะเขือเทศลกู ท่ี 11 129
4.89 ภาพฉากจริงของมะเขือเทศตามตาแหน่งแบบสุ่มตาแหน่ง (00.5555, ±y, ±z) 130
4.90 ภาพจากกลอ้ ง 11 ของมะเขือเทศแบบสุ่มตาแหน่ง (00.5555, ±y, ±z) 130
4.91 ภาพจากกลอ้ ง 11 ท่ีแสดงเสน้ พิกดั (00.5555, ±y, ±z) 131
4.92 ภาพจากกลอ้ ง 11 ที่แสดงเส้นพิกดั (00.5555, ±y, ±z) 131
4.93 ภาพมะเขือเทศลกู ที่ 11 จากกลอ้ ง 22 132
4.94 ภาพมุมนอกของแขนกลเคล่ือนที่ไปยงั มะเขือเทศลูกท่ี 11 132
ท
สารบัญตาราง
ตารางที่ หน้า
3.1 แผนการดาเนินงานดา้ นเอกสาร 47
3.2 แผนการปฏิบตั ิงานดา้ นตวั ชิ้นงาน 47
3.3 งบประมาณท่ีใชใ้ นจดั ทาโครงงาน 49
4.1 ตารางบนั ทึกผลการตรวจจบั สีแดง และสีส้ม 1100 ชุดทดสอบ
74
4.2 ค่า Min และ Max เพอื่ ใหเ้ ห็นความแตกตา่ งของเสน้ ขอบ 85
4.3 ค่า Min และ Max เพอ่ื ใหเ้ ห็นความแตกตา่ งของขนาดของรัศมีวงกลม 88
4.4 อตั ราส่วนผกผนั ของความละเอียดของตวั สะสมตอ่ ความละเอียดของภาพ 91
4.5 การเคล่ือนที่ของแขนกลตามคา่ +y ท่ีตาแหน่ง (00.4400, +y, 00)
98
4.6 การเคล่ือนที่ของแขนกลตามคา่ -y ท่ีตาแหน่ง (00.4400, -y, 00)
100
4.7 การเกบ็ ผลมะเขอื เทศตามแนวแกน y ที่ตาแหน่ง (00.5522, ± y, 00) ทดลองคร้ังที่ 11
102
4.8 การเก็บผลมะเขอื เทศตามแนวแกน y ที่ตาแหน่ง (00.5522, ± y, 00) ทดลองคร้ังท่ี 22
102
4.9 การเก็บผลมะเขือเทศตามแนวแกน y ท่ีตาแหน่ง (00.5522, ± y, 00) ทดลองคร้ังที่ 33
103
4.10 การเคล่ือนที่เกบ็ ผลมะเขือเทศตามแนวแกน z ท่ีตาแหน่ง(00.5522, 00, ±z) ทดลองคร้ังท่ี
11 106
4.11 การเคล่ือนที่เก็บผลมะเขอื เทศตามแนวแกน z ที่ตาแหน่ง(00.5522, 00, ±z) ทดลองคร้ังท่ี
22 107
ธ
4.12 การเคลื่อนท่ีเก็บผลมะเขือเทศตามแนวแกน z ท่ีตาแหน่ง(00.5522, 00, ±z) ทดลองคร้ังท่ี
33 107
4.13 การเคลื่อนท่ีเกบ็ ผลมะเขือเทศแบบสุ่มตาแหน่งคร้ังที่ 11 (00.5522, ±y, ±z) 111
4.14 การเคลื่อนที่เกบ็ ผลมะเขอื เทศแบบสุ่มตาแหน่งคร้ังที่ 22 (00.5522, ±y, ±z) 115
4.15 การเคล่ือนที่เก็บผลมะเขอื เทศแบบสุ่มตาแหน่งคร้ังท่ี 33 (00.5522, ±y, ±z) 118
4.16 การเก็บผลมะเขือเทศบนตน้ จริงคร้ังที่ 11 (00.5555, ±y, ±z) 122
4.17 การเกบ็ ผลมะเขือเทศบนตน้ จริงคร้ังท่ี 22 (00.5555, ±y, ±z) 126
4.18 การเกบ็ ผลมะเขอื เทศบนตน้ จริงคร้ังท่ี 33 (00.5555, ±y, ±z) 129
บทท่ี 1
บทนำ
1.1 ท่ีมำและควำมสำคญั
การปลูกพืชในปัจจุบนั เป็นการปลูกท่ีมีความหลากหลายรูปแบบ ไม่วา่ จะเป็นการปลูกพืชใน
โรงเรือนการปลกู พืชโดยใช้เกษตรอินทรีย์ การปลกู พืชแบบไฮโดโปนิกส์ การปลูกพืชในน้า ในการ
ปลูกพืชแต่ละแบบก็จะมีหลกั การปลูกที่ไม่เหมือนกนั มีขอ้ ดี ขอ้ เสียที่แตกต่างกนั ยกตวั อย่างเช่น
การปลูกพืชในโรงเรือนเป็นการปลูกพืชในดิน โดยมีโรงเรือนท่ีตอ้ งใชว้ สั ดุต่าง ๆ เช่น โรงคุมดว้ ย
พลาสติก โรงกระจก ซ่ึงมีขอ้ ดีคือ ช่วยป้องกนั แมลง และสามารถควบคุมอุณหภูมิภายในโรงเรือน
ไดเ้ หมาะแก่การปลูกพืชในพ้ืนท่ีท่ีมีอากาศหนาวเกินไปหรือร้อนเกินไป มีขอ้ เสียตรงที่ตอ้ งใช้
งบประมาณในการสร้างที่เยอะ ส่วนการปลูกพืชแบบไฮโดโปนิกส์เป็นการปลูกพืชโดยไม่ใชด้ ิน มี
ขอ้ ดีคอื ประหยดั เน้ือที่ในการปลูก สามารถปลกู ในบา้ นได้
การนาการประมวลผลภาพมาใชท้ างการเกษตร เป็นการนากระบวนการ Image Processing มา
ใชค้ ดั แยกสี ขนาด ปริมาณของผลผลิตท่ีพร้อมเก็บ และปริมาณของผลผลิตที่ยงั พร้อมเก็บ เพื่อให้
สามารถเก็บผลผลิตไดต้ ามเวลาที่เหมาะสม ซ่ึงจะทาให้ไดผ้ ลผลิตที่มีคุณภาพมากยิ่งข้ึน และลด
ปัญหาการเกบ็ เก่ียวผลผลิตไมท่ นั เวลาแลว้ นามาซ่ึงการสูญเสียของผลผลิต
การเก็บเก่ียวและจัดการผลผลิตเป็ นข้นั ตอนหน่ึงท่ีสาคัญเพราะว่า ถ้ามีการเก็บเก่ียวที่ไม่
เหมาะสมก็จะทาให้เกิดการสูญเสียของผลผลิต ท้งั ในดา้ นปริมาณและคุณภาพ ซ่ึงปัญหาเก่ียวกบั
การสูญเสียของผลผลิตระหว่างการเก็บเก่ียว นบั ว่าเป็นหน่ึงปัญหาท่ีสาคญั เช่น แรงงานมีความลา้
ชา้ ในการเก็บผลผลิตที่เกิดไดจ้ ากประสบการณ์ หรือความสามารถของแรงงานที่ไม่เท่ากนั ทาให้
เกิดความลา้ ชา้ แลว้ ยงั มีผลทาให้เกิดความเสียหายของการเก็บเก่ียว ซ่ึงก่อให้เกิดปัญหาของการ
สิ้นเปลืองแรงงานที่ไม่จาเป็นรวมไปถึงการเก็บเก่ียวของมะเขอื เทศราชินี ท่ีตอ้ งใชค้ วามประณีตใน
การเก็บ ซ่ึงจาเป็นตอ้ งมีประสบการณ์ในการเก็บ เพ่ือไม่ใหเ้ กิดการชา้ ของผลผลิต ลดการสูญเสียท่ี
เกิดข้นึ ระหวา่ งเกบ็ เก่ียว หลงั เก็บเก่ียว และลดการสูญเสียทางดา้ นราคาของผลผลิต
จากการศึกษาปัญหาดงั กลา่ ว คณะผจู้ ดั ทาจึงมีแนวคิดท่ีจะสร้างหุ่นยนตเ์ ก็บผลมะเขือเทศราชินี
ด้วยวิธีการประมวลผลภาพให้มีประสิทธิภาพใกล้เคียงกับการใช้แรงงานคน และเพ่ือให้เป็ น
หุ่นยนตต์ น้ แบบท่ีจะนาไปใชใ้ นการพฒั นาการเกษตรกบั เทคโนโลยสี มยั ใหม่ใหม้ ากข้ึนในอนาคต
2
1.2 วตั ถปุ ระสงค์
1.2.1 เพอ่ื สร้างหุ่นยนตผ์ ลมะเขือเทศราชินีแบบอตั โนมตั ิดว้ ยวธิ ีการประมวลผลภาพ
1.2.2 เพื่อหาประสิทธิภาพของหุ่นยนต์เก็บผลมะเขือเทศราชินีแบบอัตโนมัติด้วยวิธีการ
ประมวลผลภาพ
1.3 ขอบเขตของงำน
1.3.1 ขอบเขตเชิงทฤษฎี
1.3.1.1 โครงสร้างหุ่นยนต์เก็บผลมะเขือเทศ มีลกั ษณะโครงสร้างเป็ นอลูมิเนียมโปร
ไฟล์ เหล็ก อะคริลิค และพลาสติก โดยโครงสร้างหุ่นยนต์มีขนาด (กว้าง × ยาว × สูง) เป็ น
1×1.5×1.5 เมตร ส่วนของตัวหุ่นยนต์ SCARA มีขนาด (กว้าง × ยาว × สูง) เป็ น 15×85×70
เซนติเมตร
1.3.1.2 การขบั เคล่ือนหุ่นยนต์ในแนวแกน x, y และ z ใชส้ เต็ปปิ้ งมอเตอร์ขนาด 1.8A
โดยมีไดร์ฟเวอร์ขบั สเตป็ ปิ้ งมอเตอร์
1.3.1.3 ใชไ้ มโครคอนโทรลเลอร์ Arduino MEGA 2560 เป็นตวั ควบคุมการทางานของ
อุปกรณ์ตา่ ง ๆ
1.3.1.4 ส่ังงานหุ่นยนตด์ ว้ ยโปรแกรม Visual Basic 2010
1.3.1.5 ใชก้ ลอ้ งเวบ็ แคมในการประมวลผลภาพเพ่ือหาพกิ ดั ตาแหน่งของมะเขอื เทศ
1.3.1.6 ใชร้ ะบบกลไกของ SCARA Robot Arm ในการเกบ็ ผลมะเขอื เทศ
1.3.2 ขอบเขตเชิงอุปกรณ์
1.3.2.1 ไมโครคอนโทรลเลอร์ Arduino MEGA 2560
1.3.2.2 Stepper Motor (Nema17) ขนาดแรงบิด 52 N.cm กระแส 1.8A
1.3.2.3 TB6600 Stepper Motor Driver ขบั กระแสไดส้ ูงสุด 5A
1.3.2.4 Servo Motor MG995 หมุน 180 องศา
1.3.2.5 Sharp IR Sensor 2Y0A21 สามารถวดั ระยะทางไดม้ ากสุดที่ 80 เซนติเมตร
1.3.2.6 Camera Webcam ความละเอียด 5 ลา้ นพิกเซล
1.3.2.7 อะลูมิเนียมโปรไฟล์ ขนาด 30×30 มิลลิเมตร
1.3.2.8 อะลมู ิเนียมโปรไฟล์ V-Slot ขนาด 20×20 มิลลิเมตร
1.3.2.9 เหลก็ กลอ่ ง ขนาด 1.5×1.5 นิ้ว
1.3.2.10 เหลก็ กลอ่ ง ขนาด 1×1 นิ้ว
3
1.4 ประโยชน์ท่ีได้รับ
1.4.1 ประโยชน์ทางตรง
1.4.1.1 ไดห้ ุ่นยนตเ์ กบ็ ผลมะเขอื เทศราชินีแบบอตั โนมตั ิดว้ ยวิธีการประมวลผลภาพ
1.4.1.2 ไดห้ ุ่นยนตเ์ ก็บผลมะเขือเทศราชินีแบบอตั โนมตั ิดว้ ยวิธีการประมวลผลภาพ ท่ี
ทางานไดอ้ ยา่ งถูกตอ้ งและมีประสิทธิภาพ
1.4.2 ประโยชนท์ างออ้ ม
1.4.2.1 ประโยชนท์ ่ีเกิดกบั ผวู้ ิจยั
1. ไดเ้ รียนรู้และเขา้ ใจหลกั การทางานของอุปกรณ์ต่าง ๆ
2. เสริมสร้างทกั ษะการออกแบบชิ้นงานใหม้ ีคณุ ภาพและใชง้ านไดจ้ ริง
3. ไดเ้ รียนรู้และเขา้ ใจหลกั การเขียนโปรแกรมควบคมุ การทางานของหุ่นยนต์
4. การเลือกใชอ้ ุปกรณ์ที่เหมาะสมกบั งาน
5. ไดค้ วามรู้เก่ียวกบั การออกแบบวงจร และการประยกุ ตใ์ ชง้ าน
1.4.2.2 ประโยชนท์ ่ีเกิดต่อผอู้ ื่น
1. สามารถนาเทคนิคการประมวลผลภาพไปใชง้ านชนิดอ่ืนได้
2. สามารถเขา้ ใจหลกั การทางาน และสามารถควบคุมหุ่นยนต์ SCARA ได้
3. เขา้ ใจหลกั การทางานของอปุ กรณ์ตา่ ง ๆ มากยงิ่ ข้ึน
4. สามารถนาวงจรไปประยกุ ตใ์ ชก้ บั งานชนิดอื่นได้
1.4.2.3 การพฒั นาตอ่ ยอด
1. สามารถปรับเปล่ียนรูปแบบการทางานของหุ่นยนตใ์ หส้ ามารถเคล่ือนที่แบบ
อิสระ เพ่ือใหเ้ หมาะสมกบั การทางานในพ้นื ท่ีการเกษตรมากยงิ่ ข้นึ
2. สามารถเปลี่ยนรูปแบบการทางานของแขนกล เพือ่ ใหห้ ุ่นยนตท์ างานไดอ้ ย่าง
มีประสิทธิภาพมากยงิ่ ข้นึ
3. เพ่ิมการประมวลผลภาพให้เป็นแบบ Real Time เพื่อใหเ้ กิดความต่อเน่ืองใน
การใชง้ านมากยง่ิ ข้ึน
บทที่ 2
หลกั การ ทฤษฎี และงานวจิ ัยที่เกย่ี วข้อง
การศึกษาโครงงานเร่ือง การพฒั นาหุ่นยนต์เก็บผลมะเขือเทศราชินีแบบอตั โนมตั ิดว้ ยวิธีการ
ประมวลผลภาพ (The Development of An Autonomous Cherry Tomato Harvesting Robot by
Image Processing) ผูจ้ ัดทาได้รวบรวมแนวคิดต่าง ๆ จากเอกสารท่ีเกี่ยวขอ้ ง โดยมีรายละเอียด
ท้งั หมด 13 ส่วน ไดแ้ ก่ (1) แผนผงั การทางาน (2) หุ่นยนต์ (Robot) (3) การประมวลผลภาพ (Image
Processing) (4) OpenCV Library (5) เวบ็ แคม (Webcam) (6) มะเขอื เทศราชินี (7) Visual Basic 2010
(8) Arduino (9) Arduino IDE (10) สเต็ปปิ้ งมอเตอร์ (Stepping Motor) (11) TB6600 Stepper Motor
Driver (12) Sharp IR Sensor 2Y0A21 และ (13) งานวิจยั ท่ีเกี่ยวขอ้ ง ซ่ึงมีรายละเอียดดงั น้ี
2.1 แผนผังการทางาน
รูปที่ 2.1 แสดงแผนผงั การทางาน
2.2 หุ่นยนต์ (Robot)
หุ่นยนต์เป็ นเทคโนโลยีที่มีใช้กันอย่างแพร่หลายในโรงงานอุตสาหกรรมการผลิต เพราะ
ความสามารถท่ีจะทางานไดค้ ลา้ ยกับมนุษยแ์ ละไม่รู้จกั เหนื่อยลา้ ในปัจจุบนั น้ันได้มีการพฒั นา
หุ่นยนตก์ นั อย่างต่อเน่ืองจนสามารถตอบสนองความตอ้ งการของมนุษยพ์ ร้อมกบั แสดงปฏิกิริยา
ตามโปรแกรมที่ป้อนไวเ้ พ่ือให้มนุษยเ์ ขา้ ใจได้ หุ่นยนตห์ รือที่ เรียกกนั ว่า โรบอท (Robot) เริ่มตน้
ในปี ค.ศ.1760ไดม้ ีการนาเอาเคร่ืองจกั รไอน้า เขา้ มาทางานแทนคนงานในโรงงานและผลที่ได้ คือ
เคร่ืองจกั รทางานไดด้ ีกวา่ มนุษยจ์ ากน้นั เร่ืองก็เงียบมาจนถึงปี ค.ศ. 1920 ไดม้ ีนกั เขยี นละคร ชาวเชค
5
โกสโลวาเกีย ช่ือ Karel Capek เขียนบทละครเร่ือง Rossum’s Universal Robots : R.U.R โดยคาว่า
Robot เป็ นคาแผลงมาจากคาว่า Robota ในภาษาเช็คที่แปลวา่ Worker หรือคนงาน ต่อมาในปี ค.ศ.
1942 ไดน้ กั ประพนั ธ์ทางดา้ นวทิ ยาศาสตร์ Isaac Asimov ไดบ้ ญั ญตั ิกฎของหุ่นยนต์ ข้นึ 3 ขอ้ คือ
1. หุ่นยนตห์ า้ มทาร้ายมนุษยห์ รือปลอ่ ยใหม้ นุษยไ์ ดร้ ับอนั ตราย
2. หุ่นยนตต์ อ้ งเชื่อฟังคาสงั่ ของมนุษยเ์ วน้ แต่จะขดั แยง้ กบั กฎขอ้ หน่ึง
3. หุ่นยนตต์ อ้ งป้องกนั ตวั เองโดยไมข่ ดั แยง้ กบั กฎขอ้ หน่ึงและขอ้ สอง
ถดั มาในปี ค.ศ. 1954 ไดม้ ีการสร้างหุ่นยนตต์ วั แรกของโลกโดย George C. Devol วิศวกรชาว
อเมริกาพร้อมกบั จดสิทธิบตั รและจากน้นั กไ็ ดม้ ีการพฒั นาเทคโนโลยหี ุ่นยนตเ์ ร่ือย ๆ จนถึงปัจจุบนั
2.2.1 โครงสร้างของหุ่นยนต์
โครงสร้างของหุ่นยนต์สามารถแบ่งออกเป็ น 2 ส่วนสาคัญ คือส่วนลาตัวและแขน
(Body-and-Arm) และส่วนของขอ้ มือ (Wrist) โดยส่วนมากแลว้ ส่วนลาตวั และแขนจะมีระดับข้นั
ความเสรี 3 ระดบั และในส่วนขอ้ มือจะมีระดบั ข้นั ของความเสรีอยู่ 2-3 ระดบั ท่ีปลายของขอ้ มือจะ
เป็ นวตั ถุซ่ึงมีความสัมพนั ธ์กบั งานท่ีหุ่นยนต์ตอ้ งทาตวั อย่างเช่นวตั ถุอาจจะเป็ นชิ้นงานท่ีตอ้ งการ
โหลดเขา้ เครื่องจกั รหรืออาจจะเป็นเคร่ืองมือท่ีหุ่นยนตต์ อ้ งใชใ้ นกระบวนการผลิตบางอยา่ ง เป็นตน้
ส่วนลาตวั และแขนของหุ่นยนต์ จะใช้ในการจดั ตาแหน่งที่ถูกต้องของวตั ถุและส่วนขอ้ มือของ
หุ่นยนตจ์ ะใชส้ าหรับจดั ทิศทางการวางตวั ที่เหมาะสมให้แก่วตั ถุเพื่อที่จะวางตาแหน่งของวตั ถุให้
เหมาะสมส่วนลาตวั และแขนของหุ่นยนตจ์ ะตอ้ งสามารถเคลื่อนวตั ถไุ ดท้ ิศทางท้งั 3 ดงั ต่อไปน้ี
1. การเคล่ือนท่ีในแนวดิ่ง (การเคล่ือนท่ีในแนวแกน Z)
2. การเคลื่อนท่ีในแนวรัศมี (เขา้ หรือออกหรือการเคลื่อนที่ในแนวแกน Y)
3. การเคล่ือนที่จากซา้ ยไปขวา (การเคล่ือนที่ในแนวแกน X)
การท่ีจะทาให้หุ่นยนต์สามารถเคลื่อนที่ในลกั ษณะขา้ งตน้ ไดม้ ีหลายวิธี ท้งั น้ีข้ึนอยู่กบั
ชนิดของขอ้ ตอ่ ท่ีใชใ้ นการสร้างลาตวั และแขนของหุ่นยนตซ์ ่ึงจะกลา่ วถึงรายละเอียดต่อไป เพอ่ื ที่จะ
ทาใหเ้ กิดการจดั ทิศทางเหมาะสมของวตั ถุ เราสามารถกาหนดระดบั ข้นั ความเสรี 3 ระดบั สาหรับ
ขอ้ มือของหุ่นยนตต์ ามตวั อยา่ งต่อไปน้ีเป็ นหน่ึงรูปแบบในการประกอบขอ้ มือของหุ่นยนต์ เพื่อทา
ใหเ้ กิดเป็น 3 ลาดบั ข้นั ความเสรี (3 Degree of Freedom)
1. Roll ลาดบั ข้นั ความเสรีลกั ษณะน้ีทาได้โดยใช้ขอ้ ต่อแบบ T เพ่ือท่ีจะหมุนวตั ถุรอบ
แกนของแขน
2. Pitch เกี่ยวกบั การหมุนข้ึน-ลงของวตั ถซุ ่ึงทาไดโ้ ดยขอ้ ตอ่ แบบ R (Rotational Joint)
3. Yaw เก่ียวกบั การหมุนซ้าย-ขวาของวตั ถุซ่ึงทาได้โดยใช้ข้อต่อแบบ R (Rotational
Joint)
6
2.2.2 ส่วนประกอบของหุ่นยนต์
1. Actuator เป็นอปุ กรณ์หรือชุดขบั เคล่ือนเพื่อใหแ้ ขนกลหรือหุ่นยนตเ์ คลื่อนไหว ไดแ้ ก่
มอเตอร์กระบอกสูบ เป็นตน้
2. Manipulators เป็นส่วนประกอบเพื่อช่วยเร่ืองของระยะการเคล่ือนท่ีซ่ึงประกอบดว้ ย
แขน (Links) และขอ้ ต่อ (Joints)
3. End Effectors เป็ นส่วนท้ายสุดของแขนกลไวใ้ ช้ในการทางานต่าง ๆ เช่น มือจับ
สิ่งของอปุ กรณ์ใชใ้ นทางเทคนิคประเภทงานกดั , กลึง, เชื่อม เป็นตน้
4. Sensor เป็นอุปกรณ์ที่ใชต้ รวจสอบสถานะตาแหน่งหรือขอ้ มูลที่ตอ้ งการวา่ ได้ หรือยงั
หรือมีค่าเทา่ ไรเทียบไดก้ บั ประสาทสมั ผสั ของมนุษย์ 7
5. Power Supply เป็ นแหล่งจ่ายพลงงั านให้กบั อุปกรณ์ต่าง ๆ ของแขนกลไม่วา่ จะ เป็ น
กระแสไฟฟ้าหรือวาลว์ ที่ใชค้ วบคุมกระบอกสูบ
6. Controller เปรียบเสมือนสมองของมนุษยท์ ี่คอยควบคุมข้นั ตอนต่าง ๆ ในการทางาน
ของระบบแขนกลโดยสั่งการไปยงั ชุดขบั เคลื่อนเพอื่ เป็นไปตามโปรแกรมท่ีต้งั ไว้
7. Program เป็นการกาหนดข้นั ตอนตา่ ง ๆ ของการทางานเพื่อใหไ้ ดง้ านตามท่ีตอ้ งการ
2.2.3 ชนิดของหุ่นยนต์
1. The Cartesian Robot เป็ นหุ่นยนต์ที่ มีการเคลื่อนที่เป็ นแบบเชิงเส้นท้ัง 3 แกน มี
ลกั ษณะการทางานท่ีไม่ซบั ซอ้ นสามารถทาความเขา้ ใจไดง้ ่ายแต่หุ่นยนตช์ นิดน้ีมีขีดจากดั เร่ืองของ
พ้ืนท่ีท่ีสามารถทา งานไดเ้ ฉพาะอาณาเขตการเคลื่อนท่ีเป็ นแบบกล่องสี่เหล่ียม ส่วนมากหุ่นยนต์
ประเภทน้ีจะนาไปใชใ้ นลกั ษณะเคลื่อนยา้ ยของหนกั ซ่ึงหุ่นยนตป์ ระเภทน้ีจะมีลกั ษณะดงั รูปที่ 2.2
รูปท่ี 2.2 The Cartesian Robot
(ที่มา https://www.linearmotiontips.com/what-is-a-cartesian-robot/)
7
2. The Cylindrical Robot เป็นหุ่นยนตท์ ่ีมีลกั ษณะของการทางานแบบทรงกระบอก โดย
การเคล่ือนที่น้นั จะเป็นเชิงเส้น 2 แกน และเคล่ือนท่ีเชิงมุมอีกแกน สามารถนาหุ่นยนตช์ นิดน้ีไปใช้
ในลกั ษณะงานจบั วางไดซ้ ่ึงหุ่นยนตป์ ระเภทน้ีจะมีลกั ษณะดงั รูปท่ี 2.3
รูปท่ี 2.3 The Cylindrical Robot
(ท่ีมา http://www.engineer007.com/index.php?lite=article&qid=507474)
3. The Spherical Robot หุ่นยนตป์ ระเภทน้ีเป็นหุ่นยนตท์ ี่มีลกษั ณะการเคล่ือนท่ีแบบเชิง
เส้น 1 แกน กบั การเคลื่อนที่เชิงมุมอีก 2 แกน หุ่นยนต์ประเภทน้ีจะมีความสามารถในการเข้าถึง
พ้ืนที่ท่ีมีความซับซ้อนไดใ้ นระดบั หน่ึง แต่หุ่นยนต์ชนิดน้ีจะไม่สามารถรับวตั ถุหรือสิ่งของที่มี
น้าหนกั มากได้ ซ่ึงหุ่นยนตป์ ระเภทน้ีจะมีลกั ษณะดงั รูปท่ี 2.4
รูปที่ 2.4 The Spherical Robot
(ท่ีมา http://www.engineer007.com/index.php?lite=article&qid=507474)
8
4. The Articulated Robot หรือ The Revolute Robot เป็นหุ่นยนตท์ ี่มีลกั ษณะการเคล่ือนท่ี
แบบเชิงมุมท้งั 3 แกน และมีพ้ืนท่ีการทางานรอบตวั โดยหุ่นยนตช์ นิดน้ีจะสามารถเขา้ ถึงพ้ืนท่ีท่ียาก
ต่อการเขา้ ถึงไดโ้ ดยทวั่ ไปจะมี 2 แขน กบั อีก 1 ฐาน ซ่ึงหุ่นยนตช์ นิดน้ีสามารถนามาประยกุ ตใ์ ชง้ าน
ไดอ้ ีกมาก เช่น การเพิ่มแขนและขอ้ ต่อเขา้ ไปอีกกจ็ ะสามารถทางานในจุดที่มนุษยไ์ ม่สามารถเขา้ ได้
โดยหุ่นยนตช์ นิดน้ีมีลกั ษณะดงั รูปที่ 2.5
รูปท่ี 2.5 The Articulate Robot
(ที่มา http://www.engineer007.com/index.php?lite=article&qid=507474)
5. The SCARA Robot เป็นหุ่นยนตท์ ี่มีลกั ษณะการเคล่ือนที่แบบเชิงเส้น 1 แกน และการ
เคล่ือนที่แบบเชิงมุมอีก 2 แกน ซ่ึงในส่วนมากจะใช้ในการป้อนชิ้นงานตามรางขนส่ง (Conveyer)
หรือประกอบชิ้นงานท่ี มีขนาดไม่ใหญ่นัก เป็ นหุ่นยนต์ที่มีความโดดเด่นเรื่องความคล่องแคล่ว
รวดเร็วแต่มีขอ้ จากดั สาหรับระยะการปฏิบตั ิการมีขอ้ ต่อขนานกัน 2 จุด เหมาะกับงานประกอบ
ชิ้นส่วนที่ต้องการความรวดเร็วและมีขนาดเล็ก ส่ิงสาคัญสาหรับการใช้งาน SCARA คือ การ
ออกแบบระบบท่ีตอ้ งการความแม่นยาสูงจากการคานวณรูปแบบการทางานสามารถใชง้ านไดด้ ีกบั
อุตสาหกรรมชิ้นส่วนอิเล็กทรอนิกส์ เน่ืองจากการเคลื่อนท่ีในแนวระนาบและข้ึนลงไดร้ วดเร็วจึง
เหมาะกบั งานประกอบชิ้นส่วนทางอิเล็กทรอนิกส์ซ่ึง ตอ้ งการความรวดเร็วและการเคลื่อนที่ก็ไม่
ตอ้ งการการหมุนมากนกั แต่จะไม่เหมาะกบั งานประกอบชิ้นส่วนทางกล (Mechanical part)ซ่ึงส่วน
ใหญ่การประกอบจะอาศยั การหมุน(rotation)ในลกั ษณะมุมต่างๆ นอกจากน้ี SCARA Robot ยงั
เหมาะกบั งานตรวจสอบ (Inspection) งานบรรจุภณั ฑ์ (Packaging) ซ่ึงหุ่นยนต์ชนิดน้ีมีลกั ษณะดงั
รูปท่ี 2.6
9
รูปท่ี 2.6 The SCARA Robot
(ท่ีมา http://www.engineer007.com/index.php?lite=article&qid=507474)
6. The Parallel Robot เป็นหุ่นยนตอ์ ีกแบบหน่ึงที่มีลกั ษณะเป็นระนาบ 2 ระนาบ ควบคุม
โดยขาแต่ละขา ซ่ึงสามารถนาไปประยกุ ตใ์ ชง้ านไดอ้ ีกมาก ดงั รูปที่ 2.7
รูปที่ 2.7 The Parallel Robot
(ที่มา http://www.engineer007.com/index.php?lite=article&qid=507474)
จากตัวอย่างหุ่นยนต์ข้างต้น คณะผู้จัดทาจึงได้เลือกหุ่นยนต์แบบ SCARA Robot
เน่ืองจาก SCARA Robot มีจุดเด่นทางดา้ นความแม่นยา และรวดเร็วทางผูจ้ ดั ทาไดเ้ ห็นจุดเด่นของ
SCARA Robot จึงได้นามาประยุกต์ใช้ในการเก็บผลมะเขือเทศราชินี เพ่ือให้ได้ผล ลัพธ์ท่ีมี
ประสิทธิภาพตามวตั ถปุ ระสงค์
2.2.4 การหา DH Parameters
DH Parameters ยอ่ มาจากคาวา่ Denavit Hartenberg Parameters เป็นการสร้างตวั แปรเพ่ือ
นามาใชใ้ นการหาสมการการเคลื่อนที่ของหุ่นยนตซ์ ่ึงมีตวั แปรท้งั หมด 4 ตวั ไดแ้ ก่
1. Link Length ( ai ) คือ ระยะทางของ Xi ที่ต้งั ฉากระหวา่ งแกน Zi ถึงแกน Zi+1
2. Link Twist (i ) คือ มุมระหวา่ ง Zi-1 และ Zi ที่มองจากหวั ลูกศร Xi-1 เขา้ ไป
10
3. Link Offset ( di ) คือ ระยะทางระหว่างแกน Ai-1ที่ตดั บนแกน Zi กบั แกน Ai ที่ตดั บน
แกน Zi
4. Joint Angel (i ) คือมุมระหว่างแกน Xi-1 กับแกน Xi โดยพิจารณาบนแกน Zi จาก
คาอธิบายตวั แปรท้งั 4 ตวั น้นั สามารถแสดงได้ ดงั รูป 2.8
รูปที่ 2.8 รายละเอียดของตาแหน่งตวั แปรต่าง ๆ ของ DH Parameter
(ที่มา https://www.researchgate.net/figure/Customized-Denavit-Hartenberg-
kinematicparameters parameters_fig2_324593117)
2.2.5 การหาเวกเตอร์การเคล่ือนที่ของหุ่นยนต์
หลังจากที่ได้ค่า DH Parameters แล้วต่อไปทาการหาค่าทรานฟอร์มเมชันเมทริกซ์
(Transformation Matrix: T) ซ่ึงเป็ นเมทริกซ์ขนาด 4x4 ซ่ึงภายในเมทริกซ์น้ีประกอบไปดว้ ยเมท
ริกซ์ การหมนุ และเวกเตอร์การเคลื่อนท่ีโดยการระบคุ ่าตา่ ง ๆ ของ DH Parameters ลงในสมการ
cosi − sini cosi sini sin i ai cosi
cosi cosi − cosi sin i ai sini
Ti = sin i ……………… (2.1)
i −1 0 sin i cos i di
1
0 0 0
โดย Ti คอื ทรานฟอร์มเมชนั เมทริกซ์ (Transformation Matrix)
i −1
i คือ จานวนแขน (Link)
ai คือ Link Length
11
i คอื Link Twist
di คือ Link Offset
i คือ Joint Angel
จากสมการท่ี 2.1 จะไดเ้ มทริกซ์การหมุนและเวกเตอร์การเคลื่อนที่ดงั สมการที่ 2.2 และ 2.3
cosi − sini cosi sini sini ………………. (2.2)
cosi sini − cosi sini
สมการการหมุน = sini
sin i cosi
0
ai cosi ………………. (2.3)
เวกเตอร์การเคลื่อนที่ = ai sini
di
l
ตามลาดบั หากหุ่นยนตน์ ้นั มีจานวนแขน i แขน (Link) จะตอ้ งนาค่าทรานฟอร์มเมชนั เมท
ริกซ์ (T) มาคูณกนั ทางเมทริกซ์ เช่น หุ่นยนตม์ ีแขน 2 แขน ดงั รูป 2.9
รูปท่ี 2.9 แสดงตวั อยา่ งแบบจาลองของหุ่นยนต์ 2 แขน
(ท่ีมา http://thesis.swu.ac.th/swuthesis/Mech_Eng)
จากรูปท่ี 2.9 สามารถหาค่า DH Parameters โดยพิจารณาทีละแขนได้แขน L1 มี DH
Parameters 4 ตวั ดงั น้นั
12
ai มีคา่ L1
i มีคา่ 1
di มีคา่ 0
i มีค่า 0
แขนของ L2 มี DH Parameter 4 ตวั ดงั น้ี
ai มีคา่ L2
i มีค่า 2
di มีคา่ 0
i มีค่า 0
หลงั จากหาค่า DH Parameters เสร็จแลว้ ต่อไปเป็ นการค่าหาทรานฟอร์มเมชนั เมทริกซ์
(Transformation Matrix) ไดด้ งั น้ี
cos1 − sin1 0 L1 cos1
T0i = sin 1 cos1 0 L1 sin1 ………………. (2.4)
0 0 10
0 00 1
cos2 − sin2 0 L2 cos2
T12 = sin 2 cos2 0 L2 sin2 ………………. (2.5)
0 0 10
0 00 1
cos(1 −2 ) − sin(1 −2 ) 0 L2 cos(1 −2 )
T02 = sin(1 −2 ) cos(1 −2 ) 0 L2 sin(1 −2 ) ………………. (2.6)
0 0
10
0 00 1
จากสมการที่ 2.6 จะไดเ้ วกเตอร์การเคล่ือนท่ี (Translation vector) ของหุ่นยนตต์ าม แนว
พกิ ดั x, y และ z ไดด้ งั น้ี
1. แกน x มีเวกเตอร์การเคลื่อนท่ีคือ L1 cos + L2 cos(1 +2)
2. แกน y มีเวกเตอร์การเคล่ือนที่คอื L1 sin + L2 sin(1 +2)
3. แกน z มีเวกเตอร์การเคลื่อนที่คอื 0 (ไม่มีการเคลื่อนท่ีในแนวแกน z)
13
2.3 การประมวลผลภาพ (Image Processing)
การมองเห็นของมนุษยเ์ ป็นสิ่งที่สาคญั และเป็นกลไกการรับภาพที่ซับซอ้ นอยา่ งหน่ึง ซ่ึงจะให้
ขอ้ มูลท่ีมีความจาเป็นสาหรับใชใ้ นงานต่าง ๆ เช่น การจดจาวตั ถุ และสาหรับงานท่ีมีความซบั ซอ้ น
เช่นการวางแผน การตดั สินใจ การคน้ ควา้ ทางวิทยาศาสตร์ การพฒั นาทางดา้ นความคิด รูปภาพมี
บทบาทมากสาหรับองค์กรต่าง ๆ เช่น หนังสือพิมพ์ โทรทัศน์ ภาพยนต์ซ่ึงใช้ท้ังภาพน่ิงและ
ภาพเคล่ือนไหวที่เป็ นส่ือนาเสนอข้อมูลข่าวสารต่าง ๆ สิ่งที่น่าสนใจของขอ้ มูลท่ีเกี่ยวกับการ
มองเห็นหรือขอ้ มูลภาพน้นั กค็ ือกระบวนการประมวลผลภาพ
การประมวลผลภาพ (Image processing) เป็นการประยุกตใ์ ชง้ านการประมวลผลสัญญาณบน
สัญญาณ 2 มิติ เช่น ภาพนิ่ง (ภาพถ่าย) หรือภาพวีดีทศั น์ (วิดีโอ) และยงั รวมถึงสัญญาณ 2 มิติอื่น ๆ
ที่ไม่ใช่ภาพ
แนวความคิดและเทคนิคในการประมวลผลสัญญาณ สาหรับสัญญาณ 1 มิติน้นั สามารถปรับ
มาใชก้ บั ภาพไดไ้ ม่ยาก แต่นอกเหนือจากเทคนิคจากการประมวลผลสัญญาณแลว้ การประมวลผล
ภาพก็มีเทคนิคและแนวความคิดท่ีเฉพาะ เช่น Connectivity และ Rotation invariance ซ่ึงจะมี
ความหมายกบั สญั ญาณ 2 มิติเท่าน้นั แต่อยา่ งไรก็ตามเทคนิคบางอย่างจากการประมวลผลสัญญาณ
ใน 1 มิติ จะค่อนขา้ งซบั ซอ้ นเมื่อนามาใชก้ บั 2 มิติ
ในอดีตการประมวลผลภาพน้ันจะอยูใ่ นรูปของการประมวลผลสัญญาณแอนะล็อก (Analog)
โดยใชอ้ ุปกรณ์ปรับแต่งแสง (Optics) ซ่ึงวิธีเหล่าน้นั ก็ไม่ไดห้ ายสาบสูญ หรือเลิกใชไ้ ป ยงั มีใชเ้ ป็น
ส่วนสาคัญ สาหรับการประยุกต์ใช้งานบางอย่าง เช่น ฮอโลกราฟี (Holography) แต่เน่ืองจาก
อุปกรณ์คอมพิวเตอร์ในปัจจุบนั ราคาถูกลง และเร็วข้ึนมาก การประมวลผลภาพดิจิทลั จึงไดร้ ับ
ความนิยมมากกวา่ เพราะการประมวลผลท่ีทาไดซ้ บั ซอ้ นข้นึ แมน่ ยา และง่ายในการลงมือปฏิบตั ิ
ความพยายามทางด้านการประมวลผลภาพไดเ้ ริ่มข้ึนในปี 1964 ณ ห้องแลป Jet Propulsion
(Pasadena California) ซ่ึงไดน้ ากระบวนการประมวลผลภาพมาใชใ้ นการพิจารณาภาพถ่ายดาวเทียม
ของดวงจนั ทร์ ต่อมาไดม้ ีการต้งั สาขาทางวิทยาศาสตร์สาขาใหม่มีชื่อว่า Digital image processing
หลงั จากน้นั งานทางดา้ นการประมวลผลภาพก็พฒั นาข้ึนเรื่อย ๆ และใชก้ นั อย่างกวา้ งขวางสาหรับ
งานในหลาย ๆ ดา้ น เช่น ทางดา้ นการสื่อสารโทรคมนาคม การสื่อสารทางโทรทศั น์ ทางดา้ นการ
พมิ พ์ ทางดา้ นกราฟิ ก การแพทย์ และการคน้ ควา้ ทางวทิ ยาศาสตร์
การประมวลผลภาพดิจิทลั (Digital image processing) เป็นการกล่าวถึงเทคนิคและอลั กอริทึม
ต่าง ๆ ท่ีใชก้ ารประมวลผลภาพที่อยใู่ นรูปแบบดิจิทลั (Digital format) ซ่ึงสามารถที่จะนาเอาขอ้ มลู
น้ีจดั ผ่านกระบวนการต่าง ๆ ดว้ ยดิจิตอลคอมพิวเตอร์ได้ ในระบบของดิจิตอล อินพุตและเอาต์พุต
ของระบบจะอยใู่ นรูปแบบดิจิตอลเท่าน้นั
14
ภาพในที่น้ี รวมความหมายถึงสัญญาณดิจิทลั ใน 2 มิติอ่ืน ๆ โดยทวั่ ไปคาน้ีเม่ือใชอ้ ยา่ งกวา้ ง ๆ
จะครอบคลุมถึงสญั ญาณวดิ ีโอ (Video) หรือภาพเคลื่อนไหว ซ่ึงจะเป็นชุดของภาพนิ่ง เรียกวา่ เฟรม
(Frame) หลาย ๆ ภาพต่อกนั ไปตามเวลา อาจจะครอบคลุมถึงสัญญาณ 3 มิติอ่ืน ๆ เช่น ภาพ 3 มิติ
ทางการแพทย์ หรือ อาจจะมากกวา่ น้นั เช่น ภาพ 3 มิติ และ หลายชนิด (Multimodal image)
2.3.1 โครงสร้างและชนิดของไฟลภ์ าพดิจิตอล
2.3.1.1 Binary Image เป็นไฟลภ์ าพท่ีแต่ละจุดภาพจะมีสีไดแ้ ค่ 2 สีคือขาวและดา ดงั น้นั
จะใชห้ น่วยความจาเพียงแค่ 1 บิทในแต่ละพิกเซลเท่าน้นั ทาให้ไฟลภ์ าพมีขนาดเลก็ มาก มกั ใชไ้ ฟล์
ภาพชนิดน้ีกบั ภาพของตวั อกั ษร (Text) ภาพในงานเขียนแบบหรือภาพที่ตอ้ งการแสดงใหเ้ ห็นเพียง
โครงสร้างง่าย ๆ ซ่ึงตอ้ งการสีเพยี ง 2 สี คือ ขาวสาหรับขอบภาพ (Edge) และดาสาหรับพ้ืนหลงั
รูปท่ี 2.10 ภาพ Binary Image
(ท่ีมา https:// se.mathworks.com/help/images/binary-images.html)
2.3.1.2 Grayscale เป็นไฟลภ์ าพที่แต่ละจุดภาพจะมีเฉดสีขาวถึงดา โดยปกติเร่ิมต้งั แต่ 0
(ดา) จนถึง 255 (ขาว) ดงั น้นั จะใช้หน่วยความจาเพียงท้งั หมด 8 บิท หรือ 1 ไบต์จะไดภ้ าพท่ีเป็ น
ธรรมชาติมากกวา่ ภาพแบบ Binary
รูปที่ 2.11 ภาพ Grayscale
(ที่มา https:// geeksforgeeks.org/matlab-rgb-image-to-grayscale-image-conversion/)
15
2.3.1.3 True color หรือ Red-Green-Blue (RGB) เป็นไฟลภ์ าพที่แต่ละจุดภาพจะแสดงสี
โดยใชห้ น่วยความจาท้งั หมด 24 บิทหรือ 3 ไบตใ์ นแต่ละจุดภาพ ขอ้ มูลท้งั 3 ไบตจ์ ะมีค่า 0 - 255
แทนคา่ ของแมส่ ีท้งั 3 คอื Red Green Blue ทาใหแ้ สดงสีไดท้ ้งั หมดถึง 255 x 255 x 255 = 16,777,216
สีไฟลภ์ าพชนิดน้ีจะมีขนาดใหญ่ใชห้ น่วยความจามาก
รูปที่ 2.12 ภาพ True color
(ท่ีมา https://giphy.com/gifs/icon-yuVANljkVvr9e)
2.3.1.4 Index เป็นไฟลภ์ าพสีเช่นเดียวกบั ชนิดท่ี 3 แตม่ ีขนาดเลก็ กวา่ มากจากการ
พจิ ารณาความจริงท่ีวา่ ตามปกติแลว้ สีท่ีใชไ้ มจ่ าเป็นตอ้ งมากถึง 16 ลา้ นสี โดยจะเลือกสีที่พบบอ่ ย
ท่ีสุดมาจานวนหน่ึง เช่น 256 สีจากน้นั สร้างตาราง Color map เพื่อแมพ็ ค่าจาก 255 ไปยงั สีน้นั ๆ
2.3.2 รูปแบบการเก็บขอ้ มูลของไฟลภ์ าพบนคอมพิวเตอร์
วตั ถุท่ีมีอย่ตู ามธรรมชาติและท่ีมนุษยส์ ร้างข้ึนมีรูปร่างท่ีแตกต่างกนั ไป ท้งั ที่เป็นรูปทรง
เรขาคณิตและไม่เป็นรูปทรงเรขาคณิต ในศาสตร์ของการประมวลผลภาพน้นั การกาหนดขอบเขต
ของภาพทกุ ภาพใหอ้ ยใู่ นรูปส่ีเหล่ียม (Rectangular image model) เป็นวิธีท่ีนิยมใชก้ นั มากที่สุด
เน่ืองจากทา ให้การอ่านภาพ การจดั เก็บขอ้ มูลภาพในหน่วยความจา และการแสดงภาพ
ออกทางอุปกรณ์ตา่ ง ๆ เป็นไปไดอ้ ยา่ งมีประสิทธิภาพ
การเก็บข้อมูลภาพลงหน่วยความจาของคอมพิวเตอร์สามารถทาได้โดยการจอง
หน่วยความจาของเครื่องไวใ้ นรูปของตวั แปรอาร์เรย์ (Array) โดยค่าในแต่ละช่องของอาร์เรยแ์ สดง
ถึงคุณสมบตั ิของจุดภาพ (Pixel) และตาแหน่งของช่องอาร์เรยเ์ ป็ นตวั กาหนดตาแหน่งของจุดภาพ
สมมุติให้ Image เป็นตวั แปรแบบอาร์เรยข์ นาด M x N (M แถว และ N คอลมั น์) ที่ใชเ้ ก็บภาพขนาด
16
M x N จุด (M จุดในแนวนอน และ N จุดในแนวต้งั ) ค่าสี (หรือความสวา่ ง ในกรณีที่เป็นภาพ Grey
level) ของจุดภาพในแถวท่ี 5 คอลมั น์ที่ 4 จะตรงกบั ค่าของ Image (5, 4) จะเห็นว่าเราใช้ตาแหน่ง
ของจุดภาพท้งั สองแกนเป็นตวั ช้ีคา่ ขอ้ มูลในอาร์เรย์
จากการใชห้ น่วยความจา เพ่ือการเก็บภาพในลกั ษณะที่กล่าวมา เน้ือที่ในการเก็บภาพ
สามารถคานวณไดจ้ าก M x N x g เมื่อ g เป็นจานวนเตม็ ที่แทนจานวนบิตของขอ้ มูลในแตล่ ะจุดภาพ
ตวั อย่างถา้ g มีค่าเท่ากับ 8 บิต เราจะสามารถเก็บความแตกต่างของระดบั สีท่ีเป็ นไปสูงสุด 256
ระดบั ค่า M และ N จะเป็ นตวั บอกถึงความละเอียดของภาพ สาหรับคอมพิวเตอร์ทวั่ ไปในระบบ
VGA (Video graphic array) จะมีขนาด 640x480 800x600 และ1024x768 จุด เป็ นตน้ การกาหนด
ความละเอียดจะข้ึนอยกู่ บั งานท่ีจะใช้ ในงานบางอย่างใชค้ วามละเอียดแค่ 30 x 50 จุด ก็พอแลว้ แต่
ในงานบางชนิด ใชค้ วามละเอียดถึง 1000 x 1000 จุด ก็ยงั ไมพ่ อ
ปกติแลว้ ในการเกบ็ ขอ้ มูลภาพโดยเครื่องมือต่าง ๆ จะเกบ็ ตามมาตรฐานของโทรทศั น์ซ่ึง
มีอตั ราส่วน x : y เท่ากบั 4 : 3 สา หรับเครื่องมือเก็บขอ้ มูลภาพท่ีไม่เป็นไปตามอตั ราส่วน 4 : 3 เมื่อ
นาภาพน้ีไปแสดงในจอภาพมาตรฐานจะทาให้ภาพที่แสดงน้ ันมีขนาดของจุดภาพไม่เป็ นสี เหล่ียม
จตั ุรัสเช่นในบางระบบอาจจะใชค้ วามละเอียดในการแสดงเท่ากบั 640 x 512 ซ่ึงจะทาใหข้ นาดของ
จุดภาพท่ีไดม้ ีขนาดของดา้ นกวา้ งมีความยาวมากกวา่ ดา้ นสูง ซ่ึงลกั ษณะดงั กล่าวน้ีเป็นหวั ขอ้ ที่ตอ้ ง
สนใจสาหรับการเขียนโปรแกรมทางดา้ นกราฟิ กและการจดั การขอ้ มูล
จานวนสีสูงสุดท่ีเป็ นไปได้ในแต่ละจุดภาพข้ึนอยู่กับจานวนบิทท่ีใช้ เมื่อมีการ
กาหนดใหข้ นาดของบิทต่อจุด มากข้นึ จะทา ใหจ้ านวนของสีมากข้นึ ดว้ ย ตวั อยา่ งเช่น
1 Bit = 21 = 4 สี
2 Bit = 22 = 4 สี
4 Bit = 24 = 16 สี
8 Bit = 28 = 256 สี
16 Bit = 216 = 65536 สี
สาหรับการแสดงขอ้ มูลภาพท่ีมีขนาด 1 บิตและ 8 บิตน้นั จะมีการทางานที่ใกลเ้ คียงกนั
เน่ืองจากหน่วยประมวลผลจะไม่สามารถจดั การกบั ขอ้ มูลที่เป็ นบิตเด่ียว ๆ ไดด้ งั น้ันในการแสดง
ขอ้ มลู ออกทางจอภาพตวั โปรเซสเซอร์จะทา การก็อปป้ี ขอ้ มูลท้งั 8 บิต (1 Byte) ส่งใหก้ บั จอภาพซ่ึง
ในกรณีท่ี Pixel มีขนาด 1 บิต เมื่อโปรเซสเซอร์จะทางานกับบิตแรกท่ีตอ้ งการแล้วก็จะทาการ
คดั ลอกขอ้ มูลชุดใหม่ทนั ที่โดยท่ีไม่เกี่ยวกบั ขอ้ มูลอีก 7 บิตที่เหลือ ส่วนในกรณีพิกเซลท่ีมีขนาด 8
บิต โปรเซสเซอร์จะทาการคดั ลอกขอ้ มลู ชุดใหมก่ ็ต่อเมื่อโปรเซสเซอร์ทางานกบั ทกุ บิตแลว้
17
2.3.3 การปรับปรุงภาพ
การปรับปรุงภาพ (Image enhancement) เป็นกระบวนการในการแปลงขอ้ มลู ภาพตวั เลข
เพอื่ ที่จะสร้างภาพท่ีเนน้ รายละเอียดที่ตอ้ งการหรือ ปรับโทนแสงท่ีตอ้ งการของภาพเม่ือเปรียบเทียบ
กบั ขอ้ มลู หรือรายละเอียดอื่น ๆ ของภาพ การปรับปรุงภาพโดยการเนน้ บางส่วนและลดบางส่วน จะ
ช่วยให้ผูใ้ ช้สามารถสกัดส่วนท่ีสาคญั ได้ ถูกต้องและแม่นยา ซ่ึงเทคนิคที่ใชใ้ นการปรับปรุงภาพ
โดยทวั่ ไป ไดแ้ ก่
2.3.3.1 การปรับภาพเชิงรังสี (Radiometric enhancement) เป็ นเทคนิคในการจดั การค่า
ระดบั สีเทาแบบเฉพาะจุด (Point operation) ที่เก่ียวขอ้ งกบั ค่าระดบั สีเทาของแต่ละจุดภาพ โดยจะ
เพิ่มค่าระดับความสว่าง (Brightness value หรือ DN value) ของจุดภาพใดจุดภาพหน่ึงหรือหลาย
จุดภาพ ที่ไม่มีความสมั พนั ธก์ บั คา่ ระดบั ความสวา่ งของจุดภาพรอบ ๆ (Neighboring pixels)
2.3.3.2 การปรับภาพเชิงพ้ืนที่ (Spatial enhancement) เป็ นการเน้นภาพท่ีใช้ ค่าจาก
จุดภาพที่อยู่รอบ ๆ จุดภาพน้นั มาคานวณดว้ ยการปรับภาพเชิงพ้ืนท่ีจะเก่ียวขอ้ งกบั ความถ่ีเชิงพ้ืนท่ี
ซ่ึงหมายถึง ความแตกต่างระหว่างค่าสูงสุดและต่าสุดของกลุ่มจุดภาพท่ีอยตู่ ิดกนั หรืออยู่ใกลเ้ คียง
กนั หรือจานวนการเปล่ียนแปลงคา่ ความสวา่ งตอ่ หน่วยระยะทางในส่วนหน่ึงของภาพ
การปรับภาพเชิงพ้ืนที่มกั จะใช้เทคนิคการกรองภาพ (Filtering) ซ่ึงหมายถึง การแปลง
ขอ้ มูลเพ่ือลดสัญญาณรบกวนหรือปรับลกั ษณะบางอยา่ งของภาพโดยการเนน้ หรือลดความถ่ีขอ้ มูล
เชิงพ้ืนท่ีบางคร้ังเป็ นการปรับภาพเพ่ือการสกดั ลกั ษณะเด่น (Feature extraction) ให้เห็นชดั ข้ึนผล
จากการใชเ้ ทคนิคน้ีช่วยทาใหก้ ารแปลภาพดว้ ยสายตาดีข้ึน และมกั จะเปล่ียนค่าขอ้ มูลด้งั เดิมอย่าง
ถาวร ดงั น้นั การใชเ้ ทคนิคการกรองภาพจะใชใ้ นกรณีท่ีขอ้ มูลด้งั เดิมไม่ใช่สิ่งสาคญั ในการเอาไปใช้
ต่อในการคานวณ
Convolution filtering ซ่ึงเป็ นกระบวนการ การเฉลี่ยค่าของจุดภาพภายในเซทเลก็ หน่ึงๆ
และกระทาตลอดทวั่ ท้งั ภาพ จะใช้หนา้ ต่างกรอง (Kernel) ในลกั ษณะ 2 มิติ โดยเล่ือนหน้าต่างให้
ตารางท่ีอยู่ศูนยก์ ลางวิ่งผ่านทีละจุดภาพ แลว้ แทนค่าจุดภาพน้ัน ๆ ดว้ ยค่าเฉลี่ยหรือกรรมวิธีทาง
คณิตศาสตร์อ่ืน ๆ ของบรรดาจุดภาพขา้ งเคยี งภายในหนา้ ต่างกรอง ซ่ึงมีดว้ ยกนั หลายวิธี
ก) เคร่ืองกรองผ่านความถ่ีต่า (Low-pass filter) เป็นเป็นเทคนิคการกรองภาพดว้ ย
การลดระดบั ความถี่เชิงพ้ืนที่ของขอ้ มูลภาพ (Spatial frequency) ทาให้ภาพที่ไดใ้ หม่มีลกั ษณะเรียบ
(Smooth) หรือพร่ามวั (Blur) มากข้ึน หลกั การของเทคนิคการน้ีจะทาการคานวณระดบั ค่าสีเทาของ
แต่ละจุดภาพดว้ ยการหาค่าเฉล่ีย (Average) ของระดบั ค่าสีเทาเดิมรอบจุดภาพน้นั ดว้ ยจานวน n x m
จุดภาพ ค่า n และ m จะตอ้ งเป็นเลขคี่เสมอ เช่น 3 x 3, 5 x 5 หรือ 7 x 7 เป็นตน้ ขนาด n x m เรียกว่า
Kernel หรือ BOXCAR ในกรณีที่หนา้ ต่างกรองมีขนาดเลก็ ไม่สามารถทาให้ภาพเรียบ อาจเลือกใช้
18
หนา้ ต่างกรองที่มีขนาดใหญ่ข้ึนมา แต่จะเพ่ิมอตั ราเส่ียงต่อการสูญเสียรายละเอียดของขอ้ มูลจริงใน
ภาพข้นึ ดว้ ย
ข) เคร่ืองกรองผ่านความถ่ีสูง (High-pass filter) เป็ นเทคนิคท่ีใช้เน้นขอ้ มูลภาพ
บริเวณที่มีการเปลี่ยนแปลงอยา่ งฉับพลนั เช่น เส้นขอบอ่างเก็บน้าหรือชายฝั่งทะเล วิธีปฏิบตั ิคือจะ
ทาการกรองภาพให้เรียบก่อนโดยทา Low pass filtering (LPF) แลว้ นาค่าระดบั สีเทาท่ีไดใ้ นแต่ละ
จุดภาพของ LPF ไปลบออกจากค่าความเขม้ ของขอ้ มูลภาพเดิม (Original data) จะไดภ้ าพใหม่อีก
ภาพหน่ึงที่แสดงผลต่าง ซ่ึงจะใชภ้ าพที่แสดงผลต่างที่ไดน้ ้ีเป็นส่วนของการเนน้ ภาพ โดยบวกกลบั
เขา้ ไปในภาพเดิม ทาใหไ้ ดภ้ าพท่ีมีการเนน้ ขอบ (Edge enhancement) ที่ชดั เจนข้ึน
2.3.3.3 การปรับภาพเชิงช่วงคล่ืน เป็นการวดั จานวนและขนาดของคลื่นแมเ่ หลก็ ไฟฟ้า ท่ี
สามารถบนั ทึกไดด้ ว้ ยเคร่ืองจบั ภาพ วตั ถุประสงคข์ องเทคนิคการปรับภาพเชิงช่วงคลื่น (Spectral
enhancement) เป็นการใชข้ อ้ มูลในหลาย ๆ ช่วงคลื่น แลว้ แปลงเป็นแบนดใ์ หม่เพื่อจะเนน้ ลกั ษณะที่
เราสนใจ หรืออาจจะลดขนาดของขอ้ มูลหรือความซ้าซากของขอ้ มูล ถา้ การแปลงน้นั เป็ นการจดั
ข้อมูลใหม่ จานวนของแบนด์ท่ีได้ใหม่ก็จะเท่ากับจานวนแบนด์ของภาพเดิม แต่ถ้าเป็ นการ
สังเคราะห์ใหม(่ Synthetic) ก็อาจจะไดแ้ บนดใ์ หม่เพยี งแบนด์เดียว ตวั อยา่ งของการสังเคราะห์ไดแ้ ก่
การใชด้ ชั นีต่าง ๆ (Indices) ในขณะที่การวเิ คราะห์องคป์ ระกอบหลกั และTasseled Cap เป็นการจดั
ขอ้ มูลใหม่ แบนดใ์ หม่ท่ีเกิดข้ึนอาจจะแสดงเป็นภาพเดียว แบบขาว-ดา หรืออาจจะใชร้ ่วมกบั แบนด์
อ่ืนเพ่อื ปรับใหภ้ าพดีข้ึน หรือเพ่ือใชเ้ ป็นขอ้ มูลเพิม่ เติมในการจาแนกภาพ
2.4 OpenCV Library
รูปที่ 2.13 โลโก้ OpenCV Library
(ที่มา http://doridoridoriand.hatenablog.jp/entry/2017/07/22/191322)
19
OpenCV มาจากคาว่า Open Source Computer Vision Library เป็ นไลบรารี่ ที่ถูกพฒั นาโดย
บริษทั Intel เพ่ือใชใ้ นการประมวลภาพ (Image Processing) และงานดา้ นการมองของคอมพิวเตอร์
(Computer Vision) เช่นความสามารถในการทาภาพเบลอ ความสามารถในด้าน เทรสซูลด์
(Threshold) หรือหาความแตกต่างกบั จุดที่เราสนใจหรือต้งั สมมติฐานไวว้ า่ จะเลือกหรือลบ เช่น ใน
ภาพหน่ึงภาพ กาหนดค่าเทรสซูลด์เป็ น 100 (กระบวนการหาค่าเทรสซูลด์มีความสาคญั มีผลต่อ
คุณภาพของภาพ) ถา้ จุดพิกเซลท่ีเราสนใจมีค่าต่ากว่าค่าเทรสซูลด์ คือ 100 ใหเ้ ปลี่ยน จุดพิกเซลน้นั
เป็นสีขาวในทางกลบั กนั ถา้ ค่า มากกวา่ 100 ใหเ้ ปลี่ยนเป็นสีดา
ความสามารถในดา้ นฮิสโตแกรม (Histogram) หรือหาค่าความแตกต่างของสีจากจุดอา้ งอิง
กลางความสามารถคน้ หาขอบภาพ ความสามารถดา้ นการตรวจสอบภาพเคล่ือนไหวหรือขอ้ มูลแบบ
วิดีโอ
OpenCV ถูกพฒั นาข้ึนดว้ ยภาษา C และ C++ รองรับงานลกั ษณะมลั ติ-คอร์ (Multi-Core) เม่ือ
ตอ้ งการใชง้ านตอ้ งเขยี นโปรแกรมเพื่อเรียกใช้ OpenCV จึงไมย่ ดึ ติดกบั ระบบปฏิบตั ิการใด ๆ ไมย่ ดึ
ติดกบั โปรแกรมที่เลือกใช้ ภาษาที่นิยมเขียนโปรแกรมและเรียนใช้ OpenCV Library เช่น C, C++,
Python, MATLAB, Ruby และ Visual Basic โดย OpenCV จดั แบ่งโครงสร้างภายในเป็ นสี่ส่วน
ใหญ่ ๆ ตามรูปท่ี 2.14
CV ML High GUI
Image Processing Statical Classifier GUI, Image
And And And
Vision Algorithum Clustersing Tools Video I/O
CXCORE
Basic stuetures and algoritlams,
XML, support, drawing functions
รูปท่ี 2.14 โครงสร้างของ OpenCV Library
20
CV: ประกอบไปดว้ ย อลั กอริทึมทางดา้ นการประมวลผลภาพและวิเคราะห์รูปภาพ (ขอ้ มูล 2
มิติ) การประมวลผลภาพเคล่ือนไหว การรู้จาฟังกช์ นั ที่สนใจ เช่น การหาขอบหรือมุมภาพ การทา
Histogram
ML: หรือ Machine Learning ประกอบไปดว้ ยฟังก์ชนั ทางสถิติ การแยกคลาส การแบ่งกลุ่ม
ขอ้ มลู เช่น การทา Clustering, Classification ฟังกช์ นั การวิเคราะห์ขอ้ มลู การคานวณทางสถิติ
HIGH GUI: เป็ นฟังก์ชันเน้นทางสื่อสารกับลูกค้า เก่ียวกับระบบ I/O เช่นการโหลดภาพ
บนั ทึกภาพติดต่อกบั กลอ้ งวดิ ีโอ สร้างหนา้ ตา่ ง แสดงภาพ ตรวจสอบเมาส์ แป้นพมิ พ์
CXCORE: เป็ นฟังก์ชันที่อธิบายถึงโครงสร้างข้อมูล (Data Structure) เช่น ขนาดอาเรย์
หน่วยความจา คาส่ังวาดภาพ ประกาศตวั แปร จดั การขอ้ ผิดพลาด การแสดงขอ้ ความ และฟังก์ชนั
ทางคณิตศาสตร์ตา่ ง ๆ (จะเด็ด ทองสองขวญั , 2559)
2.4.1 Emgu CV
Emgu CV เป็ น library ท่ีใชช้ ่วยในการเขียนโปรแกรมเกี่ยวกบั Computer Vision แบบ
Real-Time เหมือน OpenCV แตต่ ่างกนั ตรงที่ภาษาที่ใชใ้ นการพฒั นาโปรแกรม เพราะ Emgu CV จะ
ใชภ้ าษาพวก .NET ในการพฒั นา เช่น C# , VB, VC++และ Python
รูปท่ี 2.15 โลโก้ Emgu CV
(ท่ีมา http://www.krumoocenter.com/lesson-2/)
2.4.2 ระบบสี RGB
ระบบสี RGB เป็นระบบสีของแสงเกิดจากการหกั เหของแสงกลายเป็นสีรุ้งมีดว้ ยกนั 7 สี
ซ่ึงเป็นช่วงแสงท่ีตาของคนสามารถมองเห็นไดแ้ สงสีมว่ งจะมีความถ่ีสูงสุด เรียกวา่ อลั ตราไวโอเลต
และแสงสีแดงจะมีความถ่ีต่าสุด เรียกวา่ อินฟาเรด
แม่สีของแสงมีดว้ ยกนั ท้งั หมด 3 สี คอื สีแดง (R) สีเขยี ว (G) และสีน้าเงิน (B)
21
รูปท่ี 2.16 วงจรสีของแสงแบบแมส่ ีหลกั และแมส่ ีรอง
(ที่มา https://sites.google.com/site/pornpitk19/bth-thi-3-wrrna-si-kab-ngan-silpa)
2.4.3 ระบบสี HSV
ระบบสี HSV (Hue Saturation Value) เป็ นการพิจารณาสีโดยใช้ Hue Saturation และ
Value ซ่ึง Hue คือค่าสีของสีหลกั (แดง เขียวและน้าเงิน)ในทางปฏิบตั ิจะอยู่ระหว่าง 0 และ 255 ซ่ึง
ถา้ Hue มีค่าเท่ากับ 0 จะแทนสีแดงและเม่ือ Hue มีค่าเพิ่มข้ึนเรื่อย ๆ สีก็จะเปล่ียนแปลงไปตาม
สเปกตรัมของสีจนถึง 256 จึงจะกลบั มาเป็นสีแดงอีกคร้ัง ซ่ึงสามารถแทนให้อยใู่ นรูปขององศาได้
ดงั น้ีคือ สีแดง = 0 องศา สีเขียวเท่ากบั 120 องศา สีน้าเงินเท่ากบั 240 องศา Hue สามารถคานวณได้
จากระบบสี RGB ไดจ้ ากสมการ (2.7)
= − ( , , ) ……………. (2.7)
= − ( , , )}
= − ( , , )
รูปที่ 2.17 ระบบสี HSV
(ที่มา https://www.researchgate.net/figure/HSV-Pyramid-Model_fig1_286331343)
22
จากลกั ษณะโมเดลของระบบ Hue พบว่าจะมีค่าอย่างน้อยหน่ึงค่าท่ีจะเท่ากบั 0 แต่ถา้ มี
สองค่าเทา่ กบั 0 แลว้ Hue จะเป็นมมุ ของสี (คา่ สี) มีคา่ เป็นไปตามส่ีที่สามและถา้ ท้งั สามสีมีค่าเท่ากบั
0 แลว้ จะทาให้ไม่มีค่าของ Hue หรือสีที่ไดจ้ ะมีค่าเท่ากบั สีขาวน่ันเอง ตวั อย่างเช่น จอภาพขาว-ดา
ถา้ เกิดมีสีใดสีหน่ึงมีค่าเท่ากับ 0 จะทาให้ค่าสีที่ได้เป็ นไปตามสีท่ีเหลือ การให้น้าหนักในการ
พิจารณาเมื่อสีแดงมีค่าเทา่ กบั 0
= (240× )+(120× ) ……………… (2.8)
+
Saturation คือความบริสุทธ์ิของสีซ่ึงถา้ Saturation มีค่าเท่ากบั 0 แลว้ สีที่ไดจ้ ะไม่มี Hue
ซ่ึงจะเป็ นสีขาวล้วนแต่ถ้า Saturation มีค่าเท่ากับ 255 แสดงว่าจะไม่มีแสงสีขาวผสมอยู่เลย
Saturation สามารถคานวณไดจ้ ากสมการ (2.9)
= ( , , )− ( , , ) ….. (2.9)
( , , )
Value คือความสว่างของสี ซ่ึงสามารถวดั ไดโ้ ดยค่าความเขม้ ของความสวา่ งของแต่ละสี
ท่ีประกอบกนั สามารถคานวณไดจ้ ากสมการ (2.10)
= ( , , ) ……………… (2.10)
2.4.4 ระบบสี Grayscale
ระบบสีแบบ Grayscale จะจดั การแต่ละพิกเซลในแบบ 8 บิต เหมือนเป็ นสวิทท์ เปิ ด -
ปิ ด แสง 8 อนั เพอ่ื สร้างเป็น 1 สีดา, 1 สีขาว, และ 254 ระดบั สีเทา มกั ใชก้ บั ภาพขาว - ดา หรือแปลง
ภาพสีเพ่ือไปใชใ้ นงานพิมพแ์ บบขาว - ดา ซ่ึงทาใหข้ นาดของไฟลล์ ดลง 2 ใน 3 ของ RGB ดงั รูปท่ี
2.18
23
รูปท่ี 2.18 Range สีขาว - ดา
(ที่มา http://www.krumoocenter.com/lesson-2/)
2.4.5 Canny Operator
Canny operator เป็ นหน่ึงในวิธีการหาขอบรูปภาพ โดยประกอบดว้ ยข้นั ตอนหลายข้นั
โดยมีวตั ถุประสงคเ์ พื่อเพิ่มความสามารถในการลดขนาดของขอบภาพลงและทาให้สามารถเลือก
ช่วงความเขม้ ของขอบภาพที่ตอ้ งการได้ โดยกระบวนการจะประกอบไปดว้ ยท้งั หมด 6 ข้นั ตอน
a) รูปตน้ ฉบบั b) Edge strength and Edge orientation c) Canny Operator
รูปที่ 2.19 การแปลงรูปภาพแบบ Canny
(ท่ีมา https://candokamera.wordpress.com/edge-detection/)
2.4.5.1 Gaussian Filtered
โดยมีวตั ถปุ ระสงคเ์ พ่ือลด(กาจดั ) noise ออกไปจากรูปภาพ โดยอาศยั คณุ สมบตั ิ
การกาจดั noise จากภาพตน้ แบบ ดว้ ย Gaussian Filtered matrix เนื่องจากจะทาให้ภาพ smooth ข้ึน
ทาใหไ้ มเ่ กิดขอบภาพที่ไม่ตอ้ งการ.
24
รูปท่ี 2.20 รูปแบบการแปลงจากภาพปกติเป็น Gaussian Filter
(ที่มา https://candokamera.wordpress.com/edge-detection/)
2.4.5.2 Edge strength and Edge orientation
หา Edge strength และ Edge orientation ของรูปท่ีภาพที่ผ่าน Gaussian Filtered
มาแลว้ โดยอาจใชก้ ระบวนการแบบ Prewitt หรือ Sobel ก็ได้
รูปที่ 2.21 รูปแบบของสมการที่ใชห้ า Edge strength และ Edge orientation จากภาพ Gaussian Filter
(ท่ีมา https://candokamera.wordpress.com/edge-detection/)
2.4.5.3 Edge orientation Substituted
เพื่อการนาไป Edge orientation ไปประยุกต์ใช้ในกระบวนการ Non-maximum
Suppression เราจาเป็นตอ้ งเปลี่ยนค่าให้อยใู่ นช่วงท่ีสามารถระบพุ กิ ดั เป็นตาแหน่งของ Pixel รอบ ๆ
ได้ กล่าวคือค่าท่ีเป็ นได้ประกอบด้วย 0, 45, 90, 135 เท่าน้นั ท้งั น้ี เราจะใชว้ ิธีการเปล่ียนค่า Edge
orientation ใหม่จากตามช่วงคา่ ดงั น้ี
0 องศา สาหรับคา่ 0-22.5 & 157.5 – 180 องศา
45 องศา สาหรับคา่ 22.5-67.5 องศา
90 องศา สาหรับคา่ 67.5 – 112.5 องศา
135 องศา สาหรับค่า 112.5 – 157.5 องศา
25
รูปที่ 2.22 เส้นแบ่งองศาใน Edge orientation
(ท่ีมา https://candokamera.wordpress.com/edge-detection/)
2.4.5.4 Non-maximum Suppression
เม่ือเราทาการแปลงค่า Edge orientation ให้เป็ นค่าท่ีสามารถระบุเป็ นตาแหน่ง
pixel โดยรอบไดแ้ ลว้ น้นั ในกระบวนการน้ี เราจะใชค้ า่ Edge orientation เพือ่ เลือกคู่ Pixel โดยรอบ
ท่ีเรียงตวั เป็ นเป็ นช่วงองศาน้ันๆ (positive/negative arrangement pixel ) มาทาการเปรียบเทียบค่า
Edge strength กบั ค่า Edge strength ของ pixel น้ันๆ หากค่าของPixel กลางน้ันมีค่ามากกว่า Pixel
ขา้ งเคียงที่เลือกมา ให้เก็บค่า Pixel น้นั ๆไว้ สาหรับกรณีอ่ืนให้กาจดั ค่าของ pixel น้นั ทิ้ง(ใหเ้ ท่ากบั
0)
รูปท่ี 2.23 การเปรียบเทียบตาแหน่งใน Edge orientation
(ที่มา https://candokamera.wordpress.com/edge-detection/)
2.4.5.5 Hysteresis (Double Threshold)
หลงั จากท่ีเราผา่ นกระบวนการท้งั หมดมาแลว้ น้นั ภาพท่ีไดย้ งั มีความเป็นไปได้
ที่จะยงั หลงเหลือผลกระทบจาก noise ท่ีไมเ่ กี่ยวขอ้ งอยจู่ านวนหน่ึง เพ่อื ตดั ส่ิงรบกวนเหลา่ น้ีออกไป