SlideShare a Scribd company logo
1 of 8
Download to read offline
1
Using the Deep Learning for Garbage Detection with the Applied
of Smart Bin
Natthasath Saksupanara (5920421008)
Graduate School of Applied Statistics, Computer Science
National Institute Development Administration
natthasath.sak@gmail.com
Abstract: This study studies about how to use imitate network to choose automatic garbage by
applying with the intelligent bin. Furthermore, it is a depth study and multifunction, especially using
for a smart farm and a smart family. Besides, this study can be used further for POC (Proof-of-
Concept) development. This can use for creating a prototype and apply for practical use in the
future.
1. INTRODUCTION
ปจจุบัน ปญหาขยะถือเปนปญหาสำคัญที่ทั่วโลกกำลังเผชิญ ซึ่งสงผละกระทบตอระบบนิเวศและสิ่งแวดลอม สืบ
เนื่องมาจากปริมาณขยะที่เพิ่มมากขึ้นในแตละป ตามรายงานสถานการณขยะมูลฝอยของกรมควบคุมมลพิษ ป 2559 ประเทศ
ไทยมีขยะมูลฝอยประมาณ 27 ลานตัน / ป ถูกนำกลับมาใชใหม 22%, ถูกนำไปกำจัด 35% สวนอีก 43% ถูกนำไปกำจัดไม
ถูกตอง ซึ่งอาจเกิดจากกระบวนการในการคัดแยกขยะที่ไมถูกตอง ซึ่งเราตองการทำใหอัตราสวนการนำกลับมาใชใหมเพิ่มขึ้น จึงมี
การรณรงคแยกขยะกอนทิ้ง เพื่อลดปริมาณขยะและกำจัดขยะไดอยางถูกวิธี อีกทั้งถังขยะที่มีการใชอยูในปจจุบัน การทิ้งขยะลง
ทั้งขยะจะตองสัมผัสฝาถังขยะดวยมือ ซึ่งฝาถังขยะควรจะเปนแบบ Swing Bin ทำใหการใชงานถังขยะในปจจุบันไมถูกสุขอนามัย
ผูทำวิจัยจึงเล็งเห็นถึงปญหาและอุปสรรค และเห็นวาสามารถนำโครงขายประสาทเทียม (Neural Network) สำหรับการทำ
Object Detection มาใชในการคัดแยกขยะแบบอัตโนมัติ เชน Bottle, Paper, Battery และอื่นๆ โดยใชขอมูลรูปภาพ Dataset
ทั้งจากการถายขอมูลรูปภาพเพื่อทำ Dataset เอง และจากการดาวนโหลด Open Source โดยใช Raspberry Pi รวมกับ
Raspberry Pi Camera ในการตรวจจับวัตถุ และนำมาประยุกตเขากับถังขยะอัจฉริยะ ดวยบอรด Arduino เพื่อสั่งงาน Servo
Motor ในการควบคุมการเปดปดของถังขยะผานสาย Serial ระหวาง Raspberry และ Arduino มาใชในการแกไขปญหาขางตน
2. RELATED WORK
2.1 Neural Network
Neural Network โครงขายประสามเทียมที่เกิดจากการจำลองสมองของมนุษย ซึ่งเปนหนึ่งใน Algorithm ของ
Machine Learning มีรูปแบบการทำงานที่ซับซอน โดยใช Multiple Hidden Layer และใชฟงกชั่น Non-Linear Activation
นำขอมูลเขาไปใน Input Layer สงตอไปยัง Multiple Hidden Layer ซึ่งจะมีฟงกชั่น (Mini Function) และคาสัมประสิทธที่
ไมซ้ำกัน (Unique Coefficients) ในการเรียนรูซึ่งจะได Output ออกมา Neural Network จะทำการเพิ่มประสิทธิภาพโดย
การ Train ซ้ำไปซ้ำมา ซึ่งจะใชเทคนิคที่เรียกวา Gradient Descent เมื่อสิ้นสุดแตละรอบในการ Train ก็จะทำการคำนวณ
Derivatives ของ Error Metric และสงคากลับไปผานเทคนิคที่เรียกวา Backpropagation สวนคา Coefficients (Weight)
คาสัมประสิทธิ์หรือน้ำหนักในแตละ Neuron จะถูกปรับโดยเทียบกับ Error ทั้งหมด Adjusted Relative ซึ่งกระบวนการนี้จะ
ทำซ้ำจนกวา Error จะลดลงจนถึงจุดที่สามารถยอมรับได
2
Figure 1: Neural Network Architecture - https://bit.ly/2kPaCpY
2.2 Convolutional Neural Network
Convolutional Neural Network (CNN) เปน Neural Network ประเภทหนึ่ง โดยจะทำการแบงรูปภาพออกเปน
Kernel ที่มีขนาดของเมตริกเทากัน แลวใชวิธีการ Sliding Window ในการทำ Feature Extraction และจำทำการลดขนาด
ของพารามิเตอรบน Spatial Layer ที่เรียกวา Subsampling หรือ Downsampling ในการลดขนาดของ Dimension ซึ่ง
แบงเปน Max Pooling, Average Pooling และ Sum Pooling แตสวนใหญจะใช Max Pooling เลือกคาที่มากที่สุดสงไปยัง
Layer ถัดไป จนได Flatten Image ที่เหมาะกับ Multi-Layer Perceptron โดยจะถูก Feed-Forward Neural Network
และสงคากลับไปผานเทคนิคที่เรียกวา Backpropagation และทำการ Train ซ้ำ จนสามารถแยก Low-Level Feature ของ
ภาพไดโดยใชเทคนิคที่เรียกวา Softmax ซึ่งเหมาะกับขอมูลที่ไมเชิงโครงสราง Unstructured Data โดยเฉพาะขอมูลรูปภาพ
อยาง Image ปจจุบันก็ไดมีการพัฒนาตอ โดยรวมความสามารถของ Object Detection, Localization และ Classification
เขาดวยกัน แบงเปน R-CNN, Fast R-CNN และ Faster R-CNN ซึ่งก็ขึ้นอยูกับงานที่เราจะนำไปใช วาตองการใชงานแบบใด
Figure 2: Convolutional Neural Network Architecture - https://bit.ly/2kqHDbW
3
2.3 Single Shot Detector
Single Shot Detector (SSD) เปนเทคนิค Object Detection แบบ MultiBox เพื่อแกไขปญหาที่เกิดจาก
ตระกูล R-CNN หลายประการ ไดแก การ Training Data ที่ใชเวลานานเกินไป, กระบวนการ Training ที่มีหลายขั้นตอน และ
Network ชาเวลาทำการอนุมาน (Inference Time) เพื่อแกไขปญหาคอขวด Bottleneck ของ R-CNN ใหสามารถตรวจจับ
วัตถุไดแบบเรียลไทม (Real-Time Object Detection) จึงเกิดสถาปตยกรรมใหม ไดแก YOLO (You Only Look Once) และ
SSD MultiBox (Single Shot Detector)
บทความ SSD ของ C. Szegedy ถูกเผยแพรในป 2016 โดยประสิทธิภาพและความแมนยำการตรวจจับวัตถุมี
คะแนนอยูที่ 74% mAP (mean Average Precision) ที่ 59 เฟรมตอวินาที สำหรับชุดขอมูลมาตรฐาน (Standard Dataset)
เชน PascalVOC และ COCO โดยสถาปตยกรรมจะประกอบไปดวย 3 สวนหลัก คือ Single Shot เปนเทคนิคในการทำ
Object Localization และ Classification แลวสงตอไปยัง Network ถัดไปแบบ Single Forward, MultipleBox เปนเทคนิค
ในการทำ Bounding Box Regression และสุดทาย Detector เปนเครือขายที่ทำหนาที่ Object Detector พรอมทำการ
Classifies Object ไปพรอมกัน
Figure 3: Single Shot Detector Architecture - https://bit.ly/2m0KQz6
จะเห็นวา SSD ถูกสรางบนสถาปตยกรรม VGG-16 ซึ่งจะทำการตัด Fully Connected Layer ออกไป เนื่องจาก
VGG-16 ใช Base Network ที่มีประสิทธิภาพสูงในการทำ Image Classification ซึ่งนิยมใชในการแกปญหาในเรื่องของ
Transfer Learning มาชวยในการปรับปรุงผลลัพธ แทนการเพิ่ม Fully Connected Layer ทำใหสามารถ Extract Feature
ไดหลาย Scale และลดขนาดของ Input ในแตละ Subsequent Layer ในสวนของ MultipleBox จะทำการสราง Prior หรือ
Anchor ใน Faster R-CNN โดยจะทำการคำนวณลวงหนาแลวกำหนดขอบเขตของ Bounding Box ใหมีขนาดใกลเคียงกับ
Original Ground Truth Boxes ซึ่ง Prior จะถูกเลือกในอัตราสวนของ Intersection over Union (IoU) ที่ 0.5
IoU = Area of Overlap / Area of Union
4
Figure 4: Inference Time - https://bit.ly/2m28z1O
3. METHODOLOGY
3.1 Dataset Collection: ทำการถายรูปจากโทรศัพทมือถือที่มีขนาด 1280 x 1280 เชน Bottle, Paper, Battery, Lemon ซึ่ง
ควรใหขอมูลรูปภาพมีพื้นหลังและแสงเงาที่มีความหลากหลาย ทำการลดขนาดของภาพใหเหลือ Resolution 600 x 600
จากนั้นทำการแบงขอมูลออกเปน Train กับ Test ในอัตราสวน 80:20
3.2 Data Preprocessing: ทำการสราง Label ดวย LabelImg ตาม Class ของรูปภาพที่เรากำหนด ซึ่งจะไดไฟลเปน xml ให
ทำการแปลงเปน csv และสราง TFRecords เพื่อแปลงขอมูลจาก Label ใหสามารถนำไป Train ดวย Object Detector ได
5
3.3 Training Model: ทำการดาวนโหลด COCO-Trained Model โดยเลือกเปน ssd_mobilenet_v1_coco ซึ่งมี Speed
อยูที่ 30 ms และมีคา mAP อยูที่ 21
3.4 Circuit Design: ออกแบบการเชื่อมตออุปกรณที่ใชในการควบคุมถังขยะ โดยใช Arduino Uno R3 ตอเขากับ Servo
Motor SG90 ที่ใชในการควบคุมการเปดปดถังขยะ และเขียนโปรแกรมดวยภาษา C ผานทาง Arduino IDE
Figure 5: Circuit Design
4. Results
แสดงผลการศึกษาการเทรนโมเดลตรวจจับวัตถุดวยโครงขายประสาทเทียม โดยใช Algorithm แบบ Faster R-CNN
บน Tensorflow GPU แสดงขอมูลตัวอยางตามภาพดานลางนี้
Figure 6: Training Object Detection Model
6
Figure 7:Loss Result Training on Tensorboard
7
5. SUMMARY AND FUTURE WORK
การทำงานภาพรวมของระบบ สวนของ Model ที่ใชในการตรวจจับวัตถุและคัดแยกขยะ สามารถทำการตรวจจับวัตถุ
ไดอยางแมนยำโดยเฉพาะวัตถุที่อยูใน Class ที่ไดผานการ Train Model และสวนของอุปกรณที่ใชในการสั่งงานถังขยะ
สามารถทำงานไดอยางครบกระบวนการ แตก็ขึ้นอยูกับสถานที่ที่ใชในการติดตั้งระบบดวย เนื่องจากการตรวจจับวัตถุแบบ
Real-Time จะตองแยกวัตถุออกจากพื้นหลัง หากนำไปวางไวในที่มีพื้นหลังกลืนกับวัตถุจะไมสามารถแยกไดดีเทาที่ควร
ปญหาที่พบ ไมสามารถทำการ Run Model ที่ไดจากการ Train แบบ Faster R-CNN บน Raspberry Pi ได อาจะเปน
เพราะตอน Allocate Memory อุปกรณ Raspberry Pi มี Memory ไมเพียงพอทำใหโดน Terminate หรือโดน Kill Process
วิธีแกคือใหถอยไปใช SSD หรือทำการเปลี่ยน Hardware ที่มี Memory เพียงพอ
ขอเสนอแนะ การติดตั้ง Package ของ Python ที่ใชในการ Run Model จะมี Compatible ของแตละ Package
เยอะพอสมควร ควรตรวจสอบ Version และ Compatible ของแตละ Package รวมถึงอุปกรณ Hardware วารองรับหรือไม
สุดทายผูเขียนหวังวา สามารถนำโปรเจกตไปตอยอดพัฒนาเพื่อสรางถังขยะอัจฉริยะที่สามารถแยกขยะไดดียิ่งขึ้น
8
Reference
[1] Amariei, Cornel. (2015). Arduino development cookbook : over 50 hands-on recipes to quickly
build and understand Arduino projects, from the simplest to the most extraordinary.
[2] Bonaccorso, Giuseppe. (2017). Machine Learning Algorithms.
[3] Bonnin, Rodolfo. (2016). Building Machine Learning Projects with TensorFlow.
[4] Cox, Tim. (2016). Raspberry Pi for Python Programmers Cookbook - Second Edition.
[5]Gollapudi, Sunila. (2016). Practical Machine Learning. Tackle the real-world complexities of modern
machine learning with innovative and cutting-edge techniques.
[6]Kurniawan, Agus. (2016). Making Your IoT Project Smart.
[7]Mcclure, Nick.(2017).TensorFlow Machine Learning Cookbook Explore machine learning concepts using
the latest numerical computing library-TensorFlow-with the help of this comprehensive cookbook.
[8] Soediono, Budi. (1989). Make-Arduino, Journal of Chemical Information and Modeling.
[9]Yang, Mindy and Thung, Gary. (2016). ClassificationofTrash forRecyclability Status
[10]Yang, Mindy and Thung, Gary. (2016). Waste Classification & Localization Based on Convolutional Neural
Networks
[11]Zaccone, Giancarlo.(2017). Deep Learning with Tensorflow.
[12]Zaccone, Giancarlo.(2016). Getting Started with TensorFlow Get up and running with thelatest
numerical computing library by Google anddive deeperinto your data.

