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

ระบบนับจำนวนยานพาหนะแบบเรียลไทม์

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by dew50012, 2022-04-18 13:01:08

ระบบนับจำนวนยานพาหนะแบบเรียลไทม์

ระบบนับจำนวนยานพาหนะแบบเรียลไทม์

ระบบนับจำนวนยานพาหนะแบบเรียลไทม์

Real-time Vehicle Counting System using Images from CCTV

นาย เจษฎาพันธ์ ผอ่ งเสง้ 62101696
นาย กฤษณพงศ์ กิม้ ซื่อ 62100359
Mr.Jesadapan Pongseng 62101696
Mr.Kritsanaphong Kimsue 6210359

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

A Project Submitted in Partial Fulfillment of the Requirements
for the Degree of Information Technology
Walailak University

ปกี ารศกึ ษา 2565

ใบรับรองโครงงาน

สำนกั วิชาสารสนเทศศาสตร์ มหาวิทยาลัยวลยั ลกั ษณ์

หวั ข้อโครงงาน ระบบนับจำนวนยานพาหนะแบบเรียลไทม์

จดั ทำโดย นาย กฤษณพงศ์ ก้มิ ซือ่ รหัสนกั ศึกษา 62100359

นาย เจษฎาพนั ธ์ ผอ่ งเสง้ รหัสนกั ศกึ ษา 62101696

สาขาวิชา เทคโนโลยีสารสนเทศและนวัตกรรมดิจทิ ลั

อาจารย์ท่ีปรกึ ษา อาจารย์ ดร.พรี วชิ ญ์ เควด

ปีการศกึ ษา 2565

สำนกั วิชาสารสนเทศศาสตร์ มหาวทิ ยาลัยวลัยลักษณ์ ไดร้ บั พจิ ารณาอนุมัติให้เป็น
สว่ นหนึ่งของการศึกษาตามหลกั สตู รวทิ ยาศาสตร์บณั ฑิต

อาจารย์ท่ีปรกึ ษาโครงงาน
( อาจารย์ ดร.พรี วชิ ญ์ เควด )

พิจารณาเหน็ ชอบโดย

ประธานกรรมการ กรรมการ
(ผศ.ดร.ณชิ นันทน์ กิตติพัฒนบวร) (อ.สพุ พัต รุ่งเรอื งศิลป์)

ระบบนับจำนวนยานพาหนะแบบเรียลไทม์

Real-time Vehicle Counting System using Images from CCTV

นาย เจษฎาพันธ์ ผอ่ งเสง้ 62101696
นาย กฤษณพงศ์ กิม้ ซื่อ 62100359
Mr.Jesadapan Pongseng 62101696
Mr.Kritsanaphong Kimsue 6210359

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

A Project Submitted in Partial Fulfillment of the Requirements
for the Degree of Information Technology
Walailak University

ปกี ารศกึ ษา 2565

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

บทคัดยอ่

ระบบตรวจจับและนับยานพาหนะแบบเรียลไทม์นั้น สร้างมาเพื่อพัฒนาวิธีการเก็บข้อมูล
ยานพาหนะเน่ืองจากวธิ ีการเดิมที่ใช้ในการนับยานพาหนะนั้นเป็นการใช้คนไปนับรถโดยตรง ซ่ึงแสดง
ให้เห็นถึงข้อเสียต่างๆ เช่น ความผิดพลาดในการนับยานพาหนะ ไม่สามารถแยกประเภทของ
ยานพาหนะได้ความอนั ตรายขณะทำการนับรถ เปน็ ตน้ ระบบดงั กล่าวจะสามารถแก้ไขปัญหาที่กล่าว
มาได้ตรงจุด และเพ่ือเพม่ิ มลู ค่าและความเข้าใจให้ข้อมูลยานพาหนะท่ีได้มาจะนำข้อมูลยานพาหนะที่
ได้มานั้น นำไปแสดงผลในรูปแบบแดชบอร์ด โดยใช้ Power BI ซึ่งระบบหลักจะมีโครงสร้างและ
ลักษณะการทำงานดังนี้ระบบนี้จะประกอบไปด้วย ส่วนอินพุต และ ส่วนการประมวลผลของระบบ
โดยส่วนอินพุตจะเป็นการบันทึกภาพ snapshot จากการสตรีมมิ่งภาพจากกล้องวงจรปิด ณ บริเวณ
ต่าง ๆ ผ่านเว็บไซต์ของเทศบาลนครศรีธรรมราช นำภาพมาประมวลผลในส่วนประมวลผลของระบบ
ที่เป็น Machine Learning ซึ่งประกอบไปด้วยส่วนการแยกประเภทและการตรวจจับ ทำงานโดยใช้
OpenCV ควบคไู่ ปกับ YOLOv3 และ Coco data set ส่วนถดั ไปจะเปน็ สว่ นการนับยานพาหนะ โดย
ใช้ Collections ซึ่งเป็น python library มาช่วยในการนับยานพาหนะ ส่วนสุดท้ายจะใช้ CSV
Library การบันทึกข้อมูลยานพาหนะที่ได้ ลงในไฟล์ประเภท CSV และนำไปสร้างแดชบอร์ดต่อผ่าน
Power BI

คำเฉพาะ Power BI, Machine Learning, OpenCV, YOLOv3, CSV

Project Title Real-time Vehicle Counting System using Images from CCTV
Author Mr.Jesadapan Pongseng, Mr.Kritsanaphong Kimsue
Major Program Information Technology
Academic Year 2022

Abstract

Real-time vehicle detection and counting system It was created to develop a
method for collecting vehicle data since the original method used to count vehicles
was directly used by people to count vehicles. Which shows disadvantages such as
vehicle counting errors. Unable to Classified types of vehicles, dangerous situation
while counting vehicles, etc. Such a system will be able to fix the problems mentioned
on the spot. And to increase the value and understanding of the acquired vehicle data,
the acquired vehicle data will be used. Visualize them in dashboards using Power BI.
to show people who interested in vehicle data and be using it for own purpose such
as buy for a house, looking for appropriate location to built book store.

Keywords: Power BI, Visualize, dashboards

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

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

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

นาย เจษฎาพันธ์ ผ่องเสง้ 62101696
นาย กฤษณพงศ์ กิ้มซ่ือ 62100359

สารบัญ หนา้
1
เรื่อง 1
บทที่ 1 บทนำ 1
1
1.1 ความสำคัญและทมี่ าของปญั หา 4
1.2 วัตถุประสงค์ 4
1.3 ขอบเขตของระบบ 4
1.4 ประโยชน์ที่คาดวา่ จะได้รับ 5
1.5 ผลที่คาดวา่ จะได้เมื่อเสร็จส้นิ โครงการ 6
1.6 แผนการดำเนนิ งาน 6
1.7 เครอ่ื งมือท่ีใช้ในการพัฒนา 6
บทที่ 2 เอกสารและงานวิจยั ท่เี กย่ี วขอ้ ง 6
2.1 ทฤษฎที เี่ กี่ยวขอ้ ง 7
2.2 เทคโนโลยที ี่ใช้ 8
8
2.2.1 ข้อมูลภาพจากกล้อง CCTV 8
2.2.2 YOLO object detection 9
2.3 งานวิจยั หรือระบบท่ีใกลเ้ คยี ง 9
2.3.1 การวจิ ยั การจดจำการจราจรบนทางด่วน 9
2.3.2 การวิเคราะห์อลั กอรทิ ึมของ YOLO 9
บทที่ 3 การวิเคราะหร์ ะบบ 10
3.1 องค์กรที่เกย่ี วขอ้ ง 11
3.1.1 สำนักงานเทศบาลนครนครศรีธรรมราช 11
3.2 วธิ ีการรวบรวมขอ้ มลู 12
3.2.1 ศึกษาจากเอกสารท่เี ก่ยี วข้อง 12
3.3 การทำงานของระบบปจั จุบัน 12
3.3.1 ลกั ษณะงานระบบปจั จบุ ัน 13
3.3.2 ปญั หาของระบบเดิม 14
3.4 การวเิ คราะห์ความต้องการของผูใ้ ช้ 14
3.4.1 ปญั หาและสาเหตุ
3.4.2 ความต้องการจากผูใ้ ชร้ ายกลมุ่
บทท่ี 4 การออกแบบระบบ
4.1 สถาปัตยกรรมของระบบใหม่

