The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

โครงงานนี้ได้มีการศึกษาการประมวลผลภาพ ( Image Processing) ด้วยไลบรารี่ OpenCV มีการพัฒนาหน้าต่างผู้ใช้งานสำหรับการใช้งาน

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by phatthawat.palmy, 2022-04-28 09:56:52

โครงงานเครื่องนับจำนวนวัตถุด้วยคอมพิวเตอร์วิทัศน์

โครงงานนี้ได้มีการศึกษาการประมวลผลภาพ ( Image Processing) ด้วยไลบรารี่ OpenCV มีการพัฒนาหน้าต่างผู้ใช้งานสำหรับการใช้งาน

Keywords: OpenCV,Raspberry Pi

เครื่องนับจำนวนวัตถดุ ว้ ยคอมพิวเตอรว์ ิทศั น์
OBJECT COUNTING MACHINE USING COMPUTER VISION

พทั ธวชั จันทะเสน
พงษ์พษิ ณุ ไกรโสดา

ปรญิ ญานพิ นธน์ ้ีเปน็ สว่ นหน่งึ ของการศกึ ษาตามหลักสตู รปริญญาวิศวกรรมศาสตรบัณฑติ
สาขาวชิ าวิศกรรมอเิ ล็กทรอนกิ สอ์ ัจฉรยิ ะ

คณะวศิ วกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยรี าชมงคลอีสาน วิทยาเขตขอนแกน่
พ.ศ. 2565

ลขิ สิทธ์ิของคณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยรี าชมงคลอสี าน

เครือ่ งนับจำนวนวัตถุด้วยคอมพวิ เตอร์วทิ ัศน์

พทั ธวัช จันทะเสน
พงษพ์ ิษณุ ไกรโสดา

ปรญิ ญานพิ นธน์ เ้ี ปน็ สว่ นหนึง่ ของการศึกษาตามหลักสูตรปริญญาวิศวกรรมศาสตรบัณฑิต
สาขาวชิ าวิศกรรมอิเล็กทรอนิกส์อจั ฉริยะ

คณะวิศวกรรมศาสตร์ มหาวิทยาลยั เทคโนโลยีราชมงคลอีสาน วทิ ยาเขตขอนแก่น
พ.ศ. 2565

ลิขสทิ ธ์ขิ องคณะวิศวกรรมศาสตร์ มหาวทิ ยาลัยเทคโนโลยรี าชมงคลอสี าน

OBJECT COUNTING MACHINE USING COMPUTER VISION

Phatthawat Chanthasen
Pongpissan Kraisoda

A Report Submitted in Partial Fulfillment of the Requirements for
the Degree of Bachelor of Engineering

Department of Smart Electronics Engineering
Faculty of Engineering

Rajamangala University of Technology Isan, Khon Kaen Campus
2022

© Faculty of Engineering, Rajamangala University of Technology Isan

ใบรบั รองปริญญานพิ นธ์

มหาวิทยาลัยเทคโนโลยรี าชมงคลอีสาน วทิ ยาเขตขอนแกน่

หวั ข้อปรญิ ญานิพนธ์ : เครื่องนับจำนวนวตั ถุด้วยคอมพิวเตอรว์ ทิ ัศน์

จดั ทำโดย : นายพัทธวชั จนั ทะเสน

: นายพงษ์พิษณุ ไกรโสดา

สาขาวชิ า : วิศวกรรมอิเล็กทรอนิกส์อัจฉรยิ ะ

อาจารย์ทีป่ รึกษา : ผศ.ดร.อังคณา เจรญิ มี

: ดร.วทิ ยา ชำนาญไพร

ได้รับอนุมัตใิ ห้เปน็ สว่ นหนึ่งของการศึกษาตามหลักสตู รปรญิ ญาวศิ วกรรมศาสตรบัณฑติ

คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีราชมงคลอีสาน วิทยาเขตขอนแกน่

.................................................คณบดีคณะวิศวกรรมศาสตร์
(ดร.ศุภฤกษ์ ชามงคลประดิษฐ์)
วนั ท.ี่ ......เดือน................พ.ศ........

คณะกรรมการสอบปรญิ ญานิพนธ์

...................................... ประธานกรรมการสอบ
(ผศ.ดร.อังคณา เจริญมี)
...................................... กรรมการ
(ดร.วิทยา ชำนาญไพร)
...................................... กรรมการจากสถานประกอบการ
(นายรฐั นินท์ เลาหพนั ธุ์)



หัวข้อปรญิ ญานิพนธ์ เคร่อื งนบั จำนวนวตั ถดุ ้วยคอมพิวเตอรว์ ทิ ัศน์
จัดทำโดย พทั ธวัช จันทะเสน และพงษ์พษิ ณุ ไกรโสดา
ปีทปี่ ริญญานิพนธส์ ำเรจ็ 2565
สาขาวชิ า วิศวกรรมอเิ ลก็ ทรอนิกส์อจั ฉริยะ
ท่ปี รกึ ษา ผู้ชว่ ยศาสตราจารย์ ดร.องั คณา เจรญิ มี
ดร.วิทยา ชำนาญไพร

บทคดั ย่อ

ปรญิ ญานิพนธ์นม้ี ีจดุ ประสงค์ เพ่อื ศึกษาและสร้างเคร่ืองนับวัตถดุ ้วยคอมพวิ เตอร์วิทัศน์ โดย
ได้มีการนำไลบรารี่ OpenCV ซึ่งเป็นไลบรารี่สำหรับงานคอมพิวเตอร์วิทัศน์โดยเฉพาะ และได้มีการ
ออกแบบหน้าต่างผู้ใช้งานด้วย Qt Designer ทั้งหมดใช้ภาษาไพธอนในการพัฒนารันบนระบบ
ปฏบิ ัติการ Raspberry Pi OS (Debian) บนบอร์ดราสเบอรพ่ี าย

ในการพัฒนาซอฟตแ์ วร์ในการตรวจนบั วัตถใุ ช้หลักการเปล่ียนระบบสีแบบ RGB เป็นระบบสี
แบบ HSV ซง่ึ เปน็ ระบบสีทน่ี ิยมใช้ในการประมวลผลภาพ (Image Processing) และทำการเลือกค่าสี
ค่าต่ำสุดและค่าสูงสุด หลังจากนั้นทำการหาเส้นเคา้ โครง (Contour) ที่แบ่งเขตเชื่อมสีขาวกับดำและ
ทำการระบุพนื้ ทที่ ่ีตอ้ งการตรวจนับ

ผลของโครงงานพบวา่
1. เครื่องนับวัตถุด้วยคอมพิวเตอร์วิทัศน์ สามารถนับวัตถุได้อย่างมีประสิทธิภาพ 100
เปอรเ์ ซ็นตใ์ นความเร็วสายพาน 0.5m/s
2. ซอฟต์แวร์สามารถใช้งานไดอ้ ย่างมปี ระสิทธภิ าพหากใชง้ านเพยี ง 2 จอ



Project Title Object Counting Machine Using Computer Vision
Proposed by Phatthawat Chanthasen, and Pongpissan Kraisoda
Year 2022
Department Smart Electronics Engineering
Advisor Asst. Prof. Dr. Angkana Charoenmee
Dr. Vithaya Chamnanprai

Abstract

This thesis aims to study and construct object counters with computer
vision. It has introduced the OpenCV library, which is a library for computer vision work
in particular. And the user window is designed with Qt Designer. All of them use Python
to develop and run on the Raspberry Pi OS (Debian) operating system on the Raspberry
Pi board.

In the development of object counting software, the RGB color system was
changed to the HSV color system, which is a popular color system used in image
processing, and the minimum and maximum color values were selected. After that,
find the contour that divides the black and white borders and specify the area to be
counted.
The results of the project found that

1 . Computer vision object counter Objects can be counted with 100%
efficiency at a belt speed of 0.5m/s.

2. The software can be used efficiently if only 2 monitors are used.



กติ ตกิ รรมประกาศ

ปริญญานิพนธ์ฉบับนี้ได้รับความช่วยเหลืออย่างดียิ่งจาก ผู้ช่วยศาสตราจารย์
ดร.องั คณา เจริญมี ดร.วิทยา ชำนาญไพร อาจารยท์ ี่ปรึกษาปริญญานิพนธ์ ซ่ึงกรุณาให้คำแนะนำและ
ถ่ายทอดความรู้ ตลอดจนควบคุมการทำโครงงานจนประสบความสำเร็จ ผู้จัดทำโครงงานขอกราบ
ขอบพระคณุ เปน็ อยา่ งสูงไว้ ณ โอกาส นี้

การที่ได้เข้ามาปฏิบัติสหกิจศึกษา ณ บริษัท เคเอสไอ โซลูชัน จำกัด ตั้งแต่วันที่ 21
มิถุนายน 2564 ถึงวันที่ 4 มีนาคม 2565 ได้รับความรู้ด้านการทำงาน การแก้ไขปัญหา และ
ประสบการณ์ที่มีค่ามากมายในการทำงานร่วมกับผู้อื่น ผู้จัดทำขอขอบพระคุณเป็นอย่างสูงที่ได้รับ
ความรว่ มมอื และการสนบั สนนุ จากหลายฝ่าย ดังนี้

1. คุณชาย บรู ณจิตร์ภริ มย์ ตำแหน่ง CMO บริษทั TKK CORPORATION จำกัด
2. คุณฉวีวรรณ จริ วฒุ ินนั ท์ ตำแหน่ง CEO บรษิ ัท KSI SOLUTION จำกัด
3. คณุ รัฐนินท์ เลาหพันธุ์ ตำแหนง่ GM บรษิ ทั KSI SOLUTION จำกัด
4. คุณจริ ยุทธ เจริญไพบลู ย์กจิ ตำแหน่ง PM บริษัท KSI SOLUTION จำกัด
และบคุ คลากรท่านอน่ื ทไ่ี มไ่ ดก้ ลา่ วนามทุกท่านทีใ่ หค้ ำแนะนำชว่ ยเหลือในการจดั ทำโครงงาน
ประโยชน์และคุณค่าอันพึงมีจากปริญญานิพนธ์ฉบับนี้ ผู้จัดทำโครงงานขอมอบเป็น
กตัญญุตาบชู าแด่ บิดามารดา ครูอาจารยต์ ลอดจนผ้มู ีพระคุณทกุ ท่าน

พทั ธวัช จันทะเสน
พงษ์พิษณุ ไกรโสดา



สารบัญ

**** หน้า
บทคดั ยอ่ (ภาษาไทย) ก
บทคดั ยอ่ (ภาษาอังกฤษ) ข
กิตกรรมประกาศ ค
สารบัญตาราง ช
สารบัญรูปภาพ ซ

บทที่ 1
1 บทนำ 1
1.1 สถานประกอบการ 1
1.1.1 ชอื่ และที่ตั้งสถานประกอบการ 2
1.1.2 ลักษณะการประกอบการ 3
1.1.3 รปู แบบการจัดองค์กรและการบรหิ ารงาน 3
1.1.4 ตำแหนง่ และลกั ษณะงานสหกจิ ศึกษา 4
1.2 ความเป็นมาและความสำคัญของปัญหา 4
1.3 วตั ถุประสงค์ 5
1.4 ขอบเขต 5
1.5 คณุ สมบัตขิ องเครอ่ื ง 6
1.6 งบประมาณ 6
1.7 แผนการดำเนนิ งาน 7
1.8 ประโยชนท์ ี่คาดวา่ จะได้รับ 8
2 ทฤษฎแี ละงานวจิ ัยทเี่ ก่ยี วข้อง 8
2.1 ภาษาไพธอน (Python Language) 9
2.1.1 คณุ สมบัตแิ ละความสามารถของภาษาไพธอน (Features and
capability of Python) 10
2.1.2 งานด้านตา่ ง ๆ ที่ไพธอนสนบั สนุนในปจั จบุ นั (Application domains)



