SaadetElizavetaBabal commited on
Commit
d68704f
Β·
verified Β·
1 Parent(s): 43bb368

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +101 -89
README.md CHANGED
@@ -1,89 +1,101 @@
1
- # πŸ“· Camera Movement Detector
2
-
3
- This project was developed as part of the **ATP Core Talent AI Coder Challenge 2025**.
4
- It is a Streamlit-based web application that analyzes uploaded videos and detects **significant camera movements** such as panning, tilting, or shaking.
5
- It does **not** focus on object motion β€” instead, it detects changes in the global scene indicating that the camera itself moved.
6
-
7
- ---
8
-
9
- ## πŸ“· Screenshot
10
-
11
- ![Camera Detector Screenshot](https://github.com/user-attachments/assets/90a2831b-2218-42a6-8172-f3ee63661157)
12
-
13
- ## πŸš€ Live App
14
-
15
- πŸ”— [Click here to try the app online](https://your-deployment-url.com)
16
- (Replace this with your Streamlit or Hugging Face link after deployment)
17
-
18
- ---
19
-
20
- ## 🎯 Features
21
-
22
- - πŸ“Ό Upload a video (MP4, AVI, MOV)
23
- - 🎞️ Extracts and analyzes frames
24
- - 🎯 Detects significant camera movement (not object motion)
25
- - πŸ’‘ Clean, modern UI with ATP branding
26
-
27
- ---
28
-
29
- ## 🧠 Approach
30
-
31
- - **Frame Extraction:** Extracts all frames from the video using OpenCV.
32
- - **Feature Detection & Matching:** ORB feature detector is used to compare consecutive frames.
33
- - **Homography Transformation:** Calculates transformation matrix to estimate global scene shift.
34
- - **Movement Decision:** If the transformation deviates above a threshold, it is classified as camera movement.
35
- - **Bonus Logic:** Tries to filter out object motion by comparing matched keypoints and transformation consistency.
36
-
37
- ---
38
-
39
- ## πŸ› οΈ Tech Stack
40
-
41
- - **Python 3.13**
42
- - **OpenCV**
43
- - **Streamlit** (for UI)
44
- - **Datasets** from Hugging Face (for CameraBench demo data)
45
- - **NumPy** for numerical processing
46
-
47
- ---
48
-
49
- ## πŸ“¦ Installation
50
-
51
- To run locally:
52
-
53
- ```bash
54
- git clone https://github.com/yourusername/camera-detector.git
55
- cd camera-detector
56
- pip install -r requirements.txt
57
- streamlit run app.py
58
- ```
59
-
60
- ## πŸ“ File Structure
61
-
62
- ```bash
63
- camera-detector/
64
- β”œβ”€β”€ app.py # Streamlit web UI
65
- β”œβ”€β”€ movement_detector.py # Core detection logic
66
- β”œβ”€β”€ requirements.txt # Dependencies
67
- β”œβ”€β”€ README.md # This file
68
- ```
69
-
70
- ### πŸ“Έ Example Output
71
-
72
- Input: Sample video with camera shake
73
-
74
- #### Output:
75
-
76
- ```bash
77
-
78
- πŸ“Œ Detected camera movement at frame indices: [6, 7, 8, 10, 15, 22, 23, 24]
79
- ```
80
- ## πŸ’¬ Acknowledgements
81
-
82
- * Hugging Face CameraBench Dataset
83
- * ATP Core Talent Team for organizing the challenge
84
-
85
- ## πŸ§‘β€πŸ’» Developed by
86
-
87
- * Saadet Elizaveta Babal
88
- * Candidate – ATP Core Talent AI Coder Challenge 2025
89
-
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Camera Movement Detector
3
+ emoji: "πŸ“·"
4
+ colorFrom: red
5
+ colorTo: pink
6
+ sdk: streamlit
7
+ sdk_version: "1.25.0"
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+
13
+ # πŸ“· Camera Movement Detector
14
+
15
+ This project was developed as part of the **ATP Core Talent AI Coder Challenge 2025**.
16
+ It is a Streamlit-based web application that analyzes uploaded videos and detects **significant camera movements** such as panning, tilting, or shaking.
17
+ It does **not** focus on object motion β€” instead, it detects changes in the global scene indicating that the camera itself moved.
18
+
19
+ ---
20
+
21
+ ## πŸ“· Screenshot
22
+
23
+ ![Camera Detector Screenshot](https://github.com/user-attachments/assets/90a2831b-2218-42a6-8172-f3ee63661157)
24
+
25
+ ## πŸš€ Live App
26
+
27
+ πŸ”— [Click here to try the app online](https://your-deployment-url.com)
28
+ (Replace this with your Streamlit or Hugging Face link after deployment)
29
+
30
+ ---
31
+
32
+ ## 🎯 Features
33
+
34
+ - πŸ“Ό Upload a video (MP4, AVI, MOV)
35
+ - 🎞️ Extracts and analyzes frames
36
+ - 🎯 Detects significant camera movement (not object motion)
37
+ - πŸ’‘ Clean, modern UI with ATP branding
38
+
39
+ ---
40
+
41
+ ## 🧠 Approach
42
+
43
+ - **Frame Extraction:** Extracts all frames from the video using OpenCV.
44
+ - **Feature Detection & Matching:** ORB feature detector is used to compare consecutive frames.
45
+ - **Homography Transformation:** Calculates transformation matrix to estimate global scene shift.
46
+ - **Movement Decision:** If the transformation deviates above a threshold, it is classified as camera movement.
47
+ - **Bonus Logic:** Tries to filter out object motion by comparing matched keypoints and transformation consistency.
48
+
49
+ ---
50
+
51
+ ## πŸ› οΈ Tech Stack
52
+
53
+ - **Python 3.13**
54
+ - **OpenCV**
55
+ - **Streamlit** (for UI)
56
+ - **Datasets** from Hugging Face (for CameraBench demo data)
57
+ - **NumPy** for numerical processing
58
+
59
+ ---
60
+
61
+ ## πŸ“¦ Installation
62
+
63
+ To run locally:
64
+
65
+ ```bash
66
+ git clone https://github.com/yourusername/camera-detector.git
67
+ cd camera-detector
68
+ pip install -r requirements.txt
69
+ streamlit run app.py
70
+ ```
71
+
72
+ ## πŸ“ File Structure
73
+
74
+ ```bash
75
+ camera-detector/
76
+ β”œβ”€β”€ app.py # Streamlit web UI
77
+ β”œβ”€β”€ movement_detector.py # Core detection logic
78
+ β”œβ”€β”€ requirements.txt # Dependencies
79
+ β”œβ”€β”€ README.md # This file
80
+ ```
81
+
82
+ ### πŸ“Έ Example Output
83
+
84
+ Input: Sample video with camera shake
85
+
86
+ #### Output:
87
+
88
+ ```bash
89
+
90
+ πŸ“Œ Detected camera movement at frame indices: [6, 7, 8, 10, 15, 22, 23, 24]
91
+ ```
92
+ ## πŸ’¬ Acknowledgements
93
+
94
+ * Hugging Face CameraBench Dataset
95
+ * ATP Core Talent Team for organizing the challenge
96
+
97
+ ## πŸ§‘β€πŸ’» Developed by
98
+
99
+ * Saadet Elizaveta Babal
100
+ * Candidate – ATP Core Talent AI Coder Challenge 2025
101
+