สารบัญ (ตอ่ ) หนา้
17
เรื่อง 17
4.2 การออกแบบกระบวนการ 18
4.2.1 ผังการทำงานรองระบบ (Work Flow Diagram) 19
4.3 การออกแบบสว่ นตดิ ต่อกับผใู้ ช้ (User Interface Design) 19
4.3.1 ช่องการเลอื กปี 19
4.3.2 ช่องการเลือกจงั หวดั 19
4.4 การออกแบบสว่ นแสดงผล (Output Design) 23
4.4.1 หน้าจอแสดงข้อมลู 23
31
บทที่ 5 การพัฒนาและทดสอบระบบ 38
5.1 การพฒั นาระบบ 38
5.1.1 โครงสรา้ งของไฟล์โปรแกรม 39
5.2 การตดิ ต้ังระบบ 39
5.2.1 การติดต้งั YOLOV3 41
5.2.2 การตดิ ต้ัง Power BI 42
5.2.3 การติดต้งั OpenCV 42
5.3 การทดสอบระบบ 42
43
บทท่ี 6 สรุปผลการดำเนินงาน 44
6.1 สรุปผล
6.2 ปัญหาในการดำเนินงาน
6.3 ข้อเสนอแนะ

บรรณานกุ รม

สารบัญตาราง หนา้

ตารางที่ 2
1 แสดงพกิ ัดตำแหนง่ ของสถานที่กลอ้ ง และภาพดาวเทียม 8
2 เปรียบเทยี บการใช้งานฟังกช์ ันและเครื่องมือตา่ ง ๆ

สารบัญรปู ภาพ หน้า
5
ภาพท่ี 11
1.1 แผนการดำเนนิ งาน 12
3.1 FLOWCHART ระบบปัจจบุ นั 14
3.2 ปญั หาและสาเหตุ 16
4.1 แสดงสถาปตั ยกรรมระบบ (System Architecture) 16
4.2 ผลลพั ธจ์ ากการทำงานของระบบ 17
4.3 แสดงตารางการบันข้อมูลยานพาหนะ 18
4.4 แสดงผงั การทำงานของระบบ (Work Flow Diagram) 19
4.5 แสดงผังการทำงานการแยกประเภทและตรวจจบั ยานพาหนะและการเกบ็ ข้อมูล 19
4.6 ช่องการเลอื กปี 20
4.7 ชอ่ งการเลอื กจังหวดั 20
4.8 หนา้ แสดงผลหลัก 21
4.9 ชอ่ งแสดงกล้องท่ีใช้ในการตรวจจับ 21
4.10 ช่องแสดงรายชอ่ื จุดตรวจจับปรมิ าณยานพาหนะ 22
4.11 ชอ่ งแสดงรายละเอียดข้อมลู ยานพาหนะ 23
4.12 ชอ่ งแสดงรายละเอยี ดข้อมลู ยานพาหนะ 24
5.1 แสดงถงึ Notebook Settings 24
5.2 Darknet 25
5.3 !Make Command 24
5.4 Make Process 25
5.5 แสดงถึงการทำงาน 25
5.6 Prediciton Image 27
5.7 OIDv4 ToolKit 27
5.8 Data set Example 28
5.9 Training Process 28
5.10 10th Iteration 28
5.11 100th Iteration 29
5.12 1000th Iteration
5.13 Model Evaluation (mAP)

สารบญั รูปภาพ(ต่อ) หนา้
31
ภาพท่ี 31
5.1 โครงสรา้ งไฟลโ์ ปรแกรม 32
5.2 โครงสร้างไฟล์ image 33
5.3 ไฟล์ static-data.csv
5.4 static-data.csv 33
34
5.5 แผนภาพแสดงการทำงานของไฟล์ vehicle_count.py 35
5.6 import packages 35
5.7 config size and threshold 35
5.8 retrieve class and set required index 36
5.9 Set models file and config network model 36
5.10 แสดงฟังกช์ ันหลกั ในการตรวจยจับยานพาหนะจากภาพ 37
5.11 แสดงฟังกช์ ันหลกั ในการตรวจยจบั ยานพาหนะจากภาพ 37
5.12 send input to network model 37
5.13 postProcess function 39
5.14 save data 39
5.15 การติดตั้ง Power BI 40
5.16 หน้าแสดงผลบน Power BI 40
5.17 การติดตั้ง Python 41
5.18 การตดิ ตง้ั opencv ใน python 42
5.19 โคด้ ในการการรันโปรแกรม open cv
5.20 ตวั อย่างจากการรนั โปรแกรม

1

บทท่ี 1
บทนำ

1.1 ความสำคัญและที่มาของปัญหา
ในปัจจุบัน ทางผู้จัดทำได้เล็งเหน็ ถึงความสำคัญของเทคโนโลยีด้าน Data-driven Business

Intelligence (Data-driven BI) หรือธรุ กิจอจั ฉริยะท่ีขับเคล่ือนด้วยขอ้ มลู เน่อื งจากในประเทศไทยยัง
มีการใช้ความรู้ในด้านเทคโนโลยี Data-driven BI ในเชิงพาณิชย์ไม่มากนัก ซึ่งทำให้การเก็บข้อมูล
ล้าสมัย ล้าชา้ และอาจมคี วามคลาดเคลอื่ น

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

ดังนั้น ทางผู้จัดทำจึงได้มีความสนใจที่จะสร้างระบบ Data-driven BI ในการเก็บข้อมูลของ
จำนวนยานพาหนะผ่านกล้อง CCTV ซึ่งจำแนกยานพาหนะออกเป็นประเภทต่างๆ ได้แก่
รถจักรยานยนต์ รถยนต์ส่วนบุคคล และรถสาธารณะ ที่ผ่านเส้นทางบริเวณที่จะทำการลงทุน เพ่ือ
นำมาวิเคราะห์ความเหมาะสมในการลงทุนในบริเวณดังกล่าว โดยการเก็บข้อมูลเหล่านี้จะใช้ไลบรารี่
OpenCV ของภาษาไพทอน (Python) เพื่อทำการเก็บข้อมูลแบบเรียลไทม์จากนั้นบันทึกข้อมูลเป็น
ไฟล์ CSV และนำข้อมูลไปสร้างแดชบอร์ดในลักษณะ data driven business intelligence ด้วย
Power BI ตอ่ ไป

1.2 วัตถุประสงค์
1.2.1 ประยุกต์ machine learning เพื่อตรวจจับและนับยานพาหนะ และบันทึกข้อมูล
ยานพาหนะ
1.2.2 นำข้อมูลที่ได้มาผ่านกระบวนการ Data driven Business intelligence ผ่าน
โปรแกรม Power BI

1.3 ขอบเขตของระบบ
• ใช้ภาพวิดีโอจากกล้องจราจร Closed Circuit Television(CCTV) ของจังหวัด
นครศรีธรรมราช โดยใช้ภาพจากกล้องทั้งหมด 5 ตัว คือ หน้าสนามกีฬาตัวที่ 2, สาม

2

แยกศิรินครอุทิศตัวที่ 2, หน้าตลาดท่าเรียน, สี่แยกศาลาหมอปานตัวที่ 2 และสามแยก
ประตลู อด-คขู วางตัวท่ี 2
• สร้างระบบ machine learning เพื่อตรวจจับและนับยานพาหนะ

o ระบบสามารถแยกประเภทของยานพาหนะได้ ดังน้ี
▪ รถขนส่งทั่วไป ภายในคลาสเนม “Bus”
▪ รถเกง๋ ภายในคลาสเนม “Car”
▪ รถกระบะ ภายในคลาสเนม “Truck”
▪ รถจกั รยานยนต์ ภายในคลาสเนม “Motorcycle”

o ระบบสามารถบันทกึ ขอ้ มูลของยานพาหนะได้
▪ บนั ทกึ ในไฟลส์ กลุ csv โดยแยกประเภทของยานพาหนะ
▪ บนั ทกึ ขอ้ มลู สถานทตี่ รวจจบั
▪ บันทึกเวลาท่ีทำการตรวจจบั

