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

หลักสูตรการฝึกทักษะการประยุกต์ใช้ระบบ AI Machine Learning และ Image Processing ทั้ง 3 ระดับ

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Openaikitde64, 2021-06-07 05:09:14

หลักสูตรการฝึกทักษะการประยุกต์ใช้ระบบ AI Machine Learning และ Image Processing

หลักสูตรการฝึกทักษะการประยุกต์ใช้ระบบ AI Machine Learning และ Image Processing ทั้ง 3 ระดับ

Keywords: Machine Learning,Image Processing,AI

สำนักงานคณะกรรมการดจิ ทิ ัลเพ่อื เศรษฐกิจและสังคมแหง่ ชาติ

ภาพท่ี 18.10

type() เป็นคำสง่ั สำหรบั ตรวจสอบชนดิ ของตัวแปรว่าเปน็ แบบใด

ภาพท่ี 18.11

4. String
ประโยคในภาษาไพธอนสามารถใช้ไดท้ ั้ง " (Double Quote) และ ' (Single Quote) ซ่งึ ใช้ตัวไหนก็ได้

มคี า่ เท่ากัน แตถ่ า้ เลือกใช้ตัวใด ในประโยคปิดท้ายต้องเป็นตัวนัน้ ๆ
สำหรับ triple quote เขียนแบบนี้ """ (การเขียน double quote ต่อกัน 3 ตัว) ซึ่งวิธีการใช้ """ จะ

ตา่ งกบั " และ ' คือ สามารถเขียนขน้ึ บรรทัดใหม่ไดเ้ ลย

ภาพที่ 18.12

โครงการพัฒนาชดุ ทดลองปัญญาประดษิ ฐ์เพื่อพัฒนาทักษะดา้ นดจิ ทิ ลั ของนกั เรียนและนักศกึ ษาในสายวชิ าชพี อาชวี ศึกษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 150

สำนักงานคณะกรรมการดิจิทัลเพอ่ื เศรษฐกจิ และสังคมแหง่ ชาติ

5. Data Structure
5.1 list เป็นตัวแปรที่เก็บได้หลายค่าในตวั เดียว เทียบเท่ากับอเรย์ แต่ไม่จำกัดความยาว สามารถเพิ่ม

สมาชกิ หรือลบทง้ิ ออกไปได้เรื่อยๆ ดัชนี (index) ของ list ใชแ้ บบ zero-base หรอื เรมิ่ ตน้ ค่าแรกใน list จะเริ่มต้น
ทต่ี ำแหน่ง 0

ภาพที่ 18.13

5.2 tuple เป็นข้อมูลประเภท list ที่ไม่สามารถแก้ไขข้อมูลได้ (รวมถึงไม่สามารถ เพิ่ม/ลดข้อมูลได้
ด้วย) วธิ ีการสรา้ งจะคลา้ ยๆ กับ list แตเ่ ปลีย่ นเคร่ืองหมาย [ ] เปน็ ( ) เท่านน้ั เอง

ภาพท่ี 18.14

5.3 dictionary เป็นข้อมูลแบบ key-value โดยสามารถเรียกข้อมูลนั้นด้วยการใช้ key แทน ดัชนีได้
เลย โดยสัญลักษณข์ อง dict จะใช้ {key:val}

ภาพท่ี 18.15

5.4. set สมาชิกของ set จะมีแค่ 1 ตัวต่อ 1 ค่า หรือ ค่าต้องไม่ซ้ำกันเลย (unique list นั่นเอง)
สญั ลักษณ์ของ set จะใชค้ ล้ายๆ กบั dict คือ { } ดงั นั้นระวงั สับสนในการใช้

ภาพที่ 18.16

6. Control Flow

โครงการพัฒนาชดุ ทดลองปัญญาประดิษฐเ์ พือ่ พัฒนาทักษะดา้ นดิจิทัลของนักเรียนและนักศึกษาในสายวชิ าชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 151

สำนักงานคณะกรรมการดิจทิ ลั เพื่อเศรษฐกิจและสงั คมแห่งชาติ

เปน็ ตวั ควบคมุ การทำงานของโปรแกรม ใช้ "code block" เปน็ indent ในการแบง่ code block แทน
6.1 if ใชใ้ นการตรวจสอบว่าเง่อื นไข

ภาพที่ 18.17

6.2 while เป็นคำสง่ั ทำวนซ้ำไปจนกว่าเงื่อนไขจะเป็นเทจ็

ภาพที่ 18.18

7. Function
เป็นการสร้างโปรแกรมที่มีการเรียกใช้บ่อยๆ (reuse) การประกาศใช้ฟังก์ชันในภาษาไพธอน ขึ้นต้น

