Giter Club home page Giter Club logo

edusense's Introduction

EduSense: Practical Classroom Sensing at Scale

hero image

EduSense represents the first real-time, in-the-wild evaluated and practically-deployable classroom sensing system at scale that produces a plethora of theoretically-motivated visual and audio features correlated with effective instruction.

Our getting started is a good starting point if you are interested in building/developing/deploying EduSense. More information about the team can be found on the EduSense website.

News

  • Oct 2019 We open-source our EduSense code!
  • Sep 2019 We presented our paper titled "Edusense: Practical Classroom Sensing at Scale" at Ubicomp'19.

Features for Students and Instructors

features

  • Visual Features:
    • Body Segmentation, Keypoints and Inter-frame tracking:
      • Hand Raise Detection
      • Upper Body Pose Estimation
      • Sit vs Stand Detection
      • Synthetic Accelerometer
      • Classroom Topology
    • Facial Lanndmarks and Attributes:
      • Smile Detection
      • Mouth State Detection
      • Gaze Estimation
  • Audio Features:
    • Speech Detection:
      • Student vs Instructor Speech
      • Speech Act Delimation
  • Classroom Digital Twins

Visualization Dashboard

viz dashboard

System Architecture

system architecture

Related Links

Citation

Karan Ahuja, Dohyun Kim, Franceska Xhakaj, Virag Varga, Anne Xie, Stanley Zhang, Jay Eric Townsend, Chris Harrison, Amy Ogan, and Yuvraj Agarwal. 2019. EduSense: Practical Classroom Sensing at Scale. Proc. ACM Interact. Mob. Wearable Ubiquitous Technol. 3, 3, Article 71 (September 2019), 26 pages. DOI: https://doi.org/10.1145/3351229

@article{Ahuja:2019:EPC:3361560.3351229,
 author = {Ahuja, Karan and Kim, Dohyun and Xhakaj, Franceska and Varga, Virag and Xie, Anne and Zhang, Stanley and Townsend, Jay Eric and Harrison, Chris and Ogan, Amy and Agarwal, Yuvraj},
 title = {EduSense: Practical Classroom Sensing at Scale},
 journal = {Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.},
 issue_date = {September 2019},
 volume = {3},
 number = {3},
 month = sep,
 year = {2019},
 issn = {2474-9567},
 pages = {71:1--71:26},
 articleno = {71},
 numpages = {26},
 url = {http://doi.acm.org/10.1145/3351229},
 doi = {10.1145/3351229},
 acmid = {3351229},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Audio, Classroom, Computer Vision, Instructor, Machine Learning, Pedagogy, Sensing, Speech Detection, Teacher},
}