• สร้างระบบ Data-driven BI ที่มีความสามารถประมวลผลเรื่องวิเคราะห์ข้อมูล นับ
จำนวนยานพาหนะ

ตารางท่ี 1 แสดงพิกัดตำแหน่งของสถานที่กลอ้ ง และภาพดาวเทียม

สถานที่กล้อง ภาพดาวเทียม
หน้าสนามกีฬาตัวท่ี
2
พิกดั
8 ° 2 7 '2 3 . 4 " N
99°57'33.3"E
8.456501, 99.9
59237

3

สถานทกี่ ลอ้ ง ภาพดาวเทยี ม
สามแยกประตูลอด-
คขู วางตวั ท่ี 2
พกิ ดั
8°25'20.4"N
99°58'24.6"E
8.422339,
99.973498

หน้าตลาดท่าเรยี น
พกิ ัด
8 ° 2 5 '5 8 . 1 " N
99°57'28.1"E
8.432815,
99.957816

สามแยกศิรินครอุทิศ
ตวั ท่ี 2
พิกดั
8°24'24.4"N
99°58'36.1"E
8.406767,
99.976685

4

สถานทีก่ ล้อง ภาพดาวเทียม
สแ่ี ยกศาลาหมอปาน
พิกดั
8°25'8,49"N
99°57'17.858"E
8.4190251,
99.9549608

1.4 ประโยชน์ที่คาดวา่ จะได้รับ
1.4.1 สามารถเป็นสื่อการเรียนรู้ให้กับบุคคลทั่วไปที่มีความสนใจในด้านเทคโนโลยี

ปัญญาประดิษฐ์
1.4.2 สามารถใช้เทคโนโลยีที่ทันสมัยมากขึ้นในการรวบรวม และวิเคราะห์ข้อมูลเพื่อช่วยใน

การตดั สินใจลงทนุ

1.5 ผลท่คี าดว่าจะไดเ้ มื่อเสร็จส้นิ โครงการ
1.5.1 ระบบนับจำนวนยานพาหนะโดยใชภ้ าพจากกล้อง CCTV แบบเรียลไทม์
1.5.2 ข้อมูลสรปุ จำนวนยานพาหนะย้อนหลงั ในรูปแบบ Data driven Business

1.6 แผนการดำเนินงาน
1.6.1 ศกึ ษางานวจิ ัยที่เก่ียวข้องกับหัวข้อวิจยั
1.6.2 ศึกษาการสร้างปัญญาประดิษฐโ์ ดยใชภ้ าษาไพธอนร่วมกบั OpenCV และ YOLO
1.6.3 กำหนดฟังกช์ ันหลักๆของระบบ
1.6.4 เก็บข้อมูลภาพวดิ ีโอจากกล้อง CCTV
1.6.5 สรา้ งระบบในการตรวจจับและนับยานพาหนะโดยใช้ภาษาไพธอนร่วมกับ OpenCV

และ YOLO
1.6.6 นำขอ้ มูลที่ไดจ้ ากระบบมาวเิ คราะห์
1.6.7 นำเสนอข้อมลู ออกมาในรปู แบบ Data-driven Business Intelligence

5

ภาพที่ 1.1 แผนการดำเนนิ งาน
1.7 เครื่องมือทีใ่ ช้ในการพัฒนา

1.7.1 เครื่องคอมพิวเตอรส์ ำหรับใช้พัฒนาระบบ (Hardware)
- CPU intel core i7-8750H 2.21Hz
- VGA Nvidia Geforce GTX 1050Ti 4Gb
- Ram 16 GB

1.7.2 ซอฟต์แวรท์ ี่ใช้ในการพัฒนาระบบ
- ระบบปฏบิ ัตกิ ารคือ Microsoft windows 10 home
- เครื่องมือสำหรับพฒั นาโปรแกรม คือ Visual studio Code
- ภาษาที่ใชใ้ นการพฒั นาคือ Python

6

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

2.1 ทฤษฎีท่เี ก่ียวข้อง
การนำเทคโนโลยกี ารเรยี นรดู้ ้วยเครื่อง (Machine Learning) เข้ามาร่วมใช้ในการประมวล

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

2.1.1 Vehicle Detection Methods
วิธีการตรวจจบั ยานพาหนะน้ัน สามารถใช้เทคนิค computer vision และการ

เรียนรเู้ ชงิ ลกึ (Deep Learning) ซง่ึ การใช้เทคนิค Computer Vision นัน้ การเคลอื่ นทข่ี อง
ยานพาหนะเพื่อแยก ยานพาหนะออกจากภาพพ้ืนหลงั ของภาพนน้ั ๆ สามารถอธบิ ายเป็นขัน้ ตอนหลัก
ได้ 3 ขั้นตอน ได้แก่ background subtraction, differences between consecutive video
frames, steam optics เรม่ิ ตน้ จากการคำนวณผลตา่ งระหวา่ งเฟรมต่อเฟรมออกมาเป็นค่า pixel
ขนั้ ตอนต่อไปจะเปน็ การ แยก moving foreground ดว้ ยการใช้ threshold โดยหลังจาก
background ได้ถูก fixed แตล่ ะเฟรมนน้ั จะถูกทำไปเปรียบเทียบกบั model และยานพาหนะท่ี
เคลอ่ื นไหวนน้ั จะถกู segmented เพ่ือนบั แยกเป็นแต่ละคลาสต่อไป

2.2 เทคโนโลยที ่ีใช้

2.2.1 ข้อมูลภาพจากกลอ้ ง CCTV

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

7

2.2.1 Auto Screen Capture
เพ่อื จดั เกบ็ ข้อมูลจากกล้องวงจรปิดในแต่ละจุดนนั้ จะเกบ็ ข้อมูลเปน็ รปู ภาพ

sceenshot โดยตรงจากวิดโี อสตรมี ม่งิ ของกล้องแตล่ ะจุด ซงึ่ กระบวนการนี้ขับเคลื่อนด้วย
โปรแกรม Auto Screen Capture เปน็ ซอฟแวรท์ ใ่ี ชส้ ำหรบั การเก็บภาพ screenshot ซึ่งมี
ฟังก์ชันภายในตัวเปน็ อย่างมากสามารถประยุกต์ใช้กบั ระบบทีพ่ ฒั นาได้เป็นอยา่ งมาก
ตัวอย่างฟังกช์ นั ของโปรแกรม auto screen capture ท่ไี ดน้ ำมาประยุกต์ใช้กบั ระบบคือ
ฟังกช์ นั การตั้งเวลาในการเกบ็ ภาพ screenshot กล่าวคือ ตง้ั เวลาให้ทำการบนั ทึกภาพ
screeshot เป็นชว่ งๆ เช่น ทกุ ๆ 1 นาที เปน็ ต้น
2.2.2 OpenCV

OpenCV (Open source Computer Vision) เป็นไลบรารฟี งั กช์ นั การเขียน
โปรแกรม (Library of Programming Functions) โดยส่วนใหญจ่ ะมงุ่ เปา้ ไปทีก่ ารแสดงผล
ด้วยคอมพวิ เตอรแ์ บบเรียลไทม์ (Real-Time Computer Vision) เดมิ ทีแล้วถกู พฒั นาโดย
Intel แต่ภายหลังไดร้ บั การสนับสนุนโดย Willow Garage ตามมาด้วย Itseez (ซ่ึงต่อมาถกู
เขา้ ซือ้ โดย Intel) OpenCV เป็นไลบรารแี บบขา้ มแพลตฟอร์ม (Cross-Platform) ซง่ึ
OpenCV ยงั สามารถประยกุ ตใ์ ชง้ านกบั Deep Learning Frameworks ได้หลากหลายตัว
ด้วยกัน เช่น TensorFlow Torch และ Caffe (Nuttakarn Chuntra,2018)

ซึง่ ไลบรารี OpenCV ตวั นี้สามารถประยุกต์ใช้งานไดห้ ลากหลาย ไม่ว่าจะเป็นการ
การจดจำใบหน้า (Face recognition ) ตรวจจับวตั ถุ(Object Detection ) ซึง่ ระบบท่ีได้
พฒั นาจัดเปน็ การตรวจจบั วตั ถุ ในลักษณะของการตรวจจับยานพาหนะ (Vehicle
Detection)

