{"id":28628357,"url":"https://github.com/lalywr2000/colorsaveslife","last_synced_at":"2026-06-08T16:04:30.799Z","repository":{"id":229362406,"uuid":"767583664","full_name":"lalywr2000/ColorSavesLife","owner":"lalywr2000","description":"Color Saves Life! Software enhancing driving exprience for color-disabled people. Plugin-based structure, easy-to-deploy new features.","archived":false,"fork":false,"pushed_at":"2024-03-23T20:42:45.000Z","size":187118,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-18T05:19:32.055Z","etag":null,"topics":["augmented-reality","color-blindness","disabled-people","driver-exprience","gazebo","gazebo-ros","gazebo-simulator","opencv","ros2","yolo"],"latest_commit_sha":null,"homepage":"https://github.com/Bosch-ConnectedExperience-2024/ColorSavesLife.git","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lalywr2000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-05T14:58:10.000Z","updated_at":"2025-02-03T13:10:47.000Z","dependencies_parsed_at":"2024-03-23T20:39:23.676Z","dependency_job_id":null,"html_url":"https://github.com/lalywr2000/ColorSavesLife","commit_stats":null,"previous_names":["lalywr2000/colorsaveslife"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lalywr2000/ColorSavesLife","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalywr2000%2FColorSavesLife","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalywr2000%2FColorSavesLife/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalywr2000%2FColorSavesLife/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalywr2000%2FColorSavesLife/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lalywr2000","download_url":"https://codeload.github.com/lalywr2000/ColorSavesLife/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalywr2000%2FColorSavesLife/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34069501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["augmented-reality","color-blindness","disabled-people","driver-exprience","gazebo","gazebo-ros","gazebo-simulator","opencv","ros2","yolo"],"created_at":"2025-06-12T10:12:17.456Z","updated_at":"2026-06-08T16:04:30.772Z","avatar_url":"https://github.com/lalywr2000.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv width=\"100%\" align=\"center\"\u003e\u003ch1\u003e🎨 Color Saves Life!\u003c/h1\u003e\u003c/div\u003e\n\u003cdiv width=\"100%\" align=\"center\"\u003e\u003cimg src=\"/assets/imgs/logo.png\" align=\"center\" width=\"50%\"\u003e\u003c/div\u003e\n\u003cdiv width=\"100%\" align=\"center\"\u003e\u003chr width=\"50\" align=\"center\"\u003e\u003c/div\u003e\n\n# 🚢 Welcome aboard, let me explain what it is\n\n\u003cdiv width=\"100%\" align=\"center\"\u003e\n    \u003cimg width=\"49%\" src=\"/assets/imgs/friedrichstrasse-road.jpg\"\u003e\n    \u003cimg width=\"49%\" src=\"/assets/imgs/friedrichstrasse-road-grayscale.jpg\"\u003e\n\u003c/div\u003e\n\n\u003e This example is for **achromatopsia**, which can see the world with only grayscale. There are lot more types of color-disability than chromatopsia.\n\n**We all love Berlin.**\nThe picture above is a image of Friedrichstraße, which is close to Haupftbanhof(centeral station) of Berlin. You can see heavy traffic here, let's imagine a situation that you've become a color-blinded person. If the unexpected car, bicycle, comes in front of you, can you react and brake down your car at the exact right time? At this point, you can see color disability is critical for driving situation, which can hurt someone's life. Most of color disabled people cannot drive. Even getting drive license is not allowed in some countries.\n\nOur **Color Saves Life** program comes at this point. Our goal is to attatch **transparent display** on front-window of vehicle*(Thanks to LG 😄)*, and simple sensors (normal camera in colorblind case). Boom! Now you can see AugmentedReality - Based - Driver Infortainment! In our program, we used Gazebo Simulator for prototype development. To adventure the our world of Gazebo Simulator, please [check here](#-world-of-simulation). You can find full storyline about the simulator here.\n\nAnother important feature of our program, is **Easy-to-develop**. If you just add your detecting algorithm and drawing part(opencv) for each frame in `plugins` folder, it is very easy develop new features. You can even run multiple plugins at same time, with plugin_master's features. [Check here](#-future-development-plan) and find more interesting ideas for future development. \n\n## 🎥 Presenation Matrials\n\nPlease visit [here](/assets/presentation/) to check our final videos and presentation files(pptx)! It may crash a little bit because of lack of font files, but I hope it works fine in your machines (:\n\n## 🏛️ Architecture - Ideal\n\n\u003cimg src=\"/assets/imgs/architecture-ideal.png\" align=\"center\"\u003e\n\n## 🏛️ Architecture - Prototype\n\n\u003cimg src=\"/assets/imgs/architecture-prototype.png\" align=\"center\"\u003e\n\n## 📁 Folder Structure\n```shell\n./\n ├── ros2pkg/\n │   ├── image_subscriber/\n │   └── test_publisher/\n │\n ├── srcs/\n │   │   # Simulation Part\n │   ├── simulation_ws/src/\n │   │   ├── sim/        # ros2 pkg for gazbeo simulation world and vehicle model\n │   │   ├── teleop/     # ros2 pkg for gazbeo vehicle teleoperation\n │   │   └── tracking/   # ros2 pkg for detecting the eye position\n │   │\n │   │   # Submodules\n │   ├── yolov5/\n │   │\n │   │   # Python Client\n │   ├── assets/     # test images, fonts\n │   ├── plugins/    # You can deploy your own plugin here\n │   │   ├── color_disability/\n │   │   │   ├── model/ # Train by using YOLOv5\n │   │   │   ├── color_disability.py\n │   │   │   └── traffic_object.py\n │   │   ├── plugin.py\n │   │   └── plugin_master.py\n │   ├── disability_assistant.py\n │   ├── image_subscriber.py\n │   ├── main.py\n │   └── requirement.txt\n │\n ├── test_drive_data.tar.xz   # rosbag data of driving in gazebo to test the detection model\n │\n ├── LICENSE\n │\n ├── assets/                # asset folder for documentations\n │   ├── imgs/              # image files\n │   └── presentations/     # presentation matrials\n │\n └── README.md          # your entrypoint!\n```\n\n## ❓ How to Use\n\n1. Download the docker image and unzip\n```shell\n# Download Releases/ColorSavesLife/ColorSavesLife.tar.bz2\nbunzip2 ColorSavesLife.tar.bz2\n```\n2. Turn on the docker environment\n```shell\ndocker load --input ColorSavesLife.tar\n```\n3. Open 3 terminal \n```shell\n# Fist Terminal\ndocker run -it --env DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix csl:1.0 /bin/bash\n\n# Second Terminal\ndocker ps # Check docker container ID\ndocker exec -it \u003ccontainer_ID\u003e /bin/bash\n\n# Thrid Terminal\ndocker ps\ndocker exec -it \u003ccontainer_ID\u003e /bin/bash\n```\n4. Unzip rosbag data\n```shell\ncd ~/ColorSavesLife\ntar -xf test_drive_data.tar.xz\n```\n\n5. Run the application\n```shell\n# First Terminal\ncd ~/ColorSavesLife/srcs\npython3 main.py\n\n# Second Terminal\ncd ~/ColorSavesLife\nros2 bag play test_drive_data\n\n# Third Terminal\nrviz2 # Add Image_msg -\u003e Set topic (/car/camera1/image_raw)\n```\n\n## 🚦 World of Simulation\n\n\u003cdiv widht=\"100%\" align=\"center\"\u003e\n    \u003cimg src=\"/assets/imgs/simulation_world.png\" width=\"49%\" align=\"center\"\u003e\n    \u003cimg src=\"/assets/imgs/car_road_view.png\" width=\"49%\" align=\"center\"\u003e\n\u003c/div\u003e\n\nhttps://github.com/lalywr2000/ColorSavesLife/assets/138571365/47cc0f78-8c28-4f0d-9dbd-17c3489e1b33\n\nWe used ROS2 and Gazebo simulation to implement and test our idea. The following demonstrates how to build from source, run the simulation, and process the video. We used Ubuntu 20.04 with ROS2 Foxy and Gazebo 11, assuming you have a similar working environment and correct installations.\n\n```shell\ncd srcs/simulation_ws\ncolcon build\n```\n\n#### 1. Test eye tracking simulator\n\nhttps://github.com/lalywr2000/ColorSavesLife/assets/138571365/38cb0674-fa63-4da2-b476-9eef324a8226\n\nhttps://github.com/lalywr2000/ColorSavesLife/assets/138571365/478ecd57-b25d-4ef7-8d45-f7937b8f9829\n\nThis program perceives the position of your eyes through a webcam and moves the camera object on Gazebo accordingly. This allows you to obtain a first-person perspective-like view within the simulation, mimicking your movements as if you were moving within the simulation environment.\n\nSecify the path to the model in the `gui.ini` file located in `.gazebo`, and set the `gazebo_model_path` in the `package.xml` file to fit your local environment, you will be able to use the following features. Subscribe to the Image topic `car/camera1/image_raw` in RViz2 to monitor the first-person perspective.\n\n```shell\n# Terminal 1\nsource install/local_setup.bash\nros2 launch sim test.launch.py\n\n# Terminal 2\nsource install/local_setup.bash\nros2 run sim camera_movement\n\n# Terminal 3\nsource install/local_setup.bash\nros2 run tracking eye_tracking\n\n# Terminal 4\nrviz2\n```\n\n#### 2. Test teleoperation of the vehicle\n\nhttps://github.com/lalywr2000/ColorSavesLife/assets/138571365/7bf3ccfd-fe2e-4467-bfd7-ec0203337a90\n\nNow that you have the vision, it's time to drive. This time, we'll simulate driving in a world with simple roads, buildings, and traffic objects. By following the instructions below, you'll be able to move a vehicle forward, backward, and steer within the simulation. We'll use the `pygame` library for keyboard input with the WASD keys, assuming you have it installed.\n\nClick on the empty pygame screen that pops up, then try using WASD keys to move the vehicle.\n\n```shell\n# Terminal 1\nsource install/local_setup.bash\nros2 launch sim sim.launch.py\n\n# Terminal 2\nsource install/local_setup.bash\nros2 run teleop controller\n\n# Terminal 3\nrviz2\n```\nIf you have successfully followed along up to this point, you should have an idea of how to simultaneously run eye tracking and vehicle driving. Now, utilize both functionalities to collect realistic visual data and provide it to vision processing model.\n\n\n## DEMO!!\n\nhttps://github.com/lalywr2000/ColorSavesLife/assets/138571365/6caf75e7-8876-491f-bd97-f706e9e7c992\n\nhttps://github.com/lalywr2000/ColorSavesLife/assets/138571365/93db22f7-9478-4a3d-a849-f7ce598773f8\n\n\n## 🤔 Future Development Plan\nColor disability is not only disability that affects to normal life. In the report of WHO(World Health Organization), one of five people has problem of hearing [(who.int/health-topics/hearing-loss)](https://www.who.int/health-topics/hearing-loss#tab=tab_1). It is very important fact that 80% of them are living in low-income/mid-income countries, and hearing care interventions are cost-effective. If they can get help for their life with getting driving skills, this will effect a lot. With this solucation Solution, we can help them to drive much more safely and make their life much more easier and enjoyable for driving. As an example, we show you some of our future development plan for hearing disability and dementia. \n\n### 🔈 SoundVisualizer for HearingDisability\nSound sense is also so much important in driving situations and sirious problem. There are 450 million people who have hearing disability. Think about the emargency situation that ambulance is coming from your behind. If you have problem with hearing, this will cause worse circumstanses like car accident or a person who needs help cannot be rescued. But with SoundVisualizer plugin , that visualize any sound around your car and which direction does it comes from on front driver window. This will help you to react to the situation and make a right decision.\n\n### AI Driving Assistant for Dementia\nDmentia is also a serious problem for driving. There are 55 million people who have dementia. Even their disablity is not effecting to their driving skills, they are not allowed to drive in some countries. Because they tend to pay less attention to the road and they are not able to make a right decision. With our AI Driving Assistant plugin for Dementia, that learn the driver's driving pattern and other driving data, that can show some warning message or make a sound when the driver is not paying attention to the road or detecting some unusual driving pattern.\n\nSo our platform is not only for color disability, but also for other disabilities. This has great potential to improve the lives of people with disabilities, making driving easier and more enjoyable for them. \n\n## 🫂 Team Member\n- Kwanho Kim: [@KKWANH](https://github.com/KKWANH)\n- Hokyung Park: [@Ho-mmd](https://github.com/ho-mmd)\n- Sujong Ha: [@lalywr2000](https://github.com/lalywr2000)\n- Shuta Ogura: [@Shuta-Syd](https://github.com/Shuta-Syd)\n- Oscar Lopez\n\n## 👍 References\n- [Eye tracking](https://github.com/antoinelame/GazeTracking)\n- [Gazebo world](https://bitbucket.org/theconstructcore/riabot/src/master/)\n- [Vehicle model](https://www.thingiverse.com/thing:3076864)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flalywr2000%2Fcolorsaveslife","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flalywr2000%2Fcolorsaveslife","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flalywr2000%2Fcolorsaveslife/lists"}