{"id":217,"date":"2024-04-06T22:32:43","date_gmt":"2024-04-07T03:32:43","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/?p=217"},"modified":"2024-04-06T22:32:43","modified_gmt":"2024-04-07T03:32:43","slug":"team-status-report-for-4-6","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/2024\/04\/06\/team-status-report-for-4-6\/","title":{"rendered":"Team Status Report for 4\/6"},"content":{"rendered":"<p><span style=\"font-weight: 400\">The most significant risk right now is the accuracy of our flow state detector. After determining a good level of accuracy on our testing data from Professor Dueck in a musician setting, we went on to perform validation in the other settings this week. Rohan performed and recorded EEG data for an activity to stimulate flow state (playing a video game) with noise-canceling headphones and music to encourage flow state for 15 minutes. He then recorded a baseline of performing a regular work task with distractions (intermittent conversation with a friend) for another 15 minutes. On the intended flow recording, our model predicted .254% of the time was in flow and in the intended not-in-flow recording, our model predicted .544% of the time was in flow. We have a few ideas as to why the model may be performing poorly in this validation context. First of all we think that in both settings, Rohan did not enter a flow state because neither task was second nature or particularly enjoyable and also 15 minutes is likely too short of a period to enter a flow state. To further validate the flow detection model, we plan to have Rohan\u2019s roommate who is an avid video gamer wear the headset while playing games for an extended period of time to see how the model performs in detecting flow in a gaming environment. Depending on how this goes, we plan to validate the model again in the music setting to see if our model has overtrained to detect flow specifically in a musical setting.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Rohan also implemented a custom focus state detector. We collected recordings of Arnav, Karen, and Rohan in 15 minute focused and then 15 minute distracted settings while collecting EEG data from the headset. The model achieved high test accuracy on data it had not seen before and had strong precision, recall, and F1 scores. We collected data with Karen wearing the headset again, this time for 20 minutes in focus and 20 minutes distracted to use for model validation. When we ran this data through the custom focus detector, we saw a disproportionately high amount of distracted classifications and overall poor performance. We realized that the original training set only had 28 high quality focus data points for Karen compared to 932 high quality distracted data points for Karen. So, we attribute the poor performance to the skewed training data, plan to incorporate this validation data as training data for the model, and collect new validation data to ensure that the model is performing well. As a backup, we inspected the Emotiv Performance Metrics for focus detection and saw a clear distinction in the average focus Performance Metric in the focused recording as compared to the distracted recording.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Finally, as an attempt to further validate our custom models, Rohan applied Shapley values which are a measure used in explainable AI to understand which input features are contributing most significantly to the flow vs not in flow classification.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Validation for video processing distraction detection:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Yawning, microsleep, gaze<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Test among 3 different users<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Have user engage in behavior 10 times<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Record number of true positives, false positives, and false negatives<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Phone pick-up<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Test among 5 different phones (different colors, Android\/iPhone)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Have user pick-up and use phone 10 times (5-10 second pick-up and use)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Record number of true positives, false positives, and false negatives<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Other people<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Test among 1 user and 3 other people<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Have other person enter frame 10 times (5-10 second interaction)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Record number of true positives, false positives, and false negatives<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Face recognition<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Test among 3 different users<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Register user\u2019s face in calibration<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Imposter takes place of user 3 times in a given work session<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Imposter takes user\u2019s place in 30 second intervals<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Record number of true positives, false positives, and false negatives for imposter being recognized<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Performance<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Calculate average FPS over every 10 frames captured, logic below<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Get average FPS over a 1 minute recording<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400\">if<\/span> <span style=\"font-weight: 400\">COUNTER<\/span> <span style=\"font-weight: 400\">%<\/span> <span style=\"font-weight: 400\">FPS_AVG_FRAME_COUNT<\/span> <span style=\"font-weight: 400\">==<\/span> <span style=\"font-weight: 400\">0:<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400\">FPS<\/span> <span style=\"font-weight: 400\">=<\/span> <span style=\"font-weight: 400\">FPS_AVG_FRAME_COUNT<\/span> <span style=\"font-weight: 400\">\/<\/span> <span style=\"font-weight: 400\">(time.time()<\/span> <span style=\"font-weight: 400\">&#8211;<\/span> <span style=\"font-weight: 400\">START_TIME)<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400\">START_TIME<\/span> <span style=\"font-weight: 400\">=<\/span> <span style=\"font-weight: 400\">time.time()<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400\">COUNTER<\/span> <span style=\"font-weight: 400\">+=<\/span> <span style=\"font-weight: 400\">1<\/span><\/p>\n<p><span style=\"font-weight: 400\">Overall, integration is going smoothly as we have all of the distraction types integrated into the frontend and backend of the web app except for face recognition. Besides the hiccup in the accuracy of our flow state detector, our team is overall on schedule.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Besides improving the focus and flow state detector performance, Arnav and I will be focusing this coming week on improving the UI to improve the user experience.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The most significant risk right now is the accuracy of our flow state detector. After determining a good level of accuracy on our testing data from Professor Dueck in a musician setting, we went on to perform validation in the other settings this week. Rohan performed and recorded EEG data for an activity to stimulate &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/2024\/04\/06\/team-status-report-for-4-6\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Team Status Report for 4\/6&#8221;<\/span><\/a><\/p>\n","protected":false},"author":819,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[3],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/posts\/217"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/users\/819"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/comments?post=217"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/posts\/217\/revisions"}],"predecessor-version":[{"id":218,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/posts\/217\/revisions\/218"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/media?parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/categories?post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teame0\/wp-json\/wp\/v2\/tags?post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}