Giter VIP home page Giter VIP logo

jeanchilger / readminds-features-study Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 3.0 366.06 MB

Studies conducted on top of readminds' data, aimed to discover and implement new features.

License: GNU General Public License v3.0

Starlark 7.97% Dockerfile 0.04% Python 4.34% C++ 78.78% Java 5.63% Shell 0.13% HTML 0.04% JavaScript 0.05% Objective-C 1.09% Objective-C++ 1.27% C 0.64% Batchfile 0.01% Makefile 0.01%
affective-computing computer-vision emotion-analysis games human-computer-interaction machine-learning

readminds-features-study's Introduction

Hello World ๐Ÿ‘‹, I'm Jean Carlo Hilger

Computer science undergraduate student.

  • ๐Ÿ”ฌ Diving into deep learning and natural language processing
  • ๐Ÿ“ท Computer vision has a special place in my heart
  • โ˜• I'm powered by coffee
  • โค๏ธ Open source rules!!

Languages and Tools:

Bash

Bootstrap

C

C++

Emberjs

Gatsby

Git

JavaScript

Keras

Laravel

LaTex

Linux

Nodejs

OpenCV

Python

Pytorch

Reactjs

Sass

Scikit Learn

Spring

Tensorflow

Vuejs




Github Stats:

jeanchilger's GitHub stats Top Langs

readminds-features-study's People

Contributors

arufonsekun avatar jeanchilger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

readminds-features-study's Issues

[Discussion] Set up a testing pipeline?

We could setup a testing pipeline using googletest. But, we should keep things simple for "fast implementation" if this testing pipeline will only turn things more complex it shouldn't be implemented. However, in a mediapipe application we've identified a lot of boilerplate code, so automated tests could come in handy.

Conventions and Style Guide

This issue aims at providing a convention (for coding, file structure...) for everyone to follow. The follow rules are just a suggestion, we should further discuss about them.

Coding Style

General rules:

  • Indentation: 4 spaces;
  • File/Folder names: snake_case (MediaPipe already adopts this pattern, so we must follow ๐Ÿ˜ข);

C++

Follow the Google C++ Style Guide.

Explore face mesh calculator

Description

The face mesh calculator must be explored to latter implementation and new features extraction.

Relevant sources:

Deadline

  • 27/11/2020

[Report] Produce Report I

Deadline: 08/01/2020.

The report should discuss the following topics:

  • 1. Thesis overview, explaining our part of the problem;
    • 1.1 Focus on the part about emotions;
  • 2. Explain the process of reimplementing the facial features;

Other relevant topics should be argued on this issue.

Note: We may start this report by December 26th.

Implement calculator for video capturing

The calculator must be able to read from devices and from video files. (Names can be changed, these are just suggestions).

Name: VideoCaptureCalculator;
Input: device (Input device, or video file path);
Output: RGB ImageFrame;

Conventions and style guide

This issue aims at providing a convention (for coding, file structure...) for everyone to follow. The follow rules are just a suggestion, we should further discuss about them.

Coding Style

General rules

  • Indentation: 4 spaces;
  • File/Folder names: snake_case (MediaPipe already adopts this pattern, so we must follow ๐Ÿ˜ข);
  • Line length (max): 79 characters;
  • Quotes: Double for string and single for char;
  • File sufixes: MediaPipe defines some file suffixes given the type file, e.g. if the file implements a calculator it's name must ends with _calculator;

C++

Follow the Google C++ Style Guide.

For documentation, use only single line comments: //. Check existing code for examples on how to document files, classes and functions.

Python

Code must follow PEP 8, and documentation must follow PEP 257.

Every .py that don't follow theses PEPs won't be accepted in pull request. For checking this standards, we'll use pycodestyle.

Exceptions

For docstring documentation, PEP 257 may not be strictly used. Every docstring must specify the behavior of functions, classes, etc such that others can "easily understand".

As for PEP 8, some exceptions are acceptable:

  • (List exceptions here, when we detect them);

Styles defined in code reviews

  • Blank line between code and documentation โ”€ PR #35;

Bash

Follow Google Bash Style Guide. Everything defined there is ok to be used.

Update MediaPipe version

When running the application using the current mediapipe version some errors popped up. Updating the mediapipe version might solve them. If any API call being used have changed we may need to refactor some code ๐Ÿ’€.

[Discussion] General Refactor, Conventions Overview and Report I

This issue concerns three topics:

1. General Code/Structure Refactor

We should perform a refactor under whole repository, following strictly the conventions defined in issue #2. Also, we should set up an easy way for updating mediapipe to latest version (which is basically a clone from current MediaPipe's master).

