{"id":18000221,"url":"https://github.com/krisnasantosa15/realtime-bisindo-classification","last_synced_at":"2026-03-07T05:32:19.640Z","repository":{"id":259462013,"uuid":"877943552","full_name":"KrisnaSantosa15/realtime-bisindo-classification","owner":"KrisnaSantosa15","description":"The objective of this project is to classify the BISINDO (Bahasa Isyarat Indonesia) alphabet in real-time using hand landmarks detection and machine learning.","archived":false,"fork":false,"pushed_at":"2024-10-25T06:40:12.000Z","size":22437,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T07:44:12.665Z","etag":null,"topics":["bisindo","classification","computer-vision","machine-learning","mediapipe","mediapipe-hands","opencv","python","sign-language-recognition"],"latest_commit_sha":null,"homepage":"https://realtime-bisindo-classification.streamlit.app/","language":"Jupyter Notebook","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/KrisnaSantosa15.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,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T14:04:39.000Z","updated_at":"2025-01-28T07:47:33.000Z","dependencies_parsed_at":"2024-10-25T23:34:46.551Z","dependency_job_id":null,"html_url":"https://github.com/KrisnaSantosa15/realtime-bisindo-classification","commit_stats":null,"previous_names":["krisnasantosa15/realtime-bisindo-classification"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrisnaSantosa15%2Frealtime-bisindo-classification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrisnaSantosa15%2Frealtime-bisindo-classification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrisnaSantosa15%2Frealtime-bisindo-classification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrisnaSantosa15%2Frealtime-bisindo-classification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KrisnaSantosa15","download_url":"https://codeload.github.com/KrisnaSantosa15/realtime-bisindo-classification/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142043,"owners_count":20890652,"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":["bisindo","classification","computer-vision","machine-learning","mediapipe","mediapipe-hands","opencv","python","sign-language-recognition"],"created_at":"2024-10-29T23:10:34.648Z","updated_at":"2026-03-07T05:32:19.603Z","avatar_url":"https://github.com/KrisnaSantosa15.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🤞 Real-time BISINDO (Bahasa Isyarat Indonesia) Classification\n\n![Banner](images/banner.png)\n\n## 🌟 Project Overview\n\nWelcome to the Real-time BISINDO (Bahasa Isyarat Indonesia) Classification project! In this project, I built a machine learning model to classify the BISINDO alphabet in real-time using hand landmarks detection. I used the mediapipe library to extract hand landmarks from the images and trained a Random Forest model to classify the alphabet.\n\n## 💡 Demo\n\nYou can check out the demo of the project on Streamlit [Here]((https://realtime-bisindo-classification.streamlit.app/))\n\n[https://realtime-bisindo-classification.streamlit.app/](https://realtime-bisindo-classification.streamlit.app/)\n\nBut streamlit is not supported for real-time video, so you can run the project locally to see the real-time classification. As an alternative, you can upload an image to classify the BISINDO alphabet.\n\n![Demo](images/static.png)\n\n## 🎯 Objective\n\nThe objective of this project is to classify the BISINDO (Bahasa Isyarat Indonesia) alphabet in real-time using hand landmarks detection and machine learning.\n\n## 🧪 Dataset\n\nI use the [Bahasa Isyarat Indonesia (BISINDO) Alphabets](https://www.kaggle.com/datasets/achmadnoer/alfabet-bisindo) dataset from Kaggle. This dataset contains 26 classes of images, each representing a letter in the BISINDO alphabet.\n\nThe data files contain 1:1 scaled images of Indonesian sign language, from A to Z.\n\nThere are three backgrounds used in taking the image, namely a plain white shirt, a white wall, and a white dot-patterned shirt. The point of view of the image taken is the front view with the distance between the object and the lens approximately 70 cm.\n\nDuring the shooting process, four images were obtained for each background, which means 12 images for each alphabet. The total images from letters A to Z obtained are 312 images.\n\n\n## 🖥️ Implementation\n\nthis project uses Python with the following key libraries:\n\n- scikit-learn for machine learning algorithms and metrics\n- numpy for numerical operations\n- pandas for data manipulation\n- matplotlib and seaborn for data visualization\n- imgaug for image augmentation\n- mediapipe for hand landmarks detection\n- opencv-python for image processing\n\nHere's the workflow of the project:\n1. Load the dataset and preprocess the images\n2. Augment the images using imgaug with 50 images each\n3. Extract hand landmarks from the images using mediapipe\n4. Extract features from the hand landmarks\n5. Train and evaluate machine learning models\n6. Compare the models and choose the best one\n7. Use OpenCV to capture real-time video and classify the BISINDO alphabet\n\n![mediapipe](images/hand-landmarks.png)\n\n## 📊 Results\n\nI evaluated each model with accuracy as main metric. Here are the results:\n\n![Execution Time](images/comparison.png)\n\nCheck out my detailed analysis and visualizations in the Jupyter notebook!\n\nHere's the result I get with the best model (Random Forest, 99%):\n\n![Confusion Matrix](images/cf.png)\n\nHere's some screenshots of the real-time classification:\n\n![Real-time Classification](images/s.png)\n![Real-time Classification](images/a.png)\n![Real-time Classification](images/p.png)\n![Real-time Classification](images/i.png)\n\n## 🛑 Limitation\n\nHere are some limitations of the project:\n- The system is very slow because of the hand landmarks detection, and model classification\n- The model is not very accurate because of the small dataset (Only use augmented images)\n\n## 📈 Future Work\n\nHere are some ideas for future work:\n- Use more real dataset (Not only augmented images)\n- Improve speed and accuracy of the model\n- Implement the model on a mobile app\n- experiment with removing `z axis` from the hand landmarks\n\n## 🚀 Getting Started\n\n1. Clone this repository:\n   ```\n   git clone https://github.com/KrisnaSantosa15/realtime-bisindo-classification.git\n   ```\n\n2. Install the required packages:\n   ```\n   pip install -r requirements.txt\n   ```\n\n3. Run the Jupyter notebook\n\n4. Run `streamlit run dashboard/dashboard.py` to run the Streamlit dashboard\n\n## 🤝 Contribute\n\nFeel free to fork this repository and submit pull requests. All contributions are welcome!\n\n## 📚 Learn More\n\nFor a detailed walkthrough of the code and methodology, check out the Jupyter notebook in this repository.\n\n## 📄 License\n\nThis project is [MIT](LICENSE) licensed.\n\n---\n\nIf you find this project interesting, don't forget to give it a star! ⭐","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrisnasantosa15%2Frealtime-bisindo-classification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrisnasantosa15%2Frealtime-bisindo-classification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrisnasantosa15%2Frealtime-bisindo-classification/lists"}