{"id":13799018,"url":"https://github.com/FirebaseExtended/MLKit-ARCore","last_synced_at":"2025-05-13T06:31:59.286Z","repository":{"id":66293091,"uuid":"156410254","full_name":"FirebaseExtended/MLKit-ARCore","owner":"FirebaseExtended","description":null,"archived":true,"fork":false,"pushed_at":"2020-08-10T13:57:48.000Z","size":15696,"stargazers_count":11,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-18T13:47:21.333Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FirebaseExtended.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2018-11-06T16:06:27.000Z","updated_at":"2023-05-02T14:15:17.000Z","dependencies_parsed_at":"2024-01-05T20:58:08.922Z","dependency_job_id":"3d2f80d2-f9c3-40c7-a4f9-12dbdc06a3c9","html_url":"https://github.com/FirebaseExtended/MLKit-ARCore","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/FirebaseExtended%2FMLKit-ARCore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirebaseExtended%2FMLKit-ARCore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirebaseExtended%2FMLKit-ARCore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirebaseExtended%2FMLKit-ARCore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FirebaseExtended","download_url":"https://codeload.github.com/FirebaseExtended/MLKit-ARCore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253889052,"owners_count":21979560,"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":[],"created_at":"2024-08-04T00:00:57.885Z","updated_at":"2025-05-13T06:31:58.987Z","avatar_url":"https://github.com/FirebaseExtended.png","language":"Swift","readme":"# MLKit-ARCore\nThis simple project detects objects using Firebase ML Kit and tags them in with 3D labels in Augmented Reality. Using ARCore and Firebase RTDB, it also shares the labels between phones. This serves as a multiplayer image labeling game.\n\nBased on: [CoreML-in-ARKit](https://github.com/hanleyweng/CoreML-in-ARKit)\n\n![Demo gif](https://media.giphy.com/media/5dUxUy8VxfAfwJSD6I/giphy.gif)\n\n[Demo Video](https://photos.app.goo.gl/RWdBvMcn2ASmkWaPA)\n\nLanguage: Swift 4.0\n\nContent Technology: SceneKit, Firebase ML Kit, ARCore, RTDB \n\nNote: SceneKit can achieve a 60 FPS on iPhone7+ - though when it gets hot, it'll drop to 30 FPS.\n\n## Status\n\n![Status: Archived](https://img.shields.io/badge/Status-Archived-red)\n\nThis sample is no longer actively maintained and is left here for reference only.\n\n## Footnotes\n\n- SceneKit Text Labels are expensive to render. Too many polygons (too much text, smoothness, characters) - can cause crashes. In future, SpriteKit would be more efficient for text-labels.\n\n- Whilst ARKit's FPS , is displayed - ML Kit's speed is not. However, it does appear sufficiently fast for real-time ARKit applications.\n\n- Placement of the label is simply determined by the raycast screen centre-point to a ARKit feature-point. This could be altered for more stable placement.\n\n## Building Blocks (Overview)\n\n### Get ML Kit running in real time in ARKit\n\n- What we do differently here is we're using ARKit's ARFrame as the image to be fed into ML Kit.\n\n```\nlet pixbuff : CVPixelBuffer? = (sceneView.session.currentFrame?.capturedImage)\n```\n\n- We also use Threading to continuously run requests to ML Kit in realtime, and without disturbing ARKit / SceneView\n\n```\nlet dispatchQueueML = DispatchQueue(label: \"dispatchqueueml\")\n...\nloopMLKitUpdate() // on viewLoad\n...\nfunc loopMLKitUpdate() {\n    dispatchQueueML.async {\n        // 1. Run Update.\n        self.updateMLKit()\n        // 2. Loop this function.\n        self.loopMLKitUpdate()\n    }\n}\n```\n\n### Add 3D Text\n\n- Add a Tap Gesture.\n- On Tap. Get the raycast centre point, translating it to appropriate coordinates.\n- Render 3D text at that location. Use the most likely object.\n","funding_links":[],"categories":["모바일"],"sub_categories":["iOS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFirebaseExtended%2FMLKit-ARCore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFirebaseExtended%2FMLKit-ARCore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFirebaseExtended%2FMLKit-ARCore/lists"}