![Featured image for “[MS] Everyday Respect Challenge”](https://www.cs.usc.edu/wp-content/uploads/2024/04/USC.png)
The following announcement is from [Everyday Respect USC]. Please contact them directly if you have any questions.
Everyday Respect Challenge
1. Overview
Context
About Everyday Respect: The Everyday Respect project aims to provide multimodal, multi-perspective machine learning models to study communication between officers and drivers during traffic stops. We will deploy these tools to study patterns in the communication between LAPD officers and drivers, publish these findings in academic journals, and present them to the Los Angeles Board of Police Commissioners. More information about the project is available in the following links:
- Everyday Respect: Measuring & Improving Police Officer Communication During Motor Vehicle Stops – Civic Innovation Challenge
- AI Analysis of Body Camera Videos Offers a Data-Driven Approach to Police Reform
- Everyday Respect: Measuring & Improving Police Officer Communication During Motor Vehicle Stops
We are seeking a motivated and talented MS student with a strong background in web development and web security and experience in working with open-source and large codebases to join our team. This position is open to all MS students, regardless of whether they are international students. The MS student is expected to be available to work at LAPD headquarters in person, at least twice a week, each time for at least 3 hours. This challenge is designed to assess the possible candidates’ proficiency.
In Everyday Respect, we use a heavily customized CVAT instance for annotating sensitive bodyworn footage which is deployed at LAPD headquarters. CVAT supports video annotations but currently doesn’t support audio playback. Your goal is to extend CVAT to handle basic audio features. Additionally, you will demonstrate proficiency in:
- Integrating your code into the CVAT codebase, following its existing conventions and architecture.
- Deploying a minimal version of this updated CVAT to Microsoft Azure, simulating a public “demo” environment for non-sensitive videos.
- Implementing debugging measures in an environment that transitions between offline (for sensitive data) and online (for updates, cloud deployment, and offsite collaboration).
Structure
The challenge consists of the following parts:
- Part A: Familiarize and modify CVAT for audio playback.
- Part B: Deploy a demo version to Azure.
- Part C (Optional): Debugging, and collaboration scenario.
Deliverables
Each part includes both:
- Implementation artifact (e.g., code/config).
- Brief write-up explaining your design decisions.
2. Detailed Parts
Part A: Familiarize and Modify CVAT for Audio Playback
Task
- Fork (or clone) the CVAT GitHub repository.
- Explore the frontend (React) and backend (Django + REST framework) structure to understand how CVAT handles video playback.
- Extend it so that annotators can play video along with its audio in the same interface.
-
- Currently, CVAT shows frames for video annotation. Your job is to ensure the audio is kept in sync with these frames so that users hear the correct portion of the audio while scrubbing or playing the video.
- Avoid creating a separate or floating audio widget; instead, integrate audio playback seamlessly into the existing video playback mechanism.
- Add a mute button at the top control bar of the jobs for muting and unmuting the audio playback.
Implementation Deliverable
- A Git branch with your code changes:
-
- Frontend modifications (React-based) to ensure audio is loaded and played in sync with the video along with the mute button addition and functionality at the top bar.
- Backend adjustments (if needed) to serve audio alongside the video frames (e.g., handle the audio track from the uploaded video).
- Instructions on how to build and run your modified CVAT locally (e.g., Docker or direct instructions).
- Write-Up (1–2 pages):
-
- Summarize which parts of CVAT you explored (e.g., video player component, data fetching services).
- Explain how you achieved integrated audio-video playback (did you rely on HTML5 video elements, or do you handle separate audio streams?).
- Mention any challenges and how you overcame them (sync issues, format issues, etc.).
What We’re Looking For
- Demonstrated ability to read and modify a large existing codebase (CVAT).
- Proper code organization that aligns with CVAT’s patterns and structure.
- A functional, synchronized audio-video experience for annotators.
Part B: Deploy a Minimal Demo to Azure
Task
- Create a demo version of your forked CVAT (with audio playback) on Microsoft Azure.
- Use public, non-sensitive bodyworn videos (short clips) to demonstrate your changes.
-
- You can find an example of these publicly available videos at Marques Brownlee Gets Pulled Over and Ticketed Multiple Times
- Provide a public URL (if feasible) and the login credentials for the platform. Provide instructions for how we can replicate your Azure setup locally (e.g., via Azure CLI or Terraform scripts).
Implementation Deliverable
- Deployment Scripts/Configs:
-
- Dockerfile / docker-compose for your CVAT fork.
- Azure Resource Manager (ARM) template, GitHub Actions workflow, or Azure CLI script.
- Demo instance (URL) or clear local instructions.
- Write-Up (1–2 paragraphs):
-
- Summarize your deployment approach (e.g., “Used Azure Container Instances + a managed Postgres,” or “Used an Azure VM with Docker Compose.”)
- Mention any special considerations (firewalls, scaling, ephemeral storage, etc.).
Notes
You can sign up and use Azure for students with $100 credit and without a credit card. For more information visit: Azure for Students – Free Account Credit
What We’re Looking For
- Experience with Microsoft Azure platform.
- DevOps and Cloud deployment skills.
- Clarity in the deployment instructions so we can see how you’d do it for a “public” environment.
Part C: Debugging & Collaboration Scenario (Optional)
Task
- Scenario: You are onsite at LAPD. Annotators report that when they watch long videos (>1 hour), the new audio player randomly crashes after ~30 minutes. They say the interface “freezes.”
- You suspect a memory leak or buffering issue in the container that handles audio. The offsite dev team requests logs but you cannot send raw video outside.
Implementation Deliverable
- Provide a script (e.g., Bash, Python, or Node) that:
-
- Collects relevant logs/metrics (Docker logs, container memory usage) without including raw video.
- Redacts any sensitive file paths or content.
- Bundles the logs into a .zip or .tar.
- Short Write-Up (5–7 bullet points):
-
- Outline your debugging process, step by step:
-
-
- How you identify the potential memory leak.
- How you gather logs without exposing sensitive data.
- How you share sanitized logs with the offsite team.
- How you receive their patch and rebuild the local instance.
- Final check to ensure no leftover debug or sensitive data remains.
-
What We’re Looking For
- A practical approach to debugging in an offline environment.
- Scripts or instructions that effectively sanitize logs.
- Good communication and iterative collaboration with the offsite team.
3. Submission & Evaluation
Submission
- GitHub repository (with separate folders/branches for Parts A–C).
-
- Each folder/branch includes:
-
-
- Code/Config we can review or run.
- A short README or document explaining your approach.
-
-
- Make sure you are pushing every file of the challenge to your GitHub repository.
- Make sure your GitHub repository is private.
- Make sure you use Git properly and use best practices (good commit messages, commit changes in your project over time, use git workflows)
- Add hejabi@usc.edu as a collaborator to your private GitHub repository so I can access your repository.
- A live demo link for your Azure deployment. Include that in your README.
- The submissions will be checked according to their timestamp and on a rolling basis. The final submission deadline is Mar 7, 2025 23:59:59.
- You must submit all your submissions using the Google Form at https://forms.gle/J7Rkp2pA4bCz3QgU9. Make sure you upload the following:
-
- Your up-to-date resume
- The link to your private GitHub repository
- The live demo link of your Azure deployment
Evaluation Criteria
- Code Quality: Are your modifications to CVAT clean, documented, and aligned with CVAT’s architecture?
- Functionality: Does audio playback work seamlessly? Does the mute button work properly?
- DevOps/Cloud: Is the Azure deployment straightforward or well-documented?
- Debugging & Collaboration (Optional Section): Do you show a credible process for offline debugging, log collection, and sanitization?
Estimated Time
- Expect ~5 hours on average, depending on your familiarity with CVAT, Docker, and Azure.
Notes
- We do not expect production-level code for everything, but it should be runnable (or convincingly close) and clearly explained.
- Creativity and clarity are highly encouraged.
- The challenge should be done individually. Similarities between projects will be checked and will result in the rejection of all submissions that are similar.
- Completion of CSCI 571: Web Technologies is not required. It is only a bonus and a plus.
- For any questions, contact Parsa Hejabi. Other members of the project are not your point of contact, and they cannot answer your questions.
Good luck!
Published on February 27th, 2025Last updated on February 27th, 2025