itsluckysharma01 commited on
Commit
7a674bb
·
verified ·
1 Parent(s): 83e3e20

Upload 5 files

Browse files
Files changed (5) hide show
  1. .dockerignore +34 -0
  2. .gitignore +37 -0
  3. Dockerfile +32 -0
  4. app.py +34 -0
  5. check_models.py +15 -0
.dockerignore ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.pyc
4
+ *.pyo
5
+ *.pyd
6
+ *.so
7
+ .Python
8
+
9
+ # Virtual environments
10
+ venv/
11
+ env/
12
+ ENV/
13
+ .venv
14
+
15
+ # IDE
16
+ .vscode/
17
+ .idea/
18
+ *.swp
19
+ *.swo
20
+
21
+ # Git
22
+ .git/
23
+ .gitignore
24
+ .gitattributes
25
+
26
+ # Local cache
27
+ .huggingface/
28
+ instance/
29
+ uploads/
30
+ ai_models/
31
+
32
+ # OS
33
+ .DS_Store
34
+ Thumbs.db
.gitignore ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.pyc
4
+ *.pyo
5
+
6
+ # Virtual environments
7
+ cctv_env_311/
8
+ venv/
9
+ env/
10
+ .env/
11
+
12
+ # AI Models (stored on Hugging Face Hub - downloaded automatically)
13
+ ai_models/
14
+ *.h5
15
+ *.pt
16
+ *.keras
17
+ *.bin
18
+ *.pickle
19
+ NETRA/model/
20
+
21
+ # Uploads & Cache
22
+ uploads/
23
+ instance/
24
+ .huggingface/
25
+ __pycache__/
26
+
27
+ # IDE
28
+ .vscode/
29
+
30
+ # Diagnostic/debug artifacts
31
+ NETRA/2.15.0
32
+ NETRA/diag_output.txt
33
+ NETRA/pip_list.txt
34
+
35
+ # OS
36
+ Thumbs.db
37
+ .DS_Store
Dockerfile ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install system dependencies for OpenCV
6
+ RUN apt-get update && apt-get install -y \
7
+ libsm6 libxext6 libxrender-dev \
8
+ libglib2.0-0 \
9
+ ffmpeg \
10
+ && rm -rf /var/lib/apt/lists/*
11
+
12
+ # Copy requirements first (for better caching)
13
+ COPY requirements.txt .
14
+ RUN pip install --no-cache-dir -r requirements.txt
15
+
16
+ # Copy entire project
17
+ COPY . .
18
+
19
+ # Create necessary directories
20
+ RUN mkdir -p /app/instance /app/uploads /app/ai_models
21
+
22
+ # Expose port 7860 (Hugging Face Spaces default)
23
+ EXPOSE 7860
24
+
25
+ # Set environment variables
26
+ ENV FLASK_APP=webapp/app.py
27
+ ENV FLASK_ENV=production
28
+ ENV PYTHONUNBUFFERED=1
29
+ ENV PORT=7860
30
+
31
+ # Run the Flask app
32
+ CMD ["python", "app.py"]
app.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ NETRA - Entry Point
3
+ Bootstraps the full application from webapp/app.py.
4
+ Run this file from the project root: python app.py
5
+ NETRA
6
+ """
7
+
8
+ import sys
9
+ import runpy
10
+ from pathlib import Path
11
+
12
+ PROJECT_ROOT = Path(__file__).parent
13
+ sys.path.insert(0, str(PROJECT_ROOT))
14
+ if __name__ == '__main__':
15
+ import os
16
+
17
+ # Detect environment and set ports
18
+ is_hf_spaces = os.getenv('SYSTEM') == 'spaces' or os.path.exists('/.dockerenv')
19
+
20
+ if is_hf_spaces:
21
+ os.environ['PORT'] = '7860'
22
+ os.environ['FLASK_ENV'] = 'production'
23
+ os.environ['FLASK_DEBUG'] = '0'
24
+ else:
25
+ os.environ['PORT'] = os.getenv('PORT', '5001')
26
+ os.environ['FLASK_ENV'] = os.getenv('FLASK_ENV', 'development')
27
+ os.environ['FLASK_DEBUG'] = os.getenv('FLASK_DEBUG', '1')
28
+
29
+ os.environ['PYTHONUNBUFFERED'] = '1'
30
+
31
+ runpy.run_path(
32
+ str(PROJECT_ROOT / 'webapp' / 'app.py'),
33
+ run_name='__main__',
34
+ )
check_models.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Quick check of all models"""
2
+ from config import get_model_path
3
+
4
+ print("=== MODEL STATUS ===\n")
5
+ models = {
6
+ 'violence': get_model_path('violence'),
7
+ 'yolo': get_model_path('yolo'),
8
+ 'weapon (gun)': get_model_path('weapon', 'gun'),
9
+ 'pose': get_model_path('pose'),
10
+ 'anomaly': get_model_path('anomaly'),
11
+ }
12
+
13
+ for model_name, path in models.items():
14
+ status = "✓ FOUND" if path and path.exists() else "✗ MISSING"
15
+ print(f"{status:12} {model_name:15} {path}")