{"id":16334340,"url":"https://github.com/junaire/brief","last_synced_at":"2025-05-16T03:36:48.636Z","repository":{"id":231861579,"uuid":"777159984","full_name":"junaire/BRIEF","owner":"junaire","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-24T13:42:35.000Z","size":5797,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-26T16:42:39.823Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/junaire.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-25T10:18:05.000Z","updated_at":"2024-04-24T13:42:39.000Z","dependencies_parsed_at":"2024-04-09T08:32:01.655Z","dependency_job_id":null,"html_url":"https://github.com/junaire/BRIEF","commit_stats":null,"previous_names":["junaire/brief"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junaire%2FBRIEF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junaire%2FBRIEF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junaire%2FBRIEF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junaire%2FBRIEF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junaire","download_url":"https://codeload.github.com/junaire/BRIEF/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239321400,"owners_count":19619697,"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-10-10T23:38:09.282Z","updated_at":"2025-02-17T16:18:45.152Z","avatar_url":"https://github.com/junaire.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 算法步骤\n1. 对图像进行灰度处理\n2. 求图像的积分\n3. 对关键点进行筛选，剔除边界之外的点\n4. 测试像素点，得到描述子，伪代码如下：\n```\ndef pixelTest:\n    descriptor = []\n    for pt in keypoints:\n        arr = []\n        for 8pp in pps: [[8] x 32]\n            byte = 0\n            for pp in 8pp:\n                byte \u003c\u003c= 1\n                left, right = pp\n                img_y1 = pt.y + left.y + 0.5\n                img_x1 = pt.x + left.x + 0.5\n\n                img_y2 = pt.y + right.y + 0.5\n                img_x2 = pt.x + right.x + 0.5\n\n                bit = soothed_sum(img_y1, img_x1) \u003c soothed_sum(img_y2, img_x2)\n                byte += bit\n            arr.append(byte)\n        descriptor.append(arr)\n    return descriptor\n```\n\n并行点：\n第一层循环中，由于对每一个关键点的操作都是独立的，不存在数据依赖，所以可将其并行。每一个 CUDA 线程完成以下操作：\n```\n        idx = threadIdx.x + blockIdx.x * blockDim.x\n        pt = keypoints[idx]\n        arr = []\n        for 8pp in pps: [[8] x 32]\n            byte = 0\n            for pp in 8pp:\n                byte \u003c\u003c= 1\n                left, right = pp\n                img_y1 = pt.y + left.y + 0.5\n                img_x1 = pt.x + left.x + 0.5\n\n                img_y2 = pt.y + right.y + 0.5\n                img_x2 = pt.x + right.x + 0.5\n\n                bit = soothed_sum(img_y1, img_x1) \u003c soothed_sum(img_y2, img_x2)\n                byte += bit\n            arr[idx] = byte\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunaire%2Fbrief","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunaire%2Fbrief","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunaire%2Fbrief/lists"}