สารบญั (ต่อ)

บทท่ี หน้า
2.2 การประมลผลภาพ (Image processing) 11
2.2.1 ทฤษฎสี ี (Color Theory) 11
2.2.2 ชนดิ ของภาพ 14
2.2.3 การแยกสว่ นประกอบภาพ (Image Thresholding) 17
2.2.4 ตวั ดำเนนิ การการเปลยี่ นแปลงลักษณะรปู รา่ งหรือโครงรา่ งของภาพ 21
2.2.5 การกรองภาพ (Image Filtering) 24
2.3 กล่องขอบเขต (Bounding Box) 26
2.4 งานวจิ ัยท่เี กี่ยวข้อง 27
2.4.1 งานวจิ ัยเรอื่ ง HSV Color Space Based Segmentation of Region 27
of Interest in Satellite Images
29
3 วิธีการดำเนนิ งาน 29
3.1 ขัน้ ตอนการดำเนินโครงงาน 30
3.2 ศกึ ษาปัญหาและรวบรวมข้อมลู 30
3.2.1 การศึกษาปญั หา 30
3.2.2 การรวบรวมข้อมลู 31
3.3 กรอบแนวคิดในการออกแบบซอฟต์แวรส์ ำหรับการนับจำนวนวัตถุ 32
3.4 การออกแบบสายพานลำเลยี ง 39
3.5 การออกแบบแผน่ วงจรพิมพ์ 51
3.6 การออกแบบซอฟตแ์ วรส์ ำหรบั ตรวจนบั วัตถุ 52
3.6.1 หน้าต่างผ้ใู ชง้ านหลกั 63
3.6.2 บลอ็ กไดอะแกรมการทำงาน 64
64
4 ผลการดำเนนิ งาน
4.1 ทดลองประสทิ ธิภาพระหวา่ งภาษาไพธอนกับภาษาซพี ลัสพลัสบนบอรด์ 65
Raspberry Pi 68
4.2 ทดลองนบั จำนวนคลปิ กา้ มปู PVC 72
4.2.1 นับจำนวนคลปิ กา้ มปู PVC แบบแยกนับแต่ละสี
4.2.2 นบั จำนวนคลปิ ก้ามปู PVC ท้งั 3 สพี รอ้ มกัน

สารบญั (ต่อ) ฉ

บทท่ี หน้า
5 สรุป อภปิ รายผล และขอ้ เสนอแนะ 73
73
5.1 สรุปผล 73
5.2 ขอ้ เสนอแนะ 74
บรรณานกุ รม 75
ภาคผนวก 76
ภาคผนวก ก Raspberry Pi 4 Model B 80
ภาคผนวก ข I/O Board 82
ภาคผนวก ค กล้องเวบ็ แคม Logitech รนุ่ C505e 85
ภาคผนวก ง ภาพขณะปฏิบัติงาน 87
ประวตั ผิ เู้ ขยี น



สารบัญตาราง

ตารางท่ี หน้า
1.1 งบประมาณทใี่ ช้ในการจัดทำโครงงาน 6
1.2 แผนการดำเนนิ โครงงาน 6
4.1 การทดลอบประสิทธภิ าพระหวา่ งภาษาไพธอนและภาษาซีพลสั พลัส 65
(หน่วยวนิ าที)
4.2 การทดสอบนับจำนวนคลปิ กา้ มปู PVC ทง้ั สามสจี ำนวนสลี ะ 5 ตวั โดยใช้ 68
ความเร็วในการทดสอบ 0.5m/s – 1.5m/s ทดสอบสลี ะ 10 ครง้ั
4.3 การทดสอบนับจำนวนคลปิ ก้ามปู PVC ทั้งสามสี จำนวนสีละ 10 ตัว โดยใช้ 69
ความเรว็ ในการทดสอบ 0.5m/s – 1.5m/s ทดสอบสีละ 10 ครัง้
4.4 การทดสอบนับจำนวนคลิปกา้ มปู PVC ทั้งสามสี จำนวนสีละ 15 ตัว โดยใช้ 70
ความเร็วในการทดสอบ 0.5m/s – 1.5m/s ทดสอบสลี ะ 10 ครั้ง
4.5 การทดสอบนับจำนวนคลปิ กา้ มปู PVC ทงั้ สามสี จำนวนสลี ะ 20 ตวั โดยใช้ 71
ความเรว็ ในการทดสอบ 0.5m/s – 1.5m/s ทดสอบสลี ะ 10 ครั้ง
4.6 ผลการนบั คลิปกา้ มปู PCV ท้ัง 3 สี จำนวนสีละ 5ตวั โดยนบั พร้อมกัน 72

สารบญั รปู ภาพ ซ

รปู ที่ หน้า
1.1 บรษิ ัท เคเอสไอ โซลูชั่น จำกดั 1
1.2 แผนที่ตั้งบรษิ ัท เคเอสไอ โซลูช่นั จำกดั 2
1.3 รปู แบบการจดั องค์กรบรษิ ัท เคเอสไอ โซลชู ัน่ จำกดั 3
2.1 การผสมสแี บบบวกและการผมสีแบบลบ 8
2.2 พ้ืนทีส่ ี 9
2.3 ระบบสี RGB 9
2.4 ระบบสี RYB 10
2.5 ระบบสแี บบ CMYK 10
2.6 ระบบสี HSV และ HSL 11
2.7 พิกเซลของภาพ 12
2.8 รูปภาพแบบไบนาร 12
2.9 รปู ภาพระดบั สีเทา 13
2.10 การแปลงภาพสี RGB เปน็ ภาพระดับสีเทา 13
2.11 รปู ภาพสี RGB 14
2.12 Images Thresholding 14
2.13 Binary Thresholding 15
2.14 Inverse-Binary Thresholding 15
2.15 Truncate Thresholding 16
2.16 Zero Thresholding 16
2.17 Inverse- Zero Thresholding 17
2.18 Adaptive Thresholding 17
2.19 ตวั อย่างภาพ Morphological 18
2.20 Dilation Image 19
2.21 Erosion Image 19
2.22 Opening Image 20
2.23 Closing Image 20
2.24 ผลลพั ธ์การใสต่ ัวกรองแบบค่าเฉลีย่ 21

สารบัญรูปภาพ (ต่อ) ฌ

รปู ท่ี หน้า
2.25 ผลลพั ธก์ ารใสต่ วั กรองเกาส์เซียน 22
2.26 ผลลพั ธก์ ารใส่ตวั กรองแบบคา่ มัธยฐาน 22
2.27 ตวั อยา่ งกล่องขอบเขต (Bounding Box) 23
2.28 การตีกรอบของเครื่องมอื ที่เรียกว่า Bounding Box 24
2.29 HSV and RGB Color Space 25
3.1 แผนการดำเนนิ โครงงาน 28
3.2 กรอบแนวคิดในการพฒั นาซอฟตแ์ วร์ 28
3.3 สายพานลำเลียง 29
3.4 การทำ Extrude เพิ่มความสงู 29
3.5 การจัดวางตำแหน่งขาต้ังระยะหา่ ง 30
3.6 การต้งั Alignment คานบน 30
3.7 ผลลัพธ์ท่ไี ดจ้ ากการออกแบบ 30
3.8 ระยะในการจัดวางคานกลางเพื่อเช่ือมเขา้ หากนั 31
3.9 ผลลพั ธท์ ไ่ี ด้จากการจัดวางคานโปรไฟลต์ รงกลาง 31
3.10 ขนาดของแผ่นอะคิลิคสำหรับรองสายพานลำเลียง 32
3.11 ผลลัพธเ์ มอื่ นำแผน่ อะคิลคิ ไปประกอบกบั โครงโปรไฟล์ 32
3.12 ขนาดของแผ่นเพลตสำหรบั ยึด Roller 33
3.13 ผลลัพธก์ ารนำแผน่ เพลตมาประกบเข้ากับโครง 33
3.14 ขนาดแบบของทีก่ น้ั 34
3.15 ผลลัพธ์การติดตงั้ ท่ีกัน้ 34
3.16 ทจ่ี ับกลอ้ งและทยี่ ึดหลอดไฟแสดงสถานะ 35
3.17 ผลลพั ธก์ ารออกแบบสายพานลำเลียง 35
3.18 ซอฟตแ์ วรอ์ อกแบบวงจรพมิ พ์ Altium Designer 36
3.19 โครงสร้างภายใน Optocoupler 37
3.20 ตัวอยา่ งการต่อใชง้ าน optocoupler 37
3.21 วงจรควบคุม I/O 39
3.22 ข้ันตอนการสรา้ งโปรเจค็ 39

สารบัญรปู ภาพ (ตอ่ ) ญ

รปู ท่ี หน้า
3.23 การต้งั ช่อื ไฟล์และเลอื กทีเ่ กบ็ ไฟล์ 40
3.24 การสร้างไฟล์เอกสาร Schematic สำหรบั ตอ่ วงจร 40
3.25 บนั ทกึ ไฟลห์ นา้ เอกสาร 41
3.26 การนำสญั ลักษณอ์ ปุ กรณ์มาวางบนเอกสาร 41
3.27 การเลอื กและวางสัญลักษณ์อุปกรณว์ งจรควบคุม I/O 42
3.28 วธิ ีการใส่คำบรรยายประกอบ (Annotation) สัญลกั ษณ์อุปกรณ์ 42
3.29 การอปั เดทลำดับรายการสัญลักษณ์อุปกรณ์ 43
3.30 การดำเนินการเปล่ยี นลำดบั คำบรรยายอปุ กรณ์ 43
3.31 ผลลัพธ์การดำเนินการเปลยี่ นลำดบั คำบรรยายอปุ กรณ์ 44
3.32 การสร้างหน้าเอกสารแผน่ วงจรพิมพ 44
3.33 การอัปเดทรายการอปุ กรณ์ไปยังหน้า PCB 45
3.34 หนา้ เอกสารสำหรบั การวาดลายวงจร 45
3.35 ผลลัพธ์การอปั เดทอุปกรณ์จากหน้า Schematic มายัง PCB 46
3.36 การจัดวางตำแหนง่ ของอุปกรณ์ 46
3.37 การสรา้ ง Polygon สำหรบั Ground Plane 47
3.38 หน้าตาซอฟต์แวร์ Qt Designer 48
3.39 ซอฟตแ์ วรพ์ ัฒนาหนา้ ต่างผ้ใู ช้งาน Qt Designer 48
3.40 หน้าต่างผใู้ ช้งานสำหรบั ตรวจนบั วตั ถุ 49
3.41 สร้างหนา้ ต่างหลักเปล่าเพอ่ื เริ่มตน้ การสรา้ ง 50
3.42 ผลลพั ธ์การสรา้ งหนา้ ตา่ ง 51
3.43 การลากวาง Widget ตา่ ง ๆ 51
3.44 การเปลี่ยนช่ือใหส้ อดคลอ้ งกับหนา้ ท่แี ละการต้งั ชอื่ ใหก้ ับ Object 52
3.45 การจัดวางปุ่มควบคุมโดยจดั วางในลักษณะตาราง 52
3.46 การสร้างตัวแสดงผลเปอร์เซ็นการทำงานของเคร่ือง 53
3.47 การจดั ตำแหนง่ ในรปู แบบกริดและการตั้งชื่อใหส้ อดคล้องกับหน้าท 53
3.48 การสร้างจอแสดงผลเวลาปัจจุบัน 54
3.49 การเปล่ียนสีจอแสดงผลเวลาปัจจุบัน 54

