Update app.py
Browse files
app.py
CHANGED
@@ -273,24 +273,24 @@ def video_frame_callback(frame: av.VideoFrame) -> av.VideoFrame:
|
|
273 |
landmarks[mp_pose.PoseLandmark.LEFT_FOOT_INDEX.value].y]
|
274 |
|
275 |
# Calculate angles
|
276 |
-
angleKneeL = calculate_angle(
|
277 |
-
angleHipL = calculate_angle(
|
278 |
-
angleAnkleL = calculate_angle(
|
279 |
|
280 |
#Visualize of left leg
|
281 |
cv2.putText(image, str(angleHipL),tuple(np.multiply(angleHipL, [640, 480]).astype(int)),cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2, cv2.LINE_AA)
|
282 |
|
283 |
# Squat logic
|
284 |
-
if 80 <
|
285 |
cv2.putText(image, "Squat Detected!", (300, 100), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 255, 0), 3)
|
286 |
else:
|
287 |
-
if
|
288 |
cv2.putText(image, "Lean Forward!", (300, 200), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
289 |
-
elif
|
290 |
cv2.putText(image, "Lean Backward!", (300, 200), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
291 |
-
if
|
292 |
cv2.putText(image, "Squat Too Deep!", (300, 250), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
293 |
-
elif
|
294 |
cv2.putText(image, "Lower Your Hips!", (300, 300), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
295 |
|
296 |
# # 1. Bend Forward Warning
|
@@ -373,9 +373,7 @@ def video_frame_callback(frame: av.VideoFrame) -> av.VideoFrame:
|
|
373 |
# (230,60),cv2.FONT_HERSHEY_SIMPLEX,1,(255,255,255),1,cv2.LINE_AA)
|
374 |
|
375 |
|
376 |
-
mp_drawing.draw_landmarks(image, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
|
377 |
-
mp_drawing.DrawingSpec(color=(255, 175, 0), thickness=2, circle_radius=2),
|
378 |
-
mp_drawing.DrawingSpec(color=(0, 255, 200), thickness=2, circle_radius=2))
|
379 |
|
380 |
result_queue.put(detections)
|
381 |
return av.VideoFrame.from_ndarray(image, format="bgr24")
|
|
|
273 |
landmarks[mp_pose.PoseLandmark.LEFT_FOOT_INDEX.value].y]
|
274 |
|
275 |
# Calculate angles
|
276 |
+
angleKneeL = calculate_angle(hipL, kneeL, ankleL)
|
277 |
+
angleHipL = calculate_angle(shoulderL, hipL, [hipL[0], 0])
|
278 |
+
angleAnkleL = calculate_angle(footIndexL, ankleL, kneeL)
|
279 |
|
280 |
#Visualize of left leg
|
281 |
cv2.putText(image, str(angleHipL),tuple(np.multiply(angleHipL, [640, 480]).astype(int)),cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2, cv2.LINE_AA)
|
282 |
|
283 |
# Squat logic
|
284 |
+
if 80 < angleKneeL < 110 and 29 < angleHipL < 40:
|
285 |
cv2.putText(image, "Squat Detected!", (300, 100), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 255, 0), 3)
|
286 |
else:
|
287 |
+
if angleHipL < 29:
|
288 |
cv2.putText(image, "Lean Forward!", (300, 200), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
289 |
+
elif angleHipL > 45:
|
290 |
cv2.putText(image, "Lean Backward!", (300, 200), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
291 |
+
if angleKneeL < 80:
|
292 |
cv2.putText(image, "Squat Too Deep!", (300, 250), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
293 |
+
elif angleKneeL > 110:
|
294 |
cv2.putText(image, "Lower Your Hips!", (300, 300), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 3)
|
295 |
|
296 |
# # 1. Bend Forward Warning
|
|
|
373 |
# (230,60),cv2.FONT_HERSHEY_SIMPLEX,1,(255,255,255),1,cv2.LINE_AA)
|
374 |
|
375 |
|
376 |
+
mp_drawing.draw_landmarks(image, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,mp_drawing.DrawingSpec(color=(255, 175, 0), thickness=2, circle_radius=2),mp_drawing.DrawingSpec(color=(0, 255, 200), thickness=2, circle_radius=2))
|
|
|
|
|
377 |
|
378 |
result_queue.put(detections)
|
379 |
return av.VideoFrame.from_ndarray(image, format="bgr24")
|