ด้วย def และส่วน โปรแกรม ที่เรียกว่า body ของฟังก์ชันจะต้องแบ่งด้วย code block แบบ indent ("space
เวน้ วรรค (มาตราฐานคือ 4 space)" หรอื การใช้ "tab แทบ็ 1 ครัง้ ") เช่นกัน

ภาพท่ี 18.19

18.3 การสรา้ งจยี ูไอดว้ ยภาษาไพธอน (Create Graphic User Interfaces in Python)
การสรา้ งจยี ไู อ เปน็ การทำให้โปรแกรมง่ายต่อการใชง้ าน สะดวก และดูสวยงามตอ่ ผใู้ ชง้ าน

โครงการพัฒนาชดุ ทดลองปัญญาประดษิ ฐเ์ พอ่ื พัฒนาทักษะดา้ นดิจิทัลของนกั เรียนและนักศึกษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 152

สำนกั งานคณะกรรมการดจิ ิทัลเพ่ือเศรษฐกิจและสังคมแหง่ ชาติ

ภาพที่ 18.20

ภาพท่ี 18.21

เนื่องจากจียูไอบนภาษาไพธอน มีมากมาย แต่การทำงานของ RPI นั้นมีไม่มากนัก เพราะต้องมีการ
สร้างไลบราร่บี นซพี ียู RPI ในการใช้งานครั้งนี้ มี จยี ไู อ แนะนำใหใ้ ช้

1. guizero

โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐเ์ พ่ือพฒั นาทักษะดา้ นดจิ ทิ ลั ของนกั เรียนและนกั ศกึ ษาในสายวิชาชีพอาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 153

สำนักงานคณะกรรมการดิจทิ ัลเพอื่ เศรษฐกิจและสงั คมแห่งชาติ

ภาพที่ 18.22

ภาพท่ี 18.23

2. Kyvi Python

โครงการพฒั นาชุดทดลองปญั ญาประดษิ ฐเ์ พอื่ พัฒนาทกั ษะดา้ นดิจทิ ัลของนักเรียนและนักศึกษาในสายวิชาชีพอาชวี ศึกษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 154

สำนักงานคณะกรรมการดิจิทลั เพ่อื เศรษฐกจิ และสงั คมแหง่ ชาติ

ภาพท่ี 18.24

3. Electron

ภาพท่ี 18.25

18.4 การใชง้ านไพธอน (Python) บนอุปกรณร์ าสเบอรร์ ่ีพาย (Raspberry Pi)
ระบบปฏบิ ตั ิการทเี่ ป็นแบบทางการท่ใี ช้บนอปุ กรณ์ราสเบอรี่พาย จะเปน็ ระบบปฏิบัติลีนกุ ซ์ เป็นแกนหลัก

และมีโปรแกรมไพธอนสำหรับใช้งานได้ทันที มีไพธอน รุ่น 2.x กับ 3.x ให้เลือกใช้ (รุ่น 2.x จะไม่มีการพัฒนาต่อ
การใช้ไพธอน รุน่ 2.x น้ี อาจจะพบปัญหาการใชไ้ ลบรารใี หม่ๆได้)

เมื่อต้องการนำไลบรารีมาใช้สำหรับ RPI บางไลบรารี ต้องติดตั้งโดยผ่านคำสั่ง pip3 install หรือบาง
ไลบรารตี ดิ ตั้งมาใหพ้ ร้อมระบบปฏิบัตกิ าร

ตอ่ ไปนี้ เป็นไลบรารที ่ใี ช้สำหรบั การตดิ ตอ่ กับ RPI
1. RPi.GPIO
ไลบรารี่นี้ถูกติดตั้งมาในระบบปฏิบัติการ Raspbian โดยสคริป Rpi.GPIO จำเป็นต้องทำงานที่ root
แต่สำหรบั รุ่น 0.6.0 ข้นึ ไป สามารถทำงานท่ี Pi ได้

โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐ์เพอ่ื พัฒนาทกั ษะดา้ นดิจิทัลของนกั เรยี นและนักศกึ ษาในสายวิชาชีพอาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 155

สำนักงานคณะกรรมการดจิ ิทลั เพอื่ เศรษฐกจิ และสงั คมแห่งชาติ

ภาพท่ี 18.26

ส า ม า ร ถ ด ู ร า ย ล ะ เ อ ี ย ด เ พ ิ ่ ม เ ต ิ ม ไ ด ้ ท ี ่ http://sourceforge.net/p/raspberry-gpio-
python/wiki/Home/

2. pigpio
สคริปท์ไพธอนของ pigpio สามารถทำงานบนเครื่องที่ใช้ Windows, Macs, และ Linux แต่เฉพาะ
pigpio daemon เท่านั้นท่ีจำเปน็ ตอ้ งทำงานบน RPI
Pigpio มีการเตรียมคุณสมบัติของมาตรฐาน gpio ครบถ้วน และนอกจากนั้นมีการเพิ่มส่วนเวลาของ
Pulse Width Modulation (PWM) สำหรับเซอรโ์ ว LED และมอเตอร์ มกี ารเพม่ิ สว่ นของเวลา timestamps ของ
gpio ขา 0-31 ถงึ 1 ลา้ นครัง้ ต่อวินาที (จากคา่ ปกติท่ี สองแสน)
สามารถดูรายละเอยี ดเพิม่ เตมิ http://abyz.me.uk/rpi/pigpio/python.html
สามารถดาวน์โหลดและติดตั้ง pigpio: http://abyz.me.uk/rpi/pigpio/download.html

โครงการพัฒนาชดุ ทดลองปัญญาประดิษฐเ์ พื่อพัฒนาทกั ษะดา้ นดจิ ิทัลของนกั เรียนและนกั ศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 156

สำนักงานคณะกรรมการดจิ ิทัลเพอื่ เศรษฐกิจและสังคมแห่งชาติ

ภาพที่ 18.27

3. RPIO
เป็นสว่ นต่อขยาย RPi.GPIO ดว้ ย TCP socket interrupts, เครอ่ื งมอื สำหรับการเรยี กใช้คำส่ัง เปน็ ต้น
สามารถดรู ายละเอียดเพ่มิ เตมิ ได้ท่ี https://pypi.python.org/pypi/RPIO
4. WiringPi2-Python
เปน็ สว่ นหน่งึ ของ Gordon Henderson's WiringPi

โครงการพัฒนาชดุ ทดลองปญั ญาประดิษฐเ์ พอ่ื พัฒนาทกั ษะดา้ นดจิ ิทลั ของนักเรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 157

สำนกั งานคณะกรรมการดจิ ิทัลเพ่ือเศรษฐกจิ และสงั คมแห่งชาติ

สามารถดูรายละเอียดเพ่มิ เติมได้ที่ https://github.com/WiringPi/WiringPi-Python

ภาพที่ 18.28

โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐ์เพื่อพัฒนาทักษะดา้ นดจิ ิทัลของนักเรยี นและนกั ศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 158

สำนกั งานคณะกรรมการดิจิทัลเพื่อเศรษฐกิจและสังคมแห่งชาติ

บทท่ี 19
การประมวลผลอิมเอจด้วยภาษาไพธอน

วัตถุประสงค์ รู้จักการทำงานของการประมวลผลอิมเมจ (Image Processing) และ การเขียนโปรแกรม
ภาษาไพธอน (Python) สำหรบั การประมวลผลอมิ เมจ (Image Processing) โดยประกอบด้วยหัวข้อดงั น้ี

19.1 บทนำเบือ้ งตน้ โอเพน็ ซีวี (Introduction OpenCV)
19.2 หลกั การของการประมวลผลอิมเมจ (Image Processing)
19.3 คำสง่ั พ้ืนฐานโอเพน็ ซีวี (OpenCV)
19.4 การเขยี นโปรแกรมสำหรบั การประมวลผลอิมเมจ (Image Processing) ด้วยภาษาไพธอน (python) และ
โอเพ็นซีวี (OpenCV)
19.1 บทนำเบอื้ งตน้ โอเพน็ ซวี ี (Introduction OpenCV)
โอเพ็นซีวี (OpenCV: Open Source Computer Vision Library) เป็นไลบรารีที่มีฟังค์ชั่นการเขียน
โปรแกรมด้านคอมพิวเตอร์วิทัศน์แบบเรียลไทม์ หรือแบบทันทีทันใด เริ่มแรกถูกพัฒนาโดยบริษัทอินเทล ต่อมา
ภายหลังได้รับการสนับสนุนโดยนาย Willow Garage ตามมาด้วย Itseez (ซึ่งต่อมาถูกเข้าซื้อโดยบริษัทอินเทล)
ไลบรารี่นี้เป็นการทำงานแบบข้ามแพลตฟอร์ม (เช่น บน Windows, Unix, Linux, Mac, Android, IOS เป็นต้น)
และการใช้งานแบบใช้ฟรีภายใต้ลิขสิทธิ์ของ Open-source Apache2 ไลบรารีนี้เริ่มใช้งานตั้งแต่ปี 2011 และ
คุณลกั ษณะตา่ งๆ ของโอเพ็นซวี ี มกี ารทำงานบน จพี ียู (GPU: Graphic Processing Unit) สำหรับการทำงานแบบ
เรียลไทมไ์ ด้อกี ดว้ ย

ภาพ 19.1

19.2 หลกั การของการประมวลผลอมิ เมจ (Image Processing)
การประมวลผลภาพ (image processing) คือ เป็นการประยุกต์ใช้งานการประมวลผลสัญญาณบน

สัญญาณ 2 มิติ เช่น ภาพนิ่ง (ภาพถ่าย) หรือภาพวีดิทัศน์ (วิดีโอ) และยังรวมถึงสัญญาณ 2 มิติอื่นๆ ที่ไม่ใช่ภาพ
ดว้ ย

แนวความคิดและเทคนิคในการประมวลผลสัญญาณสำหรบั สัญญาณ 1 มิตินั้น สามารถปรับมาใช้กับภาพ
ได้ง่าย แตน่ อกเหนือจากเทคนิคจากการประมวลผลสญั ญาณแลว้ การประมวลผลภาพกม็ ีเทคนิคและแนวความคิด

โครงการพฒั นาชดุ ทดลองปญั ญาประดิษฐ์เพ่อื พัฒนาทกั ษะดา้ นดิจทิ ลั ของนกั เรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 159

สำนกั งานคณะกรรมการดิจทิ ัลเพอื่ เศรษฐกิจและสงั คมแห่งชาติ

ท่เี ฉพาะ (เช่น connectivity และ rotation invariance) ซึ่งจะมีความหมายกับสญั ญาณ 2 มติ เิ ท่านน้ั แต่อย่างไร
ก็ตามเทคนคิ บางอยา่ ง จากการประมวลผลสญั ญาณใน 1 มติ ิ จะค่อนขา้ งซับซอ้ นเมือ่ นำมาใช้กับ 2 มิติ

ในยคุ ทีด่ จิ ทิ ลั ไม่ไดแ้ พร่หลายในปัจจุบัน การประมวลผลภาพนน้ั จะอยู่ในรปู ของการประมวลผลสัญญาณ
แอนะล็อก (Analog) โดยใช้อปุ กรณป์ รับแต่งแสง (Optics) ซ่งึ วิธเี หล่าน้ันกไ็ ม่ได้หายสาบสูญ หรอื เลกิ ใช้ไป ยังมีใช้
เป็นส่วนสำคัญ สำหรับการประยุกต์ใช้งานบางอย่าง เช่น ฮอโลกราฟี (Holography) แต่เนื่องจากอุปกรณ์
คอมพิวเตอร์ในปัจจุบัน ราคาถูกลง และเร็วขึ้นมาก การประมวลผลภาพดิจิทัล (Digital Image Processing) จึง
ได้รบั ความนิยมมากกวา่ เพราะการประมวลผลท่ีทำไดซ้ บั ซอ้ นขึ้น แมน่ ยำ และงา่ ยในการลงมือปฏบิ ัติ

การประมวลผลภาพดิจิทัล เป็นเทคนิคและขั้นตอนวิธีต่าง ๆ ที่ใช้การประมวลผลภาพที่อยู่ในรูปแบบ
ดจิ ทิ ลั (ภาพดิจิทัล)

ภาพ 19.2 วิดีโอสตรมี (video stream)
(เบื้องหลังภาพเลนนา)

ภาพในที่นี้ รวมความหมายถึงสญั ญาณดจิ ทิ ัลใน 2 มิติอื่น ๆ จะครอบคลุมถึงสัญญาณวิดโี อ (Video) หรือ
ภาพเคลอ่ื นไหว ซึง่ จะเปน็ ชดุ ของภาพนง่ิ เรียกวา่ เฟรม (Frame) หลาย ๆ ภาพตอ่ กันไปตามเวลา

ภาพที่นำมาต่อกันไปตามเวลา นับเป็นสัญญาณ 3 มิติ เมื่อนับเวลาเป็นมิตทิ ี่ 3 หรือ อาจจะครอบคลุมถึง
สัญญาณ 3 มิติอื่น ๆ เช่น ภาพ 3 มิติทางการแพทย์ หรือ อาจจะมากกว่านั้น เช่น ภาพ 3 มิติ และหลายชนิด
(Multimodal Image)

วตั ถปุ ระสงคก์ ารประมวลผลภาพ เราสามารถแบง่ ออกไดเ้ ปน็ 5 กลุ่ม
1. Visualization – ใชใ้ นการดวู ตั ถุในรปู แบบตา่ งๆ ทบ่ี างคร้งั มองท่วั ๆ ไป อาจจะมองไมเ่ หน็
2. Image sharpening and restoration – เพื่อสรา้ งภาพใหด้ กี ว่าเดมิ เชน่ ให้คมขน้ึ ชัดข้นึ สว่างข้นึ
3. Image retrieval – ใช้ในการคน้ หาภาพทีส่ นใจ
4. Measurement of pattern – ใช้วัดวัตถุต่างๆ ท่อี ยใู่ นภาพ
5. Image Recognition – ใชใ้ นการรู้จำวตั ถใุ นภาพ

ขน้ั ตอนสำคัญในการประมวลผลภาพดจิ ทิ ัล

โครงการพัฒนาชุดทดลองปญั ญาประดิษฐเ์ พ่ือพฒั นาทักษะดา้ นดิจทิ ัลของนักเรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 160

สำนกั งานคณะกรรมการดจิ ิทลั เพอ่ื เศรษฐกิจและสงั คมแห่งชาติ

ภาพ 19.3

1) Image Acquisition เป็นขั้นตอนแรกในการนําภาพเข้าระบบ โดยอาจจะมีการประมวลผลก่อน
(preprocessing) เชน่ ปรับขนาดของภาพ การเพม่ิ ส่ิงรบกวน การลดสญั ญาณรบกวน การตัดต่อภาพ เปน็ ตน้