2. Conventions Overview

We've stated that Google C++ Style Guide would be used, but we haven't followed it strictly. Thus, after the refactor, we should be more severe on code reviews. Also we must define an convention for documentation (we may discuss this in issue #2), providing at least a minimal API.

3. Report I

Now, we should be starting Report I as defined in issue #16. But this should be done after repository refactor.

Get mappings from landmark points to features

#10 is required;

Deadline: 02/12/2020.

In order to implement these features we need to know in advance what are the landmark points related (and relevant) to them. Thus, using the images (within data/faces/) produced in issue #10, we must first identify such points. The division (generated by a random algorithm) of who gets which feature mapping is the following:

The feature F1 was left aside, so the first to finish their mapping gets it.

The objective of this stage is to obtain all the landmark points related to each feature.

All the mappings should be reported on the document shared. Later, it will be better developed into a formal report.

Bug on feature F3

I've detected a possible bug with F3 feature. When running feature_extractor_video, the value of the feature keeps increasing every time (press Enter to get feature values). Not sure if this is a bug with feature_extractor_video or with F3, we should check this before running experiments.

DELAY NOTICE

Milestone 2 should be finished by February 1st but it couldn't be accomplished. In March 1st we started another step in the project, but Milestone 2 is still not ready.

This issue aims at reporting this delay. We are late for a month and MUST work this in the further stages.

Implement calculator for gray scale convertion

The calculator must be able to convert an image to gray scale format. (Names can be changed, these are just suggestions).

Name: GrayScaleConverterCalculator;
Input: image (RGB ImageFrame);
Output: image (RGB ImageFrame converted to gray scale);

Implement calculator for video writting

The calculator must be able to write image frames into a video. (Names can be changed, these are just suggestions).

Name: VideoWrittingCalculator;
Input: frame (RGB ImageFrame);
Output: video (Video gathering the frames);

Implement calculator for gaussian blur

The calculator must be able to apply the gaussian blur into an image. (Names can be changed, these are just suggestions).

Name: GaussianBlurCalculator;
Input: image (RGB ImageFrame);
Output: image (RGB ImageFrame);

Assemble feature extractors

deadline: 01/02/2020

depends on #20.

We've implemented most of our features descriptors. Now we must assemble them in order to generate the features files and
corresponding datasets.

We should have a single script accomplishing this task (in bash probably). It should call the c++ script to generate a brand new csv file with the facial features (a.k.a. F1 to F7). After, the python script should be used to generate the HR signals and append them to the existing csv. This final csv file is our feature file.

Important to note: We should extract the existing features in the same timestamp they were extracted in Bevilacqua's original implementation. Thus, we may insert them in the original csv files, and we won't need to implement features described in #24 for now. These features don't seems to be so relevant, in the model implementation from #26 their performance was worse than the others features.

Wrong "generic model" saving

We were saving the "generic model" (trained on all subjects) mistakenly. The result of that is the "subject-level" model wasn't beginning with any weights, therefore the training was starting fresh for each individual.

The fix is pretty simple and is already under implementation.

Implement existing facial features

#14 is required

Deadline*: 05/12/2020.

Based on the exploration of the face mesh functionality (#10), the already existing facial features must be implemented using MediaPipe. Thus, features F1 to F7 will be reimplemented.

*Note: We should try to end this issue at 3rd December, when we'll meet with swedish team.

Implement experiments for comparison between features

Deadline: 30/01/2021.

The experiments will be executed using a helper program (preferably a CLI-like). This program must provide following functionalities:

  1. It must accept an argument for number of executions that will be computed (e.g. we'll run the algorithms N times and compute the final result as the mean of the N individual results taken);
  2. It must save both individual results for each execution performed and the final result;

Implement CSV generation calculator (c++)

As we'll inevitably use python for issue #20, the csv generation must have two parts: one in C++, for things related to mediapipe and another for python, for things related to HR and any additional implementation in the language.

Since anything in python is simpler, the c++ csv generation we'll just write to a file, and in python we'll add content to this written csv.

Implement remaining features

Deadline: 02/02/2021.

Description

Implement features present in the gux-deeplearning readminds dataset however not highlighted in Fernando's paper.

Features

  • face_blinks_1s
  • face_blinks_5s
  • face_motion_error
  • face_motion_instability
  • face_mouth_edges_change
  • face_mouth_histogram_change
  • face_reference_scale

Sources

Check this doc for a basic understanding of each feature.

MediaPipe Papers

MediaPipe has some papers related to it, regarding machile learning architectures used by the framework, among other things. Here are some (maybe) interesting for our study:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.