SuriRaja commited on
Commit
c89d622
·
verified ·
1 Parent(s): d461262

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -19
app.py CHANGED
@@ -9,10 +9,8 @@ import pickle
9
  import io
10
  from googleapiclient.discovery import build
11
  from googleapiclient.http import MediaFileUpload
12
- from google_auth_oauthlib.flow import InstalledAppFlow
13
  from google.auth.transport.requests import Request
14
  from PIL import Image
15
-
16
  from simple_salesforce import Salesforce
17
  from datetime import datetime
18
  import uuid
@@ -22,11 +20,10 @@ sf = Salesforce(
22
  username='suriraja822@agentforce.com',
23
  password='Sati@1010',
24
  security_token='B9nS0HEyBE7YmWllqXCyiOJpY',
25
- domain='login' # Use 'test' if you're on a sandbox
26
  )
27
 
28
  def log_intruder_to_salesforce(frame_id):
29
- """Logs a detection event to Salesforce."""
30
  try:
31
  sf.Hotel_Security_Alert__c.create({
32
  'Alert_Type__c': 'Intruder',
@@ -41,10 +38,6 @@ def log_intruder_to_salesforce(frame_id):
41
  except Exception as e:
42
  st.warning(f"⚠️ Failed to log to Salesforce: {e}")
43
 
44
-
45
-
46
-
47
-
48
  # === CONFIGURATION ===
49
  API_KEY = "AIzaSyDojJrpauA0XZtCCDUuo9xeQHZQamYKsC4"
50
  CCTVFEED_IDS = ['1KJRkSf2SKEZ1mXS9_si65IwMBtjs6p4n']
@@ -54,23 +47,18 @@ FRAME_SKIP = st.sidebar.slider("⏩ Frame Skip", 1, 15, 5)
54
 
55
  # === SETUP ===
56
  mp_face_detection = mp.solutions.face_detection
57
- mp_drawing = mp.solutions.drawing_utils
58
  face_detector = mp_face_detection.FaceDetection(model_selection=0, min_detection_confidence=0.5)
59
 
60
  def mse(img1, img2):
61
  try:
62
  if img1.shape != img2.shape:
63
  img2 = cv2.resize(img2, (img1.shape[1], img1.shape[0]))
64
- err = np.mean((img1.astype("float") - img2.astype("float")) ** 2)
65
- return err
66
  except Exception:
67
  return float("inf")
68
 
69
  def is_duplicate(img, img_list, threshold=200):
70
- for existing in img_list:
71
- if mse(img, existing) < threshold:
72
- return True
73
- return False
74
 
75
  def get_drive_file_links(folder_id, filter_video=False):
76
  url = f"https://www.googleapis.com/drive/v3/files?q='{folder_id}'+in+parents&key={API_KEY}&fields=files(id,name,mimeType)"
@@ -145,9 +133,8 @@ def detect_faces_from_video(video_path, registered_faces):
145
  if not any(mse(f, reg) < 200 for reg in registered_faces) and not is_duplicate(f, unique):
146
  unique.append(f)
147
  filename = f"intruder_{frame_id}.jpg"
148
- upload_to_drive(f, filename)
149
- log_intruder_to_salesforce(frame_id)
150
-
151
  detected.extend(faces)
152
  cap.release()
153
  return detected, unique
@@ -188,4 +175,4 @@ with st.spinner("Processing videos..."):
188
  os.remove(vfile)
189
  total_uploaded += len(unique_faces)
190
 
191
- st.info(f"🎯 Completed processing all videos.")
 
9
  import io
10
  from googleapiclient.discovery import build
11
  from googleapiclient.http import MediaFileUpload
 
12
  from google.auth.transport.requests import Request
13
  from PIL import Image
 
14
  from simple_salesforce import Salesforce
15
  from datetime import datetime
16
  import uuid
 
20
  username='suriraja822@agentforce.com',
21
  password='Sati@1010',
22
  security_token='B9nS0HEyBE7YmWllqXCyiOJpY',
23
+ domain='login'
24
  )
25
 
26
  def log_intruder_to_salesforce(frame_id):
 
27
  try:
28
  sf.Hotel_Security_Alert__c.create({
29
  'Alert_Type__c': 'Intruder',
 
38
  except Exception as e:
39
  st.warning(f"⚠️ Failed to log to Salesforce: {e}")
40
 
 
 
 
 
41
  # === CONFIGURATION ===
42
  API_KEY = "AIzaSyDojJrpauA0XZtCCDUuo9xeQHZQamYKsC4"
43
  CCTVFEED_IDS = ['1KJRkSf2SKEZ1mXS9_si65IwMBtjs6p4n']
 
47
 
48
  # === SETUP ===
49
  mp_face_detection = mp.solutions.face_detection
 
50
  face_detector = mp_face_detection.FaceDetection(model_selection=0, min_detection_confidence=0.5)
51
 
52
  def mse(img1, img2):
53
  try:
54
  if img1.shape != img2.shape:
55
  img2 = cv2.resize(img2, (img1.shape[1], img1.shape[0]))
56
+ return np.mean((img1.astype("float") - img2.astype("float")) ** 2)
 
57
  except Exception:
58
  return float("inf")
59
 
60
  def is_duplicate(img, img_list, threshold=200):
61
+ return any(mse(img, existing) < threshold for existing in img_list)
 
 
 
62
 
63
  def get_drive_file_links(folder_id, filter_video=False):
64
  url = f"https://www.googleapis.com/drive/v3/files?q='{folder_id}'+in+parents&key={API_KEY}&fields=files(id,name,mimeType)"
 
133
  if not any(mse(f, reg) < 200 for reg in registered_faces) and not is_duplicate(f, unique):
134
  unique.append(f)
135
  filename = f"intruder_{frame_id}.jpg"
136
+ upload_to_drive(f, filename)
137
+ log_intruder_to_salesforce(frame_id)
 
138
  detected.extend(faces)
139
  cap.release()
140
  return detected, unique
 
175
  os.remove(vfile)
176
  total_uploaded += len(unique_faces)
177
 
178
+ st.info("🎯 Completed processing all videos.")