More Related Content

What's hot

ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูลความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
Nithiwan Rungrangsri
 
โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8
Aungkana Na Na
 
กระบวนการสังเคราะห์ด้วยแสงlight
กระบวนการสังเคราะห์ด้วยแสงlightกระบวนการสังเคราะห์ด้วยแสงlight
กระบวนการสังเคราะห์ด้วยแสงlight
Thanyamon Chat.
 
ตัวอย่างภาคผนวก เล่มโปรเจ็ค
ตัวอย่างภาคผนวก เล่มโปรเจ็คตัวอย่างภาคผนวก เล่มโปรเจ็ค
ตัวอย่างภาคผนวก เล่มโปรเจ็ค
tumetr1
 
ใบงานที่ 1 การใช้งานโปรแกรม Excel
ใบงานที่ 1 การใช้งานโปรแกรม Excel ใบงานที่ 1 การใช้งานโปรแกรม Excel
ใบงานที่ 1 การใช้งานโปรแกรม Excel
Meaw Sukee
 

What's hot (20)

07 classification 3 neural network
07 classification 3 neural network07 classification 3 neural network
07 classification 3 neural network
 
Autoencoder
AutoencoderAutoencoder
Autoencoder
 
Text Mining and Thai NLP
Text Mining and Thai NLP Text Mining and Thai NLP
Text Mining and Thai NLP
 