Karan Ahuja, Deval Shah, Sujeath Pareddy, Franceska Xhakaj, Amy Ogan, Yuvraj Agarwal, and Chris Harrison. 2021. Classroom Digital Twins with Instrumentation-Free Gaze Tracking. In Proceedings of the 2021 CHI Conference on Human Factors in Computing Systems (CHI '21). Association for Computing Machinery, New York, NY, USA, Article 484, 1โ€“9. DOI:https://doi.org/10.1145/3411764.3445711

@inproceedings{10.1145/3411764.3445711,
author = {Ahuja, Karan and Shah, Deval and Pareddy, Sujeath and Xhakaj, Franceska and Ogan, Amy and Agarwal, Yuvraj and Harrison, Chris},
title = {Classroom Digital Twins with Instrumentation-Free Gaze Tracking},
year = {2021},
isbn = {9781450380966},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3411764.3445711},
doi = {10.1145/3411764.3445711},
articleno = {484},
numpages = {9},
keywords = {digital twins., Classroom sensing, gaze tracking},
location = {Yokohama, Japan},
series = {CHI '21}
}

License

The source code in this directory and its subdirectories are all governed by BSD 3-Clause License unless otherwise noted in the source code. Once compiled or packaged, it is the user's reponsibility to ensure that any use of the result binary or image complies with any relevant licenses for all software packaged together.

edusense's People

Contributors

akshat57 avatar christianmurphy avatar deval-maker avatar dohyunkim-dev avatar karanahujax avatar nvogety avatar pranavdheer avatar prasoonpatidar avatar yuvrajagarwal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edusense's Issues

Session.go assumes schema format by appending "-audio" or "-video" during query

Problem:

While --video_schema and --audio_schema name can be anything when running run_backfill.py there is an underlying assumption that "-audio" and "-video" are on the end of the schema name. run_backfill.py does not automatically append them when running the containers.

Impact:

After successfully inserting videoframes or audioframes into a session, the query to retrieve them is not as expected or impossible to form. If the original schema appended "-audio" or "-video" (eg. schema: "edusense-audio") then only using the first part of the schema will succeed. If the original schema did not append this then the frames are not queryable (eg. schema: "0.1.0" transforms to "0.1.0-audio").

Solution:

In storage/query/resolver/session.go lines 123 and 165 need to have the second argument updated to remove the string concatenation.

Side effects:

Any arguments automatically passed into scripts like run_backfill.py will need to be updated to match the fully qualified expected schema.

Plans to open source frontend?

The getting started guide mentions

Frontend (not included in this repository)

  • frontend visualizes processed data, providing useful debug interface. Currently, our edusense repository does not contain this component.

are there plans to open source the front end as well?

Docker-compose.audio.yml to be created, tested & merged.

https://github.com/edusense/edusense/tree/master/compose

@pranavdheer @prasoonpatidar @nvogety
Sending to Jameel as he was running into issues.

The functionality seems to be there but no docker-compose.audio.yml.

docker run edusense/audio --help
usage: audio_pipeline.py [-h] --front_url [FRONT_URL] --back_url [BACK_URL]
[--backend_url [BACKEND_URL]]
[--time_duration [TIME_DURATION]]
[--session_id [SESSION_ID]] [--schema [SCHEMA]]

EduSense audio pipeline

optional arguments:
-h, --help show this help message and exit
--front_url [FRONT_URL]
URL to rtsp front camera stream
--back_url [BACK_URL]
URL to rtsp back camera stream
--backend_url [BACKEND_URL]
EduSense backend
--time_duration [TIME_DURATION]
Set the time duration for file to run
--session_id [SESSION_ID]
EduSense session ID
--schema [SCHEMA] EduSense schema

and the following branch documentation for docker-compose needs to be updated from:

docker run edusensecmu/video --help
docker run edusensecmu/audio --help
docker run edusensecmu/openpose --help
docker run edusensecmu/storage --help

To:
docker run edusense/video --help
docker run edusense/audio --help
docker run edusense/openpose --help
docker run edusense/storage --help

support openpose v1.6.0 release

We have openpose v1.5.1 submodule on our codebase, but recent release of Openpose v1.6.0 breaks our Docker build.

Error log:

Step 16/28 : RUN cmake /openpose && make -j 8 && make install
**OMITTED**
-- Found glog    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so;-lpthread (found version "3.0.0")
-- Found OpenCV: /usr (found version "3.2.0")
-- Caffe will be downloaded from source now. NOTE: This process might take several minutes depending
        on your internet connection.
-- Caffe has already been downloaded.
fatal: not a git repository: /openpose/3rdparty/caffe/../../../../../../.git/modules/compute/openpose/third_party/openpose/modules/3rdparty/caffe
-- Caffe will be built from source now.
-- Download the models.
-- Downloading BODY_25 model...
-- NOTE: This process might take several minutes depending on your internet connection.
CMake Error at cmake/Utils.cmake:8 (file):
  file DOWNLOAD HASH mismatch
    for file: [/openpose/models/pose/body_25/pose_iter_584000.caffemodel]
      expected hash: [78287b57cf85fa89c03f1393d368e5b7]
        actual hash: [d41d8cd98f00b204e9800998ecf8427e]
             status: [22;"HTTP response code said error"]
Call Stack (most recent call first):
  CMakeLists.txt:976 (download_model)
-- Not downloading body (COCO) model
-- Not downloading body (MPI) model
-- Downloading face model...
-- NOTE: This process might take several minutes depending on your internet connection.
CMake Error at cmake/Utils.cmake:8 (file):
  file DOWNLOAD HASH mismatch
    for file: [/openpose/models/face/pose_iter_116000.caffemodel]
      expected hash: [e747180d728fa4e4418c465828384333]
        actual hash: [d41d8cd98f00b204e9800998ecf8427e]
             status: [22;"HTTP response code said error"]
Call Stack (most recent call first):
  CMakeLists.txt:982 (download_model)
-- Downloading hand model...
-- NOTE: This process might take several minutes depending on your internet connection.
-- Models Downloaded.
CMake Error at cmake/Utils.cmake:8 (file):
  file DOWNLOAD HASH mismatch
    for file: [/openpose/models/hand/pose_iter_102000.caffemodel]
      expected hash: [a82cfc3fea7c62f159e11bd3674c1531]
        actual hash: [d41d8cd98f00b204e9800998ecf8427e]
             status: [22;"HTTP response code said error"]
Call Stack (most recent call first):
  CMakeLists.txt:984 (download_model)
-- Configuring incomplete, errors occurred!
See also "/app/build/CMakeFiles/CMakeOutput.log".
See also "/app/build/CMakeFiles/CMakeError.log".
The command '/bin/sh -c cmake /openpose && make -j 8 && make install' returned a non-zero code: 1

Potential Solution

There are two potential solutions:

  1. update submodule to openpose follow 1.6.0 and update our patch files at https://github.com/edusense/edusense/tree/master/compute/openpose/edusense. You may find some guidance at https://github.com/edusense/edusense/blob/master/compute/openpose/README.md to figure out how to create a patch file, etc.
  2. figure out whether openpose team allows us to download parameter files at specific version. (namely, v1.5.0)

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.