{"id":30029971,"url":"https://github.com/elucidation/chessdetect-tfjs","last_synced_at":"2025-10-15T09:25:25.159Z","repository":{"id":288997444,"uuid":"969781835","full_name":"Elucidation/chessdetect-tfjs","owner":"Elucidation","description":"Live chessboard detection (segmentation + 4corners) with TensorflowJS","archived":false,"fork":false,"pushed_at":"2025-06-26T04:31:51.000Z","size":5434,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T05:23:50.815Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://elucidation.github.io/chessdetect-tfjs/","language":"JavaScript","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/Elucidation.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,"zenodo":null}},"created_at":"2025-04-20T23:08:09.000Z","updated_at":"2025-06-26T04:31:54.000Z","dependencies_parsed_at":"2025-06-26T05:20:45.025Z","dependency_job_id":"0fe49043-c84c-4cf4-8eda-542c6811e59b","html_url":"https://github.com/Elucidation/chessdetect-tfjs","commit_stats":null,"previous_names":["elucidation/chessdetect-tfjs"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/Elucidation/chessdetect-tfjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elucidation%2Fchessdetect-tfjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elucidation%2Fchessdetect-tfjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elucidation%2Fchessdetect-tfjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elucidation%2Fchessdetect-tfjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Elucidation","download_url":"https://codeload.github.com/Elucidation/chessdetect-tfjs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elucidation%2Fchessdetect-tfjs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269135891,"owners_count":24366535,"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","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"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":[],"created_at":"2025-08-06T18:42:27.290Z","updated_at":"2025-10-15T09:25:20.108Z","avatar_url":"https://github.com/Elucidation.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## U-Net++ Chessboard Segmentation and 4 Corners Web Predictor\n\nThis is an HTML/JavaScript web application that runs a pre-trained U-Net++ segmentation/heatmap model directly in the browser using TensorFlow.js. [I discuss building the dataset/design/training in this video](https://youtu.be/nTezvh2lFtw?si=uk8yKnZlK6U1nMPX). The model runs locally on device, no server is used.\n\n![latest_224_model_heatmaps_result](https://github.com/user-attachments/assets/1a0deba5-a425-4eed-b715-cd5904497096)\n\nIt provides an interactive way to test and visualize the output of the chessboard segmentation + 4 corner heatmap U-Net++ model on different inputs from a website.\n\n[**Try it out Live**](https://elucidation.github.io/chessdetect-tfjs/) or watch a video of it in use below:\n\n\nhttps://github.com/user-attachments/assets/f32c9319-21a1-4f7c-b17a-33c4baf608e5\n\n**Features:**\n\n* Loads a quantized uint8 U-Net++ model previously converted to the TensorFlow.js graph model format (`model.json` + weights).\n* The model was trained on 10,000 custom synthetic images that [I made with Blender](https://youtu.be/ybKiTbZaJAw?si=b5dMPWt5Md34XuKk)\n* Accepts input via either:\n    * **File Upload:** Select an image file from your device.\n    * **Live Camera Feed:** Use your device's camera in real-time.\n* Performs model prediction directly in the browser.\n* Supports switching between available cameras (e.g., front/back on mobile).\n* Displays the input (uploaded image or live camera feed) alongside a combined visualization showing the predicted segmentation mask and corner heatmaps overlaid on the input.\n* Includes a slider to control the transparency (alpha) of the segmentation/heatmap overlay.\n\n\n**Model**\n\nIt takes in 128x128 RGB images and puts out 128x128x5 binary segmentation + 4 gaussian heatmaps for the 4 corners of the chessboard\n\nI have a small Youtube series explaining how this model works: [Finding Chessboards with U-Net ML Models - Decoding Chessboards | Part 4](https://youtu.be/BVt12vzp_iM?si=SfXGMvcKfdSI8SZ3)\n\n* INPUT 128x128x3\n* A series of double convolutions and max pool steps in the encode phase, then the reverse back up the decode phase, with filter sizes [16, 32, 64, 128, 256]\n* OUTPUT 128x128x5\n\n```\nModel: \"Unetpp_16_32_64_128_256\"\n\n==================================================================================================\nTotal params: 555509 (2.12 MB)\nTrainable params: 553845 (2.11 MB)\nNon-trainable params: 1664 (6.50 KB)\n__________________________________________________________________________________________________\n```\n\nThe model itself is a U-Net++ architecture (U-Net with skip/merge connections from all the layers back up) based off of https://arxiv.org/abs/1807.10165 \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felucidation%2Fchessdetect-tfjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felucidation%2Fchessdetect-tfjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felucidation%2Fchessdetect-tfjs/lists"}