File size: 4,566 Bytes
628b6bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# ATP Core Talent 2025
# Core Talent AI Coder Challenge: Camera Movement Detection

**Detecting Significant Camera Movement Using Image Recognition**

---

## Scenario

Imagine you are tasked with building a component for a smart camera system. Your goal is to detect **significant movement**—for example, if someone moves or tilts the camera or if the entire camera is knocked or shifted. This is different from simply detecting moving objects in the scene.

---

## Requirements

1. **Input:**

   * A sequence of images or frames (at least 10-20), simulating a fixed camera, with some frames representing significant camera movement (tilt, pan, large translation), and others showing a static scene or minor background/object motion.
   * You may use public datasets, generate synthetic data, or simulate with your own webcam.

     * Example: [CameraBench Dataset on Hugging Face](https://huggingface.co/datasets/syCen/CameraBench)
2. **Task:**

   * Build an algorithm (**Python preferred**) that analyzes consecutive frames and detects when significant camera movement occurs.
   * Output a list of frames (by index/number) where significant movement is detected.
3. **Expected Features:**

   * **Basic:** Frame differencing or feature matching to detect large global shifts (e.g., using OpenCV’s ORB/SIFT/SURF, optical flow, or homography).
   * **Bonus:** Distinguish between camera movement and object movement within the scene (e.g., use keypoint matching, estimate transformation matrices, etc.).
4. **Deployment:**

   * Wrap your solution in a small web app (**Streamlit, Gradio, or Flask**) that allows the user to upload a sequence of images (or a video), runs the detection, and displays the result.
   * Deploy the app on a public platform (**Vercel, Streamlit Cloud, Hugging Face Spaces**, etc.)
5. **Deliverables:**

   * Public app URL
   * GitHub repo (with code and requirements.txt)
   * README (explaining your approach, dataset, and how to use the app)

     * **Sample README Outline:**

       * Overview of your approach and movement detection logic
       * Any challenges or assumptions
       * How to run the app locally
       * Link to the live app
       * Example input/output screenshots
   * AI Prompts or Chat History (if used for support)

---

## Evaluation Rubric

| Criteria           | Points | Details                                                                                    |
| ------------------ | ------ | ------------------------------------------------------------------------------------------ |
| **Correctness**    | 5      | Accurately detects significant camera movement; low false positives/negatives.             |
| **Implementation** | 5      | Clean code, good use of OpenCV or relevant libraries, modular structure.                   |
| **Deployment**     | 5      | App is online, easy to use, and functions as described.                                    |
| **Innovation**     | 3      | Advanced techniques (feature matching, transformation estimation, clear object vs camera). |
| **Documentation**  | 2      | Clear README, instructions, and concise explanation of method/logic.                       |

---

## Suggested Stack

* **Python** or **C#**
* **OpenCV** for computer vision
* **Streamlit**, **Gradio**, or a **shadcn-powered Vercel site** for quick web UI
* **GitHub** for code repo, **Streamlit Cloud**, **Hugging Face Spaces**, or **Vercel** for deployment

---

# 📋 Candidate Instructions

1. **Fork this repository** (or start your own repository with the same structure).
2. **Implement your movement detection algorithm** in `movement_detector.py`.
3. **Develop a simple web app** (`app.py`) that allows users to upload images/sequences and view detection results.
4. **Deploy your app** on a public platform (e.g., Streamlit Cloud, Hugging Face Spaces, Vercel, Heroku) and **share both your deployed app URL and GitHub repository link**.
5. **Document your work**: Include a `README.md` that explains your approach, how to run your code, and sample results (with screenshots or example outputs).

---

**Deadline:**
🕓 **27.06.2025**

---

**Plagiarism Policy:**

* This must be **individual, AI-powered work**.
* You may use open-source libraries, but you **must cite** all external resources and code snippets.
* Do not submit work copied from others or from the internet without proper acknowledgment.

---

**Good luck! Show us your best hands-on AI skills!**