บล็อกโพสต์นี้เขียนร่วมโดย Jonathan Lee, Nelson Leung, Paul Min และ Troy Squillaci จาก Intel
In 1 หมายเลข ในโพสต์นี้ เราได้พูดถึงวิธีที่ Intel®3DAT ร่วมมือกับ บริการระดับมืออาชีพของ AWS Machine Learning (MLPS) เพื่อสร้างแอปพลิเคชัน AI SaaS ที่ปรับขนาดได้ 3DAT ใช้คอมพิวเตอร์วิทัศน์และ AI เพื่อจดจำ ติดตาม และวิเคราะห์จุดข้อมูลชีวกลศาสตร์กว่า 1,000 จุดจากวิดีโอมาตรฐาน ช่วยให้ลูกค้าสามารถสร้างผลิตภัณฑ์ที่ขับเคลื่อนด้วยชีวกลศาสตร์ที่สมบูรณ์และทรงพลัง เช่น เว็บและแอปพลิเคชันมือถือพร้อมข้อมูลประสิทธิภาพโดยละเอียดและการแสดงภาพสามมิติ
ในส่วนที่ 2 ของโพสต์นี้ เราจะเจาะลึกลงไปในแต่ละขั้นตอนของสถาปัตยกรรม เราสำรวจบริการของ AWS ที่ใช้เพื่อให้ตรงตามข้อกำหนดการออกแบบ 3DAT รวมถึง สตรีมข้อมูล Amazon Kinesis และ บริการ Amazon Elastic Kubernetes (Amazon EKS) เพื่อปรับใช้แบบจำลองการประเมินท่าทางที่จำเป็นสำหรับซอฟต์แวร์นี้เป็นแอปพลิเคชันบริการ (SaaS) ที่ปรับขนาดได้
ภาพรวมสถาปัตยกรรม
เป้าหมายหลักของทีม MLPS คือการผลิตไปป์ไลน์แบบจำลองการประเมินท่าทาง 2D และ 3D และสร้างแอปพลิเคชันที่ใช้งานได้จริงและปรับขนาดได้ ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมโซลูชัน
สถาปัตยกรรมที่สมบูรณ์แบ่งออกเป็นห้าองค์ประกอบหลัก:
- เลเยอร์ส่วนต่อประสานแอปพลิเคชันผู้ใช้
- ฐานข้อมูล
- การประสานเวิร์กโฟลว์
- การอนุมานการประมาณค่าท่าทางที่ปรับขนาดได้
- การตรวจสอบการปฏิบัติงาน
มาดูรายละเอียดเกี่ยวกับส่วนประกอบแต่ละส่วน การโต้ตอบ และเหตุผลที่อยู่เบื้องหลังตัวเลือกการออกแบบกัน
เลเยอร์ส่วนต่อประสานแอปพลิเคชันผู้ใช้
ไดอะแกรมต่อไปนี้แสดงเลเยอร์อินเทอร์เฟซของแอปพลิเคชันที่ให้ผู้ใช้เข้าถึงและควบคุมแอปพลิเคชันและทรัพยากร
จุดเชื่อมต่อเหล่านี้รองรับกรณีการใช้งานที่แตกต่างกันตามลักษณะลูกค้าที่แตกต่างกัน ตัวอย่างเช่น ผู้ใช้แอปพลิเคชันสามารถส่งงานผ่าน CLI ในขณะที่นักพัฒนาสามารถสร้างแอปพลิเคชันโดยใช้ Python SDK และฝังข้อมูลการประมาณค่าที่ก่อให้เกิดการประมาณค่าลงในแอปพลิเคชันของตน CLI และ SDK ถูกสร้างขึ้นเป็นส่วนประกอบแบบแยกส่วน — ทั้งสองเลเยอร์เป็นตัวห่อหุ้มของเลเยอร์ API ซึ่งสร้างขึ้นโดยใช้ Amazon API Gateway Amazon เพื่อแก้ไขการเรียก API และ ที่เกี่ยวข้อง AWS Lambda ฟังก์ชัน ซึ่งดูแลลอจิกแบ็กเอนด์ที่เกี่ยวข้องกับการเรียก API แต่ละครั้ง เลเยอร์เหล่านี้เป็นองค์ประกอบที่สำคัญสำหรับทีม Intel OTG เนื่องจากเป็นการเปิดฐานลูกค้าในวงกว้างที่สามารถใช้แอปพลิเคชัน SaaS นี้ได้อย่างมีประสิทธิภาพ
เลเยอร์ API
โซลูชันนี้มีชุดหลักของ API เก้าชุด ซึ่งสอดคล้องกับประเภทของอ็อบเจ็กต์ที่ทำงานบนแพลตฟอร์มนี้ API แต่ละรายการมีไฟล์ Python ที่กำหนดการกระทำของ API ที่สามารถเรียกใช้ได้ การสร้างอ็อบเจ็กต์ใหม่จะได้รับการกำหนด ID อ็อบเจ็กต์ตามลำดับโดยอัตโนมัติ แอตทริบิวต์ของวัตถุเหล่านี้ถูกจัดเก็บและติดตามใน Amazon Aurora ไร้เซิร์ฟเวอร์ ฐานข้อมูลโดยใช้ ID นี้ ดังนั้น แอ็คชัน API จะเชื่อมโยงกลับไปยังฟังก์ชันที่กำหนดไว้ในไฟล์ส่วนกลางที่มีลอจิกแบ็กเอนด์สำหรับการสืบค้นฐานข้อมูล Aurora ลอจิกแบ็กเอนด์นี้ใช้Boto3 ไคลเอ็นต์ Amazon RDS DataService เพื่อเข้าถึงคลัสเตอร์ฐานข้อมูล
ข้อยกเว้นประการหนึ่งคือ /job
API ซึ่งมี create_job
วิธีการที่จัดการการส่งวิดีโอเพื่อสร้างงานการประมวลผลใหม่ วิธีนี้จะเริ่ม ฟังก์ชันขั้นตอนของ AWS ตรรกะเวิร์กโฟลว์สำหรับการรันงาน โดยผ่าน job_id
วิธีนี้ใช้ Boto3 ไคลเอนต์ฟังก์ชั่นขั้นตอน เพื่อโทร start_execution
วิธีการที่กำหนด stateMachineARN
(ชื่อทรัพยากรอเมซอน)
API ของอ็อบเจ็กต์ทั้งแปดมีเมธอดและรูปแบบการเข้าถึงที่คล้ายคลึงกันดังสรุปในตารางต่อไปนี้
วิธีการ Type | ชื่อฟังก์ชั่น | รายละเอียด |
GET | list_[object_name]s |
เลือกวัตถุประเภทนี้ทั้งหมดจากฐานข้อมูลและแสดง |
POST | create_[object] |
แทรกเรกคอร์ดอ็อบเจ็กต์ใหม่พร้อมอินพุตที่จำเป็นลงในฐานข้อมูล |
GET | get_[object] |
เลือกแอตทริบิวต์ของอ็อบเจ็กต์ตาม ID อ็อบเจ็กต์จากฐานข้อมูลและแสดง |
PUT | update_[object] |
อัพเดตเรกคอร์ดอ็อบเจ็กต์ที่มีอยู่ด้วยอินพุตที่จำเป็น |
ลบ | delete_[object] |
ลบเรกคอร์ดอ็อบเจ็กต์ที่มีอยู่ออกจากฐานข้อมูลตาม ID อ็อบเจ็กต์ |
รายละเอียดของเก้า APIs มีดังนี้:
- /ผู้ใช้ – ผู้ใช้คือตัวตนของบุคคลที่ได้รับอนุญาตให้ส่งงานไปยังแอปพลิเคชันนี้ การสร้างผู้ใช้ต้องมีชื่อผู้ใช้ อีเมลผู้ใช้ และ ID กลุ่มที่ผู้ใช้เป็นสมาชิก
- /user_group – กลุ่มผู้ใช้คือกลุ่มผู้ใช้ กลุ่มผู้ใช้ทุกกลุ่มถูกแมปกับหนึ่งโปรเจ็กต์และชุดพารามิเตอร์ไปป์ไลน์หนึ่งชุด เพื่อให้มีระดับที่แตกต่างกัน (ในแง่ของทรัพยากรโครงสร้างพื้นฐานและพารามิเตอร์ไปป์ไลน์) ผู้ใช้จะถูกแบ่งออกเป็นกลุ่มผู้ใช้ ผู้ใช้แต่ละคนสามารถอยู่ในกลุ่มผู้ใช้ได้เพียงกลุ่มเดียวเท่านั้น การสร้างกลุ่มผู้ใช้ต้องใช้รหัสโปรเจ็กต์ รหัสชุดพารามิเตอร์ไปป์ไลน์ ชื่อกลุ่มผู้ใช้ และคำอธิบายกลุ่มผู้ใช้ โปรดทราบว่ากลุ่มผู้ใช้แตกต่างจากบทบาทของผู้ใช้ที่กำหนดไว้ในบัญชี AWS ส่วนหลังใช้เพื่อจัดเตรียมระดับการเข้าถึงที่แตกต่างกันตามบทบาทการเข้าถึง (เช่น ผู้ดูแลระบบ)
- /โครงการ – โครงการใช้เพื่อจัดกลุ่มทรัพยากรโครงสร้างพื้นฐานต่างๆ เข้าด้วยกัน โครงการเชื่อมโยงกับ single
project_cluster_url
(คลัสเตอร์ออโรร่า) สำหรับบันทึกผู้ใช้ งาน และข้อมูลเมตาอื่นๆ aproject_queue_arn
(Kinesis Data Streams ARN) และสภาพแวดล้อมรันไทม์ของการประมวลผล (ปัจจุบันควบคุมผ่าน Cortex) ที่ใช้สำหรับการอนุมานในชุดเฟรมหรือการประมวลผลภายหลังในวิดีโอ กลุ่มผู้ใช้แต่ละกลุ่มเชื่อมโยงกับโปรเจ็กต์เดียว และกลไกนี้เป็นวิธีการเปิดใช้งานระดับต่างๆ ในแง่ของเวลาแฝงและพลังในการประมวลผลสำหรับผู้ใช้กลุ่มต่างๆ การสร้างโปรเจ็กต์ต้องใช้ชื่อโปรเจ็กต์ URL คลัสเตอร์โปรเจ็กต์ และ ARN คิวโปรเจ็กต์ - /ไปป์ไลน์ – ไปป์ไลน์เชื่อมโยงกับการกำหนดค่าเดียวสำหรับลำดับของคอนเทนเนอร์การประมวลผลที่ดำเนินการประมวลผลวิดีโอในคลัสเตอร์การสร้างการอนุมานของ Amazon EKS ที่ประสานงานโดย Cortex (ดูหัวข้อเกี่ยวกับการสร้างอนุมานการประมวลผลวิดีโอสำหรับรายละเอียดเพิ่มเติม) โดยทั่วไป ประกอบด้วยคอนเทนเนอร์สามคอนเทนเนอร์: การประมวลผลล่วงหน้าและการถอดรหัส การตรวจจับวัตถุ และการประเมินท่าทาง ตัวอย่างเช่น ขั้นตอนการถอดรหัสและการตรวจจับวัตถุจะเหมือนกันสำหรับไปป์ไลน์ 2D และ 3D แต่การสลับคอนเทนเนอร์สุดท้ายโดยใช้ HRNet หรือ 3DMPPE จะส่งผลให้ชุดพารามิเตอร์สำหรับไปป์ไลน์การประมวลผล 2D กับ 3D คุณสามารถสร้างการกำหนดค่าใหม่เพื่อกำหนดไปป์ไลน์ที่เป็นไปได้ที่สามารถใช้สำหรับการประมวลผลได้ และต้องใช้เมื่อป้อนไฟล์ Python ใหม่ใน Cortex repo ที่มีรายละเอียดลำดับของการเรียกปลายทางของโมเดลที่กำหนดไปป์ไลน์นั้น (ดูหัวข้อเกี่ยวกับการสร้างอนุมานการประมวลผลวิดีโอ ). จุดสิ้นสุดของไปป์ไลน์คือปลายทาง Cortex ที่ถูกเรียกให้ประมวลผลเฟรมเดียว การสร้างไปป์ไลน์ต้องมีชื่อไปป์ไลน์ คำอธิบายไปป์ไลน์ และจุดปลายไปป์ไลน์
- /pipeline_parameter_set – ชุดพารามิเตอร์ไปป์ไลน์คือคอลเล็กชัน JSON ที่ยืดหยุ่นของพารามิเตอร์หลายตัว (รันไทม์การกำหนดค่าไปป์ไลน์) สำหรับไปป์ไลน์เฉพาะ และถูกเพิ่มเพื่อให้ความยืดหยุ่นสำหรับการปรับแต่งในอนาคตเมื่อต้องรันไทม์การกำหนดค่าไปป์ไลน์หลายรายการ กลุ่มผู้ใช้สามารถเชื่อมโยงกับชุดพารามิเตอร์ไปป์ไลน์เฉพาะ และจุดประสงค์คือเพื่อให้มีกลุ่มพารามิเตอร์ที่แตกต่างกันต่อกลุ่มผู้ใช้และต่อไปป์ไลน์ นี่เป็นส่วนเสริมที่สำคัญสำหรับ Intel OTG ในการสร้างการปรับแต่งที่สนับสนุนการพกพาในฐานะลูกค้าที่แตกต่างกัน โดยเฉพาะอย่างยิ่ง ISV เริ่มใช้แอปพลิเคชัน
- /pipeline_parameters – ชุดพารามิเตอร์ไปป์ไลน์เดียวคือการสร้างอินสแตนซ์ของชุดพารามิเตอร์ไปป์ไลน์ ซึ่งทำให้การแมปพารามิเตอร์ไปป์ไลน์เป็น 1: หลายรายการซึ่งตั้งค่าเป็นพารามิเตอร์ไปป์ไลน์ API นี้ต้องการรหัสไปป์ไลน์เพื่อเชื่อมโยงกับชุดพารามิเตอร์ไปป์ไลน์ที่เปิดใช้งานการสร้างไปป์ไลน์สำหรับการแมปพารามิเตอร์ไปป์ไลน์ 1:1 กับไปป์ไลน์ อินพุตอื่นๆ ที่จำเป็นสำหรับ API นี้คือ ID ชุดพารามิเตอร์ไปป์ไลน์ ค่าพารามิเตอร์ไปป์ไลน์ และชื่อพารามิเตอร์ไปป์ไลน์
- /วิดีโอ – วัตถุวิดีโอใช้เพื่อกำหนดวิดีโอแต่ละรายการที่ประกอบเป็นแพ็คเกจ .zip ที่ส่งระหว่างงาน ไฟล์นี้แบ่งออกเป็นวิดีโอหลายรายการหลังจากส่ง วิดีโอที่เกี่ยวข้องกับ
job_id
สำหรับงานที่ส่งแพ็คเกจ .zip และ บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon เส้นทาง (Amazon S3) สำหรับตำแหน่งของวิดีโอดิบที่แยกจากกันและผลลัพธ์หลังการประมวลผลของแต่ละวิดีโอ ออบเจ็กต์วิดีโอยังประกอบด้วยเปอร์เซ็นต์ความคืบหน้าของวิดีโอ ซึ่งได้รับการอัปเดตอย่างสม่ำเสมอในระหว่างการประมวลผลเฟรมแต่ละชุดของวิดีโอนั้น ตลอดจนแฟล็กสถานะวิดีโอว่าสมบูรณ์หรือไม่สมบูรณ์ การสร้างวิดีโอต้องใช้รหัสงาน เส้นทางวิดีโอ เส้นทางผลลัพธ์ของวิดีโอ เปอร์เซ็นต์ความคืบหน้าของวิดีโอ และสถานะวิดีโอ - /frame_batch -
frame_batch
ออบเจ็กต์คือเฟรมชุดย่อยที่สร้างโดยการสุ่มตัวอย่างวิดีโอเดียว การแยกวิดีโอออกเป็นแบทช์ขนาดปกติของเฟรมจะช่วยปรับเวลาในการตอบสนองและเพิ่มการขนานและปริมาณงาน นี่คือหน่วยย่อยที่ทำงานผ่าน Kinesis Data Streams เพื่อการอนุมาน การสร้างชุดเฟรมต้องใช้รหัสวิดีโอ หมายเลขเริ่มต้นชุดเฟรม หมายเลขสิ้นสุดชุดเฟรม เส้นทางอินพุตชุดเฟรม เส้นทางผลลัพธ์ชุดเฟรม และสถานะชุดเฟรม - /งาน – API การโต้ตอบนี้ใช้สำหรับการส่งไฟล์เพื่อเริ่มงานการประมวลผล API นี้มีฟังก์ชันที่แตกต่างจาก API ของออบเจ็กต์อื่นๆ เนื่องจากเป็นเส้นทางโดยตรงในการโต้ตอบกับการประสานงานเวิร์กโฟลว์ของ Step Functions ของการประมวลผลวิดีโอและคลัสเตอร์ Amazon EKS API นี้ต้องการ ID ผู้ใช้ รหัสโปรเจ็กต์ รหัสไปป์ไลน์ รหัสชุดพารามิเตอร์ไปป์ไลน์ พารามิเตอร์งาน และสถานะงาน ในพารามิเตอร์งาน มีการระบุเส้นทางของไฟล์อินพุต ซึ่งเป็นตำแหน่งใน Amazon S3 ที่มีแพ็กเกจ .zip ของวิดีโอที่จะประมวลผล การอัปโหลดไฟล์ได้รับการจัดการด้วย
upload_handler
เมธอดซึ่งสร้าง S3 URL ที่กำหนดไว้ล่วงหน้าสำหรับผู้ใช้เพื่อวางไฟล์ WORKFLOW_STATEMACHINE_ARN เป็นตัวแปรสภาพแวดล้อมที่ส่งผ่านไปยังcreate_job
API เพื่อระบุตำแหน่งที่จะส่งแพ็คเกจวิดีโอ .zip ที่มีเส้นทางไฟล์อินพุตเพื่อเริ่มงาน
ตารางต่อไปนี้สรุปฟังก์ชันของ API
วิธีการ Type | ฟังก์ชัน | รายละเอียด |
GET | list_jobs |
เลือกงานทั้งหมดจากฐานข้อมูลและแสดงผล |
POST | create_ job |
แทรกเรกคอร์ดงานใหม่ด้วย ID ผู้ใช้ รหัสโปรเจ็กต์ รหัสไปป์ไลน์ รหัสชุดพารามิเตอร์ไปป์ไลน์ เส้นทางผลลัพธ์งาน พารามิเตอร์งาน และสถานะงาน |
GET | get_ job |
เลือกแอ็ตทริบิวต์งานตาม ID งานจากฐานข้อมูลและแสดงผล |
GET | upload_handler |
สร้าง S3 URL ที่กำหนดไว้ล่วงหน้าเป็นตำแหน่งสำหรับการอัปโหลดไฟล์ .zip ต้องใช้ชื่อบัคเก็ต S3 และต้องการประเภทไฟล์แอปพลิเคชัน/ซิป |
เลเยอร์ Python SDK
ทีมงานได้สร้างไลบรารีไคลเอนต์ Python SDK เป็น wrapper ที่สร้างขึ้นจาก API เพื่อให้นักพัฒนาเข้าถึงเมธอด API ได้ง่ายขึ้น พวกเขาใช้โอเพ่นซอร์ส บทกวีซึ่งจัดการบรรจุภัณฑ์ Python และการจัดการการพึ่งพา พวกเขาสร้าง client.py
ไฟล์ที่มีฟังก์ชันล้อมรอบ API แต่ละตัวโดยใช้ Python requests
ห้องสมุดเพื่อจัดการคำขอ API และข้อยกเว้น
สำหรับนักพัฒนาที่จะเปิดตัว Intel 3DAT SDK พวกเขาจำเป็นต้องติดตั้งและสร้างแพ็คเกจบทกวี จากนั้นพวกเขาสามารถเพิ่มการนำเข้า Python อย่างง่ายของ intel_3dat_sdk
ไปยังโค้ด Python ใดๆ
ในการใช้ไคลเอ็นต์ คุณสามารถสร้างอินสแตนซ์ของไคลเอ็นต์ โดยระบุปลายทาง API:
จากนั้นคุณสามารถใช้ไคลเอนต์เพื่อเรียกแต่ละวิธีเช่น create_pipeline
เมธอด (ดูโค้ดต่อไปนี้) โดยรับอาร์กิวเมนต์ที่เหมาะสม เช่น ชื่อไพพ์ไลน์และคำอธิบายไปป์ไลน์
ชั้น CLI
ในทำนองเดียวกัน ทีมงานสร้างบน API เพื่อสร้างอินเทอร์เฟซบรรทัดคำสั่งสำหรับผู้ใช้ที่ต้องการเข้าถึงวิธี API ด้วยอินเทอร์เฟซที่ตรงไปตรงมาโดยไม่ต้องเขียนโค้ด Python พวกเขาใช้แพ็คเกจ Python โอเพ่นซอร์ส คลิก (ชุดสร้างอินเทอร์เฟซบรรทัดคำสั่ง) ประโยชน์ของเฟรมเวิร์กนี้คือ การซ้อนคำสั่งโดยอำเภอใจ การสร้างเพจความช่วยเหลืออัตโนมัติ และการสนับสนุนการโหลดคำสั่งย่อยแบบ Lazy Loading ขณะรันไทม์ ในที่เดียวกัน client.py
เช่นเดียวกับใน SDK แต่ละเมธอดของไคลเอ็นต์ SDK ถูกห่อโดยใช้ Click และอาร์กิวเมนต์ของเมธอดที่ต้องการจะถูกแปลงเป็นแฟล็กบรรทัดคำสั่ง อินพุตแฟล็กจะถูกใช้เมื่อเรียกคำสั่ง SDK
ในการเปิด CLI คุณสามารถใช้ CLI configure
สั่งการ. คุณได้รับพร้อมท์ให้ใส่ URL ปลายทาง:
ตอนนี้คุณสามารถใช้ CLI เพื่อเรียกคำสั่งต่างๆ ที่เกี่ยวข้องกับเมธอด API ได้ เช่น
ฐานข้อมูล
ในฐานะฐานข้อมูล แอปพลิเคชันนี้ใช้ Aurora Serverless เพื่อจัดเก็บข้อมูลเมตาที่เชื่อมโยงกับ API แต่ละรายการโดยมี MYSQL เป็นกลไกจัดการฐานข้อมูล การเลือกบริการฐานข้อมูล Aurora Serverless เป็นไปตามหลักการออกแบบเพื่อลดค่าใช้จ่ายด้านโครงสร้างพื้นฐานโดยใช้บริการ AWS แบบไร้เซิร์ฟเวอร์เมื่อเป็นไปได้ ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมนี้
พื้นที่ โหมดเครื่องยนต์ไร้เซิร์ฟเวอร์ ตรงตามรูปแบบการใช้งานที่ไม่ต่อเนื่องเนื่องจากแอปพลิเคชันนี้ขยายไปถึงลูกค้าใหม่และปริมาณงานยังไม่แน่นอน เมื่อเปิดใช้ปลายทางฐานข้อมูล ไม่จำเป็นต้องใช้ขนาดอินสแตนซ์ DB เฉพาะ เพียงช่วงต่ำสุดและสูงสุดสำหรับความจุของคลัสเตอร์ Aurora Serverless จัดการการจัดเตรียมที่เหมาะสมของกลุ่มเราเตอร์และกระจายปริมาณงานระหว่างทรัพยากรต่างๆ Aurora Serverless จะทำการสำรองข้อมูลโดยอัตโนมัติเป็นเวลาอย่างน้อย 1 วัน สูงสุด 35 วัน ทีมงานปรับให้เหมาะสมเพื่อความปลอดภัยโดยการตั้งค่าเริ่มต้นเป็นค่าสูงสุด 35
นอกจากนี้ ทีมงานยังใช้ API ข้อมูล เพื่อจัดการการเข้าถึงคลัสเตอร์ Aurora Serverless ซึ่งไม่ต้องการการเชื่อมต่อแบบถาวร และให้ปลายทาง HTTP ที่ปลอดภัยและการผสานรวมกับ AWS SDK แทน คุณลักษณะนี้ใช้ ผู้จัดการความลับของ AWS เพื่อเก็บข้อมูลประจำตัวของฐานข้อมูล ดังนั้นจึงไม่จำเป็นต้องส่งข้อมูลประจำตัวอย่างชัดแจ้ง สคริปต์ CREATE TABLE เขียนในไฟล์ .sql สำหรับแต่ละตารางจากเก้าตารางที่สอดคล้องกับ API ทั้งเก้า เนื่องจากฐานข้อมูลนี้มีข้อมูลเมตาและสถานะของอ็อบเจ็กต์ทั้งหมดในระบบ จึงเรียกใช้เมธอด API โดยใช้คำสั่ง SQL ที่เหมาะสม (เช่น select * from Job
สำหรับ list_jobs
API) และส่งต่อไปยัง execute_statement
เมธอดจากไคลเอ็นต์ Amazon RDS ใน Data API
การประสานเวิร์กโฟลว์
แกนหลักของการทำงานของแอปพลิเคชันได้รับการจัดการโดยใช้ Step Functions เพื่อประสานงานเวิร์กโฟลว์ ดังแสดงในแผนภาพต่อไปนี้
เครื่องสถานะประกอบด้วยลำดับของฟังก์ชันแลมบ์ดาสี่ฟังก์ชัน ซึ่งเริ่มทำงานเมื่อมีการส่งงานโดยใช้ create_job
วิธีการจาก job
เอพีไอ รหัสผู้ใช้ รหัสโปรเจ็กต์ รหัสไปป์ไลน์ รหัสชุดพารามิเตอร์ไปป์ไลน์ เส้นทางผลลัพธ์งาน พารามิเตอร์งาน และสถานะงานเป็นสิ่งจำเป็นสำหรับการสร้างงาน ขั้นแรก คุณสามารถอัปโหลดแพ็คเกจไฟล์วิดีโอ .zip โดยใช้ปุ่ม upload_handler
เมธอดจาก job API เพื่อสร้าง S3 URL ที่กำหนดไว้ล่วงหน้า ในระหว่างการส่งงาน เส้นทางของไฟล์อินพุตจะถูกส่งผ่านพารามิเตอร์งาน เพื่อระบุตำแหน่งของไฟล์ การดำเนินการนี้จะเริ่มต้นการทำงานของเครื่องสถานะเวิร์กโฟลว์ โดยทริกเกอร์สี่ขั้นตอนหลัก:
- ฟังก์ชันเริ่มต้นของแลมบ์ดา
- ฟังก์ชันผู้ส่งแลมบ์ดา
- เสร็จสิ้นการตรวจสอบฟังก์ชันแลมบ์ดา
- ฟังก์ชัน Collector Lambda
ฟังก์ชันเริ่มต้นของแลมบ์ดา
หน้าที่หลักของ Initializer คือการแยกแพ็คเกจ .zip ออกเป็นไฟล์วิดีโอแต่ละไฟล์ และเตรียมให้พร้อมสำหรับผู้ส่ง ขั้นแรก ไฟล์ .zip จะถูกดาวน์โหลด จากนั้นไฟล์แต่ละไฟล์ รวมถึงไฟล์วิดีโอ จะถูกคลายซิปและแตกไฟล์ วิดีโอควรอยู่ในรูปแบบ .mp4 จะถูกอัปโหลดกลับเข้าไปในบัคเก็ต S3 ใช้ create_video
วิธีการใน video
API วัตถุวิดีโอถูกสร้างขึ้นด้วยเส้นทางวิดีโอเป็นอินพุต ซึ่งจะแทรกข้อมูลของแต่ละวิดีโอลงในฐานข้อมูล Aurora ไฟล์ประเภทอื่นๆ เช่น ไฟล์ JSON ถือเป็นข้อมูลเมตาและอัปโหลดในลักษณะเดียวกัน แต่ไม่มีการสร้างออบเจ็กต์วิดีโอ รายการชื่อไฟล์และไฟล์วิดีโอที่แยกออกมาจะถูกส่งไปยังขั้นตอนต่อไป
ฟังก์ชันผู้ส่งแลมบ์ดา
ฟังก์ชันผู้ส่งจะใช้ไฟล์วิดีโอที่ Initializer แยกออกมา และสร้างเฟรมวิดีโอขนาดเล็กเป็นรูปภาพ โมเดลคอมพิวเตอร์วิชันซิสเต็มในปัจจุบันส่วนใหญ่ในการผลิตได้รับการฝึกอบรมเกี่ยวกับรูปภาพ ดังนั้นแม้ในขณะที่ประมวลผลวิดีโอ จะถูกแยกออกเป็นเฟรมรูปภาพก่อนการอนุมานโมเดล โซลูชันปัจจุบันนี้ที่ใช้แบบจำลองการประมาณค่าท่าทางที่ล้ำสมัยไม่แตกต่างกัน—แบทช์เฟรมจากผู้ส่งจะถูกส่งไปยัง Kinesis Data Streams เพื่อเริ่มขั้นตอนการสร้างการอนุมาน
ขั้นแรก ไฟล์วิดีโอจะถูกดาวน์โหลดโดยฟังก์ชัน Lambda อัตราเฟรมและจำนวนเฟรมคำนวณโดยใช้ FileVideoStream
โมดูลจาก imutils.video
ห้องสมุดประมวลผล เฟรมจะถูกแยกและจัดกลุ่มตามขนาดมินิแบตช์ที่ระบุ ซึ่งเป็นหนึ่งในพารามิเตอร์ที่ปรับแต่งได้หลักของไปป์ไลน์นี้ เมื่อใช้ไลบรารี Python pickle ข้อมูลจะถูกจัดลำดับและอัปโหลดไปยัง Amazon S3 ต่อจากนั้น เฟรมชุดออบเจ็กต์จะถูกสร้างขึ้นและการป้อนข้อมูลเมตาจะถูกสร้างขึ้นในฐานข้อมูล Aurora ฟังก์ชัน Lambda นี้สร้างขึ้นโดยใช้ Dockerfile ที่มีการพึ่งพา opencv-python
, numpy
และ imutils
ห้องสมุด
เสร็จสิ้นการตรวจสอบฟังก์ชันแลมบ์ดา
ฟังก์ชันการตรวจสอบความสมบูรณ์จะทำการสืบค้นฐานข้อมูล Aurora ต่อไปเพื่อดูว่าวิดีโอแต่ละรายการในแพ็คเกจ .zip สำหรับงานปัจจุบันนี้ มีชุดเฟรมจำนวนเท่าใดที่อยู่ในสถานะเสร็จสมบูรณ์ เมื่อเฟรมแบตช์ทั้งหมดสำหรับวิดีโอทั้งหมดเสร็จสิ้น กระบวนการตรวจสอบนี้จะเสร็จสมบูรณ์
ฟังก์ชัน Collector Lambda
ฟังก์ชัน Collector นำเอาผลลัพธ์ของการอนุมานที่ดำเนินการในแต่ละเฟรมระหว่างขั้นตอน Consumer และรวมไว้ในชุดเฟรมและข้ามวิดีโอ จากนั้นข้อมูลที่ผสานรวมจะถูกอัปโหลดไปยังบัคเก็ต S3 จากนั้นฟังก์ชันจะเรียกใช้ Cortex postprocessing API สำหรับไปป์ไลน์ ML เฉพาะเพื่อดำเนินการคำนวณภายหลังการประมวลผล และเพิ่มผลลัพธ์ที่รวบรวมโดยวิดีโอไปยังบัคเก็ตเอาต์พุต เมตริกเหล่านี้จำนวนมากคำนวณจากเฟรมต่างๆ เช่น ความเร็ว ความเร่ง และมุมร่วม ดังนั้นการคำนวณนี้จึงจำเป็นต้องดำเนินการกับข้อมูลที่รวบรวมมา ผลลัพธ์หลักประกอบด้วยข้อมูลจุดสำคัญของเนื้อหา (รวมเป็นรูปแบบ CSV) การคำนวณ BMA (เช่น การเร่งความเร็ว) และการแสดงภาพซ้อนทับของจุดสำคัญที่เพิ่มไปยังแต่ละเฟรมในไฟล์รูปภาพ
การอนุมานการประมาณค่าท่าทางที่ปรับขนาดได้
เอ็นจิ้นการประมวลผลที่ขับเคลื่อนการปรับขนาดของการอนุมาน ML เกิดขึ้นในขั้นตอนนี้ มันประกอบด้วยสามส่วนหลัก แต่ละส่วนมีคันโยกการทำงานพร้อมกันที่สามารถปรับค่าความหน่วงแฝงได้ (ดูแผนภาพต่อไปนี้)
สถาปัตยกรรมนี้ช่วยให้ทำการทดลองในการทดสอบเวลาแฝงที่เพิ่มขึ้น ตลอดจนความยืดหยุ่นสำหรับอนาคตเมื่อปริมาณงานอาจเปลี่ยนแปลงด้วยการผสมผสานส่วนต่างๆ ของผู้ใช้ปลายทางที่เข้าถึงแอปพลิเคชัน
สตรีมข้อมูล Kinesis
ทีมงานเลือก Kinesis Data Stream เนื่องจากโดยทั่วไปแล้วจะใช้ในการจัดการข้อมูลการสตรีม และในกรณีนี้ก็เหมาะสมดีเพราะสามารถจัดการชุดเฟรมในลักษณะเดียวกันเพื่อให้มีความสามารถในการปรับขนาดและการขนาน ในฟังก์ชัน Submitter Lambda ไคลเอ็นต์ Kinesis Boto3 จะถูกใช้ โดยที่ put_record
เมธอดที่ส่งผ่านข้อมูลเมตาที่เกี่ยวข้องกับแบทช์เฟรมเดียว เช่น รหัสชุดเฟรม เฟรมเริ่มต้นชุดเฟรม เฟรมสิ้นสุดชุดเฟรม รูปร่าง อัตราเฟรม และรหัสวิดีโอ
เรากำหนดคิวงานต่างๆ และการกำหนดค่าสตรีมข้อมูล Kinesis เพื่อกำหนดระดับของปริมาณงานที่เชื่อมโยงกลับไปที่ระดับความสำคัญของกลุ่มผู้ใช้ต่างๆ การเข้าถึงพลังการประมวลผลระดับต่างๆ เชื่อมโยงกันโดยส่ง ARN คิวโปรเจ็กต์เมื่อสร้างโปรเจ็กต์ใหม่โดยใช้ project
เอพีไอ จากนั้นกลุ่มผู้ใช้ทุกกลุ่มจะเชื่อมโยงกับโปรเจ็กต์เฉพาะในระหว่างการสร้างกลุ่มผู้ใช้ การกำหนดค่าสตรีมเริ่มต้นสามรายการถูกกำหนดใน โมเดลแอปพลิเคชัน AWS Serverless (AWS SAM) เทมเพลตโครงสร้างพื้นฐาน:
- Standard
-
JobStreamShardCount
- ลำดับความสำคัญ -
PriorityJobStreamShardCount
- ลำดับความสำคัญสูง -
HighPriorityJobStreamShardCount
ทีมงานใช้คันโยกที่แตกต่างกันสองสามแบบเพื่อแยกความแตกต่างของพลังการประมวลผลของแต่ละสตรีมหรือปรับเวลาแฝงของระบบ ตามที่สรุปไว้ในตารางต่อไปนี้
คันโยก | รายละเอียด | ค่าเริ่มต้น |
Shard | ชาร์ดนั้นมีอยู่ใน Kinesis Data Streams; เป็นหน่วยพื้นฐานของปริมาณงานสำหรับการส่งผ่านข้อมูล ค่าเริ่มต้นคือ 1MB/วินาที ซึ่งเท่ากับ 1,000 บันทึกข้อมูลต่อวินาที | 2 |
KinesisBatchSize |
จำนวนเร็กคอร์ดสูงสุดที่ Kinesis Data Streams ดึงมาในชุดเดียวก่อนที่จะเรียกใช้ฟังก์ชันผู้บริโภค Lambda | 1 |
KinesisParallelizationFactor |
จำนวนแบทช์ที่จะประมวลผลจากชาร์ดแต่ละรายการพร้อมกัน | 1 |
ปรับปรุงการกระจายออก | ผู้บริโภคข้อมูลที่เปิดใช้งานการกระจายที่ปรับปรุงแล้วจะมีอัตราการส่งผ่านข้อมูลเฉพาะต่อผู้บริโภคหนึ่งราย (เช่น ค่าเริ่มต้น 1MB/วินาที) แทนการแชร์ปริมาณงานระหว่างผู้บริโภค | Off |
ฟังก์ชั่นแลมบ์ดาผู้บริโภค
จากมุมมองของ Kinesis Data Streams ผู้ใช้ข้อมูลคือบริการของ AWS ที่ดึงข้อมูลจากชาร์ดสตรีมข้อมูลเมื่อมีการสร้างข้อมูลในสตรีม แอปพลิเคชันนี้ใช้ฟังก์ชัน Consumer Lambda ซึ่งเรียกใช้เมื่อข้อความถูกส่งผ่านจากคิวสตรีมข้อมูล ฟังก์ชัน Consumer แต่ละฟังก์ชันจะประมวลผลหนึ่งชุดเฟรมโดยทำตามขั้นตอนต่อไปนี้ ขั้นแรก มีการเรียกไปยัง Cortex processor API แบบซิงโครนัส ซึ่งเป็นปลายทางที่โฮสต์ไปป์ไลน์การอนุมานโมเดล (ดูส่วนถัดไปเกี่ยวกับ Amazon EKS ที่มี Cortex สำหรับรายละเอียดเพิ่มเติม) ผลลัพธ์จะถูกเก็บไว้ใน Amazon S3 และมีการอัพเดทฐานข้อมูลโดยการเปลี่ยนสถานะของแบตช์เฟรมที่ประมวลผลเป็น Complete
. การจัดการข้อผิดพลาดถูกสร้างขึ้นเพื่อจัดการการเรียก Cortex API ด้วยการลองซ้ำเพื่อจัดการกับข้อผิดพลาด 504 จากคลัสเตอร์ Cortex โดยตั้งค่าจำนวนการลองใหม่เป็น 5
Amazon EKS พร้อม Cortex สำหรับการอนุมาน ML
ทีมงานใช้ Amazon EKS ซึ่งเป็นบริการ Kubernetes ที่มีการจัดการใน AWS เป็นเครื่องมือคำนวณสำหรับการอนุมาน ML มีตัวเลือกการออกแบบเพื่อใช้ Amazon EKS เพื่อโฮสต์ตำแหน่งข้อมูล ML ทำให้มีความยืดหยุ่นในการเรียกใช้ Kubernetes ต้นน้ำพร้อมตัวเลือกของคลัสเตอร์ที่จัดการอย่างเต็มรูปแบบใน AWS ผ่าน AWS ฟาร์เกตหรือฮาร์ดแวร์ภายในองค์กรผ่าน Amazon EKS ได้ทุกที่. นี่เป็นส่วนสำคัญของฟังก์ชันการทำงานที่ต้องการโดย Intel OTG ซึ่งให้ตัวเลือกในการเชื่อมต่อแอปพลิเคชันนี้กับฮาร์ดแวร์เฉพาะภายในองค์กร เป็นต้น
โมเดล ML สามตัวที่เป็นส่วนประกอบสำคัญสำหรับการสร้างไปป์ไลน์การอนุมานคือโมเดล Yolo แบบกำหนดเอง (สำหรับการตรวจจับวัตถุ), โมเดล HRNet แบบกำหนดเอง (สำหรับการประมาณค่าท่าทาง 2 มิติ) และโมเดล 3DMPPE (สำหรับการประมาณค่าท่าทาง 3 มิติ) (ดูก่อนหน้านี้ ส่วน ML สำหรับรายละเอียดเพิ่มเติม) พวกเขาใช้โอเพ่นซอร์ส เยื่อหุ้มสมอง ไลบรารีเพื่อจัดการการปรับใช้และการจัดการปลายทางไปป์ไลน์การอนุมาน ML และการเปิดใช้และการปรับใช้คลัสเตอร์ Amazon EKS โมเดลเหล่านี้แต่ละรุ่นได้รับการบรรจุลงในคอนเทนเนอร์ Docker—ไฟล์โมเดลถูกจัดเก็บไว้ใน Amazon S3 และอิมเมจโมเดลถูกจัดเก็บใน การลงทะเบียน Amazon Elastic Container (Amazon ECR)—และปรับใช้เป็น Cortex Realtime API เวอร์ชันของคอนเทนเนอร์โมเดลที่ทำงานบน CPU และ GPU ถูกสร้างขึ้นเพื่อให้มีความยืดหยุ่นสำหรับประเภทของฮาร์ดแวร์ประมวลผล ในอนาคต หากต้องการเพิ่มโมเดลหรือไปป์ไลน์โมเดลเพิ่มเติม พวกเขาสามารถสร้าง Cortex Realtime API เพิ่มเติมได้
จากนั้นพวกเขาจึงสร้างไพพ์ไลน์การอนุมานโดยรวบรวม Cortex Realtime model APIs ลงใน Cortex Realtime ไปป์ไลน์ API API ไปป์ไลน์เรียลไทม์เดี่ยวประกอบด้วยการเรียกลำดับของ API โมเดลเรียลไทม์ ฟังก์ชัน Consumer Lambda ได้รับการปฏิบัติ a pipeline
API เป็นกล่องดำ โดยใช้การเรียก API ครั้งเดียวเพื่อดึงข้อมูลผลลัพธ์การอนุมานสุดท้ายสำหรับรูปภาพ ไปป์ไลน์สองท่อถูกสร้างขึ้น: ไปป์ไลน์ 2 มิติและไปป์ไลน์ 3 มิติ
ไปป์ไลน์ 2D รวมขั้นตอนการถอดรหัสก่อนการประมวลผล การตรวจจับวัตถุโดยใช้แบบจำลอง Yolo ที่กำหนดเองเพื่อค้นหานักกีฬาและสร้างกล่องล้อมรอบ และสุดท้ายคือโมเดล HRNet ที่กำหนดเองสำหรับการสร้างจุดสำคัญ 2D สำหรับการประมาณท่าทาง
ไปป์ไลน์ 3 มิติรวมขั้นตอนการถอดรหัสก่อนการประมวลผล การตรวจจับวัตถุโดยใช้แบบจำลอง Yolo ที่กำหนดเองเพื่อค้นหานักกีฬาและสร้างกล่องล้อมรอบ และสุดท้ายคือโมเดล 3DMPPE สำหรับการสร้างจุดสำคัญ 3 มิติสำหรับการประมาณท่าทาง
หลังจากสร้างการอนุมานในชุดเฟรมแล้ว แต่ละไปป์ไลน์ยังมีจุดสิ้นสุด Realtime Cortex หลังการประมวลผลที่แยกจากกัน ซึ่งสร้างเอาต์พุตหลักสามรายการ:
- รวมข้อมูลจุดสำคัญของเนื้อหาลงในไฟล์ CSV ไฟล์เดียว
- การคำนวณกรุงเทพมหานคร (เช่น การเร่งความเร็ว)
- ภาพซ้อนทับของจุดสำคัญที่เพิ่มในแต่ละเฟรมในไฟล์ภาพ
ฟังก์ชัน Collector Lambda จะส่งข้อมูลเมตาที่เหมาะสมซึ่งเชื่อมโยงกับวิดีโอบางรายการ เช่น รหัสเฟรมและตำแหน่ง S3 ของเอาต์พุตการอนุมานการประมาณการโพส ไปยังปลายทางเพื่อสร้างเอาต์พุตหลังการประมวลผลเหล่านี้
Cortex ได้รับการออกแบบให้ผสานรวมกับ Amazon EKS และต้องการเพียงไฟล์การกำหนดค่าคลัสเตอร์และคำสั่งง่ายๆ เพื่อเปิดใช้คลัสเตอร์ Kubernetes:
อีกขั้นหนึ่งสำหรับการปรับแต่งประสิทธิภาพคือการกำหนดค่าอินสแตนซ์สำหรับคลัสเตอร์การประมวลผล สามระดับถูกสร้างขึ้นด้วยการผสมผสานของอินสแตนซ์ M5 และ G4dn ที่หลากหลาย โดยจัดเป็นไฟล์ .yaml พร้อมข้อกำหนด เช่น ชื่อคลัสเตอร์ ภูมิภาค และการกำหนดค่าและการผสมผสานอินสแตนซ์ อินสแตนซ์ M5 นั้นใช้ CPU ที่มีต้นทุนต่ำกว่า และ G4dn นั้นอิงตาม GPU ที่มีราคาสูงกว่าเพื่อมอบการประนีประนอมด้านต้นทุน/ประสิทธิภาพ
การตรวจสอบการปฏิบัติงาน
เพื่อรักษามาตรฐานการบันทึกการปฏิบัติงาน ฟังก์ชันทั้งหมดของ Lambda จะรวมโค้ดสำหรับบันทึกและนำเข้าบันทึกผ่าน สายไฟ Amazon Kinesis Data. ตัวอย่างเช่น ทุกชุดเฟรมที่ประมวลผลจากฟังก์ชันผู้ส่ง Lambda จะถูกบันทึกด้วยการประทับเวลา ชื่อการดำเนินการ และ JSON การตอบสนองของฟังก์ชัน Lambda และบันทึกลงใน Amazon S3 ไดอะแกรมต่อไปนี้แสดงขั้นตอนนี้ในสถาปัตยกรรม
การใช้งาน
การปรับใช้ได้รับการจัดการโดยใช้ AWS SAM ซึ่งเป็นเฟรมเวิร์กโอเพนซอร์สสำหรับการสร้างแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ใน AWS AWS SAM เปิดใช้งานการออกแบบโครงสร้างพื้นฐาน ซึ่งรวมถึงฟังก์ชัน, API, ฐานข้อมูล และการแมปแหล่งที่มาของเหตุการณ์เพื่อจัดรูปแบบและปรับใช้ในสภาพแวดล้อม AWS ใหม่ได้อย่างง่ายดาย ในระหว่างการปรับใช้ ไวยากรณ์ AWS SAM จะถูกแปลเป็น การก่อตัวของ AWS Cloud เพื่อจัดการกับการจัดเตรียมโครงสร้างพื้นฐาน
A template.yaml
ไฟล์มีข้อกำหนดด้านโครงสร้างพื้นฐานพร้อมกับพารามิเตอร์ที่ปรับแต่งได้ เช่น คันโยกเวลาแฝงของ Kinesis Data Streams ที่มีรายละเอียดในส่วนก่อนหน้านี้ อา samconfig.toml
ไฟล์มีพารามิเตอร์การปรับใช้ เช่น ชื่อสแต็ก ชื่อบัคเก็ต S3 ที่เก็บไฟล์แอปพลิเคชัน เช่น รหัสฟังก์ชันแลมบ์ดา และแท็กทรัพยากรสำหรับการติดตามต้นทุน เชลล์สคริปต์ deploy.sh ที่มีคำสั่งง่ายๆ คือทั้งหมดที่จำเป็นในการสร้างและปรับใช้เทมเพลตทั้งหมด:
ขั้นตอนการทำงานของผู้ใช้
โดยสรุป หลังจากปรับใช้โครงสร้างพื้นฐานแล้ว คุณสามารถทำตามเวิร์กโฟลว์นี้เพื่อเริ่มต้นได้:
- สร้างไคลเอนต์ Intel 3DAT โดยใช้ไลบรารีไคลเอนต์
- ใช้ API เพื่อสร้างอินสแตนซ์ใหม่ของไปป์ไลน์ที่สอดคล้องกับประเภทของการประมวลผลที่จำเป็น เช่น อินสแตนซ์หนึ่งสำหรับการประมาณการท่าทาง 3 มิติ
- สร้างอินสแตนซ์ใหม่ของโปรเจ็กต์ โดยส่งผ่าน ARN ของคลัสเตอร์ ARN และ Kinesis คิว ARN
- สร้างอินสแตนซ์ใหม่ของชุดพารามิเตอร์ไปป์ไลน์
- สร้างอินสแตนซ์ใหม่ของพารามิเตอร์ไปป์ไลน์ที่แมปกับชุดพารามิเตอร์ไปป์ไลน์
- สร้างกลุ่มผู้ใช้ใหม่ที่เชื่อมโยงกับรหัสโปรเจ็กต์และรหัสชุดพารามิเตอร์ไปป์ไลน์
- สร้างผู้ใช้ใหม่ที่เชื่อมโยงกับกลุ่มผู้ใช้
- อัปโหลดไฟล์ .zip ของวิดีโอไปยัง Amazon S3 โดยใช้ URL ของ S3 ที่กำหนดไว้ล่วงหน้าซึ่งสร้างโดยฟังก์ชันการอัปโหลดใน API ของงาน
- ส่ง
create_job
การเรียก API พร้อมพารามิเตอร์งานที่ระบุตำแหน่งของไฟล์วิดีโอ นี้เริ่มงานการประมวลผล
สรุป
แอปพลิเคชันพร้อมใช้งานแล้วและพร้อมที่จะทดสอบกับนักกีฬาและโค้ชเหมือนกัน Intel OTG รู้สึกตื่นเต้นที่จะสร้างสรรค์เทคโนโลยีการประมาณการท่าทางโดยใช้คอมพิวเตอร์วิทัศน์ที่เข้าถึงได้สำหรับผู้ใช้ที่หลากหลาย ตั้งแต่นักพัฒนา นักกีฬา ไปจนถึงพันธมิตรผู้จำหน่ายซอฟต์แวร์
ทีมงาน AWS กระตือรือร้นที่จะช่วยลูกค้าอย่าง Intel OTG เร่งความเร็วเส้นทาง ML ของพวกเขา ตั้งแต่ขั้นตอนแนวคิดและการค้นพบด้วย ML Solutions Lab ไปจนถึงขั้นตอนการชุบแข็งและการปรับใช้ด้วย AWS ML ProServe เราทุกคนจะจับตาดูอย่างใกล้ชิดที่การแข่งขันกีฬาโอลิมปิกที่โตเกียวปี 2021 ในฤดูร้อนนี้ เพื่อดูความก้าวหน้าทั้งหมดที่ ML สามารถปลดล็อกในกีฬาได้
เริ่มต้นวันนี้! สำรวจกรณีการใช้งานของคุณด้วยบริการที่กล่าวถึงในโพสต์นี้และอื่น ๆ อีกมากมายบน คอนโซลการจัดการ AWS.
เกี่ยวกับผู้เขียน
ฮัน หมัน เป็นผู้จัดการอาวุโสด้าน Machine Learning & AI ที่ AWS ในเมืองซานดิเอโก รัฐแคลิฟอร์เนีย เขามีปริญญาเอกด้านวิศวกรรมจากมหาวิทยาลัย Northwestern และมีประสบการณ์หลายปีในฐานะที่ปรึกษาด้านการจัดการที่ให้คำแนะนำลูกค้าในด้านการผลิต บริการทางการเงิน และพลังงาน วันนี้เขาทำงานอย่างกระตือรือร้นกับลูกค้าจากหลากหลายอุตสาหกรรมเพื่อพัฒนาและใช้โซลูชันแมชชีนเลิร์นนิงและ AI บน AWS เขาชอบติดตาม NBA และเล่นบาสเก็ตบอลในเวลาว่าง
อิมานคัมยาบิ เป็นวิศวกร ML กับ AWS Professional Services เขาได้ทำงานร่วมกับลูกค้า AWS จำนวนมากเพื่อสนับสนุนแนวทางปฏิบัติที่ดีที่สุดในการตั้งค่าไปป์ไลน์ ML ที่ทำซ้ำได้และเชื่อถือได้
โจนาธานลี เป็นผู้อำนวยการฝ่าย Sports Performance Technology, Olympic Technology Group ที่ Intel เขาศึกษาการประยุกต์ใช้แมชชีนเลิร์นนิงเพื่อสุขภาพในระดับปริญญาตรีที่ UCLA และระหว่างทำงานระดับบัณฑิตศึกษาที่มหาวิทยาลัยอ็อกซ์ฟอร์ด อาชีพของเขามุ่งเน้นไปที่การพัฒนาอัลกอริธึมและเซ็นเซอร์เพื่อสุขภาพและประสิทธิภาพของมนุษย์ ตอนนี้เขาเป็นผู้นำโครงการ 3D Athlete Tracking ที่ Intel
เนลสัน เหลียง เป็นสถาปนิกแพลตฟอร์มใน Sports Performance CoE ที่ Intel ซึ่งเขากำหนดสถาปัตยกรรมแบบ end-to-end สำหรับผลิตภัณฑ์ล้ำสมัยที่ช่วยเพิ่มประสิทธิภาพการทำงานของนักกีฬา นอกจากนี้ เขายังเป็นผู้นำในการนำไปใช้ ปรับใช้ และผลิตผลโซลูชันการเรียนรู้ของเครื่องเหล่านี้ในวงกว้างแก่พันธมิตรของ Intel ต่างๆ
ทรอย สควิลลาซี เป็นวิศวกร DecSecOps ที่ Intel ซึ่งเขานำเสนอโซลูชันซอฟต์แวร์ระดับมืออาชีพให้กับลูกค้าผ่านแนวทางปฏิบัติที่ดีที่สุดของ DevOps เขาสนุกกับการผสานรวมโซลูชัน AI เข้ากับแพลตฟอร์มที่ปรับขนาดได้ในหลายโดเมน
พอล มิน เป็น Associate Solutions Architect Intern ที่ Amazon Web Services (AWS) ซึ่งเขาช่วยลูกค้าในอุตสาหกรรมต่างๆ ให้ก้าวหน้าในภารกิจและเร่งการปรับใช้ระบบคลาวด์ ก่อนหน้านี้ที่ Intel เขาทำงานในตำแหน่ง Software Engineering Intern เพื่อช่วยพัฒนา 3D Athlete Tracking Cloud SDK นอกเวลางาน พอลชอบเล่นกอล์ฟและได้ยินเสียงร้องเพลง
- คอยน์สมาร์ท การแลกเปลี่ยน Bitcoin และ Crypto ที่ดีที่สุดในยุโรป
- เพลโตบล็อคเชน Web3 Metaverse ข่าวกรอง ขยายความรู้. เข้าฟรี
- คริปโตฮอว์ก เรดาร์ Altcoin ทดลองฟรี.
- ที่มา: https://aws.amazon.com/blogs/machine-learning/the-intel3d-athlete-tracking-3dat-scalable-architecture-deploys-pose-estimation-models-using-amazon-kinesis-data-streams- และ-amazon-eks/
- "
- &
- 000
- 100
- 2021
- 3d
- เกี่ยวกับเรา
- เร่งความเร็ว
- เข้า
- สามารถเข้าถึงได้
- ตาม
- ลงชื่อเข้าใช้
- ข้าม
- การกระทำ
- การปฏิบัติ
- นอกจากนี้
- เพิ่มเติม
- ผู้ดูแลระบบ
- การนำมาใช้
- AI
- ขั้นตอนวิธี
- ทั้งหมด
- อเมซอน
- Amazon Web Services
- ในหมู่
- API
- APIs
- การใช้งาน
- การใช้งาน
- เหมาะสม
- สถาปัตยกรรม
- ข้อโต้แย้ง
- ที่ได้รับมอบหมาย
- ภาคี
- นักกีฬา
- แอตทริบิวต์
- อัตโนมัติ
- AWS
- สำรอง
- บาสเกตบอล
- ก่อน
- ประโยชน์ที่ได้รับ
- ที่ดีที่สุด
- ปฏิบัติที่ดีที่สุด
- Black
- บล็อก
- ร่างกาย
- กล่อง
- สร้าง
- การก่อสร้าง
- โทรศัพท์
- ความจุ
- ซึ่ง
- ความก้าวหน้า
- กรณี
- ส่วนกลาง
- แชมป์
- เปลี่ยนแปลง
- ทางเลือก
- ลูกค้า
- เมฆ
- รหัส
- ชุด
- สะสม
- รวม
- ส่วนประกอบ
- คำนวณ
- คอมพิวเตอร์
- องค์ประกอบ
- การเชื่อมต่อ
- ผู้ให้คำปรึกษา
- ผู้บริโภค
- ผู้บริโภค
- ภาชนะ
- ภาชนะบรรจุ
- มี
- อย่างต่อเนื่อง
- ควบคุม
- ประสานงาน
- แกน
- ตรงกัน
- สร้าง
- ที่สร้างขึ้น
- สร้าง
- การสร้าง
- การสร้าง
- หนังสือรับรอง
- วิกฤติ
- สำคัญมาก
- ปัจจุบัน
- ขณะนี้
- ประเพณี
- ลูกค้า
- ลูกค้า
- ตัดขอบ
- ข้อมูล
- ฐานข้อมูล
- ฐานข้อมูล
- วัน
- ทุ่มเท
- ลึก
- มอบ
- ปรับใช้
- นำไปใช้
- การใช้งาน
- Deploys
- ออกแบบ
- ได้รับการออกแบบ
- รายละเอียด
- รายละเอียด
- รายละเอียด
- การตรวจพบ
- พัฒนา
- ผู้พัฒนา
- นักพัฒนา
- พัฒนาการ
- ต่าง
- แยก
- โดยตรง
- ผู้อำนวยการ
- การค้นพบ
- แสดง
- นักเทียบท่า
- ไม่
- โดเมน
- ลง
- ในระหว่าง
- อย่างง่ายดาย
- อีเมล
- ปลายทาง
- พลังงาน
- เครื่องยนต์
- วิศวกร
- ชั้นเยี่ยม
- สิ่งแวดล้อม
- เหตุการณ์
- ตัวอย่าง
- ตื่นเต้น
- ที่มีอยู่
- คาดว่า
- ประสบการณ์
- สำรวจ
- ลักษณะ
- ในที่สุด
- ทางการเงิน
- บริการทางการเงิน
- ชื่อจริง
- พอดี
- FLEET
- ความยืดหยุ่น
- มีความยืดหยุ่น
- มุ่งเน้น
- ปฏิบัติตาม
- ดังต่อไปนี้
- ดังต่อไปนี้
- รูป
- สุขุม
- FRAME
- กรอบ
- ฟังก์ชัน
- การทำงาน
- ฟังก์ชั่น
- ฟังก์ชั่น
- อนาคต
- สร้าง
- การสร้าง
- รุ่น
- ให้
- เป้าหมาย
- ดี
- GPU
- สำเร็จการศึกษา
- บัญชีกลุ่ม
- กลุ่ม
- จัดการ
- การจัดการ
- ฮาร์ดแวร์
- สุขภาพ
- ได้ยิน
- ช่วย
- การช่วยเหลือ
- จะช่วยให้
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- สูงกว่า
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- HTTPS
- เป็นมนุษย์
- เอกลักษณ์
- ภาพ
- การดำเนินการ
- การดำเนินงาน
- สำคัญ
- ประกอบด้วย
- รวมถึง
- รวมทั้ง
- เป็นรายบุคคล
- อุตสาหกรรม
- อุตสาหกรรม
- โครงสร้างพื้นฐาน
- นวัตกรรม
- อินพุต
- แทรก
- ติดตั้ง
- แบบบูรณาการ
- บูรณาการ
- อินเทล
- Intelligence
- ปฏิสัมพันธ์
- อินเตอร์เฟซ
- IT
- การสัมภาษณ์
- งาน
- การเดินทาง
- คีย์
- ห้องปฏิบัติการ
- เปิดตัว
- การเปิดตัว
- นำไปสู่
- การเรียนรู้
- ชั้น
- ห้องสมุด
- Line
- รายการ
- โหลด
- ที่ตั้ง
- วันหยุด
- เครื่อง
- เรียนรู้เครื่อง
- ทำ
- เก็บรักษา
- สำคัญ
- ทำให้
- มนุษย์
- จัดการ
- การจัดการ
- การจัดการ
- การผลิต
- แผนที่
- การทำแผนที่
- กล่าวถึง
- วิธีการ
- ตัวชี้วัด
- ขั้นต่ำ
- ภารกิจ
- ML
- โทรศัพท์มือถือ
- แอปพลิเคชันบนมือถือ
- แบบ
- โมเดล
- โมดูลาร์
- ข้อมูลเพิ่มเติม
- มากที่สุด
- หลาย
- ชื่อ
- เอ็นบีเอ
- จำเป็น
- ความต้องการ
- จำนวน
- การแข่งขันกีฬาโอลิมปิก
- เปิด
- ทำงาน
- การปรับให้เหมาะสม
- ตัวเลือกเสริม (Option)
- ใบสั่ง
- อื่นๆ
- ของตนเอง
- ฟอร์ด
- แพ็คเกจ
- ส่วนหนึ่ง
- ในสิ่งที่สนใจ
- โดยเฉพาะ
- พาร์ทเนอร์
- ที่ผ่านไป
- หลงใหล
- แบบแผน
- เปอร์เซ็นต์
- การปฏิบัติ
- ที่มีประสิทธิภาพ
- มุมมอง
- ชิ้น
- เวที
- แพลตฟอร์ม
- เล่น
- บทกวี
- จุด
- เป็นไปได้
- อำนาจ
- ที่มีประสิทธิภาพ
- เตรียมการ
- ก่อน
- ประถม
- หลัก
- ลำดับความสำคัญ
- กระบวนการ
- กระบวนการ
- การประมวลผล
- หน่วยประมวลผล
- ก่อ
- การผลิต
- ผลิตภัณฑ์
- มืออาชีพ
- โครงการ
- ให้
- ให้
- วัตถุประสงค์
- พิสัย
- ดิบ
- เรียลไทม์
- รับรู้
- ระเบียน
- บันทึก
- เกี่ยวกับ
- น่าเชื่อถือ
- การร้องขอ
- ต้องการ
- จำเป็นต้องใช้
- ความต้องการ
- ต้อง
- ทรัพยากร
- แหล่งข้อมูล
- คำตอบ
- ผลสอบ
- วิ่ง
- วิ่ง
- ความปลอดภัย
- ซาน
- scalability
- ที่ปรับขนาดได้
- ขนาด
- ปรับ
- SDK
- ปลอดภัย
- กลุ่ม
- serverless
- บริการ
- บริการ
- ชุด
- การตั้งค่า
- รูปร่าง
- ใช้งานร่วมกัน
- เปลือก
- แสดง
- คล้ายคลึงกัน
- เหมือนกับ
- ง่าย
- ขนาด
- So
- ซอฟต์แวร์
- ซอฟต์แวร์เป็นบริการ
- วิศวกรรมซอฟต์แวร์
- ทางออก
- โซลูชัน
- บาง
- บางคน
- เฉพาะ
- ข้อกำหนด
- ความเร็ว
- กีฬา
- กอง
- ระยะ
- มาตรฐาน
- มาตรฐาน
- เริ่มต้น
- ข้อความที่เริ่ม
- เริ่มต้น
- สถานะ
- รัฐของศิลปะ
- Status
- การเก็บรักษา
- จัดเก็บ
- กระแส
- ที่พริ้ว
- ส่ง
- ต่อจากนั้น
- ฤดูร้อน
- สนับสนุน
- รองรับ
- ระบบ
- การ
- ทีม
- เทคโนโลยี
- การทดสอบ
- ดังนั้น
- ตลอด
- ผูก
- เวลา
- ในวันนี้
- ร่วมกัน
- โตเกียว
- ลู่
- การติดตาม
- ชนิด
- เป็นปกติ
- ยูซีแอล
- มหาวิทยาลัย
- University of Oxford
- ปลดล็อก
- บันทึก
- ใช้
- ผู้ใช้
- การใช้ประโยชน์
- ความคุ้มค่า
- ความหลากหลาย
- ต่างๆ
- แนวดิ่ง
- วีดีโอ
- วิดีโอ
- วิสัยทัศน์
- เว็บ
- บริการเว็บ
- WHO
- ไม่มี
- งาน
- ทำงาน
- การทำงาน
- ปี