โครงการนี้มีพื้นฐานมาจากการตรวจจับและติดตามบุคคล และฉันมุ่งเน้นไปที่การติดตามบุคคลเป็นหลัก ดังที่แสดงในเอาท์พุต gif ใน README.md หรือ output.mp4 แต่ละคนจะได้รับ id
ทันทีที่เขาเข้าสู่เฟรมและ id
จะถูกเก็บรักษาไว้โดยไม่คำนึงถึงการตรวจจับที่เกิดขึ้นในเฟรมที่เกิดขึ้นพร้อมกัน อัลกอริธึมจะตรวจจับบุคคลและติดตามเขาตราบเท่าที่เขายังคงอยู่ในเฟรม
Person_det_track.py ตรวจจับและติดตามบุคคลโดยใช้ SSD และตัวกรองคาลมาน
โปรดลองใช้เวอร์ชันที่ให้มามากที่สุดเท่าที่จะเป็นไปได้ ไม่เช่นนั้นคุณจะประสบปัญหาความเข้ากันได้ ฉันใช้ชุดค่าผสมที่ดีที่สุดเท่าที่จะเป็นไปได้ในช่วงเวลาของการเขียนโค้ด
opencv [v3.1]
เทนเซอร์โฟลว์ [v1.5.0]
วิธีการที่นำเสนอในที่นี้แบ่งออกเป็น 2 ส่วนหลักๆ
การตรวจจับบุคคล - การตรวจจับบุคคลแบบเรียลไทม์ทำได้ด้วยความช่วยเหลือของ Single Shot MultiBox Detector SSD บรรลุ mAP 75.1% ซึ่งมีประสิทธิภาพเหนือกว่ารุ่น R-CNN ที่เร็วกว่าที่เทียบเคียงได้ และรุ่น SSD มีอยู่ในสวนสัตว์การตรวจจับ Tensorflow การผสานรวม SSD เข้ากับเทนเซอร์โฟลว์อย่างราบรื่นช่วยในการเพิ่มประสิทธิภาพและการใช้งานอัลกอริทึมเพิ่มเติม การตรวจจับวัตถุ SSD ประกอบด้วย 2 ส่วน:
การติดตามบุคคล - การวางกรอบสามารถทำได้รอบๆ วัตถุ/บุคคลโดยการรันโมเดลการตรวจจับวัตถุในทุกเฟรม แต่การดำเนินการนี้มีราคาแพงในการคำนวณ อัลกอริธึมการติดตามที่ใช้ในที่นี้คือการกรองคาลมาน ตัวกรองคาลมานได้รับการยกย่องมานานแล้วว่าเป็นโซลูชันที่ดีที่สุดสำหรับงานติดตามและคาดการณ์ข้อมูลจำนวนมาก ใช้ในการวิเคราะห์การเคลื่อนไหวของภาพ วัตถุประสงค์ของการกรองคือการดึงข้อมูลที่จำเป็นออกจากสัญญาณ โดยไม่สนใจสิ่งอื่นใด ในโครงการนี้ ตัวกรองคาลมานจะถูกป้อนด้วยความเร็ว ตำแหน่ง และทิศทางของบุคคล ซึ่งช่วยในการทำนายตำแหน่งในอนาคตของบุคคลตามข้อมูลก่อนหน้าของเขา
ส่วนการติดตามยังคงประสบปัญหาบางอย่างในขณะที่มีการบดบัง (กำลังดำเนินการอยู่)
ระบบประกอบด้วยสองส่วน ส่วนแรก การตรวจจับโดยมนุษย์ และส่วนที่สอง การติดตาม การวิจัยในช่วงแรกมีอคติต่อการรับรู้ของมนุษย์มากกว่าการติดตาม การติดตามความเคลื่อนไหวของมนุษย์ทำให้จำเป็นต้องมีการติดตามมากขึ้น การติดตามการเคลื่อนไหวมีความสนใจอย่างมากในการกำหนดกิจกรรมของบุคคลและความเอาใจใส่ของบุคคล
การลดความต้องการพลังงานในการคำนวณ - อัลกอริธึมการตรวจจับข้อโต้แย้งปกติจะตรวจจับออบเจ็กต์ แต่ไม่ได้ติดตาม (กำหนด Id) ออบเจ็กต์ข้ามเฟรม จึงต้องรันในทุกเฟรมถึงจะได้กรอบขอบ การติดตามจะช่วยลดจำนวนครั้งที่ต้องเรียกใช้อัลกอริธึมการตรวจจับ กล่าวคือ แทนที่จะเรียกใช้อัลกอริธึมการตรวจจับทุกเฟรม การใช้งานนี้จะเรียกใช้การตรวจจับทุกๆ 5 เฟรม
การชดเชยความล้มเหลวของโมเดลการตรวจจับวัตถุ - อาจมีบางท่าที่ SSD อาจตรวจไม่พบบุคคล แม้แต่การบดเคี้ยวก็สามารถส่งผลกระทบต่อเครื่องตรวจจับได้อย่างมาก นั่นคือจุดที่อัลกอริธึมการติดตามสามารถช่วยเราได้อย่างมาก
การดึงข้อมูลประจำตัว - การติดตามมนุษย์สามารถใช้เป็นขั้นตอนก่อนหน้าในการจดจำใบหน้าด้วยไบโอเมตริกซ์ การติดตามบุคคลอย่างต่อเนื่องจะช่วยให้สามารถระบุตัวบุคคลได้ตลอดเวลา แม้ว่าการระบุใบหน้าจะไม่สามารถทำได้ในชุดเฟรมใดชุดหนึ่ง แต่การระบุตัวตนของเขาก็สามารถถูกติดตามได้ โดย นีราช เมนอน