คำแนะนำสั้น ๆ เกี่ยวกับการจดจำใบหน้าด้วยวิดีโอของ BBC R & D

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

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

เรารู้จักแฮร์รี่และเมแกนเป็นธรรมชาติแม้จะมีมุมที่แตกต่างกันในภาพเหล่านี้

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

เรากำลังทำงานเพื่อสร้างเทคโนโลยีนี้ที่ BBC ระบบของเราเรียกว่า FaceRec ได้รับการพัฒนาโดยทีมงานวิจัยอินเทอร์เน็ตและบริการข้อมูลในอนาคตภายใต้การวิจัยและพัฒนาของ BBC (เราจะบันทึกการกดแป้นบางส่วนและเรียกพวกเขาว่าทีมข้อมูลจากที่นี่ออกไป) มันถูกสร้างขึ้นโดยใช้รหัสภายในและซอฟต์แวร์โอเพ่นซอร์สภายนอกโดยเฉพาะอย่างยิ่ง Seetaface เครื่องมือจดจำใบหน้า C ++

FaceRec ทำงานโดยการประมวลผลวิดีโอผ่านชุดขั้นตอนอัลกอริทึมโดยแต่ละส่วนจะแก้ปัญหาเฉพาะส่วน เราจะให้ภาพรวมของการทำงานทั้งหมด

1. ตรวจจับภาพ

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

2. ตรวจจับใบหน้า

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

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

3. สร้างแทร็กหน้า

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

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

กล่องที่ถูกผูกไว้ติดตามใบหน้าผ่านการยิง

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

4. สร้างใบหน้าเวกเตอร์สำหรับแทร็ก

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

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

5. จดจำใบหน้าของผู้คนในเวกเตอร์แบบติดตามใบหน้า

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

คำถามแรกที่นี่คือ: เราแค่รู้จักใคร เราไม่สามารถสร้างแบบจำลองเพื่อรับรู้ทุกคนที่เคยมีชีวิตอยู่ - และเราไม่ต้องการ แล้วใครที่เราคิดว่าสำคัญพอสำหรับระบบจดจำใบหน้านี้?

ตามความเป็นจริงสิ่งนี้จะต้องได้รับแรงผลักดันจากนักข่าวใน BBC News และผู้คนที่พวกเขารายงานบ่อยที่สุด เราต้องทราบด้วยว่าคนที่ไม่รู้จักทำข่าวทุกวันและเมื่อพวกเขาทำเราอาจไม่มีภาพก่อนหน้าของพวกเขา ด้วยข้อ จำกัด เหล่านี้ในใจทีมข้อมูลได้เพ่งความสนใจไปที่คนดังผู้นำระดับโลกนักการเมืองสหรัฐในรัฐสภาและสภาผู้แทนราษฎรเมื่อทำการฝึกอบรม FaceRec

ในการรับรู้คนเหล่านี้พวกเขาจำเป็นต้องรวบรวมข้อมูลการฝึกอบรมในแต่ละคน - นั่นคือภาพถ่ายที่มีป้ายกำกับจำนวนมากของบุคคลนั้นที่มีเฉพาะบุคคลนั้น ทีมข้อมูลรวบรวมภาพถ่ายหลายพันภาพจากนั้นสร้างระบบ Front-end ของตัวเองเพื่อดูและติดป้ายรูปภาพแต่ละภาพได้อย่างง่ายดาย ความจริงที่ไม่แน่นอนของการเรียนรู้ด้วยเครื่องจักรคือการรวบรวมคุณภาพข้อมูลที่ติดฉลากมักจะเป็นส่วนที่แพงที่สุดลำบากและสำคัญมากในการสร้างระบบ AI ที่ใช้งานได้ดี

หลังจากรวบรวมภาพถ่ายแล้วทีมข้อมูลได้ป้อนเข้าสู่ตัวจําแนกการเรียนรู้ของเครื่องที่เรียกว่าเครื่องเวกเตอร์สนับสนุนเพื่อสร้างแบบจําลอง เมื่อป้อนใบหน้าเวกเตอร์จาก SeetaFace แบบจำลองเหล่านี้จะทำนายชื่อของบุคคลในภาพใบหน้าต้นฉบับหรือบอกว่าไม่จำใบหน้าได้เลย

IRFS สร้างสองโมเดล:

  1. รุ่นเก็บถาวร: คนที่มีชื่อเสียงตั้งแต่ศตวรรษที่ 20 เป็นต้นไปที่เลือกโดยคนจาก BBC Archive แบบจำลองนี้มีคนประมาณ 1,000 คน
  2. รูปแบบข่าว: ยังอยู่ในระหว่างการพัฒนาสิ่งนี้จะขยายไปรวมสมาชิกกว่า 2,000 คนของรัฐสภาสหราชอาณาจักรและสภาระดับภูมิภาคสภาแห่งขุนนางและผู้นำระดับโลก ภาพการฝึกอบรมนั้นมาจาก BBC News, Factual และ Drama

แบบจำลองที่ผ่านการฝึกอบรมเหล่านี้จะใช้ในการทำนายว่าคนใดอยู่ในหน้าตาในวิดีโอ

6. ติดตามใบหน้าของคลัสเตอร์

ในขณะนี้ทุกเพลงใบหน้าได้รับการติดป้ายแล้วขั้นตอนสุดท้ายคือรวบรวมเพลงทั้งหมดของบุคคลเดียวกัน

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

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

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

การสร้างภาพใบหน้าด้วย TensorBoard

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

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

7. ส่งออกข้อมูล

ขั้นตอนสุดท้ายสำหรับ FaceRec คือการรวบรวมข้อมูลทั้งหมดที่รวบรวมไว้ในขั้นตอนต่าง ๆ สิ่งนี้มาในรูปแบบของไฟล์ JSON ซึ่งมี:

รายการแทร็กในวิดีโอ สำหรับแต่ละเพลงมี:

  • บุคคลที่คาดหมายสำหรับแทร็กนั้น
  • ความมั่นใจในการทำนายผล
  • ติดตาม UUID
  • Face-vector สำหรับแทร็กนั้น
  • รายการของเฟรมในแทร็กนั้น

ในรายการของเฟรมข้อมูลในแต่ละเฟรมรวมถึง:

  • Face vector สำหรับเฟรมนั้นหากตรวจพบแล้ว
  • พิกัดของกล่องใบหน้า
  • เวลาในวิดีโอที่เกิดเฟรม

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

สรุป

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

หลังจากทำความเข้าใจการทำงานภายในของระบบ FaceRec งานสำหรับ News Labs คือการดูว่าเทคโนโลยีนี้สามารถเพิ่มมูลค่าทางธุรกิจภายใน BBC ได้อย่างไร เราจะแสดงความสามารถของ FaceRec ด้วยการสาธิตที่ใช้งานง่ายได้อย่างไร ระบบการผลิตใดที่เราสามารถเห็นระบบ FaceRec ได้ ปัญหาเวิร์กโฟลว์ของใครสามารถแก้ไขได้? และที่สำคัญผู้คนรู้สึกอย่างไรกับการใช้การจดจำใบหน้า เราพูดคุยเกี่ยวกับความท้าทายในการนำเสนอเทคโนโลยีใหม่ภายในองค์กรขนาดใหญ่และคำถามที่เราเผชิญเมื่อพัฒนาต้นแบบการจดจำใบหน้าใน“ การจดจำใบหน้า - การใช้ใบหน้าคืออะไรไปยังห้องข่าว”