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

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

Result from HitAlert

Objectives

  1. เพื่อพัฒนาระบบที่สามารถแจ้งเตือนความเสี่ยงในการชนกับสิ่งกีดขวางสำหรับผู้พิการทางสายตาได้
  2. เพื่ออำนวยความสะดวกกับการดำเนินชีวิตประจำวันของผู้พิการทางสายตา
  3. เพื่อศึกษาเทคนิคต่างๆ ทางด้าน Computer Vision โดยเฉพาะกลุ่ม Dynamic Vision

Theory & Technique

อัลกอริทึมของ HitAlert ดัดแปลงมาจาก (Pundlik'13) ซึ่งมีพื้นฐานจากการคำนวณ optical flow ในภาพ แล้วเปรียบเทียบระยะห่างของคู่จุดที่ใกล้เคียงกันในเฟรมก่อนหน้าและเฟรมหลัง เพื่อประเมินว่าวัตถุในภาพกำลังพุ่งเข้าหากล้องหรือไม่

ส่วนที่ดัดแปลงไปจากวิธีดังกล่าวคือวิธีการคำนวณค่าความเสี่ยง ซึ่งในระบบนี้ จะใช้การเปรียบเทียบพื้นที่ของสามเหลี่ยมที่ได้จาก Delaunay triangulation ของจุด features ที่พบในภาพ แทนที่จะเปรียบเทียบระยะห่างของแต่ละจุด และอีกส่วนที่เปลี่ยนไปจากงานดังกล่าวคือกระบวนการ post-processing ผลที่ได้จากขั้นก่อนหน้า โดยขั้นตอนการประมวลภาพของระบบ HitAlert ประกอบด้วยขั้นตอนหลักๆ ดังนี้

algorithm flow
  1. Features Detection

    เนื่องจากอัลกอริทึมนี้ใช้ประโยชน์จาก optical flow เป็นหลัก จึงต้องหาบริเวณ feature ในภาพที่เหมาะกับการ track เช่น มุม หรือขอบในภาพ ก่อนที่จะนำจุดเหล่านั้นไปคำนวณหา optical flow

  2. Delaunay Triangulation

    ลากเส้นสร้างรูปสามเหลี่ยมจากชุดของจุดในพื้นที่ 2 มิติ เพื่อให้ทราบบริเวณ region ต่างๆ ของภาพได้อย่างคร่าวๆ และนำสามเหลี่ยมแต่ละชิ้นไปคำนวณต่อเพื่อดูความเสี่ยงในการชน

  3. Sparse Optical Flow

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

  4. Time-to-Collide and Risk Map Estimation

    ข้อมูลจาก Delaunay triangulation และ optical flow รวมกันได้เป็นตำแหน่งจุดยอดของสามเหลี่ยมแต่ละชิ้นในเฟรมก่อนหน้าและเฟรมปัจจุบัน นำสามเหลี่ยมทั้งสองมาประมาณค่าเวลาที่วัตถุจะเคลื่อนเข้ามาชน หรือ Time-to-Collide (TTC) ด้วยความสัมพันธ์
    $$TTC \propto {\sqrt{A_t} \over {\sqrt{A_t} - \sqrt{A_{t-1}}}}$$
    ซึ่งความสัมพันธ์นี้คำนวณมาจาก image geometry ของการเคลื่อนที่ของวัตถุในโลก 3 มิติ โดยที่ At คือพื้นที่ของสามเหลี่ยมบนภาพที่สนใจในเฟรมที่ t เมื่อได้ค่า TTC ของแต่ละสามเหลี่ยมแล้ว ก็นำมาวาดลงบน "ภาพความเสี่ยง" (Risk Map) (ในภาพตัวอย่างด้านล่าง ยิ่งสว่างมากคือเสี่ยงมาก)

  5. Risk Map Post-Processing

    เมื่อได้ภาพความเสี่ยงในแต่ละเฟรมแล้ว ก็นำมา post-process เพื่อลดจำนวน False Positive ที่อาจะเกิดขึ้นลง โดยทำ

    • Gaussian Blur เพื่อเกลี่ยค่าความเสี่ยงในเชิงพื้นที่ของเฟรมหนึ่งๆ และ
    • Exponential Smoothing เกลี่ยค่าความเสี่ยงในเชิงเวลาจากภาพความเสี่ยงหลายๆ เฟรม
    เมื่อ post-process เรียบร้อยแล้ว ก็ทำ threshold เพื่อตัดสินว่าบริเวณใดที่มีความเสี่ยงสูง ควรจะเตือนผู้ใช้ว่าอาจเกิดการชน

สามารถดูผลที่ได้จากแต่ละขั้นตอนได้ในภาพด้านล่างนี้

Tracking Points1. Tracking Points
Delaunay Triangulation2. Delaunay Triangulation
Optical Flow3. Optical Flow
Time-to-Collide Calculation4. Time-to-Collide Calculation
Risk Map5. Risk Map of a Frame
Post-processed Risk Map6. Post-processed Risk Map
Final Result7. Final Result

Demo

Experimental Results

วิธีการทดลอง

ทดลองโดยให้ผู้ใช้ถือคอมพิวเตอร์ที่รันโปรแกรม HitAlert แล้วเดินตรงไปข้างหน้า ทั้งหมด 100 ครั้ง แบ่งการเดินออกเป็น 2 กลุ่ม คือ

  1. มีวัตถุกีดขวาง (50 ตัวอย่าง) เริ่มจากยืนห่างวัตถุประมาณ 5 เมตร แล้วเดินเข้าไปหาวัตถุ โปรแกรมจะต้องเตือนก่อนชนกับวัตถุอย่างน้อย 20 เซนติเมตร
  2. ไม่มีวัตถุกีดขวาง (50 ตัวอย่าง) เดินผ่านทางที่ไม่มีวัตถุกีดขวางเป็นระยะทาง 5 เมตร โดยระหว่างที่เดินนั้นโปรแกรมไม่ควรจะส่งเสียงเตือน
จากทั้ง 2 กลุ่ม จะนับจำนวนครั้งที่ระบบแจ้งเตือน และไม่แจ้งเตือน แล้วนำข้อมูลที่ได้ไปประเมินผลอัลกอริทึมต่อไป

ผลการทดลอง

Accuracy 78.0%
Precision 79.2%
Recall 76.0%

Analysis & Discussions

จากผลการทดลองใช้อัลกอริทึม พบส่วนที่อาจนำไปพัฒนาต่อได้ คือ

  • ลดความผิดพลาดในการแจ้งเตือนทั้ง false positive และ false negative
  • เพิ่มความเร็วในการประมวลผล เพื่อรองรับ platform อื่นๆ นอกจากคอมพิวเตอร์ทั่วไป
  • พัฒนาระบบ mobile application เพื่อเพิ่มความสะดวกกับการนำไปใช้งานจริง

References

  1. S. Pundlik, M. Tomasi and G. Luo, "Collision Detection for Visually Impaired from a Body-Mounted Camera," in 2013 IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2013. [available on IEEE Xplore]

The Team

ณัฐนัย อมรเทวภัทร
5631031521
ธนวิชญ์ ประสงค์พงษ์ชัย
5631045321
ภัทรเศก จิรบวรวิสุทธิ์
5630469621