Update utils/emotion_detection_brainai.py
Browse files
utils/emotion_detection_brainai.py
CHANGED
|
@@ -40,6 +40,7 @@ class EmotionModel:
|
|
| 40 |
return input_img
|
| 41 |
|
| 42 |
def detect_faces(self, img, conf = 0.5):
|
|
|
|
| 43 |
result_face = self.face_compiled_model([input_img])[self.face_output_layer]
|
| 44 |
boxes = self.post_process_face(result_face, uploaded_img_cv, conf)
|
| 45 |
|
|
@@ -99,40 +100,39 @@ class EmotionModel:
|
|
| 99 |
|
| 100 |
return uploaded_img_cv
|
| 101 |
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
out.
|
| 108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
camera.release()
|
| 131 |
-
st_frame.empty()
|
| 132 |
-
progress_bar.empty()
|
| 133 |
-
break
|
| 134 |
-
clip = mpy.ImageSequenceClip(video_row,fps=fps)
|
| 135 |
-
clip.write_videofile(temp_file.name)
|
| 136 |
-
|
| 137 |
-
return temp_file.name
|
| 138 |
|
|
|
|
| 40 |
return input_img
|
| 41 |
|
| 42 |
def detect_faces(self, img, conf = 0.5):
|
| 43 |
+
input_img = self.preprocess( img, input_layer)
|
| 44 |
result_face = self.face_compiled_model([input_img])[self.face_output_layer]
|
| 45 |
boxes = self.post_process_face(result_face, uploaded_img_cv, conf)
|
| 46 |
|
|
|
|
| 100 |
|
| 101 |
return uploaded_img_cv
|
| 102 |
|
| 103 |
+
def play_video(input_video):
|
| 104 |
+
uploaded_video = io.BytesIO(input_video.read())
|
| 105 |
+
temporary_location = "upload.mp4"
|
| 106 |
+
with open(temporary_location, "wb") as out:
|
| 107 |
+
out.write(uploaded_video.read())
|
| 108 |
+
out.close()
|
| 109 |
+
|
| 110 |
+
camera = cv2.VideoCapture(temporary_location)
|
| 111 |
+
fps = camera.get(cv2.CAP_PROP_FPS)
|
| 112 |
+
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.mp4')
|
| 113 |
+
processed_frames=[]
|
| 114 |
+
total_frames = int(camera.get(cv2.CAP_PROP_FRAME_COUNT))
|
| 115 |
+
progress_bar = st.progress(0)
|
| 116 |
+
frame_count = 0
|
| 117 |
|
| 118 |
+
st_frame = st.empty()
|
| 119 |
+
while(camera.isOpened()):
|
| 120 |
+
ret, frame = camera.read()
|
| 121 |
+
|
| 122 |
+
if ret:
|
| 123 |
+
emotion_img = self.process(frame)
|
| 124 |
+
st_frame.image(emotion_img, channels = "BGR")
|
| 125 |
+
processed_frames.append(cv2.cvtColor(emotion_img,cv2.COLOR_BGR2RGB))
|
| 126 |
+
frame_count +=1
|
| 127 |
+
progress_bar.progress(frame_count/total_frames, text = None)
|
| 128 |
+
|
| 129 |
+
else:
|
| 130 |
+
camera.release()
|
| 131 |
+
st_frame.empty()
|
| 132 |
+
progress_bar.empty()
|
| 133 |
+
break
|
| 134 |
+
clip = mpy.ImageSequenceClip(processed_frames,fps=fps)
|
| 135 |
+
clip.write_videofile(temp_file.name)
|
| 136 |
+
|
| 137 |
+
return temp_file.name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 138 |
|