2.2.3 YOLO Object Detection
YOLO หรือ “You Only Look Once” ซง่ึ เปน็ อัลกอริทึมท่ใี ชต้ รวจจับและจดจำ

วตั ถุหลายประเภทภายในภาพเดยี ว โดยการทำ Object Detection ของ YOLO นนั้ จะเป็น
การทำงานแบบการถดถอย (regression) และการแสดงถึงคลาสต่าง ๆ ทีเ่ ปน็ ไปไดใ้ นการ
ตรวจจบั รูปภาพYOLO ใช้เทคนิค Convolutional Neural Networks (CNN) เพ่อื ทำการ
ตรวจจบั วัตถุแบบเรยี ลไทม์ จุดเด่นของอลั กอรทิ ึม YOLO คอื เปน็ การทำงานแบบ Single
Forward Propagation ผา่ น Neural Network เพอื่ ทำการตรวจจบั วัตถุ ซง่ึ เป็นการทำงาน
ทม่ี ีความรวดเร็วเป็นอย่างมาก (Onesmus Mbaabu ,2021)

8

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

2.3 งานวิจัยหรือระบบท่ีใกล้เคียง
2.3.1 การวจิ ยั การจดจำการจราจรบนทางดว่ น
Nurhadiyatna และคณะ ให้ข้อมูลวิดีโอและความเร็วของยานพาหนะจริงในการ

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

2.3.2 การวเิ คราะห์อลั กอรทิ ึมของ YOLO
คอมพิวเตอร์วิทัศน์และแมชชีนเลิร์นนิงสำหรับการตรวจจับวัตถุมักจะมีเวลา

ตอบสนองช้าอัลกอริธึมและ ANN เช่น YOLO ไม่เพียงแต่แก้ปัญหานี้แต่ยังไม่สูญเสีย ความแม่นยำ.
ชี้ให้เห็นว่าการตรวจจับวัตถุเป็นหนึ่งในหน้าที่สำคัญของ ซอฟต์แวร์ที่จะให้รถยนต์รุ่นต่อไปที่มีระบบ
ขับเคลื่อนอัตโนมัติ ในของพวกเขา วิจัย ได้ฝึกโครงข่ายประสาทเทียมตามวัตถุ 5 ประเภท (รถยนต์
รถบรรทุก คนเดินถนน การจราจร) สัญญาณและไฟ) และแสดงให้เห็นว่าวิธีการนี้มีประสิทธิภาพใน
สภาพการขบั ข่ที ห่ี ลากหลาย (แดดจัด เมฆมาก หิมะ หมอก และกลางคืน)

ตารางที่ 2 เปรยี บเทียบการใชง้ านฟังก์ชันและเครื่องมือต่าง ๆ

ฟังกช์ ัน OpenCV and Raspberry-Pi YOLO and DeepSORT
TensorFlow
Object ใช้วิธีการ CNN ในการ ใช้วธิ กี าร Subtract ใช้วิธีการ CNN ในการ
Detection ตรวจจับวัตถุ background ตรวจจับวัตถุ
Object ใชโ้ ครงสรา้ ง Dense เพมิ่ Bounded ใช้วิธี Detection-Based
Tracking connection Layer boxes ครอบคลุมท่ี Tracking และ
Structure detected object Detection-Free tracking

9

บทที่ 3
การวิเคราะหร์ ะบบ

3.1 องค์กรทเ่ี กี่ยวข้อง
3.1.1 สำนกั งานเทศบาลนครนครศรีธรรมราช
เป็นเทศบาลนครที่ต้งั อยู่ในเขตอำเภอเมืองนครศรธี รรมราช จังหวดั นครศรธี รรมราช

เป็นเมืองท่ีเจริญเตบิ โตมายาวนาน และได้รับการจัดตัง้ เป็นเทศบาลนครแห่งแรกของภาคใต้ เทศบาล
นครนครศรีธรรมราชได้รับการยกฐานะเมื่อปี พ.ศ.2537 มีประชากรในปี พ.ศ. 2560 ประมาณ
104,354 คน บนเนื้อที่ 22.56 ตารางกิโลเมตร เป็นเมืองที่ตั้งศาลากลางของจงั หวดั และจัดเป็นเมอื ง
ขนาดใหญ่ลำดับต้นๆ ของภาคใต้ โดยเทศบาลนครนครศรีธรรมราช แบ่งการปกครองออกเป็น 5
ตำบล 67 ชุมชนดังน้ี

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

3.2 วธิ กี ารรวบรวมข้อมลู
ในการรวบรวมข้อมูลถือเป็นขั้นตอนที่เก็บรวบรวมข้อเท็จจริงของระบบที่ต้องการพัฒนา โดย

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

10

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

3.2.1 ศึกษาจากเอกสารทเ่ี กี่ยวข้อง
จุดมุ่งหมายของการศึกษาเอกสารที่เกี่ยวข้อง คือ ไลบรารี่หรือซอฟแวร์ที่ใช้ในการ

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

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

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

11

3.3 การทำงานของระบบปจั จุบัน
3.3.1 ลักษณะงานระบบปัจจบุ นั
ลักษณะการทำงานมีการใช้กล้อง CCTV จับภาพยานพาหนะออกมาเป็นรูปภาพ

ต่อมาได้ใช้ระบบวาดภาพโซนที่จะนับยานพาหนะซึ่งทำการตรวจจับยานพาหนะ และทำการติดตาม
ยานพาหนะเพอ่ื ทำการนบั จำนวนยานพาหนะในกลอ้ ง CCTV

ภาพที่ 3.1 FLOWCHART ระบบปัจจุบัน
(ทมี่ า : https://www.researchgate.net/figure/Main-workflow-of-the-proposed-vehicle-

counting-approach_fig1_332631701)

12

3.3.2 ปญั หาของระบบเดิม
ลักษณะการทำงานของระบบเป็นการทำงานแบบการทำงานด้วยคนเป็นส่วนใหญ่

ทำให้มีความล่าช้าในการวิเคราะห์ และการรวบรวมข้อมูลต่างๆและยังขาดเทคโนโลยีเข้ามาอำนวย
ความสะดวกทำให้ไม่สามารถทำงานได้ตลอด 24 ชั่วโมง ทำให้เกิดข้อผิดพลาดในการวิเคราะห์
สงั เคราะห์ขอ้ มลู และทำให้เกิดความเสยี หายต่อองค์กร
3.4 การวิเคราะห์ความต้องการของผใู้ ช้

3.4.1 ปญั หาและสาเหตุ

ภาพท่ี 3.2 ปญั หาและสาเหตุ
ในปัจจุบันการวิเคราะห์ข้อมูลทางการตลาดมีความต้องการข้อมูลเพิ่มมากขึ้นเพื่อ
ตอบสนองความต้องการขาย และความต้องการซื้อของผู้บริโภคที่ต้องการแข่งขันกับคู่แข่งได้อย่างมี
ประสิทธิภาพ โดยการใช้ประโยชนจ์ ากกล้อง CCTV มาบันทึกข้อมูลของปริมาณรถหรือผู้คนที่สัญจร
บนท้องถนนพร้อมท้ังวิเคราะห์ข้อมูลแบบ Data-driven BI เพ่ือใชใ้ นการประกอบการตัดสินใจในการ
เลอื กซ้ือที่ดินเพ่อื ประกอบธรุ กจิ
ดังนั้นเราจึงต้องการทราบความต้องการของผู้ใช้งานระบบว่ามีความต้องการข้อมูล
ในด้านใดมากทีส่ ดุ ถึงน้อยท่ีสดุ เพื่อให้ข้อมูลที่เราศึกษาจากผูใ้ ช้มีความครบถว้ นสมบูรณ์มากที่สุดทาง
เราจงึ เลือกใช้การวเิ คราะหข์ อ้ มูลแบบ Business understanding
ตวั อยา่ งผูใ้ ช้งานระบบ

- บริษัท สยามแมค็ โคร จำกัด
- บริษทั กลุ่มเซน็ ทรลั จำกัด

13

- บริษทั ซพี ี ออลล์ จํากดั

