วันจันทร์ที่ 8 ตุลาคม พ.ศ. 2561

สิ่งที่ได้ทดลอง ( 30 กันยายน - 6 ตุลาคม 2561)



ทดสอบทุก case ที่คาดว่าทำให้เกิด Error

1.การเดินผ่านในระยะใกล้ตัวกล้อง

        ทดสอบโดยการเดินผ่านหน้ากล้องโดยไม่แบมือหรือเก็บมือไว้ด้านหลังในระยะตั้งแต่ 10-20 cm โดยประมาณ
        ผลลัพธ์ : ในระยะที่ใกล้กล้องมากๆ การรับผลจะเริ่มเพี้ยนและส่งผลให้ไปสั่งการได้ในบางรอบ

2.การเดินผ่านในระยะใกล้ตัวกล้องโดยที่กางมือไปด้วย

        ทดสอบโดยการเดินผ่านหน้ากล้องโดยแบมือและแกว่งมือไปมาในระยะตั้งแต่ 10-20 cm โดยประมาณ
        ผลลัพธ์ : หากกล้องตรวจจับมือได้ควบคู่กับการเดิน อาจส่งผลให้การเดินผ่านในครั้งต่อไปจะไปสั่งการ Kinect ได้

3.การโบกมือในระยะที่ใกล้ตัวกล้อง

        การโบกมือในระยะที่ใกล้ตัวกล้อง : ทำการกางมือและโบกซ้ายขวาในระยะตั้งแต่ 10-20 cm โดยประมาณ
        ผลลัพธ์ : อาจส่งผลให้การการตรวจจับรวนและไปสั่งการ Kinect ได้ในบางครั้ง

4.การกางมือบริเวณด้านหน้าตัวโดยให้ห่างจากตัวพอประมาณ

        การกางมือบริเวณด้านหน้าตัวโดยให้ห่างจากตัวพอประมาณ : ทำการกางมือให้ห่างจากลำตัวเล็กน้อย และโยกตัวไปมาพร้อมกับมือ
        ผลลัพธ์ : จะมีลักษณะคล้ายกับการเดินแบบกางมือ คือ เมื่อกล้องตรวจจับไปมือได้แล้ว หากเราเก็บมือและโยกตัวหรือเอวไปทางซ้ายหรือขวาก็มีโอกาสที่จะไปสั่งการ kinect ได้

5.การเดินผ่านในระยะใกล้ตัวกล้องโดยที่กางมือไปด้วย

        การเดินผ่านในระยะใกล้ตัวกล้องโดยที่กางมือไปด้วย : ทดสอบโดยการเดินผ่านหน้ากล้องโดยแบมือและแกว่งมือไปมาในระยะตั้งแต่ 10-20 cm โดยประมาณ        ผลลัพธ์คือ หากกล้องตรวจจับมือได้ควบคู่กับการเดิน อาจส่งผลให้การเดินผ่านในครั้งต่อไปจะไปสั่งการ Kinect ได้

6.การกางมือบริเวณด้านหน้าตัวโดยให้มือแนบกับตัว

        ทำการกางมือนำไปแนบกับลำตัวและโยกตัวไปมาพร้อมกับมือ
        ผลลัพธ์ : มีโอกาสน้อยมากที่จะไปสั่งการ Kinect ให้เลื่อนซ้ายหรือขวาได้

คาดถึงสาเหตุของ Error ที่เกิดขึ้น

จากการทดสอบใน case ที่กล่าวมา พอจะจำกัดได้ว่า Error เกิดขึ้นได้ ดังนี้

  • ระยะที่ใกล้มากเกินไป
  • Frame หรือ Blob ที่ตรวจจับว่าเป็นมือยังค้างอยู่
  • ความสูงในการติดตั้ง เนื่องจากที่ทดสอบตั้งที่ความสูงจากพื้นประมาณ 75-85 cm

ศึกษาการทำงานทั้งหมดของโค้ดเพื่อหาทางแก้ไข

        ได้ทำการศึกษาการทำงานของโค้ดโดยลึกเพื่อตรวจสอบว่าการทำงานจริงๆนั้นเป็นอย่างไร รวมไปถึงตรวจดูลำดับการทำงานว่าลำดับการทำงานเป็นอย่างไร เพื่อหาวิธีจัดการเรื่อง Frame หรือ Blob ที่ยังติดสถานะว่าเป็นมือค้างอยู่ทำให้การตรวจจับผิดพลาด
        จากการที่ Uncomment Code บางส่วนที่รุ่นพี่ปิดไว้เพื่อลดภาระการทำงานของ Raspberry Pi นั้นช่วยให้การตรวจจับเสถียรขึ้นแต่ยังพบกับปัญหาตามที่กล่าวไว้ข้างต้น
        หากสามารถนำข้อมูลที่เป็นภาพตรวจจับจากมือมาแสดงเพิ่มเติมได้จะนำมาเสนอในครั้งถัดไปเพื่อเช็คความถูกต้อง


ปัญหาที่พบของ Kinect เกี่ยวกับ Hotplug



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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น