สารบัญรูปภาพ (ต่อ) ฎ

รปู ที่ หน้า
3.50 การทำพืน้ ท่เี ลื่อนหรือ Scroll Area สำหรับวาง Widget จำนวนมาก 55
3.51 การทำ Scroll Area สำหรบั Widget อืน่ ๆ 56
3.52 การนำ Widget ตา่ ง ๆ เขา้ ไปซ้อนบน Frame เพ่อื ทำ Scroll Area 56
3.53 การสรา้ งหน้าจอแสดงผลหลักและย่อย 57
3.54 หนา้ ตา่ งผู้ใช้งานหลักที่ได้ทำการออกแบบไว 57
3.55 การสรา้ หน้าต่างมอนิเตอร์บอรด์ I/O 58
3.56 การเลือกต้ังคา่ สสี ำหรับทำเป็นหลอดไฟ 58
3.57 การต้ังคา่ ขนาดให้ Label 59
3.58 การทำให้ Label เป็นรปู วงกลม 59
3.59 การทำหนา้ ตา่ งแสดงผลการทำงานบอร์ด I/O 60
3.60 บล็อกไดอะแกรมการทำงานของซอฟต์แวร์ 60
4.1 สายพานลำเลียงและมอเตอร์เกยี ร์ 62

1

บทท่ี 1
บทนำ

/
/

1.1 สถานประกอบการ

รปู ที่ 1.1 บริษัท เคเอสไอ โซลูชั่น จำกดั

1.1.1 ช่ือและทต่ี ง้ั สถานประกอบการ
บริษัท : บรษิ ัท เคเอสไอ โซลชู ่ัน จำกัด
: KSI Solution Co., Ltd
ท่ีตั้ง : 499/51 หมทู่ ี่ 13 ถนนกิง่ แก้ว ต.ราชาเทวะ อ.บางพลี
จ.สมทุ รปราการ 10540
: 499/51 Moo 13 King Kaeo Road, Racha Thewa,
Bang Phil, Samut Prakan 10540

2

รปู ที่ 1.2 แผนทีต่ งั้ บรษิ ัท เคเอสไอ โซลูช่ัน จำกดั
ทีม่ า : https://ksisolution.com/contact

1.1.2 ลกั ษณะการประกอบการ
บริษัทได้ก่อตั้งขึ้น เมื่อวันที่ 5 กันยายน 2556 โดยเริ่มจากการบริการออกแบบ

ให้คำแนะนำ ผลิต Robot Application และระบบงานด้านวิศวกรรมสำหรับโรงงานอุตสาหกรรมทุก
ประเภท โดยส่วนมากจะเน้นงาน Machine สำหรับโรงงานอุตสาหกรรมในการจัดทำเครื่องจักร
อตั โนมัติ พร้อมตดิ ตงั้ และบำรุงรักษา โดยมพี ารท์ เนอรม์ ากมายไม่ว่าจะเปน็ Mitsubishi, Omron โดย
มบี รษิ ัทแม่ TKK Corporation ในการจดั หางานให้ทางบริษัท KSI Solution

3

1.1.3 รูปแบบการจัดองค์กรและการบรหิ ารงาน

คุณฉววี รรณ จิรวุ ินนั ท์
ตาแหนง่ CEO KSI Solution

คณุ รั นนิ ท์ เลาหพันธ์ุ คุณจริ ยุทธ เจรญิ ไพบูลย์กิจ คณุ เมย์และคุณยงค์
ตาแหนง่ General Manager ตาแหน่ง Project Manager ตาแหน่ง Administrator

Service Robot Engineering Engineering

AMR Robot Delivery Robot Electrical Mechanics

รูปที่ 1.3 รูปแบบการจดั องค์กรบริษัท เคเอสไอ โซลชู ่ัน จำกดั

1.1.4 ตำแหนง่ และลกั ษณะงานสหกิจศึกษา
1) ตำแหนง่ งานสหกจิ ศึกษา: Robot Service Engineer
2) ลักษณะงานสหกิจศึกษา: ในการปฏิบัติงานสหกิจศึกษา บริษัท เคเอสไอ

โซลูชั่น จำกัด ได้รับมอบหมายให้ปฏิบัติงานเกี่ยวกับ AGV/AMR Robot ซึ่งเป็นรถลำเลียงสินค้า
อตั โนมัติโดยใชร้ ะบบ Lidar ในการบอกตำแหน่งทิศทางในการขนส่งสนิ ค้าภายในโรงงานอตุ สาหกรรม
ไดม้ ีการออกแบบวิธกี ารทำงานของการขนส่งตำ่ แหน่งที่ตั้งสินค้า ตำแหนง่ วางสินคา้ และไดม้ โี อกาสได้
ปฏิบัติงานในหลากหลายประเภทงานไม่ว่าจะเป็นการทำ Demo โรบอทแขนกลที่ใช้ระบบ AI
(Artificial Intelligent) หรือที่เรียกว่าปัญญาประดิฐษ์ในการท่ีเข้ามาใช้ในงานอุตสหกรรมในรูปแบบ
งานที่มีการทำซำ้ ๆ โดยใช้ซอฟต์แวร์ท่ีมีชื่อว่า ซีร่าคอร์ (CiRA CORE) เป็นตัวประมวลผลหลักในการ
ส่ังงานไปทโี่ รบอทแขนกล

4

1.2 ความเป็นมาและความสำคัญของปัญหา
ในการตรวจนับวัตถุในสายพานลำเรียงในงานอุตสาหกรรมมีการใช้ตัวตรวจรู้ (Sensor)

ในการตรวจจบั โดยมีตัวควบคุม (Controller) เปน็ ตวั รบั อินพตุ จากตัวตรวจรู้ เม่อื มีวตั ถผุ า่ นตัวตรวจรู้
ตัวควบคุมจะนำข้อมูลที่ได้ไปประมวลผลเพื่อตรวจจับจำนวนในการผลิต ตัวตรวจรู้มีหลากหลาย
รูปแบบแล้วแต่วัตถุประสงค์ในการนำไปใช้งานเช่น ตัวตรวจรู้ทางแสง (Light Detector Sensor) ตัว
ตรวจรู้แบบไร้สัมผัส (Capacitive Proximity Sensor) แต่ไม่สามารถตรวจนับจำนวนวัตถทุ ี่มาพร้อม
กนั ได้

ในงานอุตสาหกรรมได้มีการนำเทคโนโลยีใหม่ ๆ เข้ามาปรับใช้ โดยเฉพาะระบบอตั โนมัติ
(Automation) ซง่ึ เปลย่ี นจากวธิ ีการใช้แรงงานคนปรับมาใชร้ ะบบอตั โนมตั ิมากขนึ้ เชน่ ใช้หุ่นยนต์ใน
การเชื่อมหรือใช้หุ่นยนต์ในการขนส่งสิ่งของภายในโรงงาน ซึ่งในปัจจุบันการตรวจสอบคุณภาพด้วย
ภาพถ่ายนิยมใช้กันอย่างแพร่หลายในงานอุตสาหกรรมโดยสามารถตรวจจับ ตำแหน่ง ระดับ ขนาด
เฉดสี จำนวนได้เพอ่ื ตรวจสอบคุณภาพหาความผดิ พลาดทเ่ี กิดจากการผลิต

ปัจจุบันโลกของเทคโนโลยีได้มีการพัฒนาแบบก้าวกระโดดเป็นอย่างมากโดยเฉพาะด้าน
งานคอมพิวเตอร์วิทัศน์ (Computer Vision) หรือการทำให้คอมพิวเตอรส์ ามารถเข้าใจภาพหรือวิดีโอ
ได้ในรูปแบบเดียวกันกับมนุษย์ ทำให้คอมพิวเตอร์สามารถมองเห็นภาพได้โดยใช้หลักการทาง
คณิตศาสตร์และทำให้คอมพิวเตอร์เข้าใจภาพขั้นสูงด้วยปัญญาประดิษฐ์ (Artificial Intelligence)
หรือที่เรียกว่า “เอไอ (AI)” โดยใช้โครงสร้างประสาทเทียม (Artificial Neuron Network) ทำให้การ
ตรวจสอบคุณภาพ ตำแหน่ง ระดับ ขนาด เฉดสีได้อยา่ งมีประสทิ ธภิ าพมากยงิ่ ขึน้

ดงั น้ันจึงไดเ้ ลง็ เหน็ ความสำคญั ของเทคโนโลยีเพื่อนำมาปรับใช้ในการพัฒนาระบบการนับ
จำนวนวัตถุด้วยคอมพิวเตอร์วิทัศน์ในงานอุตสาหกรรมเพื่อเพิ่มประสิทธิภาพและลดต้นทุนในการ
จัดทำระบบในงานตรวจสอบคณุ ภาพใหม้ ีประสิทธภิ าพมากย่ิงขึน้

1.3 วัตถปุ ระสงค์
1.3.1 สร้างซอฟต์แวร์และเคร่ืองนับจำนวนวตั ถุดว้ ยคอมพิวเตอร์วทิ ศั น์
1.3.2 เพื่อศึกษาวธิ กี ารนับวัตถุด้วยวิธกี ารประมวลผลด้วยภาพ (Image Processing)
1.3.3 เพ่อื ศึกษาการเขยี นโปรแกรมดว้ ยภาษาไพธอน (Python Language)
1.3.4 เพื่อศึกษาการออกแบบและพัฒนาหน้าต่างผใู้ ชง้ าน (Graphic User Interface)
1.3.5 เพื่อเพ่ิมความสะดวกในการนบั และคัดแยกวตั ถุได้อย่างมปี ระสทิ ธิภาพ
1.3.6 เพอ่ื ลดต้นทุนในการจัดทำระบบนบั จำนวน

5

1.4 ขอบเขต
1.4.1 ใช้ภาษาไพธอนในการพัฒนา
1.4.2 สามารถต่อกลอ้ งใช้งานได้ 1 ตวั เทา่ นัน้
1.4.3 สามารถตรวจนบั จำนวนวัตถุได้ 3 วตั ถุ
1.4.4 ไม่สามารถใช้งานกบั วัตถทุ ีม่ เี ฉดสีใกลเ้ คียงกันได้
1.4.5 ใชจ้ อมอนิเตอร์ขนาด 18 น้ิวในการแสดงผล
1.4.6 ใชค้ ลิปก้ามปู PVC สเี หลือง สฟี ้า สขี าว ขนาด 1/2น้ิว ในการทดสอบ
1.4.7 ใช้ความเรว็ ในการตรวจจบั ไม่เกนิ 1.5m/s