3.4.2 ความตอ้ งการจากผู้ใช้รายกลุ่ม
แบ่งออกเป็น 2 ชนิด ถือ ความต้องการที่เป็นฟังก์ชันการทำงาน (Functional

Requirement) และความต้องการที่ไม่ได้เป็นฟังก์ชันการทำงาน (Non-Functional Requirement)
โดยแต่ละฟังกช์ นั จะทำงาน ดังนี้

Functional requirement
1) สามารถเขา้ ส่รู ะบบดว้ ยการกดผ่านลิ้งทใ่ี ห้
2) สามารถบันทกึ /แก้ไขข้อมลู ท่แี สดงผลได้
3) สามารถเลอื กจุดที่ต้องการนบั จำนวนยานพาหนะ
4) สามารถเลือกดขู ้อมลู ทต่ี อ้ งการจะวิเคราะห์เพิ่มเติมได้
5) สามารถดขู อ้ มลู เม่ือระบบวิเคราะหข์ ้อมลู เสร็จส้นิ

Non-functional requirement
1) ผใู้ ช้จะได้รบั การเก็บรักษาข้อมูลผ่านการเกบ็ รักษาข้อมูลทางเว็บไซต์
2) เก็บขอ้ มลู แบบ 1 ผ้ใู ช้งาน 1 case การวิเคราะหข์ ้อมูล

14

บทที่ 4
การออกแบบระบบ

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

สามารถออกแบบสถาปตั ยกรรมของระบบนับยานพาหนะแบบเรยี ลไทม์ไดด้ ังน้ี

ภาพท่ี 4.1 แสดงสถาปตั ยกรรมระบบ (System Architecture)

15

ระบบนบั จำนวนยานพาหนะแบบเรยี ลไทม์น้ันสามารถแบ่งส่วนสถาปัตยกรรมของระบบได้
ดงั นค้ี ือสถาปัตยกรรมระบบนับจำนวนยานพาหนะ และสถาปัตยกรรมของ Power BI

สถาปัตยกรรมระบบนบั จำนวนยานพาหนะ โดยจะเปน็ ข้ันตอนการทำงานหลกั ของระบบท่ีได้
พัฒนา ซึ่งข้ันตอนการทำงานของสถาปัตยกรรมน้จี ะประกอบดว้ ยสว่ นย่อย ดงั นี้ ส่วนอินพุต และส่วน
ประมวลผล จากการประกอบกันระหว่างสองส่วนนี้จะทำให้การทำงานสำเร็จตามกระบวนการโดย
สามารถอธิบายการทำงานของสถาปัตยกรรมส่วนนี้ได้ว่า กระบวนการทำงานทั้งหมดจะเริ่มจากการ
เก็บข้อมูลภาพตามบริเวณต่างๆ ที่ต้องการและได้กำหนดไว้ โดยจำแนกการเก็บข้อมูลตามช่วงเวลา
สภาพอากาศ เป็นต้น เพื่อเป็นการเปรียบเทียบปัจจัยต่างๆ ที่ส่งผลกระทบต่อความแม่นยำในการ
ตรวจจับยานพาหนะ โดยวิธีการเก็บข้อมูลภาพตามช่วงเวลาจะใช้โปรแกรม Auto Screen Capture
ทำการบันทึกภาพ screenshot ในพื้นที่ต่างๆ ทำการสุ่มเก็บภาพจากกล้องวงจรปิดในระหว่าง
ช่วงเวลา 09.00 – 20.00 โดยกำหนดระยะเวลาที่ทำการบันทึกภาพ screenshot แบบอัตโนมัติโดย
กำหนดเป็นช่วงเวลาดังนี้ใหท้ ำการบันทึกภาพทุก 1 นาที และ 5 นาที โดยภาพจะถูกจัดเก็บในเครื่อง
คอมพิวเตอร์ ขั้นตอนต่อไปจะเป็นการนำภาพที่ได้เก็บรวบรวมมาทำการประมวลผล โดยขั้นตอนการ
ประมวลผลของระบบสามารถแบง่ เปน็ ส่วนตา่ งๆ และสามารถจดั เรยี งกระบวนการทำงานไดด้ ังนี้ ส่วน
การตรวจจับและแยกยานพาหนะ สว่ นการนบั ยานพาหนะ และสว่ นการบนั ทึกข้อมูลยานพาหนะเป็น
ไฟล์ csv เริ่มต้นจากการตรวจจับและการแยกประเภทของยานพาหนะ โดยการทำงานของส่วนนี้จะ
เป็นการทำงานของ opencv รว่ มกบั YOLOv3 และ COCO Data Set หลงั จากป้อนอนิ พตุ ทีต่ ้องและ
ทำการรันโปรแกรมแล้วขั้นตอนนี้จะเป็นกระบวนการแรกที่ถูกดำเนินการ เริ่มต้นจากการทำงานของ
YOLOv3 จะใช้อัลกอริทึมหลัก ๆ 3 ตัว ในการตรวจจับและการแยกประเภทของยานพาหนะ คือ
Residual Blocks ,Bounding Box regression และ Intersection Over Union (IOU) จะสามารถ
อธิบายกระบวนการทำงานของอัลกอรทิ ึมทั้งหมดได้ดังนี้ เริ่มต้นจากการแบ่งภาพเป็น grid ที่มีขนาด
เทา่ กัน จากนน้ั แต่ละ grid จะถกู สง่ ไปที่ model เพอื่ ให้ YOLO เปรียบเทียบและกำหนด class ของ
object ทม่ี ีความใกล้เคยี งมากทส่ี ดุ จาก COCO Data set หลังจากวาด Bouding Boxes
จะใช้อัลกอริทึม Intersection Over Union มาระบุส่วนที่มีการ Intersection กัน ระหว่าง
Bounding Boxes เพื่อทำการตัดส่วน Bounding Boxes ที่ใกล้ชิดกัน จากนั้นจะทำการ map
Bounding Boxes กับคลาสของ COCO Data Set เพื่อหา Class ที่ใกล้เคียงกันที่สุด จึงจะเป็นการ
ดำเนินการตรวจจับวัตถุนั้น ๆ หลังจากระบวนตรวจจับและแยกพาหนะแล้ว ข้อมูลของรถที่ทำการ
ตรวจจับนั้น จะถูกบันทึกในเป็นความถี่ของแต่ละ Class เช่น คลาสของรถจักรยานตนต์มีความถ่ี
จำนวน 5 คัน เป็นต้น จะถูกนับโดยการใช้ Collections ซึ่งเป็น Library ของ Python ที่ช่วยเพิ่ม

16

ความสามารถในการนำจำนวนต่าง ๆ ใน array list tuple ซึ่งการเก็บข้อมูลของยานพาหนะจะถูก
เกบ็ ในลักษณะของ arrays จงึ ใช้ collections เข้ามาชว่ ยในกระบวนการนับ

หลังจากการ process ทั้งหมดได้แก่กระบวนการตรวจจับและแยกยานพาหนะ การนับ
ยานพาหนะ ระบบจะทำการแสดงผลลัพธ์ของ process ท่ไี ดร้ ับการประมวลดังภาพ โดยจะมกี ารวาด
Bounding Boxes ครอบยานพาหนะประเภทตา่ ง ๆ พรอ้ มท้ังแสดงจำนวนของยานพาหนะทีน่ บั ได้

ภาพท่ี 4.2 ผลลัพธจ์ ากการทำงานของระบบ

จะมกี ารบนั ทกึ ข้อมลู จำนวนยานพาหนะแยกตามประเภทลงในรูปแบบ csv ผา่ นการใช้ csv
Library ของ Python โดยลักษณะของไฟล์ csv จะมีโครงสร้างดงั น้ี

ภาพท่ี 4.3 แสดงตารางการบันขอ้ มลู ยานพาหนะ
โดยสถาปตั ยกรรมต่อไปที่จะกลา่ วถงึ คือสถาปัตยกรรม Power BI จะมกี ระบวนการทำงานท่ี
เชื่อมต่อกบั สถาปัตยกรรมหลักของระบบคือ จะมกี ารนำไฟล์ csv ทไี่ ด้บนั ทกึ จำนวนยานพาหนะไว้มา
เป็น data source ในการสร้างแดชบอร์ดเพื่อแสดงภาพรวมของยานพาหนะ โดยการใช้ Power BI

