Update app.py
Browse files
app.py
CHANGED
@@ -178,22 +178,32 @@ uploaded_video = st.file_uploader("Upload a Video", type=["mp4", "avi", "mov"])
|
|
178 |
def detect_deepfake_video(video_path):
|
179 |
cap = cv2.VideoCapture(video_path)
|
180 |
frame_scores = []
|
|
|
181 |
|
182 |
while cap.isOpened():
|
183 |
ret, frame = cap.read()
|
184 |
if not ret:
|
185 |
break
|
186 |
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
|
|
|
|
|
|
192 |
|
193 |
cap.release()
|
|
|
|
|
|
|
|
|
194 |
avg_score = np.mean(frame_scores)
|
|
|
195 |
final_label = "FAKE" if avg_score > 0.5 else "REAL"
|
196 |
-
|
|
|
197 |
|
198 |
if uploaded_video is not None:
|
199 |
st.video(uploaded_video)
|
@@ -202,12 +212,14 @@ if uploaded_video is not None:
|
|
202 |
f.write(uploaded_video.read())
|
203 |
|
204 |
if st.button("Analyze Video"):
|
205 |
-
st.write("🔍 Processing...")
|
206 |
result = detect_deepfake_video(temp_file.name)
|
207 |
|
208 |
if result["label"] == "FAKE":
|
209 |
-
st.
|
|
|
|
|
210 |
else:
|
211 |
-
st.
|
212 |
|
213 |
st.markdown("🔹 **Developed for Fake News & Deepfake Detection Hackathon**")
|
|
|
178 |
def detect_deepfake_video(video_path):
|
179 |
cap = cv2.VideoCapture(video_path)
|
180 |
frame_scores = []
|
181 |
+
frame_count = 0
|
182 |
|
183 |
while cap.isOpened():
|
184 |
ret, frame = cap.read()
|
185 |
if not ret:
|
186 |
break
|
187 |
|
188 |
+
if frame_count % 10 == 0: # ہر 10ویں فریم کا تجزیہ کریں
|
189 |
+
frame_path = "temp_frame.jpg"
|
190 |
+
cv2.imwrite(frame_path, frame)
|
191 |
+
result = detect_deepfake_image(frame_path)
|
192 |
+
frame_scores.append(result["score"])
|
193 |
+
os.remove(frame_path)
|
194 |
+
|
195 |
+
frame_count += 1
|
196 |
|
197 |
cap.release()
|
198 |
+
|
199 |
+
if not frame_scores:
|
200 |
+
return {"label": "UNKNOWN", "score": 0.0} # اگر کوئی فریم پراسیس نہ ہو سکے
|
201 |
+
|
202 |
avg_score = np.mean(frame_scores)
|
203 |
+
confidence = round(float(avg_score), 2)
|
204 |
final_label = "FAKE" if avg_score > 0.5 else "REAL"
|
205 |
+
|
206 |
+
return {"label": final_label, "score": confidence}
|
207 |
|
208 |
if uploaded_video is not None:
|
209 |
st.video(uploaded_video)
|
|
|
212 |
f.write(uploaded_video.read())
|
213 |
|
214 |
if st.button("Analyze Video"):
|
215 |
+
st.write("🔍 Processing... Please wait.")
|
216 |
result = detect_deepfake_video(temp_file.name)
|
217 |
|
218 |
if result["label"] == "FAKE":
|
219 |
+
st.error(f"⚠️ Deepfake Detected! This video appears to be FAKE. (Confidence: {result['score']:.2f})")
|
220 |
+
elif result["label"] == "REAL":
|
221 |
+
st.success(f"✅ This video appears to be REAL. (Confidence: {1 - result['score']:.2f})")
|
222 |
else:
|
223 |
+
st.warning("⚠️ Unable to analyze the video. Please try a different file.")
|
224 |
|
225 |
st.markdown("🔹 **Developed for Fake News & Deepfake Detection Hackathon**")
|