1.5 คุณสมบัติของเครื่อง
1.5.1 ใช้ภาษาไพธอนในการพฒั นาซอฟต์แวร์
1.5.2 ใชซ้ อฟต์แวร์ Qt Designer ในการออกแบบและพัฒนาหนา้ ตา่ งผ้ใู ชง้ าน
1.5.3 ใชไ้ ลบรารี่ OpenCV เวอรช์ นั 4.5.2 ในประมวลผลภาพ
1.5.4 ใช้ระบบปฏบิ ตั กิ าร Raspberry Pi OS 64bit
1.5.5 ใช้บอร์ด Raspberry Pi 4 2GB
1.5.6 ใช้กลอ้ งเว็บแคมยีห่ อ้ Logitech รุ่น C505e ความละเอยี ด 1280x960

1.2MP (720) เฟรมเรท 30fps @ 640x480
1.5.7 ใชแ้ ผงวงจร 8ชอ่ งอนิ พุต กับ 8ช่องสญั ญาณเอาตพ์ ุต ใช้แรงดันไฟฟา้ กระแสตรง

เลี้ยงแผงวงจร 12Vdc กระแส 1.5A
1.5.8 ใชส้ ายพานลำเลียงขนาด กวา้ ง 27cm ยาว 120cm
1.5.9 ใชม้ อเตอร์ MY1016 แรงดัน 12Vdc กระแส 23A ความเร็วรอบ 303r/min

6

1.6 งบประมาณ ราคา/ยูนิต จำนวน รวม
ตารางท1ี่ .1 งบประมาณทใ่ี ช้ในการจัดทำโครงงาน 1,190.00 1 1,190.00
ลำดับ รายการ 2,990.00 1 2,990.00
3,000.00 1 3,000.00
1 Logitech C505e HD Webcam 362.73 1
2 Raspberry Pi 4 RAM 2GB 362.73 1 362.73
3 Patlite Tower Light รนุ่ LR6-02LJB 445.00 1 362.73
4 บอร์ด I/O 8 Channel 50.00 1 445.00
5 บอร์ดควบคุมไฟและมอเตอร์ 390.00 2 50.00
6 ตูไ้ ฟฟ้าขนาด 95.00 1 780.00
7 รางปีกนก 599.00 1 95.00
8 สายไฟขนาด 1x0.5 30.00 3 599.00
9 รางเดนิ สายไฟ 25,000.00 1 90.00
10 Terminal Box 25,000.00
11 หางปลา 34,964.46 บาท
12 ชดุ สายพานลำเลียง

รวม

1.7 แผนการดำเนนิ งาน 2564 2565
ตารางท่ี 1.2 แผนการดำเนินโครงงาน ส.ค. ก.ย. ต.ค. พ.ย. ธ.ค. ม.ค. ก.พ. มี.ค.

แผนงาน

ศกึ ษาปัญหาและรวบรวมข้อมูล
นำเสนอหัวข้อโครงงาน
ศกึ ษาวธิ กี ารประมลผลภาพ
พัฒนาซอฟตแ์ วร์และหนา้ ต่างผใู้ ช้งาน
ทดสอบ/ตรวจสอบและปรับปรงุ แกไ้ ข
สรุปผลการดำเนินโครงงาน

7

1.8 ประโยชนท์ ่ีคาดว่าจะไดร้ บั
1.8.1 สามารถตรวจนับวัตถุตา่ งชนิดไดอ้ ยา่ งมีประสิทธภิ าพ
1.8.2 สามารถนำซอฟต์แวรไ์ ปใช้ในงานอุตสาหกรรมได้จรงิ
1.8.3 สามารถลดต้นทนุ ในงานวิชชันได้
1.8.4 มีความรู้ความเขา้ ใจในการพัฒนาโปรแกรมดว้ ยภาษาไพธอน
1.8.5 มคี วามร้คู วามเข้าใจในการพัฒนาหน้าตา่ งผใู้ ช้งานบนซอฟตแ์ วร์ Qt Designer
1.8.6 มีความรู้และทักษะในการพัฒนาซอฟต์แวร์คอมพิวเตอร์วิทัศน์ด้วยไลบราร่ี

OpenCV สามารถนำไปประยกุ ต์ให้เกดิ ประโยชน์ได้
1.8.7 มีความรู้และทกั ษะในการออกแบบสายพานลำเลยี ง

8

บทท่ี 2
ทฤษฎีและงานวจิ ยั ทเ่ี กีย่ วขอ้ ง

/
/
ในการจัดทำโครงงาน เครื่องนับจำนวนวัตถุด้วยคอมพิวเตอร์วิทัศน์ มีทฤษฎีและ
งานวิจัยท่ีเกย่ี วขอ้ งดงั ตอ่ ไปนี้
1. ภาษาไพธอน (Python Language)
2. การประมวลผลภาพ (Image Processing)
3. กลอ่ งขอบเขต (Bounding Box)
4. งานวจิ ัยทีเ่ ก่ียวข้อง

2.1 ภาษาไพธอน (Python Language)
ไพธอน (Python = งูเหลือม ตามความหมายในพจนานุกรม) คือ ภาษาระดับสูงที่ใช้ใน

การพัฒนาโปรแกรมอีกภาษาหน่ึงท่ีมีความสามารถสูงไม่แพภ้ าษาอื่น ๆ ทมี่ ีอย่ใู นปัจจุบัน ถูกสร้างขึ้น
โดยนักพัฒนาโปรแกรมชื่อ Guido van Rossum เป็นชาวดัชท์ (Dutch) ประเทศเนเธอร์แลนด์ เกิด
เมอ่ื วนั ที่ 31 มกราคม พ.ศ. 2499 ภาษาไพธอนได้รับอิทธิพลมาจากภาษา ABC ซึ่งมคี วามสามารถใน
การจัดการเกี่ยวกับข้อผิดพลาดของโปรแกรม (Exception handling) ได้ดี และดึงเอาความสามารถ
เด่น ๆ ของภาษาระดับสูงอื่น ๆ มาประยุกต์ดัดแปลงใช้กับไพธอนด้วย ส่งผลให้ภาษาไพธอนเป็นที่
นิยม และใช้งานกันอย่างกว้างขวางในปัจจุบัน เนื่องจากเป็นภาษาที่สามารถเรียนรู้ได้ง่าย รวดเร็ว
รปู แบบการเขียนโปรแกรมมคี วามกระทดั รดั และมปี ระสิทธิภาพสูง จากการนำเอาคุณลักษณะเด่น ๆ
ของภาษาอื่น ๆ มาเป็นพื้นฐานในการพัฒนาต่อยอดนี้เอง ไพธอนจึงถูกเรียกว่าเป็นภาษาที่มีหลาย
กระบวนทัศน์ หรือหลายมุมมอง (Multi-paradigm languages) ซึ่งเป็นการผสมผสานรวมเอา
แนวความคิดในการพัฒนาซอฟต์แวร์แบบต่างๆ เข้าไว้ด้วยกันให้อยู่ในตัวของไพธอน คือ Object-
oriented programming, Structured programming, Functional programming และ Aspect-
oriented programming

9

2.1.1 คุณสมบัติและความสามารถของภาษาไพธอน (Features and capability of
Python)

ไพธอนถูกพัฒนาขึ้นมาโดยไม่ขึ้นกับแพลตฟอร์ม (Platform independent) กล่าวคือ
สามารถทำงานได้ทั้งบนระบบปฏบิ ตั ิการตระกลูวนิ โดวส(์ Windows NT, 2000, 2008, XP, 7, 8, 8.1)
ตระกูลยูนิกส์-ลินกซ์ (Unix, Linux, xBSD) และตระกูลแมคด้วย (Macintosh) โดยระบบปฏิบัติการ
เหล่าน้ตี ดิ ตง้ั เพียงโปรแกรมแปลภาษาใหเ้ ปน็ ภาษาเคร่อื งของสถาปัตยกรรมนน้ั ๆ เท่านน้ั

ภาษาไพธอนเป็นซอฟต์แวร์เสรี (Open source software) เหมือนภาษาพีเอชพี (PHP)
ทำให้ทุกคนสามารถนำไพธอนมาพัฒนาโปรแกรมได้ฟรี ๆ โดยไม่ต้องเสียค่าใช้จ่าย และคุณสมบัติ
ความเป็นซอฟต์แวร์เสรี ทำให้มีโปรแกรเมอร์ทั่วโลกเข้ามาช่วยกันพัฒนาให้ไพธอนมีความสามารถ
สูงขึ้นเรื่อย ๆ ส่งผลให้สามารถครอบคลุมงานในลักษณะต่าง ๆ อย่างกว้างขวาง สามารถสรุป
คณุ สมบตั ิ และความสามารถของภาษาไพธอนได้ดงั ตอ่ ไปน้ี

2.1.1.1 คุณสมบัติเดน่ ของภาษาไพธอน
1) ตัวภาษาไพธอนถูกสร้างขึ้นมาจากภาษาซี ทำให้ได้รับอิทธิพลไวยกรณ์

ทางภาษาติดมาจากภาษาซีด้วย ดังนั้นผู้ที่คุ้นเคยกับการเขียนโปรแกรมภาษาซีสามารถปรับตัวใน
เขยี นภาษาไพธอนได้ไม่ยาก

2) ไพธอนมีความสามารถในการจัดการหน่วยความจำอัตโนมัติ (Garbage
collection) สามารถบริหารจัดการพื้นที่หน่วยความจำที่ใช้งานแบบไม่ต่อเนื่องให้สามารถทำงานได้
อย่างมีประสิทธภิ าพ ทำใหผ้ เู้ ขียนโปรแกรมไม่ต้องกังวลเก่ียวกับการคนื หนว่ ยความจำคืนให้กับระบบ
เหมือนภาษาซี

3) การแปลภาษาของภาษาไพธอนเป็นแบบอินเทอร์พรีเตอร์ เป็นภาษา
สคริปต์คือจะประมวลผลไปทลี ะบรรทัด ทำให้ใช้เวลาในการเขียนโปรแกรม และการคอมไพล์ไม่มาก
เหมาะกับงานดา้ นการดูแลระบบ (System administration) เปน็ อย่างยง่ิ

4) ไวยากรณ์อ่านง่าย เนื่องจากภาษาไพธอนได้กำจัดการใช้สัญลักษณ์ที่ใช้
ในการกำหนดขอบเขต {…} ของโปรแกรมออกไป (สำหรับผู้ที่เขียนภาษา C หรือ Java มาก่อน ใน
ตอนแรก ๆ จะไม่ค่อยชอบนัก แตเ่ ม่อื เขียนไปเรื่อย ๆ จะรู้สึกว่าคล่องตัวกว่า) โดยใช้การย่อหน้าแทน
ทำใหส้ ามารถอ่านโปรแกรมทเ่ี ขียนไดง้ ่าย นอกจากนัน้ ยังมีการสนบั สนุนการเขยี น docstring ซ่ึงเป็น
ข้อความสัน้ ๆ ท่ีใชอ้ ธบิ ายการทำงานของฟงั ก์ชนั คลาส และโมดลู ได้ด้วย

5) ไพธอนมีไลบรารีที่สนับสนุนงานด้านการสร้างภาพกราฟฟิก และการ
ประมวลผลภาพ (Image processing) มากมาย เช่น การปรับความคมชัดของภาพ การอ่านไฟล์ภาพ
ขนาดใหญ่ การบนั ทกึ ไฟลใ์ ห้ในรปู แบบต่างๆ ไดอ้ ย่างสะดวก และมีประสทิ ธิภาพ

10

2.1.1.2 คุณสมบัติด้อยของภาษาไพธอน
1) ความเร็ว: ไพธอนเป็นภาษาสคริปต์ (Scripting language) ซึ่งทำงาน

