{"id":14977903,"url":"https://github.com/mousazourob/uplift","last_synced_at":"2025-05-06T17:34:39.144Z","repository":{"id":55496327,"uuid":"324432868","full_name":"MousaZourob/UpLift","owner":"MousaZourob","description":"Mood changer that uses facial recognition to play a song to positively change the user's mood","archived":false,"fork":false,"pushed_at":"2020-12-27T01:15:58.000Z","size":88484,"stargazers_count":1,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T15:11:08.749Z","etag":null,"topics":["keras-tensorflow","matplotlib","opencv","pandas","python","raspberry-pi","raspberry-pi-camera"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MousaZourob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-25T21:03:27.000Z","updated_at":"2020-12-31T22:40:37.000Z","dependencies_parsed_at":"2022-08-15T01:50:13.887Z","dependency_job_id":null,"html_url":"https://github.com/MousaZourob/UpLift","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MousaZourob%2FUpLift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MousaZourob%2FUpLift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MousaZourob%2FUpLift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MousaZourob%2FUpLift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MousaZourob","download_url":"https://codeload.github.com/MousaZourob/UpLift/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252734403,"owners_count":21796013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["keras-tensorflow","matplotlib","opencv","pandas","python","raspberry-pi","raspberry-pi-camera"],"created_at":"2024-09-24T13:56:31.027Z","updated_at":"2025-05-06T17:34:34.113Z","avatar_url":"https://github.com/MousaZourob.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UpLift\n### Overview:\nUplift is a mood changer programmed with **Python** that plays a song to positively change the user's mood. The song choice is based on the user's facial expression, so if the user is happy, cheerful music is played to keep them motivated, and if they are sad or angry, relaxing music is played to soothe them. A combination of hardware (**Raspberry Pi**), and software (**OpenCV, Keras, Pandas**) components were used to create this project. \n\u003cbr /\u003e\nOther than helping individual users, a commercial application of this product is usage in restaurants and cafes to detect the most dominant emotion, and play music based on the customer’s emotions.\n\n\n### Components:\n#### Software:\nThe project utilizes **OpenCV** to read each frame of the video input from the **PiCamera**, which is connected to a **Raspberry Pi**. Once this is done **OpenCV** detects where the user’s face is in the frame by pixel location. When a face is detected, a blue rectangle is drawn over the face to allow the user to see the program in action. **Keras** then takes the frames and runs them against a dataset from **Kaggle** to determine the user's facial expression. After this using **MatplotLib** visualization library and **Pandas**, a graph is displayed showing the user their emotions based on their facial expression, and music is played using the **SimpleAudio** Python package.\n\n#### Hardware:\nFor hardware a **PiCamera** was used as well as a **Raspberry Pi 4**, to allow for efficient and speedy processing of the video frames. These components were connected to a monitor, so that the user can see the live video feed and a graph of their emotions that was displayed using the **Matplotlib**, and hear the music playing.\n\n\n### Demo:\n#### 1. OpenCV detects the user's face and crops an image of their face\n\u003cimg src=\"https://user-images.githubusercontent.com/66835262/103143615-f19e3880-46e7-11eb-9e94-6a8dc7155ed4.png\" width=\"600px\"\u003e\n\n#### 2. Keras runs a model against the detected faces and determines a facial expression, the data is displayed using MatplotLib\n\u003cimg src=\"https://user-images.githubusercontent.com/66835262/103143643-6a9d9000-46e8-11eb-82e7-1dae90e5593f.png\" width=\"600px\"\u003e\n\n#### 3. A song is played through the speakers attached to the Raspberry Pi to maintain or elevate the user's mood \n\n\n### Libraries and Frameworks Used:\n* **Keras:** https://keras.io/\n* **OpenCV:** https://opencv.org/\n* **Pandas:** https://pandas.pydata.org/\n* **MatPlotLib:** https://matplotlib.org/\n* **NumPy:** https://numpy.org/\n\n\n### Contributers:\n* Christopher Zhang: https://github.com/ChristopherChiZhang\n* Jenny Tai: https://github.com/aegerita\n* Alperen Asim Kes: https://github.com/alperenkes\n* Jinwoo Park: https://github.com/hilfiger1\n* Mousa Zourob https://github.com/MousaZourob\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmousazourob%2Fuplift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmousazourob%2Fuplift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmousazourob%2Fuplift/lists"}