17

Desktop ในการสร้างแดชบอร์ด โดยหลังจากดำเนินการสร้างแดชบอร์ดสำเร็จแล้วนั้น จะทำการ
Publish แดชบอร์ดเพื่อแสดงข้อมูลในเว็บไซต์ผ่าน iframe ซึ่งเป็น html5 tags เพื่อใช้ในการแสดง
ขอ้ มลู แดชบอร์ดต่อไป
4.2 การออกแบบกระบวนการ

4.2.1 ผังการทำงานรองระบบ (Work Flow Diagram)
กระบวนการทำงานหลักของระบบนับจำนวนยานพาหนะแบบเรียลไทม์ นั้นจะ

มงุ่ เน้นไปท่กี ระบวนการทำงานของระบบตรวจจับและนบั ยานพาหนะ ซ่งึ มาสามารถเขียนออกมาเป็น
ผังการทำงานของระบบได้ดังนี้

1) ผังการทำงานการเร่มิ จากขัน้ ตอนการบันทกึ รปู ภาพเพ่ือนำมาประมวลผล

ภาพที่ 4.4 แสดงผงั การทำงานของระบบ (Work Flow Diagram)

18

2) ผงั การทำงานการแยกประเภทและตรวจจบั ยานพาหนะและการเกบ็ ข้อมลู

ภาพท่ี 4.5 แสดงผงั การทำงานการแยกประเภทและตรวจจับยานพาหนะและการเก็บขอ้ มูล
4.3 การออกแบบส่วนติดต่อกบั ผ้ใู ช้ (User Interface Design)

การออกแบบสว่ นนำเข้า (Input Design)

เป็นหน้าจอการแสดงผลสำหรบั ผู้ใช้งานแตล่ ะกลุ่มในการตดิ ต่อกบั ระบบว่า
จะประกอบด้วยส่วนใดบ้างแต่ละหน้าจอจะออกแบบมาเพื่ออะไรและผู้ใช้ใช้งานอย่างไร
โดยแสดงให้เหน็ ว่า ผู้พัฒนาได้นำหลกั การในการออกแบบส่วนตดิ ต่อกับผู้ใช้ ได้นำมาใช้ได้
อยา่ งถกู ต้องและเหมาะสม

19

4.3.1 ช่องการเลอื กปี
ซึ่งในส่วนนี้จะเป็นการเลือกปีที่ต้องการจะทราบข้อมูลจากนั้นระบบจะทำการ

ประมวลผลข้อมลู เพ่อื มาแสดงข้อมูลท้งั หมดในปีนั้นๆ

ภาพที่ 4.6 ช่องการเลือกปี
4.3.2 ชอ่ งการเลอื กจงั หวดั

ซ่งึ ในส่วนน้จี ะเป็นการเลือกจังหวดั เพ่อื นำมาแสดงผลในช่องขอ้ มลู ต่างๆ

ภาพท่ี 4.7 ช่องการเลือกจังหวดั
4.4 การออกแบบส่วนแสดงผล (Output Design)

4.4.1 หนา้ จอแสดงข้อมูล
เมอ่ื ผูใ้ ชง้ านเข้าดูข้อมลู บนเว็บไซตจ์ ะแสดงข้อมลู ในรูปแบบของแดชบอรด์ เพื่อแสดง

ขอ้ มลู ในรปู แบบของแผนภาพ ซ่ึงจะมหี นา้ แสดงผลดังนี้
1) หนา้ แสดงผลหลัก
Power BI เป็นตัวช่วยในการแสดงผลข้อมูลของระบบ ที่จะนำเจอผ่านการ

กดลิ้งเพื่อเข้าไปยังหน้าแสดงผลข้อมูล โดยจะสามารถแสดง ข้อมูลจุดของตำแหน่งกล้อง, จำนวนรถ
ทั้งหมดในแต่ละวัน, จำนวนยานพาหนะของทั้งเดือน, แผนที่ของกล้องแต่ะจุด, ข้อมูลประเภท
ยานพาหนะ นำ้ หนักของยานพาหนะและรายละเอยี ดข้อมลู ของยานพาหนะ

20

ภาพที่ 4.8 หน้าแสดงผลหลัก
2) ช่องแสดงกล้องท่ีใชใ้ นการตรวจจบั

ภาพท่ี 4.9 ชอ่ งแสดงกล้องทใ่ี ช้ในการตรวจจับ

21

3) ชอ่ งแสดงรายช่ือจุดตรวจจับปริมาณยานพาหนะ

ภาพท่ี 4.10 ช่องแสดงรายชื่อจดุ ตรวจจับปริมาณยานพาหนะ
4) ช่องแสดงรายละเอียดขอ้ มลู ยานพาหนะ

ภาพที่ 4.11 ช่องแสดงรายละเอยี ดขอ้ มลู ยานพาหนะ

22

5) ช่องแสดงรายละเอยี ดข้อมูลยานพาหนะ

ภาพที่ 4.12 ชอ่ งแสดงรายละเอียดขอ้ มูลยานพาหนะ

23

บทท่ี 5
การพฒั นาและทดสอบระบบ

5.1 การพัฒนาโมเดล
5.1.1 การสร้างโมเดล
ระบบตรวจจบั และนบั ยานพาหนะนนั้ ได้ใช้ YOLOv3 เปน็ โมเดลหรอื อลั กอริทึมใน

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

ขน้ั ตอนการดำเนินการสร้างโมเดลนนั้ จะถูกดำเนนิ การตอ่ หลงั จากมกี ารกำหนด
คลาสตา่ งๆ ท่ตี ้องการแยกประเภทแล้ว โดยสามารถกำหนดคลาสได้ดงั นี้ Car[0] Motorcycle[1]
Truck[2] Bus[3] โดยกำหนด index ตามลำดบั ข้ันตอนต่อไปจะกลา่ วถงึ ขัน้ ตอนการสร้างโมเดลใน
การใช้งานกับระบบตรวจจับและยานพาหนะ

การดำเนินการสร้างโมเดลจะถกู ดำเนินการบน Google Colab ซ่งึ สามารถใช้รนั
โคด้ python บนเวบ็ ไซต์ได้ ซ่ึงยงั มจี ดุ เดน่ คือ GPU ทชี่ ว่ ยเพม่ิ ความรวดเร็วในการประมวลผล
สำหรบั การใช้งานฟรี การสรา้ งโมเดลเรม่ิ ต้นจาก การเลือกใช้ GPU ในการประมวลผล

ภาพท่ี 5.1 แสดงถึง Notebook Settings
ขัน้ ตอนต่อจะเปน็ ดาวนโ์ หลดโมเดล Darknet เพื่อใชเ้ ป็นเครื่องมือหลกั ในการสร้าง
และเทรนโมเดล โดยทำการโคลนโปรเจคจาก Github ได้เลยซงึ่ ในโปรเจคนี้จะมีคา่ based model
ตา่ งๆ ของ yolo เพื่อนำไปใช้งานได้

24

ภาพที่ 5.2 Darknet https://github.com/AlexeyAB/darknet
โดยหลังจากดาวน์โหลดโปรเจคมาแล้วทำการ Config ค่าต่างๆ เพอื่ เร่มิ ใชง้ าน โดยหลักๆ จะเปน็ การ
เรียกใช้คำส่งั !make เพอื่ เปน็ การ build Darknet เพือปรับให้สามารถทำการเทรนโมเดลได้

ภาพท่ี 5.3 !Make Command

25

หลังจากใชค้ ำสง่ั !make เรียบรอ้ ยแลว้ จะเปน็ การทดสอบตรวจจบั ภาพและแยกประเภทดว้ ย
Yolo model ของ darknet ทมี่ ีอยู่แล้ว

ภาพที่ 5.4 !Make Process
หลงั จากรันคำสั่งดังกลา่ ว จะแสดงการทำงานเบ้ืองหลังของอัลกอริทมึ ในการทำงานของ yolo ท่ี
สามารถเห็นไดช้ ัดเจนจะเป็นการระบุ convolutional layers ในการทำงานแต่ละครง้ั

ภาพท่ี 5.5 แสดงถึงการทำงาน

26