โดยมีตัวแปลภาษา (Interpreter) แปลงคำสั่งในแต่ละบรรทัดของโปรแกรมตน้ ฉบับ (Source code)
ให้เปน็ ภาษาเครื่อง (Machine code) ในขณะทีโ่ ปรแกรมกำลังทำงาน ซ่ึงแตกต่างจากภาษาซี C++
โคบอล หรือปาสคาล เพราะภาษาเหลา่ นี้จะทำการแปลรหัสต้นฉบับให้กลายเป็นภาษาเครื่องทัง้ หมด
ก่อนเริ่มต้นทำงาน ส่งผลให้โปรแกรมขนาดใหญ่ที่เขียนขึ้นด้วยภาษาไพธอนจะทำงานได้ช้ากว่า
โปรแกรมที่ใชเ้ ทคนคิ การคอมไพล์แฟ้มตน้ ฉบับท้งั หมดก่อน

2) โอกาสเกิดข้อผิดพลาดชนิด Runtime Error สูงขึ้น: จุดด้อยในข้อนี้มี
ผลกระทบมาจากการแปลภาษาแบบ Interpreter และการไม่ไดแ้ ปลรหสั ต้นฉบับทง้ั หมดกอ่ นทำงาน
ในการประกาศตัวแปรของภาษาสคริปต์ จะไม่มีการตรวจสอบความถูกต้องของการเรียกใช้ตัวแปร
และชนิดของตัวแปรทั้งหมดก่อนเริม่ ทำงาน ดังนั้น ถ้าผู้พัฒนาโปรแกรมขาดความระมัดระวัง (Logic
error) ในระหว่างพัฒนาโปรแกรม จะทำให้มีโอกาสเกิดความผิดพลาดจากการเรียกใช้ตัวแปรทีไ่ ม่ได้
ประกาศไว้หรอื ใชง้ านตัวแปรผดิ ประเภทไดง้ ่าย

3) การระบุขอบเขตของคำส่ังและตวั แปร: ไพธอนไม่ใช้ {…} เป็นสัญลักษณ์
สำหรับกำหนดขอบเขตของคำสั่ง หรือตัวแปรในการเขียนโปรแกรม เหมือนกับภาษาระดับสูง เช่น
C/C++ และ Java แตใ่ ช้การย่อหน้าเพ่ือบอกขอบเขตของคำส่ัง และตวั แปรแทน สง่ ผลให้ยากต่อการ
พฒั นาโปรแกรมที่มขี นาดใหญ่ และโปรแกรมต้นฉบับมคี วามซับซ้อนมากๆ เชน่ nested loop เพราะ
ตอ้ งสงั เกตกุ ารย่อหนา้ ให้ถกู ต้อง

2.1.2 งานด้านต่าง ๆ ที่ไพธอนสนบั สนนุ ในปจั จุบัน (Application domains)
2.1.2.1 สนับสนุนการพัฒนางานเกี่ยวกับเว็บแอพพลิเคชัน (Web application)

สำหรับงานในส่วนของซอฟต์แวรข์ นาดใหญ่ ใชพ้ ัฒนา Common Gateway Interface (CGI), เฟรม
เวริ ค์ ของ Django และ TurboGears

2.1.2.2 สนับสนุนงานด้านฐานข้อมูล (Database Access) ไพธอนสามารถ
เชอื่ มต่อกับฐานข้อมลู ได้มากมายหลายค่าย โดยผ่านทาง ODBC Interfaces และผ่านทาง Standard
database API ข อ ง ไ พ ธ อ น โ ด ย ต ร ง เ ช ่ น MySQL, Oracle, MS SQL Server, PostgreSQL,
SybODBC, ZODB, Durus และอนื่ ๆ

2.1.2.3 สนับสนุนงานด้าน Desktop GUIs ตัวติดตั้งของไพธอนมี Tk GUI
development library อยู่ในตัวอยู่แล้ว ดังนั้นผู้เขียนโปรแกรมสามารถสร้างกราฟฟิกได้ทนั ทีโดยไม่
ต้องติดตั้งซอฟต์แวร์อื่น ๆ เพิ่มเติม ซึ่งไลบารีดังกล่าวเหมือนกับ Microsoft Foundation Classes,
wxWidgets, GTK, Qt, pyside, Delphi และอื่นๆ ท าให้สามารถพัฒนาซอฟต์แวร์ประยุกต์ต่าง ๆ
แบบกราฟฟิกได้ง่าย

11
2.2 การประมลผลภาพ (Image processing)

2.2.1 ทฤษฎีสี (Color Theory)
แม่สี (Primary Color) เป็นต้นกำเนิดของการผสมสีเพื่อให้เกิดเป็นสีต่าง ๆ เพ่ือ

นำไปใช้ในการสร้างงานอยู่ในรูปของแสงรังสี ซึ่งเป็นพลังงานชนิดเดียวที่มีสีคุณสมบัติของแสง
สามารถนำมาใช้ ในการถ่ายภาพ ภาพโทรทัศน์ และมีแม่สีที่ได้มาจากธรรมชาติ และจากการ
สังเคราะห์โดยกระบวนทางเคมีถูกนำมาใช้งานกันอย่างกว้างขวาง ในวงการศิลปะ วงการ
อุตสาหกรรม โดยมกี ารผสมอยู่ 2 แบบคอื การผสมสแี บบบวกและการผมสีแบบลบ

รปู ท่ี 2.1 การผสมสแี บบบวกและการผมสแี บบลบ
ทีม่ า : https://billionplus365.blogspot.com/2019/06/blog-post_37.html

12
2.2.1.1 รูปแบบสี (Color Model) คือแบบจําลองทางคณิตศาสตร์ซึ่งโดยปกติจะ
มีองค์ประกอบของสี 3 หรอื 4 ค่า โดยจะเรยี กกลุ่มของสีน้วี า่ พ้ืนที่สี

รูปที่ 2.2 พ้นื ที่สี
ท่มี า : https://www.msi.com/blog/why-dci-p3-is-the-new-standard-of-color-gamut

1) ระบบสี RGB เป็นการรวมเข้าด้วยกันของแม่สีแบบบวก ได้แก่ สีแดง สี
เขียว และสีน้ำเงนิ วัตถปุ ระสงค์หลักของรูปแบบสี RGB เพอื่ การตรวจวดั และการแสดงผลของภาพใน
ระบบอิเลก็ ทรอนกิ ส์ เชน่ โทรทศั น์ และคอมพิวเตอร์ และเปน็ พื้นฐานในการรับรสู้ ขี องมนุษย์

รูปที่ 2.3 ระบบสี RGB
ทมี่ า : https://www.pogodesign.co.nz/wp-content/uploads/2021/03/Color-RGB.jpg

13
2) ระบบสี RYB (Red Yellow and Blue) คือ รปู แบบมาตรฐานของชดุ แม่
สีแบบลบทีใ่ ชส้ ำหรบั การผสมสารสซี ง่ึ ใชใ้ นงานศิลปะ

รปู ท่ี 2.4 ระบบสี RYB
ท่มี า : https://en.wikipedia.org/wiki/RYB_color
3) ระบบสี CMYK เป็นระบบผสมสีแบบลบ ใช้ในงานพิมพ์สีเป็นส่วนใหญ่
อาจพบเหน็ ไดบ้ นเคร่ืองปริ้นท์ไดแ้ ก่ สีน้ำเงนิ อมเขยี ว (C) สแี ดงอมมว่ ง (M) และสเี หลอื ง (Y) และสีดำ
(K) ซงึ่ เป็นอกั ษรย่อสุดทา้ ยของคําว่า Black เพอ่ื จะไมไ่ ด้ซำ้ กบั คําว่า Blue ท่แี ปลว่า สีนำ้ เงนิ

รูปท่ี 2.5 ระบบสีแบบ CMYK
ที่มา : https://www.pogodesign.co.nz/wp-content/uploads/2021/03/Color-CMYK.jpg

14
4) ระบบสี HSV และ HSL มีการใช้กันอย่างแพร่หลายในคอมพิวเตอร์
กราฟกิ โดยเฉพาะอยา่ งย่งิ ที่เปน็ ซอฟตแ์ วรแ์ ก้ไขรปู ภาพ โดย HSV ย่อมาจากคำว่า (Hue, Saturation,
Value) และย่อมาจากคำว่า HSL (Hue, Saturation, Lightness) โดยจะปรับปรุงระบบที่เป็นรูป
ลกู บาศก์ของระบบสี RGB ด้วยการจัดเรียงแตล่ ะสใี นรัศมรี อบแกนกลาง ซง่ึ จะมสี ีดำอยู่ด่านล่างและมี
สีขาวอยู่ดา้ นบน สที ส่ี ดใสเต็มทีข่ องแต่ละสจี ะอยใู่ นวงกลมเปน็ วงลอ้ สี

รปู ท่ี 2.6 ระบบสี HSV และ HSL
ทมี่ า : https://www.hisour.com/color-model-26071

2.2.2 ชนดิ ของภาพ
การแทนภาพด้วยภาพแบบดิจิทัล (Digital Image) เป็นภาพที่ถูกแปลงมาจาก

อนาลอกให้อยู่ในรูปของตวั เลข โดยภาพอนาลอกถูกแทนด้วยพื้นท่ีสเี หล่ยี มเล็ก ๆ ที่เรียกว่า “พิกเซล
(Pixel)” Pixel มาจากคําว่า Picture (ภาพ) กับคําว่า Element (พื้นฐาน) คือหน่วยพื้นฐานซึ่งเล็ก
ที่สดุ ของภาพดิจิทัลเทียบได้กับจดุ สีของภาพ 1 จุด หลากหลายสหี ลาย ๆ จุดท่เี รยี งชิดติดกันในรูแบบ
พื้นที่สีเหลี่ยม ถูกรวมกันทำให้เกิดเป็นภาพแต่ 1 Pixel จะเป็นสีหนึ่งสีใดเพียงสีเดียวเท่านั้นจะมีสีอืน่
ไม่ได้ เนื่องจากว่าเป็นส่วนที่เล็กที่สุดของการแสดงผลพิกเซลนั้นมีความสำคัญต่อการสร้างกราฟฟิก
ของคอมพิวเตอร์มาก เพราะทุก ๆ ส่วนของกราฟฟิก เช่น จุด เส้น แบบลายและสีของภาพล้วนเกิด
จากพิกเซลทั้งสิ้นในแต่ละพิกเซลจะถูกระบุตำแหน่งด้วยโคออดิเนท (Coordinate) ในแกนของ x,y
และค่าระดบั ความเขา้ ของแสงในพิกเซลนนั้ ๆ

15

รูปที่ 2.7 พกิ เซลของภาพ
ทม่ี า : https://hmong.in.th/th/พิกเซล#wiki-1
2.2.2.1 รูปภาพแบบไบนารี (Binary Image) ไบนารีในทางดิจิทัลหมายถึง 2
สถานะคือ 0 และ 1 ภาพไบนารีก็จะมีแค่ความเข้ม 2 ค่าคือ 0 และ 1 หมายความว่าพิกเซลใดมีค่า
เป็น 0 แสดงว่าพกิ เซลน้ันจะแสดงเปน็ สดี ำ และพิกเซลใดมีค่าเป็น 1 พิกเซลนั้นจะแสดงเป็นสีขาว

รูปท่ี 2.8 รปู ภาพแบบไบนารี

16