2) Image Enhancement การปรับปรุงภาพให้ดีขึ้น โดยทําให้รายละเอียดที่ไม่ชัดเจนให้มีความ
ชดั เจนขน้ึ หรือทําให้คุณลกั ษณะที่สําคัญเด่นขน้ึ เชน่ การปรับความสว่างหรือมดื การปรับความชดั หรือเบลอ การ
ทำภาพใหม้ ีความละเอียดด้วยการใชอ้ ัลกอรทิ ึม Super Resolution, GAN (Generative

3) Image Restoration การทําให้ภาพคืนสู่สภาพเดิม หรือการปรับปรุงภาพให้เหมาะสมกับการ
มองเห็น ซ่งึ จะเกยี่ วขอ้ งกบั ความเส่ือม (degradation) โดยอาจมีการนำ GAN มาใชใ้ นการต่อเติม

4) Color Image Processing การประมวลผลภาพสี ซึง่ ภาพสไี ด้มีการใช้อย่างกว้างขวาง โดยจะมีการ
ใช้รูปแบบของสี และการแยกคณุ ลกั ษณะที่สาํ คญั ของภาพทส่ี นใจ

5) Wavelets and Multiresolution Processing เป็นพื้นฐานในการแทนภาพในความละเอียดของ
มมุ ต่างๆ การแบ่งย่อยรปู ภาพเปน็ พนื้ ท่เี ล็ก ๆ สำหรบั การบบี อดั ข้อมูลและเป็นการแทนการแสดงภาพแบบพรี ามิด

6) Compression การบบี อัดข้อมูลภาพ ซงึ่ จะทําใหภ้ าพมีขนาดเล็กลง
7) Morphological Processing คือ การประมวลผลด้านโครงสร้าง ซึ่งจะเกี่ยวข้องกับการแยก
ส่วนประกอบของภาพเพอื่ ใช้ในการแสดงรปู ร่าง
8) Segmentation การแบ่งสว่ นของภาพ มีสองแบบด้วยกันคือ

8.1) Semantic Segmentation เป็นการประมวลผลของลาเบลที่สนใจไปทีท่ ุกๆพกิ เซลล์ของภาพ
มกี ารกระทำหลายๆวัตถุบนคลาสเดยี วกันเป็นเหมือนช้นิ เดยี วกัน

8.2) Instance Segmentation เป็นการกระทำหลายๆวตั ถุบนคลาสเดียวกนั แต่แยกวตั ถุเป็นส่วนๆ
ดังน้นั Instance Segmentation จะมีการทำงานทีย่ ากกว่า Semantic Segmentation

โครงการพัฒนาชุดทดลองปัญญาประดษิ ฐ์เพอ่ื พฒั นาทกั ษะดา้ นดิจทิ ัลของนกั เรียนและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 161

สำนกั งานคณะกรรมการดิจทิ ลั เพือ่ เศรษฐกิจและสงั คมแหง่ ชาติ

ภาพ 19.3 Comparison between semantic and instance segmentation. (Source)

9) Representation and Description เป็นการทำงานตามผลลพั ธใ์ นขน้ั ตอนที่ 8 ในรูปของข้อมูล
ดบิ ทีเ่ ป็นพิกเซลล์

10) Object recognition การรู้จํารูปแบบ เช่น ใบหน้า สุนขั แมว เปน็ ต้น
11) Knowledge Base ฐานของความรู้ เป็นเก็บองค์ความรู้อาจจะเป็นรายละเอียดของรูปภาพ
บางสว่ นท่ีเราสนใจ เพื่อใช้ในการคน้ หาหรือตรวจสอบ ทัง้ ที่เป็นความละเอียดสูงหรอื ไม่กไ็ ด้
19.3 คำส่งั พืน้ ฐานโอเพน็ ซีวี (OpenCV)
โอเพ็นซีวี เราสามารถใช้งานได้กับหลายภาษาด้วยกัน เช่น C++, Java, Python, MATLAB/OBTAVE,
JavaScript เปน็ ตน้
1. คำสง่ั อา่ นภาพ - Imread
2. คำส่งั แสดงภาพ - Imshow
3. คำสง่ั บนั ทึกภาพ - Imwrite
4. คำส่ังอ่านภาพวีดโี อ - VideoCapture
5. คำสง่ั แปลงสี - cvtColor
6. คำส่งั เปล่ยี นขนาดของภาพ - Resize
7. คำสั่งหมุนภาพ - getRotationMatrix2D
19.4 การเขียนโปรแกรมสำหรับการประมวลผลอิมเมจ (Image Processing) ด้วยภาษาไพธอน
(Python) และโอเพน็ ซีวี (OpenCV)
1. การเร่มิ ตน้ ทำงานกับภาพ
1.1 การอา่ นภาพจากไฟล์

ภาพ 19.5

1.2 การแสดงภาพในหน้าต่างของโอเพน ซวี ี

โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐเ์ พื่อพฒั นาทักษะดา้ นดิจิทัลของนักเรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 162

สำนกั งานคณะกรรมการดจิ ิทัลเพ่อื เศรษฐกจิ และสังคมแห่งชาติ
ภาพ 19.6

ภาพ 19.7

1.3) การบนั ทึกภาพเปน็ ไฟล์ไปเกบ็ ทแ่ี หลง่ เกบ็ ไฟล์

ภาพ 19.8

โครงการพัฒนาชดุ ทดลองปญั ญาประดิษฐ์เพ่ือพฒั นาทักษะดา้ นดิจิทลั ของนักเรียนและนักศึกษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 163

สำนักงานคณะกรรมการดจิ ิทลั เพอื่ เศรษฐกิจและสงั คมแหง่ ชาติ

บทที่ 20
การใชง้ านระบบ Machine Learning ด้วยภาษาไพธอน

วัตถุประสงค์ เพื่อเรียนรู้การใช้งานระบบการเรียนรู้ของเครื่อง (Machine Learning) ด้วยกูเกิ้ล โคแลป
(Google Colab) เพื่อสร้าง โมเดล และ ประยุกต์ใช้กับกระบวนการสร้างอิมเมจ (Image Processing) และ
อปุ กรณร์ าสเบอรร์ ีไ่ พ (Raspberry Pi) โดยประกอบด้วยหวั ขอ้ ดงั นี้

20.1 กูเกล้ิ โคแลป (Google Colab)
20.2 การจำแนกประเภทวัตถดุ ้วยภาษาไพธอน (Object Classification with python)
20.3 นวิ รอลเนต็ เวิรค์ ดว้ ยภาษาไพธอน (Neural Network with python)
20.4 แนวทางการประยุกต์ใช้งานร่วมกับการประมวลผลอิมเมจและอุปกรณ์ราสเบอร์รี่ไพ ( Image
Processing and Raspberry Pi)
20.1 กเู กลิ โคแลป (Google Colab)
กูเกิล โคแลป มาจากคำว่า Colaboratory หรือเรียกสั้นๆว่า "Colab" เป็นบริการประเภทซอฟต์แวร์
บริการ (Software as a Service: SaaS หรือ On Demand Software: ODS) เป็นซอฟต์แวร์แอปพลิเคชันบน
เว็บทีผ่ ใู้ ช้สามารถเรียกใช้บริการได้ตามความต้องการใชง้ าน โดยทวั่ ไปซอฟตแ์ วรบ์ ริการน้ีจะถูกจดั เก็บอยู่บนเครื่อง
เซิรฟ์ เวอร์ของผู้ให้บริการ หรอื เป็นซอฟต์แวร์ที่จะถูกดาวน์โหลดลงสู่ตัวเคร่ืองของผู้ใช้บริการ โดยโปรแกรมอยู่บน
คลาวด์ของกูเกิล และยินยอมให้เราสามารถเขียนหรือเรียกใช้งานภาษาไพธอนในบราวเซอร์ของเราได้ โดยมี
คุณสมบัติ