หลังจากการประมวลผลสำเร็จจะแสดงผลลัพธใ์ นการตรวจจับว่ามีคลาสอะไรบ้าง โดยจากผลลพั ธจ์ ะ
ไดค้ ลาสดังนี้ คือ Dog Person Horse และใช้คำสงั่ imshow เพ่ือแสดงภาพท่มี ี Bounding Boxes
หลงั จากการตรวจจบั แล้วนน้ั

ภาพที่ 5.6 Prediciton Image
ข้นั ตอนต่อไปจะเป็นการสร้าง Dataset เพื่อใช้สำหรบั สร้างและเทรนโมเดล โดยใช้ ToolKit ทช่ี ่ือว่า
OIDv4 เพื่อเปน็ การสรา้ ง Dataset

ภาพที่ 5.7 OIDv4 ToolKit
ใช้ ToolKit ตวั นด้ี าวนโ์ หลดภาพจาก Open Image v6 ซึ่งเปน็ แหล่งรวบรวมภาพมากกว่า 600
คลาสเพื่อใช้ในการประมวลผล โดยหลงั จากการดาวน์โหลดรูปภาพและกำหนด Label ซง่ึ แตล่ ะภาพ
จะมี Label กำกับ เช่น รูปภาพขา้ งตน้ โมเดลได้ประมวลผลเป็นคลาส 2 ซงึ่ ตรงกับ Truck ซึ่งในแต่
ละแถวจะเปน็ การระบุค่า Coordinates นัน้ ๆ
2 0.162109375 0.5734358333333334 0.325 0.15262699999999993
2 0.279296875 0.6717645 0.55875 0.36196800000000007

27

2 0.488359375 0.68326125 0.9193749999999999 0.41618000000000005
2 0.9434375 0.76038325 0.11062499999999997 0.4770640000000001

ภาพท่ี 5.8 Data set Example
โดย Dataset ท่ีโหลดมาจะแบง่ เป็นสองโฟลเดอร์ คือ Train และ alidation โฟลเดอร์ Train ไว้
สำหรบั การเทรนโมเดล ส่วนอีกโฟลเดอร์ คือ validation เพ่ือสำหรับทดสอบ Model หลงั จากการ
เทรนโมเดล

อัพโหลดโฟลเดอร์ Dataset ทงั้ สองขึ้น Google Colab เพ่อื ทำการเทรนโมแดล และ
ทดสอบโมเดลต่อไป

ภาพที่ 5.9 Training Process
หลังจากอัพโหลดไฟล์พร้อมกับ config คา่ ตา่ งๆ เรียบร้อยแลว้ ทำการเทรนโมเดลด้วยคำส่งั
darknet เลือกการทำงานเป็น detector และเลือก option เปน็ test พร้อมทงั้ เลือกไฟล์ config

28

ของ yolo เปน็ ไฟล์ config ทม่ี กี าร adaptation ค่าแลว้ เพื่อใหเ้ หมาะสมกบั จำนวนคลาสในการ
ประมวลผล

ผลลัพธจ์ ากการเทรนโมเดล โดยจะแสดงค่าต่าง ๆ ในการทำงานแต่ละคร้งั ซ่งึ ค่าที่มี
ความสำคญั คือ คา่ Average loss ซ่งึ เป็นค่าทแ่ี สดงถึงความผดิ พลาดในการทำงานของโมเดล โดย
สามารถสังเกตถงึ ความแตกต่างอย่างมนี ัยสำคัญ ระหว่างจำนวนคร้ังในการทำ iteration ซง่ึ จากการ
ทำ iteration คร้ังที่ 10 มีคา่ Average loss ที่ 1920.741943 iteration ครัง้ ท่ี 10 ที่ 429.223907
และ iteration ครงั้ ท่ี 1000 อยูท่ ี่ 2.595700

ภาพท่ี5.10 10th Iteration

ภาพที่5.11 100th Iteration

ภาพที่5.12 1000th Iteration
ซึ่งทุกๆ การทำ iteration จะถกู บนั ทึกในไฟล์ yolov3.weights เพอ่ื นำไฟล์ weights ไป
ทำการประเมนิ โมเดลในขน้ั ตอนตอ่ ไป

29

5.1.2 การประเมนิ โมเดล
ใช้ Google Colabเพือ่ ตรวจสอบถึงประสทิ ธภิ าพของการทำงานของโมเดลรว่ มกบั การ

training โดยที่มุ่งเนน้ ไปทีก่ ารหาคา่ mAP( Mean Average Precision) จาก training ซง่ึ การทำคา่
mAP จะเปน็ หาค่าเฉล่ยี โดยรวมของ model ซ่ึงคดิ จากคลาสทัง้ หมดของโมเดล ซ่ึงได้แก่ Car
Motorcycle Truck Bus โดยสามารถแสดงถึงค่าต่าง ๆ แยกเป็นคลาส และคำนวณค่า mAP

ภาพท่ี5.13 Model Evaluation (mAP)
โดยค่า mAP เปน็ การคำนวณหาค่า mean จาก Average Precision ของแตล่ ะคลาส เพอ่ื ตรวจสอบ
ประเมนิ ความแมน่ ยำของโมเดลโดยรวม สามารถจำแนกค่าตา่ งๆ ของแต่ละคลาสออกมาไดด้ ังน้ี

Class Car
• Average Precision = 64.63%
• True Positive = 432
• False Positive = 482

Class Motorbike
• Average Precision = 86.17%
• True Positive = 149
• False Positive = 44

Class Truck

30

• Average Precision = 78.92%
• True Positive = 232
• False Positive = 71

Class Car

• Average Precision = 85.99 %
• True Positive = 78
• False Positive = 32

สำหรับคา่ Confidence threshold สามารถคำนวณแบบเฉล่ยี ท้งั 4 คลาส โดยกำหนดค่า
เปน็ 0.25 ซ่งึ สามารถแสดงคา่ ไดด้ ังน้ี

• ค่า Mean Average Precision = 78.93%
o Precision = 0.59
▪ หมายถงึ ค่าความน่าจะเป็นที่สามารถตรวจจับยานพาหนะได้ถูก
ประเภท เชน่ ตรวจจับว่าเปน็ รถจกั รยานยนต์ 59 คนั จำนวน
รถจกั รยานยนต์ทั้งหมด 100 คนั
o Recall = 0.78
▪ หมายถึงค่าความน่าจะเป็นทสี่ ามารถตรวจจบั ยานพาหนะได้ถกู
ประเภทจากยานพาหนะทงั้ หมด
o F1-Score = 0.67
▪ คา่ เฉลี่ยแบบ harmonic mean ระหวา่ ง Precision และ Recall
o Overall TP = 891
o Overall FP = 692
o Overall FN = 245
o Average IoU = 46.73%

31

5.2 การพัฒนาระบบ
หลังจากเสร็จสิ้นขั้นตอนวิเคราะห์และออกแบบระบบ ขั้นตอนต่อไปคือการพัฒนาและการ

ทดสอบระบบถือเป็นขั้นตอนสำคัญทมี่ ีความสืบเน่ืองกนั กล่าวคอื ต้องพัฒนาและทดสอบระบบเพ่ือให้
ตรงกับระบบท่อี อกแบบมา ทั้งนี้เพอื่ ให้ตรงตามวตั ถปุ ระสงค์

5.1.1 โครงสรา้ งของไฟล์โปรแกรม

ภาพท่ี 5.1 โครงสร้างไฟล์โปรแกรม

ภาพที่ 5.2 โครงสร้างไฟล์ image

32

ภาพที่ 5.3 ไฟล์ static-data.csv
5.1.1.1 __pycache__

เกบ็ cache ตา่ งๆ หลงั จากการ compile ไฟล์ python
5.1.1.2 Image

เก็บไฟล์ภาพ Screenshoot ของวดิ โี อสตรีมม่งิ จากกล้อง CCTV ในบริเวณ
ต่างๆ
5.1.1.3 coco.names

สำหรบั เก็บคลาสท้งั หมดของ coco dataset ซึ่งจะใช้ไฟล์น้ีเพ่ือ
เปรยี บเทยี บคลาสกับประเภทรถที่ต้องการแยกประเภท เพ่ือการตรวจจับ