LogMap: Large-scale, Logic-based and Interactive Ontology Matching
LogMap: Large-scale, Logic-based and Interactive Ontology MatchingLogMap: Large-scale, Logic-based and Interactive Ontology Matching
LogMap: Large-scale, Logic-based and Interactive Ontology Matching
 
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
 
4 การเตรียมสารละลาย
4 การเตรียมสารละลาย4 การเตรียมสารละลาย
4 การเตรียมสารละลาย
 
Gan seminar
Gan seminarGan seminar
Gan seminar
 
Chemographics : Periodic
Chemographics : PeriodicChemographics : Periodic
Chemographics : Periodic
 
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูลความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
 
FixMatch:simplifying semi supervised learning with consistency and confidence
FixMatch:simplifying semi supervised learning with consistency and confidenceFixMatch:simplifying semi supervised learning with consistency and confidence
FixMatch:simplifying semi supervised learning with consistency and confidence
 
04 association
04 association04 association
04 association
 
What’s next for deep learning for Search?
What’s next for deep learning for Search?What’s next for deep learning for Search?
What’s next for deep learning for Search?
 
บทที่ 6 อัตราการเกิดปฏิกิริยา
บทที่ 6 อัตราการเกิดปฏิกิริยาบทที่ 6 อัตราการเกิดปฏิกิริยา
บทที่ 6 อัตราการเกิดปฏิกิริยา
 
โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8
 
05 probabilistic graphical models
05 probabilistic graphical models05 probabilistic graphical models
05 probabilistic graphical models
 
กระบวนการสังเคราะห์ด้วยแสงlight
กระบวนการสังเคราะห์ด้วยแสงlightกระบวนการสังเคราะห์ด้วยแสงlight
กระบวนการสังเคราะห์ด้วยแสงlight
 
Tutorial on Theory and Application of Generative Adversarial Networks
Tutorial on Theory and Application of Generative Adversarial NetworksTutorial on Theory and Application of Generative Adversarial Networks
Tutorial on Theory and Application of Generative Adversarial Networks
 
ตัวอย่างภาคผนวก เล่มโปรเจ็ค
ตัวอย่างภาคผนวก เล่มโปรเจ็คตัวอย่างภาคผนวก เล่มโปรเจ็ค
ตัวอย่างภาคผนวก เล่มโปรเจ็ค
 
ใบงานที่ 1 การใช้งานโปรแกรม Excel
ใบงานที่ 1 การใช้งานโปรแกรม Excel ใบงานที่ 1 การใช้งานโปรแกรม Excel
ใบงานที่ 1 การใช้งานโปรแกรม Excel
 
แบบฝึกหัด เรื่อง พื้นฐานโปรแกรม-FLASH-CS6
แบบฝึกหัด เรื่อง พื้นฐานโปรแกรม-FLASH-CS6แบบฝึกหัด เรื่อง พื้นฐานโปรแกรม-FLASH-CS6
แบบฝึกหัด เรื่อง พื้นฐานโปรแกรม-FLASH-CS6
 

