Credit: https://www.voanews.com
แน่นอนว่าปัญหาการจราจรเช่น รถติด นั่นเป็นสิ่งที่สร้างความกวนใจและทำให้เกิดปัญหาต่อผู้ใช้รถใช้ถนนมาอย่างยาวนาน โดยเฉพาะในเขตตัวเมืองของจังหวัดใหญ่ ๆ ของประเทศไทย เช่น กรุงเทพมหานคร ซึ่งวิธีแก้ปัญหานั้นต่างก็ได้มีคนเสนอแนวคิดหลากหลายแตกต่างกันไป อย่างไรก็ตาม เนื่องจากว่าตัวปัญหาที่แท้จริงนั้นมาจากการเติบโตของตัวเมืองหรือจำนวนประชากรที่เพิ่มมากขึ้น นำไปสู่การใช้รถส่วนตัวกันมากขึ้นตามไปด้วย แต่ทว่าขนาดหรือพื้นที่หรือจำนวนถนนนั้นมีจำนวนเท่าเดิม จึงทำให้เกิดคอขวดและทำให้เกิดรถติดในที่สุด แน่นอนว่าการแก้ไขปัญหาให้หมดไปแบบ 100% นั้นทำได้ยาก แต่จะดีกว่าไหมถ้าอย่างน้อย ๆ เราก็สามารถลดปัญหาตรงจุดนี้ได้ โดยเฉพาะการนำ Technology เช่น Machine Learning (ML) หรือ Big Data เข้ามาช่วย
ในบทความนี้ผู้เขียนจะมาเล่าให้ฟังเกี่ยวกับการนำ Deep Learning (ML ประเภทหนึ่ง) มาผสมผสานกับโปรแกรมการวิเคราะห์ระบบภูมิศาสตร์สารสนเทศสำหรับการวิเคราะห์และแก้ไขหรือลดภาระการจราจร
โดยระบบที่เราจะพูดถึงนั้นเรียกเป็นภาษาอังกฤษเท่ ๆ ว่า An End to End Workflow on the Cloud หรือแปลเป็นไทยแบบเท่ ๆ ไม่แพ้กันว่า กระบวนการบนคลาวด์แบบเสร็จสรรพ สำหรับการติดตาม (Monitor) การจราจร ซึ่งเรานำมาผนวกเข้ากับเทคโนโลยีกล้องวิดีโอที่เป็นกล้องวงจรปิดที่เราจะเห็นตามสี่แยกหรือริมถนน และนำมาใช้งานเข้ากับ ArcGIS ซึ่งตัว ArcGIS นี้มันเป็น ป็น Geospatial Cloud Platform ที่สามารถสร้าง ค้นหา วิเคราะห์ และเผยแพร่แผนที่แบบ Interactive บนเว็บไซต์ นอกจากนี้ยังมีแอปพลิเคชันที่ตอบโจทย์การทำงานตั้งแต่การเก็บข้อมูลไปจนถึงการสรุปผลข้อมูล ช่วยให้ทุกคนในองค์กรสามารถทำงานกับข้อมูลเชิงพื้นที่ได้อย่างง่ายดาย
โดย ArcGIS นั้นมี API ที่เราสามารถเขียนและควบคุมด้วยภาษาโปรแกรมมิ่งที่เป็นแบบ high-level language เช่น Python ซึ่งเป็นภาษาที่ได้รับความนิยมและมี libra ของ deep learning models ให้เราเลือกใช้ได้เยอะแยะเต็มไปหมด โดยตัว API และ Library เหล่านี้ต่างก็มีให้บริการบน Amazon Web Services (AWS)
สำหรับ Workflow หรือกระบวนการนั้นประกอบไปด้วย 6 ขั้นตอนคร่าว ๆ ดังนี้
1. วิเคราะห์ปัญหากันก่อน
2. การรวมรวบข้อมูลและทำ Labelling
3. ตรวจจับวัตถุบน AWS ด้วย YOLO3
4. การประมวลผลของ Workflow
5. แสดงผลการจราจรบน Dashboard
6. การตรวจจับหาข้อผิดพลาดหรือตำหนิ
มาเริ่มต้นกันที่กระบวนการแรก
- วิเคราะห์ปัญหาการจราจร
การ Flow ของการจราจรและปริมาณความจุของรถต่อหนึ่งหน่วยพื้นที่ของถนนนั้นเป็นปัจจัยที่สำคัญมาก และจากการศึกษางานวิจัยที่ผ่านมาพบว่าการที่เรามีแยกเยอะ ๆ นั้น เช่น สามแยก สี่แยก ห้าแยก คือปัจจัยหลักที่ทำให้เกิดรถติดและนำไปสู่การ Delay รถคันอื่น ๆ ที่ตามมา ดังนั้นกล้องวิดีโอจะถูกติดตั้ง ณ แยกเหล่านี้เพื่อทำการบันทึกข้อมูลและตรวจจับพฤติกรรมการขับรถ
2. รวบรวมข้อมูลที่ส่งเข้ามาอย่างต่อเนื่องจากกล้องวิดีโอ
โดยปกติแล้วปัญหาอย่างหนึ่งของการใช้ Deep learning (DL) ก็คือมันต้องการข้อมูลที่มีปริมาณเยอะมาก ๆ เพื่อเทรนโมเดล ดังนั้นเราจึงจำเป็นที่จะต้องเลือกข้อมูลสำหรับการเทรนจากกล้องวงจรปิดจากเมืองใหญ่ ๆ เพราะว่าเราจะมีข้อมูลที่เยอะ ๆ อย่างเช่น ทีมวิจัยของ GeoAI ได้ทำการนำเข้าข้อมูลจากกล้องที่ติดตั้งไว้ในเมือง Washington D.C. โดยใช้ RestAPI
ในการเทรนโมเดลนั้น ทางทีม GeoAI ได้เขียน Python Script ขึ้นมาเพื่อทำการสุ่มเรียก TrafficLand Rest API และเก็บข้อมูลประมาณ 1000 รูปภาพจากทั้งกล้องกลางวันกลางคืนในแต่ละวันจากกล้องทั้งหมด 111 ตัว หลังจากรวบรวมรูปภาพได้แล้วก็ทำการเก็บไว้ใน AWS S3 และทำการติดป้ายหรือ Label รูปภาพเพื่อทำการแยกประเภทโดยใช้ LabelME ซึ่งจะเป็นการวาดกรอบหรือกล้องรอบ ๆ วัตถุและเทียบกับฐานข้อมูลและวิเคราะห์ว่าวัตถุในรูปนั้นคืออะไร และหลังจากนั้นเราก็ Export ออกมาเป็น Text File Format ที่สามารถอ่านต่อได้โดย Detection Algorithms
3. ตรวจจับวัตถุด้วย YOLO3 บน AWS
ในการสร้าง Workflow ขึ้นมานั้น เราจะต้องเปิดจากการตรวจจับวัตถุจากกล้องที่ฟีดเข้ามาอย่างต่อเนื่อง โดยทางทีมได้เลือกใช้โมเดล DL ที่ชื่อว่า You Only Look Once (YOLO) แปลเป็นไทยเก๋ ๆ คือ ดูแค่ครั้งเดียว (ล้อเลียนกับคำว่า You Only Live Once หรีือ เกิดมาแค่ครั้งเดียว ขอทำซะหน่อยเถอะนะ อะไรประมาณนี้) ซึ่ง YOLO เป็นโมเดลที่ได้รับความนิยมสุด ๆ ในการนำมาตรวจหาวัตถุเช่น ในคลิปวิดีโอ หรือแบบ Real-time ซึ่งมันเป็นโมเดลที่ให้ความแม่นยำที่สูงมาก ๆ โดย Output ที่เราได้มานั้นจะได้ออกมาเป็นตำแหน่งของวัตถุในรูปภาพแล้วก็ class ที่เกี่ยวข้องกัน ซึ่งโมเดลตัวนี้ต้องการแค่ Forward Propagation ที่ส่งผ่านตัว Neural Network เพื่อทำการทำนายค่า โดยเวอร์ชั่นก่อนหน้านี้ของ YOLO นั้นทำงานได้ไม่ค่อยดีเท่าไหร่ เพราะให้ผลการทำนายที่ผิดพลาดค่อนข้างเยอะ แต่ในตัว YOLO3 นั้นสามารถแก้ปัญหาเหล่านี้ได้อย่างดีเลยทีเดียว โดยตัว YOLO3 จะทำการ APPLY 1X1 kernel ที่ใช้ Detect วัตถุและฟีเจอร์ของมันสำหรับขนาดสามมิติที่แตกต่างกันไป ซึ่งจริง ๆ แล้วบทความของโมเดลตัวนี้ก็มีให้อ่านเยอะแยะมากไปหมดบนอินเทอร์เน็ต และหลาย ๆ คนที่ทำงานที่ทางด้าน Object Detection ก็รู้จักกันดี
ใครที่ต้องการเล่น YOLO3 สามารถใช้งานได้ผ่าน AMI จาก Market Place ครับ https://aws.amazon.com/marketplace/pp/prodview-5jlvp43tsn3ny และนอกจากนี้ยังมีบทความเกี่ยวกับ YOLO4 ด้วย ซึ่งก็พร้อมให้บริการแล้วใน AWS SageMaker https://aws.amazon.com/blogs/machine-learning/speed-up-yolov4-inference-to-twice-as-fast-on-amazon-sagemaker/
4. การออกแบบ end to end workflow
สำหรับการ implement หรือติดตั้งระบบเข้าไปบน AWS cloud นั้น ทางทีมวิจัยได้เลือกออกแบบ architecture ตามรูปภาพด้านบน ซึ่งเราเลือกใช้การประมวลผลแบบขนานเพื่อเพิ่มความเร็วในการรวบรวมข้อมูลจาก RestAPI และส่งข้อมูลเข้าไปเทรนโมเดลบน AWS EC2 Instance ต่อไป หลังจากนั้นโมเดลจะทำการตรวจจับวัตถุในแต่ละภาพ และท้ายที่สุดแล้วเราจะได้สามารถวิเคราะห์รูปภาพทั้งหมดได้ โดยกระบวนการทั้งหมดนั้นเกิดขึ้นในระยะเวลาที่รวดเร็วมาก ๆ แค่ 10 วินาทีเท่านั้น โดยเราได้ใช้ NVIDIA Tesla K80 GPU ในการประมวลผลนั่นเอง
หลังจากนั้นเราทำการส่งผลลัพธ์ที่ได้จากโมเดลต่อไปยัง GeoEvent บน AWS เพื่อทำการเก็บข้อมูลไว้และทำการแสดงผลออกมาเป็นรูปแบบของการเคลื่อนตัวของจราจรพร้อม ๆ กับ dashboard โดยข้อมูลจะเก็บไว้ใน S3 ทั้งหมดครับ ข้อมูลเหล่านี้ก็เช่น text, RSS, ESRI feature JSON, และ generic JSON แล้วก็ยังรวมไปถึงข้อมูลเกี่ยวกับการติดต่อสื่อสาร เช่น system file, HTTP, TCP, UDP, WebSocket, และ ESRI feature service โดยข้อมูลประเภท JSON นั้นจะถูกแปลงอีกทีด้วย GeoJSON
5. ตรวจจับสภาพจราจรและแสดงผล
ในการดูหรือ Monitor การเคลื่อนตัวของจราจรแบบต่อเนื่องนั้น ทีมวิจัยได้สร้าง Dashboard ขึ้นมาเพื่อใช้ในงานนนี้โดยเฉพาะ ซึ่งมันจะแสดงผลตำแหน่งของกล่องทั้ง 111 ตัวที่ส่งข้อมูลเข้ามา และเราจะใช้ตัว GeoEvent ในการเชื่อมต่อไปยัง Feature Class ที่มันจะทำให้เกิดปัจจัยของรถติดได้ เช่น ในรูปภาพด้านบนแสดงจำนวนของวัตถุที่ตรวจพบจากกล้องทั้งหมดในย่าน ๆ หนึ่งและวิเคราะห์ออกมาเป็นค่าสถิติ
6. การตรวจจับหาข้อผิดพลาดหรือตำหนิ
นอกจากนี้ทางทีมวิจัยยังสนใจและอยากจะรู้ว่าปริมาณของวัตถุของยานพาหนะที่ตรวจพบเจอนั้นมันส่งผลต่อการจราจรตรงแยกต่าง ๆ อย่างไร และมันทำให้เกิดการล่าช้าของจราจรไปนานแค่ไหน เพื่อแก้ปัญหาตรงนี้ จึงใช้ประโยชน์จากข้อมูลที่มีอยู่ก่อนหน้านี้ที่เป็นแบบ Historical Data เพื่อมาประมวลผล โดยสำหรับตัววัตถุใหม่ ๆ ที่ส่งเข้ามานั้น เราสามารถเปรียบเทียบผลลัพธ์กับข้อมูลที่มีอยู่ก่อนหน้า ถ้าสมมติว่ามันมีค่าสูงกว่า 30% จอง Historical Counts เราจะสามารถเรียกข้อมูลที่ส่งเข้ามาเหล่านี้ว่าเป็น Anomaly และสามารถแสดงผลออกมาเป็นรูปภาพได้ด้วยเช่นกัน ในกรณีที่มีข้อมูลใหม่เข้ามาหรือเกิดข้อผิดพลาดขึ้น ณ ทางแยก
โดยสรุปแล้ว ในบทความนี้ผมได้อธิบายเกี่ยวกับการพัฒนา End to End Workflow ที่ทางทีม GeoAI ได้พัฒนาขึ้นมาบนระบบคลาวด์เพื่อใช้ในการติดตามการเคลื่อนตัวของจราจร โดยระบบที่พัฒนาขึ้นมานั้นสามารถที่จะวิเคราะห์และรับข้อมูลแบบ Real-time ได้อย่างไม่มีสะดุด สามารถตรวจจับรถยนต์ รถบัส รถบรรทุก จักรยาน และคน โดยใช้โมเดล YOLO3 ที่ให้บริการบน AWS เพื่อแสดงความการดำเนินไป (Flow) ของยานพาหนะ ทำให้เราวิเคราะห์ได้ว่ามีปัจจัยอะไรบ้างที่ส่งผลต่อปัญหารถติด ทำให้เราแก้ปัญหาได้ถูกจุดนั่นเอง
สำหรับ case study อื่น ๆ สามารถศึกษาได้จากเว็บไซต์หลักของ AWS เลยครับ https://aws.amazon.com/solutions/case-studies/miovision/
ขอขอบคุณรูปภาพประกอบจากทีม GeoAI (image credit)
อ้างอิง
- https://developers.arcgis.com/python
- https://aws.amazon.com/machine-learning/amis
- http://www.arcgis.com/index.html
- http://www.trafficland.com
- https://github.com/tzutalin/labelImg
- https://arxiv.org/abs/1506.02640
- https://lilianweng.github.io/lil-log/2018/12/27/object-detection-part-4.html#yolo-you-only-look-once
- https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b
- https://github.com/qqwweee/keras-yolo3
- https://enterprise.arcgis.com/en/geoevent/latest/get-started/a-quick-tour-of-geoevent-server.htm
และเช่นเคย อ่านมาจนถึงจุดนี้แล้วถ้าหากผู้อ่านมีความสนใจในบริการของ AWS โดยเฉพาะตัว Machine Learning เพื่อนำไปใช้ในการวิเคราะห์ปัญหาใหม่ ๆ แปลก ๆ ที่ต้องใช้ข้อมูลมาก ๆ ในการวิเคราะห์แล้วล่ะก็ สามารถติดต่อ Cloud HM ได้โดยตรงเลยครับ เพราะเรามีการให้บริการ Cloud Platform ครบวงจร ทั้ง Domestic Cloud และ Global Cloud เพื่อตอบสนองความต้องการรอบด้านของลูกค้าครับ
— Cloud HM