2.2.2.2 รูปภาพแบบเกรย์สเกลหรือภาพระดับสีเทา (Grayscale Image) รูปภาพ
ชนิดนี้สอี ยู่ 3 สีด้วยกันคอื ขาว ดำ และเทา โดยจะมีระดบั ความเข้มของสีเทาคือ 0-255 (8 bit) ภาพ
เกรยส์ เกลเกดิ จากการแปลงภาพสี RGB มาเปน็ ภาพ Grayscale โดยใชส้ ตู รทางคณิตศาสตรด์ งั นี้

Gray = 0.299R + 0.587G + 0.114B 2.1

เมอ่ื Gray คอื ค่าความเข้มชองสีเทาโดยจะมคี ่าระหวา่ ง 0-255
R คือ ค่าความเข้มของสแี ดงโดยจะมคี ่าระหว่าง 0-255
G คือ ค่าความเข้มของสีเขยี วโดยจะมีค่าระหวา่ ง 0-255
B คือ ค่าความเข้มของสนี ้ำเงนิ โดยจะมีค่าระหวา่ ง 0-255

รูปท่ี 2.9 รูปภาพระดบั สีเทา
ทม่ี า : https://miro.medium.com/max/750/1*uvEzqUzg1vb9xC5tIkjsZQ.png

ตวั อย่างทมี่ าของภาพแบบระดบั สเี ทาโดยมาจากช่องสขี องภาพสี RGB โดย
ทภ่ี าพสี RGB จะมชี ่องสซี ้อนกนั อยู่ 3 ชั้น ภาพระดบั สเี ทาถูกแปลงมาจากภาพสี RGB

รปู ที่ 2.10 การแปลงภาพสี RGB เป็นภาพระดบั สีเทา
ที่มา : https://www.pngitem.com/middle

17
2.2.2.3 รูปภาพสี RGB (RGB Image) จะมีค่าความเข้มแสงในสีต่าง ๆ สีแดง
(Red) สีเขียว (Green) และสีน้ำเงิน (Blue) จะมีจำนวนบิตต่อพิกเซลคือ 24 บิต หมายความว่า
สามารถแสดงสีได้ถึง 16,777216 สี จำวนบิตในแต่ละพิกเซลจะเป็นตัวกำหนดความแตกต่างของ
ระดับสี ซึ่งถ้าข้อมูลในพิกเซลนั้นมี 8 บิต ก็หมายความว่า 1 ช่องสามารถแสดงผลได้ 256 ระดับสี
แสดงว่า Red 8 bit, Green 8 bit, Blue 8 bit ถา้ รวมสีแบบ RGB = 24 bit

รปู ที่ 2.11 รูปภาพสี RGB
ท่ีมา : https://www.codetd.com/en/article/12577180
2.2.3 การแยกส่วนประกอบภาพ (Image Thresholding)
การทำเทรชโฮลด์ คือขั้นตอนในการแยกส่วนประกอบของภาพโดยการนำภาพสี
มาทำการแปลงให้อยู่ในรูปภาพสีเทา (Grayscale Image) แล้วจึงทำให้ภาพสีเทาอยู่ในรูปแบบของ
ภาพไบนารีหรือภาพขาวดำเพื่อปรับปรุงภาพขาวดำให้มีความชัดเจนตาม ที่ต้องการมาวิเคราะห์ โดย
พิจารณาค่าและเปรียบเทียบกับค่าจุดแบ่ง (Threshold Value) เป็นหลักการที่ใช้ค่าคงที่ค่าหนึ่ง ใน
การเปรียบเทียบกับค่าของ Pixel ในแต่ล่ะพื้น ถ้าค่าของ Pixel ในพื้นที่นั้นมีค่าน้อยกว่าคา่ คงที่ ก็จะ
เปล่ยี นคา่ Pixel ของพ้นื ท่นี น้ั เปน็ 0 แต่ถา้ คา่ ของ Pixel ในพน้ื ทน่ี ัน้ มคี ่ามากกว่าก็จะเปล่ียนค่า Pixel
ของพ้นื ท่นี ัน้ เปน็ 255 โดยภาพ input จะตอ้ งเปน็ ภาพ Grayscale

รูปที่ 2.12 Images Thresholding
ท่มี า : https://docs.opencv.org/4.x/threshold.jpg

18

2.2.3.1 Binary Thresholding เป็นการปรับแต่งรูปภาพสีเทาให้เป็นรูปภาพ
แบบไบนารี่ โดยถ้าหากความเขม้ ของพกิ เซลมากกว่าเกณฑ์ท่ีตัง้ ไว้ให้มีคา่ เป็น 255 (สีขาว) หรือถ้าคา่
น้อยกวา่ เกณฑจ์ ะมีค่าเป็น 0 (สีดำ)

g ( x, y ) = 255 if f ( x, y)  threshold value 2.2

0 otherwise

เมอ่ื g(x,y) คือ ระดับสีเทาที่จุด (x,y) ใด ๆ ของภาพ
f(x,y) คอื ค่าความสว่างของจดุ (x,y)
Threshold คือ ระดับสเี ทาท่ีไดจ้ ากการแปลงขอ้ มลู

รูปท่ี 2.13 Binary Thresholding

2.2.3.2 Inverse-Binary Thresholding เป็นส่วนกลับของการปรับแต่งรูปภาพ
แบบไบนารีเทรชโฮลดิงโดยการกลับความเข้มของพิกเซลจากสีขาวให้กลายเป็นสีดำและพิกเซลสีดำ
กลายเปน็ สขี าว

g ( x, y) = 0 if f ( x, y)  threshold value 2.3

255 otherwise

รปู ที่ 2.14 Inverse-Binary Thresholding

19

2.2.3.3 Truncate Thresholding เป็นการปรับแต่งรูปภาพโดยหากค่าความเข้ม
ของพิกเซลมากกว่าเกณฑ์ที่กำหนดจะปรับให้พิกเซลที่เกินเป็นสีขาว และค่าพิกเซลที่มีค่าน้อยกว่า
หรอื เท่ากบั เกณฑท์ ต่ี ั้งไว้จะถกู ปรบั ใหพ้ กิ เซลเป็นสีดำ

g ( x, y ) = threshold if f ( x, y)  threshold value 2.4

 f ( x, y ) otherwise

รูปที่ 2.15 Truncate Thresholding

2.2.3.4 Zero Thresholding เป็นการปรับแต่งรูปภาพโดยหากค่าความเข้มของ
พกิ เซลตำ่ กวา่ เกณฑท์ ี่กำหนดจุดแบ่งจะเปลีย่ นพกิ เซลให้เปน็ สีขาว ที่เหลอื เปน็ สีดำ

g ( x, y ) =  f ( x, y ) if f ( x, y)  threshold value 2.5

0 otherwise

รปู ที่ 2.16 Zero Thresholding

20

2.2.3.5 Inverse- Zero Thresholding เปน็ การปรับแต่งรูปภาพโดยหากคา่ ความ
เขม้ ของพิกเซลสูงกว่าเกณฑ์ที่กำหนดจุดแบ่งจะเปล่ยี นพิกเซลใหเ้ ป็นสดี ำ ทีเ่ หลอื เป็นสขี าว

g ( x, y ) =  0 ( x, y ) if f ( x, y)  threshold value 2.6
 f
 otherwise

รปู ท่ี 2.17 Inverse- Zero Thresholding

2.2.3.6 Adaptive Thresholding เป็นอีกเทคนิคที่ทำมาเพื่อแก้ไขการปรับแต่ง
รูปภาพโดยใช้วิธีเทรชโฮลดิง เนื่องจากมีข้อเสียคือไม่สามารถใช้งานได้กับภาพที่มีค่าพิกเซลการ
กำหนดจุดแบ่งให้สามารถปรับเปลี่ยนหรือยืดหยุ่นค่าได้โดยอิงตามบริเวณพื้นที่ใกล้เคีย งกันว่าควร
กำหนดจดุ ค่าแบ่งแต่ละพนื้ ท่ีท่ีมคี ่าเทา่ ใดโดยปรับให้เหมาะสม

รูปที่ 2.18 Adaptive Thresholding
ทม่ี า : https://docs.opencv.org/4.x/ada_threshold.jpg

21
2.2.4 ตัวดำเนินการการเปลี่ยนแปลงลักษณะรูปร่างหรือโครงร่างของภาพ
(Morphological Operation)

เป็นเทคนิคสำหรับการวิเคราะห์ปละประมวลผลภาพโดยอาศัยโครงสร้างทาง
เรขาคณิตบนพื้นฐานของทฤษฎีเซต ทฤษฎีตาข่ายโครงสร้างของเครือข่ายและฟังก์ชันแบบสุ่ม นิยม
นำมาใชง้ านกับภาพดจิ ิทัลเพอื่ วิเคราะห์พน้ื ผวิ ขนาด รปู รา่ ง

รูปที่ 2.19 ตวั อย่างภาพ Morphological
ทม่ี า : https://i.stack.imgur.com/t1r9P.jpg

การประมวลผลรูปร่างและโครงสร้างภาพภาพจะขึ้นอยู่กับรูปร่างของค่าพิกเซล ในภาพส่วนเอาต์พุต
จะข้ึนอยกู่ ับการเปรียบเทียบของพิกเซลในภาพอนิ พุตกับพื้นท่ีใกล้เคียงโดยการเลือกขนาดและรูปร่าง
ของพ้นื ที่ใกล้เคียงนนั้ จะอาศยั ตัวดำเนินการ 4 รูปแบบ คือ การขยายภาพ (Dilation), การกร่อนภาพ
(Erosion), การเปดิ ภาพ (Opening), การปดิ ภาพ (Closing)

2.2.4.1 การขยาย (Dilation) คือตวั ดำเนินการนี้จะทำการยายขอบเขตของวัตถุใน
รปู ภาพ เพื่อเปลย่ี นแปลงรูปรา่ งให้เปน็ ไปตามองค์ประกอบโครงสร้าง ถ้าหากใช้กบั ภาพไบนารีจะเป็น
การเปลี่ยนค่าของตำแหน่งพิกเซลที่อยู่ใกล้ขอบเขตของวัตถุที่ไม่ถูกปิดล้อมโดยสมบรู ณ์ที่มีค่าพิกเซล
เท่ากับ 0 ให้มคี า่ เป็น 1 (ขยายสีขาว ลดสีดำ) ถกู นำมาใชใ้ นการขยายขอบเขตของวัตถุที่อยู่ใกล้กันให้
กลายเปน็ วัตถชุ ิ้นเดียวกัน

22

( )g ( x, y) = max f x + x', y + y' 2.7
( ) ( )x', y' : element x', y'  0

เมื่อ g คือ ฟังก์ชัน

x,y คอื พิกเซล ณ ตำแหนง่ ใด ๆ ในระนาบ

element คือ ตัวกรองในรปู แบบเมทรกิ ซ์

max คอื รปู ร่างของพน้ื ที่ใกล้เคยี งพิกเซลสงู สดุ

รูปที่ 2.20 Dilation Image
ทม่ี า : https://docs.opencv.org/4.x/dilation.png

2.2.4.2 การกัดเซาะ (Erosion) คือตัวดำเนินการนี้จะทำการกัดเซาะขอบเขตของ
วตั ถใุ นรูปภาพ ถา้ หากใชก้ ับภาพไบนารีจะเป็นการเปลีย่ นค่าของตำแหน่งของขอบเขตของวตั ถุที่ไม่ถูก
ปิดล้อมโดยสมบูรณ์ที่มีค่าพิกเซลเท่ากับ 1 ให้มีค่าเป็น 0 (ลดสีขาว ขยายสีดำ) มักถูกนำมาใช้ในการ
ลบสญั ญาณรบกวนขนาดเลก็ ในภาพและใช้กับการแยกวัตถุท่เี ชื่อมต่อกัน