Similar to Deep Learning Smart Bin

ใบงานที่ 2.1
ใบงานที่  2.1ใบงานที่  2.1
ใบงานที่ 2.1
Meaw Sukee
 
บทที่ 3 หลักการแนวคิดในการสื่อสาร
บทที่ 3 หลักการแนวคิดในการสื่อสารบทที่ 3 หลักการแนวคิดในการสื่อสาร
บทที่ 3 หลักการแนวคิดในการสื่อสาร
Beauso English
 
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคลกลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
Nattakan Wuttipisan
 
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคลกลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
Nattakan Wuttipisan
 
แบบฝึกหัดท้ายบท
แบบฝึกหัดท้ายบทแบบฝึกหัดท้ายบท
แบบฝึกหัดท้ายบท
Babymook Juku
 
ใบงานท 11 แผ_นพ_บ
ใบงานท   11 แผ_นพ_บใบงานท   11 แผ_นพ_บ
ใบงานท 11 แผ_นพ_บ
08048355633
 

Similar to Deep Learning Smart Bin (20)

ใบงานที่ 2.1
ใบงานที่  2.1ใบงานที่  2.1
ใบงานที่ 2.1
 
บทที่ 3 หลักการแนวคิดในการสื่อสาร
บทที่ 3 หลักการแนวคิดในการสื่อสารบทที่ 3 หลักการแนวคิดในการสื่อสาร
บทที่ 3 หลักการแนวคิดในการสื่อสาร
 
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคลกลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
 
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคลกลุ่มที่ 3  คอมพิวเตอร์ส่วนบุคคล
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล
 
Ch08
Ch08Ch08
Ch08
 
แบบทดสอบคอมพิวเตอร์ ชุดที่ 3
แบบทดสอบคอมพิวเตอร์  ชุดที่  3แบบทดสอบคอมพิวเตอร์  ชุดที่  3
แบบทดสอบคอมพิวเตอร์ ชุดที่ 3
 
Cisco packet tracer
Cisco packet tracerCisco packet tracer
Cisco packet tracer
 
แบบฝึกหัดท้ายบท
แบบฝึกหัดท้ายบทแบบฝึกหัดท้ายบท
แบบฝึกหัดท้ายบท
 
HPC Cluster & Cloud Computing
HPC Cluster & Cloud ComputingHPC Cluster & Cloud Computing
HPC Cluster & Cloud Computing
 
Learnning01
Learnning01Learnning01
Learnning01
 
โครงงานคอม57
โครงงานคอม57โครงงานคอม57
โครงงานคอม57
 
ซีพียู
ซีพียูซีพียู
ซีพียู
 
Open Source Health Library System
Open Source Health Library SystemOpen Source Health Library System
Open Source Health Library System
 
Spatial Analysis Tools with Open Source GIS
Spatial Analysis Tools with Open Source GISSpatial Analysis Tools with Open Source GIS
Spatial Analysis Tools with Open Source GIS
 
ใบงานท 11 แผ_นพ_บ
ใบงานท   11 แผ_นพ_บใบงานท   11 แผ_นพ_บ
ใบงานท 11 แผ_นพ_บ
 
ใบงานที่ 11 แผ่นพับ
ใบงานที่ 11 แผ่นพับใบงานที่ 11 แผ่นพับ
ใบงานที่ 11 แผ่นพับ
 
ใบงานที่11 แผ่นพับ
ใบงานที่11 แผ่นพับใบงานที่11 แผ่นพับ
ใบงานที่11 แผ่นพับ
 
แบบพิมพ์ 11
แบบพิมพ์ 11แบบพิมพ์ 11
แบบพิมพ์ 11
 
ใบงานที่ 11 แผ่นพับ
ใบงานที่ 11 แผ่นพับใบงานที่ 11 แผ่นพับ
ใบงานที่ 11 แผ่นพับ
 
ใบงานที่ 11 แผ่นพับ
ใบงานที่ 11 แผ่นพับใบงานที่ 11 แผ่นพับ
ใบงานที่ 11 แผ่นพับ
 