1) ลดความต้องการในการกำหนดค่าตา่ งๆ
2) ใหม้ ีการเขา้ ถงึ จีพียใู นการประมวลผลได้ (มจี ำกัดในการใชง้ าน)
3) มกี ารแชร์ได้งา่ ยและสะดวก
การเรียกใช้งาน เป็นการทำงานบน Jupyter Notebook บนคลาวด์ของกูเกิล ซึ่ง Jupyter Notebook
เป็นเว็บแอปพลิเคชันระบบเปิด (Open Source Web Application) ที่เราสามารถเขียนภาษาไพธอนได้สะดวก
เรยี กใชง้ านและแสดงผลบนเว็บแอปพลเิ คชันได้ สามารถแชรไ์ ด้ และเพมิ่ คำอธบิ าย (Markdown) ได้

โครงการพฒั นาชุดทดลองปัญญาประดิษฐเ์ พื่อพัฒนาทกั ษะดา้ นดจิ ิทัลของนักเรียนและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 164

สำนกั งานคณะกรรมการดจิ ทิ ัลเพอ่ื เศรษฐกจิ และสงั คมแห่งชาติ

ภาพท่ี 20.1

ภาพท่ี 20.2

การใช้ Colab ใช้ได้ทั้งในกรณีที่เครื่องคอมพิวเตอร์มีทรัพยากรที่จำกัด หรือขาดทรัพยากรในการใช้งาน
ทางด้านการเรียนรู้ของเครื่อง การเรียนรู้เชิงลึก การเทรนข้อมูลที่จำเป็นต้องใช้จีพียู เป็นต้น และจำเป็นต้องใช้

โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐ์เพือ่ พฒั นาทกั ษะดา้ นดิจทิ ัลของนกั เรยี นและนักศึกษาในสายวิชาชีพอาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 165

สำนักงานคณะกรรมการดิจทิ ัลเพือ่ เศรษฐกิจและสังคมแห่งชาติ

อินเทอร์เน็ตในการเข้าไปใช้งาน หรือคอมพิวเตอร์ที่มีทรัพยากรพรอ้ มสำหรับการใช้งานในดา้ นนี้ ก็สามารถใช้งาน
ควบคู่กนั ได้

20.2 การจำแนกประเภทวัตถดุ ้วยภาษาไพธอน (Object Classification with python)
ในด้านคอมพิวเตอร์วิชั่นจะพบกับคำสองคำนี้เสมอ คำแรก คือ การจำแนกภาพ (Image Classification)

และคำทสี่ องคือ การตรวจจบั วตั ถุ (Object Detection)
มีการใช้กันสับสนและข้ามกนั ไปมา ความแตกต่างของสองคำนี้ กล่าวคือ การจำแนกภาพ เป็นการระบวุ ่า

ภาพที่สนใจนั้นเป็นอะไร โดยภาพนั้นๆ ต้องเป็นวัตถุเดียว ในทางกลับกัน ถ้าต้องการระบุวัตถุที่อยู่ในภาพว่าเป็น
อะไร อยตู่ รงไหน จะใชค้ ำวา่ การตรวจจบั วตั ถุ

แมว แมว
ภาพที่ 20.3

ภาพที่ 20.4

โครงการพัฒนาชุดทดลองปัญญาประดษิ ฐ์เพือ่ พฒั นาทกั ษะดา้ นดิจทิ ัลของนักเรียนและนกั ศกึ ษาในสายวชิ าชีพอาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 166

สำนกั งานคณะกรรมการดิจิทลั เพ่อื เศรษฐกิจและสงั คมแหง่ ชาติ

20.3 นิวรอลเนต็ เวิรค์ ดว้ ยภาษาไพธอน (Neural Network with Python)
นิวรอลเน็ตเวิร์คในภาษาไพธอน มีไลบรารี่จำนวนมากในปัจจุบัน ทำให้ผู้สนใจในด้านนี้ เลือกมาใช้หรือ

ศึกษาค่อนข้างยาก จากการสำรวจของ https://www.kdnuggets.com/2018/11/top-python-deep-
learning-libraries.html

ภาพที่ 20.5

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

แหล่งคน้ คว้าเพ่มิ เตมิ สำหรับ เทนซอรโ์ ฟลว์ https://github.com/tensorflow
2. ไพทอรช์ (PyTorch) เป็นแพคเกจไพธอนท่มี คี ุณสมบัติในระดับสงู ได้แก่

2.1) มีการคำนวณของเทนซอร์ (ทำงานคล้ายกับ NumPy) ดว้ ยการใชค้ วามสามารถของจีพียู
2.2) นวิ รอลเนต็ เวรค์ สรา้ งบนระบบ Tape-based Autograd System
สามารถมีการนำแพคเกจของไพธอน เช่น NumPy, SciPy และ Cython ไปเพิ่มความสามารถของ
PyTorch ไดต้ ามต้องการได้
3. อปาเช่ เอ็มเอก็ ซ์เนท็ (Apache MXNET)

โครงการพฒั นาชุดทดลองปัญญาประดษิ ฐเ์ พ่อื พฒั นาทักษะดา้ นดิจิทัลของนกั เรียนและนักศกึ ษาในสายวชิ าชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 167

สำนกั งานคณะกรรมการดจิ ทิ ลั เพือ่ เศรษฐกิจและสงั คมแหง่ ชาติ

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

4. เทียโน (Theano) เป็นไลบรารีของไพธอนที่ยินยอมให้เราได้นำการทำงานทางคณิตศาสตร์มากระทำ
กับอเรยห์ ลายๆมติ ิให้มปี ระสิทธภิ าพ มีการใชจ้ พี ียแู ละมีการกระทำสัญลกั ษณเ์ กดิ ประสิทธภิ าพสูงสดุ

5. คาฟเฟ (Caffe) เป็นแฟรมเวิร์คด้านการเรียนรูเ้ ชิงลึกด้วยชุดคำส่ัง ความเร็ว และการทำงานเป็นโมดูล
ได้ง่าย ทำให้มีขนาดเล็ก เร็ว ถูกพัฒนาโดย Berkeley AI Research (BAIR)/The Berkeley Vision and
Learning Center (BVLC) และชุมชนของคาฟเฟ

6. ฟาสเอไอ (fast.ai) มีการเทรนข้อมูลที่เร็วและให้นิวรอลเน็ตเวิร์คที่แม่นยำด้วยการใช้วิธีที่ดีแบบใหม่
สามารถดูรายละเอียดเพิ่มเติมได้ทีเ่ ว็บไซต์ fastai ไลบรารีนี้มีพืน้ ฐานจากการวจิ ัยในแนวทางการปฏิบตั ิที่ดีในดา้ น
การเรยี นรเู้ ชิงลึก และสนบั สนนุ ในด้าน ภาพ ข้อความ ตาราง และการทำงานร่วมกนั

7. ซีเอ็นทีเค (CNTK) เป็นชุดทำงานของไมโครซอฟท์ทางด้านการเรียนรู้เชิงลึก ที่อธิบายการทำงานด้าน
นิวรอลเน็ตเวิร์คเป็นขั้นตอนตามลำดับผา่ นการใชก้ ราฟที่เรียกว่า ไดเร็คกราฟ โดยโหนดท่ีเป็นใบแทนค่าขอ้ มูลเขา้
หรือพารามิเตอร์ของเน็ตเวิร์ค ในขณะที่โหนดอื่นแทนการทำงานแบบเมตริกซ์ของข้อมูลเข้านั้นๆ CNTK มีการให้
ผู้ใช้นำโมเดลที่ใช้กันแพร่หลายเช่น Feed-forward DNN, Convolutional nets (CNNs) และ Recurrent
Networks (RNNs/LSTMs) เป็นต้น

นอกจากนนั้ ยังมี ทีเอฟเลริ ์น (TFLearn) ลาซาน (Lasagne) โนเลริ น์ (Nolearn) ท่ีน่าสนใจอกี ด้วย
20.4 แนวทางการประยุกต์ใช้งานร่วมกับการประมวลผลอิมเมจและอุปกรณ์ราสเบอร์รี่ไพ ( Image
Processing and Raspberry Pi)

โครงการพัฒนาชดุ ทดลองปญั ญาประดิษฐเ์ พื่อพัฒนาทกั ษะดา้ นดจิ ทิ ลั ของนักเรยี นและนกั ศกึ ษาในสายวชิ าชพี อาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 168

สำนกั งานคณะกรรมการดิจิทัลเพ่ือเศรษฐกิจและสงั คมแห่งชาติ
ภาพที่ 20.6

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