( )g ( x, y) = max f x + x', y + y' 2.8
( ) ( )x', y' : element x', y'  0

รูปท่ี 2.21 Erosion Image
ทีม่ า : https://docs.opencv.org/4.x/erosion.png

23
2.2.4.3 การเปิด (Opening) เป็นตัวดำเนินการที่มาจากการทำงานคู่กันของตัว
ดำเนินการพื้นฐานคือ การกัดเซาะและการขยาเช่นเดียวกับการปิดย แต่มีลำดับการดำเนินงานที่
สลับกัน เริ่มจากการกัดเซาะตามด้วยการขยายโดยการใช้องค์ประกอบโครงสร้าง หากใช้กับภาพ
ลักษณะไบนารีจะเปน็ การเปล่ียนค่าของตำแหนง่ ท่ีอยู่ใกล้ขอบเขตของวัตถทุ ี่มีคา่ เท่ากบั 1 ให้มคี า่ เป็น
0 จากน้ันจงึ จะเปน็ การเปลีย่ นค่าของตำแหน่งขอบเขตของวัตถุที่เหลืออยู่ท่ีมีค่าพิกเซลเท่ากับ 0 ให้มี
ค่าเป็น 1 มกั ถูกนำมาใช้ในการหารปู ทรงท่ีมลี ักษณะเฉพาะของภาพไบนารี

รปู ท่ี 2.22 Opening Image
ทมี่ า : https://docs.opencv.org/4.x/opening.png
2.2.4.4 การปดิ (Closing) คอื ตัวดำเนินการทมี่ าจากการทำงานคู่กันของตัวดำเนิน
พ้นื ฐาน คอื การกดั เซาะและการขยาย มหี ลกั การทำงานท่ีเร่ิมจากขยายขอบเขตตามด้วยการกัดเซาะ
เพิม่ เติมโดยใชอ้ งค์ประกอบโครงสร้าง ถ้าหากใช้กบั ภาพไบนารจี ะเป็นการเปลีย่ นค่าของตำแหน่งท่ีอยู่
ใกล้ขอบเขตของวัตถุที่มีค่าเท่ากับ 0 ให้มีค่าเป็น 1 จากนั้นจึงจะเป็นการเปลี่ยนค่าของตำแหน่ง
ขอบเขตของวัตถุที่เหลืออยู่ที่มีค่าพิกเซลเท่ากับ 1 ให้มีค่าเป็น 0 มักถูกนำมาใช้ในการปิดช่องว่าง
ขนาดเล็กของภาพไบนารใี หส้ มบูรณ์

รปู ที่ 2.23 Closing Image
ทมี่ า : https://docs.opencv.org/4.x/closing.png

24

2.2.5 การกรองภาพ (Image Filtering)
การนำภาพเข้าไปผ่านตัวกรองสัญญาณเพ่ือใหไ้ ด้ภาพผลลัพธ์ออกมา ภาพผลลัพธ์

ที่ได้จะมีคุณสมบัติแตกต่างจากภาพต้นฉบับ วัตถุประสงค์หลักของการกรองภาพคือการเน้น
Enhance หรือทำการลดทอน Attenuate คุณสมบัตบิ างอย่างของภาพเพื่อนำไปวิเคราะห์ การกรอง
ภาพสัญญาณรบกวนที่เกิดขึ้นด้วยตัวกรอง (Filter) เช่น ตัวกรองสัญญาณรบกวนด้วยลาปลาเซียน
(Laplacian Filter) ซง่ึ ตวั กรองจะลดทอนสัญญาณรบกวนและรายละเอียดของภาพไปด้วย ทำให้การ
ประมวลผลภาพถูกลดประสิทธิภาพ โดยนิยมนำมาใช้ในทางด้านการประมวลผลภาพ (Image
Processing)

2.2.5.1 การกรองภาพโดยการทำให้เบลอและลดสัญญาณรบกวน (Smoothing
Spatial Filters) เป็นการเบลอภาพทำได้โดยการรวมภาพด้วยเคอรเ์ นลตวั กรองความถ่ีต่ำ มปี ระโยชน์
ในการกำจัดสัญญาณรบกวน โดยจะลบส่วนที่มีความถี่สูง เช่น นอยส์ ขอบ ออกจากภาพ ดังน้ัน
ขอบภาพจะมีการเบลอเล็กนอ้ ย

1) ตัวกรองสัญญาณค่าเฉลี่ย (Mean filter) ทำได้โดยการรวมรูปภาพด้วย
ตัวกรองกล่องปกติ ใช้ค่าเฉลี่ยของพิกเซลทั้งหมดภายใต้พื้นที่เคอร์เนลและแทนที่องค์ประกอบ
ส่วนกลาง ตวั กรองมาตรฐาน 3x3 จะมีลกั ษณะดงั สมการตอ่ ไปน้ี

1 1 1 1
9 1 1
K = 1 1 1
1

รูปท่ี 2.24 ผลลัพธ์การใส่ตวั กรองแบบคา่ เฉลย่ี

25

2) ตัวกรองสัญญาณเกาส์เซียน (Gaussian filter) เป็นตัวกรองสัญญาณ
รบกวนใช้สำหรับลดสญั ญาณรบกวน (Noise) และลบความคมของรปู ภาพ โดยมสี มการดงั ต่อไปนี้

( )G x = 1 e−ax2 2.9

เม่ือ x 2 

คือ ค่าตัวแปรในระนาบแกน x
คอื ค่าสว่ นเบยี่ งเบน

รูปที่ 2.25 ผลลัพธก์ ารใสต่ ัวกรองเกาส์เซียน

3) ตัวกรองค่ามัธยฐาน (median filtering) ใช้ค่ามัธยฐานของพิกเซล
ทั้งหมดภายใต้พื้นที่เคอร์เนล และองค์ประกอบส่วนกลางจะถูกแทนที่ด้วยค่ามัธยฐานนี้ ซึ่งมี
ประสิทธิภาพสูงในการป้องกันสัญญาณรบกวนในภาพ ที่น่าสนใจในตัวกรองข้างต้น องค์ประกอบ
ส่วนกลางคือคา่ ที่คำนวณใหม่อาจเป็นค่าพิกเซลในภาพหรือค่าใหม่ แต่ในการเบลอภาพแบบมัธยฐาน
องค์ประกอบตรงกลางจะถูกแทนที่ด้วยค่าพิกเซลในภาพเสมอ ช่วยลดสัญญาณรบกวนได้อย่างมี
ประสทิ ธิภาพ ขนาดเคอรเ์ นลควรเปน็ จำนวนเตม็ ค่ีบวก

รปู ท่ี 2.26 ผลลัพธก์ ารใส่ตัวกรองแบบค่ามัธยฐาน

26
2.2.5.2 การกรองความคมชดั (Sharpening Spatial Filters) เป็นการกรองความ
คมชัดของภาพหรือการปรับความคมชัดของภาพ ต้องการเน้นรายละเอียดในภาพ หรือเป็นการ
ปรับปรุงส่วนรายละเอียดของภาพ ลดความเบลอและเน้นขอบภาพ เช่น ภาพที่เบลอที่เกิดจากการ
เคลื่อนไหว ความผิดพลาด ถูกนำไปใช้ในการหาขอบภาพโดยมีหลากหลายตัวดำเนินการ เช่น
Laplacian Filter, Robert Operation, Sobel Operation และ Prewitt Operation
2.3 กล่องขอบเขต (Bounding Box)
กล่องขอบเขต หรือที่คุ้นกันคือ Bounding box เป็นหนึ่งในเครื่องมือที่ได้ความนยิ มมาก
ที่สุดในงานคอมพิวเตอร์วิทัศน์ และเป็นที่รู้จักกันในการประมวลผลภาพ (Image Processing)
สำหรับเป็นการอธิบายองค์ประกอบภาพและวิดีโอ กล่องขอบเขต (Bounding Box) มีลักษณะเป็น
สีเ่ หล่ยี มผนื ผ้าทำหน้าที่เป็นจุดอ้างอิงสำหรับการตรวจจับวัตถุท่ีสนใจในแตล่ ะภาพโดยกำหนดพิกัด X
และ Y ดังรูปที่ 2.27 แล้วทำการตีกล่องล้อมรอบวัตถุนั้น ๆ ช่วยให้อัลกอรึทึม (Algorithm) แมชชีน
เลิร์นนิงค้นหาสง่ิ ท่ตี ้องการไดง้ ่ายข้ึน

รปู ที่ 2.27 ตัวอยา่ งกลอ่ งขอบเขต (Bounding Box)
ทมี่ า : https://i.ibb.co/yXWtwgS/Capture.png

27
การตรวจจบั วัตถุ (Object Detection) ถูกนำมาใช้กนั แพรห่ ลายในการในปจั จบุ นั สำหรับ
งานทางด้านคอมพิวเตอร์วิทัศน์ (Computer Vision) ที่เป็นการจำแนกและตรวจสอบวัตถุที่อยู่บน
ภาพหรือวิดีโอและเคร่ืองมือกล่องขอบเขต (Bounding Box) ก็เป็นเครื่องมือที่สำคัญในการตกี รอบสี
เหลี่ยมเพ่อื ใหร้ ู้ว่านค่ี อื วัตถุทส่ี นใจดงั ตวั อยา่ งที่ 2.28

รปู ท่ี 2.28 การตีกรอบของเคร่อื งมือที่เรียกวา่ Bounding Box
ท่มี า : https://towardsdatascience.com/bounding-box-prediction-from-scratch-using-

pytorch-a8525da51ddc

2.4 งานวจิ ัยท่เี กี่ยวข้อง
2.4.1 งานวจิ ัยเร่ือง HSV Color Space Based Segmentation of Region of Interest

in Satellite Images
จากงานวิจัยของ Ganesan P และคณะ (2014) ได้ทำเสนอเทคนิคการแปลงค่า

ระดับจาก RGB เป็น HSV โดยผู้วิจัยใช้ค่า Hue คือค่าสีของภาพ Saturation คือค่าปริมาณความ
อิ่มตัวของสี ยิ่งมีค่าปริมาณมากจะทำให้ภาพมีสีที่สด แต่เมื่อมีปริมาณค่าน้อยจะทำให้ภาพมีสีที่
น้อยลงและเมื่อลดลงในปริมาณที่มาก ๆ จะทำให้ภาพมีลักษณะเป็นภาพสีเทา Grayscale และ
Value คือค่าที่แสดงถงึ ปริมาณความสวา่ งของภาพ หากมคี ่าท่มี ากจะทำให้ภาพมีความสว่างมาก โดย
ทั้งหมดที่กล่าวมาจะนำไปใช้ในการตัดพื้นหลังออกจากภาพ หรือที่เรียกว่า การแปลงค่าสี RGB เป็น
คา่ สี HSV

28

รูปท่ี 2.29 HSV and RGB Color Space
ท่มี า: P Ganesan ,Sathyabama University Chennai, India

29

บทท่ี 3
วิธกี ารดำเนนิ งาน