Deep Learning Smart Bin

  • 1. 1 Using the Deep Learning for Garbage Detection with the Applied of Smart Bin Natthasath Saksupanara (5920421008) Graduate School of Applied Statistics, Computer Science National Institute Development Administration natthasath.sak@gmail.com Abstract: This study studies about how to use imitate network to choose automatic garbage by applying with the intelligent bin. Furthermore, it is a depth study and multifunction, especially using for a smart farm and a smart family. Besides, this study can be used further for POC (Proof-of- Concept) development. This can use for creating a prototype and apply for practical use in the future. 1. INTRODUCTION ปจจุบัน ปญหาขยะถือเปนปญหาสำคัญที่ทั่วโลกกำลังเผชิญ ซึ่งสงผละกระทบตอระบบนิเวศและสิ่งแวดลอม สืบ เนื่องมาจากปริมาณขยะที่เพิ่มมากขึ้นในแตละป ตามรายงานสถานการณขยะมูลฝอยของกรมควบคุมมลพิษ ป 2559 ประเทศ ไทยมีขยะมูลฝอยประมาณ 27 ลานตัน / ป ถูกนำกลับมาใชใหม 22%, ถูกนำไปกำจัด 35% สวนอีก 43% ถูกนำไปกำจัดไม ถูกตอง ซึ่งอาจเกิดจากกระบวนการในการคัดแยกขยะที่ไมถูกตอง ซึ่งเราตองการทำใหอัตราสวนการนำกลับมาใชใหมเพิ่มขึ้น จึงมี การรณรงคแยกขยะกอนทิ้ง เพื่อลดปริมาณขยะและกำจัดขยะไดอยางถูกวิธี อีกทั้งถังขยะที่มีการใชอยูในปจจุบัน การทิ้งขยะลง ทั้งขยะจะตองสัมผัสฝาถังขยะดวยมือ ซึ่งฝาถังขยะควรจะเปนแบบ Swing Bin ทำใหการใชงานถังขยะในปจจุบันไมถูกสุขอนามัย ผูทำวิจัยจึงเล็งเห็นถึงปญหาและอุปสรรค และเห็นวาสามารถนำโครงขายประสาทเทียม (Neural Network) สำหรับการทำ Object Detection มาใชในการคัดแยกขยะแบบอัตโนมัติ เชน Bottle, Paper, Battery และอื่นๆ โดยใชขอมูลรูปภาพ Dataset ทั้งจากการถายขอมูลรูปภาพเพื่อทำ Dataset เอง และจากการดาวนโหลด Open Source โดยใช Raspberry Pi รวมกับ Raspberry Pi Camera ในการตรวจจับวัตถุ และนำมาประยุกตเขากับถังขยะอัจฉริยะ ดวยบอรด Arduino เพื่อสั่งงาน Servo Motor ในการควบคุมการเปดปดของถังขยะผานสาย Serial ระหวาง Raspberry และ Arduino มาใชในการแกไขปญหาขางตน 2. RELATED WORK 2.1 Neural Network Neural Network โครงขายประสามเทียมที่เกิดจากการจำลองสมองของมนุษย ซึ่งเปนหนึ่งใน Algorithm ของ Machine Learning มีรูปแบบการทำงานที่ซับซอน โดยใช Multiple Hidden Layer และใชฟงกชั่น Non-Linear Activation นำขอมูลเขาไปใน Input Layer สงตอไปยัง Multiple Hidden Layer ซึ่งจะมีฟงกชั่น (Mini Function) และคาสัมประสิทธที่ ไมซ้ำกัน (Unique Coefficients) ในการเรียนรูซึ่งจะได Output ออกมา Neural Network จะทำการเพิ่มประสิทธิภาพโดย การ Train ซ้ำไปซ้ำมา ซึ่งจะใชเทคนิคที่เรียกวา Gradient Descent เมื่อสิ้นสุดแตละรอบในการ Train ก็จะทำการคำนวณ Derivatives ของ Error Metric และสงคากลับไปผานเทคนิคที่เรียกวา Backpropagation สวนคา Coefficients (Weight) คาสัมประสิทธิ์หรือน้ำหนักในแตละ Neuron จะถูกปรับโดยเทียบกับ Error ทั้งหมด Adjusted Relative ซึ่งกระบวนการนี้จะ ทำซ้ำจนกวา Error จะลดลงจนถึงจุดที่สามารถยอมรับได
  • 2. 2 Figure 1: Neural Network Architecture - https://bit.ly/2kPaCpY 2.2 Convolutional Neural Network Convolutional Neural Network (CNN) เปน Neural Network ประเภทหนึ่ง โดยจะทำการแบงรูปภาพออกเปน Kernel ที่มีขนาดของเมตริกเทากัน แลวใชวิธีการ Sliding Window ในการทำ Feature Extraction และจำทำการลดขนาด ของพารามิเตอรบน Spatial Layer ที่เรียกวา Subsampling หรือ Downsampling ในการลดขนาดของ Dimension ซึ่ง แบงเปน Max Pooling, Average Pooling และ Sum Pooling แตสวนใหญจะใช Max Pooling เลือกคาที่มากที่สุดสงไปยัง Layer ถัดไป จนได Flatten Image ที่เหมาะกับ Multi-Layer Perceptron โดยจะถูก Feed-Forward Neural Network และสงคากลับไปผานเทคนิคที่เรียกวา Backpropagation และทำการ Train ซ้ำ จนสามารถแยก Low-Level Feature ของ ภาพไดโดยใชเทคนิคที่เรียกวา Softmax ซึ่งเหมาะกับขอมูลที่ไมเชิงโครงสราง Unstructured Data โดยเฉพาะขอมูลรูปภาพ อยาง Image ปจจุบันก็ไดมีการพัฒนาตอ โดยรวมความสามารถของ Object Detection, Localization และ Classification เขาดวยกัน แบงเปน R-CNN, Fast R-CNN และ Faster R-CNN ซึ่งก็ขึ้นอยูกับงานที่เราจะนำไปใช วาตองการใชงานแบบใด Figure 2: Convolutional Neural Network Architecture - https://bit.ly/2kqHDbW
  • 3. 3 2.3 Single Shot Detector Single Shot Detector (SSD) เปนเทคนิค Object Detection แบบ MultiBox เพื่อแกไขปญหาที่เกิดจาก ตระกูล R-CNN หลายประการ ไดแก การ Training Data ที่ใชเวลานานเกินไป, กระบวนการ Training ที่มีหลายขั้นตอน และ Network ชาเวลาทำการอนุมาน (Inference Time) เพื่อแกไขปญหาคอขวด Bottleneck ของ R-CNN ใหสามารถตรวจจับ วัตถุไดแบบเรียลไทม (Real-Time Object Detection) จึงเกิดสถาปตยกรรมใหม ไดแก YOLO (You Only Look Once) และ SSD MultiBox (Single Shot Detector) บทความ SSD ของ C. Szegedy ถูกเผยแพรในป 2016 โดยประสิทธิภาพและความแมนยำการตรวจจับวัตถุมี คะแนนอยูที่ 74% mAP (mean Average Precision) ที่ 59 เฟรมตอวินาที สำหรับชุดขอมูลมาตรฐาน (Standard Dataset) เชน PascalVOC และ COCO โดยสถาปตยกรรมจะประกอบไปดวย 3 สวนหลัก คือ Single Shot เปนเทคนิคในการทำ Object Localization และ Classification แลวสงตอไปยัง Network ถัดไปแบบ Single Forward, MultipleBox เปนเทคนิค ในการทำ Bounding Box Regression และสุดทาย Detector เปนเครือขายที่ทำหนาที่ Object Detector พรอมทำการ Classifies Object ไปพรอมกัน Figure 3: Single Shot Detector Architecture - https://bit.ly/2m0KQz6 จะเห็นวา SSD ถูกสรางบนสถาปตยกรรม VGG-16 ซึ่งจะทำการตัด Fully Connected Layer ออกไป เนื่องจาก VGG-16 ใช Base Network ที่มีประสิทธิภาพสูงในการทำ Image Classification ซึ่งนิยมใชในการแกปญหาในเรื่องของ Transfer Learning มาชวยในการปรับปรุงผลลัพธ แทนการเพิ่ม Fully Connected Layer ทำใหสามารถ Extract Feature ไดหลาย Scale และลดขนาดของ Input ในแตละ Subsequent Layer ในสวนของ MultipleBox จะทำการสราง Prior หรือ Anchor ใน Faster R-CNN โดยจะทำการคำนวณลวงหนาแลวกำหนดขอบเขตของ Bounding Box ใหมีขนาดใกลเคียงกับ Original Ground Truth Boxes ซึ่ง Prior จะถูกเลือกในอัตราสวนของ Intersection over Union (IoU) ที่ 0.5 IoU = Area of Overlap / Area of Union
  • 4. 4 Figure 4: Inference Time - https://bit.ly/2m28z1O 3. METHODOLOGY 3.1 Dataset Collection: ทำการถายรูปจากโทรศัพทมือถือที่มีขนาด 1280 x 1280 เชน Bottle, Paper, Battery, Lemon ซึ่ง ควรใหขอมูลรูปภาพมีพื้นหลังและแสงเงาที่มีความหลากหลาย ทำการลดขนาดของภาพใหเหลือ Resolution 600 x 600 จากนั้นทำการแบงขอมูลออกเปน Train กับ Test ในอัตราสวน 80:20 3.2 Data Preprocessing: ทำการสราง Label ดวย LabelImg ตาม Class ของรูปภาพที่เรากำหนด ซึ่งจะไดไฟลเปน xml ให ทำการแปลงเปน csv และสราง TFRecords เพื่อแปลงขอมูลจาก Label ใหสามารถนำไป Train ดวย Object Detector ได
  • 5. 5 3.3 Training Model: ทำการดาวนโหลด COCO-Trained Model โดยเลือกเปน ssd_mobilenet_v1_coco ซึ่งมี Speed อยูที่ 30 ms และมีคา mAP อยูที่ 21 3.4 Circuit Design: ออกแบบการเชื่อมตออุปกรณที่ใชในการควบคุมถังขยะ โดยใช Arduino Uno R3 ตอเขากับ Servo Motor SG90 ที่ใชในการควบคุมการเปดปดถังขยะ และเขียนโปรแกรมดวยภาษา C ผานทาง Arduino IDE Figure 5: Circuit Design 4. Results แสดงผลการศึกษาการเทรนโมเดลตรวจจับวัตถุดวยโครงขายประสาทเทียม โดยใช Algorithm แบบ Faster R-CNN บน Tensorflow GPU แสดงขอมูลตัวอยางตามภาพดานลางนี้ Figure 6: Training Object Detection Model
  • 6. 6 Figure 7:Loss Result Training on Tensorboard
  • 7. 7 5. SUMMARY AND FUTURE WORK การทำงานภาพรวมของระบบ สวนของ Model ที่ใชในการตรวจจับวัตถุและคัดแยกขยะ สามารถทำการตรวจจับวัตถุ ไดอยางแมนยำโดยเฉพาะวัตถุที่อยูใน Class ที่ไดผานการ Train Model และสวนของอุปกรณที่ใชในการสั่งงานถังขยะ สามารถทำงานไดอยางครบกระบวนการ แตก็ขึ้นอยูกับสถานที่ที่ใชในการติดตั้งระบบดวย เนื่องจากการตรวจจับวัตถุแบบ Real-Time จะตองแยกวัตถุออกจากพื้นหลัง หากนำไปวางไวในที่มีพื้นหลังกลืนกับวัตถุจะไมสามารถแยกไดดีเทาที่ควร ปญหาที่พบ ไมสามารถทำการ Run Model ที่ไดจากการ Train แบบ Faster R-CNN บน Raspberry Pi ได อาจะเปน เพราะตอน Allocate Memory อุปกรณ Raspberry Pi มี Memory ไมเพียงพอทำใหโดน Terminate หรือโดน Kill Process วิธีแกคือใหถอยไปใช SSD หรือทำการเปลี่ยน Hardware ที่มี Memory เพียงพอ ขอเสนอแนะ การติดตั้ง Package ของ Python ที่ใชในการ Run Model จะมี Compatible ของแตละ Package เยอะพอสมควร ควรตรวจสอบ Version และ Compatible ของแตละ Package รวมถึงอุปกรณ Hardware วารองรับหรือไม สุดทายผูเขียนหวังวา สามารถนำโปรเจกตไปตอยอดพัฒนาเพื่อสรางถังขยะอัจฉริยะที่สามารถแยกขยะไดดียิ่งขึ้น
  • 8. 8 Reference [1] Amariei, Cornel. (2015). Arduino development cookbook : over 50 hands-on recipes to quickly build and understand Arduino projects, from the simplest to the most extraordinary. [2] Bonaccorso, Giuseppe. (2017). Machine Learning Algorithms. [3] Bonnin, Rodolfo. (2016). Building Machine Learning Projects with TensorFlow. [4] Cox, Tim. (2016). Raspberry Pi for Python Programmers Cookbook - Second Edition. [5]Gollapudi, Sunila. (2016). Practical Machine Learning. Tackle the real-world complexities of modern machine learning with innovative and cutting-edge techniques. [6]Kurniawan, Agus. (2016). Making Your IoT Project Smart. [7]Mcclure, Nick.(2017).TensorFlow Machine Learning Cookbook Explore machine learning concepts using the latest numerical computing library-TensorFlow-with the help of this comprehensive cookbook. [8] Soediono, Budi. (1989). Make-Arduino, Journal of Chemical Information and Modeling. [9]Yang, Mindy and Thung, Gary. (2016). ClassificationofTrash forRecyclability Status [10]Yang, Mindy and Thung, Gary. (2016). Waste Classification & Localization Based on Convolutional Neural Networks [11]Zaccone, Giancarlo.(2017). Deep Learning with Tensorflow. [12]Zaccone, Giancarlo.(2016). Getting Started with TensorFlow Get up and running with thelatest numerical computing library by Google anddive deeperinto your data.