1) ผ่านกล้องของราสเบอรีไพโดยตรง โดยผ่านช่องสำหรับการต่อกล้องโดยเฉพาะ การต่อผ่านช่อง
สำหรับตอ่ กลอ้ งโดยเฉพาะ เปน็ การทำงานทไ่ี ด้เรว็ ทส่ี ดุ

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

ภาพที่ 20.7

ภาพที่ 20.8

กล้องสำหรับเชื่อมต่อช่องของกล้องบนราสเบอรีไพได้โดยตรง มี 2 เวอร์ชั่นดว้ ยกัน
1) เวอรช์ ัน่ มาตรฐาน เป็นเวอรช์ นั่ ท่ีออกแบบในการจับภาพในแสงปกติ

โครงการพฒั นาชุดทดลองปัญญาประดษิ ฐเ์ พอื่ พฒั นาทกั ษะดา้ นดิจิทลั ของนักเรียนและนกั ศกึ ษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 169

สำนักงานคณะกรรมการดจิ ทิ ลั เพือ่ เศรษฐกิจและสงั คมแหง่ ชาติ

2) เวอรช์ ั่น NoIR (No Infrared) เปน็ เวอรช์ ่นั ไม่มกี ารกรองอินฟราเรด ดังนั้น สามารถใช้ร่วมกับแหล่ง
กำเหนิดแสดงอินฟาเรดเพื่อจบั ภาพในท่ีมดื ได้

ภาพที่ 20.9

สามารถตอ่ เชื่อมกล้องได้มากกว่า 1 กล้อง

ภาพท่ี 20.10

ภาพที่ 20.11

โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐ์เพ่อื พัฒนาทักษะดา้ นดจิ ิทลั ของนกั เรียนและนักศึกษาในสายวชิ าชีพอาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 170

สำนกั งานคณะกรรมการดจิ ทิ ัลเพื่อเศรษฐกิจและสงั คมแหง่ ชาติ

ภาพท่ี 20.12

แตส่ ำหรบั การเชื่อมต่อกล้องท่ีมีคุณสมบัติสูงๆ เช่น กลอ้ งโซน่ี เซียวม่ี ไฮวิช่ัน หรือกล้องที่ออกแบบมา
เฉพาะดา้ น สามารถนำมาต่อเชอื่ มผ่านอินเทอร์เน็ต ผ่านเครอื ขา่ ยแลนหรือไวไฟหรือผ่าน USB ได้

ภาพที่ 20.13

โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐเ์ พอ่ื พัฒนาทกั ษะดา้ นดจิ ิทลั ของนักเรยี นและนักศกึ ษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 171

สำนกั งานคณะกรรมการดจิ ิทลั เพ่ือเศรษฐกจิ และสงั คมแหง่ ชาติ

บทที่ 21
การทดลองชดุ ที่ 1

ชอ่ื ชุดทดลอง Lab 1 ภาษาไพทอน

วัตถปุ ระสงค์

เรียนรแู้ ละสรา้ งทักษะเกี่ยวกบั การเขียนโปรแกรมภาษาไพทอนเบ้ืองตน้ เพ่อื ให้สามารถใช้คำส่ังพ้ืนฐานใน
การสรา้ งโปรแกรมทีท่ ำงานได้

อุปกรณ์ท่ใี ช้

1. อุปกรณร์ าชเบอรร์ พี่ าย
2. จอภาพ
3. แปน้ พิมพ์
4. เมาส์

ข้ันตอนการเรียน

1. กจิ กรรมท่ี 1
1.1 เข้าระบบปฏบิ ตั ิการราชเบยี น (Raspbian) ซึง่ เป็นโอเอสหลกั ของ ราชเบอรีพ่ าย

1.2 กดปุ่ม Ctrl-t เพอื่ เข้าโหมด terminal

โครงการพัฒนาชุดทดลองปญั ญาประดิษฐเ์ พื่อพฒั นาทกั ษะดา้ นดจิ ทิ ลั ของนักเรยี นและนักศกึ ษาในสายวชิ าชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 172

สำนกั งานคณะกรรมการดิจิทัลเพือ่ เศรษฐกิจและสังคมแหง่ ชาติ

1.3 พิมพ์คำว่า sudo su แล้วกดปุ่ม Enter (ต่อไปจะใช้คำว่า <Enter> หมายถึงกดปุ่ม Enter)
ใส่ password ค่าปกติของโอเอสคือ raspi ถึงจุดน้ี ถ้ามีการปรับปรุงโอเอสใหม่ขนึ้ password อาจมี
การเปลย่ี นแปลงได้ ต้องอา่ นจากค่มู ือท่ี Download มาใชง้ าน

1.4 ใหพ้ ิมพค์ ำวา่ python <Enter>

เป็นการเรยี ก python รนุ่ 2 มาใชง้ าน (ในทีน่ ค่ี อื 2.7.16) ให้พมิ พ์คำว่า quit() หรือ Ctrl-D เป็นการ
ออกจากโปรแกรมไพทอน

โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐเ์ พือ่ พัฒนาทักษะดา้ นดจิ ิทัลของนกั เรียนและนกั ศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 173

สำนกั งานคณะกรรมการดิจทิ ัลเพือ่ เศรษฐกิจและสังคมแห่งชาติ

1.5 เนื่องจากไพทอน รุ่น 2 หยุดการพัฒนาแล้ว แต่อาจมีความจำเป็นที่ผู้เรียนต้องใช้ไพทอน รุ่น 2 อัน
เกิดจากการที่โปรแกรมเสริมบางตัว หรือโปรแกรมบางอย่าง รองรับเฉพาะไพทอน รุ่น 2 ผู้เรียนก็
สามารถเรียกใชง้ านได้
ในการทดลองในบทเรยี นน้ี เราจะใช้ ไพทอนรุ่น 3 เป็นโปรแกรมหลกั
ให้พิมพค์ ำวา่ python3 <Enter>

ที่ผ่านมา เราเรียกการทำงานของไพทอนเป็นแบบ โหมดอินเทอร์เอ็กทีป (Interactive Mode) เป็น
โหมดที่แสดงผลลัพธ์ออกมาทันที และอีกโหมดหนึ่ง คือ โหมดสคริป (Script Mode) เป็นการเขียน
ชุดคำสง่ั ไพทอนไว้ทไ่ี ฟล์ แลว้ เรียกไฟลม์ าทำงานอีกทีหน่งึ โหมดน้มี กั เปน็ การทำงานดว้ ย Integration
Development Environment (IDE) เป็นชุดเครื่องมือที่ช่วยในการเขียนสคริปให้ถูกต้อง และเรียก
การใช้งานไดท้ ันที มีหมวดช่วยเหลือในกรณีท่มี ีปญั หา
1.6 การใช้โหมดสคริป ให้ไปใช้ Thonny Python IDE เป็นโปรแกรมที่ติดตั้งมาพร้อมระบบปฏิบัติการ
(หรอื สามารถใช้ตวั อืน่ มาติดต้ังก็ได้ เช่น PyCharm หรอื่ ใช้ Editor ทวั่ ๆไปก็ได้)

โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐ์เพ่ือพฒั นาทกั ษะดา้ นดจิ ิทลั ของนกั เรยี นและนักศกึ ษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 174

สำนกั งานคณะกรรมการดจิ ิทลั เพื่อเศรษฐกิจและสังคมแหง่ ชาติ

ใช้ Mouse หรือ Keyborad คลก๊ิ ที่ Thonny Python IDE

โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐ์เพ่ือพฒั นาทกั ษะดา้ นดจิ ทิ ัลของนักเรยี นและนักศึกษาในสายวชิ าชพี อาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 175

สำนกั งานคณะกรรมการดจิ ทิ ัลเพื่อเศรษฐกจิ และสงั คมแหง่ ชาติ

2. กิจกรรมที่ 2
2.1 ใหท้ ดลองตามหน้าจอ

2.2 ใหไ้ ปโหลดภาพ Lenna จาก Internet มาเก็บไว้ท่โี ฟลเดอร์ Downloads
2.3 ที่ terminal ให้ใชค้ ำส่ังตดิ ตั้ง Opencv ดว้ ยคำสงั่ pip3 install opencv-python

สำหรับการติดตั้ง ไลบรารี่ตัวอ่นื ก็จะทำในลักษณะเดียวกนั
pip3 install opencv-python -y
sudo apt-get install libcblas-dev -y
sudo apt-get install libhdf5-dev -y
sudo apt-get install libhdf5-serial-dev -y
sudo apt-get install libatlas-base-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libqtgui4 -y
sudo apt-get install libqt4-test -y
sudo apt-get install libatlas-base-dev -y

apt-get เปน็ คำสั่งใช้ในการตดิ ต้งั แพคเกต็
พารามเิ ตอร์ –y เปน็ การยืนยันว่าใหต้ ดิ ต้งั โดยไมต่ อ้ งถามวา่ จะตดิ ตัง้ หรอื ไม่(Y/n)
2.4 ไปที่ Thonny Python IDE พมิ พค์ ำสั่งดงั รปู

โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐเ์ พ่ือพฒั นาทักษะดา้ นดิจทิ ัลของนกั เรยี นและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 176

สำนักงานคณะกรรมการดิจิทัลเพอ่ื เศรษฐกจิ และสังคมแห่งชาติ

2.5 คลก๊ิ ท่ี ที่จอภาพ แสดงดังรูป

2.6 คลกิ๊ ที่ เพอ่ื หยุดการทำงาน

โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐเ์ พ่ือพฒั นาทักษะดา้ นดจิ ิทลั ของนกั เรียนและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 177

สำนกั งานคณะกรรมการดจิ ิทัลเพือ่ เศรษฐกิจและสังคมแหง่ ชาติ

2.7 ไปที่โฟลเดอร์ที่เก็บโปรแกรม จะมีไฟล์รูป Lenna.png (ไฟล์เดิม) และ Lenna.jpg (ไฟล์ใหม่ ที่
บันทึก)

3. กจิ กรรมท่ี 3
เปน็ การอธบิ ายการทำงานของโปรแกรม

บรรทดั ท่ี 1 เป็นการนำไลบรารขี่ อง opencv ที่ช่ือ cv2 และให้ใช้คำว่า cv แทน cv2
บรรทัดท่ี 2 เปน็ การนำไลบรารี่ของระบบท่ีช่อื sys
บรรทดั ท่ี 3 เปน็ การอา่ นไฟลท์ ชี่ อ่ื Lenna.png โดยใชค้ ำส่งั cv.imread มาเก็บไวท้ ตี่ ัวแปร img
บรรทัดที่ 4 ใช้คำสง่ั if ในการตรวจสอบว่า ตวั แปร img มีขอ้ มลู ของภาพ Lenna.png ท่ีอา่ นมาหรอื ไม่ (is
None)
บรรทัดที่ 5 ถ้าไม่มีค่าใดๆในตัวแปร img ให้แสดงข้อความ Could not read the image พร้อมจบการ
ทำงานของโปรแกรม
บรรทัดที่ 6 เปน็ การนำข้อมลู ในตัวแปร img มาแสดงบนจอภาพ ในทน่ี ี้ แสดงเป็นรูปผหู้ ญงิ
บรรทัดที่ 7 เป็นการใช้คำสั่ง cv.waitKey(0) เก็บไว้ที่ตัวแปร k ในขณะที่แสดงบนจอภาพ คำสั่ง
cv.imshow จะแสดงภาพ ตอ้ งตามดว้ ยคำสั่ง cv.waitKey ทกุ คร้ัง
บรรทัดที่ 8 ตรวจสอบว่า ตัวแปร k มีการกดปุ่ม s หรือไม่ คำสั่ง ord() มาจากคำว่า ordinal เป็นการ
แปลงตวั อักษร เปน็ ตัวเลข เปน็ คำสั่ง chr() ตรงขา้ มกบั คำสง่ั ord() คอื แปลงตัวเลชเปน็ ตัวอกั ษร
บรรทัดที่ 9 ถา้ มีการกดปุม่ s ใหบ้ นั ทึกไฟล์ Lenna.jpg
4. กจิ กรรมเพิ่มเตมิ
4.1 ไฟล์ Lenna.png กบั ไฟล์ Lenna.jpg ถอื วา่ เป็นไฟล์ท่ีมขี นาดเทา่ กันหรือไม่ เพราะเหตุใด

โครงการพัฒนาชดุ ทดลองปัญญาประดิษฐเ์ พอ่ื พัฒนาทกั ษะดา้ นดิจิทลั ของนักเรยี นและนักศกึ ษาในสายวชิ าชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 178

สำนักงานคณะกรรมการดิจทิ ลั เพ่อื เศรษฐกจิ และสงั คมแหง่ ชาติ

4.2 บรรทัดที่ 9 ให้เปลี่ยนเป็นการบันทึกไฟล์เป็น Lenna.bmp และ lenna.png ให้ดูว่ามีการ
เปลี่ยนแปลงอะไรบ้าง

4.3 บรรทัดที่ 3 ให้แก้ไขคำสั่ง img = cv.imread(‘Lenna.png’) แล้วลองเรียกการทำงานโปรแกรม ผล
ออกมาเหมือนกนั หรอื ไม่ เพราะเหตุใด

โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐ์เพอื่ พฒั นาทกั ษะดา้ นดิจิทัลของนกั เรยี นและนักศึกษาในสายวิชาชีพอาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 179

สำนักงานคณะกรรมการดิจิทัลเพอ่ื เศรษฐกจิ และสงั คมแห่งชาติ

บทท่ี 22

การทดลองชุดท่ี 2
ชื่อชดุ ทดลอง Lab 2 การจำแนกวัตถุ

วตั ถปุ ระสงค์

เรียนรู้สร้างทักษะเกี่ยวกับการเขียนโปรแกรมไพทอนในการจำแนกวัตถุ เช่น ภาพต่าง ๆ ซึ่งเป็นพื้นฐาน
ของงานเอไอ (AI)

อุปกรณ์ที่ใช้

1. อปุ กรณร์ าชเบอร์ร่ีพาย
2. จอภาพ
3. แป้นพิมพ์
4. เมาส์

ขน้ั ตอนการเรียน

1. กิจกรรมที่ 1
1.1 ตดิ ตงั้ Jupyter Notebook

Jupyter Notebook เป็นเว็บแอปปลิเคชั่นแบบระบบเปิด (open-source web application) ที่ช่วยใน
การสรา้ งและแบ่งปนั เอกสารตา่ งๆเชน่ โปรแกรม สมการ การแสดงผลทีส่ วยงามและการอธิบายเปน็ ข้อความต่างๆ
นำไปใช้ในการทำความสะอาดข้อมูล การเปลี่ยนผ่านข้อมูล การทำแบบจำลองตัวเลข สถิติ การเรียนรู้ของครื่อง
และอน่ื ๆอกี มากมาย

ให้ตดิ ต้งั ตามคำสัง่ ต่อไปนบ้ี น Terminal

โครงการพัฒนาชุดทดลองปญั ญาประดิษฐ์เพอื่ พัฒนาทักษะดา้ นดิจทิ ัลของนักเรียนและนกั ศกึ ษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 180

สำนกั งานคณะกรรมการดิจิทัลเพอ่ื เศรษฐกิจและสงั คมแหง่ ชาติ

sudo su -
apt-get update
apt-get install python3-matplotlib
apt-get install python3-scipy
pip3 install --upgrade pip
sudo pip3 install jupyter

1.2 เรยี ก Jupyter Notebook มาใชง้ าน
ที่จอภาพ ปรากฏคลา้ ยๆกนั ดงั รปู

ใหพ้ มิ พ์อยา่ งใดอยา่ งหน่ึงทบี่ ราวเซอร์ ดังรูป

เมื่อใส่ URL บนบราวเซอร์ ทหี่ น้าจอปรากฏดังรูป นน่ั คอื เราพรอ้ มสำหรบั ใช้งานบน Jupyter Notebook
หรือบางครงั้ เรยี กสัน้ ๆว่า Notebook

โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐ์เพอื่ พฒั นาทกั ษะดา้ นดิจิทลั ของนักเรยี นและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 181

สำนักงานคณะกรรมการดิจทิ ลั เพอ่ื เศรษฐกจิ และสงั คมแห่งชาติ

2. กจิ กรรมที่ 2
การจัดกล่มุ ของเสอ้ื ผา้ โดยใชไ้ ลบราร่ขี อง Tensorflow และ Keras

2.1 ไปที่ มุมบนทางขวามือ แล้วเลือก Python3 พิมพ์โปรแกรมในช่องแรกตามรูป แล้ว

กดปุ่ม <Shift><Enter> เพ่ือให้โปรแกรมในแต่ละชอ่ งทำงาน

2.2 ในชุดทดลองนี้ มีการใช้ชุดข้อมูล Fashion MNIST ประกอบด้วยภาพ 70,000 ภาพใน 10 กลุ่ม
รูปภาพในแตล่ ะรูปมีความละเอยี ดที่ 28 x 28 พกิ เซล ดังรูป

โครงการพัฒนาชุดทดลองปญั ญาประดิษฐ์เพื่อพฒั นาทกั ษะดา้ นดจิ ทิ ัลของนกั เรียนและนกั ศึกษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 182

สำนกั งานคณะกรรมการดิจทิ ลั เพ่อื เศรษฐกิจและสงั คมแหง่ ชาติ

ภาพจาก Fashion-MNIST samples (by Zalando, MIT License)
มีการแบ่งภาพสำหรับฝึกสอน 60,000 ภาพ และแบ่งภาพสำหรับการประเมินความแม่นยำของการจัด

กล่มุ ภาพจำนวน 10,000 ภาพ เราสามารถดึงภาพ Fashion MNIST ได้โดยตรงจาก Tensorflow
เราสามารถเพิ่มช่องที่เรียกว่า เซลล์ (Cell) ใน Jupyter Notebook (ต่อไปจะเรียกสั้นๆว่า Notebook)

