From 35215aab26f2eff14fe77ca7ede64d83054421ed Mon Sep 17 00:00:00 2001
From: Guillaume HEUSCH <guillaume.heusch@idiap.ch>
Date: Tue, 10 Jul 2018 13:39:14 +0200
Subject: [PATCH 1/2] [cvpr14] return 3 mean colors in compute_average_color
 mask, instead of green only

---
 bob/rppg/cvpr14/extract_utils.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/bob/rppg/cvpr14/extract_utils.py b/bob/rppg/cvpr14/extract_utils.py
index 0015fa3..be4f27b 100644
--- a/bob/rppg/cvpr14/extract_utils.py
+++ b/bob/rppg/cvpr14/extract_utils.py
@@ -281,8 +281,8 @@ def compute_average_colors_mask(image, mask, plot=False):
     
   Returns
   -------
-  color: :obj:`float`
-    The average green color inside the mask ROI.
+  color: numpy.ndarray 
+    The average RGB colors inside the mask ROI.
   
   """
   if plot:
@@ -293,8 +293,8 @@ def compute_average_colors_mask(image, mask, plot=False):
     pyplot.title('Mask overlaid on the original frame')
     pyplot.show()
 
-  green = image[1, mask]
-  return numpy.mean(green)
+  [red, green, blue] = image[:, mask]
+  return numpy.array([numpy.mean(red), numpy.mean(green), numpy.mean(blue)])
 
 def compute_average_colors_wholeface(image, plot=False):
   """computes the average green color within the provided face image 
-- 
GitLab


From 9b4da32966e1add733adcb3bdddfc7cc6ca1ba46 Mon Sep 17 00:00:00 2001
From: Guillaume HEUSCH <guillaume.heusch@idiap.ch>
Date: Tue, 10 Jul 2018 13:44:51 +0200
Subject: [PATCH 2/2] [scripts] updated the retrieved colors from mask, to be
 consistent with changes from previous commit (green only)

---
 bob/rppg/cvpr14/script/extract_face_and_bg_signals.py | 5 +++--
 bob/rppg/cvpr14/script/test.py                        | 2 +-
 bob/rppg/cvpr14/script/video2skin.py                  | 3 ++-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/bob/rppg/cvpr14/script/extract_face_and_bg_signals.py b/bob/rppg/cvpr14/script/extract_face_and_bg_signals.py
index 51f5d18..b80106e 100644
--- a/bob/rppg/cvpr14/script/extract_face_and_bg_signals.py
+++ b/bob/rppg/cvpr14/script/extract_face_and_bg_signals.py
@@ -231,14 +231,15 @@ def main(user_input=None):
 
         # get the bottom face region average colors
         face_mask = get_mask(frame, mask_points)
-        face_color[i] = compute_average_colors_mask(frame, face_mask, plot)
+        # original algorithm: green only
+        face_color[i] = compute_average_colors_mask(frame, face_mask, plot)[1]
       else:
         face_color[i] = compute_average_colors_wholeface(face, plot)
 
       # get the background region average colors
       bg_mask = numpy.zeros((frame.shape[1], frame.shape[2]), dtype=bool)
       bg_mask[:100, :100] = True
-      bg_color[i] = compute_average_colors_mask(frame, bg_mask, plot)
+      bg_color[i] = compute_average_colors_mask(frame, bg_mask, plot)[1]
 
     # saves the data into an HDF5 file with a '.hdf5' extension
     out_facedir = os.path.dirname(output_face)
diff --git a/bob/rppg/cvpr14/script/test.py b/bob/rppg/cvpr14/script/test.py
index f2b5947..64b4382 100644
--- a/bob/rppg/cvpr14/script/test.py
+++ b/bob/rppg/cvpr14/script/test.py
@@ -160,7 +160,7 @@ def test_compute_average_color():
   image[1, :, :] = 128
   
   from bob.rppg.cvpr14.extract_utils import compute_average_colors_mask
-  mean_green = compute_average_colors_mask(image, mask)
+  mean_green = compute_average_colors_mask(image, mask)[1]
   assert mean_green == 128
 
 def test_rectify_illumination():
diff --git a/bob/rppg/cvpr14/script/video2skin.py b/bob/rppg/cvpr14/script/video2skin.py
index 3a951e0..26cdcbd 100644
--- a/bob/rppg/cvpr14/script/video2skin.py
+++ b/bob/rppg/cvpr14/script/video2skin.py
@@ -173,7 +173,8 @@ def main(user_input=None):
         pyplot.show()
 
       if numpy.count_nonzero(skin_mask) != 0:
-        skin_colors[i] = compute_average_colors_mask(face, skin_mask)
+        # green only
+        skin_colors[i] = compute_average_colors_mask(face, skin_mask)[1]
       else:
         logger.warn("No skin pixels detected in frame {0}, using previous value".format(i))
         if i == 0:
-- 
GitLab