5.1.1.4 Static-data.csv
หลังจากกระบวนการตรวจจับแล้ว บันทกึ ข้อมูลของยานพาหนะที่ทำการ

ตรวจจบั ได้ ซงึ่ โครงสรา้ งของไฟล์ csv
• Time ระบุเวลาขณะตรวจจบั ยานพาหนะ
• Location ระบบุ รเิ วณทท่ี ำการตรวจจับยานพาหนะ
• Car ปริมาณของรถยนต์
• Motorcycle ปริมาณของรถมอเตอรไ์ ซต์
• Bus ปรมิ าณของรถโดยสาร
• Truck ปรมิ าณของรถบรรทุก

33

ภาพท่ี 5.4 static-data.csv
5.1.1.5 vehicle_count.py

เป็นไฟล์หลกั ในการทำงานของระบบ ซึง่ สามารถแสดงการทำงาน
ของไฟล์ผา่ นแผนภาพดังนี้

ภาพที่ 5.5 แผนภาพแสดงการทำงานของไฟล์ vehicle_count.py

34

สามารถอธิบายองค์ประกอบของไฟล์ และการทำงานในแตล่ ะบลอ็ กได้ดงั น้ี
1) การ import packages ตา่ งๆ เข้ามาใช้งาน

ภาพที่ 5.6 import packages

• datetime
o ใชส้ ำหรบั การจัดการวนั และเวลาในการบนั ทกึ ขอ้ มลู

• Imutils
o สำหรบั การเข้า path เพื่อการประมวลผลภาพ

• cv2 (OpenCV)
o ใช้สำหรับการตรวจจบั การ config คา่ ต่าง ๆ การวาด bounding box

• csv
o เพ่อื บันทกึ ข้อมูลยานพาหนะในรูปแบบ csv

• collections
o เพอ่ื ใชจ้ ัดการกับขอ้ มลู ประเภท list โดยสามารถนับความถ่ีของ list ได้

• numpy
o ใชส้ ำหรบั จดั การขอ้ มลู ลักษณะ array

• os
o ใชส้ ำหรบั ลบขอ้ มลู ภาพ

• schedule
o ใช้สำหรบั กำหนดการทำงานฟงั ก์ชนั เช่น ต้องการให้ฟงั กช์ ันทำงานทุกๆ 1
นาที

• Time
o ใชค้ วบคกู่ บั schedule

35

ภาพท่ี 5.7 config size and threshold
#assign size

ปรับภาพ input เป็นขนาด 320x320 ในลักษณะของ grid ทเ่ี ทา่ ๆ กัน
#Detection confidence threshold

กำหนดค่า minimum ของ confidence ใหต้ วั แปรตา่ งๆ

ภาพท่ี 5.8 retrieve class and set required index
#retrieve class from COCO and store as list

รบั class ท้งั หมดและเกบ็ ในลักษณะ list
# set required classname

ระบุ class ทีต่ อ้ งการในลกั ษณะของ index

ภาพที่ 5.9 Set models file and config network model

36

# Model Files
ระบุไฟล์โมเดล เปน็ ไฟล์ config และไฟล์ weight

#configure the network model
อา่ นค่า network model จาก parameter ทงั้ สองค่า modelConfiguration คือ

ไฟล์ config ที่แสดงถึง network architecture และ modelWeigheights คอื darknet
model เพ่ือเรียนรู้ network

ภาพที่ 5.10 แสดงฟังกช์ ันหลกั ในการตรวจยจบั ยานพาหนะจากภาพ
เรม่ิ ต้นจากการ config ภาพ input จากการใช้ฟังก์ชัน cv2.dnn.blobFromImage ซ่ึงจะมี
parameter เพือ่ ใช้ในการดำเนนิ การดังนี้

ภาพท่ี 5.11 แสดงฟังก์ชนั หลกั ในการตรวจยจับยานพาหนะจากภาพ
• Image(img) รบั input เป็นรปู ภาพ
• scaleFactor(1/255) กำหนด scale ให้กับรูปภาพ
• size(input_size,input_size) กำหนดของภาพขนาดให้กับ output
• mean([0,0,0]) กำหนดค่า mean-R mean-G mean-B
• swapRB(1) ถา้ มกี าร swap ระหวา่ งคา่ mean ตั้งคา่ 1
• crop(False) ใหท้ ำการ crop รูปภาพหรอื ไม่

37

ภาพท่ี 5.12 send input to network model
กำหนดคา่ input รวมทง้ั สง่ ต่อ input ไปยงั network model

def postProcess(outputs,img):
global detected_classNames
detected_classNames.clear()
height, width = img.shape[:2]
boxes = []
classIds = []
confidence_scores = []
detection = []
for output in outputs:
for det in output:
scores = det[5:]
classId = np.argmax(scores)
confidence = scores[classId]
if classId in required_class_index:
if confidence > confThreshold:
# print(classId)
w,h = int(det[2]*width) , int(det[3]*height)
x,y = int((det[0]*width)-w/2) , int((det[1]*height)-h/2)
boxes.append([x,y,w,h])
classIds.append(classId)
confidence_scores.append(float(confidence))

# Apply Non-Max Suppression
indices = cv2.dnn.NMSBoxes(boxes, confidence_scores, confThreshold, nmsThreshold)
# print(classIds)
for i in indices.flatten():

x, y, w, h = boxes[i][0], boxes[i][1], boxes[i][2], boxes[i][3]
# print(x,y,w,h)

38

color = [int(c) for c in colors[classIds[i]]]
name = classNames[classIds[i]]
detected_classNames.append(name)
# Draw classname and confidence score
cv2.putText(img,f'{name.upper()} {int(confidence_scores[i]*100)}%',

(x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 1)
# Draw bounding rectangle
cv2.rectangle(img, (x, y), (x + w, y + h), color, 1)
detection.append([x, y, w, h, required_class_index.index(classIds[i])])

ภาพท่ี 5.13 postProcess function
หลังจากการประมวลผลภาพเสรจ็ แล้ว ฟังกช์ นั postProcess มหี นา้ ที่คือ กำหนดคา่
confidence และทำการวาด bounding boxes ซง่ึ กระบวนการทำงานหลกั ๆ ของฟงั กช์ นั มีดังน้ี

def postProcess(outputs,img)

outputs รับค่า และภาพ outputs หลังจากการประมวลผล หลังจากนั้นจะนำค่า
outputs ที่รับมา เพื่อมาค่า confidence หลังจากนั้นใช้เทคนิค Non-max suppression เพื่อลบ
bounding box ที่จะเข้ามาคาบเกี่ยว ตามหลัก Intersection over Union จนถึงกระบวนการวาด
bounding box รอบๆ ยานพาหนะ

หลงั จากการทำงานข้นั ตอนการตรวจจับเสรจ็ ส้นิ จะเป็นบันทกึ ข้อมลู ยานพาหนะลง
ไฟล์ csv

ภาพท่ี 5.14 save data
โดยในแต่ละแถวนั้น มีการบันทึกข้อมูลเวลา สถานที่ตรวจจับ ปริมาณรถยนต์
ปริมาณรถมอเตอรไ์ ซค์ ปริมาณรถโดยสาร และปริมาณรถบรรทกุ

5.2 การติดต้งั ระบบ
5.2.1 การติดต้งั YOLOV3

39

YOLOV3 คือ ระบบตรวจจับวัตถุที่กำหนดเป้าหมายสำหรับการประมวลผลแบบ
เรียลไทม์ สามารถ detect แม้กระทั่งวตั ถุที่มนั ซ้อนกนั ไดด้ ้วย โดยมีโครงสร้างที่ค่อนข้างซับซ้อนของ
grid ในแตล่ ะชนั้ ทเี่ ลก็ ลงเรอ่ื ย ๆ ในแต่ละ Layers ซึ่งสามารถดาวน์โหลดและติดต้ังได้

5.2.2 การติดตัง้ Power BI
Power BI คือคอลเลกชันของบริการซอฟต์แวร์ แอป และตัวเชื่อมต่อที่ทำงาน

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

ภาพท่ี 5.15 การตดิ ตงั้ Power BI

ภาพที่ 5.16 หน้าแสดงผลบน Power BI
5.2.3 การตดิ ตงั้ OpenCV


Click to View FlipBook Version