และมคี ำส่งั ที่สัง่ จากแปน้ พมิ พไ์ ด้

โครงการพฒั นาชดุ ทดลองปญั ญาประดิษฐเ์ พ่ือพฒั นาทกั ษะดา้ นดิจทิ ัลของนักเรียนและนักศึกษาในสายวชิ าชีพอาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 183

สำนกั งานคณะกรรมการดิจทิ ลั เพือ่ เศรษฐกิจและสงั คมแห่งชาติ

คำสัง่ ทีใ่ ช้กันบอ่ ย ไดแ้ กค่ ำสง่ั Ctrl-Enter, A, B, X แตอ่ ยา่ ลืม ใหก้ ดปมุ่ Esc เพือ่ เข้าส่กู ารใชค้ ำสง่ั ก่อน
การเรียกใช้งานแต่ละเซลล์ ให้ใช้คำสั่ง Ctrl-Enter จะสังเกตุได้ว่า มีเครื่องหมาย ดอกจันทร์ (*) ขึ้นใน
ขณะท่กี ำลงั ประมวลผล และประมวลผลเสรจ็ ก็จะขนึ้ เป็นหมายเลข
ต่อไปเปน็ การใช้คำส่ังดงึ ข้อมลู จาก Tensorflow
2.3 โหลดขอ้ มลู เราจะได้อเรย์ 4 ชดุ เปน็ ค่าของ NumPy ซ่งึ เปน็ ตวั เลขทเี่ ก็บค่าของภาพ

โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐ์เพอ่ื พัฒนาทักษะดา้ นดจิ ิทลั ของนักเรยี นและนกั ศกึ ษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 184

สำนักงานคณะกรรมการดจิ ิทัลเพ่อื เศรษฐกิจและสังคมแห่งชาติ

1) เปน็ อเรยข์ อง train_images และ train_labels ซงึ่ เปน็ ชุดฝกึ สอน
2) เป็นอเรย์ของ test_images และ test_labels ซ่ึงเป็นชดุ ทดสอบ

ภาพทไ่ี ด้ เป็นอเรยข์ อง NumPy ขนาด 28 x 28 และมีค่า 0-255 สำหรับลาเบล เปน็ อเรยเ์ ลขจำนวนเต็ม
มีคา่ 0-9 ซึ่งแทรคา่ ลาเบลตามทีก่ ำหนดดังนี้

เป็นคำส่งั ในการกำหนด Class Name
2.4 สำรวจดูว่า ข้อมลู ทไ่ี ดม้ าถกู ต้องหรอื ไม่
ใช้คำสง่ั shape จะได้คา่ เป็น (60000 ,28 ,28) เปน็ การบอกจำนวนภาพ และขนาดของพกิ เซล

โครงการพฒั นาชดุ ทดลองปญั ญาประดิษฐเ์ พ่ือพฒั นาทักษะดา้ นดิจิทัลของนักเรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 185

สำนักงานคณะกรรมการดิจิทัลเพื่อเศรษฐกจิ และสงั คมแหง่ ชาติ

ใช้คำสงั่ len บอกจำนวนของลาเบลของชุดฝึกสอน dtype มาจากคำวา่ data type เปน็ การบอกประเภท
ของข้อมลู วา่ เปน็ uint8 (เปน็ unsigned integer 8-bit)

โครงการพัฒนาชุดทดลองปัญญาประดษิ ฐ์เพ่อื พัฒนาทกั ษะดา้ นดิจทิ ลั ของนกั เรยี นและนกั ศึกษาในสายวิชาชพี อาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 186

สำนักงานคณะกรรมการดจิ ทิ ลั เพ่อื เศรษฐกจิ และสังคมแห่งชาติ

3. กิจกรรมที่ 3
3.1 การจัดทำข้อมูลก่อนการประมวลผล จากรูป เป็นการดึงข้อมูลของรูปจากข้อมูลฝึกสอนรูปแรก ดูได้
จาก train_images[0]

3.2 ทำ Normalized ดว้ ยการหารด้วยคา่ 255 ทง้ั ขอ้ มูลชุดฝึกสอนและชุดทดสอบ

3.3 ตรวจสอบว่าข้อมูลว่าได้ถูกต้องตามรูปแบบหรือไม่ โดยการแสดงภาพของชุดข้อมูลผึกสอนแล ะชื่อ
คลาสใต้ภาพนน้ั ๆ

โครงการพฒั นาชุดทดลองปัญญาประดษิ ฐเ์ พื่อพฒั นาทกั ษะดา้ นดิจทิ ัลของนักเรียนและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 187

สำนักงานคณะกรรมการดจิ ทิ ลั เพอื่ เศรษฐกจิ และสังคมแห่งชาติ

4. กจิ กรรมที่ 4
สรา้ งโมเดล เพ่ือนำโมเดลไปใชง้ านตอ่ ไป
4.1 กำหนดเลเยอร์ (Setup Layer)
4.2 คอมไพลโ์ มเดล ด้วยการกำหนด Loss Function, Optimizer และ Metrics

โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐเ์ พ่อื พฒั นาทกั ษะดา้ นดจิ ทิ ัลของนักเรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 188

สำนกั งานคณะกรรมการดิจิทลั เพอ่ื เศรษฐกจิ และสังคมแห่งชาติ

5. กจิ กรรมท่ี 5
แทรนโมเดล
5.1 เปน็ การ Feed โมเดล ด้วยการส่งข้อมลู ชุดแทรนเขา้ ไปในโมเดล

5.2 ประเมินความแมน่ ยำ (Accuracy)

6. ใชโ้ มเดลที่ไดจ้ ากการฝกึ สอนนำมาทดสอบ
เปน็ การทดสอบภาพหนง่ึ ภาพจากขอ้ มลู ทดสอบ

ดวู า่ ผลท่ไี ด้ เป็นคลาสที่ 2

โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐ์เพ่อื พัฒนาทักษะดา้ นดจิ ิทัลของนักเรยี นและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 189

สำนกั งานคณะกรรมการดจิ ิทลั เพื่อเศรษฐกิจและสงั คมแห่งชาติ

7. กิจกรรมเพิม่ เติม
7.1 ให้ลองเปลี่ยน loss function เป็นตวั อนื่ เชน่ adam ทำใหค้ ่าความแมน่ ยำสงู ข้ึนหรือไม่
7.2 หาแนวทางในการทำให้ค่าความแมน่ ยำสูงข้ึน

โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐเ์ พอื่ พฒั นาทกั ษะดา้ นดิจทิ ลั ของนกั เรยี นและนกั ศึกษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 190

สำนกั งานคณะกรรมการดิจทิ ลั เพือ่ เศรษฐกิจและสงั คมแหง่ ชาติ

บทท่ี 23

การทดลองชดุ ที่ 3
ช่ือชดุ ทดลอง Lab 3 การจดั กลมุ่ วตั ถุ

วัตถปุ ระสงค์

เรยี นรู้เกี่ยวกบั การเขียนโปรแกรมไพทอนในการจดั กล่มุ วตั ถตุ ามคณุ สมบัตทิ ี่กำหนด

อุปกรณ์ท่ีใช้

1. อุปกรณร์ าชเบอร์ร่ีพาย
2. จอภาพ
3. แป้นพิมพ์
4. เมาส์

ขัน้ ตอนการเรียน

เป็นการหาดอกไอริสจากการให้คุณลักษณะของความยาว ความกว้างของกลีบเลี้ยง และความยาวและ
ความกว้างของกรีบดอก โดยชุดขอ้ มลู ของดอกไอริสมีออกเป็นกลุ่มต่างๆ ตามลักษณะของดอก ลักษณะเหล่าน้ีคือ
ความยาวและความกว้างของกลีบเลีย้ ง และความยาวและความกว้างของกลบี ดอก โดยมีการจัดกล่มุ ของดอกไอริส
จากคณุ ลักษณะทใี่ หม้ า

1. กจิ กรรมท่ี 1

โ ห ล ด ข ้ อ ม ู ล iris.data จ า ก ร ู ป ท ี ่ https://docs.microsoft.com/th-th/dotnet/machine-
learning/tutorials/iris-clustering โดยกด mouse ไปทางขวามือ แล้ว save บน โฟลเดอร์ที่สามารถเก็บข้อมูล
ได้

โครงการพฒั นาชุดทดลองปัญญาประดิษฐ์เพื่อพฒั นาทักษะดา้ นดจิ ิทัลของนักเรยี นและนักศกึ ษาในสายวชิ าชีพอาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 191

สำนกั งานคณะกรรมการดจิ ทิ ลั เพอ่ื เศรษฐกิจและสังคมแหง่ ชาติ

โครงสร้างของข้อมูล iris.data ประกอบด้วย 5 คอลัมน์
• ความยาวของกลีบเลย้ี ง หนว่ ยเปน็ เซน็ ติเมตร (sepal length in centimeters)
• ความกวา้ งของกลีบเลย้ี ง หนว่ ยเป็น เซน็ ตเิ มตร (sepal width in centimeters)
• ความยาวของกลีบดอก หนว่ ยเปน็ เซ็นตเิ มตร (petal length in centimeters)
• ความกว้างของกลีบดอก หนว่ ยเป็น เซ็นติเมตร (petal width in centimeters)
• ประเภทของดอกไอริส (type of iris flower)

