ReSpo.Vision: Capture Sports Analytics With NVIDIA GPUs, DevOps, and OKE on Oracle Cloud
To improve player performance, identify competitor weaknesses, and to calculate winning odds, ReSpo.Vision runs its AI-enabled, cloud-native sports analytics platform on Oracle Cloud Infrastructure (OCI).
Capturing real-time 3D tracking data of players and balls, ReSpo.Vision ingests broadcast TV feeds without requiring additional preinstalled cameras or human intervention. Using computer vision and machine learning algorithms, the ReSpo.Vision platform captures detailed tracking data for more than 40 player body parts at a rate of 60 times per second. This data is then recorded through a single TV camera or from a previous recording. Each game generates some 150 million data points. With the data collected from the game, ReSpo.Vision is able to automate event detection, visualization, performance assessment, insights, and recommendations for teams, sponsors, and fans.
Founded in 2019, Warsaw-based ReSpo.Vision has developed a unique 3D tracking and data capture system, which can screen any TV broadcast or single camera output and capture a continuous stream of 3D coordinates of body sections of each player and of the ball. The ReSpo.Vision platform then uses this data to create player and game analytics, calculate game event probabilities, customize visual game trackers, and provide detailed statistics for bookmakers. By turning raw data into digestible features such as particular match events and in-game behaviors of player performance, ReSpo.Vision's platform provides game predictions, play suggestions, tactics, player purchases, and more. Respo.Vision’s metaverse-ready visualization engine also provides fans with an immersive, in-game experience to see any action from multiple perspectives.
ReSpo.Vision runs its sports analytics platform on OCI, using a variety of compute options, including AMD flex virtual machines, bare metal high performance computing options, and highly performant GPU shapes.
Architecture
ReSpo.Vision built and deployed its AI-powered, cloud-native, 3D tracking system in the Oracle Cloud Infrastructure (OCI) region in Frankfurt, Germany.
Video recordings are processed either on-premises or within its OCI tenancy. A secure connection is established from the on-premises network through an internet gateway using a WireGuard VPN virtual instance. The videos are split into frames using OCI flex virtual machines (VMs) in an OCI Kubernetes Engine (OKE) cluster. Alternatively, the raw videos can be sent to object storage and then processed by flex virtual machines. The OKE cluster scales between 20-40 VM instances, depending on the video size and resolution.
- Flex virtual machines for 4K (HD) and smaller videos
- Virtual machines with Nvidia P100 GPUs for 4K (HD) and larger videos
- High performance bare metal servers (BM4.8) running NVIDIA A100, A10, or P100 GPUs for 8K (UHD) and larger videos.
For monitoring the performance and health of the systems, ReSpo has deployed Grafana to provide monitoring, logging, and visualization. Additional system monitoring is provided by Oracle Cloud Infrastructure Monitoring, Logging, and Alarms. ReSpo also uses Oracle Cloud Infrastructure DevOps to maintain the OKE cluster.
The following diagram illustrates the simplified data flow through the topology.
respo-vision-oci-flow-oracle.zip
The following diagram illustrates this reference architecture.
respo-vision-oci-arch-oracle.zip
For future considerations, the analytics VM can potentially be replaced by using a serverless platform that uses functions and notifications. To allow for data to be accessed directly on OCI rather than being transported to a 3rd party cloud, Oracle API Gateway can access the data for external access.
respo-vision-oci-future-oracle.zip
The architecture has the following components:
- Tenancy
A tenancy is a secure and isolated partition that Oracle sets up within Oracle Cloud when you sign up for Oracle Cloud Infrastructure. You can create, organize, and administer your resources in OCI within your tenancy. A tenancy is synonymous with a company or organization. Usually, a company will have a single tenancy and reflect its organizational structure within that tenancy. A single tenancy is usually associated with a single subscription, and a single subscription usually only has one tenancy.
- Region
An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, hosting availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).
- Fault domain
A fault domain is a grouping of hardware and infrastructure within an availability domain. Each availability domain has three fault domains with independent power and hardware. When you distribute resources across multiple fault domains, your applications can tolerate physical server failure, system maintenance, and power failures inside a fault domain.
- Virtual cloud network (VCN) and subnets
A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.
- Security list
For each subnet, you can create security rules that specify the source, destination, and type of traffic that is allowed in and out of the subnet.
- Route table
Virtual route tables contain rules to route traffic from subnets to destinations outside a VCN, typically through gateways.
- Internet gateway
An internet gateway allows traffic between the public subnets in a VCN and the public internet.
- Service gateway
A service gateway provides access from a VCN to other services, such as Oracle Cloud Infrastructure Object Storage. The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.
- Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine or OKE) is a fully-managed, scalable, and highly available service that you can use to deploy your containerized applications to the cloud. You specify the compute resources that your applications require, and Kubernetes Engine provisions them on Oracle Cloud Infrastructure in an existing tenancy. OKE uses Kubernetes to automate the deployment, scaling, and management of containerized applications across clusters of hosts.
- Load balancer
Oracle Cloud Infrastructure Load Balancing provides automated traffic distribution from a single entry point to multiple servers.
- Compute
With Oracle Cloud Infrastructure Compute, you can provision and manage compute hosts in the cloud. You can launch compute instances with shapes that meet your resource requirements for CPU, memory, network bandwidth, and storage. After creating a compute instance, you can access it securely, restart it, attach and detach volumes, and terminate it when you no longer need it.
- Bare metal
Oracle’s bare metal servers provide isolation, visibility, and control by using dedicated compute instances. The servers support applications that require high core counts, large amounts of memory, and high bandwidth. They can scale up to 192 cores, 2.3 TB of RAM, and up to 1 PB of block storage. Customers can build cloud environments on Oracle’s bare metal servers with significant performance improvements over other public clouds and on-premises data centers.
- Block volume
With Oracle Cloud Infrastructure Block Volumes, you can create, attach, connect, and move storage volumes, and change volume performance to meet your storage, performance, and application requirements. After you attach and connect a volume to an instance, you can use the volume like a regular hard drive. You can also disconnect a volume and attach it to another instance without losing data.
- Object storage
OCI Object Storage provides access to large amounts of structured and unstructured data of any content type, including database backups, analytic data, and rich content such as images and videos. You can safely and securely store data directly from the internet or from within the cloud platform. You can scale storage without experiencing any degradation in performance or service reliability.
Use standard storage for "hot" storage that you need to access quickly, immediately, and frequently. Use archive storage for "cold" storage that you retain for long periods of time and seldom or rarely access.
- High-performance computing
High-performance computing is designed for workloads that require cluster networking and high-speed processor cores for massively parallel workloads.
- Monitoring
Oracle Cloud Infrastructure Monitoring actively and passively monitors your cloud resources, and uses alarms to notify you when metrics meet specified triggers.
- LoggingOracle Cloud Infrastructure Logging is a highly-scalable and fully-managed service that provides access to the following types of logs from your resources in the cloud:
- Audit logs: Logs related to events produced by OCI Audit.
- Service logs: Logs published by individual services such as OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancing, OCI Object Storage, and VCN flow logs.
- Custom logs: Logs that contain diagnostic information from custom applications, other cloud providers, or an on-premises environment.