/
/
ในการดำเนินงานจัดทำเครื่องนับจำนวนวัตถุด้วยคอมพิวเตอร์วิทัศน์นั้นจำเป็นต้องมี
การศึกษาและวางแผนในการจัดทำสายพานลำเลียง วงจรควบคุม I/O วงจรควบคุมมอเตอร์และ
หลอดไฟ ซอฟต์แวร์หน้าต่างผู้ใช้งาน (User Graphic Interface: GUI) ด้วย Qt Designer ให้
สามารถใช้งานไดก้ ับไลบรารีข่ อง OpenCV โดยใชภ้ าษาไพธอน มขี นั้ ตอนและวิธดี ำเนินการดังต่อไปน้ี
3.1 ขั้นตอนการดำเนินโครงงาน

รปู ที่ 3.1 แผนการดำเนนิ โครงงาน

30

3.2 ศึกษาปัญหาและรวบรวมข้อมลู
3.2.1 การศกึ ษาปญั หา
การนบั จำนวนวัตถทุ ีม่ จี ำนวนมากในบางงานหากใช้คนในการนับอาจจะเกิดปัญหา

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

3.2.1.1 ศึกษาการประมวลผลภาพด้วยคอมพิวเตอร์วิทัศน์โดยใช้ไลบราร่ี
OpenCV ในการประมวลผลภาพ ซึ่งใช้ภาษาไพธอนในการเขียนโปรแกรมโดยการนำไฟล์รปู ภาพหรือ
วิดีโอมาทำการแปลงภาพให้อยู่ในรูปภาพสีเทาจากนั้นจึงทำการแปลงไฟล์รูปภาพหรือวิดีโอให้เป็น
ลกั ษณะไบนารีเพ่อื ให้งา่ ยตอ่ การวเิ คราะหข์ ้อมูลกอ่ นนำไปใช้กบั กล้องหรอื สถานทีจ่ ริง

3.2.1.2 ศึกษาวิธีการสร้างหน้าต่างผู้ใช้งาน (GUI) โดยใช้ซอฟต์แวร์ Qt Designer
เนื่องจากตัวไลบรารี OpenCV ไม่เหมาะสำหรับการใช้งานเนื่องจากไม่มีหน้าต่างผู้ใช้งานสำหรับ
ปรับเปลี่ยน หรือตั้งค่าพารามิเตอร์ต่าง ๆ จำเป็นต้องมีการพัฒนาหน้าต่างผู้ใช้งานให้มีความสะดวก
และใช้งานงา่ ยมากยงิ่ ขึน้

3.2.2 การรวบรวมขอ้ มลู
ในการรวบรวมขอ้ มูลเพ่อื นำมาใชใ้ นการพฒั นาซอฟต์แวร์ได้มีการศึกษาปัญหาและ

รวบรวมขอ้ มูลจากแหล่งข้อมูลต่าง ๆ โดยมีรายละเอียดดังนี้
3.2.2.1 จากสถานประกอบการ โดยการขอคำแนะนำในเรื่องของระบบวิชชัน

หลักการทำงานร่วมกับอปุ กรณค์ วบคุม เชน่ PLC ซึ่งเป็นหัวใจหลักในระบบงานอตุ สาหกรรม
3.2.2.2 จากสื่ออินเทอร์เน็ต โดยมีการรวบรวมข้อมูลวิธีการประมวลผลภาพและ

เทคนิคต่าง ๆ เพื่อนำภาพมาวิเคราะห์และเขียนโปรแกรมให้สามารถตรวจจับวัตถุได้อย่างมี
ประสิทธิภาพรวมไปถึงเทคนิคการใข้งานซอฟต์แวร์ Qt Designer ให้สามารถพัฒนาซอฟต์ได้รวดเรว็
และตรงจุดเปา้ หมาย

3.2.2.3 จากหนังสอื โดยได้มีการนำหนังสือต่าง ๆ ท่ีเขียนเกย่ี วกบั การประมวลผล
ภาพและเทคนิคในการทำให้ภาพสามารถวิเคราะห์ได้ง่ายโดยมีตัวอย่างการเรียกใช้งานฟังก์ชันให้
เหมาะกบั งานที่จะนำไปประมวลผลรวมทั้งหนังสือท่ีเก่ียวกับการพฒั นาหน้าต่างผู้ใชง้ านให้มีความเป็น
ระบบและใชง้ านได้งา่ ย ๆ

3.2.2.4 จากปริญญานิพนธ์ โดยการศึกษาตัวอย่างท่ีตรงกับในส่วนของโครงงาน
เชน่ การคำนวณทางคณติ ศาสตร์ และเทคนคิ การใช้งานไลบราร่ี

31

3.3 กรอบแนวคดิ ในการออกแบบซอฟต์แวร์สำหรบั การนบั จำนวนวตั ถุ
แนวคิดการออกแบบเครื่องนับจำนวนวัตถุด้วยคอมพิวเตอร์วิทัศน์ มีกรอบแนวคิดและ

การออกแบบซอฟต์แวร์การใชง้ านดงั ต่อไปน้ี
3.3.1 การรับภาพเคลื่อนไหวจากเว็บแคม (Video from camera) คือส่วนการรับภาพ

จากกลอ้ งโดยในที่นีใ้ ช้เปน็ กล้องเว็บแคมในการท่จี ะรับภาพเคล่ือนไหวเขา้ มาหลังจากน้ันทำการแปลง
ให้อยใู่ นรูปแบบของ array 2มิติ โดยมีขนาดเทา่ กับ 640x480 pixels

3.3.2 การแสดงผลภาพหน้าจอหลกั (Display main window) เมื่อมกี ารป้อนอินพุตท่ีได้
จากกล้องเว็บแคมเข้ามาแล้วก่อนที่จะนำไปแสดงผลจำเป็นต้องมีการแปลงไฟล์ให้อยู่ในรูปแบบ
มาตรฐานของ Qt Designer คือ Pixmap ซึ่งเป็นการแปลงไฟล์จาก numpy array เป็นไฟล์ Pixmap

3.3.3 เลือกจอแสดงผลสำหรับแสดงผลการตั้งค่าของสี (Display Sub windows) ซึ่งใน
การที่จะแสดงผลบนจอน้ีต้องมีการเลือกว่าอยากจะแสดงกี่ช่อง เมื่อทำการเลือกเสร็จแล้วก็จะไป
ปรากฏบนชอ่ งนัน้ ๆ และทำการเลือกชว่ งของสีท่ีสนใจสำหรับในการตรวจจับ

3.3.4 ตั้งค่าพารามิเตอร์ (Set parameters) หลักจากที่ได้ทำการเลือกช่วงสีที่สนใจ
ขนั้ ตอนตอ่ ไปก็จะเปน็ การเซ็ตค่าพารามิเตอร์และทำการแสดงผลไปยงั บนจอหลัก โดยวัตถุที่สนใจจะมี
การตีกรอบสีเหล่ยี มพื้นผ้า (Bounding Box) และไอดีไว้บนมมุ ซ้าย เพอ่ื เป็นการระบตุ วั ตนของวตั ถุ

Counting Bounding Box Object Tracker
Object

Video from Display Display HSV color Set parameter
Webcam main window Sub windows range setting

Choose for Display Display
Sub windows

Display
Sub windows

รปู ที่ 3.2 กรอบแนวคดิ ในการพัฒนาซอฟต์แวร์

32
3.4 การออกแบบสายพานลำเลียง

เนื่องจากเครื่องนับจำนวนวัตถุด้วยคอมพิวเตอร์วิทัศน์จำเป็ นต้องใช้งานกับสายพาน
ลำเลียงจึงได้มีการออกแบบและจัดสร้างสายพานขึ้นมา โดยใช้ซอฟต์แวร์ Fusion 360 ในการ
ออกแบบมีฟังก์ชันการใช้งานที่ง่าย และนิยมใช้งานกันแพร่หลายสำหรับการศึกษาแม้กระทั่งบริษัท
ใหญ่ ๆ โดยมีรายละเอยี ดและวิธกี ารดังต่อไปน้ี

3.4.1 ออกแบบโครงสร้างสายพานลำเลียงโดยมีขนาด กว้าง 395mm ยาว 1235mm
สูง 1035mm โดยพื้นที่ใช้งานมีขนาด กว้าง 270mm x ยาว 1175mm มีรายละเอียดการออกแบบ
ดังตอ่ ไปน้ี

รูปที่ 3.3 สายพานลำเลยี ง
3.4.1.1 ออกแบบขนาดชิ้นส่วนประกอบเชน่ ส่วนขาทั้ง 4 ด้าน โครงใช้อลูมิเนียม
โปรไฟล์ 5050 โดยการดาวน์โหลดไฟล์ sketch 2D จากเว็บไซต์ที่แจกไฟล์หลังจากนั้นใช้คำส่ัง
Extrude ในการเพม่ิ ขนาดความสูงของขาตั้งโดยมขี นาด 500mm

รูปที่ 3.4 การทำ Extrude เพิม่ ความสงู

33
3.4.1.2 ทำการ Copy&Paste และจดั วางตำแหนง่ ขาตัง้ ระยะหา่ งดังรูปท่ี 3.5 โดย
วัดระยะจากขอบในของโปรไฟล์มีขนาดกวา้ ง 285mm x ยาว 830mm

รูปที่ 3.5 การจัดวางตำแหน่งขาตงั้ ระยะห่าง
3.4.1.3 ให้ทำซ้ำในขั้นตอนที่ 1 เพื่อที่จะทำคานส่วนยึดกับขาตั้งแต่ให้ทำการ
กำหนดขนาดความยาวอลูมิเนียมโปรไฟล์เป็น 1030mm จำนวน 2 ท่อน โดยทำการตั้ง Alignment
ของโปรไฟลท์ อ่ นบนทั้งสองดังรปู ท่ี 3.6 และทำทั้งสองฝ่ังจะได้ผลลพั ธ์ดงั รูปที่ 3.7

รปู ท่ี 3.6 การตงั้ Alignment คานบน

รปู ที่ 3.7 ผลลัพธท์ ่ีไดจ้ ากการออกแบบ

34
3.4.1.4 ให้ทำซำ้ ในขน้ั ตอนท่ี 1 เพอ่ื ทจ่ี ะทำคานกลางยึดโครงอลูมิเนียมโปรไฟล์ท้ัง
สองเข้าหากันโดยตั้งระยะตามรูปที่ 3.8 กำหนดขนาดความยาวเป็น 285mm จำนวน 2 ท่อน จะได้
ผลลพั ธ์ในการออกแบบดังรปู ท่ี 3.9

รูปที่ 3.8 ระยะในการจดั วางคานกลางเพื่อเชื่อมเข้าหากัน

รูปท่ี 3.9 ผลลพั ธท์ ไ่ี ด้จากการจัดวางคานโปรไฟล์ตรงกลาง

35
3.4.1.5 ให้ทำการวาดแผ่นสำหรับประครองสายพานลำเลียงโดยกำหนดให้แผ่นมี
ขนาด กวา้ ง 375mm x ยาว 1070mm x หนา 5mm ดังรปู ท่ี 3.10 เมื่อนำไปประกอบเขา้ กบั ตัวโครง
โปรไฟล์แลว้ ก็จะไดผ้ ลลพั ธ์ดังรปู ที่ 3.11

รปู ที่ 3.10 ขนาดของแผ่นอะคลิ ิคสำหรับรองสายพานลำเลียง

รูปท่ี 3.11 ผลลพั ธ์เมอ่ื นำแผ่นอะคิลิคไปประกอบกับโครงโปรไฟล์


Click to View FlipBook Version