โครงการพฒั นาชุดทดลองปญั ญาประดษิ ฐ์เพื่อพัฒนาทักษะดา้ นดจิ ทิ ลั ของนักเรียนและนักศึกษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 192

สำนักงานคณะกรรมการดจิ ิทัลเพอื่ เศรษฐกิจและสงั คมแหง่ ชาติ

2. กิจกรรมที่ 2
2.1 เขา้ สู่ Jupyter Notebook พมิ พ์โปรแกรมดังรปู

เป็นการ import ไลบรารี่ทีต่ อ้ งใช้ใน lab นี้
2.2 โหลดขอ้ มูล iris.csv หรอื จะใช้ขอ้ มูลท่มี กี ารโหลดก่อนหนา้ นีม้ าใชก้ ็ได้

โครงการพัฒนาชุดทดลองปัญญาประดิษฐเ์ พอ่ื พัฒนาทักษะดา้ นดิจิทัลของนักเรียนและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 193

สำนักงานคณะกรรมการดิจิทลั เพ่อื เศรษฐกจิ และสังคมแหง่ ชาติ

2.3 อ่านขอ้ มลู จากไฟลท์ ีม่ กี ารโหลดไว้ที่แหลง่ บันทึกข้อมูล
2.4 ก ำ ห น ด ต ั ว แ ป ร ส ำ ห ร ั บ ข ้ อ ม ู ล แ ล ะ ล า เ บ ล ท ี ่ จ ะ น ำ ม า ใ ช ้ ง า น
แสดงข้อมูลของตวั แปร X

แสดงข้อมลู ของตวั แปร y

โครงการพัฒนาชุดทดลองปัญญาประดษิ ฐ์เพื่อพฒั นาทักษะดา้ นดจิ ิทลั ของนักเรยี นและนักศึกษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 194

สำนกั งานคณะกรรมการดจิ ิทัลเพอ่ื เศรษฐกิจและสงั คมแห่งชาติ

2.5 แยกขอ้ มูลชดุ เต็มใหเ้ ปน็ ชดุ ฝึก 70% ของขอ้ มลู และชดุ ทดสอบ 30%

2.6 ปรับข้อมลู ใหเ้ ป็นตามมาตรฐานเดียวกันทัง้ หมด

3. กิจกรรมที่ 3
ใช้ Support Vector Machine (SVM) ในการจดั กลมุ่

ข้อมลู คา่ ความแม่นยำ อาจจะไมเ่ ทา่ กันก็ไดเ้ ม่ือนำไปปฏิบัติจริง แตอ่ าจเคลอ่ื นกันได้ไม่มากเม่ือเทียบกับท่ี
แสดงผลใหเ้ ห็น

4. กิจกรรมเพมิ่ เตมิ
4.1 ใหเ้ ปลยี่ นชุดฝึกสอนเปน็ 80% และชุดทดสอบ 20% ดผู ลการทำงาน
4.2 ถา้ ไม่มีการปรับคา่ เปน็ มาตรฐานเดยี วกนั ทงั้ หมด จากข้อ 2.6 ใหด้ ผู ลการทำงาน

import pandas as pd
import numpy as np
import requests

โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐเ์ พือ่ พฒั นาทกั ษะดา้ นดจิ ทิ ัลของนกั เรยี นและนักศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 195

สำนกั งานคณะกรรมการดจิ ิทัลเพ่ือเศรษฐกิจและสังคมแห่งชาติ

import re
import seaborn
import matplotlib.pyplot as plt
import tensorflow as tf
from sklearn.preprocessing import LabelBinarizer, normalize #1
from sklearn.model_selection import train_test_split #2
from datetime import datetime

def forward_propagation(x):
#Hidden layer 1
layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'])
layer_1 = tf.nn.relu(layer_1)
#Hidden layer 2
layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2'])
layer_2 = tf.nn.relu(layer_2)
#Output fully connected layer
out_layer = tf.matmul(layer_2, weights['out']) + biases['out']
return out_layer

#Download the dataset
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
r = requests.get(url, allow_redirects=True)
filename = "raw.csv"
open(filename, 'wb').write(r.content)

#Load data into memory
dataset = pd.read_csv('raw.csv', header=None, names=['sepal_length',

'sepal_width',
'petal_length',
'petal_width',
'species'])
dataset.head()

##Plot dataset to visualize
##NOTE: "size" parameter has been deprecated, now uses "height" instead

โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐเ์ พื่อพัฒนาทักษะดา้ นดจิ ิทลั ของนกั เรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 196

สำนกั งานคณะกรรมการดิจิทลั เพอื่ เศรษฐกจิ และสงั คมแห่งชาติ

#seaborn.pairplot(dataset, hue="species", height=2, diag_kind="kde")
#plt.show()

#1
species_lb = LabelBinarizer()
Y = species_lb.fit_transform(dataset.species.values)

FEATURES = dataset.columns[0:4]
X_data = dataset[FEATURES].as_matrix()
X_data = normalize(X_data)

#2
X_train, X_test, y_train, y_test = train_test_split(X_data,

Y,
test_size=0.3,
random_state=1)
X_train.shape

#Model Parameters
learning_rate = 0.01
training_epochs = 100

#Neural Network Parameters
n_hidden_1 = 256 #1st layer number of neurons
n_hidden_2 = 128 #2nd layer number of neurons
n_input = X_train.shape[1] #input shape (105, 4)
n_classes = y_train.shape[1] #classes to predict

#Inputs
X = tf.placeholder("float",

shape=[None, n_input])
y = tf.placeholder("float",

shape=[None, n_classes])

#Dictionary of Weights and Biases

โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐเ์ พอ่ื พัฒนาทักษะดา้ นดจิ ิทลั ของนกั เรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 197

สำนกั งานคณะกรรมการดิจิทลั เพอ่ื เศรษฐกิจและสังคมแหง่ ชาติ

weights = {
'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])),
'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])),
'out': tf.Variable(tf.random_normal([n_hidden_2, n_classes]))

}

biases = {
'b1': tf.Variable(tf.random_normal([n_hidden_1])),
'b2': tf.Variable(tf.random_normal([n_hidden_2])),
'out': tf.Variable(tf.random_normal([n_classes]))

}

#Model Outputs
yhat = forward_propagation(X)
ypredict = tf.argmax(yhat, axis=1)

#Backward propagation
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=yhat))
optimizer = tf.train.GradientDescentOptimizer(learning_rate)

train_op = optimizer.minimize(cost)

#Tensorflow sessions to train neural network
#Initializing variables
init = tf.global_variables_initializer()
#3
startTime = datetime.now()

with tf.Session() as sess:
sess.run(init)

#Epochs
for epoch in range(training_epochs):

for i in range(len(X_train)):
summary = sess.run(train_op, feed_dict={X: X_train[i: i + 1], y: y_train[i: i + 1]})

โครงการพฒั นาชุดทดลองปัญญาประดษิ ฐ์เพ่ือพัฒนาทกั ษะดา้ นดจิ ิทัลของนกั เรยี นและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 198

สำนักงานคณะกรรมการดจิ ิทัลเพ่ือเศรษฐกจิ และสังคมแห่งชาติ

train_accuracy = np.mean(np.argmax(y_train, axis=1) == sess.run(ypredict,
feed_dict={X: X_train, y: y_train}))

test_accuracy = np.mean(np.argmax(y_test, axis=1) == sess.run(ypredict,
feed_dict={X: X_test, y: y_test}))

print("Epoch = %d, train accuracy = %.2f%%, test accuracy = %.2f%%" % (epoch
+ 1, 100. * train_accuracy, 100. * test_accuracy))

sess.close()
print("Time elapsed:", datetime.now() - startTime)

บทที่ 24

การทดลองชดุ ท่ี 4
ชอ่ื ชดุ ทดลอง Lab 4 Machine Learning : Supervised Learning
วตั ถปุ ระสงค์

เรียนรู้ทดลองโปรแกรมเอไอ ด้วยแบบอัลกอริทึมคณิตศาสตร์แบบการเรียนรู้แบบมีผู้สอน (Supervised
Learning)
อุปกรณท์ ี่ใช้

1. อปุ กรณ์ราชเบอรร์ พ่ี าย
2. จอภาพ
3. แปน้ พิมพ์
4. เมาส์
ขัน้ ตอนการเรยี น
1. กิจกรรมท่ี 1

1.1 การวเิ คราะห์การถดถอยเชงิ เส้น (Linear Regression)
ขอ้ มลู ทใี่ ช้

โครงการพฒั นาชุดทดลองปัญญาประดิษฐ์เพ่อื พฒั นาทกั ษะดา้ นดจิ ิทัลของนกั เรียนและนกั ศกึ ษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 199


Click to View FlipBook Version