{"id":95224,"date":"2026-08-16T14:24:01","date_gmt":"2026-08-16T06:24:01","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/95224.html"},"modified":"2026-08-16T14:24:01","modified_gmt":"2026-08-16T06:24:01","slug":"%e5%9b%be%e5%83%8f%e9%85%8d%e5%87%86%e6%96%b9%e6%b3%95%e5%85%a8%e6%a2%b3%e7%90%86%ef%bc%9a%e4%bc%a0%e7%bb%9f%e7%89%b9%e5%be%81%e3%80%81%e7%81%b0%e5%ba%a6%e7%9b%b4%e6%8e%a5%e6%b3%95%e4%b8%8e%e6%b7%b1","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/95224.html","title":{"rendered":"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848"},"content":{"rendered":"<\/p>\n<p>\u56fe\u50cf\u914d\u51c6\u662f\u5c06\u628a\u540c\u4e00\u573a\u666f&#xff0c;\u4e0d\u540c\u65f6\u95f4\u3001\u4e0d\u540c\u89d2\u5ea6\u6216\u4e0d\u540c\u4f20\u611f\u5668\u4e0b\u83b7\u53d6\u7684\u591a\u5f20\u56fe\u50cf\u8fdb\u884c\u7a7a\u95f4\u5bf9\u9f50\u7684\u8fc7\u7a0b\u3002<\/p>\n<h2>\u4e00\u3001\u57fa\u4e8e\u7279\u5f81\u7684\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5<\/h2>\n<p>\u9996\u5148\u4ece\u5f85\u914d\u51c6\u56fe\u50cf\u4e2d\u63d0\u53d6\u56fe\u50cf\u4e2d\u7684\u5c40\u90e8\u663e\u8457\u7279\u5f81&#xff08;\u89d2\u70b9\u3001\u8fb9\u7f18\u3001\u8f6e\u5ed3\u3001\u5c40\u90e8\u7279\u5f81\u70b9\u7b49&#xff09;&#xff0c;\u5e76\u4e3a\u5176\u8ba1\u7b97\u63cf\u8ff0\u5b50&#xff0c;\u968f\u540e\u901a\u8fc7\u63cf\u8ff0\u5b50\u7684\u76f8\u4f3c\u5ea6\u5339\u914d\u6765\u5efa\u7acb\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u5bf9\u5e94\u5173\u7cfb&#xff0c;\u6700\u540e\u901a\u8fc7\u51e0\u4f55\u53d8\u6362\u5b9e\u73b0\u4e24\u5e45\u56fe\u50cf\u7684\u5bf9\u9f50\u914d\u51c6\u3002\u57fa\u4e8e\u7279\u5f81\u7684\u914d\u51c6&#xff0c;\u4f9d\u8d56\u7684\u662f\u56fe\u50cf \u201c\u56fa\u6709\u3001\u7a33\u5b9a\u7684\u7279\u5f81\u201d&#xff0c;\u800c\u975e\u6574\u5e45\u56fe\u50cf\u7684\u7070\u5ea6\u6216\u6574\u4f53\u5f62\u6001\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;<\/p>\n<p>1. \u7279\u5f81\u70b9\u6570\u91cf\u5c11&#xff0c;\u8ba1\u7b97\u91cf\u8f83\u4f4e&#xff0c;\u914d\u51c6\u901f\u5ea6\u5feb&#xff0c;\u9002\u5408\u5b9e\u65f6\u7cfb\u7edf\u4e0e\u5d4c\u5165\u5f0f\u8bbe\u5907\u3002<\/p>\n<p>2. \u5bf9\u65cb\u8f6c\u3001\u7f29\u653e\u3001\u5149\u7167\u53d8\u5316\u53ca\u90e8\u5206\u906e\u6321\u5177\u6709\u8f83\u5f3a\u9c81\u68d2\u6027\u3002<\/p>\n<p>3. \u53ef\u7ed3\u5408 SIFT\u3001SURF\u3001ORB\u3001AKAZE \u7b49\u591a\u79cd\u7279\u5f81&#xff0c;\u9002\u5e94\u4e0d\u540c\u573a\u666f\u9700\u6c42\u3002<\/p>\n<p>4. \u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff08;\u5982 ORB\u3001BRIEF\u3001BRISK&#xff09;\u5185\u5b58\u5360\u7528\u5c0f&#xff0c;\u5339\u914d\u6548\u7387\u9ad8\u3002<\/p>\n<p>5. \u80fd\u901a\u8fc7 RANSAC \u7b49\u65b9\u6cd5\u5254\u9664\u8bef\u5339\u914d&#xff0c;\u63d0\u9ad8\u6574\u4f53\u914d\u51c6\u7a33\u5b9a\u6027\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;<\/p>\n<p>1. \u5728\u5f31\u7eb9\u7406\u3001\u91cd\u590d\u7eb9\u7406\u6216\u5927\u9762\u79ef\u5e73\u5766\u533a\u57df\u4e2d&#xff0c;\u7279\u5f81\u70b9\u6570\u91cf\u4e0d\u8db3&#xff0c;\u5bb9\u6613\u5339\u914d\u5931\u8d25\u3002<\/p>\n<p>2. \u7279\u5f81\u63d0\u53d6\u3001\u63cf\u8ff0\u4e0e\u5339\u914d\u6d41\u7a0b\u8f83\u590d\u6742&#xff0c;\u53c2\u6570\u8f83\u591a\u3002<\/p>\n<p>3. \u7279\u5f81\u5339\u914d\u9636\u6bb5\u53ef\u80fd\u5b58\u5728\u8bef\u5339\u914d&#xff0c;\u9700\u8981\u989d\u5916\u51e0\u4f55\u4e00\u81f4\u6027\u7ea6\u675f\u8fdb\u884c\u7b5b\u9009\u3002<\/p>\n<p>4. \u5bf9\u4e25\u91cd\u6a21\u7cca\u3001\u4f4e\u5206\u8fa8\u7387\u6216\u5267\u70c8\u5149\u7167\u53d8\u5316\u573a\u666f\u654f\u611f\u3002<\/p>\n<p>5. \u5f53\u56fe\u50cf\u95f4\u89c6\u89d2\u53d8\u5316\u8fc7\u5927\u6216\u975e\u521a\u6027\u5f62\u53d8\u660e\u663e\u65f6&#xff0c;\u914d\u51c6\u7cbe\u5ea6\u4f1a\u4e0b\u964d\u3002<\/p>\n<p>\u9002\u7528\u573a\u666f&#xff1a;<\/p>\n<p>1. \u6700\u901a\u7528\u3001\u6700\u7075\u6d3b\u7684\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5&#xff0c;\u53ef\u5904\u7406\u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u7f29\u653e\u3001\u4eff\u5c04\u3001\u900f\u89c6\u7b49\u591a\u79cd\u51e0\u4f55\u53d8\u6362\u3002<\/p>\n<p>2. \u9002\u7528\u4e8e\u76ee\u6807\u8bc6\u522b\u3001\u5168\u666f\u62fc\u63a5\u3001SLAM\u3001\u89c6\u89c9\u91cc\u7a0b\u8ba1&#xff08;VO&#xff09;\u3001\u4e09\u7ef4\u91cd\u5efa\u7b49\u4efb\u52a1\u3002<\/p>\n<p>3. \u7279\u522b\u9002\u5408\u5b58\u5728\u5c3a\u5ea6\u53d8\u5316\u3001\u89c6\u89d2\u53d8\u5316\u53ca\u5c40\u90e8\u906e\u6321\u7684\u590d\u6742\u573a\u666f\u3002<\/p>\n<p>4. \u5e38\u7528\u4e8e\u5b9e\u65f6\u89c6\u89c9\u7cfb\u7edf&#xff0c;\u5982\u65e0\u4eba\u673a\u3001\u673a\u5668\u4eba\u3001AR\/VR \u4e0e\u79fb\u52a8\u7aef\u89c6\u89c9\u5e94\u7528\u3002<\/p>\n<p>\u63cf\u8ff0\u5b50\u548c\u5173\u952e\u70b9&#xff1a;<\/p>\n<p>\u63cf\u8ff0\u5b50&#xff08;Descriptor&#xff09;&#xff1a;\u672c\u8d28\u662f\u7528\u4e00\u4e2a\u5411\u91cf\u7f16\u7801\u5173\u952e\u70b9\u9644\u8fd1\u7684\u5c40\u90e8\u7eb9\u7406\u4fe1\u606f\u3002\u8ba9\u540c\u4e00\u7279\u5f81\u70b9\u5728\u4e0d\u540c\u56fe\u50cf\u4e2d\u7684\u63cf\u8ff0\u5c3d\u53ef\u80fd\u76f8\u4f3c&#xff0c;\u4e0d\u540c\u7279\u5f81\u70b9\u7684\u63cf\u8ff0\u5c3d\u53ef\u80fd\u4e0d\u540c&#xff0c;\u4ece\u800c\u5b9e\u73b0\u7279\u5f81\u5339\u914d\u3002<\/p>\n<p>\u5173\u952e\u70b9&#xff1a;\u5e94\u8be5\u6ee1\u8db3\u5c40\u90e8\u552f\u4e00\u3001\u7a33\u5b9a&#xff08;\u5173\u7167\u53d8\u5316\u540e\u4ecd\u5b58\u5728&#xff09;\u3001\u53ef\u91cd\u590d&#xff08;\u65cb\u8f6c\u7f29\u653e\u540e\u8fd8\u80fd\u68c0\u6d4b\u5230&#xff09;\u3001\u68af\u5ea6\u4e30\u5bcc&#xff08;\u4fbf\u4e8e\u63cf\u8ff0&#xff09;\u3002\u56e0\u6b64&#xff0c;\u8fb9\u7f18\u4e0d\u662f\u597d\u7279\u5f81&#xff08;\u6cbf\u8fb9\u7f18\u65b9\u5411\u65e0\u6cd5\u786e\u5b9a\u4f4d\u7f6e&#xff09;&#xff0c;\u89d2\u70b9\u624d\u662f\u597d\u7279\u5f81&#xff08;x\u3001y \u90fd\u552f\u4e00&#xff09;\u6240\u4ee5\u5173\u952e\u70b9\u68c0\u6d4b\u672c\u8d28\u90fd\u662f\u5728\u627e\u5c40\u90e8\u4e8c\u7ef4\u68af\u5ea6\u53d8\u5316\u90fd\u5f88\u5927\u7684\u70b9\u3002\u8fd9\u662fHarris\/Shi-Tomasi\/FAST\u80cc\u540e\u7684\u672c\u8d28\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"247\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062357-6a81577dee823.png\" width=\"259\" \/><\/p>\n<p>\u5b8c\u6574\u6d41\u7a0b&#xff1a;<\/p>\n<p>1.\u7279\u5f81\u63d0\u53d6\u4e0e\u63cf\u8ff0<\/p>\n<p>\u00a0&#8211; \u7b97\u6cd5&#xff08;\u5982SIFT&#xff09;\u9996\u5148\u5728\u56fe\u50cf\u4e2d\u5bfb\u627e\u5177\u6709\u5c3a\u5ea6\u548c\u65cb\u8f6c\u7a33\u5b9a\u6027\u7684\u5173\u952e\u70b9&#xff08;Keypoints&#xff09;&#xff0c;\u7136\u540e\u5728\u5176\u90bb\u57df\u5185\u8ba1\u7b97\u51fa\u9ad8\u7ef4\u5ea6\u7684\u7279\u5f81\u63cf\u8ff0\u5b50&#xff08;Descriptors&#xff09;&#xff0c;\u4f5c\u4e3a\u8be5\u533a\u57df\u7684\u201c\u6570\u5b57\u8eab\u4efd\u8bc1\u201d\u3002<\/p>\n<p>2.\u7279\u5f81\u5339\u914d\u4e0e\u9c81\u68d2\u51e0\u4f55\u7ea6\u675f<\/p>\n<p>\u00a0&#8211; \u5339\u914d&#xff1a;\u5229\u200b\u200b\u7528\u8ddd\u79bb\u8ddd\u79bb\u516c\u5f0f&#xff08;\u5982\u6b27\u6c0f\u8ddd\u79bb&#xff09;&#xff0c;\u4e3a\u56feA\u4e2d\u7684\u6bcf\u4e2a\u63cf\u8ff0\u5b50\u5728\u56feB\u4e2d\u5bfb\u627e\u6700\u8fd1\u90bb&#xff0c;\u5efa\u7acb\u521d\u6b65\u7684\u5339\u914d\u3002<\/p>\n<p>\u00a0&#8211; \u51e0\u4f55\u7ea6\u675f\u7eaf\u63d0&#xff1a;\u521d\u59cb\u5339\u914d\u4e2d\u901a\u5e38\u5305\u542b\u5927\u91cf\u7684\u8bef\u5339\u914d&#xff08;\u5f02\u5e38\u503c\/\u5f02\u5e38\u503c&#xff09;\u3002\u6b64\u65f6\u9700\u8981\u5f15\u5165\u51e0\u4f55\u7ea6\u675f&#xff0c;\u901a\u8fc7\u7ed3\u5408RANSAC&#xff08;\u968f\u673a\u566a\u58f0\u4e00\u81f4&#xff09;\u7b49\u9c81\u68d2\u6027\u4f30\u8ba1\u7b97\u6cd5&#xff0c;\u5728\u8fed\u4ee3\u4e2d\u8bc6\u522b\u5e76\u5254\u9664\u9519\u8bef\u7684\u5339\u914d\u5bf9&#xff0c;\u53ea\u4fdd\u7559\u7b26\u5408\u540c\u4e00\u51e0\u4f55\u89c4\u5f8b\u7684\u6b63\u786e\u5339\u914d\u70b9&#xff08;\u5185\u70b9\/\u5185\u70b9&#xff09;\u3002<\/p>\n<p>3.\u51e0\u4f55\u6a21\u578b\u4f30\u8ba1\u548c\u7a7a\u95f4\u53d8\u6362<\/p>\n<p>\u00a0&#8211; \u77e9\u9635\u521d\u59cb\u5316&#xff1a;\u5229\u7528\u9636\u6bb5\u4e8c\u7b5b\u9009\u51fa\u7684\u9ad8\u8d28\u91cf\u6b63\u786e\u5339\u914d\u70b9\u5bf9&#xff0c;\u91c7\u7528\u6700\u5c0f\u4e8c\u4e58\u6cd5\u7b49\u6570\u5b66\u624b\u6bb5&#xff0c;\u6784\u9020\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u51e0\u4f55\u53d8\u6362\u77e9\u9635&#xff08;\u5982\u5355\u5e94\u6027\u77e9\u9635 H \u6216\u4eff\u5c04\u53d8\u6362\u77e9\u9635&#xff09;\u3002<\/p>\n<p>\u00a0&#8211; \u56fe\u50cf\u91cd\u6295\u5f71&#xff1a;\u501f\u52a9\u8ba1\u7b97\u51fa\u7684\u53d8\u6362\u77e9\u9635&#xff0c;\u5bf9\u5176\u4e2d\u4e00\u5e45\u56fe\u50cf\u8fdb\u884c\u7a7a\u95f4\u5750\u6807\u91cd\u6295\u5f71&#xff08;Warping&#xff09;\u4e0e\u50cf\u7d20\u63d2\u503c&#xff0c;\u8bbe\u7f6e\u5728\u540c\u4e00\u5750\u6807\u7cfb\u4e0b\u4e0e\u53e6\u4e00\u5e45\u56fe\u50cf\u5bf9\u9f50\u3002<\/p>\n<h3>1. \u7279\u5f81\u65b9\u6cd5<\/h3>\n<h4>1.1 \u57fa\u4e8e\u70b9\u7279\u5f81\u7684\u65b9\u6cd5<\/h4>\n<h5>1.1\u00a0SIFT&#xff08;Scale-Invariant Feature Transform&#xff09;<\/h5>\n<p>\u5c3a\u5ea6\u4e0d\u53d8\u7279\u5f81\u53d8\u6362&#xff0c;\u6838\u5fc3\u601d\u60f3\u662f\u5728\u56fe\u50cf\u7684\u5c3a\u5ea6\u7a7a\u95f4\u4e2d\u68c0\u6d4b\u7a33\u5b9a\u7684\u5173\u952e\u70b9&#xff0c;\u5e76\u4e3a\u6bcf\u4e2a\u5173\u952e\u70b9\u751f\u6210\u72ec\u7279\u7684\u63cf\u8ff0\u7b26\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u5c3a\u5ea6\u4e0d\u53d8\u6027&#xff0c;\u57fa\u4e8e Gaussian Scale Space&#xff08;\u9ad8\u65af\u5c3a\u5ea6\u7a7a\u95f4&#xff09;\u4e0e DoG&#xff08;Difference of Gaussian&#xff09;\u6781\u503c\u68c0\u6d4b\u30022.\u65cb\u8f6c\u4e0d\u53d8\u6027&#xff0c;\u901a\u8fc7\u4e3b\u65b9\u5411\u5206\u914d\u5b9e\u73b0\u63cf\u8ff0\u5b50\u65b9\u5411\u5f52\u4e00\u5316\u30023.\u5bf9\u5149\u7167\u53d8\u5316\u5177\u6709\u8f83\u5f3a\u9c81\u68d2\u6027&#xff0c;\u63cf\u8ff0\u5b50\u57fa\u4e8e\u5c40\u90e8\u68af\u5ea6\u65b9\u5411\u7edf\u8ba1&#xff0c;\u5e76\u8fdb\u884c\u5f52\u4e00\u5316\u5904\u7406\u30024.\u7279\u5f81\u533a\u5206\u6027\u5f3a&#xff0c;\u4f7f\u7528 128 \u7ef4\u68af\u5ea6\u65b9\u5411\u76f4\u65b9\u56fe\u63cf\u8ff0\u5c40\u90e8\u7ed3\u6784\u30025.\u652f\u6301\u4e9a\u50cf\u7d20\u7ea7\u5173\u952e\u70b9\u5b9a\u4f4d&#xff0c;\u4f7f\u7528 Taylor Expansion \u5bf9 DoG \u6781\u503c\u70b9\u8fdb\u884c\u7cbe\u7ec6\u5316\u62df\u5408\u30026.\u5bf9\u590d\u6742\u573a\u666f\u9c81\u68d2\u6027\u8f83\u5f3a&#xff0c;\u5c3a\u5ea6\u7a7a\u95f4\u3001\u65b9\u5411\u5f52\u4e00\u5316\u4e0e\u5c40\u90e8\u68af\u5ea6\u7edf\u8ba1\u5171\u540c\u63d0\u5347\u4e86\u6297\u566a\u58f0\u3001\u906e\u6321\u4e0e\u80cc\u666f\u5e72\u6270\u80fd\u529b\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1. \u8ba1\u7b97\u91cf\u8f83\u5927&#xff0c;\u9700\u8981\u6784\u5efa Gaussian Pyramid \/ DoG Pyramid \u5e76\u8fdb\u884c\u591a\u5c3a\u5ea6\u68af\u5ea6\u7edf\u8ba1\u30022. \u5185\u5b58\u5360\u7528\u8f83\u9ad8&#xff0c;\u63cf\u8ff0\u5b50\u901a\u5e38\u4e3a 128 \u7ef4\u6d6e\u70b9\u5411\u91cf\u30023. \u5339\u914d\u8ba1\u7b97\u590d\u6742\u5ea6\u8f83\u9ad8&#xff0c;\u901a\u5e38\u91c7\u7528\u6b27\u6c0f\u8ddd\u79bb&#xff08;L2 distance&#xff09;\u8fdb\u884c\u6d6e\u70b9\u63cf\u8ff0\u5b50\u5339\u914d\u30024. \u5b9e\u65f6\u6027\u6709\u9650&#xff0c;\u9ad8\u5206\u8fa8\u7387\u56fe\u50cf\u4e0e\u5927\u91cf\u5173\u952e\u70b9\u573a\u666f\u4e0b\u8ba1\u7b97\u5f00\u9500\u660e\u663e\u589e\u52a0\u30025. \u5bf9\u5f3a\u900f\u89c6\u7578\u53d8\u4e0e\u5927\u9762\u79ef\u52a8\u6001\u906e\u6321\u9c81\u68d2\u6027\u6709\u9650&#xff0c;\u672c\u8d28\u4ecd\u57fa\u4e8e\u5c40\u90e8\u8fd1\u4f3c\u4eff\u5c04\u4e0e\u9759\u6001\u573a\u666f\u5047\u8bbe\u3002<\/p>\n<p>\u9002\u7528\u573a\u666f&#xff1a;\u9ad8\u7cbe\u5ea6\u56fe\u50cf\u914d\u51c6\u3001\u4e09\u7ef4\u91cd\u5efa\u3001\u590d\u6742\u573a\u666f\u62fc\u63a5&#xff0c;\u9002\u5408\u5bf9\u7cbe\u5ea6\u8981\u6c42\u9ad8\u3001\u5bf9\u5b9e\u65f6\u6027\u4e0d\u654f\u611f\u7684\u4efb\u52a1\u3002<\/p>\n<p>&#xff08;2&#xff09;\u4e3b\u8981\u6b65\u9aa4<\/p>\n<p>1.\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u68c0\u6d4b&#xff1a;\u901a\u8fc7\u9ad8\u65af\u5dee\u5206&#xff08;DoG&#xff09;\u51fd\u6570\u5bfb\u627e\u5728\u4e0d\u540c\u5c3a\u5ea6\u4e0b\u7a33\u5b9a\u7684\u7279\u5f81\u70b9\u3002<\/p>\n<p>2.\u5173\u952e\u70b9\u5b9a\u4f4d&#xff1a;\u53bb\u9664\u4f4e\u5bf9\u6bd4\u5ea6\u70b9\u4e0e\u8fb9\u7f18\u54cd\u5e94&#xff0c;\u786e\u4fdd\u7279\u5f81\u7a33\u5b9a\u6027\u3002<\/p>\n<p>3.\u65b9\u5411\u5206\u914d&#xff1a;\u57fa\u4e8e\u68af\u5ea6\u65b9\u5411\u76f4\u65b9\u56fe&#xff0c;\u4e3a\u5173\u952e\u70b9\u8d4b\u4e88\u4e3b\u65b9\u5411&#xff0c;\u5b9e\u73b0\u65cb\u8f6c\u4e0d\u53d8\u6027\u3002<\/p>\n<p>4.\u7279\u5f81\u63cf\u8ff0&#xff1a;\u5229\u7528\u5c40\u90e8\u68af\u5ea6\u5206\u5e03\u751f\u6210 128 \u7ef4\u7279\u5f81\u5411\u91cf\u3002<\/p>\n<p>&#xff08;3&#xff09;\u5173\u952e\u70b9\u68c0\u6d4b<\/p>\n<p>1.\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u68c0\u6d4b<\/p>\n<p>\u00a0&#8211; \u56fe\u50cf\u91d1\u5b57\u5854&#xff0c;SIFT\u628a\u539f\u56fe\u4e0d\u65ad\u7f29\u5c0f\u5c3a\u5bf8&#xff0c;\u5f97\u5230\u4e0d\u540c\u5206\u8fa8\u7387\u7684\u526f\u672c&#xff0c;\u7ec4\u6210\u4e00\u4e2a \u201c\u91d1\u5b57\u5854\u201d\u3002<\/p>\n<p>\u00a0&#8211; \u9ad8\u65af\u6a21\u7cca\u5bf9\u91d1\u5b57\u5854\u7684\u6bcf\u4e00\u5c42\u6574\u56fe&#xff0c;\u7528\u4e0d\u540c\u7684\u9ad8\u65af\u6807\u51c6\u5dee \u03c3 \u505a\u6a21\u7cca&#xff0c;\u5f97\u5230\u4e00\u7ec4 \u201c\u5c3a\u5bf8\u76f8\u540c\u3001\u6a21\u7cca\u7a0b\u5ea6\u4e0d\u540c\u201d \u7684\u56fe\u50cf\u3002<\/p>\n<p>\u00a0&#8211; \u9ad8\u65af\u5dee\u5206&#xff08;DoG&#xff09;\u628a\u540c\u4e00\u5c42\u91cc\u3001\u76f8\u90bb\u7684\u4e24\u5f20\u9ad8\u65af\u6a21\u7cca\u56fe\u50cf\u76f8\u51cf&#xff0c;\u5f97\u5230 DoG \u56fe\u50cf&#xff0c;\u7a81\u51fa\u90a3\u4e9b \u201c\u5bf9\u6a21\u7cca\u53d8\u5316\u654f\u611f\u201d \u7684\u8fb9\u7f18\u548c\u89d2\u70b9&#xff0c;\u7136\u540e\u5728\u8fd9\u4e9b DoG \u56fe\u50cf\u91cc\u627e\u5c40\u90e8\u6781\u503c\u70b9\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"424\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062358-6a81577e0e510.png\" width=\"1070\" \/><\/p>\n<p>2.\u5173\u952e\u70b9\u5b9a\u4f4d<\/p>\n<p>\u5728 DoG \u91d1\u5b57\u5854\u4e2d&#xff0c;\u6bcf\u4e00\u4e2a\u50cf\u7d20\u70b9\u8981\u4e0e\u5b83\u540c\u5c42\u5468\u56f4\u7684 8 \u4e2a\u90bb\u57df\u50cf\u7d20&#xff0c;\u4ee5\u53ca\u4e0a\u4e0b\u76f8\u90bb\u4e24\u5c42\u5bf9\u5e94\u4f4d\u7f6e\u7684\u00a02 * 9 &#061; 18\u00a0\u4e2a\u50cf\u7d20&#xff0c;\u603b\u5171 26 \u4e2a\u50cf\u7d20\u8fdb\u884c\u5927\u5c0f\u6bd4\u8f83\u3002\u53ea\u6709\u5f53\u8be5\u70b9\u662f\u8fd9 27 \u4e2a\u70b9\u4e2d\u7684\u6700\u5927\u503c\u6216\u6700\u5c0f\u503c\u65f6&#xff0c;\u624d\u88ab\u521d\u6b65\u9009\u4e3a\u5019\u9009\u5173\u952e\u70b9\u3002\u672c\u8d28\u627e\u5230\u662f\u5c3a\u5ea6\u7a7a\u95f4\u7a33\u5b9a\u7684\u6781\u503c\u800c\u4e0d\u662f\u666e\u901a\u89d2\u70b9&#xff0c;\u56e0\u4e3a\u4e0d\u540c\u5927\u5c0f\u7684\u7269\u4f53\u5728\u4e0d\u540c\u03c3\u4e0b\u54cd\u5e94\u6700\u5927&#xff0c;\u627e\u5230\u7684\u7279\u5f81\u70b9\u90fd\u4f1a\u5e26\u6709\u6700\u4f73\u5c3a\u5ea6&#xff0c;\u540e\u7eed\u63cf\u8ff0\u5b50\u90fd\u5728\u5bf9\u5e94\u5c3a\u5ea6\u4e0b\u8ba1\u7b97&#xff0c;\u6240\u4ee5\u5c3a\u5ea6\u4e0d\u53d8\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"242\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062358-6a81577e7aa9f.png\" width=\"289\" \/><\/p>\n<p>3.\u65b9\u5411\u5206\u914d<\/p>\n<p>SIFT\u4f1a\u7edf\u8ba1\u5173\u952e\u70b9\u9886\u57df\u7684\u68af\u5ea6\u65b9\u5411\u76f4\u65b9\u56fe&#xff0c;\u4ee5\u5173\u952e\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u53d6\u4e00\u4e2a 16\u00d716 \u7684\u90bb\u57df&#xff0c;\u5c06360\u00b0\u65b9\u5411\u5212\u5206\u4e3a36\u4e2abin&#xff08;\u6bcf\u4e2abin 10\u00b0&#xff09;&#xff0c;\u90bb\u57df\u5185\u6bcf\u4e2a\u50cf\u7d20\u7684\u68af\u5ea6\u5e45\u503c\u4f1a\u6309\u65b9\u5411\u7d2f\u52a0\u5230\u5bf9\u5e94\u7684bin\u4e2d&#xff0c;\u76f4\u65b9\u56fe\u4e2d\u6700\u9ad8\u7684\u5cf0\u503c\u5c31\u662f\u8be5\u5173\u952e\u70b9\u7684\u4e3b\u65b9\u5411\u3002\u540e\u7eed\u63cf\u8ff0\u5b50\u8ba1\u7b97\u90fd\u4f1a\u5bf9\u9f50\u8fd9\u4e2a\u65b9\u5411&#xff0c;\u56e0\u6b64&#xff0c;\u5373\u4f7f\u56fe\u50cf\u65cb\u8f6c&#xff0c;\u63cf\u8ff0\u5b50\u4ecd\u4fdd\u6301\u4e00\u81f4\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"501\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062358-6a81577e8b382.png\" width=\"1009\" \/><\/p>\n<p>SIFT \u5173\u952e\u70b9\u662f\u6591\u70b9 \/ \u8fb9\u7f18\u578b\u5173\u952e\u70b9&#xff0c;\u7528\u4e00\u4e2a\u5e26\u6709\u65b9\u5411\u7bad\u5934\u7684\u5706\u6765\u8868\u793a\u3002\u5b83\u5305\u542b\u4e09\u4e2a\u6838\u5fc3\u56fe\u5f62\u51e0\u4f55\u4fe1\u606f&#xff1a;1.\u5706\u5fc3\u8868\u793a\u7279\u5f81\u70b9\u4f4d\u7f6e\u30022.\u5706\u7684\u534a\u5f84\u4ee3\u8868\u8be5\u70b9\u7684\u5c3a\u5ea6&#xff08;Scale&#xff09;\u3002\u5706\u5708\u8d8a\u5927&#xff0c;\u8bf4\u660e\u8fd9\u4e2a\u7279\u5f81\u662f\u5728\u9ad8\u65af\u91d1\u5b57\u5854\u66f4\u9ad8\u5c42&#xff08;\u66f4\u6a21\u7cca\u3001\u66f4\u5b8f\u89c2\u7684\u5c3a\u5ea6&#xff09;\u88ab\u68c0\u6d4b\u51fa\u6765\u7684\u3002\u5728\u5927\u5706\u91cc\u7684\u7279\u5f81&#xff0c;\u5373\u4f7f\u56fe\u50cf\u88ab\u7f29\u5c0f&#xff0c;\u5b83\u4f9d\u7136\u80fd\u88ab\u627e\u5230\u30023.\u7bad\u5934\u7684\u65b9\u5411\u4ee3\u8868\u8be5\u7279\u5f81\u70b9\u7684\u4e3b\u65b9\u5411\u3002\u8fd9\u662f\u5c40\u90e8\u90bb\u57df\u5185\u68af\u5ea6\u80fd\u91cf\u6700\u5f3a\u7684\u65b9\u5411\u3002\u5f53\u56fe\u50cf\u6574\u4f53\u65cb\u8f6c\u65f6&#xff0c;\u8fd9\u4e2a\u7bad\u5934\u4e5f\u4f1a\u8ddf\u7740\u65cb\u8f6c\u76f8\u540c\u7684\u89d2\u5ea6\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"340\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062358-6a81577ed3d29.png\" width=\"820\" \/><\/p>\n<p>&#xff08;4&#xff09;\u63cf\u8ff0\u5b50\u8ba1\u7b97<\/p>\n<p>SIFT\u63cf\u8ff0\u5b50\u672c\u8d28\u662f\u7edf\u8ba1\u5c40\u90e8\u68af\u5ea6\u7ed3\u6784&#xff1a;\u4e3b\u65b9\u5411\u786e\u5b9a\u540e&#xff0c;\u540e\u7eed\u751f\u6210\u63cf\u8ff0\u5b50\u65f6&#xff0c;\u4f1a\u5c06\u5750\u6807\u8f74\u65cb\u8f6c&#xff0c;\u4f7f\u5f97\u5173\u952e\u70b9\u7684\u4e3b\u65b9\u5411\u65cb\u8f6c\u81f3\u6b63\u4e0a\u65b9&#xff08;0\u5ea6&#xff09;\u3002\u751f\u6210 128 \u7ef4\u63cf\u8ff0\u5b50\u65f6&#xff0c;\u4f1a\u518d\u505a\u4e00\u6b21\u65b9\u5411\u76f4\u65b9\u56fe&#xff0c;\u628a 16\u00d716 \u7684\u90bb\u57df\u5206\u6210 4\u00d74 \u4e2a\u5b50\u533a\u57df&#xff08;\u6bcf\u4e2a\u5b50\u533a\u57df\u5927\u5c0f\u4e3a 4 * 4 \u50cf\u7d20&#xff09;\u3002\u5728\u6bcf\u4e2a\u5b50\u533a\u57df\u5185&#xff0c;\u7edf\u8ba1 8 \u4e2a\u65b9\u5411\u7684\u68af\u5ea6\u76f4\u65b9\u56fe&#xff08;\u6bcf 45 \u5ea6\u4e00\u4e2a\u67f1&#xff09;&#xff0c;4\u00d74\u00d78 &#061; 128 \u7ef4&#xff0c;\u5c06\u8fd916\u4e2a8\u7ef4\u76f4\u65b9\u56fe\u6309\u987a\u5e8f\u62fc\u63a5&#xff0c;\u5f62\u6210 128 \u7ef4\u7279\u5f81\u5411\u91cf\u3002<\/p>\n<p>\u5f52\u4e00\u5316\u5904\u7406&#xff1a;\u4e3a\u4e86\u6d88\u9664\u7ebf\u6027\u5149\u7167\u53d8\u5316&#xff08;\u5982\u56fe\u50cf\u6574\u4f53\u53d8\u4eae\u6216\u53d8\u6697&#xff09;\u7684\u5f71\u54cd&#xff0c;\u5bf9 128 \u7ef4\u5411\u91cf\u8fdb\u884c L_2 \u8303\u6570\u5f52\u4e00\u5316\u3002\u968f\u540e\u5c06\u5411\u91cf\u4e2d\u5927\u4e8e 0.2 \u7684\u503c\u622a\u65ad\u4e3a 0.2&#xff0c;\u5e76\u518d\u6b21\u8fdb\u884c\u5f52\u4e00\u5316&#xff0c;\u4ee5\u63d0\u9ad8\u5bf9\u975e\u7ebf\u6027\u5149\u7167\u53d8\u5316\u7684\u9c81\u68d2\u6027\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"189\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577f10b6b.png\" width=\"226\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"183\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577f306cd.png\" width=\"194\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"257\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577f511c9.png\" width=\"183\" \/><\/p>\n<p>\u63cf\u8ff0\u5b50\u7684\u56fe\u5f62\u8868\u8fbe&#xff1a;8 \u65b9\u5411\u7279\u5f81\u7f57\u76d8\u3002\u5982\u4e0a\u56fe\u6240\u793a&#xff0c;\u5728\u6bcf\u4e00\u4e2a 4 * 4 \u7684\u5b50\u533a\u57df\u5185\u90e8&#xff0c;\u7b97\u6cd5\u5c06\u6240\u6709\u50cf\u7d20\u7684\u68af\u5ea6\u5f52\u7eb3\u5230 8 \u4e2a\u65b9\u5411\u4e0a\u3002\u5728\u89c6\u89c9\u56fe\u5f62\u4e0a&#xff0c;\u8fd9\u8868\u73b0\u4e3a\u4e00\u4e2a\u7531 8 \u6839\u7bad\u5934\u7ec4\u6210\u7684\u201c\u7f57\u76d8 \/ \u523a\u732c\u56fe\u201d&#xff1a;<\/p>\n<p>\u00a0&#8211; \u7bad\u5934\u7684\u6307\u5411&#xff1a;\u4ee3\u8868\u68af\u5ea6\u7684\u65b9\u5411&#xff08;\u6bcf 45 \u5ea6\u4e00\u4e2a\u65b9\u5411&#xff0c;\u5171 8 \u4e2a\u65b9\u5411&#xff09;\u3002<\/p>\n<p>\u00a0&#8211; \u7bad\u5934\u7684\u957f\u5ea6&#xff1a;\u4ee3\u8868\u8be5\u65b9\u5411\u4e0a\u6240\u6709\u50cf\u7d20\u68af\u5ea6\u5e45\u503c\u7684\u7d2f\u52a0\u548c&#xff08;\u7ecf\u8fc7\u9ad8\u65af\u7a97\u53e3\u52a0\u6743&#xff09;\u3002\u7bad\u5934\u8d8a\u957f&#xff0c;\u8bf4\u660e\u56fe\u50cf\u5728\u8fd9\u4e2a\u65b9\u5411\u4e0a\u7684\u8fb9\u7f18\/\u7eb9\u7406\u7279\u5f81\u8d8a\u660e\u663e\u3002<\/p>\n<p><img decoding=\"async\" alt=\"\\\\mathbf{v} = \\\\begin{bmatrix} v_1 \\\\\\\\ v_2 \\\\\\\\ \\\\vdots \\\\\\\\ v_{128} \\\\end{bmatrix} \\\\in \\\\mathbb{R}^{128}\" class=\"mathcode\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577f6f432.png\" \/><\/p>\n<p>\u76f8\u5173\u6982\u5ff5&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"256\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577f7c124.png\" width=\"275\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"246\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577f9222a.png\" width=\"293\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"267\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577fa7d82.png\" width=\"319\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"282\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577fc5407.png\" width=\"296\" \/><\/p>\n<p>&#xff08;5&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>\u5c3a\u5ea6&#xff1a;\u770b\u4e1c\u897f\u7684\u8fdc\u8fd1\/\u5206\u8fa8\u7387\u5927\u5c0f\u3002<\/p>\n<p>\u5c3a\u5ea6\u4e0d\u53d8\u6027&#xff1a;\u4e0d\u7ba1\u7269\u4f53\u53d8\u5927\u8fd8\u662f\u53d8\u5c0f&#xff0c;\u79bb\u5f97\u8fd1\u8fd8\u662f\u79bb\u5f97\u8fdc&#xff0c;\u7279\u5f81\u90fd\u80fd\u88ab\u68c0\u6d4b\u3001\u5339\u914d\u3002<\/p>\n<p>\u5c3a\u5ea6\u7a7a\u95f4&#xff1a;\u8981\u5b9e\u73b0\u5c3a\u5ea6\u4e0d\u53d8\u6027&#xff0c;\u4e0d\u80fd\u53ea\u5728\u539f\u56fe\u4e0a\u627e\u7279\u5f81&#xff0c;\u5fc5\u987b\u628a\u56fe\u7247\u505a\u6210\u4e00\u5806\u7531\u5927\u5230\u5c0f&#xff0c;\u9010\u5c42\u6a21\u7cca\u7f29\u5c0f\u7684\u56fe&#xff0c;\u751f\u6210\u591a\u5c3a\u5bf8\u91d1\u5b57\u5854\u56fe\u50cf\u96c6\u5408&#xff0c;\u8fd9\u6574\u5957\u56fe\u5c31\u53eb\u5c3a\u5ea6\u7a7a\u95f4\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u5c3a\u5ea6\u4e0d\u53d8&#xff1a;\u6784\u5efa\u9ad8\u65af\u5c3a\u5ea6\u7a7a\u95f4&#043;\u9ad8\u65af\u5dee\u5206\u91d1\u5b57\u5854DOG\u3002SIFT\u4e0d\u65ad\u505a\u7f29\u653e\u548c\u9ad8\u65af\u6a21\u7cca&#xff0c;\u6784\u9020\u591a\u5c3a\u5ea6\u56fe\u50cf\u91d1\u5b57\u5854&#xff0c;\u5728\u5c3a\u5ea6\u7a7a\u95f4\u4e2d\u6bcf\u4e00\u5c42\u5c3a\u5ea6\u90fd\u5355\u72ec\u627e\u6781\u503c\u70b9&#xff0c;\u4f7f\u5f97\u8fd9\u4e2a\u7279\u5f81\u5728\u67d0\u4e2a\u6700\u4f18\u5c3a\u5ea6\u4e0b\u54cd\u5e94\u6700\u5f3a&#xff0c;\u8fd9\u6837&#xff0c;\u4e0d\u7ba1\u7269\u4f53\u653e\u5927\u3001\u7f29\u5c0f\u3001\u79bb\u76f8\u673a\u8fdc\/\u8fd1&#xff0c;\u8be5\u5173\u952e\u70b9\u603b\u80fd\u88ab\u627e\u5230&#xff0c;\u4e0d\u53d7\u5c3a\u5ea6\u53d8\u5316\u7684\u5f71\u54cd\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u65cb\u8f6c\u4e0d\u53d8&#xff1a;SIFT\u7ef4\u6bcf\u4e2a\u5173\u952e\u70b9\u5206\u914d\u4e3b\u65b9\u5411&#xff0c;\u505a\u65b9\u5411\u5f52\u4e00\u5316\u3002\u5728\u5173\u952e\u70b9\u6240\u5728\u6700\u4f18\u5c3a\u5ea6\u5c42\u90bb\u57df\u8ba1\u7b97\u68af\u5ea6\u5e45\u503c\u548c\u68af\u5ea6\u65b9\u5411&#xff0c;\u505a\u68af\u5ea6\u65b9\u5411\u76f4\u65b9\u56fe&#xff0c;\u7edf\u8ba1\u90bb\u57df\u5185\u6240\u6709\u50cf\u7d20\u7684\u68af\u5ea6\u65b9\u5411&#xff0c;\u5cf0\u503c\u5c31\u662f\u5173\u952e\u70b9\u4e3b\u65b9\u5411&#xff0c;\u540e\u7eed\u751f\u6210\u63cf\u8ff0\u5b50\u65f6&#xff0c;\u5c06\u5c40\u90e8\u5750\u6807\u7cfb\u65cb\u8f6c\u5230\u4e3b\u65b9\u5411&#xff0c;\u6240\u4ee5\u5177\u5907\u65cb\u8f6c\u4e0d\u53d8\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48SIFT\u5fc5\u987b\u4f7f\u7528 Gaussian&#xff1a;\u56e0\u4e3aSIFT\u7684\u5c3a\u5ea6\u7a7a\u95f4\u7406\u8bba\u662f\u4e25\u683c\u5efa\u7acb\u5728\u9ad8\u65af\u5c3a\u5ea6\u7a7a\u95f4\u4e0a\u7684&#xff0c;Gaussian \u662f\u552f\u4e00\u6ee1\u8db3\u5c3a\u5ea6\u7a7a\u95f4\u7406\u8bba\u516c\u7406\u7684\u6838\u3002<\/p>\n<p>\u5377\u79ef\u6838&#xff1a;\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201c\u5c0f\u6a21\u677f\u201d&#xff0c;\u5377\u79ef\u6838\u4e2d\u7684\u503c\u5c31\u662f\u6743\u91cd&#xff0c;\u4f8b\u5982\u9ad8\u65af\u6ee4\u6ce2\u4e2d\u5fc3\u6743\u91cd\u5927&#xff0c;\u8bf4\u660e\u66f4\u76f8\u4fe1\u4e2d\u5fc3\u50cf\u7d20&#xff0c;\u4e0d\u540c\u7684\u5377\u79ef\u6838\u4ee3\u8868\u4e0d\u540c\u7684\u529f\u80fd\u3002\u4f8b\u5982&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"248\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577fd9c9e.png\" width=\"527\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"249\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062359-6a81577fed78a.png\" width=\"590\" \/><\/p>\n<p>\u5377\u79ef&#xff1a;\u662f\u56fe\u50cf\u5904\u7406\u3001\u4fe1\u53f7\u5904\u7406\u3001CNN\u3001SLAM\u3001VO \u4e2d\u6700\u6838\u5fc3\u7684\u8fd0\u7b97\u4e4b\u4e00\u3002\u672c\u8d28\u4e0a\u662f\u7528\u4e00\u4e2a\u5c0f\u7a97\u53e3&#xff08;\u5377\u79ef\u6838&#xff09;\u5728\u6570\u636e\u4e0a\u6ed1\u52a8&#xff0c;\u5e76\u5728\u6bcf\u4e2a\u4f4d\u7f6e\u505a\u5c40\u90e8\u52a0\u6743\u6c42\u548c\u3002\u5728\u56fe\u50cf\u5904\u7406\u4e2d&#xff0c;\u5b83\u7684\u4f5c\u7528\u901a\u5e38\u5305\u62ec\u5e73\u6ed1\u3001\u9510\u5316\u3001\u8fb9\u7f18\u68c0\u6d4b\u3001\u7279\u5f81\u63d0\u53d6\u3001\u6a21\u677f\u5339\u914d\u3001CNN\u7279\u5f81\u5b66\u4e60\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"257\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062400-6a8157800d004.png\" width=\"724\" \/><\/p>\n<p>\u5bf9\u5e94\u5143\u7d20\u76f8\u4e58&#xff1a;1\u00d71&#043;2\u00d70&#043;3\u00d71&#043;4\u00d70&#043;5\u00d71&#043;6\u00d70&#043;7\u00d71&#043;8\u00d70&#043;9\u00d71\u3002\u7ed3\u679c&#xff1a;1&#043;3&#043;5&#043;7&#043;9&#061;25&#xff0c;\u8f93\u51fa\u50cf\u7d20\u503c 25\u3002<\/p>\n<p>\u00a0&#8211; \u9ad8\u65af\u5377\u79ef&#xff1a;\u5e73\u6ed1\u964d\u566a\u3001\u6a21\u7cca\u56fe\u50cf&#xff0c;\u53bb\u6389\u6912\u76d0\u566a\u58f0&#xff08;\u7eaf\u767d\u4eae\u70b9\u3001\u7eaf\u9ed1\u9ed1\u70b9&#xff09;&#xff0c;\u9884\u5904\u7406\u7528\u3002<\/p>\n<p>\u00a0&#8211; Sobel \u5377\u79ef&#xff1a;\u63d0\u53d6\u8fb9\u7f18\u3001\u7b97\u68af\u5ea6&#xff0c;\u627e\u660e\u6697\u53d8\u5316\u8fb9\u754c\u3002<\/p>\n<p>\u00a0&#8211; \u5747\u503c\u5377\u79ef&#xff1a;\u7b80\u5355\u6a21\u7cca&#xff0c;\u5e73\u5747\u90bb\u57df\u50cf\u7d20\u3002<\/p>\n<p>\u00a0&#8211; \u62c9\u666e\u62c9\u65af\u5377\u79ef&#xff1a;\u8fb9\u7f18\u68c0\u6d4b &#043; \u9510\u5316&#xff0c;\u7a81\u51fa\u8f6e\u5ed3\u3002<\/p>\n<p>\u00a0&#8211; \u81ea\u5b9a\u4e49\u6838&#xff1a;\u6d6e\u96d5\u3001\u6d6e\u96d5\u3001\u8f6e\u5ed3\u3001\u949d\u5316\u3001\u63d0\u4eae\u3002<\/p>\n<p>\u9ad8\u65af\u5377\u79ef\u548c\u9ad8\u65af\u6a21\u7cca&#xff1a;\u672c\u8d28\u4e0a\u662f\u540c\u4e00\u4ef6\u4e8b&#xff0c;\u9ad8\u65af\u5377\u79ef\u5f3a\u8c03\u8ba1\u7b97\u8fc7\u7a0b&#xff0c;\u9ad8\u65af\u6a21\u7cca\u5f3a\u8c03\u6700\u7ec8\u6548\u679c&#xff0c;\u7528\u9ad8\u65af\u6838\u505a\u5377\u79ef\u5f97\u5230\u9ad8\u65af\u6a21\u7cca\u7684\u6548\u679c\u3002\u5377\u79ef\u4e4b\u540e&#xff1a;\u56fe\u50cf\u4f1a\u53d8\u5e73\u6ed1\u3001\u8fb9\u7f18\u4f1a\u53d8\u67d4\u548c\u3001\u9ad8\u9891\u4f1a\u88ab\u524a\u5f31&#xff0c;\u56e0\u6b64\u89c6\u89c9\u6548\u679c\u5c31\u662f\u201c\u6a21\u7cca\u201d\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"559\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062400-6a81578020fa5.png\" width=\"1024\" \/><\/p>\n<p>\u6b27\u5f0f\u8ddd\u79bb&#xff1a;\u7531\u4e8e\u63cf\u8ff0\u5b50\u662f 128 \u7ef4\u7684\u6d6e\u70b9\u6570\u5411\u91cf&#xff0c;\u4e14\u5df2\u7ecf\u8fc7\u5f52\u4e00\u5316&#xff08;\u6a21\u957f\u4e3a 1&#xff09;&#xff0c;\u8bc4\u4f30\u4e24\u4e2a\u63cf\u8ff0\u5b50\u662f\u5426\u76f8\u4f3c&#xff0c;\u6700\u76f4\u63a5\u7684\u65b9\u6cd5\u5c31\u662f\u8ba1\u7b97\u5b83\u4eec\u5728\u00a0128 \u7ef4\u7a7a\u95f4\u4e2d\u7684\u6b27\u6c0f\u8ddd\u79bb&#xff08;Euclidean Distance&#xff09;\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"180\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062400-6a81578079a3c.png\" width=\"789\" \/><\/p>\n<p>\u8ddd\u79bb\u8d8a\u5c0f&#xff1a;\u610f\u5473\u7740\u8fd9\u4e24\u4e2a 128 \u7ef4\u7684\u201c\u7279\u5f81\u7f57\u76d8\u201d\u5f62\u72b6\u8d8a\u63a5\u8fd1&#xff0c;\u5c40\u90e8\u7eb9\u7406\u8d8a\u76f8\u4f3c\u3002<\/p>\n<p>\u8ba1\u7b97\u4f7f\u6bcf\u7ef4\u9700\u8981\u505a\u51cf\u6cd5\u3001\u4e58\u6cd5\u3001\u7d2f\u52a0\u3002<\/p>\n<p>\u8ba1\u7b97\u5b9e\u73b0&#xff1a;\u5728\u5b9e\u9645\u5de5\u7a0b\u4e2d&#xff0c;\u56fe A \u5f80\u5f80\u6709\u6570\u5343\u4e2a\u70b9&#xff0c;\u56fe B \u4e5f\u6709\u6570\u5343\u4e2a\u70b9\u3002\u5982\u679c\u7528\u66b4\u529b\u5339\u914d&#xff08;Brute-Force&#xff09;&#xff0c;\u9700\u8981\u8ba1\u7b97\u51e0\u767e\u4e07\u6b21 128 \u7ef4\u7684\u8ddd\u79bb&#xff0c;\u901f\u5ea6\u8f83\u6162\u3002\u56e0\u6b64\u901a\u5e38\u4f1a\u91c7\u7528 k-d \u6811&#xff08;k-dimensional tree&#xff09; \u6216 FLANN \u7b97\u6cd5&#xff0c;\u5229\u7528\u7a7a\u95f4\u5212\u5206\u7c7b\u7684\u6570\u636e\u7ed3\u6784\u6765\u6781\u5927\u5730\u52a0\u901f\u8fd9\u4e2a\u5bfb\u627e\u8fc7\u7a0b\u3002<\/p>\n<p>SIFT \u6162\u7684\u539f\u56e0&#xff1a;1. Gaussian Scale Space \u4e2d\u5927\u91cf\u7684\u9ad8\u65af\u5377\u79ef\u7684\u8ba1\u7b97\u30022.DoG \u6781\u503c\u68c0\u6d4b&#xff0c;\u9700\u8981\u505a\u591a\u5c3a\u5ea6\u5377\u79ef\u30023.128\u7ef4\u63cf\u8ff0\u5b50\u8ba1\u7b97\u91cf\u5927\u3002<\/p>\n<p>&#xff08;6&#xff09;\u5176\u5b83<\/p>\n<p>\u521b\u5efaSIFT\u7279\u5f81\u68c0\u6d4b\u5668\u4e0e\u63cf\u8ff0\u5b50\u63d0\u53d6\u5668\u3002<br \/>\nPtr&lt;SIFT&gt; cv::SIFT::create(<br \/>\n    int     nfeatures &#061; 0,                \/\/ \u4fdd\u7559\u6700\u5927\u5173\u952e\u70b9\u6570\u76ee&#xff0c;0\u8868\u793a\u4e0d\u9650\u5236<br \/>\n    int     nOctaveLayers &#061; 3,            \/\/ \u5c3a\u5ea6\u7a7a\u95f4\u6bcf\u7ec4\u5c42\u6570<br \/>\n    double  contrastThreshold &#061; 0.04,     \/\/ \u5bf9\u6bd4\u5ea6\u9608\u503c&#xff0c;\u8fc7\u6ee4\u4f4e\u5bf9\u6bd4\u5ea6\u5f31\u7279\u5f81<br \/>\n    double  edgeThreshold &#061; 10,           \/\/ \u8fb9\u7f18\u9608\u503c&#xff0c;\u5254\u9664\u8fb9\u7f18\u4e0d\u7a33\u5b9a\u5173\u952e\u70b9<br \/>\n    double  sigma &#061; 1.6                   \/\/ \u521d\u59cb\u9ad8\u65af\u5377\u79ef\u6838sigma&#xff0c;\u6784\u5efa\u5c3a\u5ea6\u7a7a\u95f4<br \/>\n);<br \/>\n\u56fe\u50cf\u91d1\u5b57\u5854\u68c0\u6784\u5efa\u3001\u5173\u952e\u70b9\u68c0\u6d4b\u3001\u65b9\u5411\u5206\u914d\u3001\u63cf\u8ff0\u5b50\u8ba1\u7b97\u7b49\u5173\u952e\u6b65\u9aa4\u90fd\u5c01\u88c5\u5728\u51fd\u6570 detectAndCompute \u4e2d<\/p>\n<h5>1.2\u00a0SURF (Speeded Up Robust Features)<\/h5>\n<p>\u5feb\u901f\u9c81\u68d2\u6027\u7279\u5f81&#xff0c;SIFT \u7684\u52a0\u901f\u7248&#xff0c;\u5b83\u4f7f\u7528\u79ef\u5206\u56fe\u548c\u65b9\u6846\u6ee4\u6ce2\u8fd1\u4f3c Gaussian \u4e8c\u9636\u5bfc\u6570&#xff0c;\u5e76\u57fa\u4e8e Hessian \u77e9\u9635\u8fdb\u884c\u5173\u952e\u70b9\u68c0\u6d4b&#xff0c;\u5c06\u7b97\u6cd5\u901f\u5ea6\u63d0\u5347\u4e86 3 \u5230 5 \u500d&#xff0c;\u5728\u5e38\u89c4\u573a\u666f\u4e0b&#xff0c;SURF \u7684\u5339\u914d\u51c6\u786e\u7387\u4e0e\u91cd\u590d\u7387\u6bd4 SIFT \u4f4e\u7ea6 3%~4%&#xff1b;\u5728\u6781\u7aef\u5149\u7167&#xff08;\u00b1100 \u4eae\u5ea6\u504f\u79fb&#xff09;\u4e0e\u5f3a\u6a21\u7cca&#xff08;\u03c3&gt;3&#xff09;\u573a\u666f\u4e0b&#xff0c;\u6027\u80fd\u5dee\u8ddd\u6269\u5927\u81f3 7%~8%\u3002\u540c\u6837\u662f\u6d6e\u70b9\u578b\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>SURF \u672c\u8d28\u4e0a\u662f\u4e00\u79cd\u57fa\u4e8e Hessian determinant \u7684 blob detector\u3002\u5f53\u5c40\u90e8\u533a\u57df\u5728\u591a\u4e2a\u65b9\u5411\u4e0a\u90fd\u660e\u663e\u4e0d\u540c\u4e8e\u5468\u56f4\u533a\u57df&#xff0c;Hessian \u884c\u5217\u5f0f\u4f1a\u53d6\u5f97\u8f83\u5927\u503c&#xff0c;\u56e0\u6b64\u80fd\u591f\u6709\u6548\u68c0\u6d4b blob-like \u7ed3\u6784\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u901f\u5ea6\u5feb\u30022.\u5177\u6709\u5c3a\u5ea6\u4e0d\u53d8\u6027&#xff0c;\u4f7f\u7528\u591a\u5c3a\u5ea6\u9ed1\u585e\u77e9\u9635\u68c0\u6d4b\u6781\u503c\u70b9&#xff0c;\u4e0d\u65ad\u653e\u5927\u65b9\u6846\u6ee4\u6ce2\u5c3a\u5ea6\u6784\u5efa\u5c3a\u5ea6\u7a7a\u95f4\u30023.\u65cb\u8f6c\u4e0d\u53d8\u6027&#xff0c;\u4f1a\u5148\u7edf\u8ba1\u5173\u952e\u70b9\u4e3b\u65b9\u5411&#xff0c;\u518d\u5c06\u63cf\u8ff0\u5b50\u5750\u6807\u7cfb\u65cb\u8f6c\u5bf9\u9f50\u5230\u8be5\u65b9\u5411\u30024.\u5bf9\u5149\u7167\u6709\u4e00\u5b9a\u9c81\u68d2\u6027&#xff0c;SURF\u63cf\u8ff0\u5b50\u672c\u8d28\u4e0a\u7edf\u8ba1\u7684\u662f\u5c40\u90e8\u7070\u5ea6\u53d8\u5316&#xff0c;\u5e76\u4e14\u6700\u7ec8L2\u5f52\u4e00\u5316\u4e5f\u8fdb\u4e00\u6b65\u51cf\u5f31\u4e86\u4eae\u5ea6\u53d8\u5316\u5f71\u54cd\u30025.\u5bf9 Blob-like \u7ed3\u6784\u68c0\u6d4b\u80fd\u529b\u8f83\u5f3a&#xff0c;SURF \u57fa\u4e8e Hessian Matrix \u884c\u5217\u5f0f\u8fdb\u884c\u7279\u5f81\u68c0\u6d4b\u30025.\u5339\u914d\u6548\u7387\u9ad8&#xff0c;\u9664\u6b27\u5f0f\u8ddd\u79bb\u4e0e Ratio Test \u5916&#xff0c;\u8fd8\u5229\u7528 Laplacian Sign&#xff08;\u62c9\u666e\u62c9\u65af\u7b26\u53f7&#xff09;\u5bf9\u7279\u5f81\u70b9\u8fdb\u884c\u9884\u7b5b\u9009\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5bf9\u5f3a\u89c6\u89d2\u53d8\u5316&#xff08;Affine \/ Perspective&#xff09;\u9c81\u68d2\u6027\u6709\u9650\u30022.\u5bf9\u5149\u7167\u5267\u70c8\u53d8\u5316\u4e0e\u975e\u7ebf\u6027\u66dd\u5149\u53d8\u5316\u4ecd\u654f\u611f\u30023.\u5bf9\u52a8\u6001\u6a21\u7cca\u4e0e\u4f4e\u7eb9\u7406\u533a\u57df\u8868\u73b0\u4e00\u822c\u3002<\/p>\n<p>&#xff08;2&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>\u4e09\u7c7b\u4e8c\u7ef4\u66f2\u7387\u7ed3\u6784\u7684\u5bfc\u6570\u7279\u5f81&#xff1a;<\/p>\n<p>1.\u8fb9\u7f18&#xff1a;\u4e00\u9636\u68af\u5ea6\u5f3a&#xff0c;\u4e00\u4e2a\u65b9\u5411\u53d8\u5316\u5267\u70c8&#xff0c;\u53e6\u4e00\u65b9\u5411\u51e0\u4e4e\u4e0d\u53d8\u3002<\/p>\n<p>2.\u89d2\u70b9&#xff1a;\u4e24\u4e2a\u65b9\u5411\u68af\u5ea6\u90fd\u5927&#xff0c;\u4f46\u66f2\u7387\u4e0d\u4e00\u81f4\u3002<\/p>\n<p>3.\u6591\u70b9 (\u4eae\u6591 \/ \u6697\u6591 \/ \u5706\u5f62\u5757)&#xff1a;x\u3001y \u4e24\u4e2a\u65b9\u5411\u7070\u5ea6\u53d8\u5316\u8d8b\u52bf\u3001\u5f2f\u66f2\u7a0b\u5ea6\u9ad8\u5ea6\u4e00\u81f4\u3002<\/p>\n<p>Box Filter&#xff08;\u65b9\u6846\u6ee4\u6ce2\u5668&#xff09;&#xff1a;\u5747\u503c\u6ee4\u6ce2&#xff0c;\u662f\u4e00\u79cd\u6700\u7b80\u5355\u7684\u7ebf\u6027\u5e73\u6ed1\u6ee4\u6ce2\u5668\u3002\u5047\u8bbe\u4f60\u53d6\u56fe\u50cf\u4e2d\u67d0\u4e2a\u50cf\u7d20&#xff0c;\u7136\u540e\u770b\u5b83\u5468\u56f4\u4e00\u4e2a\u5c0f\u7a97\u53e3&#xff08;\u4f8b\u5982 3\u00d73&#xff09;&#xff0c;\u628a\u7a97\u53e3\u91cc\u7684\u6240\u6709\u50cf\u7d20\u5168\u90e8\u52a0\u8d77\u6765\u3001\u6c42\u5e73\u5747&#xff0c;\u6700\u540e\u7528\u8fd9\u4e2a\u5e73\u5747\u503c\u66ff\u6362\u4e2d\u5fc3\u50cf\u7d20&#xff0c;\u56e0\u6b64\u4f1a\u8ba9\u56fe\u50cf\u6574\u4f53\u53d8\u5f97\u66f4\u52a0\u5e73\u6ed1&#xff0c;\u8fd9\u5c31\u662f Box Filter\u3002\u4ece\u6570\u5b66\u89d2\u5ea6\u770b&#xff0c;Box Filter \u672c\u8d28\u4e0a\u662f\u4e00\u79cd\u5377\u79ef&#xff08;Convolution&#xff09;\u64cd\u4f5c&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"189\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062400-6a81578092ae8.png\" width=\"454\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"220\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062400-6a815780a5376.png\" width=\"674\" \/><\/p>\n<p>Box Filter \u4f1a\u628a\u5c40\u90e8\u533a\u57df\u201c\u5e73\u5747\u5316\u201d&#xff0c;\u4ece\u800c\u524a\u5f31\u50cf\u7d20\u4e4b\u95f4\u7684\u5267\u70c8\u53d8\u5316\u3002\u4ece\u56fe\u50cf\u5904\u7406\u89d2\u5ea6\u6765\u8bf4&#xff0c;Box Filter \u672c\u8d28\u4e0a\u5c5e\u4e8e\u4e00\u79cd\u4f4e\u901a\u6ee4\u6ce2\u5668&#xff08;Low-pass Filter&#xff09;\u3002\u56e0\u4e3a\u56fe\u50cf\u4e2d\u7684\u8fb9\u7f18\u3001\u7eb9\u7406\u3001\u566a\u58f0\u901a\u5e38\u5bf9\u5e94\u9ad8\u9891\u4fe1\u606f&#xff0c;\u800c\u5927\u9762\u79ef\u5e73\u6ed1\u533a\u57df\u5bf9\u5e94\u4f4e\u9891\u4fe1\u606f&#xff0c;\u6240\u4ee5 Box Filter \u4f1a\u6291\u5236\u9ad8\u9891\u3001\u4fdd\u7559\u4f4e\u9891\u3002\u56e0\u6b64\u5b83\u80fd\u591f\u8d77\u5230\u4e00\u5b9a\u7684\u53bb\u566a\u548c\u5e73\u6ed1\u4f5c\u7528&#xff0c;\u4f46\u540c\u65f6\u4e5f\u4f1a\u8ba9\u8fb9\u7f18\u53d8\u6a21\u7cca\u3002\u548c\u9ad8\u65af\u6ee4\u6ce2&#xff08;Gaussian Filter&#xff09;\u76f8\u6bd4&#xff0c;Box Filter \u6700\u5927\u7684\u7279\u70b9\u662f\u201c\u6240\u6709\u50cf\u7d20\u6743\u91cd\u5b8c\u5168\u4e00\u6837\u201d\u3002\u4f8b\u5982&#xff0c;\u5728 3\u00d73 Box Filter \u4e2d&#xff0c;\u6bcf\u4e2a\u50cf\u7d20\u6743\u91cd\u90fd\u662f 1\/9\u3002\u800c\u9ad8\u65af\u6ee4\u6ce2\u5219\u4f1a\u8ba9\u4e2d\u5fc3\u50cf\u7d20\u6743\u91cd\u66f4\u5927\u3001\u8fb9\u7f18\u50cf\u7d20\u6743\u91cd\u66f4\u5c0f&#xff0c;\u56e0\u6b64\u9ad8\u65af\u6ee4\u6ce2\u901a\u5e38\u4f1a\u5f97\u5230\u66f4\u81ea\u7136\u7684\u5e73\u6ed1\u6548\u679c\u3002<\/p>\n<p>SURF \u91cc\u7684 Box Filter&#xff1a;\u662f\u5dee\u5206\u6ee4\u6ce2\u5668&#xff0c;\u7528\u6765\u68c0\u6d4b\u7070\u5ea6\u53d8\u5316&#xff0c;\u672c\u8d28\u662f\u533a\u57df\u4e4b\u95f4\u505a\u5dee&#xff0c;\u4f8b\u5982 Dxx\u200b&#061; \u5de6\u533a\u57df\u548c\u22122\u00d7\u4e2d\u533a\u57df\u548c&#043;\u53f3\u533a\u57df\u548c\u3002\u4e0b\u56fe\u5206\u522b\u662f Dxx\u3001Dyy\u3001Dxy \u6ee4\u6ce2\u5668\u7684\u793a\u610f\u7ed3\u6784&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"126\" src=\"2026-08-16dr4gaf0qp0t.png\" width=\"564\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"166\" src=\"2026-08-16li4tp44mp33.png\" width=\"192\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"166\" src=\"2026-08-16lngkiwv1nox.png\" width=\"192\" \/><\/p>\n<p>\u975e\u6781\u5927\u503c\u6291\u5236&#xff08;Non-Maximum Suppression&#xff0c;NMS&#xff09;&#xff1a;\u53ea\u4fdd\u7559\u5c40\u90e8\u6700\u5927\u503c&#xff0c;\u5176\u4f59\u5168\u90e8\u5220\u6389&#xff0c;\u76ee\u7684\u662f\u907f\u514d\u4e00\u4e2a\u533a\u57df\u68c0\u6d4b\u51fa\u4e00\u5927\u7247\u91cd\u590d\u70b9\u3002<\/p>\n<p>\u4e09\u7ef4\u4e8c\u9636\u6cf0\u52d2\u5c55\u5f00&#xff1a;NMS\u627e\u5230\u7684\u6781\u503c\u70b9\u53ea\u662f\u79bb\u6563\u50cf\u7d20\u683c\u70b9(x&#061;20,y&#061;15,s&#061;4)&#xff0c;\u4f46\u771f\u5b9e\u6781\u503c\u53ef\u80fd\u5176\u5b9e\u5728(20.37,15.62,4.21)&#xff0c;\u4e09\u7ef4\u4e8c\u9636\u6cf0\u52d2\u5c55\u5f00\u662f\u5728\u8fd9\u4e2a\u683c\u5b50\u9644\u8fd1\u62df\u5408\u4e00\u4e2a\u8fde\u7eed\u66f2\u9762&#xff0c;\u7136\u540e\u8ba1\u7b97\u771f\u6b63\u5c71\u5cf0\u9876\u70b9\u3002<\/p>\n<p>\u5c3a\u5ea6\u5f52\u4e00\u5316&#xff1a;\u4ee5\u7279\u5f81\u70b9\u81ea\u5df1\u7684\u5c3a\u5ea6\u4e3a\u57fa\u51c6&#xff0c;\u91cd\u65b0\u7f29\u653e\u90bb\u57df\u8303\u56f4\u30021.\u5148\u786e\u5b9a\u7279\u5f81\u70b9\u81ea\u8eab\u5c3a\u5ea6 \u03c3 \u30022.\u4ee5\u7279\u5f81\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u6309\u81ea\u8eab\u5c3a\u5ea6\u5212\u5b9a\u90bb\u57df\u30023.\u628a\u4e0d\u540c\u5c3a\u5ea6\u7684\u90bb\u57df\u533a\u57df&#xff0c;\u7edf\u4e00\u6620\u5c04\u5230\u56fa\u5b9a\u6807\u51c6\u5c3a\u5bf8\u30024.\u518d\u7edf\u8ba1\u68af\u5ea6 \/ \u6784\u5efa\u7279\u5f81\u5411\u91cf&#xff0c;\u6700\u7ec8\u8f93\u51fa\u7684\u63cf\u8ff0\u5b50\u4e0d\u53d7\u539f\u59cb\u76ee\u6807\u5927\u5c0f\u5f71\u54cd\u3002<\/p>\n<p>L2 \u5f52\u4e00\u5316&#xff1a;\u4e0d\u540c\u56fe\u50cf\u6574\u4f53\u4eae\u5ea6\u53ef\u80fd\u4e0d\u540c&#xff0c;\u4f46\u662f\u672c\u8d28\u7ed3\u6784\u76f8\u540c\u3002\u7ecf\u8fc7\u4e0b\u9762\u7684\u8ba1\u7b97&#xff0c;\u6574\u4e2a\u5411\u91cf\u957f\u5ea6\u53d8\u6210\u4e86 1&#xff0c;\u5047\u8bbe\u6574\u4f53\u4eae\u5ea6\u6269\u592710\u500d&#xff0c;\u63cf\u8ff0\u5b50\u662f\u539f\u6765\u768410\u88ab&#xff0c;L2 norm \u4e5f\u6269\u592710\u500d&#xff0c;\u5f52\u4e00\u5316\u540e\u63cf\u8ff0\u5b50\u76f8\u540c\u3002<\/p>\n<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"120\" src=\"2026-08-16qt3yuz5w4vs.png\" width=\"539\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"129\" src=\"2026-08-164eh4nji1xwj.png\" width=\"547\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"142\" src=\"2026-08-16oanmufurkyi.png\" width=\"487\" \/><\/p>\n<\/p>\n<p>Haar Wavelet Response&#xff08;\u5c0f\u6ce2\u54cd\u5e94&#xff09;&#xff1a;\u7528 2\u00d72 \u65b9\u6846\u6ee4\u6ce2&#xff0c;\u7b97\u6c34\u5e73\u5dee\u5206 dx\u3001\u5782\u76f4\u5dee\u5206 dy\u3002<\/p>\n<p>\u6c34\u5e73 Haar \u54cd\u5e94 dx&#xff08;\u5de6\u53f3\u5dee&#xff09;&#xff1a;dx &#061; \u53f3\u534a\u533a\u57df\u7070\u5ea6\u548c \u2212 \u5de6\u534a\u533a\u57df\u7070\u5ea6\u548c<\/p>\n<p>[-1 &#043;1]<\/p>\n<p>[-1 &#043;1]<\/p>\n<p>\u5782\u76f4 Haar \u54cd\u5e94 dy&#xff08;\u4e0a\u4e0b\u5dee&#xff09;&#xff1a;dy &#061; \u4e0b\u534a\u533a\u57df\u7070\u5ea6\u548c \u2212 \u4e0a\u534a\u533a\u57df\u7070\u5ea6\u548c<\/p>\n<p>[-1 -1]<\/p>\n<p>[&#043;1 &#043;1]<\/p>\n<p>&#xff08;3&#xff09;\u5173\u952e\u70b9\u68c0\u6d4b\u539f\u7406<\/p>\n<p>1.\u9ed1\u585e\u77e9\u9635&#xff1a;SURF \u4e0d\u50cf SIFT \u90a3\u6837\u901a\u8fc7 Gaussian \u56fe\u50cf\u5dee\u5206&#xff08;DoG&#xff09;\u68c0\u6d4b\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c&#xff0c;\u800c\u662f\u76f4\u63a5\u57fa\u4e8e Hessian Matrix \u884c\u5217\u5f0f\u8fdb\u884c\u591a\u5c3a\u5ea6\u7279\u5f81\u68c0\u6d4b\u3002\u5bf9\u4e8e\u56fe\u50cf\u4e2d\u7684\u70b9 X&#061;(x,y)&#xff0c;\u5728\u5c3a\u5ea6 \u03c3 \u4e0b\u7684 Hessian \u77e9\u9635 H(X, \u03c3) \u5b9a\u4e49\u4e3a&#xff1a;<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"305\" src=\"2026-08-16nb1sgx1zy40.png\" width=\"742\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"194\" src=\"2026-08-16skaizuntsjb.png\" width=\"659\" \/><\/p>\n<p>\u5e73\u5766\u533a\u57df&#xff0c;\u7070\u5ea6\u51e0\u4e4e\u4e0d\u53d8&#xff0c;\u90a3\u4e48Ixx\u200b\u22480\u3001Iyy\u200b\u22480&#xff0c;det(H)\u22480&#xff0c;\u4e0d\u4f1a\u68c0\u6d4b\u4e3a\u7279\u5f81\u70b9&#xff1b;\u8fb9\u7f18\u533a\u57df&#xff0c;\u4f8b\u5982\u53ea\u6709\u6c34\u5e73\u65b9\u5411\u53d8\u5316&#xff0c;\u90a3\u4e48\u4e00\u4e2a\u65b9\u5411\u5bfc\u6570\u5927&#xff0c;\u53e6\u4e00\u4e2a\u65b9\u5411\u5c0f&#xff0c;\u56e0\u6b64 Hessian \u884c\u5217\u5f0f\u8f83\u5c0f&#xff0c;\u4e0d\u5bb9\u6613\u5f62\u6210\u7a33\u5b9a blob \u54cd\u5e94&#xff1b;\u6591\u70b9\/\u89d2\u70b9&#xff0c;\u591a\u4e2a\u65b9\u5411\u53d8\u5316\u90fd\u5927&#xff0c;\u56e0\u6b64 det(H) \u5f88\u5927\u3002<\/p>\n<p>2.\u65b9\u6846\u6ee4\u6ce2\u5668&#xff08;Box Filter&#xff09;\u4e0e\u79ef\u5206\u56fe&#xff1a;SIFT \u5728\u8ba1\u7b97\u9ad8\u65af\u5377\u79ef\u65f6&#xff0c;\u968f\u7740\u5c3a\u5ea6 \u03c3 \u589e\u5927&#xff0c;\u9ad8\u65af\u6838\u53d8\u5927&#xff0c;\u8ba1\u7b97\u91cf\u968f\u6838\u5c3a\u5bf8\u5e73\u65b9\u589e\u957f\u3002SURF \u505a\u4e86\u4e00\u4e2a\u7b80\u5316&#xff1a;\u4f7f\u7528\u77e9\u5f62\u5757\u7ec4\u6210\u7684 Box Filter \u53bb\u8fd1\u4f3c Gaussian \u4e8c\u9636\u5bfc\u6570\u6838\u7684\u54cd\u5e94\u5f62\u72b6\u3002<\/p>\n<p>\u00a0&#8211; \u79ef\u5206\u56fe&#xff08;Integral Image&#xff09;\u52a0\u901f&#xff1a;Box Filter \u7531\u82e5\u5e72\u77e9\u5f62\u533a\u57df\u7ec4\u6210&#xff0c;\u4e14\u6bcf\u4e2a\u77e9\u5f62\u5185\u90e8\u6743\u91cd\u6052\u5b9a\u3002&#xff0c;\u79ef\u5206\u56fe\u4e2d\u7684\u67d0\u70b9\u8868\u793a\u4ece\u5de6\u4e0a\u89d2\u5230(x,y)\u7684\u6240\u6709\u50cf\u7d20\u548c&#xff0c;\u8ba1\u7b97\u4e00\u4e2a\u533a\u57df\u7684\u50cf\u7d20\u548c\u90fd\u53ea\u9700\u8981\u8fdb\u884c 4 \u6b21\u5185\u5b58\u5bfb\u5740\u548c 3 \u6b21\u52a0\u51cf\u6cd5\u3002\u8ba1\u7b97\u8017\u65f6\u53d8\u6210\u4e86 O(1)\u3002<\/p>\n<p>\u00a0&#8211; \u72ec\u7279\u7684\u91d1\u5b57\u5854\u6784\u5efa&#xff1a;SIFT \u662f\u901a\u8fc7\u4e0d\u65ad\u7f29\u5c0f\u56fe\u50cf&#xff08;\u964d\u91c7\u6837&#xff09;\u6765\u6784\u5efa\u91d1\u5b57\u5854&#xff1b;\u800c SURF \u7684\u56fe\u50cf\u5c3a\u5bf8\u4fdd\u6301\u4e0d\u53d8&#xff0c;\u800c\u662f\u76f4\u63a5\u6210\u500d\u6570\u653e\u5927\u65b9\u6846\u6ee4\u6ce2\u5668\u7684\u5c3a\u5bf8\u3002\u7531\u4e8e O(1) \u7279\u6027\u7684\u5b58\u5728&#xff0c;\u7406\u8bba\u590d\u6742\u5ea6\u4e0e\u6ee4\u6ce2\u5668\u5c3a\u5bf8\u65e0\u5173\u3002<\/p>\n<p>3.\u6781\u503c\u70b9\u521d\u9009\u4e0e\u4e9a\u50cf\u7d20\u7cbe\u786e\u5b9a\u4f4d&#xff1a;\u4e0e SIFT \u7c7b\u4f3c&#xff0c;SURF \u5bf9\u9ed1\u585e\u77e9\u9635\u53d6\u5f97\u7684\u5c40\u90e8\u6781\u503c\u5728 3*3*3 \u7684\u4e09\u7ef4\u7acb\u65b9\u4f53\u90bb\u57df&#xff08;\u5f53\u524d\u70b9\u53ca\u524d\u540e\u4e24\u4e2a\u65b9\u6846\u6ee4\u6ce2\u5668\u5c3a\u5bf8\u5c3a\u5ea6\u5185&#xff09;\u8fdb\u884c 26 \u4e2a\u70b9\u7684\u975e\u6781\u5927\u503c\u6291\u5236&#xff0c;\u9009\u51fa\u5019\u9009\u70b9&#xff0c;\u518d\u901a\u8fc7\u4e09\u7ef4\u4e8c\u9636\u6cf0\u52d2\u5c55\u5f00\u8fdb\u884c\u4e9a\u50cf\u7d20\u7ea7\u522b\u7684\u5750\u6807\u548c\u5c3a\u5ea6\u7cbe\u786e\u5b9a\u4f4d\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u8fd9\u79cd\u8fd1\u4f3c\u4ecd\u7136\u6709\u6548&#xff1a;SURF\u5e76\u4e0d\u9700\u8981\u7cbe\u786e\u5bfc\u6570\u503c&#xff0c;\u5b83\u771f\u6b63\u5173\u5fc3\u7684\u662f\u6781\u503c\u4f4d\u7f6e&#xff08;\u54ea\u91cc\u54cd\u5e94\u6700\u5927\u3001\u54ea\u91cc\u662f\u6591\u70b9\u3001\u54ea\u91cc\u662f\u7a33\u5b9a\u7ed3\u6784&#xff09;&#xff0c;\u53ea\u8981\u5177\u6709\u7c7b\u4f3c\u7684\u54cd\u5e94\u8d8b\u52bf&#xff0c;\u90a3\u4e48\u68c0\u6d4b\u7ed3\u679c\u5c31\u5dee\u4e0d\u591a\u3002SURF\u771f\u6b63\u5389\u5bb3\u7684\u5730\u65b9\u662f\u8fd9\u4e2a\u8fd1\u4f3c\u8ba9\u79ef\u5206\u56fe\u6210\u4e3a\u53ef\u80fd\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u9ad8\u65af\u4e8c\u9636\u5bfc\u6570\u6838\u4e0d\u80fd\u4f7f\u7528\u79ef\u5206\u56fe&#xff1a;\u56e0\u4e3a\u9ad8\u65af\u4e8c\u9636\u5bfc\u6570\u6838&#xff1a;0.1 0.3 -0.8 -0.8 0.3 0.1&#xff08;\u66f2\u7387\u53d8\u5316&#xff09;&#xff0c;\u662f\u7c7b\u4f3c\u8fd9\u79cd\u8fde\u7eed\u7684\u53d8\u5316&#xff0c;\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u6743\u91cd\u4e0d\u4e00\u6837\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"114\" src=\"2026-08-16n4fyt1kw3un.png\" width=\"368\" \/><\/p>\n<p>\u5982\u4f55\u5b9e\u73b0\u5c3a\u5ea6\u4e0d\u53d8&#xff1a;\u4e0d\u9891\u7e41\u964d\u91c7\u6837&#xff0c;\u800c\u662f\u589e\u5927Box FiLter\u5c3a\u5bf8&#xff0c;\u56e0\u4e3a\u79ef\u5206\u56fe\u4e0b\u8ba1\u7b97\u77e9\u5f62\u5377\u79ef\u590d\u6742\u5ea6\u4e3aO(1)\u3002<\/p>\n<p>&#xff08;4&#xff09;\u63cf\u8ff0\u5b50\u8ba1\u7b97\u539f\u7406<\/p>\n<p>SURF\u63cf\u8ff0\u5b50&#xff1a;\u7edf\u8ba1\u5173\u952e\u70b9\u90bb\u57df\u5185\u7070\u5ea6\u53d8\u5316\u7684\u65b9\u5411\u5206\u5e03&#xff0c;\u4fdd\u5b58\u5c40\u90e8\u68af\u5ea6\u7ed3\u6784\u3002SIFT \u4e2d\u4f7f\u7528\u7684\u662f\u68af\u5ea6&#xff0c;SURF\u60f3\u66f4\u5feb&#xff0c;\u4f7f\u7528\u7684\u662f Haar \u5c0f\u6ce2\u54cd\u5e94&#xff08;\u672c\u8d28\u662f\u5728\u65cb\u8f6c\u5bf9\u9f50\u540e\u7684\u5c40\u90e8\u533a\u57df\u4e2d&#xff0c;\u7edf\u8ba1 Haar \u5c0f\u6ce2\u54cd\u5e94\u7684\u7a7a\u95f4\u5206\u5e03&#xff09;\u3002<\/p>\n<p>1.\u8ba1\u7b97\u4e3b\u65b9\u5411&#xff1a;\u4ee5\u5173\u952e\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u534a\u5f84\u4e3a 6\u03c3 &#xff08;\u5173\u952e\u70b9\u5c3a\u5ea6&#xff09;\u7684\u5706\u5f62\u533a\u57df\u5185&#xff0c;\u5bf9\u91c7\u6837\u70b9&#xff0c;\u53d6\u5b83\u5468\u56f4 2\u00d72 \u5c0f\u533a\u57df&#xff0c;\u7528\u79ef\u5206\u56fe\u5feb\u901f\u7b97&#xff0c;\u6c34\u5e73\u5dee\u5206 dx&#xff0c;\u5782\u76f4\u5dee\u5206 dy&#xff0c;\u5f97\u5230\u91c7\u6837\u70b9(dx, dy)&#xff0c;\u4e5f\u5c31\u662f\u8be5\u70b9\u7684 Haar \u5c0f\u6ce2\u54cd\u5e94\u3002\u7528\u4e00\u4e2a\u5927\u5c0f\u4e3a60\u5ea6\u7684\u6247\u5f62\u7a97\u53e3\u5728\u5706\u5185\u65cb\u8f6c&#xff08;\u8fde\u7eed\u6ed1\u52a8\u7a97\u53e3&#xff09;\u3002\u5c06\u6247\u5f62\u7a97\u53e3\u5185\u7684\u6240\u6709 Haar \u5c0f\u6ce2\u54cd\u5e94\u7684\u6c34\u5e73\u5206\u91cf\u548c\u5782\u76f4\u5206\u91cf\u5206\u522b\u7d2f\u52a0&#xff0c;\u5f62\u6210\u4e00\u4e2a\u603b\u5411\u91cf\u3002\u5411\u91cf\u6a21\u957f\u6700\u5927\u7684\u65b9\u5411&#xff0c;\u5c31\u88ab\u6307\u5b9a\u4e3a\u8be5\u5173\u952e\u70b9\u7684\u4e3b\u65b9\u5411\u3002<\/p>\n<p>2. \u6784\u5efa 64 \u7ef4\u7279\u5f81\u5411\u91cf&#xff1a;\u786e\u5b9a\u4e3b\u65b9\u5411\u540e&#xff0c;\u4e3a\u4e86\u4fdd\u8bc1\u65cb\u8f6c\u4e0d\u53d8\u6027&#xff0c;\u5c06\u5750\u6807\u8f74\u65cb\u8f6c\u5bf9\u9f50\u5230\u4e3b\u65b9\u5411\u3002\u4ee5\u5173\u952e\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u91c7\u96c6\u4e00\u4e2a 20\u03c3 * 20\u03c3 \u7684\u6b63\u65b9\u5f62\u90bb\u57df&#xff0c;\u5c06\u8fd9\u4e2a\u5927\u6b63\u65b9\u5f62\u5212\u5206\u4e3a 4 * 4 &#061; 16 \u4e2a\u5b50\u5757\u3002\u5728\u6bcf\u4e00\u4e2a\u5b50\u5757\u5185\u90e8\u7edf\u8ba1&#xff08;\u7edf\u8ba1\u65f6\u4f1a\u6839\u636e\u8ddd\u79bb\u5173\u952e\u70b9\u4e2d\u5fc3\u8ddd\u79bb\u5bf9 Haar response \u65bd\u52a0\u9ad8\u65af\u6743\u91cd&#xff0c;\u589e\u5f3a\u4e2d\u5fc3\u533a\u57df\u7684\u6743\u91cd&#xff09; Haar Wavelet \u7684\u6c34\u5e73\u54cd\u5e94\u548c \u2211dx\u3001\u5782\u76f4\u54cd\u5e94\u548c \u2211dy\u3001\u6c34\u5e73\u7edd\u5bf9\u503c\u548c\u2211\u2223dx\u2223\u3001\u5782\u76f4\u7edd\u5bf9\u503c\u548c \u2211\u2223dy\u2223&#xff08;\u666e\u901a\u548c \u53cd\u6620\u5c40\u90e8\u7070\u5ea6\u53d8\u5316\u7684\u4e3b\u8d8b\u52bf&#xff0c;\u7edd\u5bf9\u503c\u548c \u53cd\u6620\u5c40\u90e8\u53d8\u5316\u5f3a\u5ea6&#xff09;\u3002\u4e00\u5171 16 \u4e2a\u5b50\u5757&#xff0c;\u6bcf\u4e2a\u5b50\u5757\u8d21\u732e 4 \u4e2a\u6d6e\u70b9\u6570&#xff0c;\u6700\u7ec8\u5f97\u5230\u4e00\u4e2a 64 \u7ef4\u6d6e\u70b9\u5411\u91cf\u3002\u6700\u540e\u901a\u8fc7 L2 \u5f52\u4e00\u5316\u83b7\u5f97\u5bf9\u5c3a\u5ea6\u4e0e\u5149\u7167\u66f4\u9c81\u68d2\u7684\u7279\u5f81\u5411\u91cf\u3002<\/p>\n<p>&#xff08;5&#xff09;\u63cf\u8ff0\u5b50\u5339\u914d\u539f\u7406<\/p>\n<p>\u5728\u5339\u914d\u9636\u6bb5&#xff0c;SURF \u9664\u4e86\u4fdd\u7559\u4e86 SIFT \u7684\u6b27\u6c0f\u8ddd\u79bb\u8ba1\u7b97\u548c Lowe&#039;s \u6700\u8fd1\u90bb\u8ddd\u79bb\u6bd4\u503c\u6cd5&#xff08;Ratio Test&#xff09;\u4e4b\u5916&#xff0c;\u8fd8\u5229\u7528 Hessian \u77e9\u9635\u7684\u6570\u5b66\u7279\u6027&#xff0c;\u5f15\u5165\u62c9\u666e\u62c9\u65af\u7b97\u5b50\u6b63\u8d1f\u53f7&#xff08;Sign of Laplacian&#xff09;\u4f5c\u4e3a\u989d\u5916\u5224\u522b\u4fe1\u606f&#xff0c;\u7528\u4e8e\u589e\u5f3a\u7279\u5f81\u533a\u5206\u6027\u3002\u3002<\/p>\n<p>\u6838\u5fc3\u52a0\u901f&#xff1a;\u57fa\u4e8e\u7279\u5f81\u70b9\u6b63\u8d1f\u53f7\u7684\u63d0\u524d\u5206\u6d41\u3002<\/p>\n<p>\u5728\u8ba1\u7b97 Hessian \u77e9\u9635\u65f6&#xff0c;\u77e9\u9635\u7684\u8ff9&#xff08;Trace&#xff0c;\u5373\u5bf9\u89d2\u7ebf\u5143\u7d20\u4e4b\u548c Lxx &#043; Lyy&#xff09;\u5b9e\u9645\u4e0a\u5c31\u662f\u62c9\u666e\u62c9\u65af\u7b97\u5b50\u7684\u503c\u3002\u8fd9\u4e2a\u503c\u7684\u6b63\u8d1f\u53f7\u6709\u7740\u975e\u5e38\u660e\u786e\u7684\u7269\u7406\u56fe\u5f62\u51e0\u4f55\u610f\u4e49&#xff1a;<\/p>\n<p>\u6b63\u53f7&#xff08;&#043;&#xff09;&#xff1a;\u4ee3\u8868\u8be5\u7279\u5f81\u70b9\u662f\u4e00\u4e2a\u9ed1\u6697\u80cc\u666f\u4e0b\u7684\u660e\u4eae\u6591\u70b9\u3002\u867d\u7136\u7531\u4e8e SURF \u65b9\u6846\u6ee4\u6ce2\u6838\u201c\u4e2d\u95f4\u4e3a\u8d1f\u3001\u4e24\u8fb9\u4e3a\u6b63\u201d\u7684\u8bbe\u8ba1&#xff0c;\u76f4\u63a5\u5377\u79ef\u4f1a\u5f97\u5230\u8d1f\u503c&#xff0c;\u4f46\u7b97\u6cd5\u4f1a\u5c06\u5176\u6821\u6b63&#xff08;\u53d6\u53cd&#xff09;\u4e3a\u6b63&#xff0c;\u4ee5\u4fdd\u6301\u4e0e\u6807\u51c6\u62c9\u666e\u62c9\u65af\u7b97\u5b50\u54cd\u5e94\u4e00\u81f4\u3002<\/p>\n<p>\u8d1f\u53f7&#xff08;-&#xff09;&#xff1a;\u4ee3\u8868\u8be5\u7279\u5f81\u70b9\u662f\u4e00\u4e2a\u660e\u4eae\u80cc\u666f\u4e0b\u7684\u9ed1\u6697\u6591\u70b9\u3002<\/p>\n<p>\u5339\u914d\u65f6\u7684\u5de8\u5927\u4f18\u52bf&#xff1a;\u5728\u4e24\u5f20\u56fe\u7684\u7279\u5f81\u70b9\u8fdb\u884c\u9ad8\u7ef4\u7a7a\u95f4\u8ddd\u79bb\u6bd4\u5bf9\u4e4b\u524d&#xff0c;\u7b97\u6cd5\u4f1a\u5148\u770b\u4e00\u773c\u4e24\u4e2a\u70b9\u7684\u62c9\u666e\u62c9\u65af\u6b63\u8d1f\u53f7\u3002\u5982\u679c\u56fe A \u7684\u70b9\u662f&#xff08;&#043;&#xff09;&#xff0c;\u56fe B \u7684\u70b9\u662f&#xff08;-&#xff09;&#xff0c;\u8bf4\u660e\u4e00\u4e2a\u662f\u767d\u70b9\u4e00\u4e2a\u662f\u9ed1\u70b9\u3002\u7b97\u6cd5\u4f1a\u76f4\u63a5\u5224\u5b9a\u5b83\u4eec\u4e0d\u5339\u914d\u3002\u53ea\u6709\u5f53\u6b63\u8d1f\u53f7\u5b8c\u5168\u4e00\u81f4\u65f6&#xff0c;\u7b97\u6cd5\u624d\u4f1a\u53bb\u8ba1\u7b97 64 \u7ef4\u5411\u91cf\u7684\u8ddd\u79bb\u3002<\/p>\n<p>&#xff08;6&#xff09;\u5176\u5b83<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"654\" src=\"2026-08-16udg0ipxeku5.png\" width=\"1206\" \/><\/p>\n<p>\u521b\u5efaSURF\u7279\u5f81\u68c0\u6d4b\u5668\u4e0e\u63cf\u8ff0\u5b50\u63d0\u53d6\u5668\u3002<br \/>\nPtr&lt;SURF&gt; cv::xfeatures2d::SURF::create(<br \/>\n    double  hessianThreshold &#061; 100,      \/\/ Hessian\u9608\u503c&#xff0c;\u9608\u503c\u8d8a\u5927\u68c0\u6d4b\u7279\u5f81\u8d8a\u5c11<br \/>\n    int     nOctaves &#061; 4,                \/\/ \u91d1\u5b57\u5854\u5c3a\u5ea6\u7ec4\u6570<br \/>\n    int     nOctaveLayers &#061; 3,           \/\/ \u6bcf\u7ec4\u5185\u5c3a\u5ea6\u5c42\u6570<br \/>\n    bool    extended &#061; false,            \/\/ \u662f\u5426\u542f\u7528128\u7ef4\u63cf\u8ff0\u5b50&#xff0c;\u9ed8\u8ba464\u7ef4<br \/>\n    bool    upright &#061; false              \/\/ \u662f\u5426\u5173\u95ed\u65cb\u8f6c\u4e0d\u53d8&#xff0c;\u53ea\u4fdd\u6301\u7ad6\u76f4\u65b9\u5411<br \/>\n);<\/p>\n<table>\n<tr>\n<td>\u7279\u6027 \/ \u6b65\u9aa4<\/td>\n<td>SIFT \u7b97\u6cd5<\/td>\n<td>SURF \u7b97\u6cd5&#xff08;\u4f18\u5316\u70b9&#xff09;<\/td>\n<\/tr>\n<tbody>\n<tr>\n<td>\u5c3a\u5ea6\u7a7a\u95f4\u6784\u5efa<\/td>\n<td>\u56fe\u50cf\u4e0d\u65ad\u964d\u91c7\u6837&#xff0c;\u6838\u4e0d\u53d8\u3002\u8ba1\u7b97\u6162\u3002<\/td>\n<td>\u56fe\u50cf\u5c3a\u5bf8\u4e0d\u52a8&#xff0c;\u65b9\u6846\u6ee4\u6ce2\u5668\u6210\u500d\u653e\u5927\u3002\u901a\u8fc7\u79ef\u5206\u56fe\u5b9e\u73b0\u00a0O(1)\u00a0\u6052\u5b9a\u901f\u5ea6\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6781\u503c\u70b9\u68c0\u6d4b<\/td>\n<td>\u9ad8\u65af\u5dee\u5206\u91d1\u5b57\u5854&#xff08;DoG&#xff09;<\/td>\n<td>Hessian \u77e9\u9635\u884c\u5217\u5f0f&#xff08;Box Filter \u8fd1\u4f3c&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u4e3b\u65b9\u5411\u5206\u914d<\/td>\n<td>36 \u67f1\u68af\u5ea6\u65b9\u5411\u76f4\u65b9\u56fe&#xff08;\u6700\u5f3a\u5cf0\u503c&#xff09;<\/td>\n<td>60\u5ea6 \u6247\u5f62\u7a97\u53e3\u65cb\u8f6c\u7d2f\u52a0 Haar \u5c0f\u6ce2\u54cd\u5e94<\/td>\n<\/tr>\n<tr>\n<td>\u63cf\u8ff0\u5b50\u7ef4\u5ea6<\/td>\n<td>128 \u7ef4&#xff08;16 \u5757 *\u00a08 \u65b9\u5411\u76f4\u65b9\u56fe&#xff09;<\/td>\n<td>64 \u7ef4&#xff08;16 \u5757 * 4 \u4e2a Haar \u7edf\u8ba1\u91cf&#xff09;&#xff0c;\u5185\u5b58\u51cf\u534a\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5339\u914d\u63d0\u901f\u5668<\/td>\n<td>\u65e0&#xff08;\u76f4\u63a5\u8fdb k-d \u6811\u6216\u66b4\u529b\u8ba1\u7b97&#xff09;<\/td>\n<td>\u62c9\u666e\u62c9\u65af\u7b97\u5b50\u6b63\u8d1f\u53f7&#xff08;\u660e\u6697\u6591\u70b9\u5206\u6d41&#xff0c;\u8fc7\u6ee4\u4e00\u534a\u65e0\u6548\u5339\u914d&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u6027\u80fd\u7efc\u5408\u8bc4\u4ef7<\/td>\n<td>\u7cbe\u5ea6\u6700\u9ad8&#xff0c;\u5bf9\u4eff\u5c04\u3001\u5c3a\u5ea6\u53d8\u5316\u6700\u51c6&#xff0c;\u4f46\u592a\u6162\u3002<\/td>\n<td>\u901f\u5ea6\u6781\u5feb&#xff08;\u5feb 3-5 \u500d&#xff09;&#xff0c;\u7cbe\u5ea6\u76f4\u903c SIFT\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5>1.3 ORB (Oriented FAST and Rotated BRIEF)<\/h5>\n<p>\u5b9a\u5411FAST\u548c\u65cb\u8f6cBRIEF&#xff0c;\u7528 FAST \u89d2\u70b9\u68c0\u6d4b &#043; \u7070\u5ea6\u8d28\u5fc3\u6cd5\u8d4b\u4e88\u89d2\u70b9\u65b9\u5411&#xff0c;\u518d\u7528\u65cb\u8f6c\u7248 BRIEF \u751f\u6210\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9&#xff1a;1. \u8ba1\u7b97\u901f\u5ea6\u6781\u5feb&#xff0c;\u57fa\u4e8e FAST \u89d2\u70b9\u68c0\u6d4b\u4e0e BRIEF \u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u30022. \u4f7f\u7528\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff0c;\u5185\u5b58\u5360\u7528\u5c0f&#xff0c;\u6c49\u660e\u8ddd\u79bb\u5339\u914d\u6548\u7387\u9ad8\u30023. \u901a\u8fc7\u65b9\u5411\u4f30\u8ba1\u4e0e rBRIEF&#xff0c;\u5177\u6709\u8f83\u597d\u7684\u65cb\u8f6c\u4e0d\u53d8\u6027\u30024. \u91c7\u7528\u56fe\u50cf\u91d1\u5b57\u5854\u6784\u5efa\u5c3a\u5ea6\u7a7a\u95f4&#xff0c;\u5177\u5907\u4e00\u5b9a\u5c3a\u5ea6\u4e0d\u53d8\u6027\u30025. \u5bf9\u5149\u7167\u53d8\u5316\u3001\u566a\u58f0\u53ca\u90e8\u5206\u906e\u6321\u5177\u6709\u8f83\u5f3a\u9c81\u68d2\u6027\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1. \u914d\u51c6\u7cbe\u5ea6\u901a\u5e38\u4f4e\u4e8e SIFT\u3001SURF \u7b49\u6d6e\u70b9\u63cf\u8ff0\u5b50\u65b9\u6cd5\u30022. \u5c3a\u5ea6\u4e0d\u53d8\u6027\u6709\u9650&#xff0c;\u5728\u5927\u5c3a\u5ea6\u7f29\u653e\u4e0b\u7a33\u5b9a\u6027\u4e0b\u964d\u30023. \u5bf9\u5f3a\u900f\u89c6\u7578\u53d8\u3001\u5267\u70c8\u89c6\u89d2\u53d8\u5316\u7684\u9002\u5e94\u80fd\u529b\u8f83\u5f31\u30024. \u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u5224\u522b\u80fd\u529b\u6709\u9650&#xff0c;\u5728\u91cd\u590d\u7eb9\u7406\u533a\u57df\u5bb9\u6613\u8bef\u5339\u914d\u30025. \u5728\u5f31\u7eb9\u7406\u6216\u4e25\u91cd\u6a21\u7cca\u573a\u666f\u4e2d&#xff0c;\u7279\u5f81\u70b9\u7a33\u5b9a\u6027\u8f83\u5dee\u3002<\/p>\n<p>\u5728\u4ee5\u5e73\u79fb\u3001\u65cb\u8f6c\u4e3a\u4e3b&#xff0c;\u5c3a\u5ea6\u53d8\u5316\u8f83\u5c0f\u7684\u573a\u666f\u4e2d\u6548\u679c\u8f83\u597d\u3002<\/p>\n<p>&#xff08;2&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>FAST&#xff08;Features From Accelerated Segment Test&#xff09;&#xff1a;\u5224\u65ad\u67d0\u4e2a\u50cf\u7d20\u662f\u5426\u4e3a\u89d2\u70b9\u3002\u6838\u5fc3\u601d\u60f3\u662f\u6bd4\u8f83\u4e2d\u5fc3\u50cf\u7d20\u4e0e\u5706\u5468\u90bb\u57df\u50cf\u7d20\u7684\u7070\u5ea6\u5dee\u5f02&#xff0c;\u82e5\u8fde\u7eed\u82e5\u5e72\u50cf\u7d20\u660e\u663e\u66f4\u4eae\u6216\u660e\u663e\u66f4\u6697&#xff0c;\u5219\u8ba4\u4e3a\u8be5\u70b9\u662f\u89d2\u70b9\u3002\u65e0\u68af\u5ea6\u3001\u65e0\u590d\u6742\u8ba1\u7b97&#xff0c;\u68c0\u6d4b\u901f\u5ea6\u8fdc\u8d85 SIFT\u3001SURF\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"173\" src=\"2026-08-162pwpxvyxf00.png\" width=\"211\" \/><\/p>\n<p>\u7070\u5ea6\u8d28\u5fc3\u6cd5&#xff1a;\u6839\u636e\u89d2\u70b9\u90bb\u57df\u5185\u7684\u7070\u5ea6\u5206\u5e03\u8ba1\u7b97\u201c\u4eae\u5ea6\u8d28\u5fc3\u201d\u3002\u82e5\u67d0\u4e00\u65b9\u5411\u4eae\u5ea6\u66f4\u96c6\u4e2d\u5219\u8d28\u5fc3\u4f1a\u504f\u5411\u8be5\u65b9\u5411\u3002\u4e8e\u662f&#xff0c;\u4ece\u89d2\u70b9\u4e2d\u5fc3\u6307\u5411\u4eae\u5ea6\u8d28\u5fc3\u7684\u65b9\u5411\u4f5c\u4e3a\u8be5\u5173\u952e\u70b9\u7684\u4e3b\u65b9\u5411\u3002<\/p>\n<p>BRIEF&#xff08;Binary Robust Independent Elementary Features&#xff09;&#xff1a;ORB \u4f7f\u7528\u7684\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u3002\u6838\u5fc3\u601d\u60f3\u662f\u6bd4\u8f83\u5173\u952e\u70b9\u90bb\u57df\u5185\u50cf\u7d20\u5bf9\u7684\u7070\u5ea6\u5927\u5c0f\u5173\u7cfb\u3002\u4e0d\u5177\u6709\u65cb\u8f6c\u4e0d\u53d8\u6027\u3002Rotated BRIEF\u662fORB \u5bf9 BRIEF \u7684\u6539\u8fdb\u3002\u6839\u636e\u5173\u952e\u70b9\u4e3b\u65b9\u5411\u5bf9 BRIEF \u7684\u91c7\u6837\u6a21\u5f0f\u8fdb\u884c\u540c\u6b65\u65cb\u8f6c\u3002<\/p>\n<p>&#xff08;3&#xff09;ORB \u7279\u5f81\u63d0\u53d6\u4e0e\u5339\u914d\u6d41\u7a0b<\/p>\n<p>1.\u6784\u5efa\u56fe\u50cf\u91d1\u5b57\u5854\u30022.FASR\u5feb\u901f\u68c0\u6d4b\u89d2\u70b9&#xff0c;\u5229\u7528 Harris Socre \u7b5b\u9009\u7a33\u5b9a\u5173\u952e\u70b9\u30023.\u7070\u5ea6\u8d28\u5fc3\u6cd5\u8ba1\u7b97\u4e3b\u65b9\u5411\u30024.\u6784\u5efa BRIEF Binary Descriptor\u30025.\u6839\u636e\u4e3b\u65b9\u5411\u65cb\u8f6cBRIEF\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"141\" src=\"2026-08-16pdoqdl3ljbs.png\" width=\"954\" \/><\/p>\n<p>&#xff08;4&#xff09;\u5173\u952e\u70b9\u68c0\u6d4b\u539f\u7406<\/p>\n<p>1.Oriented FAST \u89d2\u70b9\u68c0\u6d4b&#xff1a;\u6838\u5fc3\u601d\u60f3\u662f\u89d2\u70b9\u9644\u8fd1\u4f1a\u51fa\u73b0\u5267\u70c8\u7070\u5ea6\u53d8\u5316&#xff0c;\u770b\u4e2d\u5fc3\u70b9\u79bb\u6563\u5706\u5468\u4e0a\u662f\u5426\u5b58\u5728\u8fde\u7eed\u660e\u663e\u66f4\u4eae\/\u66f4\u6697\u7684\u50cf\u7d20\u6bb5\u3002\u5bf9\u4e8e\u56fe\u50cf\u4e2d\u7684\u5f85\u6d4b\u70b9 p&#xff0c;\u7b97\u6cd5\u4ee5\u5176\u4e3a\u4e2d\u5fc3\u6784\u9020\u4e00\u4e2a\u534a\u5f84\u4e3a 3 \u50cf\u7d20\u7684\u79bb\u6563\u5706\u5468&#xff0c;\u5e76\u5728\u8be5\u5706\u5468\u4e0a\u9009\u53d6 16 \u4e2a\u91c7\u6837\u70b9\u8fdb\u884c\u7070\u5ea6\u6bd4\u8f83\u3002<\/p>\n<p>\u00a0&#8211; \u6838\u5fc3\u5224\u522b\u51c6\u5219&#xff1a; \u8bbe\u5b9a\u4e00\u4e2a\u4eae\u5ea6\u9608\u503c t\u3002\u5982\u679c\u5706\u5468\u4e0a\u5b58\u5728\u8fde\u7eed N \u4e2a\u50cf\u7d20\u70b9&#xff08;ORB \u4e2d N&#061;9&#xff0c;\u5373 FAST-9&#xff09;&#xff0c;\u5b83\u4eec\u7684\u503c\u90fd\u5927\u4e8e<img decoding=\"async\" alt=\"I_P + t\" class=\"mathcode\" src=\"2026-08-16pjmvubidv2u.png\" \/> &#xff08;\u6781\u4eae\u70b9&#xff0c;<img decoding=\"async\" alt=\"I_P\" class=\"mathcode\" src=\"2026-08-16c0zhrrfwirs.png\" \/>\u8868\u793a\u4e2d\u5fc3\u5f85\u6d4b\u70b9 P \u7684\u7070\u5ea6\u503c&#xff09;\u6216\u90fd\u5c0f\u4e8e<img decoding=\"async\" alt=\"I_P - t\" class=\"mathcode\" src=\"2026-08-16ltu1e2yt3gr.png\" \/><\/p>\n<p>&#xff08;\u6781\u6697\u70b9&#xff09;&#xff0c;\u5219 P \u88ab\u521d\u6b65\u5224\u5b9a\u4e3a\u7279\u5f81\u70b9\u3002\u4e3a\u4e86\u907f\u514d\u5bf9\u6bcf\u4e2a\u50cf\u7d20\u90fd\u6d4b\u8bd5 16 \u4e2a\u70b9\u3002\u5728\u7ecf\u5178 FAST \u4e2d&#xff0c;\u7b97\u6cd5\u901a\u5e38\u4f1a\u4f18\u5148\u68c0\u67e5\u5706\u5468\u4e0a\u7684\u5c11\u91cf\u5173\u952e\u4f4d\u7f6e&#xff08;\u5982 1\u30015\u30019\u300113 \u53f7\u70b9&#xff09;\u3002\u5982\u679c\u5176\u4e2d\u81f3\u5c11 3 \u4e2a\u70b9\u6ca1\u6709\u660e\u663e\u4eae\u4e8e\u6216\u6697\u4e8e\u4e2d\u5fc3\u50cf\u7d20 P\u200b&#xff0c;\u5219\u5f53\u524d\u50cf\u7d20\u4e0d\u53ef\u80fd\u6210\u4e3a\u89d2\u70b9&#xff0c;\u4ece\u800c\u63d0\u524d\u7ec8\u6b62\u540e\u7eed\u68c0\u6d4b\u3002<\/p>\n<p>\u00a0&#8211; ID3 \u51b3\u7b56\u6811\u5206\u6d41&#xff08;ID3 Decision Tree&#xff09;&#xff1a; \u5728FAST\u57fa\u7840\u4e0a&#xff0c;FAST-ER \u5c06\u8be5\u201c\u6d4b\u8bd5\u987a\u5e8f\u9009\u62e9\u95ee\u9898\u201d\u5efa\u6a21\u4e3a\u4e00\u4e2a\u5206\u7c7b\u95ee\u9898&#xff0c;\u5e76\u4f7f\u7528\u7c7b\u4f3c ID3 \u51b3\u7b56\u6811\u5b66\u4e60\u65b9\u6cd5&#xff0c;\u5728\u8bad\u7ec3\u96c6\u4e2d\u4f18\u5316\u6bcf\u4e2a\u50cf\u7d20\u4f4d\u7f6e\u7684\u6d4b\u8bd5\u987a\u5e8f\u3002\u56e0\u6b64&#xff0c;\u5927\u591a\u6570\u975e\u89d2\u70b9\u4ec5\u9700 2~3 \u6b21\u50cf\u7d20\u5f3a\u5ea6\u6bd4\u8f83\u5373\u53ef\u88ab\u5feb\u901f\u6392\u9664&#xff0c;\u4ece\u800c\u663e\u8457\u964d\u4f4e\u5b9e\u9645\u8fd0\u884c\u65f6\u95f4\u3002<\/p>\n<p>2.\u56fe\u50cf\u91d1\u5b57\u5854\u5750\u6807\u53cd\u5411\u6295\u5f71&#xff1a;\u5f53\u7b2c\u4e00\u5c42\u68c0\u6d4b\u5230FAST\u5173\u952e\u70b9\u540e&#xff0c;\u7b97\u6cd5\u4e0d\u9700\u8981\u53bb\u548c\u5b83\u7684\u4e0a\u5c42\u6216\u4e0b\u5c42\u505a\u4efb\u4f55\u6570\u5b66\u6bd4\u5bf9&#xff0c;\u800c\u662f\u76f4\u63a5\u5728\u5f53\u200b\u200b\u524d\u5c42\u7684\u5750\u6807\u4e2d\u5904\u7406\u7279\u5f81\u70b9<img decoding=\"async\" alt=\"$(x_{down}, y_{down})$\" class=\"mathcode\" src=\"2026-08-16pvf5zujzkia.png\" \/>&#xff0c;\u4e58\u4ee5\u5f53\u524d\u5c42\u7684\u7f29\u653e\u56e0\u5b50\u7684\u5012\u6570&#xff0c;\u76f4\u63a5\u53cd\u5411\u6295\u5f71&#xff08;Mapping&#xff09;\u56de\u539f\u59cb\u56fe\u50cf\u00a0<img decoding=\"async\" alt=\"$L_0$\" class=\"mathcode\" src=\"2026-08-16sst1lkxftnu.png\" \/>\u00a0\u7684\u4e0b\u5206\u8fa8\u7387\u3002FAST\u5bf9\u50cf\u7d20\u5bf9\u70b9\u7684\u5224\u522b\u7ed3\u679c\u5728\u5e95\u5c42\u53ea\u6709\u786c\u6027\u76841&#xff08;\u662f&#xff09;\u62160&#xff08;\u4e0d\u662f&#xff09;\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"147\" src=\"2026-08-16x5h1ywg3u4l.png\" width=\"428\" \/><\/p>\n<p>3.\u975e\u6781\u5927\u503c\u6291\u5236\u4e0e Harris \u54cd\u5e94\u5f97\u5206\u7b5b\u9009&#xff1a; FAST \u5728\u771f\u5b9e\u56fe\u50cf\u4e2d\u5bb9\u6613\u5728\u8fb9\u7f18\u8fde\u7eed\u533a\u57df\u9644\u8fd1\u4ea7\u751f\u5927\u91cf\u5bc6\u96c6\u5019\u9009\u70b9\u3002\u4e3a\u907f\u514d\u540c\u4e00\u5c40\u90e8\u533a\u57df\u51fa\u73b0\u8fc7\u591a\u91cd\u590d\u7279\u5f81&#xff0c;ORB \u9996\u5148\u5bf9 FAST \u5019\u9009\u70b9\u6267\u884c 3\u00d73 \u90bb\u57df\u975e\u6781\u5927\u503c\u6291\u5236&#xff08; NMS&#xff09;&#xff0c;\u4ec5\u4fdd\u7559\u5c40\u90e8\u54cd\u5e94\u503c\u6700\u5927\u7684\u70b9&#xff0c;\u4ece\u800c\u51cf\u5c11\u5197\u4f59\u89d2\u70b9\u3002\u968f\u540e&#xff0c;\u7531\u4e8e FAST \u672c\u8d28\u4e0a\u4e3b\u8981\u57fa\u4e8e\u50cf\u7d20\u5f3a\u5ea6\u6bd4\u8f83&#xff0c;\u5176\u89d2\u70b9\u54cd\u5e94\u7a33\u5b9a\u6027\u76f8\u5bf9\u6709\u9650&#xff0c;\u56e0\u6b64 ORB \u53c8\u8fdb\u4e00\u6b65\u5f15\u5165 Harris Corner Response \u5bf9 FAST \u89d2\u70b9\u8fdb\u884c\u91cd\u65b0\u8bc4\u5206\u3002Harris \u54cd\u5e94\u57fa\u4e8e\u56fe\u50cf\u7070\u5ea6\u53d8\u5316\u77e9\u9635&#xff08;Structure Tensor&#xff09;\u7684\u884c\u5217\u5f0f\u4e0e\u8ff9\u6784\u5efa&#xff0c;\u80fd\u591f\u66f4\u7a33\u5b9a\u5730\u8861\u91cf\u5c40\u90e8\u533a\u57df\u5728\u591a\u4e2a\u65b9\u5411\u4e0a\u7684\u7070\u5ea6\u53d8\u5316\u5f3a\u5ea6\u3002\u6700\u7ec8&#xff0c;ORB \u4f1a\u6309\u7167 Harris Score \u5bf9\u6240\u6709\u5019\u9009\u70b9\u8fdb\u884c\u6392\u5e8f&#xff0c;\u5e76\u4ec5\u4fdd\u7559\u54cd\u5e94\u503c\u6700\u5927\u7684\u524d M \u4e2a\u5173\u952e\u70b9&#xff0c;\u4ece\u800c\u5728\u4fdd\u6301\u9ad8\u901f\u68c0\u6d4b\u80fd\u529b\u7684\u540c\u65f6&#xff0c;\u8fdb\u4e00\u6b65\u5254\u9664\u5927\u91cf\u4e0d\u7a33\u5b9a\u8fb9\u7f18\u54cd\u5e94\u70b9&#xff0c;\u63d0\u9ad8\u7279\u5f81\u70b9\u7684\u7a33\u5b9a\u6027\u4e0e\u91cd\u590d\u68c0\u6d4b\u7387\u3002<\/p>\n<p>Harris Corner Response \u539f\u7406&#xff1a;\u8ba9\u4e00\u4e2a\u4e8c\u7ef4\u9ad8\u65af\u7a97\u53e3&#xff08;\u4e2d\u95f4\u6743\u91cd\u5927&#xff0c;\u8fb9\u7f18\u5c0f&#xff09;\u00a0w(x,y) \u6cbf\u4efb\u610f\u65b9\u5411\u5e73\u79fb\u4e00\u4e2a\u5fae\u5c0f\u4f4d\u79fb (u,v)&#xff0c;\u5e76\u8ba1\u7b97\u5e73\u79fb\u524d\u540e\u7a97\u53e3\u5185\u56fe\u50cf\u7070\u5ea6\u5dee\u7684\u5e73\u65b9\u548c\u3002\u8fd9\u4e2a\u51fd\u6570\u88ab\u79f0\u4e3a\u81ea\u76f8\u5173\u51fd\u6570\u00a0E(u,v)&#xff1a;<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"23\" src=\"2026-08-16vgzcay3ufmf.png\" width=\"354\" \/><\/p>\n<p>&#xff0c;I(x,y)\u8868\u793a\u50cf\u7d20\u5f3a\u5ea6&#xff1b;w(x,y)\u662f\u9ad8\u65af\u6743\u91cd\u7a97\u53e3&#xff0c;\u4e2d\u5fc3\u533a\u57df\u6743\u91cd\u5927&#xff1b;(u,v)&#xff0c;\u7a97\u53e3\u79fb\u52a8\u91cf\u3002\u7528\u6765\u8861\u91cf\u7a97\u53e3\u79fb\u52a8\u4e4b\u540e\u7070\u5ea6\u53d8\u5316\u662f\u5426\u660e\u663e\u3002\u76f4\u63a5\u8ba1\u7b97 \u6781\u5176\u8017\u65f6&#xff0c;\u56e0\u4e3a\u6bcf\u4e2a\u50cf\u7d20\u3001\u6bcf\u4e2a\u79fb\u52a8\u65b9\u5411\u90fd\u8981\u91cd\u65b0\u505a\u56fe\u50cf\u53e0\u52a0\u3002\u4e3a\u4e86\u5b9e\u73b0\u9ad8\u6548\u8ba1\u7b97&#xff0c;Harris \u5f15\u5165\u4e86\u4e00\u9636\u6cf0\u52d2\u516c\u5f0f\u5c55\u5f00\u5f97\u5230<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"47\" src=\"2026-08-164lafk54gk0k.png\" width=\"388\" \/><\/p>\n<p>\u3002\u8fd9\u91cc\u4e2d\u95f4\u88ab\u62ec\u53f7\u5305\u56f4\u7684 2*2\u00a0\u77e9\u9635&#xff0c;\u5c31\u662f\u7ed3\u6784\u5f20\u91cf&#xff08;Structure Tensor&#xff09;&#xff0c;\u901a\u5e38\u8bb0\u4e3a\u00a0M&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"45\" src=\"2026-08-163hlb5mlwqb5.png\" width=\"524\" \/><\/p>\n<p>&#xff0c;\u77e9\u9635\u00a0M\u00a0\u6d53\u7f29\u4e86\u7a97\u53e3\u533a\u57df\u5185\u6240\u6709\u7684\u68af\u5ea6\u5206\u5e03\u4fe1\u606f\u3002\u5b83\u662f\u4e00\u4e2a\u5bf9\u79f0\u77e9\u9635&#xff0c;\u5176\u4e24\u4e2a\u7279\u5f81\u503c\u00a0<img decoding=\"async\" alt=\"$\\\\lambda_1$\" class=\"mathcode\" src=\"2026-08-16koostaszbzy.png\" \/>\u00a0\u548c\u00a0<img decoding=\"async\" alt=\"$\\\\lambda_2$\" class=\"mathcode\" src=\"2026-08-16royplshdv1c.png\" \/>\u00a0\u00a0\u5b8c\u7f8e\u5bf9\u5e94\u4e86\u5c40\u90e8\u7a97\u53e3\u5185\u7070\u5ea6\u53d8\u5316\u6700\u5feb\u548c\u7070\u5ea6\u53d8\u5316\u6700\u6162\u8fd9\u4e24\u4e2a\u6b63\u4ea4\u65b9\u5411\u4e0a\u7684\u53d8\u5316\u7387\u3002<\/p>\n<p>\u5e73\u5766\u533a\u57df&#xff1a; \u65e0\u8bba\u5411\u54ea\u4e2a\u65b9\u5411\u79fb\u52a8 (u,v)&#xff0c;\u7070\u5ea6\u51e0\u4e4e\u4e0d\u53d8&#xff0c;<img decoding=\"async\" alt=\"E(u,v) \\\\approx 0\" class=\"mathcode\" src=\"2026-08-16b1flwgv51yu.png\" \/>\u3002<\/p>\n<p>\u8fb9\u7f18\u533a\u57df&#xff1a; \u987a\u7740\u8fb9\u7f18\u65b9\u5411\u79fb\u52a8&#xff0c;\u7070\u5ea6\u53d8\u5316\u5c0f&#xff1b;\u5782\u76f4\u4e8e\u8fb9\u7f18\u65b9\u5411\u79fb\u52a8&#xff0c;\u7070\u5ea6\u53d8\u5316\u6781\u5927\u3002<\/p>\n<p>\u89d2\u70b9\u533a\u57df&#xff1a; \u65e0\u8bba\u5411\u54ea\u4e2a\u65b9\u5411\u79fb\u52a8&#xff0c;\u7070\u5ea6\u90fd\u4f1a\u53d1\u751f\u5267\u70c8\u53d8\u5316&#xff0c;E(u,v) \u5728\u6240\u6709\u65b9\u5411\u4e0a\u90fd\u5f88\u5927\u3002<\/p>\n<\/p>\n<table>\n<tr>\n<td style=\"width:164px\">\u7279\u5f81\u503c\u72b6\u6001<\/td>\n<td style=\"width:125px\">\u7269\u7406\u56fe\u5f62\u51e0\u4f55\u610f\u4e49<\/td>\n<td>\u89e3\u91ca<\/td>\n<\/tr>\n<tbody>\n<tr>\n<td style=\"width:164px\">\n<p><img decoding=\"async\" alt=\"\\\\lambda_1 \\\\approx 0\" class=\"mathcode\" src=\"2026-08-16wxh0z5jyiiu.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"\\\\lambda_2 \\\\approx 0\" class=\"mathcode\" src=\"2026-08-16gudjmneii0w.png\" \/><\/p>\n<\/td>\n<td style=\"width:125px\">\n<p>\u5e73\u5766\u533a\u57df<img decoding=\"async\" alt=\"R \\\\approx 0\" class=\"mathcode\" src=\"2026-08-16rsczt2hfxz2.png\" \/> (Flat)<\/p>\n<\/td>\n<td>\u4e24\u4e2a\u6b63\u4ea4\u65b9\u5411\u4e0a\u7070\u5ea6\u5747\u65e0\u660e\u663e\u53d8\u5316\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"width:164px\">\n<p><img decoding=\"async\" alt=\"\\\\lambda_1 \\\\gg 0\" class=\"mathcode\" src=\"2026-08-16zx3k2tdxgmg.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"\\\\lambda_2 \\\\gg 0\" class=\"mathcode\" src=\"2026-08-16tjk31ru2iog.png\" \/><\/p>\n<\/td>\n<td style=\"width:125px\">\u8fb9\u7f18\u533a\u57df (Edge)<\/td>\n<td>\u4ec5\u5728\u5782\u76f4\u4e8e\u8fb9\u7f18\u7684\u65b9\u5411\u4e0a\u6709\u5f3a\u70c8\u7684\u68af\u5ea6&#xff0c;\u987a\u7740\u8fb9\u7f18\u65b9\u5411\u5219\u6ca1\u6709\u53d8\u5316\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"width:164px\">\n<p><img decoding=\"async\" alt=\"\\\\lambda_1 \\\\gg 0\" class=\"mathcode\" src=\"2026-08-16zx3k2tdxgmg.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"\\\\lambda_2 \\\\gg 0\" class=\"mathcode\" src=\"2026-08-16tjk31ru2iog.png\" \/><\/p>\n<\/td>\n<td style=\"width:125px\">\u89d2\u70b9\u533a\u57df (Corner)<\/td>\n<td>\u4e24\u4e2a\u6b63\u4ea4\u65b9\u5411\u7684\u53d8\u5316\u7387\u90fd\u6781\u5927&#xff0c;\u8bf4\u660e\u5b58\u5728\u4ea4\u6c47\u7ed3\u6784\u6216\u6591\u70b9\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u867d\u7136\u7279\u5f81\u503c\u00a0\u00a0<img decoding=\"async\" alt=\"$\\\\lambda_1$\" class=\"mathcode\" src=\"2026-08-16koostaszbzy.png\" \/> \u00a0\u548c\u00a0<img decoding=\"async\" alt=\"$\\\\lambda_2$\" class=\"mathcode\" src=\"2026-08-16royplshdv1c.png\" \/> \u7684\u7269\u7406\u610f\u4e49\u5f88\u5b8c\u7f8e&#xff0c;\u4f46\u5728\u5de5\u7a0b\u5b9e\u73b0\u4e2d&#xff0c;\u76f4\u63a5\u5bf9\u56fe\u50cf\u4e2d\u7684\u6bcf\u4e00\u4e2a\u50cf\u7d20\u77e9\u9635\u53bb\u6c42\u89e3\u7279\u5f81\u65b9\u7a0b&#xff08;\u6c42\u5e73\u65b9\u6839&#xff09;\u662f\u975e\u5e38\u6602\u8d35\u7684\u3002Harris \u5de7\u5999\u5730\u5229\u7528\u4e86\u77e9\u9635\u7406\u8bba\u4e2d\u7684\u4e24\u4e2a\u7ecf\u5178\u5b9a\u7406&#xff0c;\u7ed5\u5f00\u4e86\u663e\u5f0f\u7279\u5f81\u503c\u6c42\u89e3&#xff1a;<\/p>\n<p>\u77e9\u9635\u7684\u884c\u5217\u5f0f\u7b49\u4e8e\u5176\u7279\u5f81\u503c\u7684\u4e58\u79ef&#xff1a;<img decoding=\"async\" alt=\"\\\\det(M) = \\\\lambda_1 \\\\lambda_2 = AB - C^2\" class=\"mathcode\" src=\"2026-08-163wik0gsrtxp.png\" \/><\/p>\n<p>\u77e9\u9635\u7684\u8ff9\u7b49\u4e8e\u5176\u7279\u5f81\u503c\u7684\u548c&#xff1a;<img decoding=\"async\" alt=\"\\\\text{tr}(M) = \\\\lambda_1 + \\\\lambda_2 = A + B\" class=\"mathcode\" src=\"2026-08-1645vczcfxe5i.png\" \/><\/p>\n<p>\u5229\u7528\u8fd9\u4e24\u4e2a\u6027\u8d28&#xff0c;Harris \u6784\u5efa\u4e86\u89d2\u70b9\u54cd\u5e94\u5f97\u5206 R&#xff08;Harris Corner Response Score&#xff09;&#xff1a;<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"22\" src=\"2026-08-164guhhpred34.png\" width=\"194\" \/><\/p>\n<p>\u4e3a\u4ec0\u4e48\u8fd9\u4e2a\u516c\u5f0f\u80fd\u7cbe\u51c6\u7b5b\u9009\u89d2\u70b9&#xff1f;\u6211\u4eec\u628a\u7279\u5f81\u503c\u4ee3\u56de\u516c\u5f0f\u6765\u770b\u5b83\u7684\u52a8\u6001\u54cd\u5e94&#xff1a;<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"20\" src=\"2026-08-165r2aarl4wqe.png\" width=\"182\" \/><\/p>\n<p>\u5f53\u4e3a\u5e73\u5766\u533a\u57df\u65f6&#xff1a;\u00a0<img decoding=\"async\" alt=\"$\\\\lambda_1$\" class=\"mathcode\" src=\"2026-08-16koostaszbzy.png\" \/> \u548c<img decoding=\"async\" alt=\"$\\\\lambda_2$\" class=\"mathcode\" src=\"2026-08-16royplshdv1c.png\" \/> \u90fd\u6781\u5c0f&#xff0c;det(M) \u548c text{tr}(M) \u5747\u8d8b\u8fd1\u4e8e 0&#xff0c;\u56e0\u6b64 <img decoding=\"async\" alt=\"R \\\\approx 0\" class=\"mathcode\" src=\"2026-08-16rsczt2hfxz2.png\" \/>\u3002<\/p>\n<p>\u5f53\u4e3a\u8fb9\u7f18\u533a\u57df\u65f6&#xff1a; \u5047\u8bbe <img decoding=\"async\" alt=\"\\\\lambda_1 \\\\gg 0\" class=\"mathcode\" src=\"2026-08-16zx3k2tdxgmg.png\" \/>\u00a0\u4e14 <img decoding=\"async\" alt=\"\\\\lambda_2 \\\\gg 0\" class=\"mathcode\" src=\"2026-08-16tjk31ru2iog.png\" \/>\u3002\u6b64\u65f6\u4e58\u79ef\u9879<img decoding=\"async\" alt=\"\\\\det(M) \\\\approx 0\" class=\"mathcode\" src=\"2026-08-16yz0zkuuzbif.png\" \/>&#xff0c;\u800c\u52a0\u548c\u9879\u7684\u5e73\u65b9<img decoding=\"async\" alt=\"(\\\\text{tr}(M))^2 \\\\approx \\\\lambda_1^2\" class=\"mathcode\" src=\"2026-08-16wuxvcxqajy1.png\" \/> \u5f88\u5927\u3002\u8fd9\u4f1a\u5bfc\u81f4\u516c\u5f0f\u53f3\u8fb9\u8fdc\u5927\u4e8e\u5de6\u8fb9&#xff0c;\u4ece\u800c\u8ba1\u7b97\u51fa R &lt; 0&#xff08;\u663e\u8457\u7684\u8d1f\u503c&#xff09;\u3002<\/p>\n<p>\u5f53\u4e3a\u89d2\u70b9\u533a\u57df\u65f6&#xff1a;\u00a0<img decoding=\"async\" alt=\"$\\\\lambda_1$\" class=\"mathcode\" src=\"2026-08-16koostaszbzy.png\" \/> \u548c<img decoding=\"async\" alt=\"$\\\\lambda_2$\" class=\"mathcode\" src=\"2026-08-16royplshdv1c.png\" \/> \u90fd\u5f88\u5927\u4e14\u91cf\u7ea7\u63a5\u8fd1\u3002\u6b64\u65f6\u4e58\u79ef\u9879\u00a0<img decoding=\"async\" alt=\"\\\\lambda_1 \\\\lambda_2\" class=\"mathcode\" src=\"2026-08-16k5i5qsoj1fv.png\" \/> \u5360\u636e\u4e3b\u5bfc\u5730\u4f4d&#xff0c;\u5176\u589e\u957f\u901f\u5ea6\u8fdc\u8d85\u51cf\u6570\u9879&#xff08;\u56e0\u4e3a k \u5f88\u5c0f&#xff0c;\u901a\u5e38\u53d6\u503c\u5728\u00a00.04 ~ 0.06\u00a0\u4e4b\u95f4&#xff09;&#xff0c;\u4ece\u800c\u4f7f\u516c\u5f0f\u8f93\u51fa\u4e00\u4e2a<img decoding=\"async\" alt=\"R \\\\gg 0\" class=\"mathcode\" src=\"2026-08-16btpvjn2aj4p.png\" \/>&#xff08;\u6781\u5927\u7684\u6b63\u503c&#xff09;\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"514\" src=\"2026-08-16ku33i3w5arc.png\" width=\"1016\" \/><\/p>\n<p>&#xff08;5&#xff09;\u7070\u5ea6\u8d28\u5fc3\u6cd5\u786e\u5b9a\u4e3b\u65b9\u5411<\/p>\n<p>\u6838\u5fc3\u601d\u60f3\u662f\u5c40\u90e8\u4eae\u5ea6\u5206\u5e03\u901a\u5e38\u5177\u6709\u65b9\u5411\u6027&#xff0c;\u4f8b\u5982\u5de6\u6697\u53f3\u4eae\u3001\u67d0\u4e2a\u8c61\u9650\u4eae\u5ea6\u96c6\u4e2d&#xff0c;\u90fd\u4f1a\u5bfc\u81f4\u7070\u5ea6\u8d28\u5fc3\u5411\u7279\u5b9a\u65b9\u5411\u504f\u79fb\u3002\u5f53\u56fe\u50cf\u53d1\u751f\u65cb\u8f6c\u65f6&#xff0c;\u5c40\u90e8\u7070\u5ea6\u5206\u5e03\u4e5f\u4f1a\u6574\u4f53\u540c\u6b65\u65cb\u8f6c&#xff0c;\u7070\u5ea6\u8d28\u5fc3\u76f8\u5bf9\u4e8e\u5173\u952e\u70b9\u4e2d\u5fc3\u7684\u4f4d\u7f6e\u4e5f\u4f1a\u540c\u6b65\u65cb\u8f6c\u3002<\/p>\n<p>1.\u4ee5\u5173\u952e\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u5728\u4e00\u4e2a\u534a\u5f84\u4e3a R \u7684\u5706\u5f62\u90bb\u57df\u5185&#xff0c;\u5bf9\u6240\u6709\u50cf\u7d20\u7070\u5ea6\u8fdb\u884c\u7edf\u8ba1\u3002ORB \u4e3b\u8981\u4f7f\u7528&#xff1a;\u96f6\u9636\u77e9&#xff08;0-th Moment&#xff09;m00\u200b&#061;x,y\u2211\u200bI(x,y) \u8868\u793a\u8be5\u5c40\u90e8\u533a\u57df\u5185\u7684\u603b\u7070\u5ea6\u80fd\u91cf\u3002\u4e00\u9636\u77e9&#xff08;1-st Moments&#xff09;m10\u200b&#061;x,y\u2211\u200bx\u22c5I(x,y)&#xff0c;m10\u200b&#061;x,y\u2211\u200by\u22c5I(x,y)&#xff0c;\u5206\u522b\u8868\u793a\u7070\u5ea6\u5728 x\u3001y \u65b9\u5411\u4e0a\u7684\u201c\u91cd\u5fc3\u504f\u79fb\u201d\u3002I(x,y) \u8868\u793a\u50cf\u7d20\u7070\u5ea6\u503c&#xff0c;(x,y) \u8868\u793a\u76f8\u5bf9\u4e8e\u5173\u952e\u70b9\u4e2d\u5fc3\u7684\u5750\u6807\u3002<\/p>\n<p>2.\u8ba1\u7b97\u7070\u5ea6\u8d28\u5fc3&#xff08;Intensity Centroid&#xff09;&#xff1a;\u7070\u5ea6\u8d28\u5fc3\u00a0<img decoding=\"async\" alt=\"C = \\\\left(m_{00}\/\\\\ m_{10},\\\\ m_{00}\/\\\\ m_{01}\\\\right)\" class=\"mathcode\" src=\"2026-08-160xlrvuwmdsm.png\" \/>&#xff0c;\u8fd9\u91cc\u7684C&#061;(Cx\u200b,Cy\u200b)&#xff0c;\u8868\u793a\u5c40\u90e8\u4eae\u5ea6\u5206\u5e03\u7684\u4e2d\u5fc3\u4f4d\u7f6e&#xff0c;\u5982\u679c\u5c40\u90e8\u533a\u57df\u4eae\u5ea6\u5206\u5e03\u5b8c\u5168\u5bf9\u79f0&#xff0c;\u5219\u8d28\u5fc3\u4f1a\u63a5\u8fd1\u5173\u952e\u70b9\u4e2d\u5fc3&#xff1b;\u5982\u679c\u67d0\u4e2a\u65b9\u5411\u66f4\u4eae&#xff0c;\u5219\u8d28\u5fc3\u4f1a\u5411\u8be5\u65b9\u5411\u504f\u79fb\u3002<\/p>\n<p>3.\u8ba1\u7b97\u5173\u952e\u70b9\u4e3b\u65b9\u5411&#xff1a;\u8bbe\u5173\u952e\u70b9\u51e0\u4f55\u4e2d\u5fc3\u4e3a&#xff1a;O&#061;(0,0)&#xff0c;\u5219\u4ece\u5173\u952e\u70b9\u4e2d\u5fc3 O \u6307\u5411\u7070\u5ea6\u8d28\u5fc3 C \u7684\u5411\u91cf OC&#061;(m10,m01)&#xff0c;\u5373\u53ef\u8868\u793a\u8be5\u5c40\u90e8\u533a\u57df\u7684\u4e3b\u65b9\u5411\u3002\u6700\u7ec8\u65b9\u5411\u89d2\u5b9a\u4e49\u4e3a \u03b8&#061;atan2(m01, m10)&#xff0c;\u5176\u4e2d atan2(y,x) \u80fd\u591f\u6b63\u786e\u533a\u5206\u56db\u4e2a\u8c61\u9650&#xff0c;\u56e0\u6b64\u53ef\u4ee5\u5f97\u5230&#xff1a;0\u2218\u223c360\u2218 \u8303\u56f4\u5185\u7684\u5b8c\u6574\u65b9\u5411\u89d2\u3002<\/p>\n<p>&#xff08;6&#xff09;rBRIEF \u63cf\u8ff0\u5b50\u8ba1\u7b97\u539f\u7406<\/p>\n<p>\u53ea\u505a\u50cf\u7d20\u5f3a\u5ea6\u6bd4\u8f83&#xff0c;\u4e0d\u9700\u8981\u68af\u5ea6\u76f4\u65b9\u56fe\u3001\u9ad8\u65af\u52a0\u6743\u7edf\u8ba1\u3001\u6d6e\u70b9\u7279\u5f81\u5411\u91cf\u3002<\/p>\n<p>1..\u4ee5\u5173\u952e\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u53d6\u4e00\u4e2a\u5c40\u90e8\u9886\u57df&#xff0c;\u4f8b\u5982 31 * 31 patch&#xff0c;&#xff0c;\u6839\u636e\u7070\u5ea6\u8d28\u5fc3\u6cd5\u83b7\u5f97\u7684\u5173\u952e\u70b9\u4e3b\u65b9\u5411&#xff0c;\u5bf9\u8be5\u533a\u57df\u5185\u7684\u5bf9BRIEF\u7684\u91c7\u6837\u70b9&#xff08;\u76f8\u5bf9\u4e8e\u5173\u952e\u70b9\u4e2d\u5fc3\u7684\u5c40\u90e8\u91c7\u6837\u5750\u6807&#xff09;\u8fdb\u884c\u65cb\u8f6c&#xff08;\u4e0d\u662f\u6574\u4e2a\u56fe\u50cf\u65cb\u8f6c&#xff0c;\u800c\u662f\u91c7\u6837\u6a21\u5f0f\u5750\u6807\u65cb\u8f6c&#xff09;&#xff0c;S\u03b8\u200b&#061;R\u03b8\u200bS&#xff0c;\u5176\u4e2d<img decoding=\"async\" alt=\"R_\\\\theta = \\\\left[\\\\begin{matrix} \\\\cos\\\\theta &amp; -\\\\sin\\\\theta \\\\\\\\ \\\\sin\\\\theta &amp; \\\\cos\\\\theta \\\\end{matrix}\\\\right]\" class=\"mathcode\" src=\"2026-08-16jbaimeiqylp.png\" \/>\u3002<\/p>\n<p>2.\u5bf9\u7b5b\u9009\u51fa\u6765\u7684\u8be5\u533a\u57df\u7684\u50cf\u7d20\u70b9\u5bf9 (p, q) \u6bd4\u8f83\u7070\u5ea6&#xff0c;\u5982\u679cI(p\u200b)&lt;I(q\u200b)&#xff0c;\u5219\u8be5\u8f93\u51fa\u4f4d\u8bb0\u4e3a 1&#xff0c;\u53cd\u4e4b\u8bb0\u4e3a 0\u3002\u901a\u5e38\u751f\u6210256-bit\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>\u5728\u79bb\u7ebf\u9636\u6bb5&#xff0c;ORB\u5927\u91cf\u8bad\u7ec3\u56fe\u50cfpatch\u7edf\u8ba1\u5019\u9009\u50cf\u7d20\u5bf9&#xff0c;\u901a\u8fc7\u4ee5\u4e0b\u51c6\u5219\u7b5b\u9009\u6700\u4f18\u6d4b\u8bd5\u96c6\u5408&#xff1a;<\/p>\n<p>\u00a0&#8211; \u5355\u5bf9\u70b9\u9ad8\u65b9\u5dee&#xff1a;\u8be5\u50cf\u7d20\u5bf9\u5728\u4e0d\u540c\u56fe\u50cfpatch\u4e2d\u5e94\u5177\u6709\u63a5\u8fd150%\u76840\/1\u5206\u5e03&#xff0c;\u4f7f\u5176\u5177\u5907\u6700\u5927\u4fe1\u606f\u71b5&#xff1b;<\/p>\n<p>\u00a0&#8211; \u70b9\u5bf9\u4e4b\u95f4\u4f4e\u76f8\u5173&#xff1a;\u65b0\u52a0\u5165\u7684\u50cf\u7d20\u5bf9\u5e94\u4e0e\u5df2\u6709\u6d4b\u8bd5\u5bf9\u4fdd\u6301\u4f4e\u76f8\u5173\u6027&#xff0c;\u4ee5\u907f\u514d\u5197\u4f59\u4fe1\u606f&#xff0c;\u63d0\u9ad8\u63cf\u8ff0\u5b50\u7684\u5224\u522b\u80fd\u529b\u3002<img decoding=\"async\" alt=\"\\\\rho = \\\\frac{\\\\mathrm{Cov}(X,Y)}{D(X)\\\\,D(Y)}\" class=\"mathcode\" src=\"2026-08-162gc0zlmzbzm.png\" \/>&#xff0c;\u4e24\u4e2a\u70b9\u5bf9\u7070\u5ea6\u53d8\u5316\u8d8b\u52bf\u8d8a\u4e0d\u4e00\u6837&#xff0c;\u76f8\u5173\u6027\u8d8a\u4f4e&#xff0c;\u03c1\u22480\u65f6\u4f4e\u76f8\u5173&#xff0c;\u4fe1\u606f\u72ec\u7acb&#xff0c;\u4e92\u8865\u533a\u5206\u7279\u5f81\u3002<\/p>\n<p>\u5728\u5b9e\u9645\u8ba1\u7b97\u4e2d&#xff0c;\u4ec5\u9700\u5728\u5173\u952e\u70b9\u90bb\u57dfpatch\u4e0a\u6267\u884c\u8fd9\u4e9b\u9884\u5148\u786e\u5b9a\u7684\u50cf\u7d20\u5bf9\u6bd4\u8f83\u64cd\u4f5c&#xff0c;\u5373\u53ef\u751f\u6210rBRIEF\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"178\" src=\"2026-08-16421ettpip4g.png\" width=\"430\" \/><\/p>\n<p>&#xff08;7&#xff09;\u63cf\u8ff0\u5b50\u5339\u914d\u539f\u7406<\/p>\n<p>1.\u6c49\u660e\u8ddd\u79bb\u8ba1\u7b97\u63cf\u8ff0\u5b50\u76f8\u4f3c\u5ea6<\/p>\n<p>\u6c49\u660e\u8ddd\u79bb\u00a0d(x,y)&#061;popcount(x\u2295y)&#xff0c;popcount \u7edf\u8ba1\u4e8c\u8fdb\u5236\u4e2d1\u7684\u4e2a\u6570&#xff0c;d(x,y)\u5c31\u662f\u4e24\u4e2a\u4e8c\u8fdb\u5236\u6709\u591a\u5c11\u4e2abit\u4f4d\u4e0d\u4e00\u81f4&#xff0c;\u5339\u914d\u4e24\u4e2a\u5173\u952e\u70b9&#xff0c;\u8ddd\u79bb\u8d8a\u5c0f\u8d8a\u76f8\u4f3c\u3002\u4ec5\u5f02\u6216\u548c\u4f4d\u8fd0\u7b97&#xff0c;\u6b27\u5f0f\u8ddd\u79bb\u9700\u8981\u6d6e\u70b9\u4e58\u52a0\u8fd0\u7b97\u3002<\/p>\n<p>2.\u7b5b\u9009\u4e0e\u53bb\u8bef\u5339\u914d&#xff1a;<\/p>\n<p>\u00a0&#8211; \u6c49\u660e\u8ddd\u79bb\u9608\u503c\u521d\u7b5b\u9009\u5feb\u901f\u5254\u9664\u660e\u663e\u4e0d\u76f8\u4f3c\u7684\u5339\u914d&#xff0c;\u5982\u679c d(x, y) &gt; T&#xff0c;\u5219\u76f4\u63a5\u8ba4\u4e3a\u4e0d\u5339\u914d&#xff08;T \u662f\u7ecf\u9a8c\u9608\u503c&#xff08;\u5e38\u89c1\u7ea6 30&#xff5e;50&#xff0c;\u4f9d\u4efb\u52a1\u8c03\u6574&#xff09;\u3002<\/p>\n<p>\u00a0&#8211; \u6700\u8fd1\u90bb\u6bd4\u7387\u6d4b\u8bd5&#xff08;Lowe Ratio Test&#xff09;&#xff1a;\u5bf9\u6bcf\u4e2a\u7279\u5f81\u70b9\u627e\u6700\u8fd1\u90bb\u5339\u914d d1\u3001\u6b21\u8fd1\u90bb\u5339\u914d d2&#xff0c;d1 \/ d2 &lt; ratio&#xff08;\u901a\u5e38\u53d6 0.7 ~ 0.8&#xff09;&#xff0c;\u8fc7\u6ee4\u201c\u6a21\u7cca\u5339\u914d\u201d&#xff0c;\u51cf\u5c11\u91cd\u590d\u7eb9\u7406\u5bfc\u81f4\u7684\u4e00\u5bf9\u591a\u9519\u8bef\u5339\u914d\u3002<\/p>\n<p>\u00a0&#8211; \u4ea4\u53c9\u9a8c\u8bc1&#xff08;Cross Check&#xff09;&#xff1a;\u5982\u679c A \u4e2d\u70b9 Pa \u5339\u914d\u5230 B \u4e2d\u70b9 Pb&#xff0c;\u5219\u5fc5\u987b\u6ee1\u8db3\u00a0Pb \u5728 B \u4e2d\u6700\u8fd1\u90bb\u4e5f\u5fc5\u987b\u5339\u914d\u56de Pa\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u4f7f\u7528\u6700\u8fd1\u90bb\u6bd4\u7387\u6d4b\u8bd5&#xff1a;\u6700\u8fd1\u90bb\u53ef\u80fd\u4e0d\u53ef\u9760\u3002\u597d\u7684\u5339\u914d\u552f\u4e00\u6027\u5f3a d1 &lt;&lt; d2&#xff0c;\u8bf4\u660e\u6700\u50cf\u7684\u662f\u552f\u4e00\u7684&#xff0c;\u6b21\u8fd1\u7684\u660e\u663e\u5dee\u5f88\u591a\u3002\u574f\u5339\u914d d1 \u2248 d2 \u8bf4\u660e\u591a\u4e2a\u5019\u9009\u90fd\u5dee\u4e0d\u591a\u50cf&#xff0c;\u5f53\u524d\u5339\u914d\u6ca1\u6709\u552f\u4e00\u6027\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"172\" src=\"2026-08-16v2t5ssgsn2i.png\" width=\"258\" \/><\/p>\n<p>&#xff08;8&#xff09;\u5176\u5b83<\/p>\n<p>\u91c7\u6837\u6a21\u5f0f&#xff1a;\u4e00\u7ec4\u9884\u5148\u5b9a\u4e49\u7684\u50cf\u7d20\u5bf9\u4f4d\u7f6e\u96c6\u5408\u3002<\/p>\n<p>\u91c7\u6837\u6a21\u5f0f\u5750\u6807\u7cfb\u65cb\u8f6c&#xff1a;\u4ee5\u7279\u5f81\u5173\u952e\u70b9\u4e3a\u5750\u6807\u539f\u70b9&#xff0c;\u6839\u636e\u5173\u952e\u70b9\u4e3b\u65b9\u5411 \u03b8&#xff0c;\u7528\u65cb\u8f6c\u77e9\u9635\u628a\u539f\u59cb\u91c7\u6837\u70b9\u65cb\u8f6c\u5bf9\u9f50\u3002<\/p>\n<p>\u91c7\u6837\u6a21\u5f0f\u7f29\u653e&#xff1a;\u6839\u636e\u5c3a\u5ea6 \u03c3&#xff0c;\u5bf9\u91c7\u6837\u70b9\u534a\u5f84\u8fdb\u884c\u7f29\u653e<\/p>\n<p>\u521b\u5efaORB\u7279\u5f81\u68c0\u6d4b\u5668\u4e0e\u63cf\u8ff0\u5b50\u63d0\u53d6\u5668<br \/>\nPtr&lt;ORB&gt; cv::ORB::create(<br \/>\n    int     nfeatures &#061; 500,             \/\/ \u671f\u671b\u63d0\u53d6\u6700\u5927\u5173\u952e\u70b9\u6570\u91cf<br \/>\n    float   scaleFactor &#061; 1.2f,          \/\/ \u91d1\u5b57\u5854\u5c3a\u5ea6\u7f29\u653e\u56e0\u5b50<br \/>\n    int     nlevels &#061; 8,                 \/\/ \u91d1\u5b57\u5854\u5c3a\u5ea6\u603b\u5c42\u6570<br \/>\n    int     edgeThreshold &#061; 31,          \/\/ \u8fb9\u7f18\u7559\u767d\u9608\u503c&#xff0c;\u8fb9\u7f18\u533a\u57df\u4e0d\u68c0\u6d4b\u7279\u5f81<br \/>\n    int     firstLevel &#061; 0,              \/\/ \u8d77\u59cb\u91d1\u5b57\u5854\u5c42\u7ea7<br \/>\n    int     WTA_K &#061; 2,                   \/\/ \u751f\u6210\u63cf\u8ff0\u5b50\u6bcf\u5bf9\u70b9\u96c6\u6570\u91cf<br \/>\n    int     scoreType &#061; ORB::HARRIS_SCORE,\/\/ \u89d2\u70b9\u8bc4\u5206\u65b9\u5f0f&#xff1a;HARRIS_SCORE \/ FAST_SCORE<br \/>\n    int     patchSize &#061; 31,              \/\/ \u63cf\u8ff0\u5b50\u91c7\u6837\u90bb\u57df\u7a97\u53e3\u5927\u5c0f<br \/>\n    int     fastThreshold &#061; 20           \/\/ FAST\u89d2\u70b9\u68c0\u6d4b\u9608\u503c<br \/>\n);<\/p>\n<h5>1.4 BRISK&#xff08;Binary Robust Invariant Scalable Keypoints&#xff09;<\/h5>\n<p>\u4e8c\u8fdb\u5236\u9c81\u68d2\u4e0d\u53d8\u53ef\u6269\u5c55\u5173\u952e\u70b9&#xff0c;\u4e8c\u8fdb\u5236\u5c40\u90e8\u7279\u5f81\u7b97\u6cd5&#xff0c;\u76ee\u6807\u662f\u4fdd\u6301 ORB \u7684\u9ad8\u901f &#043; \u589e\u5f3a\u5c3a\u5ea6\u4e0d\u53d8\u6027&#xff0c;ORB \u5728\u6bcf\u4e00\u5c42\u5c3a\u5ea6\u56fe\u50cf\u4e0a\u8fd0\u884c FAST \u89d2\u70b9\u68c0\u6d4b&#xff1b;BRIS K\u6bd4 ORB \u591a\u4e86\u4e00\u6b65\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u68c0\u6d4b&#xff0c;\u4e5f\u5c31\u662f\u4e0d\u4ec5\u770b\u5f53\u524d\u5c42\u662f\u4e0d\u662f\u89d2\u70b9&#xff0c;\u8fd8\u4f1a\u6bd4\u8f83\u4e0a\u4e0b\u5c3a\u5ea6\u5c42\u662f\u5426\u4e5f\u662f\u5c40\u90e8\u6781\u503c\u3002\u56e0\u6b64BRISK \u7684\u5c3a\u5ea6\u9c81\u68d2\u6027\u660e\u663e\u5f3a\u4e8e ORB\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9&#xff1a;<\/p>\n<p>1.\u5c3a\u5ea6 \/ \u65cb\u8f6c\u4e0d\u53d8&#xff1a;\u591a\u5c3a\u5ea6\u91d1\u5b57\u5854 &#043; \u4e3b\u65b9\u5411\u5f52\u4e00\u5316\u3002<\/p>\n<p>2.\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff1a;512 \u6bd4\u7279&#xff08;64 \u5b57\u8282&#xff09;&#xff0c;\u5339\u914d\u7528\u6c49\u660e\u8ddd\u79bb&#xff0c;\u6781\u5feb\u3002<\/p>\n<p>3.\u901f\u5ea6\u5feb&#xff1a;AGAST&#xff08;FAST \u7684\u5de5\u7a0b\u589e\u5f3a\u7248\u672c&#xff09; &#043; \u8f7b\u91cf\u91c7\u6837&#xff0c;\u5feb\u4e8e SIFT\/SURF&#xff0c;\u7565\u6162\u4e8e ORB\u3002<\/p>\n<p>4.\u6297\u6a21\u7cca\u5f3a&#xff1a;\u540c\u5fc3\u5706\u9ad8\u65af\u91c7\u6837&#xff0c;\u5bf9\u6a21\u7cca \/ \u566a\u58f0\u9c81\u68d2\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;<\/p>\n<p>1.\u91cd\u590d\u7eb9\u7406\u6613\u8bef\u5339\u914d&#xff08;\u540c\u6240\u6709\u5c40\u90e8\u7279\u5f81&#xff09;\u3002<\/p>\n<p>2.\u89c6\u89d2\u5f62\u53d8\u5f31\u4e8e SIFT\/SuperPoint\u3002<\/p>\n<p>&#xff08;2&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>FAST \u4e0e AGAST&#xff08;Adaptive and Generic Accelerated Segment Test&#xff09; \u6838\u5fc3\u533a\u522b&#xff1a;<\/p>\n<p>1. \u68c0\u6d4b\u5224\u5b9a\u903b\u8f91<\/p>\n<p>FAST9-16&#xff1a;\u8fde\u7eed 9 \u4e2a\u5706\u5468\u50cf\u7d20\u7070\u5ea6\u5dee\u8d85\u9608\u503c\u5373\u5224\u5b9a\u89d2\u70b9&#xff0c;\u56fa\u5b9a\u987a\u5e8f\u5206\u6bb5\u68c0\u6d4b\u3002<\/p>\n<p>AGAST&#xff1a; \u79bb\u7ebf\u5b66\u4e60\u6700\u4f18\u5224\u65ad\u5206\u652f&#xff0c;\u81ea\u9002\u5e94 &#043; \u901a\u7528\u4e8c\u53c9\u51b3\u7b56\u6811\u3002\u63d0\u524d\u7528\u6d77\u91cf\u56fe\u50cf\u8bad\u7ec3&#xff0c;\u7b97\u51fa\u6700\u5feb\u7b5b\u9664\u975e\u89d2\u70b9\u7684\u50cf\u7d20\u6bd4\u5bf9\u987a\u5e8f&#xff0c;\u56fa\u5316\u5224\u5b9a\u5206\u652f&#xff0c;\u5f97\u5230\u51b3\u7b56\u6811&#xff0c;\u8fd0\u884c\u65f6\u6839\u636e\u5f53\u524d\u50cf\u7d20\u7070\u5ea6\u5dee\u5f02&#xff0c;\u81ea\u52a8\u8d70\u6700\u4f18\u5206\u652f\u8def\u5f84&#xff0c;\u6bcf\u6b21\u4e8c\u5206\u7c7b\u5224\u65ad&#xff0c;\u4e0d\u65ad\u7f29\u5c0f\u8303\u56f4\u3002<\/p>\n<p>2.\u5c3a\u5ea6\u5904\u7406\u80fd\u529b<\/p>\n<p>FAST&#xff1a;\u4ec5\u5355\u56fe\u50cf\u5c42\u68c0\u6d4b&#xff0c;\u5c3a\u5ea6\u91d1\u5b57\u5854\u5206\u5c42\u72ec\u7acb\u5224\u65ad&#xff0c;\u4e0d\u8de8\u5c3a\u5ea6\u6781\u503c\u5bf9\u6bd4\u3002<\/p>\n<p>AGAST&#xff1a;\u539f\u751f\u9002\u914d\u5c3a\u5ea6\u7a7a\u95f4&#xff0c;\u652f\u6301\u540c\u5c42 &#043; \u4e0a\u4e0b\u5c3a\u5ea6\u8054\u5408\u6781\u503c\u7b5b\u9009&#xff0c;BRISK \u7528\u5b83\u505a\u591a\u5c3a\u5ea6\u5173\u952e\u70b9\u3002<\/p>\n<p>3.\u6297\u566a\u4e0e\u7a33\u5b9a\u6027<\/p>\n<p>FAST&#xff1a;\u566a\u58f0\u6613\u8bef\u68c0\u51fa\u89d2\u70b9&#xff0c;\u91cd\u590d\u7279\u5f81\u591a\u3002<\/p>\n<p>AGAST&#xff1a;\u4f18\u5316\u5206\u6bb5\u6d4b\u8bd5\u89c4\u5219&#xff0c;\u6291\u5236\u4f2a\u89d2\u70b9&#xff0c;\u91cd\u590d\u68c0\u6d4b\u7387\u66f4\u4f4e\u3002<\/p>\n<p>AGAST corner score&#xff1a;\u6838\u5fc3\u601d\u60f3\u662f\u8fd9\u4e2a\u89d2\u70b9\u6709\u591a\u5f3a&#xff0c;\u5706\u5468\u4e0a\u6709\u8fde\u7eedN\u4e2a\u70b9\u4eae\u4e8e\u6216\u6697\u4e8e\u4e2d\u5fc3\u8d85\u8fc7\u9608\u503c&#xff0c;\u5982\u679c\u9608\u503c\u5f88\u5927\u6761\u4ef6\u4ecd\u6210\u7acb&#xff0c;\u8bf4\u660e\u8fd9\u662f\u5f88\u5f3a\u7684\u89d2\u70b9\u3002AGAST socre \u4e5f\u662fBRISK\u54cd\u5e94\u503c\u7684\u6765\u6e90&#xff0c;FAST\/AGAST \u6700\u57fa\u7840\u7248\u672c\u53ea\u662f\u6ee1\u8db3\u6761\u4ef6\u5c31\u662f\u89d2\u70b9\u3001\u4e0d\u6ee1\u8db3\u5c31\u662f\u975e\u89d2\u70b9\u7684\u4e8c\u503c\u5224\u65ad&#xff0c;\u4f46BRISK \u540e\u9762\u8fd8\u8981\u505a\u975e\u6781\u5927\u503c\u6291\u5236\u3001\u8de8\u5c3a\u5ea6\u6bd4\u8f83\u3001\u4e9a\u50cf\u7d20\u5b9a\u4f4d\u3001\u4e9a\u5c3a\u5ea6\u5b9a\u4f4d&#xff0c;\u56e0\u6b64\u5fc5\u987b\u6784\u9020\u8fde\u7eed\u7684 response\u3002<\/p>\n<p>AGAST \u54cd\u5e94\u56fe&#xff1a;\u6bcf\u4e2a\u50cf\u7d20\u90fd\u6709\u4e00\u4e2a corner score&#xff0c;\u4e8e\u662f\u6574\u5f20\u56fe\u5c31\u5f97\u5230 response map R(x,y)&#xff0c;\u5728 BRISK \u91cc\u7531\u4e8e\u6709\u5c3a\u5ea6\u7a7a\u95f4&#xff0c;\u5b9e\u9645\u4e0a\u662f R(x,y,\u03c3)\u3002<\/p>\n<p>\u4e9a\u5c3a\u5ea6\u4f18\u5316\u7528\u7684\u54cd\u5e94\u503c&#xff1a;BRISK \u5728\u5c3a\u5ea6\u65b9\u5411\u53d6&#xff1a;R(x,y,\u03c3-1)\u3001R(x,y,\u03c3)\u3001R(x,y,\u03c3&#043;1)&#xff0c;\u5373\u76f8\u540c\u7a7a\u95f4\u4f4d\u7f6e\u5728\u4e0d\u540c\u5c3a\u5ea6\u5c42\u7684AGAST score&#xff0c;\u7136\u540e\u62df\u5408\u4e00\u5143\u4e8c\u6b21\u66f2\u7ebf\u4f30\u8ba1\u771f\u6b63\u7684\u5c3a\u5ea6\u3002<\/p>\n<p>\u56fe\u50cf\u7070\u5ea6 I(x,y) \u7ecf\u8fc7 AGAST \u5f97\u5230\u89d2\u70b9\u54cd\u5e94\u56fe R(x,y)&#xff0c;\u518d\u6269\u5c55\u5230\u5c3a\u5ea6\u7a7a\u95f4R(x,y,\u03c3)&#xff0c;BRISK \u518d\u57fa\u4e8e\u8fd9\u4e9b\u54cd\u5e94\u503c\u8fdb\u884c\u5c40\u90e8\u6781\u503c\u62df\u5408\u4e0e\u8fde\u7eed\u5c3a\u5ea6\u63d2\u503c\u3002<\/p>\n<p>&#xff08;3&#xff09;\u7b97\u6cd5\u5168\u6d41\u7a0b<\/p>\n<p>\u56fe\u50cf \u2192 \u56fe\u50cf\u91d1\u5b57\u5854&#xff08;\u591a\u5c3a\u5ea6&#xff09; \u2192 AGAST \u68c0\u6d4b\u89d2\u70b9 \u2192 \u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u7b5b\u9009 \u2192 \u65b9\u5411\u4f30\u8ba1 \u2192 BRISK \u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50 \u2192 Hamming \u5339\u914d<\/p>\n<p>&#xff08;4&#xff09;\u5173\u952e\u70b9\u68c0\u6d4b<\/p>\n<p>1.\u56fe\u50cf\u91d1\u5b57\u5854&#xff1a;\u5e0c\u671b\u8ba9\u5c3a\u5ea6\u91c7\u6837\u66f4\u5bc6\u96c6&#xff0c;\u51cf\u5c11\u79bb\u6563\u5c3a\u5ea6\u91c7\u6837\u8bef\u5dee&#xff0c;\u4ece\u800c\u63d0\u9ad8\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u5b9a\u4f4d\u7cbe\u5ea6\u3002\u5305\u542b\u4e24\u4e2a\u4ea4\u9519\u7684\u7ec4\u522b\u3002<\/p>\n<p>\u00a0&#8211; \u5e38\u89c4\u5c42&#xff1a;\u7531\u539f\u59cb\u56fe\u50cf\u5f00\u59cb&#xff0c;\u8fde\u7eed\u8fdb\u884c 1\/2 \u7f29\u653e&#xff08;\u964d\u91c7\u6837&#xff09;\u5f97\u5230\u7684\u5c3a\u5ea6\u5c42\u3002<\/p>\n<p>\u00a0&#8211; \u5939\u5c42&#xff1a;\u63d2\u5165\u5728\u76f8\u90bb\u5e38\u89c4\u5c42\u4e4b\u95f4\u3002\u7b2c\u4e00\u5939\u5c42\u7531\u539f\u56fe\u7f29\u5c0f\u81f3\u539f\u6765\u7684 2\/3&#xff08;\u7ea6 1\/1.5&#xff09;\u5f97\u5230&#xff0c;\u5176\u4f59\u5939\u5c42\u518d\u7ee7\u7eed\u8fdb\u884c 1\/2 \u7f29\u653e\u751f\u6210\u3002<\/p>\n<p>2. AGAST \u5173\u952e\u70b9\u68c0\u6d4b<\/p>\n<p>AGAST\u672c\u8d28\u4e0a\u5c5e\u4e8eFAST\u7c7b\u89d2\u70b9\u68c0\u6d4b\u5668&#xff0c;\u5176\u6838\u5fc3\u601d\u60f3\u4ecd\u7136\u662f\u82e5\u5706\u5468\u4e0a\u5b58\u5728\u8fde\u7eed\u82e5\u5e72\u50cf\u7d20\u660e\u663e\u4eae\u4e8e\u6216\u6697\u4e8e\u4e2d\u5fc3\u50cf\u7d20&#xff0c;\u5219\u8be5\u70b9\u53ef\u80fd\u4e3a\u89d2\u70b9\u3002\u4f7f\u7528\u81ea\u9002\u5e94\u51b3\u7b56\u6811&#xff08;Adaptive Decision Tree&#xff09;\u51cf\u5c11\u65e0\u6548\u6bd4\u8f83\u6b21\u6570\u3002\u4e0d\u540c\u4e8e\u56fa\u5b9a\u987a\u5e8f\u68c0\u6d4b16\u4e2a\u5706\u5468\u70b9&#xff0c;AGAST\u901a\u8fc7\u7edf\u8ba1\u5b66\u4e60\u5f97\u5230\u66f4\u4f18\u7684\u68c0\u6d4b\u987a\u5e8f&#xff0c;\u7b97\u6cd5\u4f1a\u4f18\u5148\u68c0\u6d4b\u533a\u5206\u80fd\u529b\u66f4\u5f3a\u3001\u4fe1\u606f\u91cf\u66f4\u5927\u7684\u91c7\u6837\u70b9&#xff0c;\u4ece\u800c\u5c3d\u53ef\u80fd\u63d0\u524d\u5224\u5b9a\u201c\u662f\u5426\u4e3a\u89d2\u70b9\u201d\u3002<\/p>\n<p>\u00a0&#8211; \u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u68c0\u6d4b&#xff1a;\u4e00\u4e2a\u5173\u952e\u70b9\u9700\u8981\u5728\u5f53\u524d\u56fe\u50cf\u5c42\u5c40\u90e8\u90bb\u57df\u548c\u4e0a\u4e0b\u5c3a\u5ea6\u5c42\u4e2d\u4fdd\u6301\u5c40\u90e8\u6781\u503c&#xff0c;\u624d\u80fd\u88ab\u4fdd\u7559\u3002<\/p>\n<p>\u00a0&#8211; \u4e9a\u50cf\u7d20\u4e0e\u4e9a\u5c3a\u5ea6\u7cbe\u7ec6\u5316&#xff1a;FAST \/ AGAST \u521d\u59cb\u68c0\u6d4b\u5f97\u5230\u7684\u53ea\u662f\u79bb\u6563\u50cf\u7d20\u7ea7\u7ed3\u679c&#xff0c;\u800c\u771f\u5b9e\u6781\u503c\u901a\u5e38\u4e0d\u521a\u597d\u6574\u6570\u843d\u5728\u50cf\u7d20\u683c\u70b9\u4e0a&#xff0c;\u56e0\u6b64\u9700\u8981\u62df\u5408\u8fde\u7eed\u66f2\u9762\u4f30\u8ba1\u771f\u6b63\u6781\u503c\u4f4d\u7f6e\u3002BRISK\u4f1a\u4f18\u5316\u7a7a\u95f4\u4f4d\u7f6e (x,y) \u5f97\u5230\u4e9a\u50cf\u7d20\u5b9a\u4f4d&#xff0c;\u4f18\u5316\u5c3a\u5ea6 \u03c3 \u5f97\u5230\u4e9a\u5c3a\u5ea6\u5b9a\u4f4d\u3002<\/p>\n<p>\u00a0 \u00a0&#8211; \u4e9a\u50cf\u7d20\u5b9a\u4f4d&#xff1a;\u7b97\u6cd5\u63d0\u53d6\u8be5\u5173\u952e\u70b9\u5468\u56f4 3\u00d73\u00a0\u90bb\u57df\u5185\u7684 AGAST \u54cd\u5e94\u503c&#xff0c;\u5728\u7a7a\u95f4\u90bb\u57df\u5185\u5bf9\u8fd9\u4e9b\u79bb\u6563\u54cd\u5e94\u8fdb\u884c\u5c40\u90e8\u4e8c\u6b21\u66f2\u9762\u62df\u5408&#xff08;Quadratic Surface Fitting&#xff09;&#xff0c;\u968f\u540e\u901a\u8fc7\u6c42\u89e3\u8be5\u8fde\u7eed\u4e8c\u6b21\u66f2\u9762\u7684\u6781\u503c\u4f4d\u7f6e&#xff0c;\u83b7\u5f97\u66f4\u52a0\u7cbe\u786e\u7684\u4e9a\u50cf\u7d20\u7ea7\u5173\u952e\u70b9\u5750\u6807\u3002<\/p>\n<p>\u00a0 \u00a0&#8211; \u4e9a\u5c3a\u5ea6\u5b9a\u4f4d&#xff1a;\u5bf9\u4e8e\u67d0\u4e2a\u5019\u9009\u5173\u952e\u70b9&#xff0c;\u7b97\u6cd5\u4f1a\u53d6\u5f53\u524d\u5c3a\u5ea6\u5c42\u7684\u54cd\u5e94\u503c\u3001\u4e0a\u4e0b\u76f8\u90bb\u5c3a\u5ea6\u5c42\u7684\u54cd\u5e94\u503c\u3002\u7531\u4e8e\u56fe\u50cf\u91d1\u5b57\u5854\u4e2d\u7684\u5c3a\u5ea6\u5c42\u672c\u8d28\u4e0a\u662f\u79bb\u6563\u91c7\u6837&#xff0c;\u800c\u771f\u5b9e\u6700\u4f73\u5c3a\u5ea6\u901a\u5e38\u4f4d\u4e8e\u4e24\u4e2a\u5c3a\u5ea6\u5c42\u4e4b\u95f4&#xff0c;\u56e0\u6b64 BRISK \u4f1a\u5229\u7528\u8fd9\u4e09\u4e2a\u54cd\u5e94\u503c&#xff0c;\u5728\u5c3a\u5ea6\u8f74\u4e0a\u62df\u5408\u4e00\u4e2a\u4e00\u5143\u4e8c\u6b21\u51fd\u6570&#xff08;\u5c40\u90e8\u629b\u7269\u7ebf&#xff09;\u3002\u901a\u8fc7\u6c42\u53d6\u8be5\u629b\u7269\u7ebf\u7684\u6781\u503c\u4f4d\u7f6e&#xff0c;\u7b97\u6cd5\u53ef\u4ee5\u4f30\u8ba1\u51fa\u8fde\u7eed\u5c3a\u5ea6\u7a7a\u95f4\u4e2d\u7684\u771f\u5b9e\u6781\u503c\u5c3a\u5ea6 \u03c3&#xff0c;\u800c\u4e0d\u662f\u4ec5\u505c\u7559\u5728\u79bb\u6563\u91d1\u5b57\u5854\u5c42\u7ea7\u4e0a\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"397\" src=\"2026-08-162but22n54z4.png\" width=\"363\" \/><\/p>\n<p>&#xff08;5&#xff09;\u63cf\u8ff0\u5b50\u8ba1\u7b97\u539f\u7406<\/p>\n<p>1.\u540c\u5fc3\u5706\u91c7\u6837\u7f51\u7edc<\/p>\n<p>BRISK \u5728\u5173\u952e\u70b9\u5468\u56f4\u6784\u5efa\u591a\u4e2a\u79bb\u6563\u540c\u5fc3\u5706\u73af&#xff0c;\u6bcf\u4e2a\u5706\u73af\u4e0a\u5747\u5300\u5206\u5e03\u82e5\u5e72\u91c7\u6837\u70b9&#xff0c;\u6574\u4e2a\u91c7\u6837\u7f51\u7edc\u603b\u5171\u5305\u542b N&#061;60\u4e2a\u91c7\u6837\u70b9&#xff08;\u5305\u62ec\u4e2d\u5fc3\u70b9&#xff09;\u3002\u8fd9\u4e9b\u91c7\u6837\u70b9\u5728\u7a7a\u95f4\u4e2d\u5f62\u6210\u65cb\u8f6c\u5bf9\u79f0\u7684\u5706\u5f62\u62d3\u6251\u7ed3\u6784&#xff0c;\u56e0\u6b64\u5929\u7136\u9002\u5408\u540e\u7eed\u65cb\u8f6c\u5bf9\u9f50\u64cd\u4f5c\u3002<\/p>\n<p>\u4e0e BRIEF \u5bf9\u6574\u4e2a patch \u4f7f\u7528\u7edf\u4e00\u5e73\u6ed1\u4e0d\u540c&#xff0c;BRISK \u4e3a\u6bcf\u4e00\u4e2a\u91c7\u6837\u70b9\u5355\u72ec\u7ed1\u5b9a\u5c40\u90e8\u9ad8\u65af\u6838\u3002\u5bf9\u4e8e\u91c7\u6837\u70b9 pi&#xff0c;\u5176\u5bf9\u5e94\u9ad8\u65af\u6838\u5c3a\u5ea6&#xff1a;\u03c3i \u221d di&#xff0c;\u5176\u4e2d di \u4e3a\u91c7\u6837\u70b9\u5230\u5173\u952e\u70b9\u4e2d\u5fc3\u7684\u8ddd\u79bb&#xff1b;\u8ddd\u79bb\u8d8a\u8fdc&#xff0c;\u9ad8\u65af\u6838\u8d8a\u5927\u3002\u56e0\u6b64\u9760\u8fd1\u4e2d\u5fc3\u7684\u91c7\u6837\u70b9\u4fdd\u7559\u66f4\u591a\u9ad8\u9891\u7eb9\u7406\u7ec6\u8282&#xff1b;\u8fdc\u79bb\u4e2d\u5fc3\u7684\u91c7\u6837\u70b9\u8fdb\u884c\u66f4\u5f3a\u5e73\u6ed1&#xff0c;\u4ece\u800c\u6291\u5236\u566a\u58f0\u4e0e\u5c40\u90e8\u6270\u52a8\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"468\" src=\"2026-08-16l4y2ivcpnmm.png\" width=\"473\" \/><\/p>\n<p>2.\u70b9\u5bf9\u6784\u5efa<\/p>\n<p>\u5bf9\u4e8e60\u4e2a\u91c7\u6837\u70b9&#xff0c;\u4e24\u4e24\u7ec4\u5408\u53ef\u5f62\u6210 60\u00d759\/2&#061;1770 \u4e2a\u91c7\u6837\u70b9\u5bf9(pi,pj)&#xff0c;BRISK \u6839\u636e\u70b9\u5bf9\u4e4b\u95f4\u7684\u6b27\u6c0f\u8ddd\u79bb d(pi,pj) \u5c06\u8fd9\u4e9b\u70b9\u5bf9\u5212\u5206\u4e3a\u4e24\u7c7b&#xff1a;<\/p>\n<p>\u77ed\u8ddd\u79bb\u70b9\u5bf9&#xff1a;\u82e5 d(pi\u200b,pj\u200b)&lt;\u03b4max&#xff08;\u8bbe\u5b9a\u7684\u6700\u5927\u200b\u8ddd\u79bb\u9608\u503c&#xff09;&#xff0c;\u5219\u5c5e\u4e8e\u77ed\u8ddd\u79bb\u70b9\u5bf9\u96c6\u5408 S&#xff0c;\u77ed\u8ddd\u79bb\u70b9\u5bf9\u4e3b\u8981\u53cd\u6620\u5c40\u90e8\u7eb9\u7406\u4e0e\u7ec6\u7c92\u5ea6\u7070\u5ea6\u53d8\u5316&#xff0c;\u56e0\u6b64\u7528\u4e8e\u540e\u7eed\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u7f16\u7801\u3002<\/p>\n<p>\u957f\u8ddd\u79bb\u70b9\u5bf9&#xff1a;\u82e5&#xff1a;d(pi\u200b,pj\u200b)&gt;\u03b4min &#xff08;\u8bbe\u5b9a\u7684\u6700\u5c0f\u8ddd\u79bb\u9608\u503c&#xff09;&#xff0c;\u5219\u5c5e\u4e8e\u957f\u8ddd\u79bb\u70b9\u5bf9\u96c6\u5408 L&#xff0c;\u957f\u8ddd\u79bb\u70b9\u5bf9\u7a7a\u95f4\u8de8\u5ea6\u8f83\u5927&#xff0c;\u66f4\u80fd\u53cd\u6620\u5c40\u90e8\u533a\u57df\u6574\u4f53\u7070\u5ea6\u5206\u5e03\u8d8b\u52bf&#xff0c;\u56e0\u6b64\u7528\u4e8e\u65b9\u5411\u4f30\u8ba1\u3002\u200b<\/p>\n<p>3.\u957f\u8ddd\u79bb\u70b9\u5bf9\u4f30\u8ba1\u4e3b\u65b9\u5411<\/p>\n<p>\u4f30\u8ba1\u4e3b\u65b9\u5411&#xff1a;\u5bf9\u4e8e\u957f\u8ddd\u79bb\u70b9&#xff0c;\u7b97\u6cd5\u8ba1\u7b97\u4e24\u70b9\u7684\u7070\u5ea6\u5dee I(pj\u200b)\u2212I(pi\u200b)&#xff0c;\u5e76\u7ed3\u5408\u5bf9\u5e94\u7a7a\u95f4\u4f4d\u79fb\u65b9\u5411 (pj\u200b\u2212pi\u200b)&#xff0c;\u6784\u9020\u5c40\u90e8\u65b9\u5411\u5411\u91cf g(pi,pj)&#xff0c;\u5bf9\u6240\u6709\u957f\u8ddd\u79bb\u70b9\u5bf9\u8fdb\u884c\u5411\u91cf\u7d2f\u52a0<img decoding=\"async\" alt=\"g = \\\\begin{bmatrix} g_x \\\\\\\\ g_y \\\\end{bmatrix} = \\\\sum_{(p_i,p_j) \\\\in \\\\mathcal{L}} g(p_i,p_j)\" class=\"mathcode\" src=\"2026-08-16xv5ztdju34g.png\" \/>&#xff0c;\u8be5\u5411\u91cf\u80fd\u591f\u8fd1\u4f3c\u8868\u793a\u5c40\u90e8\u533a\u57df\u6574\u4f53\u7070\u5ea6\u53d8\u5316\u8d8b\u52bf\u3002\u6700\u7ec8\u5173\u952e\u70b9\u4e3b\u65b9\u5411\u5b9a\u4e49\u4e3a\u00a0<img decoding=\"async\" alt=\"\\\\theta = \\\\operatorname{atan2}(g_y,\\\\,g_x)\" class=\"mathcode\" src=\"2026-08-16mttkjqey042.png\" \/>&#xff0c;\u8be5\u65b9\u5411\u7528\u4e8e\u540e\u7eed\u91c7\u6837\u6a21\u5f0f\u65cb\u8f6c&#xff0c;\u4ece\u800c\u5b9e\u73b0\u65cb\u8f6c\u4e0d\u53d8\u6027\u3002<\/p>\n<p>\u91c7\u6837\u6a21\u5f0f\u65cb\u8f6c\u5bf9\u9f50&#xff1a;\u5728\u83b7\u5f97\u4e3b\u65b9\u5411 \u03b8 \u540e&#xff0c;BRISK \u4f1a\u5bf9\u6574\u4e2a\u91c7\u6837\u7f51\u7edc\u8fdb\u884c\u65cb\u8f6c&#xff1a;<img decoding=\"async\" alt=\"S_\\\\theta = R_\\\\theta S\" class=\"mathcode\" src=\"2026-08-16fbhrojimqtk.png\" \/><\/p>\n<p>&#xff0c;S \u4e3a\u539f\u59cb\u91c7\u6837\u70b9\u96c6\u5408&#xff1b;R\u03b8 \u4e3a\u4e8c\u7ef4\u65cb\u8f6c\u77e9\u9635\u3002\u6ce8\u610f&#xff1a;\u5b9e\u9645\u65cb\u8f6c\u7684\u662f\u91c7\u6837\u5750\u6807&#xff0c;\u800c\u4e0d\u662f\u56fe\u50cf\u672c\u8eab\u3002<\/p>\n<p>4.\u5229\u7528\u77ed\u8ddd\u79bb\u70b9\u5bf9\u751f\u6210\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50<\/p>\n<p>\u5b8c\u6210\u65b9\u5411\u5bf9\u9f50\u540e&#xff0c;BRISK \u4e0d\u518d\u4f7f\u7528\u957f\u8ddd\u79bb\u70b9\u5bf9&#xff0c;\u800c\u662f\u4ec5\u5229\u7528\u77ed\u8ddd\u79bb\u70b9\u5bf9\u96c6\u5408 S \u8fdb\u884c\u5c40\u90e8\u7eb9\u7406\u7f16\u7801\u3002\u77ed\u8ddd\u79bb\u70b9\u5bf9\u7a7a\u95f4\u8ddd\u79bb\u8f83\u5c0f&#xff0c;\u56e0\u6b64\u80fd\u591f\u66f4\u654f\u611f\u5730\u53cd\u6620\u5c40\u90e8\u7eb9\u7406\u7ec6\u8282\u53d8\u5316\u3002\u5bf9\u4e8e\u6bcf\u4e00\u7ec4\u77ed\u8ddd\u79bb\u70b9\u5bf9\u6267\u884c\u7070\u5ea6\u6bd4\u8f83&#xff0c;<br \/>\n<img decoding=\"async\" alt=\"\\\\tau(p_i,p_j) = \\\\begin{cases} 1 &amp; \\\\text{if } I(p_j) &gt; I(p_i) \\\\\\\\ 0 &amp; \\\\text{otherwise} \\\\end{cases}\" class=\"mathcode\" src=\"2026-08-16yosx15hj3rc.png\" \/><\/p>\n<p>&#xff0c;\u6bcf\u6b21\u6bd4\u8f83\u751f\u62101\u4e2abit&#xff0c;\u901a\u5e38\u751f\u6210 512 bit \u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff0c;\u6700\u7ec8\u6240\u6709bit\u6309\u56fa\u5b9a\u987a\u5e8f\u62fc\u63a5\u5f62\u6210\u5b8c\u6574\u63cf\u8ff0\u5b50\u5411\u91cf&#xff1a;b&#061;(b1,b2,\u2026,b512)\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"65\" src=\"2026-08-161vq0dm4s45m.png\" width=\"211\" \/><\/p>\n<p>&#xff08;6&#xff09;\u63cf\u8ff0\u5b50\u5339\u914d\u539f\u7406<\/p>\n<p>\u540c\u6837\u662f\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff0c;\u4e0eORB\u7684\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e BRISK \u5728\u5173\u952e\u70b9\u68c0\u6d4b\u9636\u6bb5\u4f1a\u8f93\u51fa\u7ecf\u8fc7\u4e9a\u50cf\u7d20\u63d2\u503c\u4f18\u5316\u540e\u7684\u5173\u952e\u70b9\u4f4d\u7f6e\u548c\u5173\u952e\u70b9\u5bf9\u5e94\u7684\u8fde\u7eed\u5c3a\u5ea6\u503c \u03c3&#xff0c;\u56e0\u6b64\u53ef\u4ee5\u901a\u8fc7\u5c3a\u5ea6\u6bd4\u503c\u7b5b\u9009&#xff0c;\u4f8b\u5982\u03c31\u200b,\u03c32&#xff0c;<br \/>\n<img decoding=\"async\" alt=\"r=\\\\frac{min(\\\\sigma1,\\\\sigma2)}{max(\\\\sigma1,\\\\sigma2)}\" class=\"mathcode\" src=\"2026-08-16vaku23ivcda.png\" \/>&#xff0c;\u5982\u679c r&gt;Ts\u200b&#xff08;Ts\u200b \u4e3a\u7ecf\u9a8c\u5c3a\u5ea6\u9608\u503c&#xff09;&#xff0c;\u5219\u8bf4\u660e\u4e24\u4e2a\u5173\u952e\u70b9\u5c3a\u5ea6\u5dee\u5f02\u8fc7\u5927\u3002\u6b64\u65f6\u7b97\u6cd5\u4f1a\u76f4\u63a5\u62d2\u7edd\u8be5\u5339\u914d\u5019\u9009&#xff0c;\u800c\u4e0d\u518d\u7ee7\u7eed\u8ba1\u7b97\u6c49\u660e\u8ddd\u79bb&#xff0c;\u52a0\u901f\u5339\u914d\u3002<\/p>\n<p>&#xff08;7&#xff09;\u5176\u5b83<\/p>\n<p>static Ptr&lt;BRISK&gt; cv::BRISK::create(<br \/>\n    int     thresh     &#061; 30,      \/\/ FAST \u89d2\u70b9\u68c0\u6d4b\u9608\u503c<br \/>\n    int     octaves    &#061; 3,       \/\/ \u91d1\u5b57\u5854\u5c3a\u5ea6\u5c42\u6570<br \/>\n    float   patternScale &#061; 1.0f   \/\/ \u91c7\u6837\u6a21\u5f0f\u7f29\u653e\u6bd4\u4f8b<br \/>\n);<\/p>\n<table>\n<tr>\u540d\u79f0\u7c7b\u578b\u5c5e\u4e8e\u54ea\u4e2a\u5c42\u7ea7<\/tr>\n<tbody>\n<tr>\n<td>FAST<\/td>\n<td>Detector<\/td>\n<td>\u89d2\u70b9\u68c0\u6d4b\u5668<\/td>\n<\/tr>\n<tr>\n<td>Harris<\/td>\n<td>Detector<\/td>\n<td>\u89d2\u70b9\u68c0\u6d4b\u5668<\/td>\n<\/tr>\n<tr>\n<td>DoG(SIFT\u524d\u534a\u90e8\u5206)<\/td>\n<td>Detector<\/td>\n<td>\u5c3a\u5ea6\u7a7a\u95f4\u68c0\u6d4b\u5668<\/td>\n<\/tr>\n<tr>\n<td>Hessian(SURF\u524d\u534a\u90e8\u5206)<\/td>\n<td>Detector<\/td>\n<td>Hessian\u68c0\u6d4b\u5668<\/td>\n<\/tr>\n<tr>\n<td>BRIEF<\/td>\n<td>Descriptor<\/td>\n<td>\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50<\/td>\n<\/tr>\n<tr>\n<td>Rotated BRIEF<\/td>\n<td>Descriptor<\/td>\n<td>ORB\u63cf\u8ff0\u5b50<\/td>\n<\/tr>\n<tr>\n<td>FREAK<\/td>\n<td>Descriptor<\/td>\n<td>\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50<\/td>\n<\/tr>\n<tr>\n<td>SIFT Descriptor<\/td>\n<td>Descriptor<\/td>\n<td>\u6d6e\u70b9\u63cf\u8ff0\u5b50<\/td>\n<\/tr>\n<tr>\n<td>SURF Descriptor<\/td>\n<td>Descriptor<\/td>\n<td>\u6d6e\u70b9\u63cf\u8ff0\u5b50<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>SIFT \/ SURF \/ ORB \/ BRISK\u00a0\u662f&#xff1a;Detector &#043; Descriptor \u7684\u7ec4\u5408\u7b97\u6cd5<\/p>\n<h5>1.5 KAZE<\/h5>\n<p>KAZE&#xff08;\u65e5\u8bed \u201c\u98ce\u201d&#xff0c;\u53d1\u97f3 \/kaze\/&#xff09;\u662f 2012 \u5e74 ECCV \u63d0\u51fa\u7684\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4\u7279\u5f81\u3002<\/p>\n<p>\u6838\u5fc3&#xff1a;\u4e0d\u7528\u9ad8\u65af\u6a21\u7cca&#xff08;\u7ebf\u6027&#xff09;\u6784\u5efa\u5c3a\u5ea6\u7a7a\u95f4&#xff0c;\u7528\u975e\u7ebf\u6027\u6269\u6563\u5efa\u5c3a\u5ea6\u7a7a\u95f4\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9<\/p>\n<p>1. \u57fa\u4e8e\u975e\u7ebf\u6027\u6269\u6563&#xff08;Nonlinear Diffusion&#xff09;\u6784\u5efa\u5c3a\u5ea6\u7a7a\u95f4&#xff0c;\u80fd\u591f\u5728\u5e73\u5766\u533a\u57df\u5e73\u6ed1\u566a\u58f0\u3001\u5728\u8fb9\u7f18\u533a\u57df\u4fdd\u7559\u7ed3\u6784\u4fe1\u606f\u3002<\/p>\n<p>2. \u8fb9\u7f18\u4e0e\u7eb9\u7406\u4fdd\u7559\u80fd\u529b\u5f3a&#xff0c;\u7ec6\u8282\u635f\u5931\u660e\u663e\u5c0f\u4e8e\u4f20\u7edf\u9ad8\u65af\u91d1\u5b57\u5854\u3002<\/p>\n<p>3. \u5728\u5f31\u7eb9\u7406\u3001\u4f4e\u5bf9\u6bd4\u5ea6\u573a\u666f\u4e0b&#xff0c;\u7279\u5f81\u70b9\u7a33\u5b9a\u6027\u901a\u5e38\u4f18\u4e8e SIFT\u3001SURF\u3001ORB\u3002<\/p>\n<p>4. \u5bf9\u5c3a\u5ea6\u53d8\u5316\u3001\u65cb\u8f6c\u3001\u5149\u7167\u53d8\u5316\u4ee5\u53ca\u4e00\u5b9a\u7a0b\u5ea6\u7684\u5f62\u53d8\u5177\u6709\u8f83\u5f3a\u9c81\u68d2\u6027\u3002<\/p>\n<p>5. \u5728\u590d\u6742\u7eb9\u7406\u4e0e\u81ea\u7136\u573a\u666f\u4e2d&#xff0c;\u5339\u914d\u7cbe\u5ea6\u8f83\u9ad8\u3002<\/p>\n<p>\u00a0\u7f3a\u70b9<\/p>\n<p>1. \u975e\u7ebf\u6027\u6269\u6563 PDE&#xff08;\u504f\u5fae\u5206\u65b9\u7a0b&#xff09;\u8ba1\u7b97\u91cf\u8f83\u5927&#xff0c;\u901f\u5ea6\u660e\u663e\u6162\u4e8e ORB\u3001SURF\u3002<\/p>\n<p>2. \u53c2\u6570\u8f83\u654f\u611f&#xff0c;\u4f8b\u5982\u6269\u6563\u7cfb\u6570\u3001\u5c3a\u5ea6\u5c42\u6570\u3001\u9608\u503c\u7b49\u9700\u8981\u8c03\u8282\u3002<\/p>\n<p>3. \u9ed8\u8ba4\u63cf\u8ff0\u5b50\u4e3a\u6d6e\u70b9\u63cf\u8ff0\u5b50&#xff0c;\u5185\u5b58\u5360\u7528\u4e0e\u5339\u914d\u5f00\u9500\u8f83\u9ad8\u3002<\/p>\n<p>4. \u5b9e\u65f6\u6027\u8f83\u5dee&#xff0c;\u4e0d\u9002\u5408\u4f4e\u7b97\u529b\u5d4c\u5165\u5f0f\u5e73\u53f0\u3002<\/p>\n<p>5. \u5de5\u7a0b\u5b9e\u73b0\u590d\u6742\u5ea6\u9ad8\u4e8e\u4f20\u7edf\u9ad8\u65af\u5c3a\u5ea6\u7a7a\u95f4\u65b9\u6cd5\u3002<\/p>\n<p>\u4f20\u7edf\u9ad8\u65af\u91d1\u5b57\u5854\u672c\u8d28\u4e0a\u4f1a\u5bf9\u6574\u5e45\u56fe\u50cf\u8fdb\u884c\u5747\u5300\u5e73\u6ed1&#xff0c;\u9ad8\u65af\u662f\u5747\u5300\u6a21\u7cca \u2192 \u8fb9\u7f18\u533a\u57df\u88ab\u6a21\u7cca\u3001\u7eb9\u7406\u7ec6\u8282\u9010\u6e10\u6d88\u5931\u3002KAZE \u5e0c\u671b\u505a\u5230\u5728\u5e73\u5766\u533a\u57df\u8fdb\u884c\u5f3a\u5e73\u6ed1&#xff0c;\u5728\u8fb9\u7f18\u533a\u57df\u5c3d\u53ef\u80fd\u4fdd\u7559\u7ed3\u6784\u4fe1\u606f\u3002<\/p>\n<p>&#xff08;2&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4&#xff1a;\u9ad8\u65af\u6a21\u7cca\u6ee1\u8db3\u7ebf\u6027\u7cfb\u7edf&#xff0c;\u5373 aI1&#043;bI2 \u7ecf\u8fc7\u9ad8\u65af\u7b49\u4e8e aG(I1)&#043;bG(I2)\u3002\u95ee\u9898\u662f\u9ad8\u65af\u6a21\u7cca\u4f1a\u5e73\u7b49\u6a21\u7cca\u6240\u6709\u533a\u57df\u3002<\/p>\n<p>\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4&#xff1a;\u6838\u5fc3\u601d\u60f3\u662f\u4e0d\u540c\u533a\u57df&#xff0c;\u4e0d\u540c\u6a21\u7cca\u7a0b\u5ea6&#xff0c;\u8fb9\u7f18\u5c11\u6a21\u7cca&#xff0c;\u5e73\u5766\u533a\u57df\u591a\u6a21\u7cca&#xff0c;\u65e2\u964d\u566a\u53c8\u4fdd\u7559\u8fb9\u7f18&#xff0c;\u4f7f\u7528\u975e\u7ebf\u6027\u6269\u6563\u5b9e\u73b0&#xff0c;\u5178\u578b\u65b9\u6cd5\u6709 Perona-Malik Diffusion\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"346\" src=\"2026-08-16ltx3k240bjg.png\" width=\"240\" \/><\/p>\n<p>\u6269\u6563&#xff1a;\u6269\u6563\u6765\u81ea\u70ed\u4f20\u5bfc\u65b9\u7a0b\u00a0<img decoding=\"async\" alt=\"\\\\frac{\\\\partial t}{\\\\partial u}=\\\\nabla\\\\cdot(k\\\\nabla u)\" class=\"mathcode\" src=\"2026-08-16krr1vzvkwtr.png\" \/>&#xff0c;\u4f8b\u5982\u70ed\u91cf\u4f1a\u4ece\u9ad8\u6e29\u6d41\u5411\u4f4e\u6e29\u3002\u628a\u56fe\u50cf \u201c\u5f53\u6210\u6e29\u5ea6\u573a\u201d &#xff0c;\u56fe\u50cf\u7684\u7070\u5ea6\u503c I(x,y)&#xff0c;\u5c31\u53ef\u4ee5\u7c7b\u6bd4\u6210\u5e73\u9762\u4e0a\u6bcf\u4e2a\u70b9\u7684 \u201c\u6e29\u5ea6\u201d&#xff0c;\u76f8\u90bb\u50cf\u7d20\u7070\u5ea6\u5dee\u5927 &#061; \u6e29\u5dee\u5927&#xff0c;\u5c31\u4f1a\u4ea7\u751f \u201c\u7070\u5ea6\u6d41\u52a8\u201d \u7684\u8d8b\u52bf\u3002u(x,y,t)&#xff1a;\u7a7a\u95f4\u4e2d\u4f4d\u7f6e (x,y) \u5728\u65f6\u523b t \u7684\u6e29\u5ea6&#xff1b;\u2207u&#xff1a;\u6e29\u5ea6\u68af\u5ea6&#xff08;\u54ea\u91cc\u6e29\u5dee\u5927&#xff0c;\u70ed\u91cf\u5c31\u5f80\u54ea\u6d41&#xff09;&#xff1b;k&#xff1a;\u70ed\u4f20\u5bfc\u7cfb\u6570\u3002<\/p>\n<p>\u7ebf\u6027\u6269\u6563&#xff1a;\u5f53\u70ed\u4f20\u5bfc\u7cfb\u6570 k \u662f\u5e38\u6570\u65f6&#xff0c;\u65b9\u7a0b\u9000\u5316\u4e3a\u7ebf\u6027\u70ed\u4f20\u5bfc\u65b9\u7a0b&#xff1a;<img decoding=\"async\" alt=\"\\\\frac{\\\\partial I}{\\\\partial t}=\\\\Delta I\" class=\"mathcode\" src=\"2026-08-16q0znhfxvqux.png\" \/>&#xff0c;\u0394I\u00a0\u62c9\u666e\u62c9\u65af\u7b97\u5b50\u3002\u800c\u8fd9\u4e2a\u65b9\u7a0b\u7684\u89e3&#xff0c;\u5c31\u662f\u9ad8\u65af\u6a21\u7cca&#xff01;\u65f6\u95f4 t \u5bf9\u5e94\u9ad8\u65af\u6a21\u7cca\u7684\u6807\u51c6\u5dee \u03c3&#xff1a;\u65f6\u95f4\u8d8a\u957f&#xff08;t \u8d8a\u5927&#xff09;&#xff0c;\u6a21\u7cca\u7a0b\u5ea6\u8d8a\u9ad8&#xff0c;\u7070\u5ea6\u8d8a\u5747\u5300\u3002\u8fd9\u4e2a\u8fc7\u7a0b&#xff0c;\u5c31\u662f\u7070\u5ea6\u4ece\u9ad8\u503c\u5411\u4f4e\u503c\u6269\u6563&#xff0c;\u6700\u7ec8\u62b9\u5e73\u7ec6\u8282\u548c\u566a\u58f0\u3002<\/p>\n<p>\u975e\u7ebf\u6027\u6269\u6563&#xff1a;\u5982\u679c\u8ba9\u70ed\u4f20\u5bfc\u7cfb\u6570 k \u4f9d\u8d56\u4e8e\u56fe\u50cf\u68af\u5ea6&#xff08;\u6bd4\u5982\u68af\u5ea6\u5927\u7684\u5730\u65b9&#xff0c;k \u53d8\u5c0f&#xff09;&#xff0c;\u5c31\u5f97\u5230\u4e86 Perona-Malik \u7b49\u975e\u7ebf\u6027\u6269\u6563&#xff1a;\u5728\u8fb9\u7f18\u5904&#xff08;\u68af\u5ea6\u5927&#xff09;&#xff0c;\u6269\u6563\u88ab\u6291\u5236&#xff0c;\u7070\u5ea6\u4e0d\u600e\u4e48\u6d41\u52a8 &#xff0c;\u4fdd\u7559\u8fb9\u7f18&#xff1b;\u5728\u5e73\u5766\u533a\u57df&#xff08;\u68af\u5ea6\u5c0f&#xff09;&#xff0c;\u6269\u6563\u6b63\u5e38\u8fdb\u884c&#xff0c;\u5e73\u6ed1\u566a\u58f0\u3002<\/p>\n<p>\u975e\u7ebf\u6027\u6269\u6563\u65f6\u95f4&#xff08;Diffusion Time&#xff09;&#xff1a;\u56fe\u50cf\u5728\u975e\u7ebf\u6027\u6269\u6563\u65b9\u7a0b\u4e2d\u201c\u88ab\u5e73\u6ed1\u4e86\u591a\u4e45\u201d\u3002\u8d8a\u5927&#xff0c;\u6269\u6563\u65f6\u95f4\u8d8a\u957f&#xff0c;\u56fe\u50cf\u88ab\u5e73\u6ed1\u5f97\u8d8a\u5389\u5bb3&#xff0c;\u7ec6\u8282\u8d8a\u5c11&#xff0c;\u5bf9\u5e94\u66f4\u5927\u7684\u5c3a\u5ea6\u3002<\/p>\n<p>\u975e\u7ebf\u6027\u6269\u6563\u9700\u8981\u4e0d\u65ad\u8fed\u4ee3&#xff1a;\u8ba1\u7b97\u56fe\u50cf\u68af\u5ea6&#xff1b;\u6839\u636e\u68af\u5ea6\u66f4\u65b0\u6269\u6563\u7cfb\u6570 c(x,y,t)&#xff1b;\u66f4\u65b0\u50cf\u7d20\u503c&#xff1b;\u518d\u8fdb\u5165\u4e0b\u4e00\u8f6e\u8fed\u4ee3\u3002\u5982\u679c\u76f4\u63a5\u4f7f\u7528\u666e\u901a\u663e\u5f0f\u6570\u503c\u6c42\u89e3&#xff08;Explicit Scheme&#xff09;&#xff1a;\u65f6\u95f4\u6b65\u957f\u5fc5\u987b\u5f88\u5c0f&#xff1b;\u8fed\u4ee3\u6b21\u6570\u5f88\u591a&#xff1b;\u7a33\u5b9a\u6027\u8f83\u5dee&#xff1b;\u8ba1\u7b97\u91cf\u4f1a\u975e\u5e38\u5927\u3002<\/p>\n<p>&#xff08;3&#xff09;\u5b8c\u6574\u6d41\u7a0b<\/p>\n<p>1.\u6784\u5efa\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4&#xff1a;\u4e0d\u964d\u91c7\u6837&#xff0c;\u53ea\u901a\u8fc7\u6269\u6563\u53d8\u7c97&#xff0c;\u5206\u8fa8\u7387\u5168\u7a0b\u4e0d\u53d8&#xff0c;\u7279\u5f81\u5b9a\u4f4d\u66f4\u51c6\u3001\u5c0f\u7ed3\u6784\u4fdd\u7559\u66f4\u597d\u3002\u7528AOS\u89e3\u6269\u6563\u65b9\u7a0b&#xff0c;\u751f\u62100-N\u5c42&#xff0c;\u8d8a\u5f80\u4e0a\u8d8a\u7c97\u3002<\/p>\n<p>2.\u68c0\u6d4b\u7279\u5f81\u70b9&#xff08;Hessian&#xff09;\u6781\u503c\u3002<\/p>\n<p>3.\u4e3b\u65b9\u5411\u5206\u914d&#xff08;\u65cb\u8f6c\u4e0d\u53d8&#xff09;&#xff1a;\u5173\u952e\u70b9\u90bb\u57df\u7b97\u68af\u5ea6\u65b9\u5411\u76f4\u65b9\u56fe&#xff0c;\u53d6\u4e3b\u5cf0\u4e3a\u4e3b\u65b9\u5411\u3002<\/p>\n<p>4.\u751f\u6210\u63cf\u8ff0\u5b50&#xff08;\u6d6e\u70b9&#xff09;&#xff1a;\u52064*4\u5b50\u5757&#xff0c;\u6bcf\u57578\u65b9\u5411&#xff0c;128\u7ef4\u5411\u91cf&#xff0c;\u5f52\u4e00\u5316&#xff08;\u4f7f\u5f97\u5149\u7167\u4e0d\u53d8&#xff09;\u3002<\/p>\n<p>&#xff08;4&#xff09;\u5173\u952e\u70b9\u68c0\u6d4b\u539f\u7406<\/p>\n<p>1.\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4&#xff1a; KAZE \u5f15\u5165\u57fa\u4e8e\u504f\u5fae\u5206\u65b9\u7a0b&#xff08;PDE&#xff09;\u7684\u975e\u7ebf\u6027\u6269\u6563\u6a21\u578b&#xff1a;<img decoding=\"async\" alt=\"\\\\frac{\\\\partial I_L}{\\\\partial t} = \\\\text{div}\\\\left( c(x,y,t) \\\\nabla I_L \\\\right)\" class=\"mathcode\" src=\"2026-08-16lwo2ymgasgl.png\" \/>&#xff0c;c(x,y,t) \u4e3a\u6269\u6563\u7cfb\u6570&#xff0c;\u4f1a\u6839\u636e\u5c40\u90e8\u68af\u5ea6\u52a8\u6001\u53d8\u5316&#xff1a;\u8fb9\u7f18\u533a\u57df\u68af\u5ea6\u5927 \u2192 \u6269\u6563\u51cf\u5f31&#xff1b;\u5e73\u5766\u533a\u57df\u68af\u5ea6\u5c0f \u2192 \u6269\u6563\u589e\u5f3a\u3002\u56e0\u6b64 KAZE \u7684\u5c3a\u5ea6\u7a7a\u95f4\u80fd\u591f\u5728\u6291\u5236\u566a\u58f0\u7684\u540c\u65f6&#xff0c;\u66f4\u597d\u4fdd\u7559\u76ee\u6807\u8fb9\u7f18\u4e0e\u7eb9\u7406\u7ed3\u6784\u3002\u975e\u7ebf\u6027\u6269\u6563\u672c\u8eab\u9700\u8981\u4e0d\u65ad\u8fed\u4ee3\u6c42\u89e3\u504f\u5fae\u5206\u65b9\u7a0b&#xff08;\u6bcf\u4e00\u6b65\u90fd\u8981\u7b97\u68af\u5ea6\u3001\u6269\u6563\u7cfb\u6570\u3001\u66f4\u65b0\u50cf\u7d20&#xff09;&#xff0c;\u5982\u679c\u76f4\u63a5\u6570\u503c\u6c42\u89e3&#xff0c;\u8ba1\u7b97\u91cf\u4f1a\u975e\u5e38\u5927&#xff0c;\u4f7f\u7528 AOS \u8fdb\u884c\u5feb\u901f\u6570\u503c\u6c42\u89e3\u3002\u3002<\/p>\n<p>2.AOS&#xff08;Additive Operator Splitting&#xff0c;\u52a0\u6027\u7b97\u5b50\u5206\u88c2&#xff09;&#xff1a;\u5c5e\u4e8e\u9690\u5f0f \/ \u534a\u9690\u5f0f\u6570\u503c\u65b9\u6cd5&#xff0c;<br \/>\n<img decoding=\"async\" alt=\"\\\\frac{L^{t+1} - L^t}{\\\\tau} = \\\\sum_{d=1}^{D} A_d L^{t+1}\" class=\"mathcode\" src=\"2026-08-16qx03cv41lk2.png\" \/>&#xff0c;\u66f4\u65b0\u00a0<img decoding=\"async\" alt=\"L_{t+1}\" class=\"mathcode\" src=\"2026-08-16bje35aorpdm.png\" \/> \u65f6&#xff0c;\u53f3\u8fb9\u4e5f\u7528<img decoding=\"async\" alt=\"L_{t+1}\" class=\"mathcode\" src=\"2026-08-16bje35aorpdm.png\" \/>&#xff08;\u672a\u77e5\u91cf&#xff09;&#xff0c;\u6240\u4ee5\u8981\u89e3\u65b9\u7a0b\u3002<img decoding=\"async\" alt=\"L_{t+1}\" class=\"mathcode\" src=\"2026-08-16bje35aorpdm.png\" \/>\u540c\u65f6\u51fa\u73b0\u5728\u5de6\u53f3\u4e24\u8fb9 \u2192 \u9690\u5f0f\u3002<\/p>\n<p>3.Hessian \u54cd\u5e94\u5173\u952e\u70b9\u3001\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u68c0\u6d4b\u3002<\/p>\n<p>\u5982\u4f55\u4fdd\u8bc1\u5c3a\u5ea6\u4e0d\u53d8\u6027&#xff1a;\u975e\u7ebf\u6027\u6269\u6563<img decoding=\"async\" alt=\"\\\\frac{\\\\partial I_L}{\\\\partial t} = \\\\text{div}\\\\left( c(x,y,t) \\\\nabla I_L \\\\right)\" class=\"mathcode\" src=\"2026-08-16lwo2ymgasgl.png\" \/>&#xff0c;\u8fd9\u91cc\u7684 t \u5c31\u662f\u6269\u6563\u65f6\u95f4&#xff0c;\u968f\u7740\u6269\u6563\u65f6\u95f4 t \u7684\u589e\u5927&#xff0c;\u56fe\u50cf\u4f1a\u8d8a\u6765\u8d8a\u5e73\u6ed1&#xff08;\u5c0f\u7ed3\u6784\u9010\u6e10\u6d88\u5931&#xff09;&#xff0c;\u56e0\u6b64\u4e0d\u540c\u6269\u6563\u65f6\u95f4 &#061; \u4e0d\u540c\u89c2\u5bdf\u5c3a\u5ea6\u3002KAZE\u5728\u591a\u4e2a\u5c3a\u5ea6\u4e0a\u68c0\u6d4b\u5173\u952e\u70b9&#xff0c;\u5373\u7b97\u6cd5\u4f1a\u5728 t1,t2,t3&#8230; \u591a\u4e2a\u6269\u6563\u5c42\u4e2d\u5bfb\u627e\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c&#xff0c;\u5982\u679c\u67d0\u7ed3\u6784\u5728\u67d0\u4e2a\u6269\u6563\u5c3a\u5ea6\u4e0b\u54cd\u5e94\u6700\u5f3a&#xff0c;\u90a3\u4e48\u8be5\u5c3a\u5ea6\u5c31\u88ab\u8bb0\u5f55\u4e3a\u7279\u5f81\u70b9\u5c3a\u5ea6\u03c3\u3002<\/p>\n<p>4.\u4e9a\u50cf\u7d20\u4e0e\u4e9a\u5c3a\u5ea6\u7cbe\u7ec6\u5316&#xff1a;<\/p>\n<p>\u00a0&#8211; KAZE \u4f1a\u5728\u7a7a\u95f4\u90bb\u57df\u5185\u5bf9 Hessian \u54cd\u5e94\u8fdb\u884c\u5c40\u90e8\u4e8c\u6b21\u66f2\u9762\u62df\u5408&#xff08;Quadratic Surface Fitting&#xff09;&#xff0c;\u901a\u8fc7\u6c42\u53d6\u8fde\u7eed\u66f2\u9762\u7684\u6781\u503c\u4f4d\u7f6e&#xff0c;\u5b9e\u73b0\u5173\u952e\u70b9\u7684\u4e9a\u50cf\u7d20\u7ea7\u5b9a\u4f4d\u3002<\/p>\n<p>\u00a0&#8211; KAZE \u540c\u65f6\u4f1a\u5728\u5c3a\u5ea6\u8f74\u4e0a\u5bf9\u76f8\u90bb\u5c3a\u5ea6\u5c42\u54cd\u5e94\u8fdb\u884c\u63d2\u503c\u62df\u5408&#xff0c;\u4ece\u800c\u4f30\u8ba1\u8fde\u7eed\u5c3a\u5ea6\u7a7a\u95f4\u4e2d\u7684\u771f\u5b9e\u6781\u503c\u5c3a\u5ea6 \u03c3&#xff0c;\u63d0\u9ad8\u5c3a\u5ea6\u4f30\u8ba1\u7a33\u5b9a\u6027\u3002<\/p>\n<p>&#xff08;5&#xff09;\u4e3b\u65b9\u5411\u4f30\u8ba1\u539f\u7406<\/p>\n<p>\u65b9\u5411\u4f30\u8ba1\u65b9\u6cd5\u4e0e SURF \u8f83\u4e3a\u63a5\u8fd1&#xff0c;\u4e3b\u8981\u57fa\u4e8e\u5c40\u90e8\u68af\u5ea6\u7edf\u8ba1\u3002\u5728\u5173\u952e\u70b9\u5468\u56f4\u90bb\u57df\u5185&#xff0c;\u8ba1\u7b97\u50cf\u7d20 x,y \u65b9\u5411\u68af\u5ea6\u5e76\u4f7f\u7528\u9ad8\u65af\u51fd\u6570\u52a0\u6743\u3002\u4f7f\u7528\u6ed1\u52a8\u89d2\u5ea6\u7a97\u53e3&#xff0c;\u7edf\u8ba1\u7a97\u53e3\u5185\u68af\u5ea6\u5411\u91cf\u603b\u548c&#xff0c;\u68af\u5ea6\u5411\u91cf\u548c\u6700\u5927\u7684\u65b9\u5411\u88ab\u5b9a\u4e49\u4e3a\u5173\u952e\u70b9\u4e3b\u65b9\u5411\u3002<\/p>\n<p>&#xff08;6&#xff09;\u63cf\u8ff0\u5b50\u8ba1\u7b97\u539f\u7406<\/p>\n<p>KAZE \u9ed8\u8ba4\u4f7f\u7528\u57fa\u4e8e SURF \u6539\u8fdb\u7684\u6d6e\u70b9\u63cf\u8ff0\u5b50&#xff0c;\u5176\u6838\u5fc3\u601d\u60f3\u662f&#xff1a;\u5728\u5173\u952e\u70b9\u90bb\u57df\u7edf\u8ba1\u5c40\u90e8\u68af\u5ea6\u5206\u5e03&#xff0c;\u5e76\u7f16\u7801\u5c40\u90e8\u7ed3\u6784\u4fe1\u606f\u3002<\/p>\n<p>1.\u65b9\u5411\u5bf9\u9f50\u90bb\u57df&#xff1a;\u5728\u83b7\u5f97\u5173\u952e\u70b9\u4e3b\u65b9\u5411\u4e4b\u540e&#xff0c;KAZE \u4f1a\u4ee5\u5173\u952e\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u5c06\u5706\u5f62\u90bb\u57df\u6574\u4f53\u4f9d\u7167\u6c42\u89e3\u51fa\u7684\u4e3b\u65b9\u5411\u505a\u65cb\u8f6c\u53d8\u6362\u3002<\/p>\n<p>2.\u5b50\u533a\u57df\u5212\u5206&#xff1a;\u5c06\u5c40\u90e8\u90bb\u57df\u5212\u5206\u4e3a\u591a\u4e2a\u5b50\u533a\u57df&#xff0c;\u4f8b\u59824*4\u7f51\u683c\u3002\u6bcf\u4e2a\u5b50\u533a\u57df\u5206\u522b\u7edf\u8ba1\u5c40\u90e8\u68af\u5ea6\u4fe1\u606f\u3002<\/p>\n<p>3.\u68af\u5ea6\u7edf\u8ba1\u7f16\u7801&#xff1a;\u5bf9\u4e8e\u6bcf\u4e2a\u5b50\u533a\u57df&#xff0c;\u7edf\u8ba1&#xff1a;\u2211dx\u3001\u2211dy\u3001\u2211\u2223dx\u2223\u3001\u2211\u2223dy\u2223&#xff0c;\u8fd9\u4e9b\u7edf\u8ba1\u91cf\u80fd\u591f\u53cd\u6620\u5c40\u90e8\u8fb9\u7f18\u65b9\u5411\u3001\u7070\u5ea6\u53d8\u5316\u5f3a\u5ea6\u3001\u7eb9\u7406\u7ed3\u6784\u5206\u5e03\u3002<\/p>\n<p>4.\u6d6e\u70b9\u63cf\u8ff0\u5b50\u751f\u6210&#xff1a;\u5c06\u6240\u6709\u5b50\u533a\u57df\u7684\u56db\u7ef4\u7edf\u8ba1\u91cf\u4f9d\u6b21\u62fc\u63a5\u7ec4\u5408&#xff0c;\u5f62\u6210\u56fa\u5b9a\u7ef4\u5ea6\u6d6e\u70b9\u5411\u91cf\u300216 \u4e2a\u5b50\u533a\u57df\u53ef\u751f\u621064 \u7ef4\u6d6e\u70b9\u63cf\u8ff0\u5b50&#xff0c;\u7ec6\u5206\u91c7\u6837\u53ef\u6269\u5c55\u4e3a 128 \u7ef4\u6d6e\u70b9\u63cf\u8ff0\u5b50\u3002<\/p>\n<h5>1.6 AKAZE&#xff08;Accelerated KAZE&#xff09;<\/h5>\n<p>\u52a0\u901f\u7248 KAZE \u7279\u5f81&#xff0c;\u5176\u6838\u5fc3\u76ee\u6807\u662f\u5728\u4fdd\u7559 KAZE \u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4\u4f18\u52bf\u7684\u540c\u65f6&#xff0c;\u5927\u5e45\u63d0\u9ad8\u5b9e\u65f6\u6027\u80fd\u3002\u4fdd\u7559\u975e\u7ebf\u6027\u6269\u6563\u5c3a\u5ea6\u7a7a\u95f4&#xff0c;\u4f46\u91c7\u7528\u66f4\u9ad8\u6548\u7684\u5c40\u90e8\u4e8c\u503c\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>KAZE \u7684\u75db\u70b9&#xff1a;1.\u7528 AOS \u9690\u5f0f\u6c42\u89e3 \u975e\u7ebf\u6027\u6269\u6563&#xff0c;\u8fed\u4ee3\u91cd\u3001\u8ba1\u7b97\u6781\u6162\u30022.\u63cf\u8ff0\u5b50\u662f\u6d6e\u70b9\u5411\u91cf&#xff0c;\u5339\u914d\u6162\u30023.\u65e0\u6cd5\u5b9e\u65f6\u7528\u4e8e\u89c6\u9891 \/ SLAM\u3002<\/p>\n<p>AKAZE \u5c31\u662f\u9488\u5bf9\u6027\u628a\u8fd9\u4e24\u4e2a\u74f6\u9888\u6362\u6389&#xff1a;1.\u6362\u6269\u6563\u6c42\u89e3\u65b9\u5f0f&#xff1a;AOS \u2192 FED\u30022.\u6362\u63cf\u8ff0\u5b50&#xff1a;\u6d6e\u70b9 \u2192 \u4e8c\u8fdb\u5236 M-LDB<\/p>\n<p>&#xff08;1&#xff09;\u5b8c\u6574\u6d41\u7a0b<\/p>\n<p>1.FED \u6784\u5efa\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4&#xff1a;\u4e0d\u9ad8\u65af\u6a21\u7cca&#xff0c;\u8fb9\u7f18\u4fdd\u62a4\u5f0f\u5e73\u6ed1&#xff0c;\u4e0d\u964d\u91c7\u6837\u3002<\/p>\n<p>2.Hessian \u77e9\u9635\u68c0\u6d4b\u5173\u952e\u70b9&#xff1a;\u548c KAZE \u4e00\u6837&#xff0c;\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u68c0\u6d4b\u3002<\/p>\n<p>3.\u8ba1\u7b97\u7279\u5f81\u4e3b\u65b9\u5411&#xff1a;\u4fdd\u8bc1\u65cb\u8f6c\u4e0d\u53d8\u3002<\/p>\n<p>4.\u751f\u6210 MLDB \u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff1a;\u6700\u7ec8\u5f97\u5230\u4e8c\u8fdb\u5236\u7279\u5f81\u5411\u91cf\u3002<\/p>\n<p>&#xff08;2&#xff09;\u5173\u952e\u70b9\u68c0\u6d4b\u539f\u7406<\/p>\n<p>1.\u6784\u5efa\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4\u3002<\/p>\n<p>2.Fast Explicit Diffusion&#xff08;FED&#xff09;\u52a0\u901f\u6269\u6563&#xff1a;\u6838\u5fc3\u76ee\u6807\u662f\u51cf\u5c11\u6269\u6563\u8fed\u4ee3\u6b21\u6570&#xff0c;\u540c\u65f6\u4fdd\u6301\u7a33\u5b9a\u6027\u3002<img decoding=\"async\" alt=\"L_{t+1} = L_t + \\\\tau A(L_t)\" class=\"mathcode\" src=\"https:\/\/latex.csdn.net\/eq?L_%7Bt&amp;plus;1%7D%20%3D%20L_t%20&amp;plus;%20%5Ctau%20A%28L_t%29\" \/>&#xff0c;\u03c4 \u662f\u65f6\u95f4\u6b65\u957f&#xff0c;A(\u22c5) \u5dee\u5206\u8fd1\u4f3c\u7684\u62c9\u666e\u62c9\u65af&#xff0c;\u53f3\u8fb9\u5168\u662f<img decoding=\"async\" alt=\"L_t\" class=\"mathcode\" src=\"2026-08-164badszeeob2.png\" \/> &#xff08;\u5df2\u77e5&#xff09;\u2192 \u663e\u5f0f,&#xff0c;\u4e0d\u9700\u8981\u89e3\u65b9\u7a0b&#xff0c;\u76f4\u63a5\u663e\u5f0f\u66f4\u65b0\u3002\u666e\u901a\u65b9\u6cd5\u65f6\u95f4\u6b65\u957f\u6bcf\u6b65\u90fd\u5f88\u5c0f&#xff0c;FED \u4f7f\u7528\u4e00\u7ec4\u7279\u6b8a\u8bbe\u8ba1\u7684\u53d8\u5316\u6b65\u957f&#xff0c;\u5141\u8bb8\u67d0\u4e9b\u6b65\u9aa4\u8de8\u5ea6\u6269\u6563\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"108\" src=\"2026-08-16fpg2cjcthch.png\" width=\"361\" \/><\/p>\n<p>3. Hessian \u54cd\u5e94\u5173\u952e\u70b9\u68c0\u6d4b\u3001\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c\u68c0\u6d4b\u3001\u4e9a\u50cf\u7d20\u4e0e\u4e9a\u5c3a\u5ea6\u5b9a\u4f4d\u3002<\/p>\n<p>4.\u4e3b\u65b9\u5411\u4f30\u8ba1&#xff1a;AKAZE \u7684\u65b9\u5411\u4f30\u8ba1\u4e0e KAZE \u57fa\u672c\u4e00\u81f4\u3002\u7b97\u6cd5\u5728\u5173\u952e\u70b9\u90bb\u57df\u5185\u7edf\u8ba1\u5c40\u90e8\u68af\u5ea6\u65b9\u5411&#xff0c;\u5e76\u5bfb\u627e\u4e3b\u5bfc\u65b9\u5411 \u03b8&#xff0c;\u968f\u540e\u91c7\u6837\u6a21\u5f0f\u4f1a\u56f4\u7ed5\u8be5\u65b9\u5411\u8fdb\u884c\u65cb\u8f6c\u5bf9\u9f50\u3002<\/p>\n<p>&#xff08;3&#xff09;\u63cf\u8ff0\u5b50\u8ba1\u7b97\u539f\u7406<\/p>\n<p>MLDB&#xff08;Modified Local Difference Binary&#xff09; \u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff0c;\u76ee\u6807\u662f\u5728\u4fdd\u6301 KAZE \u9c81\u68d2\u6027\u7684\u540c\u65f6&#xff0c;\u5927\u5e45\u63d0\u5347\u5339\u914d\u901f\u5ea6\u3002<\/p>\n<p>1.\u65cb\u8f6c\u5bf9\u9f50\u90bb\u57df&#xff1a;\u6839\u636e\u5173\u952e\u70b9\u65b9\u5411\u5bf9\u5c40\u90e8\u90bb\u57df\u8fdb\u884c\u65cb\u8f6c\u5bf9\u9f50\u3002<\/p>\n<p>2.\u7f51\u683c\u533a\u57df\u5212\u5206&#xff1a;\u5c06\u5c40\u90e8\u90bb\u57df\u5212\u5206\u4e3a\u591a\u4e2a\u5b50\u533a\u57df\u3002\u666e\u901a\u7684\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff08;\u5982BRIEF\u3001ORB&#xff09;\u53ea\u5bf9\u6bd4\u50cf\u7d20\u70b9\u7684\u7070\u5ea6\u503c\u3002\u800cM-LDB\u5bf9\u6bcf\u4e2a\u5b50\u7f51\u683c\u5185\u90e8\u7684\u6240\u6709\u50cf\u7d20\u8fdb\u884c\u7edf\u8ba1&#xff0c;\u53d6\u51fa\u4e09\u4e2a\u901a\u9053\u7684\u4fe1\u606f&#xff1a;\u5355\u5143\u683c\u5185\u5e73\u5747\u7070\u5ea6\u503c\u3001x\u65b9\u5411\u5e73\u5747\u68af\u5ea6\u3001y\u65b9\u5411\u5e73\u5747\u68af\u5ea6\u3002<\/p>\n<p>3.\u5b50\u5757\u95f4\u4e8c\u503c\u6bd4\u8f83\u751f\u6210\u63cf\u8ff0\u5b50&#xff1a;\u5728\u83b7\u5f97\u5404\u5b50\u533a\u57df\u7edf\u8ba1\u7279\u5f81\u540e&#xff0c;M-LDB \u4f1a\u5bf9\u5b50\u533a\u57df\u4e4b\u95f4\u7684\u4e0d\u540c\u901a\u9053\u8fdb\u884c\u4e24\u4e24\u6bd4\u8f83&#xff0c;\u6240\u6709\u6bd4\u8f83\u7ed3\u679c\u6309\u56fa\u5b9a\u987a\u5e8f\u62fc\u63a5\u5f62\u6210\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff0c;\u5e38\u89c1\u957f\u5ea6\u5305\u62ec 256 bit\u3001486bit\u3001\u53ef\u914d\u7f6e\u957f\u5ea6\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"89\" src=\"2026-08-16gjwkn2d0nus.png\" width=\"324\" \/><\/p>\n<p>&#xff08;4&#xff09;\u5176\u5b83<\/p>\n<table>\n<tr>\u9879\u76eeKAZEAKAZE<\/tr>\n<tbody>\n<tr>\n<td>\u5c3a\u5ea6\u7a7a\u95f4<\/td>\n<td>\u975e\u7ebf\u6027\u6269\u6563<\/td>\n<td>\u975e\u7ebf\u6027\u6269\u6563<\/td>\n<\/tr>\n<tr>\n<td>PDE\u6c42\u89e3\u65b9\u5f0f<\/td>\n<td>AOS<\/td>\n<td>FED<\/td>\n<\/tr>\n<tr>\n<td>\u68c0\u6d4b\u5668<\/td>\n<td>Hessian<\/td>\n<td>Hessian<\/td>\n<\/tr>\n<tr>\n<td>\u63cf\u8ff0\u5b50\u7c7b\u578b<\/td>\n<td>\u6d6e\u70b9\u63cf\u8ff0\u5b50<\/td>\n<td>\u4e8c\u8fdb\u5236MLDB<\/td>\n<\/tr>\n<tr>\n<td>\u5339\u914d\u8ddd\u79bb<\/td>\n<td>\u6b27\u6c0f\u8ddd\u79bb<\/td>\n<td>\u6c49\u660e\u8ddd\u79bb<\/td>\n<\/tr>\n<tr>\n<td>\u5339\u914d\u901f\u5ea6<\/td>\n<td>\u8f83\u6162<\/td>\n<td>\u66f4\u5feb<\/td>\n<\/tr>\n<tr>\n<td>\u5c3a\u5ea6\u7a7a\u95f4\u7cbe\u5ea6<\/td>\n<td>\u66f4\u9ad8<\/td>\n<td>\u7565\u4f4e<\/td>\n<\/tr>\n<tr>\n<td>\u9c81\u68d2\u6027<\/td>\n<td>\u66f4\u9ad8<\/td>\n<td>\u8f83\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>\u5b9e\u65f6\u6027<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u66f4\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u9002\u5408\u573a\u666f<\/td>\n<td>\u9ad8\u7cbe\u5ea6\u5339\u914d<\/td>\n<td>\u5b9e\u65f6SLAM\/VO<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u76f8\u5173\u51fd\u6570&#xff1a;<\/p>\n<p>void detectAndCompute(InputArray image, InputArray mask, std::vector&lt;KeyPoint&gt;&amp; keypoints, OutputArray descriptors, bool useProvidedKeypoints &#061; false);<br \/>\n\u529f\u80fd&#xff1a;\u68c0\u6d4b\u5173\u952e\u70b9&#043;\u8ba1\u7b97\u63cf\u8ff0\u5b50<\/p>\n<p>Mat cv::imread(const String&amp; filename, int flags &#061; IMREAD_COLOR);<br \/>\n\u529f\u80fd&#xff1a;\u4ece\u6307\u5b9a\u8def\u5f84\u8bfb\u53d6\u56fe\u50cf\u3002<\/p>\n<p>void cv::resize(InputArray src, OutputArray dst, Size dsize, double fx &#061; 0, double fy &#061; 0, int interpolation &#061; INTER_LINEAR);<br \/>\n\u529f\u80fd&#xff1a;\u5c06\u56fe\u50cf\u7f29\u653e\u5230\u6307\u5b9a\u5c3a\u5bf8\u3002<\/p>\n<p>void cv::Feature2D::detectAndCompute(InputArray image, InputArray mask, std::vector&lt;KeyPoint&gt;&amp; keypoints, OutputArray descriptors, bool useProvidedKeypoints &#061; false);<br \/>\n\u529f\u80fd&#xff1a;\u68c0\u6d4b\u56fe\u50cf\u5173\u952e\u70b9\u5e76\u8ba1\u7b97\u5bf9\u5e94\u7684\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>void cv::drawKeypoints(InputArray image, const std::vector&lt;KeyPoint&gt;&amp; keypoints, InputOutputArray outImage, const Scalar&amp; color &#061; Scalar::all(-1), int flags &#061; DrawMatchesFlags::DEFAULT);<br \/>\n\u529f\u80fd&#xff1a;\u5728\u56fe\u50cf\u4e0a\u7ed8\u5236\u68c0\u6d4b\u5230\u7684\u7279\u5f81\u70b9\u3002<\/p>\n<p>void cv::imshow(const String&amp; winname, InputArray mat);<br \/>\n\u529f\u80fd&#xff1a;\u5728\u6307\u5b9a\u7a97\u53e3\u4e2d\u663e\u793a\u56fe\u50cf\u3002<\/p>\n<p>int waitKey(int delay &#061; 0);<br \/>\n\u529f\u80fd&#xff1a;\u7b49\u5f85\u952e\u76d8\u8f93\u5165<\/p>\n<table>\n<tr>\u5b8c\u6574\u7279\u5f81\u7b97\u6cd5Detector&#xff08;\u5173\u952e\u70b9\u68c0\u6d4b&#xff09;Descriptor&#xff08;\u63cf\u8ff0\u5b50&#xff09;\u63cf\u8ff0\u5b50\u7c7b\u578b\u6838\u5fc3\u7279\u70b9\u4f18\u70b9\u7f3a\u70b9\u5178\u578b\u573a\u666f<\/tr>\n<tbody>\n<tr>\n<td>SIFT<\/td>\n<td>DoG&#xff08;\u9ad8\u65af\u5dee\u5206&#xff09;<\/td>\n<td>SIFT Descriptor<\/td>\n<td>\u6d6e\u70b9\u578b&#xff08;128\u7ef4&#xff09;<\/td>\n<td>\u5c3a\u5ea6\u7a7a\u95f4\u6781\u503c &#043; \u68af\u5ea6\u65b9\u5411\u76f4\u65b9\u56fe<\/td>\n<td>\u7cbe\u5ea6\u548c\u9c81\u68d2\u6027\u6781\u5f3a<\/td>\n<td>\u901f\u5ea6\u6162\u3001\u5185\u5b58\u5927<\/td>\n<td>\u9ad8\u7cbe\u5ea6\u914d\u51c6\u3001SfM\u3001\u4e09\u7ef4\u91cd\u5efa<\/td>\n<\/tr>\n<tr>\n<td>SURF<\/td>\n<td>Hessian Detector<\/td>\n<td>SURF Descriptor<\/td>\n<td>\u6d6e\u70b9\u578b&#xff08;64\/128\u7ef4&#xff09;<\/td>\n<td>\u79ef\u5206\u56fe &#043; Box Filter \u52a0\u901f<\/td>\n<td>\u6bd4 SIFT \u5feb<\/td>\n<td>\u7cbe\u5ea6\u7565\u4f4e\u4e8e SIFT<\/td>\n<td>\u56fe\u50cf\u62fc\u63a5\u3001\u76ee\u6807\u8bc6\u522b<\/td>\n<\/tr>\n<tr>\n<td>ORB<\/td>\n<td>FAST &#043; \u91d1\u5b57\u5854<\/td>\n<td>Rotated BRIEF<\/td>\n<td>\u4e8c\u8fdb\u5236<\/td>\n<td>FAST &#043; \u7070\u5ea6\u8d28\u5fc3 &#043; BRIEF\u65cb\u8f6c<\/td>\n<td>\u6781\u5feb\u3001\u5b9e\u65f6\u6027\u5f3a<\/td>\n<td>\u5927\u5c3a\u5ea6\u900f\u89c6\u8f83\u5f31<\/td>\n<td>ORB-SLAM\u3001\u5b9e\u65f6\u8ddf\u8e2a<\/td>\n<\/tr>\n<tr>\n<td>BRISK<\/td>\n<td>FAST \u591a\u5c3a\u5ea6\u68c0\u6d4b<\/td>\n<td>BRISK Descriptor<\/td>\n<td>\u4e8c\u8fdb\u5236&#xff08;512bit&#xff09;<\/td>\n<td>\u73af\u5f62\u91c7\u6837 &#043; \u957f\u8ddd\u79bb\u70b9\u5bf9\u65b9\u5411\u4f30\u8ba1<\/td>\n<td>\u5c3a\u5ea6\u9c81\u68d2\u6027\u5f3a\u4e8e ORB<\/td>\n<td>\u7565\u6162\u4e8e ORB<\/td>\n<td>\u65e0\u4eba\u673a\u89c6\u89c9\u3001\u5b9e\u65f6\u914d\u51c6<\/td>\n<\/tr>\n<tr>\n<td>AKAZE<\/td>\n<td>\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4(FED)<\/td>\n<td>M-LDB<\/td>\n<td>\u4e8c\u8fdb\u5236<\/td>\n<td>\u975e\u7ebf\u6027\u6269\u6563\u91d1\u5b57\u5854<\/td>\n<td>\u7cbe\u5ea6\u9ad8\u4e8e ORB<\/td>\n<td>\u7406\u8bba\u8f83\u590d\u6742<\/td>\n<td>\u5de5\u4e1a\u89c6\u89c9\u3001SLAM<\/td>\n<\/tr>\n<tr>\n<td>KAZE<\/td>\n<td>\u975e\u7ebf\u6027\u5c3a\u5ea6\u7a7a\u95f4<\/td>\n<td>KAZE Descriptor<\/td>\n<td>\u6d6e\u70b9\u578b<\/td>\n<td>\u4fdd\u8fb9\u7f18\u5c3a\u5ea6\u7a7a\u95f4<\/td>\n<td>\u8fb9\u7f18\u4fdd\u6301\u80fd\u529b\u5f3a<\/td>\n<td>\u8f83\u6162<\/td>\n<td>\u9ad8\u7cbe\u5ea6\u56fe\u50cf\u914d\u51c6<\/td>\n<\/tr>\n<tr>\n<td>SuperPoint<\/td>\n<td>\u795e\u7ecf\u7f51\u7edc\u5b66\u4e60<\/td>\n<td>\u795e\u7ecf\u7f51\u7edc\u5b66\u4e60<\/td>\n<td>\u6d6e\u70b9\u578b<\/td>\n<td>Detector&#043;Descriptor \u8054\u5408\u5b66\u4e60<\/td>\n<td>\u5f31\u7eb9\u7406\u9c81\u68d2\u6027\u5f3a<\/td>\n<td>\u9700\u8981GPU<\/td>\n<td>\u6df1\u5ea6SLAM\u3001SfM<\/td>\n<\/tr>\n<tr>\n<td>LoFTR<\/td>\n<td>\u65e0\u663e\u5f0f\u5173\u952e\u70b9<\/td>\n<td>Transformer Dense Matching<\/td>\n<td>\u6df1\u5ea6\u7279\u5f81<\/td>\n<td>\u76f4\u63a5\u7a20\u5bc6\u5339\u914d<\/td>\n<td>\u5f31\u7eb9\u7406\/\u5927\u89c6\u89d2\u6781\u5f3a<\/td>\n<td>\u975e\u5e38\u8017\u7b97\u529b<\/td>\n<td>\u5927\u89c6\u89d2\u914d\u51c6\u3001\u590d\u6742\u573a\u666f\u5339\u914d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>SURF\u5173\u952e\u70b9\u662f\u6591\u70b9\u578b&#xff0c;\u5706\u5f62&#xff0c;\u534a\u5f84\u8868\u793a\u5c3a\u5ea6\u3002ORB\u5173\u952e\u70b9\u7279\u5f81\u662f\u89d2\u70b9&#xff0c;\u5c0f\u5706\u70b9&#043;\u65b9\u5411\u7ebf\u6bb5&#xff08;\u65e0\u5c3a\u5ea6\u5706&#xff09;\u3002BRISK\u5173\u952e\u70b9\u662f\u6591\u70b9\/\u89d2\u70b9&#xff0c;\u540c\u5fc3\u5706&#043;\u8f90\u5c04\u72b6\u91c7\u6837\u70b9&#xff0c;\u540c\u5fc3\u5706\u534a\u5f84\u8868\u793a\u5c3a\u5ea6\u3002KAZE\u5173\u952e\u70b9\u662f\u6591\u70b9\/\u89d2\u70b9&#xff0c;\u692d\u5706\/\u5706&#xff0c;\u5706\u534a\u5f84\u5bf9\u5e94\u975e\u7ebf\u6027\u5c3a\u5ea6\u3002AKAZE&#xff0c;\u6bd4KAZE\u66f4\u5c0f&#xff0c;\u534a\u5f84\u5c0f\u3002<\/p>\n<h4>1.2 \u57fa\u4e8e\u7ebf\/\u8fb9\u7f18\u7684\u65b9\u6cd5<\/h4>\n<p>\u4e0d\u63d0\u53d6\u5173\u952e\u70b9&#xff0c;\u800c\u662f\u76f4\u63a5\u5229\u7528\u8fb9\u7f18\u4f4d\u7f6e\u3001\u8fb9\u7f18\u65b9\u5411\u3001\u8fb9\u7f18\u5f62\u72b6\u5b8c\u6210\u5339\u914d<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9<\/p>\n<li>\u9002\u914d\u5f31\u7eb9\u7406\u573a\u666f&#xff1a;\u7eaf\u8272\u5899\u9762\u3001\u8d70\u5eca\u3001\u5efa\u7b51\u5916\u7acb\u9762\u7b49\u7f3a\u5c11\u89d2\u70b9\u7684\u73af\u5883\u4e2d&#xff0c;\u4ecd\u53ef\u7a33\u5b9a\u63d0\u53d6\u76f4\u7ebf\u8fb9\u7f18\u7279\u5f81&#xff0c;\u5f25\u8865\u70b9\u7279\u5f81\u5931\u6548\u7f3a\u9677\u3002<\/li>\n<li>\u5149\u7167\u4e0e\u8f7b\u5fae\u6a21\u7cca\u9c81\u68d2\u6027\u5f3a&#xff1a;\u8fb9\u7f18\u7531\u7070\u5ea6\u5267\u70c8\u8df3\u53d8\u5f62\u6210&#xff0c;\u5c0f\u5e45\u4eae\u5ea6\u6ce2\u52a8\u3001\u8f7b\u5ea6\u8fd0\u52a8\u6a21\u7cca\u4e0d\u4f1a\u6539\u53d8\u8fb9\u7f18\u4f4d\u7f6e\u4e0e\u8d70\u5411&#xff0c;\u7279\u5f81\u7a33\u5b9a\u6027\u66f4\u9ad8\u3002<\/li>\n<li>\u51e0\u4f55\u7ea6\u675f\u80fd\u529b\u66f4\u5f3a&#xff1a;\u7ebf\u6bb5\u5177\u5907\u957f\u5ea6\u3001\u89d2\u5ea6\u3001\u7a7a\u95f4\u5939\u89d2\u591a\u7ef4\u4fe1\u606f&#xff0c;\u76f8\u6bd4\u5355\u70b9\u7279\u5f81\u7ea6\u675f\u66f4\u4e30\u5bcc&#xff0c;\u6709\u6548\u63d0\u5347\u4f4d\u59ff\u6c42\u89e3\u7cbe\u5ea6\u3002<\/li>\n<li>\u8010\u53d7\u5c40\u90e8\u906e\u6321&#xff1a;\u7ebf\u6bb5\u4ec5\u5c40\u90e8\u88ab\u906e\u6321\u65f6&#xff0c;\u5269\u4f59\u6709\u6548\u7ebf\u6bb5\u4ecd\u53ef\u5efa\u7acb\u5339\u914d\u5173\u7cfb&#xff0c;\u6b63\u5e38\u5b8c\u6210\u4f4d\u59ff\u7ea6\u675f\u8ba1\u7b97\u3002<\/li>\n<p>\u7f3a\u70b9<\/p>\n<li>\u8fd0\u7b97\u5f00\u9500\u5927\u5b9e\u65f6\u6027\u5dee&#xff1a;LSD \u7ebf\u6bb5\u68c0\u6d4b\u3001LBD \u7ebf\u6bb5\u63cf\u8ff0\u5b50\u8ba1\u7b97\u590d\u6742\u5ea6\u8fdc\u9ad8\u4e8e\u70b9\u7279\u5f81&#xff0c;\u63d0\u53d6\u4e0e\u5339\u914d\u8017\u65f6\u4e45&#xff0c;\u96be\u4ee5\u6ee1\u8db3\u9ad8\u5b9e\u65f6\u6027\u9700\u6c42\u3002<\/li>\n<li>\u7ebf\u6bb5\u5f62\u6001\u6613\u53d7\u5e72\u6270&#xff1a;\u53d7\u89c6\u89d2\u53d8\u6362\u3001\u9634\u5f71\u906e\u6321\u5f71\u54cd&#xff0c;\u540c\u4e00\u7269\u7406\u76f4\u7ebf\u6613\u51fa\u73b0\u5206\u6bb5\u65ad\u88c2\u3001\u7aef\u70b9\u504f\u79fb\u95ee\u9898&#xff0c;\u5927\u5e45\u589e\u52a0\u5339\u914d\u96be\u5ea6\u3002<\/li>\n<li>\u5efa\u6a21\u590d\u6742\u6613\u51fa\u73b0\u8fd0\u52a8\u9000\u5316&#xff1a;\u7ebf\u6bb5\u53c2\u6570\u5316\u7ef4\u5ea6\u9ad8\u4e8e\u7279\u5f81\u70b9&#xff0c;\u6570\u5b66\u5efa\u6a21\u96be\u5ea6\u66f4\u5927&#xff1b;\u76f8\u673a\u6cbf\u7ebf\u6bb5\u5e73\u884c\u65b9\u5411\u8fd0\u52a8\u65f6&#xff0c;\u6781\u6613\u51fa\u73b0\u4f4d\u59ff\u6c42\u89e3\u9000\u5316\u73b0\u8c61\u3002<\/li>\n<p>\u9002\u7528\u573a\u666f<\/p>\n<li>\u5ba4\u5185\u8d70\u5eca\u3001\u529e\u516c\u533a\u7b49\u7ed3\u6784\u5316\u5ba4\u5185\u73af\u5883&#xff0c;\u4ee5\u53ca\u57ce\u5e02\u4eba\u9020\u5efa\u7b51\u573a\u666f\u3002<\/li>\n<li>\u4f4e\u7eb9\u7406\u3001\u9ad8\u7ed3\u6784\u5316&#xff0c;\u70b9\u7279\u5f81\u65e0\u6cd5\u6b63\u5e38\u5de5\u4f5c\u7684\u89c6\u89c9\u573a\u666f\u3002<\/li>\n<li>\u70b9\u7ebf\u878d\u5408 VO \u4e0e PL-SLAM \u7cfb\u7edf&#xff0c;\u534f\u540c\u70b9\u7279\u5f81\u63d0\u5347\u4eba\u9020\u573a\u666f\u5b9a\u4f4d\u5efa\u56fe\u7a33\u5b9a\u6027\u3002<\/li>\n<p>&#xff08;2&#xff09;\u6574\u4f53\u6d41\u7a0b<\/p>\n<p>1.\u8fb9\u7f18\/\u7ebf\u7279\u5f81\u63d0\u53d6&#xff1a;\u5148\u4ece\u8fb9\u7f18\/\u7ebf\u7279\u5f81\u4e2d\u63d0\u53d6\u8fb9\u7f18\/\u7ebf\u6bb5\/\u95ed\u5408\u8f6e\u5ed3\u3002\u5178\u578b\u65b9\u6cd5\u5982\u4e0b&#xff1a;<\/p>\n<table>\n<tr>\u7c7b\u578b\u65b9\u6cd5<\/tr>\n<tbody>\n<tr>\n<td>\u8fb9\u7f18\u68c0\u6d4b<\/td>\n<td>Canny\u3001Sobel\u3001Laplacian<\/td>\n<\/tr>\n<tr>\n<td>\u7ebf\u68c0\u6d4b<\/td>\n<td>Hough\u3001LSD\u3001FLD<\/td>\n<\/tr>\n<tr>\n<td>\u8f6e\u5ed3\u63d0\u53d6<\/td>\n<td>findContours<\/td>\n<\/tr>\n<tr>\n<td>\u6df1\u5ea6\u5b66\u4e60\u8fb9\u7f18<\/td>\n<td>HED\u3001DexiNed<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>2.\u7279\u5f81\u8868\u793a&#xff1a;\u5f97\u5230\u8fb9\u7f18\u70b9\u96c6\u5408\u3001\u7ebf\u6bb5\u96c6\u5408\u3001\u591a\u8fb9\u5f62\u8f6e\u5ed3\u3001\u5f62\u72b6\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>3.\u7279\u5f81\u5339\u914d&#xff1a;\u5bfb\u627e\u7ebf \u2194 \u7ebf&#xff0c;\u8fb9\u7f18 \u2194 \u8fb9\u7f18&#xff0c;\u8f6e\u5ed3 \u2194 \u8f6e\u5ed3\u3002<\/p>\n<table>\n<tr>\u65b9\u6cd5\u539f\u7406<\/tr>\n<tbody>\n<tr>\n<td>\u51e0\u4f55\u7ea6\u675f<\/td>\n<td>\u957f\u5ea6\u3001\u65b9\u5411\u3001\u4ea4\u70b9<\/td>\n<\/tr>\n<tr>\n<td>\u6700\u8fd1\u90bb<\/td>\n<td>\u70b9\u5230\u8fb9\u8ddd\u79bb<\/td>\n<\/tr>\n<tr>\n<td>Shape Context<\/td>\n<td>\u8f6e\u5ed3\u5f62\u72b6\u63cf\u8ff0<\/td>\n<\/tr>\n<tr>\n<td>Hausdorff\u8ddd\u79bb<\/td>\n<td>\u4e24\u70b9\u96c6\u8ddd\u79bb<\/td>\n<\/tr>\n<tr>\n<td>Chamfer Matching<\/td>\n<td>\u8fb9\u7f18\u8ddd\u79bb\u53d8\u6362<\/td>\n<\/tr>\n<tr>\n<td>ICP<\/td>\n<td>\u70b9\u96c6\u8fed\u4ee3\u914d\u51c6<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>4.\u4f30\u8ba1\u53d8\u6362&#xff1a;\u4f30\u8ba1\u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u4eff\u5c04\u3001\u5355\u5e94\u6027\u7b49\u3002\u5e38\u89c1RANSAC\u3001PnP\u3001Least Squares\u3001ICP\u3002<\/p>\n<table>\n<tr>\u65b9\u6cd5\u7279\u5f81\u4f18\u70b9\u7f3a\u70b9OpenCV<\/tr>\n<tbody>\n<tr>\n<td>Canny&#043;ICP<\/td>\n<td>\u8fb9\u7f18\u70b9<\/td>\n<td>\u7cbe\u5ea6\u9ad8<\/td>\n<td>\u521d\u503c\u654f\u611f<\/td>\n<td>\u90e8\u5206\u652f\u6301<\/td>\n<\/tr>\n<tr>\n<td>Chamfer<\/td>\n<td>\u8fb9\u7f18\u56fe<\/td>\n<td>\u9c81\u68d2<\/td>\n<td>\u8f83\u6162<\/td>\n<td>\u652f\u6301<\/td>\n<\/tr>\n<tr>\n<td>Hausdorff<\/td>\n<td>\u70b9\u96c6<\/td>\n<td>\u6297\u906e\u6321<\/td>\n<td>\u6162<\/td>\n<td>\u9700\u81ea\u5df1\u5b9e\u73b0<\/td>\n<\/tr>\n<tr>\n<td>Hough<\/td>\n<td>\u76f4\u7ebf<\/td>\n<td>\u7a33\u5b9a<\/td>\n<td>\u6162<\/td>\n<td>\u652f\u6301<\/td>\n<\/tr>\n<tr>\n<td>LSD<\/td>\n<td>\u7ebf\u6bb5<\/td>\n<td>\u5feb\u3001\u7cbe\u5ea6\u9ad8<\/td>\n<td>\u77ed\u7ebf\u654f\u611f<\/td>\n<td>\u652f\u6301<\/td>\n<\/tr>\n<tr>\n<td>LBD<\/td>\n<td>\u7ebf\u63cf\u8ff0\u5b50<\/td>\n<td>\u5feb<\/td>\n<td>\u4fe1\u606f\u5c11\u4e8eSIFT<\/td>\n<td>opencv_contrib<\/td>\n<\/tr>\n<tr>\n<td>Shape Context<\/td>\n<td>\u8f6e\u5ed3<\/td>\n<td>\u5f62\u72b6\u5f3a<\/td>\n<td>\u8ba1\u7b97\u5927<\/td>\n<td>\u90e8\u5206<\/td>\n<\/tr>\n<tr>\n<td>Snake<\/td>\n<td>\u52a8\u6001\u8f6e\u5ed3<\/td>\n<td>\u8fb9\u754c\u7cbe\u7ec6<\/td>\n<td>\u6613\u5c40\u90e8\u6700\u4f18<\/td>\n<td>\u90e8\u5206<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5>1.2.1 \u57fa\u4e8e\u8fb9\u7f18\u7684\u65b9\u6cd5<\/h5>\n<p>\u5c5e\u4e8e\u57fa\u4e8e\u51e0\u4f55\u7ed3\u6784\u7684\u914d\u51c6&#xff0c;\u5229\u7528\u7269\u4f53\u8fb9\u754c\u3001\u7070\u5ea6\u7a81\u53d8\u4f4d\u7f6e\u3001\u7ed3\u6784\u8f6e\u5ed3\u8fdb\u884c\u914d\u51c6\u3002<\/p>\n<p>&#xff08;1&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>\u56fe\u50cf I(x,y)&#xff0c;\u8fb9\u7f18\u7684\u672c\u8d28\u662f\u7070\u5ea6\u53d8\u5316\u5267\u70c8\u7684\u4f4d\u7f6e&#xff0c;\u56e0\u6b64\u8ba1\u7b97<img decoding=\"async\" alt=\"\\\\nabla I=(\\\\frac{\\\\partial I}{\\\\partial x},\\\\frac{\\\\partial I}{\\\\partial y})\" class=\"mathcode\" src=\"2026-08-16e21wl5uownz.png\" \/>&#xff0c;\u5373\u56fe\u50cf\u5728x\u3001y\u65b9\u5411\u7684\u7070\u5ea6\u53d8\u5316\u7387\u3002<\/p>\n<p>\u68af\u5ea6\u5e45\u503c&#xff1a;<img decoding=\"async\" alt=\"|\\\\nabla I| = \\\\sqrt{I_x^2 + I_y^2}\" class=\"mathcode\" src=\"2026-08-16neevs2c14lb.png\" \/>&#xff0c;\u8868\u793a\u53d8\u5316\u6709\u591a\u5267\u70c8&#xff0c;\u8fb9\u7f18\u5f3a\u5ea6\u3002<\/p>\n<p>\u68af\u5ea6\u65b9\u5411&#xff1a;<img decoding=\"async\" alt=\"\\\\theta=tan^{-1}(\\\\frac{Ix}{Iy})\" class=\"mathcode\" src=\"2026-08-16sbhemwg1l3m.png\" \/>&#xff0c;\u8868\u793a\u8fb9\u7f18\u671d\u5411&#xff0c;\u68af\u5ea6\u5782\u76f4\u4e8e\u8fb9\u7f18\u65b9\u5411&#xff0c;\u4f8b\u5982\u5de6\u9ed1\u53f3\u767d&#xff0c;\u8fb9\u7f18\u662f\u7ad6\u76f4\u65b9\u5411&#xff0c;\u68af\u5ea6\u4ece\u9ed1\u6307\u5411\u767d\u3002<\/p>\n<p>\u53bb\u4e2d\u5fc3\u5316&#xff1a;\u628a\u4e24\u7ec4\u70b9\u5404\u81ea\u5e73\u79fb&#xff0c;\u5c06\u51e0\u4f55\u4e2d\u5fc3\u632a\u5230\u5750\u6807\u539f\u70b9\u3002<\/p>\n<p>\u6784\u9020\u534f\u65b9\u5dee\u77e9\u9635&#xff1a;\u7edf\u8ba1\u4e24\u7ec4\u53bb\u4e2d\u5fc3\u5316\u70b9\u7684\u5173\u8054\u7a0b\u5ea6&#xff0c;\u8868\u5f81\u70b9\u96c6\u5f62\u72b6\u5339\u914d\u76f8\u4f3c\u5ea6<img decoding=\"async\" alt=\"H=\\\\sum_{i=1}^{n} p_i&apos; {q_i&apos;}^\\\\top\" class=\"mathcode\" src=\"2026-08-16xt3bhhgrhkf.png\" \/><\/p>\n<p>\u3002\u77e9\u9635\u6570\u503c\u8d8a\u5927&#xff0c;\u4e24\u7ec4\u8f6e\u5ed3\u5f62\u72b6\u5951\u5408\u5ea6\u8d8a\u9ad8\u3002<\/p>\n<p>SVD \u5947\u5f02\u503c\u5206\u89e3&#xff1a;\u628a\u534f\u65b9\u5dee\u77e9\u9635\u62c6\u5206&#xff0c;\u63d0\u53d6\u6700\u4f18\u65cb\u8f6c\u5206\u91cf\u3001\u6700\u4f18\u65cb\u8f6c\u77e9\u9635&#xff0c;\u5728\u6570\u5b66\u4e0a\u6c42\u89e3\u51fa\u4f7f\u70b9\u96c6\u65cb\u8f6c\u540e\u8d34\u5408\u5ea6\u6700\u9ad8\u7684\u89d2\u5ea6\u53d8\u6362\u3002<\/p>\n<p>&#xff08;2&#xff09;\u5b8c\u6574\u6d41\u7a0b<\/p>\n<p>1. \u56fe\u50cf\u9884\u5904\u7406&#xff1a;\u7070\u5ea6\u5316\u3001\u53bb\u566a&#xff08;\u9ad8\u65af\u6a21\u7cca&#xff09;\u3002<\/p>\n<p>2. \u8fb9\u7f18\u63d0\u53d6&#xff1a;\u4f7f\u7528\u8fb9\u7f18\u7b97\u5b50\u63d0\u53d6\u8fb9\u7f18\u56fe&#xff1a;Sobel\u3001Scharr\u3001Laplacian\u3001Canny&#xff08;\u6700\u5e38\u7528&#xff09;\u3002<\/p>\n<p>3.\u00a0\u8fb9\u7f18\u7279\u5f81\u83b7\u53d6&#xff1a;\u4ece\u8fb9\u7f18\u56fe\u4e2d\u63d0\u53d6\u53ef\u5339\u914d\u4fe1\u606f&#xff1a;\u8fb9\u7f18\u70b9\u3001\u8fb9\u7f18\u8f6e\u5ed3\u3001\u8fb9\u7f18\u8ddd\u79bb\u573a\u3002<\/p>\n<p>4.\u00a0\u8fb9\u7f18\u5339\u914d&#xff1a;\u8ba1\u7b97\u4e24\u5f20\u56fe\u8fb9\u7f18\u7684\u5bf9\u5e94\u5173\u7cfb&#xff1a;Chamfer Matching&#xff08;\u5012\u89d2\u5339\u914d&#xff09;\u3001Shape Matching\u3001\u8fb9\u7f18\u70b9\u5339\u914d\u3001Contour ICP\u3002<\/p>\n<p>5. \u8ba1\u7b97\u51e0\u4f55\u53d8\u6362&#xff1a;\u6839\u636e\u5339\u914d\u7ed3\u679c\u6c42\u89e3\u53d8\u6362\u77e9\u9635&#xff1a;\u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u4eff\u5c04\u53d8\u6362\u3001\u5355\u5e94\u77e9\u9635 Homography\u3002<\/p>\n<p>6. \u56fe\u50cf\u53d8\u6362\u4e0e\u914d\u51c6&#xff1a;\u4f7f\u7528\u53d8\u6362\u77e9\u9635\u5c06\u5f85\u914d\u51c6\u56fe\u5bf9\u9f50\u5230\u53c2\u8003\u56fe\u3002<\/p>\n<p>&#xff08;3&#xff09;\u8fb9\u7f18\u68c0\u6d4b\u539f\u7406<\/p>\n<p>\u5bfb\u627e\u7070\u5ea6\u7a81\u53d8\u7684\u4f4d\u7f6e\u3002\u8fb9\u7f18\u63d0\u53d6\u7b97\u5b50&#xff1a;Sobel\u3001Scharr\u3001Laplacian\u3001Canny\u3002<\/p>\n<p>1.Sobel \u7b97\u5b50<\/p>\n<p>\u6700\u57fa\u7840\u7684\u68af\u5ea6\u65b9\u6cd5&#xff0c;\u6838\u5fc3\u601d\u60f3\u662f\u5229\u7528\u5377\u79ef\u6838\u8fd1\u4f3c\u8ba1\u7b97\u200b<img decoding=\"async\" alt=\"\\\\frac{\\\\partial I}{\\\\partial x}\\\\frac{\\\\partial I}{\\\\partial y}\" class=\"mathcode\" src=\"2026-08-165j4rrd53ijf.png\" \/><\/p>\n<p>Sobel \u7b97\u5b50&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"251\" src=\"2026-08-16gawvr4kksg3.png\" width=\"541\" \/><\/p>\n<p>\u4e3a\u4ec0\u4e48\u8fd9\u6837\u8bbe\u8ba1&#xff1a;[\u22121,0,1]\u672c\u8d28\u662f\u5de6\u53f3\u3001\u4e0a\u4e0b\u5dee\u5206&#xff0c;\u8fd1\u4f3c<img decoding=\"async\" alt=\"\\\\frac{\\\\partial I}{\\\\partial x}\\\\frac{\\\\partial I}{\\\\partial y}\" class=\"mathcode\" src=\"2026-08-165j4rrd53ijf.png\" \/>&#xff0c;\u6838\u4e2d\u95f42\u7684\u672c\u8d28\u662f\u5bf9\u90bb\u57df\u505a\u52a0\u6743\u5e73\u5747&#xff0c;\u964d\u4f4e\u566a\u58f0\u654f\u611f\u6027&#xff0c;\u76f8\u5f53\u4e8e\u5e73\u6ed1\u3002\u56e0\u6b64 Sobel &#061; \u5bfc\u6570 &#043; \u9ad8\u65af\u5e73\u6ed1\u3002<\/p>\n<p>\u8ba1\u7b97\u8fc7\u7a0b&#xff1a;\u5bf9\u56fe\u50cf\u5377\u79ef\u5f97\u5230<img decoding=\"async\" alt=\"I_x,\\\\, I_y\" class=\"mathcode\" src=\"2026-08-16afbozvoi5ui.png\" \/>&#xff0c;\u7136\u540e\u68af\u5ea6\u7684\u6a21\u957f&#xff08;\u8fb9\u7f18\u5f3a\u5ea6&#xff09;<img decoding=\"async\" alt=\"\\\\mathrm{mag} = \\\\sqrt{I_x^2 + I_y^2}\" class=\"mathcode\" src=\"2026-08-16jm04z4i1yxt.png\" \/>\u3002<\/p>\n<p>cv::Sobel(img, gx, CV_32F, 1, 0);<br \/>\ncv::Sobel(img, gy, CV_32F, 0, 1);<\/p>\n<p>\u7f3a\u70b9&#xff1a;<\/p>\n<p>\u00a0&#8211; \u5bf9\u566a\u58f0\u654f\u611f&#xff0c;\u6613\u4ea7\u751f\u4f2a\u8fb9\u7f18&#xff1a;Sobel \u672c\u8d28\u4e0a\u662f\u57fa\u4e8e\u5c40\u90e8\u5dee\u5206\u7684\u7b97\u5b50&#xff0c;\u901a\u8fc7\u90bb\u57df\u50cf\u7d20\u7684\u52a0\u6743\u5dee\u6765\u8ba1\u7b97\u68af\u5ea6&#xff0c;\u566a\u58f0\u70b9\u4f1a\u76f4\u63a5\u88ab\u653e\u5927\u6210\u865a\u5047\u7684\u8fb9\u7f18\u3002<\/p>\n<p>\u00a0&#8211; \u8fb9\u7f18\u5b9a\u4f4d\u7cbe\u5ea6\u8f83\u4f4e&#xff1a;3\u00d73 \u7684\u7a97\u53e3\u548c\u56fa\u5b9a\u7684\u52a0\u6743\u6a21\u5f0f&#xff0c;\u5bfc\u81f4\u5b83\u53ea\u80fd\u7c97\u7565\u4f30\u8ba1\u68af\u5ea6&#xff0c;\u65e0\u6cd5\u7cbe\u786e\u786e\u5b9a\u8fb9\u7f18\u7684\u4e9a\u50cf\u7d20\u4f4d\u7f6e\u3002\u6d4b\u51fa\u7684\u8fb9\u7f18\u5f80\u5f80\u6bd4\u8f83\u7c97&#xff0c;\u662f\u6709\u4e00\u5b9a\u5bbd\u5ea6\u7684\u6a21\u7cca\u5e26\u3002<\/p>\n<p>\u00a0&#8211; \u8fb9\u7f18\u65b9\u5411\u4f30\u8ba1\u8bef\u5dee\u5927&#xff1a;\u68af\u5ea6\u65b9\u5411\u7531arctan2(Iy, Ix)\u8ba1\u7b97&#xff0c;\u800c Sobel \u7684Ix\u548cIy\u672c\u8eab\u5c31\u662f\u8fd1\u4f3c\u503c&#xff0c;\u5c24\u5176\u662f\u5728\u975e\u6c34\u5e73 \/ \u975e\u5782\u76f4\u7684\u659c\u5411\u8fb9\u7f18\u4e0a&#xff0c;\u8bef\u5dee\u4f1a\u88ab\u653e\u5927\u3002<\/p>\n<p>\u00a0&#8211; \u56fa\u5b9a\u7684\u7a97\u53e3\u5927\u5c0f&#xff0c;\u5bf9\u4e0d\u540c\u5c3a\u5ea6\u7684\u8fb9\u7f18\u9002\u5e94\u6027\u5dee&#xff1a;\u53ea\u80fd\u68c0\u6d4b\u7279\u5b9a\u5c3a\u5ea6\u7684\u8fb9\u7f18\u3002\u5bf9\u5927\u5c3a\u5ea6\u3001\u5bbd\u8fb9\u7f18&#xff08;\u5982\u6a21\u7cca\u7684\u8fb9\u7f18&#xff09;\u68c0\u6d4b\u6548\u679c\u5dee&#xff1b;\u800c\u5bf9\u7ec6\u5c0f\u8fb9\u7f18\u53c8\u5bb9\u6613\u6f0f\u68c0\u3002\u4e0d\u50cf\u591a\u5c3a\u5ea6\u7b97\u6cd5&#xff08;\u5982 SIFT&#xff09;\u80fd\u81ea\u9002\u5e94\u4e0d\u540c\u5c3a\u5ea6\u3002<\/p>\n<p>\u00a0&#8211; \u5bf9\u5c40\u90e8\u5149\u7167\u654f\u611f&#xff1a;\u5b83\u7684\u8f93\u51fa mag \u662f\u7edd\u5bf9\u7070\u5ea6\u5dee\u7684\u6570\u503c&#xff0c;\u5bf9\u5c40\u90e8 \/ \u975e\u7ebf\u6027\u5149\u7167\u53d8\u5316\u975e\u5e38\u654f\u611f\u3002<\/p>\n<p>2.Scharr \u7b97\u5b50<\/p>\n<p>\u662f\u5bf9 Sobel \u7684\u9ad8\u7cbe\u5ea6\u6539\u8fdb\u7248&#xff0c;\u6838\u5fc3\u76ee\u6807\u662f\u5728\u4fdd\u6301 3\u00d73 \u5c0f\u6838\u6548\u7387\u7684\u524d\u63d0\u4e0b&#xff0c;\u63d0\u9ad8\u65cb\u8f6c\u5bf9\u79f0\u6027&#xff08;isotropy&#xff09;\u4e0e\u68af\u5ea6\u7cbe\u5ea6\u3002\u771f\u6b63\u7684\u68af\u5ea6\u5e94\u8be5\u5bf9\u6240\u6709\u65b9\u5411\u7684\u9ad8\u9891\u53d8\u5316\u54cd\u5e94\u4e00\u81f4&#xff0c;\u800c\u4e0d\u662f\u504f\u5411\u67d0\u51e0\u4e2a\u65b9\u5411&#xff0c;Sobel \u9690\u542b\u5047\u8bbe\u4e2d\u95f4\u884c\u66f4\u91cd\u8981\u3002<\/p>\n<p>\u540c\u6837\u8fd1\u4f3c\u4e00\u9636\u5bfc\u6570<img decoding=\"async\" alt=\"Gx\\\\thickapprox\\\\frac{\\\\partial I}{\\\\partial x},Gy\\\\thickapprox\\\\frac{\\\\partial I}{\\\\partial y}\" class=\"mathcode\" src=\"2026-08-16mg3ip11dput.png\" \/>&#xff0c;\u4f7f\u7528\u4f18\u5316\u8fc7\u540e\u7684\u5377\u79ef\u6838\u6743\u91cd\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"291\" src=\"2026-08-16zpudebdsnjz.png\" width=\"539\" \/><\/p>\n<p>Scharr \u505a\u7684\u662f\u4e8c\u9636\u7cbe\u5ea6\u5339\u914d&#xff0c;\u7ea6\u675f&#xff1a;\u5fc5\u987b\u6ee1\u8db3\u4e00\u9636\u5bfc\u6570\u8fd1\u4f3c&#xff1b;\u4e8c\u9636\u9891\u7387\u8bef\u5dee\u6700\u5c0f&#xff1b;\u5404\u65b9\u5411\u54cd\u5e94\u5c3d\u91cf\u4e00\u81f4&#xff0c;\u89e3\u51fa\u6765\u7684\u6700\u4f18\u6574\u6570\u8fd1\u4f3c\u5c31\u662f [\u22123,\u221210,\u22123]\u3002<\/p>\n<p>Sobel&#xff1a;\u4e0a\u4e0b\u4e09\u884c\u4e00\u6837\u91cd\u8981&#xff0c;\u53ea\u662f\u4e2d\u95f4\u66f4\u91cd\u8981\u4e00\u70b9<\/p>\n<p>Scharr&#xff1a;\u4e2d\u95f4\u90a3\u4e00\u884c\u624d\u662f\u771f\u6b63\u7684\u5bfc\u6570\u4e3b\u8d21\u732e&#xff0c;\u5176\u4ed6\u884c\u53ea\u662f\u4fee\u6b63<\/p>\n<p>3.Canny \u7b97\u5b50<\/p>\n<p>\u8fb9\u7f18\u65b9\u6cd5\u6838\u5fc3&#xff0c;Sobel\u7684\u5b8c\u6574\u5de5\u7a0b\u5316\u5347\u7ea7\u7248\u3002\u6574\u4f53\u6d41\u7a0b\u5982\u4e0b&#xff1a;Input Image \u2192 Gaussian Blur \u2192 Gradient (Sobel) \u2192 Gradient Magnitude\/Direction \u2192 Non-Maximum Suppression \u2192 Double Threshold \u2192 Edge Tracking by Hysteresis \u2192 Final Edge<\/p>\n<li>\u9ad8\u65af\u6a21\u7cca&#xff1a;\u68af\u5ea6\u8fd0\u7b97\u4f1a\u653e\u5927\u566a\u58f0&#xff0c;\u56e0\u6b64\u5148\u5e73\u6ed1&#xff0c;<img decoding=\"async\" alt=\"G(x,y)=\\\\frac{1}{2\\\\pi\\\\sigma^2}e^{-\\\\frac{x^2+y^2}{2\\\\sigma^2}}\" class=\"mathcode\" src=\"2026-08-16vzynizjgawn.png\" \/>&#xff0c;\u9ad8\u65af\u6ee4\u6ce2\u5377\u79ef\u540e\u4f1a\u4fdd\u7559\u4f4e\u9891&#xff0c;\u6291\u5236\u9ad8\u9891\u566a\u58f0\u3002<\/li>\n<li>\u68af\u5ea6\u8ba1\u7b97&#xff1a;\u4f7f\u7528 Sobel \u5f97\u5230 Ix\u200b,Iy\u200b&#xff0c;\u7136\u540e\u8ba1\u7b97\u68af\u5ea6\u5e45\u503c\u3001\u68af\u5ea6\u65b9\u5411\u3002<\/li>\n<li>\u975e\u6781\u5927\u503c\u6291\u5236&#xff08;NMS&#xff09;&#xff1a;\n<li>\u4e3a\u4ec0\u4e48\u9700\u8981NMS&#xff1a;Sobel \u5f97\u5230\u7684\u8fb9\u7f18\u5f88\u5bbd&#xff0c;\u4f46\u771f\u6b63\u7684\u8fb9\u7f18\u5e94\u8be5\u662f\u5355\u50cf\u7d20\u5bbd\u3002<\/li>\n<li>\u6838\u5fc3\u601d\u60f3&#xff1a;\u53ea\u4fdd\u7559\u68af\u5ea6\u65b9\u5411\u4e0a\u7684\u5c40\u90e8\u6700\u5927\u503c&#xff0c;\u5176\u4f59\u6291\u5236&#xff0c;\u5b9e\u73b0\u8fb9\u7f18\u7ec6\u5316\u3002\u4f8b\u5982\u4ee5\u5f53\u524d\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u540c\u4e00\u6761\u68af\u5ea6\u6cd5\u7ebf\u65b9\u5411\u4e0a&#xff0c;\u6bd4\u8f83\u524d\u540e\u5404 1 \u4e2a\u90bb\u70b9&#xff0c;\u4ec5\u5f53\u5f53\u524d\u50cf\u7d20\u68af\u5ea6\u5e45\u503c&#xff0c;\u5927\u4e8e\u6b63\u53cd\u65b9\u5411\u76f8\u90bb\u4e24\u4e2a\u50cf\u7d20\u624d\u4fdd\u7559\u4e3a\u5019\u9009\u8fb9\u7f18&#xff0c;\u5176\u4f59\u76f4\u63a5\u7f6e 0 \u6291\u5236\u3002<\/li>\n<\/li>\n<li>\u53cc\u9608\u503c&#xff08;Double Threshold&#xff09;&#xff1a;\u9ad8\u9608\u503c&#043;\u4f4e\u9608\u503c\u3002\u5f3a\u8fb9\u7f18\u00a0<img decoding=\"async\" alt=\"M &gt; T_{\\\\mathrm{high}}\" class=\"mathcode\" src=\"2026-08-16nvtvqqh0p5l.png\" \/>\u76f4\u63a5\u4fdd\u7559&#xff1b;\u5f31\u8fb9\u7f18<img decoding=\"async\" alt=\"T_{\\\\mathrm{low}} &lt; M &lt; T_{\\\\mathrm{high}}\" class=\"mathcode\" src=\"2026-08-16e3rbn54te2m.png\" \/>\u53ef\u80fd\u662f\u771f\u8fb9\u7f18&#xff1b;\u975e\u8fb9\u7f18<img decoding=\"async\" alt=\"M &lt; T_{\\\\mathrm{low}}\" class=\"mathcode\" src=\"2026-08-16stej5zvoo1c.png\" \/>\u5220\u9664\n<li>\u4e3a\u4ec0\u4e48\u4e0d\u7528\u5355\u9608\u503c&#xff1a;\u5982\u679c\u9608\u503c\u9ad8&#xff0c;\u5f31\u8fb9\u7f18\u4e22\u5931&#xff1b;\u5982\u679c\u9608\u503c\u4f4e&#xff0c;\u566a\u58f0\u592a\u591a\u3002<\/li>\n<\/li>\n<li>\u6ede\u540e\u8fb9\u7f18\u8ddf\u8e2a&#xff1a;\u5f31\u8fb9\u7f18\u5982\u679c\u8fde\u63a5\u5230\u5f3a\u8fb9\u7f18\u5219\u4fdd\u7559&#xff0c;\u5426\u5219\u5220\u9664\u3002\n<li>\u4e3a\u4ec0\u4e48\u6709\u6548&#xff1a;\u771f\u5b9e\u8fb9\u7f18\u901a\u5e38\u8fde\u7eed&#xff0c;\u566a\u58f0\u901a\u5e38\u72ec\u7acb&#xff0c;\u56e0\u6b64\u8fde\u7eed\u6027\u53ef\u4ee5\u8fc7\u6ee4\u566a\u58f0\u3002<\/li>\n<\/li>\n<li>\u6700\u7ec8\u5f97\u5230\u7ec6\u3001\u8fde\u7eed\u3001\u6297\u566a\u3001\u5355\u50cf\u7d20\u7684\u8fb9\u7f18\u56fe\u3002<\/li>\n<p>4.Laplacian of Gaussian (LoG) \u7b97\u5b50<\/p>\n<p>\u9ad8\u65af\u62c9\u666e\u62c9\u65af\u7b97\u5b50&#xff0c;\u672c\u8d28\u662f\u5148\u7528 Gaussian \u505a\u5e73\u6ed1\u53bb\u566a&#xff0c;\u518d\u7528 Laplacian \u505a\u4e8c\u9636\u5bfc\u6570&#xff08;\u68c0\u6d4b\u5f3a\u5ea6\u66f2\u7387\u53d8\u5316&#xff09;\u3002<\/p>\n<li>\u9ad8\u65af\u6a21\u7cca&#xff1a;\u5728\u68af\u5ea6\u8ba1\u7b97\u524d\u8fdb\u884c\u53bb\u566a&#xff0c;\u907f\u514d\u5fae\u5206\u653e\u5927\u9ad8\u9891\u566a\u58f0&#xff0c;\u56e0\u4e3a\u68af\u5ea6\u8ba1\u7b97\u672c\u8d28\u662f\u5fae\u5206&#xff0c;\u5fae\u5206&#061;\u9ad8\u901a\u64cd\u4f5c&#xff0c;\u9ad8\u901a&#061;\u653e\u5927\u566a\u58f0&#xff0c;\u6240\u4ee5\u5fc5\u987b\u5148\u4f4e\u901a\u6ee4\u6ce2\u3002<\/li>\n<li>Laplacian Operator&#xff1a;\u4e8c\u9636\u5bfc\u6570&#xff0c;<img decoding=\"async\" alt=\"\\\\nabla^2 I_s = \\\\frac{\\\\partial^2 I_s}{\\\\partial x^2} + \\\\frac{\\\\partial^2 I_s}{\\\\partial y^2}\" class=\"mathcode\" src=\"2026-08-16xicab3lihsv.png\" \/>&#xff0c;\u79bb\u6563\u5b9e\u73b0&#xff0c;\u5e38\u7528\u5377\u79ef\u6838<img decoding=\"async\" alt=\"\\\\left[\\\\begin{matrix}0 &amp; 1 &amp; 0\\\\\\\\1 &amp; -4 &amp; 1\\\\\\\\0 &amp; 1 &amp; 0\\\\end{matrix}\\\\right]\" class=\"mathcode\" src=\"2026-08-16w3jhhzjqpep.png\" \/><img decoding=\"async\" alt=\"\\\\left[\\\\begin{matrix}1 &amp; 1 &amp; 1\\\\\\\\1 &amp; -8 &amp; 1\\\\\\\\1 &amp; 1 &amp; 1\\\\end{matrix}\\\\right]\" class=\"mathcode\" src=\"2026-08-16xioguswpr1d.png\" \/>&#xff0c;\u68c0\u6d4b\u5c40\u90e8\u4e8c\u9636\u66f2\u7387\u53d8\u5316\u3002<\/li>\n<li>\u54cd\u5e94\u5206\u6790&#xff1a;LoG\u8f93\u51fa\u662f\u4e00\u4e2a\u54cd\u5e94\u56fe&#xff0c;\u4f8b\u5982\u6b63 \u2192 \u8d1f\u3001\u8d1f \u2192 \u6b63\u7684\u4f4d\u7f6e&#xff0c;\u8fdb\u884c\u96f6\u4ea4\u53c9\u68c0\u6d4b&#xff1a;\u8fb9\u7f18\u51fa\u73b0\u5728 LoG \u54cd\u5e94\u7684\u7b26\u53f7\u53d8\u5316\u4f4d\u7f6e&#xff0c;\u5982\u679c LoG(p)\u22c5LoG(q) &lt; 0&#xff0c;\u8ba4\u4e3a\u5b58\u5728 edge\u3002<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"350\" src=\"2026-08-162t1d1aj15zv.png\" width=\"1373\" \/><\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1024\" src=\"2026-08-160dinsifdhzd.png\" width=\"1536\" \/><\/p>\n<p>\u6838\u5fc3\u76ee\u6807\u662f\u627e\u5230\u53d8\u6362 T \u4f7f\u4e24\u5e45\u56fe\u8fb9\u7f18\u5c3d\u91cf\u91cd\u5408&#xff0c;E(T)\u2192min\u3002<\/p>\n<p>1.\u51e0\u79cd\u6838\u5fc3\u601d\u60f3&#xff1a;<\/p>\n<li>\u8fb9\u7f18\u70b9\u8ddd\u79bb\u6700\u5c0f\u5316&#xff1a;\u6700\u57fa\u7840&#xff0c;\u76ee\u6807\u662f<img decoding=\"async\" alt=\"E=\\\\sum_{i} d(Tp_i,\\\\, q)^2\" class=\"mathcode\" src=\"2026-08-160lmwfzarxl2.png\" \/>&#xff0c;pi&#xff1a;\u6e90\u56fe\u8fb9\u7f18\u70b9&#xff1b;T(pi)&#xff1a;\u53d8\u6362\u540e\u4f4d\u7f6e&#xff1b;d(\u22c5)&#xff1a;\u5230\u76ee\u6807\u8fb9\u7f18\u8ddd\u79bb&#xff1b;E2&#xff1a;\u76ee\u6807\u8fb9\u7f18\u96c6\u5408\u3002\u8868\u793a\u53d8\u6362\u540e\u7684\u8fb9\u7f18\u70b9\u8ddd\u79bb\u76ee\u6807\u8fb9\u7f18\u8d8a\u8fd1\u8d8a\u597d\u3002<\/li>\n<li>\u8fb9\u7f18\u65b9\u5411\u4e00\u81f4\u6027&#xff1a;\u4e0d\u4ec5\u4f4d\u7f6e\u63a5\u8fd1&#xff0c;\u65b9\u5411\u4e5f\u5e94\u4e00\u81f4&#xff1a;<img decoding=\"async\" alt=\"E_\\\\theta=\\\\sum \\\\bigl|\\\\theta_i-\\\\theta_j\\\\bigr|\" class=\"mathcode\" src=\"2026-08-161bs0lbvmyz5.png\" \/><\/li>\n<li>\u8fb9\u7f18\u5f62\u72b6\u4e00\u81f4\u6027&#xff1a;\u4f8b\u5982\u8f6e\u5ed3\u6574\u4f53\u5f62\u72b6&#xff0c;\u53ef\u4ee5\u4f7f\u7528 Shape Context\u3001Hausdorff\u3001Fourier Shape\u3002<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"319\" src=\"2026-08-16vxe1nqoq0an.png\" width=\"607\" \/><\/p>\n<p>2.\u8ddd\u79bb\u53d8\u6362&#xff08;Distance Transform&#xff09;&#xff1a;\u8fb9\u7f18\u914d\u51c6\u7684\u6838\u5fc3\u6570\u5b66\u5de5\u5177\u3002\u6838\u5fc3\u601d\u60f3\u662f\u4e0d\u518d\u5173\u6ce8\u662f\u5426\u521a\u597d\u843d\u5728\u8fb9\u7f18\u4e0a&#xff0c;\u800c\u662f\u95ee\u79bb\u8fb9\u7f18\u6709\u591a\u8fdc&#xff0c;\u4e8e\u662f\u8fb9\u7f18\u5c31\u53d8\u6210\u4e86\u8ddd\u79bb\u573a\u3002<\/p>\n<li>\u4e3a\u4ec0\u4e48\u9700\u8981&#xff1a;\u8fb9\u7f18\u56fe\u7684\u672c\u8d28\u662f0\/1\u4e8c\u503c\u56fe&#xff0c;\u5982\u679c\u76f4\u63a5\u4e8c\u503c\u6bd4\u8f83&#xff0c;\u4f1a\u51fa\u73b0\u53ea\u5dee 1 \u50cf\u7d20\u4e5f\u4f1a\u5bfc\u81f4\u8fb9\u7f18\u70b9\u4e0d\u91cd\u5408&#xff0c;\u8bef\u5dee\u53d8\u62101&#xff0c;\u5bfc\u81f4&#xff1a;\n<li>\u8bef\u5dee\u51fd\u6570\u4e0d\u8fde\u7eed&#xff1a;\u4f18\u5316\u66f2\u7ebf\u8df3\u53d8&#xff0c;\u800c\u4e0d\u662f\u5e73\u6ed1\u53d8\u5316\u3002<\/li>\n<li>\u5bf9\u566a\u58f0\u6781\u654f\u611f&#xff1a;\u4e00\u4e2a\u566a\u58f0\u70b9\u53ef\u80fd\u5bfc\u81f4\u8bef\u5dee\u5267\u70c8\u53d8\u5316\u3002<\/li>\n<li>\u65e0\u6cd5\u505a\u8fde\u7eed\u4f18\u5316&#xff1a;Gauss-Newton \/ LM \u7b49\u4f18\u5316\u65b9\u6cd5\u8981\u6c42\u8bef\u5dee\u51fd\u6570\u8fde\u7eed\u53ef\u5bfc&#xff0c;\u4f46\u4e8c\u503c\u8fb9\u7f18\u4e0d\u53ef\u5bfc\u3002<\/li>\n<\/li>\n<li>\u5b9a\u4e49&#xff1a;\u6bcf\u4e2a\u50cf\u7d20\u5230\u6700\u8fd1\u8fb9\u7f18\u7684\u8ddd\u79bb&#xff0c;<img decoding=\"async\" alt=\"DT(x,y) = \\\\min_{(u,v)\\\\in E} \\\\sqrt{(x-u)^2 + (y-v)^2}\" class=\"mathcode\" src=\"2026-08-165grxktyam4n.png\" \/>&#xff0c;\u5176\u4e2d E \u8868\u793a\u6240\u6709\u8fb9\u7f18\u70b9\u51e0\u4f55&#xff1b;(x,y) \u8868\u793a\u5f53\u524d\u50cf\u7d20&#xff1b;(u,v) \u8868\u793a\u8fb9\u7f18\u70b9&#xff1b;DT(x,y) \u5230\u6700\u8fd1\u8fb9\u7f18\u7684\u8ddd\u79bb\u3002\n<\/p>\n<\/li>\n<li>\u4e8c\u7ef4\u56fe&#xff1a;\u5047\u8bbe\u76ee\u6807\u8fb9\u7f180001000&#xff0c;\u4e2d\u95f41\u662f\u8fb9\u7f18&#xff1b;\u90a3\u4e48\u8ddd\u79bb\u56fe&#xff1a;3210123&#xff0c;0\u8868\u793a\u8fb9\u7f18\u5904&#xff0c;1\u8868\u793a\u76f8\u90bb\u50cf\u7d20&#xff0c;2\u30013\u8868\u793a\u66f4\u8fdc\u5904\u3002<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"358\" src=\"2026-08-16evman4jk2b4.png\" width=\"802\" \/><\/p>\n<p>3.\u8fb9\u7f18\u7279\u5f81\u83b7\u53d6\u65b9\u6cd5<\/p>\n<li>\u8fb9\u7f18\u70b9&#xff1a;\u6700\u57fa\u7840&#xff0c;\u4f8b\u5982 Canny\u3001Sobel\u3001Scharr \u5f97\u5230\u79bb\u6563\u8fb9\u7f18\u50cf\u7d20\u3002\u7b80\u5355\u3001\u6570\u91cf\u591a\u3001\u6613\u4f18\u5316&#xff0c;\u4f46\u662f\u5bf9\u566a\u58f0\u654f\u611f\u3001\u7f3a\u5c11\u7ed3\u6784\u4fe1\u606f\u3002<\/li>\n<li>\u8fb9\u7f18\u94fe&#xff1a;\u628a\u8fde\u7eed\u8fb9\u7f18\u8fde\u63a5\u6210\u66f2\u7ebf\u3002\u53ef\u4ee5\u4fdd\u7559\u62d3\u6251\u7ed3\u6784\u3001\u8fde\u7eed\u6027\u66f4\u597d.<\/li>\n<li>\u8f6e\u5ed3&#xff1a;\u8fdb\u4e00\u6b65\u5f62\u6210\u5b8c\u6574\u95ed\u5408\u7ed3\u6784\u3002\u51e0\u4f55\u4fe1\u606f\u4e30\u5bcc\u3001\u9002\u5408\u5f62\u72b6\u5339\u914d&#xff0c;\u4f46\u662f\u5bf9\u906e\u6321\u654f\u611f\u3001\u63d0\u53d6\u4f9d\u8d56\u9608\u503c\u3002<\/li>\n<p>&#xff08;5&#xff09;\u8fb9\u7f18\u914d\u51c6\u65b9\u6cd5<\/p>\n<p>1.Chamfer Matching&#xff08;\u5012\u89d2\u5339\u914d&#xff09;<\/p>\n<p>\u57fa\u4e8e\u8ddd\u79bb\u573a\u7684\u8fb9\u7f18\u914d\u51c6&#xff0c;\u672c\u8d28\u5c31\u662f Distance Transform &#043; \u8fb9\u7f18\u70b9\u6c42\u548c\u3002\u6838\u5fc3\u601d\u60f3\u662f\u6a21\u677f\u8fb9\u7f18\u53d8\u6362\u540e\u843d\u5230\u76ee\u6807\u8fb9\u7f18\u9644\u8fd1\u3002<\/p>\n<li>\u6570\u5b66\u5b9a\u4e49&#xff1a;\u8bef\u5dee&#xff1a;<img decoding=\"async\" alt=\"E(T)=\\\\sum_{i} DT(Tp_i)\" class=\"mathcode\" src=\"2026-08-16kkl31bxpk5c.png\" \/>&#xff1b;\u6a21\u677f\u8fb9\u7f18 pi \u7ecf\u8fc7\u53d8\u6362 T(pi\u200b) \u843d\u5230\u76ee\u6807\u8ddd\u79bb\u56fe DT \u4e0a\u67e5\u8be2\u8ddd\u79bb\u3002<\/li>\n<li>\u4e3a\u4ec0\u4e48\u6709\u6548&#xff1a;\u5982\u679c\u8fb9\u7f18\u91cd\u5408&#xff0c;\u5219 E(T)\u21920&#xff0c;\u8bef\u5dee\u5c0f\u3002<\/li>\n<li>\u4f18\u70b9&#xff1a;\u5feb\u3001\u6613\u5b9e\u73b0\u3001\u53ef\u8fde\u7eed\u4f18\u5316\u3001\u5bf9\u8f7b\u5fae\u566a\u58f0\u9c81\u68d2\u3002<\/li>\n<li>\u7f3a\u70b9&#xff1a;\u6613\u5c40\u90e8\u6700\u4f18\u3001\u4f9d\u8d56\u521d\u503c\u3001\u4e0d\u8003\u8651\u65b9\u5411\u3002<\/li>\n<li>Directional Chamfer Matching&#xff08;\u5b9a\u5411\u5012\u89d2\u5339\u914d&#xff09;&#xff1a;\u52a0\u5165\u8fb9\u7f18\u65b9\u5411\u4e00\u81f4\u6027&#xff0c;\u8bef\u5dee&#xff1a;<img decoding=\"async\" alt=\"E=\\\\sum_{i} DT\\\\bigl(T(p_i)\\\\bigr)+\\\\lambda \\\\bigl|\\\\theta_i-\\\\theta_i&apos;\\\\bigr|\" class=\"mathcode\" src=\"2026-08-163wyu4rxhvht.png\" \/>\u3002<\/li>\n<p>2.Hausdorff Matching<\/p>\n<p>\u8c6a\u65af\u591a\u592b\u5339\u914d&#xff0c;\u57fa\u4e8e\u5f62\u72b6\u63cf\u8ff0\u7684\u5339\u914d&#xff0c;\u5e38\u7528\u4e8e\u8fb9\u7f18\u5339\u914d\u3001\u8f6e\u5ed3\u5339\u914d\u3001\u6a21\u677f\u5339\u914d\u3001\u76ee\u6807\u68c0\u6d4b\u3001\u56fe\u50cf\u914d\u51c6\u3002\u5b83\u4e0d\u8981\u6c42\u70b9\u4e0e\u70b9\u4e25\u683c\u4e00\u4e00\u5bf9\u5e94&#xff0c;\u800c\u662f\u8861\u91cf\u4e24\u4e2a\u70b9\u96c6\u6700\u574f\u60c5\u51b5\u4e0b\u6709\u591a\u8fdc\u3002ICP \u5148\u5efa\u7acb\u5bf9\u5e94\u70b9\u518d\u4f18\u5316&#xff0c;\u8c6a\u65af\u591a\u592b\u76f4\u63a5\u8861\u91cf\u4e24\u4e2a\u51e0\u4f55\u6574\u4f53\u76f8\u4f3c\u6027&#xff0c;\u56e0\u6b64 Hausdorff\u00a0\u66f4\u504f\u5168\u5c40\u5f62\u72b6\u5339\u914d\u3002<\/p>\n<li>\u6570\u5b66\u5b9a\u4e49&#xff1a;<img decoding=\"async\" alt=\"H(A, B) = \\\\max_{a \\\\in A} \\\\min_{b \\\\in B} \\\\|a - b\\\\|\" class=\"mathcode\" src=\"2026-08-16312r5ogwro2.png\" \/>&#xff0c;\u5bf9 A \u4e2d\u7684\u6bcf\u4e2a\u70b9\u627e\u5230\u5728 B \u4e2d\u6700\u8fd1\u7684\u70b9&#xff0c;\u5373<img decoding=\"async\" alt=\"\\\\min_{b \\\\in B}||a-b||\" class=\"mathcode\" src=\"2026-08-16jda2zrclb14.png\" \/>&#xff0c;\u5f97\u5230\u8fd9\u4e2a\u70b9\u79bb\u76ee\u6807\u96c6\u5408\u6700\u8fd1\u6709\u591a\u8fdc&#xff0c;\u7136\u540e\u53d6\u5176\u4e2d\u7684\u6700\u5927\u503c&#xff0c;\u8fd9\u53eb Directed Hausdorff Distance&#xff08;\u5355\u5411\u8c6a\u65af\u591a\u592b\u8ddd\u79bb&#xff09;\u3002<\/li>\n<li>\u5b8c\u6574 Hausdorff Distance&#xff1a;\u56e0\u4e3a <img decoding=\"async\" alt=\"h(A, B) \\\\neq h(B, A)\" class=\"mathcode\" src=\"2026-08-16c3yvcwmca2w.png\" \/>&#xff0c;\u56e0\u6b64\u9700\u8981\u53cc\u5411 <img decoding=\"async\" alt=\"H(A, B) = \\\\max\\\\left(h(A, B), h(B, A)\\\\right)\" class=\"mathcode\" src=\"2026-08-16zavbenqza1i.png\" \/>&#xff0c;\u5373\u00a0<img decoding=\"async\" alt=\"H(A, B) = \\\\max\\\\left( \\\\max_{a \\\\in A} \\\\min_{b \\\\in B} \\\\|a - b\\\\|, \\\\max_{b \\\\in B} \\\\min_{a \\\\in A} \\\\|b - a\\\\| \\\\right)\" class=\"mathcode\" src=\"2026-08-16orhsbeyzoue.png\" \/>\u3002\u8868\u793a\u4e24\u4e2a\u96c6\u5408\u6700\u574f\u70b9\u7684\u8bef\u5dee\u3002<\/li>\n<li>\u76f4\u89c2\u7406\u89e3&#xff1a;\u5047\u8bbe\u4e24\u4e2a\u96c6\u5408\u7684\u70b9\u51e0\u4e4e\u91cd\u5408&#xff0c;\u8c6a\u65af\u591a\u592b\u8ddd\u79bb\u5f88\u5c0f&#xff0c;\u4f46\u5982\u679c\u5176\u4e2d\u4e00\u4e2a\u96c6\u5408\u6709\u4e00\u4e2a\u8fdc\u79bb\u70b9&#xff0c;\u90a3\u4e48\u8c6a\u65af\u591a\u592b\u8ddd\u79bb\u4f1a\u7a81\u7136\u53d8\u5927&#xff0c;\u56e0\u4e3a\u5b83\u5173\u5fc3\u6700\u574f\u7684\u90a3\u4e2a\u70b9\u3002<\/li>\n<li>Modified Hausdorff Distance&#xff08;MHD&#xff09;&#xff1a;\u89e3\u51b3\u79bb\u7fa4\u70b9\u95ee\u9898&#xff0c;MHD \u628a max \u6539\u6210 mean&#xff0c;<img decoding=\"async\" alt=\"h_{MHD}(A, B) = \\\\frac{1}{|A|} \\\\sum_{a \\\\in A} \\\\min_{b \\\\in B} \\\\|a - b\\\\|\" class=\"mathcode\" src=\"2026-08-16qcebzcx4wka.png\" \/>&#xff0c;\u8868\u793a\u5e73\u5747\u6700\u8fd1\u8ddd\u79bb&#xff0c;\u8fd9\u6837\u5bf9\u566a\u58f0\u66f4\u9c81\u68d2&#xff0c;\u5bf9\u79bb\u7fa4\u70b9\u4e0d\u654f\u611f<\/li>\n<li>\u5339\u914d\u6d41\u7a0b&#xff1a;1.\u63d0\u53d6\u8fb9\u7f18\u5f97\u5230\u70b9\u96c6\u30022.\u6784\u9020\u6a21\u677f\u3001\u76ee\u6807\u70b9\u96c6 A\u3001B\u30023.\u8ba1\u7b97\u8c6a\u65af\u591a\u592b\u8ddd\u79bb&#xff0c;\u4e0d\u65ad\u5e73\u79fb\u65cb\u8f6c\u6a21\u677f&#xff0c;\u8ba1\u7b97H(A,B)\u30024.\u627e\u6700\u5c0f\u8ddd\u79bb\u4f4d\u7f6e&#xff0c;argminH(A,B)&#xff0c;\u8ba4\u4e3a\u6b64\u65f6\u6a21\u677f\u4e0e\u76ee\u6807\u6700\u5339\u914d\u3002<\/li>\n<li>\u4f18\u70b9&#xff1a;1.\u4e0d\u9700\u8981\u663e\u793a\u5bf9\u5e94\u70b9&#xff0c;\u4e0d\u9700\u8981\u4e00\u4e00\u914d\u5bf9\u30022.\u80fd\u8861\u91cf\u6574\u4f53\u5f62\u72b6\u5dee\u5f02&#xff0c;\u9002\u5408\u8f6e\u5ed3\u5339\u914d\u30023.\u5bf9\u90e8\u5206\u906e\u6321\u6709\u4e00\u5b9a\u9c81\u68d2\u6027\u3002<\/li>\n<li>\u7f3a\u70b9&#xff1a;1.\u5bf9\u79bb\u6563\u7fa4\u70b9\u654f\u611f\u30022.\u8ba1\u7b97\u91cf\u5927&#xff0c;\u4e24\u96c6\u5408\u4e24\u4e24\u641c\u7d22&#xff0c;O(MN)\u30023.\u4e0d\u9002\u5408\u7cbe\u7ec6\u8fde\u7eed\u4f18\u5316&#xff0c;\u66f4\u50cf\u5339\u914d\u8bc4\u4ef7\u6307\u6807&#xff0c;\u800c\u4e0d\u662f\u8fde\u7eed\u4f4d\u59ff\u4f18\u5316\u5668\u3002<\/li>\n<p>Hausdorff \u770b\u6700\u574f\u90a3\u4e2a\u70b9\u3002Modified Hausdorff \u770b\u5e73\u5747\u6700\u8fd1\u8ddd\u79bb&#xff0c;\u4f46\u4fdd\u7559 Hausdorff \u601d\u60f3\u3002Chamfer Distance \u770b\u4e24\u4e2a\u70b9\u96c6\u6574\u4f53\u5e73\u5747\u6700\u8fd1\u8ddd\u79bb\u3002<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"375\" src=\"2026-08-16t5rvfgbmvcq.png\" width=\"1007\" \/><\/p>\n<p>3.\u57fa\u4e8e\u65b9\u5411\u4e00\u81f4\u6027\u7684\u5339\u914d<\/p>\n<p>OCM&#xff08;Chamfer Matching &#043; Orientation&#xff09;&#xff1a;\u5728 CM \u7684\u57fa\u7840\u4e0a\u589e\u52a0\u68af\u5ea6\u65b9\u5411\u7ea6\u675f &#xff0c;<br \/>\n<img decoding=\"async\" alt=\"E = d(p,E) + \\\\lambda \\\\bigl|\\\\theta_p - \\\\theta_q\\\\bigr|\" class=\"mathcode\" src=\"2026-08-16ef2wrtdykem.png\" \/>&#xff0c;\u03b8&#xff1a;\u8fb9\u7f18\u65b9\u5411&#xff1b;\u03bb&#xff1a;\u65b9\u5411\u6743\u91cd\u3002\u53ea\u6709\u8ddd\u79bb\u8fd1\u3001\u65b9\u5411\u4e5f\u4e00\u81f4\u624d\u8ba4\u4e3a\u5339\u914d\u6b63\u786e\u3002<\/p>\n<p>DCM&#xff08;Directional Chamfer Matching&#xff09;&#xff1a;\u628a\u65b9\u5411\u52a0\u5165 DT &#xff08;\u8ddd\u79bb\u53d8\u6362&#xff09;&#xff0c;\u6bcf\u4e2a\u65b9\u5411&#xff0c;\u4e00\u4e2a DT&#xff0c;\u5373 0\u5ea6\u300110\u5ea6\u300120\u5ea6\u5206\u522b\u5efa\u7acb\u8ddd\u79bb\u573a&#xff0c;\u5339\u914d\u65f6\u4e0d\u4ec5\u8981\u6c42\u8ddd\u79bb\u6700\u8fd1&#xff0c;\u8fd8\u8981\u6c42\u65b9\u5411\u901a\u9053\u4e00\u81f4\u3002\u9002\u5408\u7ebf\u7ed3\u6784&#xff0c;\u5de5\u4e1a\u5b9a\u4f4d\u3002<\/p>\n<p>Edge Orientation Histogram&#xff1a;\u6838\u5fc3\u65f6\u6bd4\u8f83\u8fb9\u7f18\u65b9\u5411\u7edf\u8ba1\u5206\u5e03&#xff0c;\u7edf\u8ba1\u68af\u5ea6\u65b9\u5411&#xff0c;\u5efa\u7acb\u65b9\u5411\u76f4\u65b9\u56fe\u3002<\/p>\n<p>Normal-based Matching&#xff1a;\u57fa\u4e8e\u6cd5\u7ebf\u7684\u5339\u914d&#xff0c;<img decoding=\"async\" alt=\"E=\\\\|p-q\\\\|^2+\\\\lambda\\\\bigl(1-{n_p}^\\\\top n_q\\\\bigr)\" class=\"mathcode\" src=\"2026-08-16grkxoqhjhbr.png\" \/>&#xff0c;\u8981\u6c42\u00a0<img decoding=\"async\" alt=\"{n_p}^\\\\top n_q\" class=\"mathcode\" src=\"2026-08-161falsijz10p.png\" \/>\u5927&#xff0c;\u5373\u6cd5\u7ebf\u65b9\u5411\u4e00\u81f4\u3002<\/p>\n<p>3.Edge-based ICP&#xff08;E-ICP&#xff09;<\/p>\n<p>Iterative Closest Point&#xff0c;\u57fa\u4e8e\u6700\u8fd1\u70b9\u8fed\u4ee3\u7684\u914d\u51c6&#xff0c;\u6838\u5fc3\u601d\u60f3\u662f\u4e0d\u65ad\u5bfb\u627e\u6700\u8fd1\u8fb9\u7f18\u5bf9\u5e94\u70b9&#xff0c;\u518d\u4f18\u5316 R\u3001t&#xff0c;\u76f4\u5230\u6536\u655b\u3002<\/p>\n<li>\u6570\u5b66\u5b9a\u4e49&#xff1a;<img decoding=\"async\" alt=\"E=\\\\sum_{i} \\\\bigl\\\\|T(p_i)-q_i\\\\bigr\\\\|^2\" class=\"mathcode\" src=\"2026-08-16j3jh33hlerl.png\" \/>\u3002E&#xff1a;\u6574\u4f53\u5339\u914d\u8bef\u5dee&#xff0c;\u8bef\u5dee\u8d8a\u5c0f\u5bf9\u9f50\u6548\u679c\u8d8a\u597d&#xff1b;<img decoding=\"async\" alt=\"$\\\\sum\\\\limits_i$\" class=\"mathcode\" src=\"2026-08-16jn5jei2wybq.png\" \/> &#xff1a;\u5bf9\u6240\u6709\u8fb9\u7f18\u70b9\u8ddd\u79bb\u7684\u7d2f\u52a0\u6c42\u548c&#xff1b;pi&#xff1a;\u6e90\u56fe\u50cf&#061;\u4e0a\u7b2c i \u4e2a\u8fb9\u7f18\u70b9&#xff1b;<img decoding=\"async\" alt=\"$T(\\\\cdot)$\" class=\"mathcode\" src=\"2026-08-16jk3nrhdoetj.png\" \/>&#xff1a;\u7a7a\u95f4\u53d8\u6362\u7b97\u5b50&#xff08;\u65cb\u8f6c\u3001\u5e73\u79fb\u3001\u7f29\u653e&#xff09;&#xff1b;<img decoding=\"async\" alt=\"$T(p_i)$\" class=\"mathcode\" src=\"2026-08-16cyahkrg5qcy.png\" \/>&#xff1a;\u7ecf\u8fc7\u53d8\u6362\u540e\u7684\u6e90\u8fb9\u7f18\u70b9&#xff1b;<img decoding=\"async\" alt=\"$q_i$\" class=\"mathcode\" src=\"2026-08-16x3wodszxbwl.png\" \/>&#xff1a;\u76ee\u6807\u56fe\u50cf\u4e0a\u5bf9\u5e94\u7684\u5339\u914d\u70b9&#xff1b;d(\u22c5)&#xff1a;\u5230\u76ee\u6807\u8fb9\u7f18\u7684\u6700\u8fd1\u8ddd\u79bb&#xff1b;<img decoding=\"async\" alt=\"$\\\\|\\\\cdot\\\\|^2$\" class=\"mathcode\" src=\"2026-08-160e5zprapouj.png\" \/>&#xff1a;\u6b27\u6c0f\u8ddd\u79bb\u5e73\u65b9&#xff0c;\u4ee3\u8868\u4e24\u70b9\u7a7a\u95f4\u8ddd\u79bb\u3002<\/li>\n<li>\u8fed\u4ee3\u4f18\u5316&#xff1a;\n<li>\u521d\u59cb\u72b6\u6001&#xff1a;\u7ed9\u5b9a\u521d\u59cb\u53d8\u6362\u53c2\u6570&#xff0c;\u521d\u6b65\u5339\u914d\u4e24\u7ec4\u8fb9\u7f18\u70b9&#xff0c;\u751f\u6210\u521d\u59cb\u5bf9\u5e94\u70b9\u5bf9<img decoding=\"async\" alt=\"$(p_i,\\\\, q_i)$\" class=\"mathcode\" src=\"2026-08-16dwbitcihvw0.png\" \/>\u3002opencv \u4e2d\u9ed8\u8ba4\u81ea\u52a8\u4ece \u201c\u96f6\u53d8\u6362\u201d \u5f00\u59cb&#xff08;\u4e0d\u65cb\u8f6c\u3001\u4e0d\u5e73\u79fb&#xff09;\u3002<\/li>\n<li>\u6c42\u89e3\u5f53\u524d\u6700\u4f18\u53d8\u6362&#xff1a;\u5bf9\u6bcf\u4e2a\u6e90\u8fb9\u7f18\u70b9&#xff0c;\u5728\u76ee\u6807\u8fb9\u7f18\u70b9\u4e2d\u5bfb\u627e\u6700\u8fd1\u70b9&#xff0c;\u751f\u6210\u5bf9\u5e94\u70b9\u5bf9<img decoding=\"async\" alt=\"(p_i, q_i)\" class=\"mathcode\" src=\"2026-08-1633tnuawonnc.png\" \/>\u3002\u4f9d\u636e\u5f53\u524d\u70b9\u5bf9&#xff0c;\u6700\u5c0f\u5316\u8ddd\u79bb\u5e73\u65b9\u548c&#xff0c;\u901a\u8fc7\u53bb\u4e2d\u5fc3\u5316\u3001\u6784\u9020\u534f\u65b9\u5dee\u77e9\u9635\u3001SVD \u5206\u89e3&#xff0c;\u7b97\u51fa\u672c\u8f6e\u6700\u4f18\u65cb\u8f6c\u77e9\u9635 R \u4e0e\u5e73\u79fb\u5411\u91cf t\u3002<\/li>\n<li>\u70b9\u4f4d\u66f4\u65b0&#xff1a;\u7528\u6c42\u5f97\u7684\u53d8\u6362\u66f4\u65b0\u6e90\u8fb9\u7f18\u70b9&#xff1a;<img decoding=\"async\" alt=\"$p_i&apos; = R\\\\, p_i + t$\" class=\"mathcode\" src=\"2026-08-16pk2cscwxzcu.png\" \/>\u3002<\/li>\n<li>\u91cd\u65b0\u5339\u914d\u5bf9\u5e94\u70b9&#xff1a;\u4ee5\u66f4\u65b0\u540e\u7684\u70b9\u4f4d\u4e3a\u57fa\u51c6&#xff0c;\u5728\u76ee\u6807\u8fb9\u7f18\u4e0a\u641c\u5bfb\u65b0\u7684\u6700\u8fd1\u5339\u914d\u70b9&#xff0c;\u5237\u65b0\u70b9\u5bf9\u5173\u7cfb\u3002<\/li>\n<li>\u8bef\u5dee\u5224\u5b9a\u6536\u655b&#xff1a;\u8ba1\u7b97\u65b0\u4e00\u8f6e\u6574\u4f53\u8bef\u5deeE&#xff0c;\u5bf9\u6bd4\u4e0a\u4e00\u8f6e\u8bef\u5dee&#xff1a;\u8bef\u5dee\u964d\u5e45\u5c0f\u4e8e\u8bbe\u5b9a\u9608\u503c&#xff0c;\u505c\u6b62\u8fed\u4ee3&#xff0c;\u8fbe\u5230\u6700\u5c0f\u8ddd\u79bb\u5339\u914d&#xff1b;\u8bef\u5dee\u4ecd\u660e\u663e\u51cf\u5c0f&#xff0c;\u8fd4\u56de\u7b2c\u4e8c\u6b65\u7ee7\u7eed\u5faa\u73af\u4f18\u5316\u3002<\/li>\n<\/li>\n<li>\u4f18\u70b9&#xff1a;1.\u5b9e\u73b0\u7b80\u5355\u30022.\u51e0\u4f55\u610f\u4e49\u76f4\u89c2\u30023.\u5bf9\u8fb9\u7f18\u8f6e\u5ed3\u914d\u51c6\u6709\u6548\u30024.\u53ef\u7528\u4e8e\u6fc0\u5149\u70b9\u4e91\u3001\u8fb9\u7f18\u5730\u56fe\u3001Shape Alignment\u3002<\/li>\n<li>\u7f3a\u70b9&#xff1a;1.\u4f9d\u8d56\u521d\u503c&#xff0c;\u901a\u5e38\u9700\u8981\u7c97\u914d\u51c6\u3001\u91d1\u5b57\u5854\u3001\u7279\u5f81\u5339\u914d\u3001RANSAC\u5148\u63d0\u4f9b\u8f83\u597d\u521d\u503c\u30022.\u6700\u8fd1\u70b9\u4e0d\u4e00\u5b9a\u771f\u5bf9\u5e94\u30023.\u5bb9\u6613\u9677\u5165\u5c40\u90e8\u6700\u4f18\u3002<\/li>\n<p>4.Point-to-Line ICP<\/p>\n<p>\u666e\u901a IPC \u4f7f\u7528\u70b9\u5230\u70b9\u6b27\u5f0f\u8ddd\u79bb&#xff0c;\u5f53\u70b9\u6cbf\u8fb9\u7f18\u65b9\u5411\u6ed1\u52a8\u65f6&#xff0c;\u5373\u4f7f\u771f\u5b9e\u4f4d\u7f6e\u5df2\u7ecf\u6bd4\u8f83\u63a5\u8fd1&#xff0c;\u8ddd\u79bb\u4ecd\u4f1a\u53d1\u751f\u660e\u663e\u53d8\u5316\u3002\u4e8e\u662f\u63d0\u51fa\u70b9\u5230\u7ebf ICP&#xff0c;\u4e0d\u4f18\u5316\u6574\u4f53\u6b27\u5f0f\u8ddd\u79bb&#xff0c;\u53ea\u4f18\u5316\u6cd5\u7ebf\u65b9\u5411\u8bef\u5dee\u3002<\/p>\n<li>\u6570\u5b66\u5b9a\u4e49&#xff1a;<img decoding=\"async\" alt=\"E = \\\\sum_{i} \\\\left( n_i^T \\\\left( T(p_i) - q_i \\\\right) \\\\right)^2\" class=\"mathcode\" src=\"2026-08-1611sztjsnpfe.png\" \/>&#xff0c;ni&#xff1a;\u76ee\u6807\u8fb9\u7f18\u6cd5\u7ebf&#xff1b;<img decoding=\"async\" alt=\"${n_i}^\\\\top(\\\\cdot)$\" class=\"mathcode\" src=\"2026-08-16ncz4wdz11ie.png\" \/>&#xff1a;\u628a\u8bef\u5dee\u6295\u5f71\u5230\u6cd5\u7ebf\u65b9\u5411&#xff0c;\u672c\u8d28\u662f\u8ba1\u7b97\u70b9\u7684\u6cd5\u7ebf\u65b9\u5411\u8ddd\u79bb\u3002<\/li>\n<li>\u4e3a\u4ec0\u4e48\u7a33\u5b9a&#xff1a;\u5bf9\u4e8e\u8fb9\u7f18&#xff0c;\u6cd5\u7ebf\u65b9\u5411\u7ea6\u675f\u5f3a&#xff0c;\u5207\u7ebf\u65b9\u5411\u672c\u8eab\u4e0d\u7a33\u5b9a&#xff0c;\u4f8b\u5982\u70b9\u6cbf\u8fb9\u7f18\u5de6\u53f3\u6ed1\u52a8&#xff0c;\u5b9e\u9645\u4e0a\u8fb9\u7f18\u5f62\u72b6\u51e0\u4e4e\u6ca1\u53d8\u5316&#xff0c;\u4f46 Point-to-Point \u4f1a\u8ba4\u4e3a\u70b9\u4f4d\u7f6e\u53d1\u751f\u53d8\u5316&#xff0c;\u56e0\u6b64\u8bef\u5dee\u6301\u7eed\u53d8\u5316\u3002\u800c Point-to-Line \u53ea\u5173\u5fc3\u70b9\u662f\u5426\u8d34\u8fd1\u8fb9\u7f18&#xff0c;\u56e0\u6b64\u6cbf\u8fb9\u7f18\u6ed1\u52a8\u65f6&#xff0c;\u6cd5\u7ebf\u65b9\u5411\u8ddd\u79bb\u51e0\u4e4e\u4e0d\u53d8&#xff0c;\u8bef\u5dee\u53d8\u5316\u5f88\u5c0f\u3002<\/li>\n<li>\u4f18\u70b9&#xff1a;1.\u6536\u655b\u66f4\u5feb&#xff0c;\u4f18\u5316\u65b9\u5411\u66f4\u51c6\u786e\u30022.\u8fb9\u7f18\u65b9\u5411\u7ea6\u675f\u66f4\u5408\u7406\u30023.\u5c0f\u89d2\u5ea6\u914d\u51c6\u6548\u679c\u66f4\u597d&#xff0c;\u5c24\u5176\u8fde\u7eed\u5e27\u3002<\/li>\n<li>\u7f3a\u70b9&#xff1a;1.\u4f9d\u8d56\u521d\u503c\u30022.\u9700\u8981\u7a33\u5b9a\u6cd5\u7ebf\u30023.\u5bf9\u566a\u58f0\u654f\u611f\u3002<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"557\" src=\"2026-08-16f0vtb1q5i5o.png\" width=\"1015\" \/><\/p>\n<h5>1.2.2 \u57fa\u4e8e\u8f6e\u5ed3\u7684\u65b9\u6cd5<\/h5>\n<p>\u8f6e\u5ed3\u65b9\u6cd5\u662f\u8fb9\u7f18\u65b9\u6cd5\u7684\u201c\u9ad8\u7ea7\u7ed3\u6784\u5316\u7248\u672c\u201d&#xff0c;\u56e0\u4e3a\u8fb9\u7f18\u662f\u79bb\u6563\u5c40\u90e8\u51e0\u4f55&#xff0c;\u800c\u8f6e\u5ed3\u662f\u8fde\u7eed\u6574\u4f53\u51e0\u4f55&#xff0c;\u5b83\u66f4\u5173\u6ce8\u201c\u7269\u4f53\u6574\u4f53\u5f62\u72b6\u201d\u800c\u4e0d\u662f\u5355\u4e2a\u8fb9\u7f18\u70b9\u3002<\/p>\n<p>\u8f6e\u5ed3\u914d\u51c6\u6838\u5fc3\u76ee\u6807&#xff1a;<img decoding=\"async\" alt=\"$T^*=\\\\arg\\\\min E(C_1,C_2)$\" class=\"mathcode\" src=\"2026-08-16lprijv0pyfz.png\" \/>&#xff0c;\u5176\u4e2d C1,C2 \u8868\u793a\u8f6e\u5ed3\u66f2\u7ebf&#xff1b;T \u662f\u51e0\u4f55\u53d8\u6362\u3002\u672c\u8d28\u662f\u8ba9\u4e24\u4e2a\u5f62\u72b6\u5c3d\u53ef\u80fd\u4e00\u81f4\u3002<\/p>\n<p>&#xff08;1&#xff09;\u5b8c\u6574\u6d41\u7a0b<\/p>\n<p>1.\u56fe\u50cf\u9884\u5904\u7406&#xff1a;\u7070\u5ea6\u5316\u3001\u9ad8\u65af\u53bb\u566a\u3002<\/p>\n<p>2.\u8fb9\u7f18\u68c0\u6d4b&#xff1a;Canny \u7b97\u5b50\u83b7\u53d6\u8fb9\u7f18\u56fe\u3002<\/p>\n<p>3.\u8f6e\u5ed3\u63d0\u53d6&#xff1a;\u63d0\u53d6\u8fde\u901a\u8f6e\u5ed3\u3001\u5c01\u95ed\u533a\u57df\u8f6e\u5ed3\u3002\u901a\u5e38\u8fb9\u7f18\u56fe \u2192 \u8fde\u901a\u533a\u57df \u2192 \u8f6e\u5ed3\u3002<\/p>\n<p>4.\u8f6e\u5ed3\u7279\u5f81\u8ba1\u7b97&#xff1a;Hu \u4e0d\u53d8\u77e9\u3001\u5085\u91cc\u53f6\u63cf\u8ff0\u5b50\u7b49\u3002<\/p>\n<p>5.\u8f6e\u5ed3\u76f8\u4f3c\u5ea6\u5339\u914d&#xff1a;\u6bd4\u5bf9\u8f6e\u5ed3\u7279\u5f81\u7b5b\u9009\u5339\u914d\u5bf9\u3002<\/p>\n<p>6.\u6c42\u89e3\u51e0\u4f55\u53d8\u6362\u77e9\u9635\u3002<\/p>\n<p>7.\u56fe\u50cf\u53d8\u6362\u5b8c\u6210\u914d\u51c6\u5bf9\u9f50\u3002<\/p>\n<p>&#xff08;2&#xff09;\u4e0e\u8fb9\u7f18\u7684\u5bf9\u6bd4<\/p>\n<table>\n<tr>\u5bf9\u6bd4\u8fb9\u7f18&#xff08;Edge&#xff09;\u8f6e\u5ed3&#xff08;Contour&#xff09;<\/tr>\n<tbody>\n<tr>\n<td>\u672c\u8d28<\/td>\n<td>\u5c40\u90e8\u68af\u5ea6\u7a81\u53d8<\/td>\n<td>\u5b8c\u6574\u95ed\u5408\u7ed3\u6784<\/td>\n<\/tr>\n<tr>\n<td>\u4fe1\u606f\u5c42\u7ea7<\/td>\n<td>\u5c40\u90e8<\/td>\n<td>\u5168\u5c40<\/td>\n<\/tr>\n<tr>\n<td>\u6570\u636e\u5f62\u5f0f<\/td>\n<td>\u8fb9\u7f18\u70b9<\/td>\n<td>\u66f2\u7ebf\/\u533a\u57df<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u8f93\u51fa<\/td>\n<td>Canny<\/td>\n<td>findContours<\/td>\n<\/tr>\n<tr>\n<td>\u5173\u6ce8\u91cd\u70b9<\/td>\n<td>\u8fb9\u7f18\u4f4d\u7f6e<\/td>\n<td>\u5f62\u72b6\u7ed3\u6784<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u566a\u58f0<\/td>\n<td>\u66f4\u654f\u611f<\/td>\n<td>\u66f4\u7a33\u5b9a<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u906e\u6321<\/td>\n<td>\u8f83\u5f3a<\/td>\n<td>\u8f83\u5f31<\/td>\n<\/tr>\n<tr>\n<td>\u9002\u5408<\/td>\n<td>VO\/SLAM<\/td>\n<td>\u76ee\u6807\u8bc6\u522b\/\u533b\u5b66<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u95ed\u5408<\/td>\n<td>\u4e0d\u4e00\u5b9a<\/td>\n<td>\u901a\u5e38\u95ed\u5408<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#xff08;3&#xff09;\u8f6e\u5ed3\u76f8\u5173\u6982\u5ff5<\/p>\n<p>1.\u8f6e\u5ed3\u8868\u793a\u65b9\u6cd5&#xff1a;<\/p>\n<li>\u70b9\u94fe&#xff1a;P1 \u2192 P2 \u2192 P3\u3002<\/li>\n<li>\u95ed\u5408\u66f2\u7ebf&#xff1a;\u5b8c\u6574\u8fb9\u754c\u3002<\/li>\n<li>\u591a\u8fb9\u5f62\u8fd1\u4f3c&#xff1a;approxPolyDP()\u3002<\/li>\n<p>2.\u57fa\u7840\u51e0\u4f55\u91cf&#xff1a;<\/p>\n<li>\u9762\u79ef&#xff1a;contourArea()\u3002<\/li>\n<li>\u5468\u957f&#xff1a;arcLength()\u3002<\/li>\n<li>\u5916\u63a5\u77e9\u5f62&#xff1a;boundingRect()\u3002<\/li>\n<li>\u6700\u5c0f\u5916\u63a5\u65cb\u8f6c\u77e9\u5f62&#xff1a;minAreaRect()\u3002<\/li>\n<li>\u51f8\u5305&#xff1a;convexHull()\u3002<\/li>\n<p>3.\u77e9&#xff08;Moments&#xff09;&#xff1a;\u8f6e\u5ed3\u65b9\u6cd5\u6838\u5fc3\u6570\u5b66\u5de5\u5177\u4e4b\u4e00&#xff0c;\u601d\u60f3\u6765\u6e90\u4e8e\u7269\u7406\u4e2d\u7684\u8d28\u91cf\u77e9&#xff0c;\u5728\u56fe\u50cf\u4e2d\u628a\u50cf\u7d20\u770b\u6210\u8d28\u91cf&#xff0c;\u56e0\u6b64\u56fe\u50cf\u77e9\u7528\u4e8e\u63cf\u8ff0\u50cf\u7d20\u5982\u4f55\u5206\u5e03\u3002<\/p>\n<li>\u56fe\u50cf\u77e9&#xff1a;<img decoding=\"async\" alt=\"m_{pq} = \\\\sum_{x} \\\\sum_{y} x^p y^q I(x,y)\" class=\"mathcode\" src=\"2026-08-16aalllbitfxw.png\" \/>&#xff0c;\u8d28\u5fc3&#xff1a;<img decoding=\"async\" alt=\"c_x = \\\\frac{m_{10}}{m_{00}} c_y = \\\\frac{m_{01}}{m_{00}}\" class=\"mathcode\" src=\"2026-08-16cplk3tppdlz.png\" \/>\u3002\u65b9\u5411&#xff1a;\u628a\u5750\u6807\u79fb\u5230\u8d28\u5fc3&#xff0c;\u7528\u4e8c\u9636\u4e2d\u5fc3\u77e9 \u03bc20\u200b,\u03bc11\u200b,\u03bc02\u200b \u7b97\u4e3b\u8f74\u89d2\u5ea6\u3002\u5c3a\u5ea6&#xff1a;m00\u200b \u7ed9\u51fa\u6574\u4f53\u9762\u79ef&#xff1b;\u4e8c\u9636\u77e9\u7279\u5f81\u503c\u7ed9\u51fa\u957f \/ \u77ed\u8f74\u5c3a\u5bf8\u3002\n<li>\u96f6\u9636\u77e9&#xff1a;<img decoding=\"async\" alt=\"$m_{00} = \\\\sum_x\\\\sum_y I(x,y)$\" class=\"mathcode\" src=\"2026-08-16ogxy3wor5bv.png\" \/>&#xff0c;\u4ee3\u8868\u56fe\u50cf\u7684\u603b\u201c\u8d28\u91cf\u201d&#xff08;\u6240\u6709\u50cf\u7d20\u5f3a\u5ea6\u4e4b\u548c&#xff09;<\/li>\n<li>\u4e00\u9636\u77e9&#xff1a;\u7528\u4e8e\u8ba1\u7b97\u8d28\u5fc3&#xff0c;<img decoding=\"async\" alt=\"$m_{10} = \\\\sum_x\\\\sum_y x \\\\cdot I(x,y)$\" class=\"mathcode\" src=\"2026-08-16ugcfdirqra4.png\" \/>&#xff0c;\u4ee3\u8868\u56fe\u50cf\u5728x\u65b9\u5411\u4e0a\u7684\u52a0\u6743\u548c&#xff1b;<img decoding=\"async\" alt=\"m_{01} = \\\\sum_x\\\\sum_y y \\\\cdot I(x,y)\" class=\"mathcode\" src=\"2026-08-16reaeuwqbqya.png\" \/>&#xff0c;\u4ee3\u8868\u56fe\u50cf\u5728y\u65b9\u5411\u4e0a\u7684\u52a0\u6743\u548c\u3002<\/li>\n<li>\u4e2d\u5fc3\u77e9&#xff1a;\u53bb\u9664\u5e73\u79fb\u5f71\u54cd&#xff0c;<img decoding=\"async\" alt=\"\\\\mu_{pq} = \\\\sum_{x}\\\\sum_{y} (x-\\\\bar{x})^p (y-\\\\bar{y})^q I(x,y)\" class=\"mathcode\" src=\"2026-08-16y33c04lcshp.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"(\\\\bar{x}, \\\\bar{y})\" class=\"mathcode\" src=\"2026-08-16ojskrbs0ape.png\" \/>\u662f\u8d28\u5fc3\u3002<\/li>\n<li>\u5f52\u4e00\u5316\u4e2d\u5fc3\u77e9&#xff1a;\u4e2d\u5fc3\u77e9\u4ecd\u53d7\u7f29\u653e\u5f71\u54cd&#xff0c;\u6240\u4ee5\u7ee7\u7eed\u5f52\u4e00\u5316\u5b9e\u73b0\u5c3a\u5ea6\u4e0d\u53d8\u6027&#xff0c;<img decoding=\"async\" alt=\"\\\\eta_{pq} = \\\\frac{\\\\mu_{pq}}{\\\\mu_{00}^\\\\gamma}\" class=\"mathcode\" src=\"2026-08-161qodwbirrn3.png\" \/>&#xff0c;\u5176\u4e2d<img decoding=\"async\" alt=\"\\\\gamma = \\\\frac{p + q}{2} + 1\" class=\"mathcode\" src=\"2026-08-160f3gt2ggxoo.png\" \/><\/li>\n<\/li>\n<li>Hu Moments&#xff08;Hu \u4e0d\u53d8\u77e9&#xff09;&#xff1a;\u57fa\u4e8e<img decoding=\"async\" alt=\"\\\\eta_{pq}\" class=\"mathcode\" src=\"2026-08-165c3cyn1ik5z.png\" \/>&#xff0c;\u6784\u9020\u51fa 7 \u4e2a\u4e0d\u53d8\u77e9&#xff0c;\u8bb0\u4f5c<img decoding=\"async\" alt=\"\\\\phi_1, \\\\phi_2, ..., \\\\phi_7\" class=\"mathcode\" src=\"2026-08-16034n4owecvh.png\" \/>\u3002\u672c\u8d28\u662f\u7528\u4f4e\u9636\u7edf\u8ba1\u91cf\u63cf\u8ff0\u6574\u4f53\u5f62\u72b6&#xff0c;\u4f4e\u9636\u77e9\u63cf\u8ff0\u5927\u8f6e\u5ed3\u3001\u4e3b\u4f53\u7ed3\u6784&#xff0c;\u9ad8\u9636\u77e9\u63cf\u8ff0\u7ec6\u8282\u3001\u504f\u659c\u3001\u5c40\u90e8\u7ed3\u6784&#xff0c;\u56e0\u6b64 Hu \u66f4\u504f\u5168\u5c40\u5f62\u72b6\u7279\u5f81\u3002\n<li>\u7b2c\u4e00\u77e9&#xff1a;<img decoding=\"async\" alt=\"\\\\phi_1 = \\\\eta_{20} + \\\\eta_{02}\" class=\"mathcode\" src=\"2026-08-16c1g0funurlz.png\" \/>&#xff0c;\u63cf\u8ff0\u5728\u5f62\u72b6\u6574\u4f53\u6269\u6563\u7a0b\u5ea6\u3002<\/li>\n<li>\u7b2c\u4e8c\u77e9&#xff1a;<img decoding=\"async\" alt=\"\\\\phi_2 = (\\\\eta_{20} - \\\\eta_{02})^2 + 4\\\\eta_{11}^2\" class=\"mathcode\" src=\"2026-08-16somt3bqdx4o.png\" \/>&#xff0c;\u63cf\u8ff0\u5f62\u72b6\u4e3b\u65b9\u5411\u4e0e\u65b9\u5411\u504f\u7f6e\u7a0b\u5ea6\u3002<\/li>\n<li>\u7b2c\u4e09\u77e9&#xff1a;<img decoding=\"async\" alt=\"\\\\phi_3 = (\\\\eta_{30} - 3\\\\eta_{12})^2 + (3\\\\eta_{21} - \\\\eta_{03})^2\" class=\"mathcode\" src=\"2026-08-163kojbdyqzg0.png\" \/>&#xff0c;\u63cf\u8ff0\u5f62\u72b6\u7684\u4e0d\u5bf9\u79f0\u6027\u4e0e\u504f\u659c\u7a0b\u5ea6\u3002<\/li>\n<li>\u540e\u9762\u51e0\u4e2a\u77e9\u8fdb\u4e00\u6b65\u7ec4\u5408\u4e09\u9636\u77e9\u4e0e\u9ad8\u9636\u6df7\u5408\u9879&#xff0c;\u7528\u4e8e\u63cf\u8ff0\u5f62\u72b6\u7684\u5bf9\u79f0\u6027\u3001\u504f\u659c\u7a0b\u5ea6\u3001\u66f2\u7387\u53d8\u5316\u4ee5\u53ca\u590d\u6742\u51e0\u4f55\u7ed3\u6784\u3002<\/li>\n<li>\u76f4\u89c2\u7406\u89e3&#xff1a;\u5047\u8bbe\u5706\u5f62&#xff0c;Hu Moments\u6bd4\u8f83\u7a33\u5b9a&#xff0c;\u65cb\u8f6c\u6216\u65b9\u6cd5\u540e\u7684\u8fdc\u4ecd\u57fa\u672c\u4e0d\u53d8&#xff0c;\u56e0\u6b64 Hu \u80fd\u8bc6\u522b\u8fd9\u662f\u540c\u4e00\u4e2d\u5f62\u72b6\u3002<\/li>\n<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"240\" src=\"2026-08-162gbii0xxtew.png\" width=\"506\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"242\" src=\"2026-08-16h1khohgl2vt.png\" width=\"510\" \/><\/p>\n<p>&#xff08;4&#xff09;\u5339\u914d\u7b97\u6cd5<\/p>\n<p>1.Hu Moments Matching<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;<\/p>\n<li>\u4e8c\u503c\u5316&#xff1a;\u5c06\u5355\u901a\u9053\u7070\u5ea6\u56fe\u50cf\u8f6c\u6362\u4e3a\u4ec5\u542b\u4e24\u79cd\u50cf\u7d20\u503c\u7684\u56fe\u50cf\u5904\u7406\u64cd\u4f5c&#xff0c;\u8f93\u51fa\u56fe\u50cf\u50cf\u7d20\u53ea\u6709\u4e24\u7c7b&#xff1a;\u524d\u666f&#xff08;\u76ee\u6807&#xff09;\u4e0e\u80cc\u666f&#xff0c;\u901a\u5e38\u53d6\u503c\u4e3a 0&#xff08;\u7eaf\u9ed1&#xff09;\u548c 255&#xff08;\u7eaf\u767d&#xff09;\u3002<\/li>\n<li>\u63d0\u53d6\u8f6e\u5ed3&#xff1a;\u5f97\u5230\u7684\u6bcf\u4e2a\u8f6e\u5ed3\u672c\u8d28\u4e0a\u662f\u4e00\u5708\u8fb9\u7f18\u70b9\u3002<\/li>\n<li>\u8ba1\u7b97\u56fe\u50cf\u77e9\u3001\u4e2d\u5fc3\u8ddd\u3001\u5f52\u4e00\u5316\u4e2d\u5fc3\u77e9\u3002<\/li>\n<li>\u6784\u9020 Hu \u4e03\u4e2a\u77e9&#xff1a;\u4e03\u7ef4\u5f62\u72b6\u5411\u91cf\u7279\u5f81&#xff0c;\u672c\u8d28\u662f\u5c06\u590d\u6742\u8f6e\u5ed3\u538b\u7f29\u6210\u4e03\u4e2a\u6570\u5b57&#xff0c;\u4f8b\u5982[hu0, hu1, hu2, hu3, hu4, hu5, hu6]\u2192 [0.182, 0.004, 0.000001, &#8230;, &#8230;, &#8230;, &#8230;]\u3002<\/li>\n<li>Log \u53d8\u6362&#xff1a;\u5b9e\u9645\u4e2d\u901a\u5e38<img decoding=\"async\" alt=\"$H_i = -\\\\operatorname{sign}(h_{u_i})\\\\log\\\\bigl|h_{u_i}\\\\bigr|$\" class=\"mathcode\" src=\"2026-08-162zclu32tobk.png\" \/>&#xff0c;\u56e0\u4e3a Hu Moments \u6570\u503c\u8de8\u5ea6\u6781\u5927&#xff0c;\u4e0d\u53d6 log \u6570\u503c\u4e0d\u7a33\u5b9a\u3001\u5c0f\u503c\u88ab\u6df9\u6ca1\u3002<\/li>\n<li>\u4e24\u4e2a\u5f62\u72b6\u8fdb\u884c\u6bd4\u8f83&#xff1a;\u73b0\u5728\u6bcf\u4e2a\u5f62\u72b6\u90fd\u6709\u4e00\u4e2a 7 \u7ef4\u5411\u91cf&#xff0c;\u8ba1\u7b97\u7279\u5f81\u8ddd\u79bb&#xff0c;\u82e5 d &lt; T&#xff0c;\u5219\u8ba4\u4e3a\u4e24\u4e2a\u5f62\u72b6\u76f8\u540c&#xff0c;\u5426\u5219\u4e0d\u5339\u914d\u3002\n<li>\u6b27\u5f0f\u8ddd\u79bb&#xff1a;<img decoding=\"async\" alt=\"d = \\\\sqrt{\\\\sum_i (H_i^A - H_i^B)^2}\" class=\"mathcode\" src=\"2026-08-16rmbr2dmpsfj.png\" \/>\u3002<\/li>\n<li>L1\u8ddd\u79bb&#xff1a;<img decoding=\"async\" alt=\"d = \\\\sum_i |H_i^A - H_i^B|\" class=\"mathcode\" src=\"2026-08-16hnfzc4jihep.png\" \/>\u3002<\/li>\n<li>Cosine Similarity&#xff1a;\u6bd4\u8f83\u65b9\u5411\u76f8\u4f3c\u6027\u3002<\/li>\n<\/li>\n<p>\u4e3a\u4ec0\u4e48 Hu \u80fd\u8bc6\u522b\u65cb\u8f6c\u540e\u7684\u76ee\u6807&#xff1a;\u5728 Hu \u6784\u9020\u516c\u5f0f\u4e2d&#xff0c;\u65cb\u8f6c\u9879\u4f1a\u76f8\u4e92\u62b5\u6d88\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48 Hu \u5bf9\u5c40\u90e8\u7f3a\u635f\u4e0d\u5f3a&#xff1a;\u56e0\u4e3a Hu \u672c\u8d28\u662f\u5168\u5c40\u7edf\u8ba1\u91cf&#xff0c;\u5c40\u90e8\u7f3a\u4e00\u5757&#xff0c;\u6574\u4f53\u77e9\u90fd\u4f1a\u53d8\u5316&#xff0c;\u56e0\u6b64\u5bf9\u906e\u6321\u9c81\u68d2\u6027\u4e0d\u5f3a&#xff0c;\u4e0d\u5982 Shape Context\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u5c3a\u5ea6\u4e0d\u53d8\u30022.\u8ba1\u7b97\u901f\u5ea6\u5feb&#xff0c;Hu \u6700\u7ec8\u53ea\u6709 7 \u7ef4\u7279\u5f81&#xff0c;\u8ba1\u7b97\u590d\u6742\u5ea6\u975e\u5e38\u4f4e\u30023.OpenCV \u539f\u751f\u652f\u6301&#xff0c;\u5b9e\u73b0\u7b80\u5355\u30024.Hu\u672c\u8d28\u662f\u5168\u5c40\u5f62\u72b6\u7edf\u8ba1&#xff0c;\u56e0\u6b64\u5bf9\u4e8e\u5706\u5f62\u3001\u4e09\u89d2\u5f62\u3001\u5b57\u7b26\u8f6e\u5ed3\u3001Logo\u7b49\u6574\u4f53\u7ed3\u6784\u660e\u663e\u7684\u76ee\u6807\u6548\u679c\u66f4\u597d\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5bf9\u5c40\u90e8\u7ec6\u8282\u63cf\u8ff0\u5f31&#xff0c;Hu \u662f\u5168\u5c40\u7edf\u8ba1\u91cf&#xff0c;\u56e0\u6b64\u5c40\u90e8\u7ec6\u8282\u5bb9\u6613\u4e22\u5931\u30022.\u5bf9\u906e\u6321\u9c81\u68d2\u6027\u4e00\u822c&#xff0c;Hu\u7edf\u8ba1\u7684\u662f\u5168\u5c40\u50cf\u7d20\u5206\u5e03&#xff0c;\u90e8\u5206\u906e\u6321\u5f71\u54cd\u6574\u4f53\u7279\u5f81\u30023.\u5bf9\u566a\u58f0\u654f\u611f&#xff0c;\u5c24\u5176\u9ad8\u9636\u77e9\u5bf9\u8fb9\u7f18\u6bdb\u523a\u5f88\u654f\u611f\u30024.\u533a\u5206\u590d\u6742\u5f62\u72b6\u80fd\u529b\u6709\u9650&#xff0c;\u53ea\u6709\u4e03\u4e2a\u6570\u5b57&#xff0c;\u8868\u8fbe\u80fd\u529b\u6709\u9650\u3002<\/p>\n<p>\u9002\u7528\u573a\u666f&#xff1a;1.OCR \u5b57\u7b26\u8bc6\u522b&#xff0c;\u4f8b\u5982\u6570\u5b57\u3001\u5b57\u6bcd\u3001\u7b80\u5355\u6c49\u5b57&#xff0c;\u56e0\u4e3a\u5b57\u7b26\u6574\u4f53\u8f6e\u5ed3\u7a33\u5b9a\u30022.Logo \/ \u56fe\u6807\u5339\u914d&#xff0c;\u4f8b\u5982\u5546\u6807\u3001\u56fe\u6807\u3001\u7b80\u5355\u7b26\u53f7&#xff0c;\u9002\u5408\u5168\u5c40\u5f62\u72b6\u6bd4\u8f83\u30023.\u5de5\u4e1a\u96f6\u4ef6\u5206\u7c7b&#xff0c;\u4f8b\u5982\u87ba\u6bcd\u3001\u57ab\u7247\u3001\u5de5\u4ef6\u8f6e\u5ed3&#xff0c;\u7279\u70b9\u662f\u65cb\u8f6c\u65b9\u5411\u4e0d\u56fa\u5b9a\u3001\u5c3a\u5ea6\u53ef\u80fd\u53d8\u5316&#xff0c;Hu\u7684\u4e0d\u53d8\u6027\u5f88\u9002\u5408\u30024.\u7b80\u5355\u76ee\u6807\u68c0\u6d4b&#xff0c;\u4f8b\u5982\u5706\u5f62\u68c0\u6d4b\u3001\u4e09\u89d2\u5f62\u68c0\u6d4b\u3001\u51e0\u4f55\u6a21\u677f\u5339\u914d\u30025.\u8f6e\u5ed3\u5feb\u901f\u7b5b\u9009&#xff0c;Hu \u5e38\u7528\u4e8e\u7c97\u5339\u914d\u5feb\u901f\u7b5b\u9009\u6389\u660e\u663e\u4e0d\u76f8\u4f3c\u7684\u76ee\u6807&#xff0c;\u540e\u7eed\u518d ICP\u3001Shape Context \u7cbe\u5339\u914d\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"251\" src=\"2026-08-16dlbrf30ur1n.png\" width=\"1021\" \/><\/p>\n<p>2.Shape Context&#xff08;\u5f62\u72b6\u4e0a\u4e0b\u6587&#xff09;<\/p>\n<p>\u57fa\u4e8e\u70b9\u7a7a\u95f4\u5206\u5e03\u7edf\u8ba1\u7684\u5f62\u72b6\u63cf\u8ff0\u65b9\u6cd5&#xff0c;\u7528\u201c\u67d0\u70b9\u5468\u56f4\u5176\u5b83\u70b9\u7684\u7a7a\u95f4\u5206\u5e03\u201d\u63cf\u8ff0\u8be5\u70b9&#xff0c;\u6bcf\u4e2a\u70b9\u90fd\u62e5\u6709\u4e00\u4e2a\u5c40\u90e8\u51e0\u4f55\u76f4\u65b9\u56fe\u3002<\/p>\n<p>\u6570\u5b66\u5b9a\u4e49&#xff1a;\u5bf9\u4e8e\u70b9 pi&#xff0c;\u7edf\u8ba1\u5176\u5b83\u70b9 q\u2260pi \u7684\u76f8\u5bf9\u5750\u6807 (r,\u03b8)&#xff0c;\u5176\u4e2d<img decoding=\"async\" alt=\"$r = \\\\| q - p_i \\\\|,\\\\quad \\\\theta = \\\\angle(q - p_i)$\" class=\"mathcode\" src=\"2026-08-16d3nlbapoku3.png\" \/><\/p>\n<p>\u3002\u7136\u540e\u5c06 (r,\u03b8) \u5212\u5206\u5230\u5bf9\u6570\u6781\u5750\u6807\u7f51\u7edc\u4e2d&#xff0c;\u5f97\u5230<img decoding=\"async\" alt=\"h_i(k) = \\\\#\\\\{ q \\\\neq p_i : (q - p_i) \\\\in \\\\text{bin}(k) \\\\}\" class=\"mathcode\" src=\"2026-08-164kcgh1gxqz4.png\" \/><\/p>\n<p>&#xff0c;\u5373\u7b2c k \u4e2a\u7a7a\u95f4 bin \u5185\u6709\u591a\u5c11\u4e2a\u70b9&#xff0c;\u8fd9\u5c31\u662f Shape Context Descriptor\u3002<\/p>\n<p>Log-Polar Histogram&#xff08;\u5bf9\u6570\u6781\u5750\u6807\u76f4\u65b9\u56fe&#xff09;&#xff1a;<\/p>\n<li>\u89d2\u5ea6\u5212\u5206&#xff1a;\u4f8b\u5982 12 \u4e2a\u65b9\u5411&#xff0c;\u89d2\u5ea6\u4fe1\u606f\u5929\u7136\u9002\u5408\u63cf\u8ff0\u5f62\u72b6\u3002<\/li>\n<li>\u534a\u5f84\u5212\u5206&#xff1a;\u4f8b\u5982 5 \u4e2a\u8ddd\u79bb\u5c42&#xff0c;\u8fd1\u8ddd\u79bb\u7ed3\u6784\u66f4\u91cd\u8981&#xff0c;\u56e0\u6b64\u534a\u5f84\u91c7\u7528\u5bf9\u6570\u5206\u5c42\u3002<\/li>\n<li>\u6700\u7ec8\u5f62\u6210 12 * 5 &#061; 60 \u7ef4\u76f4\u65b9\u56fe\u3002<\/li>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;<\/p>\n<li>\u63d0\u53d6\u8f6e\u5ed3\u70b9\u3002<\/li>\n<li>\u4e3a\u6bcf\u4e2a\u70b9\u5efa\u7acb Shape Context&#xff1a;\u6bcf\u4e2a\u70b9\u4e00\u4e2a\u7a7a\u95f4\u76f4\u65b9\u56fe&#xff0c;\u4e00\u4e2a\u4f8b\u598260\u7ef4\u6d6e\u70b9\u63cf\u8ff0\u5b50\u3002<\/li>\n<li>\u70b9\u63cf\u8ff0\u5b50\u5339\u914d&#xff1a;\u6bd4\u8f83 <img decoding=\"async\" alt=\"$h_i,\\\\, h_j$\" class=\"mathcode\" src=\"2026-08-16xl2sq5knrc2.png\" \/>&#xff0c;\u901a\u5e38\u4f7f\u7528\u5361\u65b9\u8ddd\u79bb&#xff08;Chi-Square Distance&#xff09;<img decoding=\"async\" alt=\"C_{ij} = \\\\frac{1}{2} \\\\sum_{k} \\\\frac{(h_i(k) - h_j(k))^2}{h_i(k) + h_j(k)}\" class=\"mathcode\" src=\"2026-08-16kcjiaz1dxng.png\" \/>&#xff0c;\u8ddd\u79bb\u8d8a\u5c0f&#xff0c;\u4e24\u70b9\u7a7a\u95f4\u7ed3\u6784\u8d8a\u76f8\u4f3c\u3002<\/li>\n<li>\u5efa\u7acb\u5bf9\u5e94\u5173\u7cfb&#xff1a;\u901a\u5e38\u4f7f\u7528&#xff08;Hungarian Algorithm&#xff09;\u5308\u7259\u5229\u7b97\u6cd5\u5bfb\u627e\u5168\u5c40\u6700\u4f18\u70b9\u5339\u914d&#xff0c;\u800c\u4e0d\u662f\u6700\u8fd1\u70b9\u5339\u914d\u3002<\/li>\n<li>\u6c42\u51e0\u4f55\u53d8\u6362\u3002<\/li>\n<p>\u4f18\u70b9&#xff1a;1.\u63cf\u8ff0\u80fd\u529b\u5f3a&#xff0c;\u540c\u65f6\u5305\u542b\u5c40\u90e8\u3001\u5168\u5c40\u7ed3\u6784\u30022.\u5bf9\u975e\u521a\u4f53\u5f62\u53d8\u9c81\u68d2\u30023.\u5bf9\u90e8\u5206\u906e\u6321\u9c81\u68d2\u30024.\u4e0d\u4f9d\u8d56\u4e25\u683c\u6700\u8fd1\u70b9\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u8ba1\u7b97\u91cf\u5927&#xff0c;\u6bcf\u4e2a\u70b9\u90fd\u8981\u7edf\u8ba1\u4e0e\u6240\u6709\u5176\u5b83\u70b9\u7684\u5173\u7cfb\u30022.\u53c2\u6570\u8f83\u654f\u611f&#xff0c;\u4f8b\u5982 bin \u6570\u3001\u534a\u5f84\u5c42\u6570\u3001\u89d2\u5ea6\u5212\u5206\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"236\" src=\"2026-08-16feghrczxm4j.png\" width=\"1004\" \/><\/p>\n<p>3.Fourier Shape Matching&#xff08;\u5085\u91cc\u53f6\u5f62\u72b6\u5339\u914d&#xff09;<\/p>\n<p>\u57fa\u4e8e\u9891\u57df\u5f62\u72b6\u63cf\u8ff0\u7684\u8f6e\u5ed3\u5339\u914d\u65b9\u6cd5&#xff0c;\u6838\u5fc3\u662f\u5c06\u76ee\u6807\u8f6e\u5ed3\u53d8\u6362\u5230\u5085\u91cc\u53f6\u9891\u57df&#xff0c;\u7528\u9891\u8c31\u63cf\u8ff0\u6574\u4f53\u5f62\u72b6&#xff0c;\u518d\u6bd4\u8f83\u9891\u8c31\u76f8\u4f3c\u6027\u3002\u672c\u8d28\u5c5e\u4e8e\u5f62\u72b6\u63cf\u8ff0\u5b50&#xff08;Shape Descriptor&#xff09;\u800c\u4e0d\u662f ICP \u90a3\u79cd\u51e0\u4f55\u8fed\u4ee3\u4f18\u5316\u3002\u8be6\u7ec6\u89c1\u76f8\u4f4d\u76f8\u5173\u6cd5\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u5047\u8bbe\u8f6e\u5ed3&#xff1a;\u4e00\u5708\u8fb9\u7f18\u70b9&#xff0c;\u5148\u628a\u8f6e\u5ed3\u8868\u793a\u4e3a (xi\u200b,yi\u200b)&#xff0c;\u7136\u540e\u6784\u9020\u590d\u6570\u5e8f\u5217<img decoding=\"async\" alt=\"$z_i = x_i + j y_i$\" class=\"mathcode\" src=\"2026-08-16cochzgbzmpz.png\" \/><\/p>\n<p>&#xff0c;\u5373z&#061;[z0\u200b,z1\u200b,\u2026,zN\u22121\u200b]&#xff0c;\u7136\u540e\u505a\u79bb\u6563\u5085\u91cc\u53f6\u53d8\u6362&#xff08;DFT&#xff09;<img decoding=\"async\" alt=\"F(k) = \\\\sum_{n=0}^{N-1} z_n e^{-j 2\\\\pi k n \/ N}\" class=\"mathcode\" src=\"2026-08-16rqrg2dmo23n.png\" \/>\u00a0\u5f97\u5230\u5085\u91cc\u53f6\u63cf\u8ff0\u5b50<\/p>\n<p>\u51e0\u4f55\u610f\u4e49\u200b&#xff1a;\u4f4e\u9891&#xff1a;\u6574\u4f53\u5f62\u72b6&#xff0c;\u4fdd\u7559\u5927\u8f6e\u5ed3&#xff1b;\u9ad8\u9891&#xff1a;\u5c40\u90e8\u7ec6\u8282&#xff1b;\u5e45\u503c&#xff1a;\u5f62\u72b6\u5f3a\u5ea6&#xff1b;\u76f8\u4f4d&#xff1a;\u7a7a\u95f4\u4f4d\u7f6e\u3002<\/p>\n<p>Fourier Matching \u6d41\u7a0b&#xff1a;<\/p>\n<li>\u63d0\u53d6\u8f6e\u5ed3&#xff1a;\u901a\u5e38Canny\u7b49\u5f97\u5230\u8fb9\u7f18\u70b9\u3002<\/li>\n<li>\u8f6e\u5ed3\u53c2\u6570\u5316&#xff1a;\u628a\u8f6e\u5ed3\u6309\u987a\u5e8f\u6392\u5217 (xi\u200b,yi\u200b) \u5f62\u6210\u95ed\u5408\u66f2\u7ebf.<\/li>\n<li>\u8f6c\u4e3a\u590d\u6570&#xff1a;\u4f8b\u5982 (3,2) \u2192 3&#043;2j\u3002<\/li>\n<li>\u5085\u91cc\u53f6\u53d8\u6362&#xff1a;\u8ba1\u7b97 F(k) \u5f97\u5230\u9891\u8c31\u3002<\/li>\n<li>\u63d0\u53d6\u5085\u91cc\u53f6\u63cf\u8ff0\u5b50&#xff1a;\u901a\u5e38\u53ea\u4fdd\u7559\u524d\u51e0\u4e2a\u4f4e\u9891\u7cfb\u6570&#xff0c;\u56e0\u4e3a\u4f4e\u9891\u6700\u7a33\u5b9a&#xff0c;\u7528\u6765\u4f5c\u4e3a\u5f62\u72b6\u7279\u5f81\u3002<\/li>\n<li>\u7279\u5f81\u5339\u914d&#xff1a;\u6bd4\u8f83\u6b27\u5f0f\u8ddd\u79bb\u3001cosine similarity\u3001correlation \u5bfb\u627e\u6700\u76f8\u4f3c\u5f62\u72b6\u3002<\/li>\n<p>\u4f18\u70b9&#xff1a;1.\u5929\u7136\u65cb\u8f6c\/\u5c3a\u5ea6\/\u5e73\u79fb\u4e0d\u53d8\u30022.\u5bf9\u5c40\u90e8\u566a\u58f0\u9c81\u68d2&#xff0c;\u56e0\u4e3a\u4f4e\u9891\u4e3b\u5bfc\u6574\u4f53\u5f62\u72b6\u30023.\u7279\u5f81\u7ef4\u5ea6\u4f4e&#xff0c;\u53ea\u9700\u8981\u5c11\u91cf\u5085\u91cc\u53f6\u7cfb\u6570\u30024.\u5339\u914d\u901f\u5ea6\u5feb\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5bf9\u5c40\u90e8\u906e\u6321\u654f\u611f\u30022.\u5bf9\u590d\u6742\u975e\u521a\u4f53\u5f62\u53d8\u5dee&#xff0c;\u56e0\u4e3a\u5085\u91cc\u53f6\u66f4\u5173\u6ce8\u6574\u4f53\u7ed3\u6784\u30023.\u65e0\u6cd5\u63d0\u4f9b\u7cbe\u7ec6\u51e0\u4f55\u5bf9\u9f50&#xff0c;\u66f4\u9002\u5408\u8bc6\u522b\u800c\u4e0d\u662f\u7cbe\u914d\u51c6\u3002<\/p>\n<p>\u8fb9\u7f18\u65b9\u6cd5\u672c\u8d28\u95ee\u9898&#xff1a;1.\u8fb9\u7f18\u7f3a\u5c11\u552f\u4e00\u6027&#xff0c;\u4f8b\u5982\u5f88\u591a\u5e73\u884c\u7ebf\u5bb9\u6613\u6b67\u4e49&#xff0c;\u4e0d\u50cfSIFT\u6709\u9ad8\u7ef4\u63cf\u8ff0\u5b50\u30022.\u8fb9\u7f18\u5bb9\u6613\u65ad\u88c2&#xff0c;\u7531\u4e8e\u566a\u58f0\u3001\u5149\u7167\u3001\u906e\u6321&#xff0c;\u8fb9\u7f18\u53ef\u80fd\u4e0d\u8fde\u7eed\u30023.\u8ba1\u7b97\u91cf\u5927&#xff0c;\u8fb9\u7f18\u6570\u91cf\u901a\u5e38\u8fdc\u5927\u4e8e\u5173\u952e\u70b9\u3002\u73b0\u4ee3 SLAM \u901a\u5e38 Point&#043;Line \u878d\u5408\u3002<\/p>\n<p>1.\u9884\u5904\u7406\u4e0e\u8fb9\u7f18<br \/>\nGaussianBlur() \/\/ \u9ad8\u65af\u964d\u566a<br \/>\nCanny() \/\/ \u8fb9\u7f18\u68c0\u6d4b<br \/>\n2.\u8f6e\u5ed3\u63d0\u53d6\u6838\u5fc3<br \/>\nfindContours() \/\/ \u67e5\u627e\u8f6e\u5ed3<br \/>\ndrawContours() \/\/ \u7ed8\u5236\u8f6e\u5ed3<br \/>\nboundingRect() \/\/ \u83b7\u53d6\u8f6e\u5ed3\u5916\u63a5\u77e9\u5f62<br \/>\nminAreaRect() \/\/ \u83b7\u53d6\u8f6e\u5ed3\u6700\u5c0f\u5305\u56f4\u77e9\u5f62<br \/>\n3.\u8f6e\u5ed3\u7279\u5f81\u8ba1\u7b97<br \/>\nmoments() \/\/ \u8ba1\u7b97\u56fe\u50cf\u77e9<br \/>\nHuMoments() \/\/ \u8ba1\u7b97Hu\u4e0d\u53d8\u77e9<br \/>\n4.\u8f6e\u5ed3\u76f8\u4f3c\u5ea6\u5339\u914d<br \/>\nmatchShapes() \/\/ \u5f62\u72b6\u8f6e\u5ed3\u5339\u914d<\/p>\n<table>\n<tr>\u7279\u6027Hu MomentsShape ContextFourier Shape<\/tr>\n<tbody>\n<tr>\n<td>\u672c\u8d28<\/td>\n<td>\u5229\u7528\u56fe\u50cf\u77e9\u7edf\u8ba1\u6574\u4f53\u50cf\u7d20\u5206\u5e03&#xff0c;\u901a\u8fc7\u4e0d\u53d8\u77e9\u63cf\u8ff0\u5168\u5c40\u5f62\u72b6\u7ed3\u6784<\/td>\n<td>\u7edf\u8ba1\u6bcf\u4e2a\u70b9\u5468\u56f4\u5176\u5b83\u70b9\u7684\u7a7a\u95f4\u5206\u5e03\u5173\u7cfb&#xff0c;\u7528\u5c40\u90e8\u7a7a\u95f4\u7ed3\u6784\u63cf\u8ff0\u6574\u4f53\u5f62\u72b6<\/td>\n<td>\u5c06\u8f6e\u5ed3\u8f6c\u6362\u5230\u9891\u57df&#xff0c;\u7528\u5085\u91cc\u53f6\u9891\u7387\u6210\u5206\u63cf\u8ff0\u8f6e\u5ed3\u7ed3\u6784<\/td>\n<\/tr>\n<tr>\n<td>\u7279\u5f81\u7c7b\u578b<\/td>\n<td>\u5168\u5c40\u7edf\u8ba1\u7279\u5f81<\/td>\n<td>\u5c40\u90e8&#043;\u5168\u5c40\u7a7a\u95f4\u7ed3\u6784\u7279\u5f81<\/td>\n<td>\u5168\u5c40\u9891\u57df\u7279\u5f81<\/td>\n<\/tr>\n<tr>\n<td>\u5c40\u90e8\u7ec6\u8282<\/td>\n<td>\u5f31&#xff0c;\u5bf9\u5c40\u90e8\u53d8\u5316\u4e0d\u654f\u611f<\/td>\n<td>\u5f3a&#xff0c;\u80fd\u63cf\u8ff0\u5c40\u90e8\u51e0\u4f55\u5173\u7cfb<\/td>\n<td>\u4e2d&#xff0c;\u9ad8\u9891\u53ef\u63cf\u8ff0\u90e8\u5206\u7ec6\u8282<\/td>\n<\/tr>\n<tr>\n<td>\u5168\u5c40\u7ed3\u6784<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f88\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u975e\u521a\u4f53\u80fd\u529b<\/td>\n<td>\u5f31<\/td>\n<td>\u5f3a&#xff0c;\u53ef\u7ed3\u5408 TPS \u5904\u7406\u5f62\u53d8<\/td>\n<td>\u4e00\u822c<\/td>\n<\/tr>\n<tr>\n<td>\u906e\u6321\u9c81\u68d2\u6027<\/td>\n<td>\u5f31&#xff0c;\u5c40\u90e8\u7f3a\u5931\u4f1a\u5f71\u54cd\u6574\u4f53\u77e9<\/td>\n<td>\u5f3a&#xff0c;\u5c40\u90e8\u7f3a\u635f\u4e0d\u6613\u7834\u574f\u6574\u4f53\u7ed3\u6784<\/td>\n<td>\u4e00\u822c&#xff0c;\u5c40\u90e8\u7f3a\u5931\u4f1a\u5f71\u54cd\u9891\u8c31<\/td>\n<\/tr>\n<tr>\n<td>\u566a\u58f0\u9c81\u68d2\u6027<\/td>\n<td>\u4e00\u822c&#xff0c;\u9ad8\u9636\u77e9\u5bf9\u566a\u58f0\u654f\u611f<\/td>\n<td>\u4e2d&#xff0c;\u4f9d\u8d56\u70b9\u5206\u5e03\u7a33\u5b9a\u6027<\/td>\n<td>\u8f83\u5f3a&#xff0c;\u4f4e\u9891\u5bf9\u566a\u58f0\u8f83\u7a33\u5b9a<\/td>\n<\/tr>\n<tr>\n<td>\u65cb\u8f6c\u4e0d\u53d8\u6027<\/td>\n<td>\u5929\u7136\u652f\u6301<\/td>\n<td>\u901a\u5e38\u901a\u8fc7\u4e3b\u65b9\u5411\u5f52\u4e00\u5316\u5b9e\u73b0<\/td>\n<td>\u901a\u8fc7\u9891\u8c31\u5e45\u503c\u5b9e\u73b0<\/td>\n<\/tr>\n<tr>\n<td>\u5c3a\u5ea6\u4e0d\u53d8\u6027<\/td>\n<td>\u5929\u7136\u652f\u6301<\/td>\n<td>\u901a\u8fc7\u8ddd\u79bb\u5f52\u4e00\u5316\u5b9e\u73b0<\/td>\n<td>\u901a\u8fc7\u9891\u8c31\u5f52\u4e00\u5316\u5b9e\u73b0<\/td>\n<\/tr>\n<tr>\n<td>\u5e73\u79fb\u4e0d\u53d8\u6027<\/td>\n<td>\u5929\u7136\u652f\u6301<\/td>\n<td>\u901a\u8fc7\u76f8\u5bf9\u5750\u6807\u5b9e\u73b0<\/td>\n<td>\u53bb\u9664 DC \u5206\u91cf\u5b9e\u73b0<\/td>\n<\/tr>\n<tr>\n<td>\u8ba1\u7b97\u91cf<\/td>\n<td>\u5f88\u4f4e&#xff0c;\u4ec5\u5c11\u91cf\u77e9\u8fd0\u7b97<\/td>\n<td>\u5f88\u9ad8&#xff0c;\u9700\u8981\u70b9\u95f4\u4e24\u4e24\u7edf\u8ba1<\/td>\n<td>\u4e2d&#xff0c;\u4e3b\u8981\u4e3a FFT \u8ba1\u7b97<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u5bf9\u5e94\u70b9<\/td>\n<td>\u5426<\/td>\n<td>\u662f&#xff0c;\u9700\u8981\u5efa\u7acb\u70b9\u5339\u914d<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u8981\u8fed\u4ee3<\/td>\n<td>\u5426<\/td>\n<td>\u90e8\u5206\u60c5\u51b5\u4e0b\u9700\u8981<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u5b9e\u65f6\u6027<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u8f83\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u5e94\u7528<\/td>\n<td>OCR\u3001Logo\u3001\u7b80\u5355\u8f6e\u5ed3\u5206\u7c7b<\/td>\n<td>\u624b\u5199\u5b57\u7b26\u3001\u590d\u6742\u8f6e\u5ed3\u3001\u975e\u521a\u4f53\u5339\u914d<\/td>\n<td>\u8f6e\u5ed3\u8bc6\u522b\u3001\u76ee\u6807\u5206\u7c7b\u3001\u5f62\u72b6\u68c0\u7d22<\/td>\n<\/tr>\n<tr>\n<td>\u4f18\u52bf<\/td>\n<td>\u7b80\u5355\u3001\u5feb\u901f\u3001\u4e0d\u53d8\u6027\u5f3a<\/td>\n<td>\u63cf\u8ff0\u80fd\u529b\u5f3a&#xff0c;\u9002\u5408\u590d\u6742\u7ed3\u6784<\/td>\n<td>\u5168\u5c40\u8f6e\u5ed3\u8868\u8fbe\u7a33\u5b9a&#xff0c;\u9891\u57df\u5206\u6790\u76f4\u89c2<\/td>\n<\/tr>\n<tr>\n<td>\u52a3\u52bf<\/td>\n<td>\u5c40\u90e8\u8868\u8fbe\u80fd\u529b\u5f31<\/td>\n<td>\u8ba1\u7b97\u590d\u6742\u5ea6\u9ad8<\/td>\n<td>\u5bf9\u5c40\u90e8\u906e\u6321\u4e0e\u590d\u6742\u5f62\u53d8\u654f\u611f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5>1.2.3 \u57fa\u4e8e\u76f4\u7ebf\u7684\u65b9\u6cd5&#xff08;Line-based&#xff09;<\/h5>\n<p>\u7ebf\u7279\u5f81\u5339\u914d&#xff1a;\u5229\u7528\u56fe\u50cf\u4e2d\u7684\u7ebf\u6bb5\u3001\u76f4\u7ebf\u4f5c\u4e3a\u7279\u5f81&#xff0c;\u8fdb\u884c\u4e24\u5f20\u56fe\u50cf\u95f4\u7684\u5339\u914d\u3002<\/p>\n<p>&#xff08;1&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>\u6781\u5750\u6807\u8868\u793a&#xff1a;\u03c1&#061;xcos\u03b8&#043;ysin\u03b8&#xff0c;\u03c1\u8868\u793a\u539f\u70b9\u5230\u76f4\u7ebf\u8ddd\u79bb&#xff0c;\u03b8\u8868\u793a\u6cd5\u7ebf\u65b9\u5411\u89d2\u3002\u63a5\u8fd1\u5782\u76f4\u65f6\u659c\u7387\u4e0d\u4f1a\u53d8\u5316\u5267\u70c8\u5bf9\u4e8e\u3001\u5782\u76f4\u7ebf\u4e5f\u4e0d\u4f1a\u51fa\u73b0\u659c\u7387\u65e0\u7a77&#xff0c;\u6240\u6709\u65b9\u5411\u7a33\u5b9a\u3002<\/p>\n<p>\u7ebf\u6bb5&#xff1a;\u6709\u9650\u7ebf\u6bb5\u957f\u5ea6&#xff0c;\u901a\u5e38\u8868\u793a(x1\u200b,y1\u200b,x2\u200b,y2\u200b)&#xff0c;\u8fd8\u4f1a\u5305\u542b\u957f\u5ea6\u3001\u65b9\u5411\u3001\u4e2d\u70b9\u3001\u7f6e\u4fe1\u5ea6\u3002<\/p>\n<p>\u53c2\u6570\u7a7a\u95f4&#xff1a;\u6a2a\u8f74 \u03b8&#xff0c;\u7eb5\u8f74 \u03c1&#xff0c;\u6bcf\u4e2a\u8fb9\u7f18\u70b9 \u753b\u4e00\u6761\u6b63\u5f26\u66f2\u7ebf&#xff0c;\u5982\u679c\u5f88\u591a\u66f2\u7ebf\u4ea4\u4e8e\u540c\u4e00\u70b9\u5219\u51fa\u73b0\u4eae\u5cf0\u3002<\/p>\n<p>2\u00d72 \u4e2d\u5fc3\u5dee\u5206 \u8ba1\u7b97\u68af\u5ea6&#xff1a;<br \/>\n<img decoding=\"async\" alt=\"g_x(x,y)=\\\\frac{I(x+1,y)-I(x,y)+I(x+1,y+1)-I(x,y+1)}{2}\" class=\"mathcode\" src=\"2026-08-16cv2gfxexqvm.png\" \/><img decoding=\"async\" alt=\"g_y(x,y)=\\\\frac{I(x,y+1)-I(x,y)+I(x+1,y+1)-I(x+1,y)}{2}\" class=\"mathcode\" src=\"2026-08-16ox0qzxd1vfh.png\" \/>\u3002\u68af\u5ea6\u5e45\u503c&#xff08;\u5f3a\u5ea6&#xff09;<img decoding=\"async\" alt=\"$G(x,y)=g_x^2 + g_y^2$\" class=\"mathcode\" src=\"2026-08-163cxfgavgndk.png\" \/><\/p>\n<p>\u3002\u68af\u5ea6\u65b9\u5411<img decoding=\"async\" alt=\"$\\\\theta(x,y)=\\\\arctan2(g_y,\\\\, g_x)$\" class=\"mathcode\" src=\"2026-08-16kw0n3dku1pp.png\" \/>&#xff0c;\u68af\u5ea6\u65b9\u5411\u5782\u76f4\u4e8e\u8fb9\u7f18\u65b9\u5411,LSD \u5c31\u662f\u9760\u8fd9\u4e2a\u65b9\u5411\u505a\u533a\u57df\u751f\u957f\u3002<\/p>\n<p>NFA&#xff08;Number of False Alarms&#xff09;&#xff1a;\u671f\u671b\u8bef\u68c0\u6b21\u6570&#xff0c;\u672c\u8d28\u4e0a\u662f\u968f\u673a\u56fe\u50cf\u4e2d\u51fa\u73b0\u5f53\u524d\u7ebf\u6bb5\u7684\u671f\u671b\u8bef\u68c0\u6b21\u6570\u3002\u968f\u673a\u7eb9\u7406\u4e5f\u53ef\u80fd\u5c40\u90e8\u65b9\u5411\u4e00\u81f4&#xff0c;\u5982\u679c\u53ea\u9760\u65b9\u5411\u4e00\u81f4&#xff0c;\u4f1a\u4ea7\u751f\u5927\u91cf\u4f2a\u7ebf\u6bb5&#xff0c;NFA\u8981\u89e3\u51b3\u7684\u95ee\u9898\u5c31\u662f\u8fd9\u6761\u7ebf\u5230\u5e95\u662f\u4e0d\u662f\u5076\u7136\u51fa\u73b0\u7684\u3002NFA&#061;0.001\u8868\u793a1000\u5f20\u968f\u673a\u56fe\u4e2d\u5e73\u5747\u624d\u51fa\u73b01\u6b21&#xff0c;\u8bf4\u660e\u51e0\u4e4e\u4e0d\u53ef\u80fd\u968f\u673a\u5f62\u6210&#xff1b;NFA&#061;10&#xff0c;\u8868\u793a\u4e00\u5f20\u968f\u673a\u56fe\u5e73\u5747\u51fa\u73b010\u6b21\u8fd9\u79cd\u7ed3\u6784&#xff0c;\u56e0\u6b64\u62d2\u7edd\u3002<\/p>\n<p>&#xff08;2&#xff09;\u5b8c\u6574\u6d41\u7a0b<\/p>\n<p>1.\u56fe\u50cf\u9884\u5904\u7406&#xff1a;\u7070\u5ea6\u5316\u3001\u9ad8\u65af\u6ee4\u6ce2\u53bb\u566a<\/p>\n<p>2.\u8fb9\u7f18\u68c0\u6d4b&#xff1a;Canny \u63d0\u53d6\u8fb9\u7f18\u8f6e\u5ed3<\/p>\n<p>3.\u76f4\u7ebf\u68c0\u6d4b&#xff1a;\u970d\u592b\u53d8\u6362 \/ LSD \u7b97\u6cd5\u63d0\u53d6\u7ebf\u6bb5<\/p>\n<p>4.\u63d0\u53d6\u76f4\u7ebf\u7279\u5f81&#xff1a;\u7ebf\u6bb5\u957f\u5ea6\u3001\u503e\u89d2\u3001\u7aef\u70b9\u5750\u6807\u3001\u4ea4\u70b9\u7b49<\/p>\n<p>5.\u7ebf\u6bb5\u7279\u5f81\u5339\u914d&#xff1a;\u4f9d\u636e\u51e0\u4f55\u7279\u5f81\u5339\u914d\u5bf9\u5e94\u76f4\u7ebf<\/p>\n<p>6.\u7b5b\u9009\u5339\u914d\u70b9\u5bf9&#xff0c;\u6c42\u89e3\u51e0\u4f55\u53d8\u6362\u77e9\u9635<\/p>\n<p>7.\u900f\u89c6 \/ \u4eff\u5c04\u53d8\u6362&#xff0c;\u5b8c\u6210\u56fe\u50cf\u914d\u51c6\u5bf9\u9f50<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"344\" src=\"2026-08-16hbjfau5m2zm.png\" width=\"671\" \/><\/p>\n<p>&#xff08;3&#xff09;\u76f4\u7ebf\u68c0\u6d4b\u65b9\u6cd5<\/p>\n<p>1.\u4f20\u7edf\u970d\u592b\u7cfb<\/p>\n<p>\u4f20\u7edf\u970d\u592b\u53d8\u6362&#xff08;SHT&#xff09;&#xff1a;\u6838\u5fc3\u601d\u60f3\u662f\u4ece\u8fb9\u7f18\u70b9\u4e2d\u627e\u51fa\u201c\u5171\u7ebf\u70b9\u96c6\u5408\u201d&#xff0c;\u672c\u8d28\u4e0a\u662f\u5168\u5c40\u53c2\u6570\u6295\u7968\u65b9\u6cd5\u3002\u56fe\u50cf\u7a7a\u95f4\u8fb9\u7f18\u70b9\u53ef\u80fd\u5c5e\u4e8e\u5f88\u591a\u76f4\u7ebf&#xff0c;\u6bcf\u4e2a\u70b9\u6620\u5c04\u4e3a\u03c1&#061;xcos\u03b8&#043;ysin\u03b8&#xff0c;\u5728(\u03c1,\u03b8)\u7a7a\u95f4\u5f62\u6210\u4e00\u6761\u66f2\u7ebf&#xff0c;\u5982\u679c\u5f88\u591a\u70b9\u5728\u540c\u4e00\u76f4\u7ebf\u4e0a&#xff0c;\u5b83\u4eec\u7684\u53c2\u6570\u66f2\u7ebf\u4f1a\u4ea4\u4e8e\u540c\u4e00\u70b9&#xff0c;\u8fd9\u4e2a\u4ea4\u70b9\u5c31\u662f\u76f4\u7ebf\u53c2\u6570\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"380\" src=\"2026-08-16vet5wt3psat.png\" width=\"530\" \/><\/p>\n<p>\u4e3a\u4ec0\u4e48\u9700\u8981\u970d\u592b\u53d8\u6362&#xff1a;\u5047\u8bbe\u5df2\u7ecf\u5f97\u5230\u8fb9\u7f18\u56fe&#xff0c;\u56fe\u50cf\u4e2d\u6709\u5927\u91cf\u8fb9\u7f18\u70b9&#xff0c;\u8981\u627e\u5230\u54ea\u4e9b\u70b9\u5c5e\u4e8e\u540c\u4e00\u6761\u76f4\u7ebf&#xff0c;\u5982\u679c\u76f4\u63a5\u4e24\u4e24\u8fde\u63a5\u590d\u6742\u5ea6O(N2)&#xff0c;\u5e76\u4e14\u5bf9\u566a\u58f0\u654f\u611f\u3001\u65ad\u88c2\u8fb9\u7f18\u96be\u5904\u7406\u3001\u5c40\u90e8\u5224\u65ad\u4e0d\u7a33\u5b9a&#xff0c;\u56e0\u6b64\u970d\u592b\u53d8\u6362\u63d0\u51fa\u4e0d\u5728\u56fe\u50cf\u7a7a\u95f4\u627e\u7ebf&#xff0c;\u800c\u662f\u5728\u53c2\u6570\u7a7a\u95f4\u627e\u7ebf\u3002<\/p>\n<p>\u6295\u7968\u673a\u5236&#xff1a;\u970d\u592b\u53d8\u6362\u7684\u672c\u8d28\u5c31\u662f\u53c2\u6570\u7a7a\u95f4\u7d2f\u52a0\u6295\u7968\u3002<\/p>\n<li>\u521d\u59cb\u5316\u53c2\u6570\u7a7a\u95f4&#xff1a;\u5efa\u7acb\u4e8c\u7ef4\u7d2f\u52a0\u5668&#xff0c;A(\u03c1,\u03b8)&#xff0c;\u521d\u59cb\u5168\u4e3a0\u3002<\/li>\n<li>\u904d\u5386\u6bcf\u4e2a\u8fb9\u7f18\u70b9&#xff1a;\u5355\u4e2a\u8fb9\u7f18\u70b9(x,y)&#xff0c;\u904d\u5386\u4e00\u7cfb\u5217\u89d2\u5ea6\u03b8&#xff0c;\u7b97\u51fa\u5bf9\u5e94\u03c1&#xff0c;\u6bcf\u4e00\u7ec4(\u03c1,\u03b8)\u4f4d\u7f6e\u7968\u6570A(\u03c1,\u03b8)&#043;1\u3002 \u4e00\u4e2a\u56fe\u50cf\u8fb9\u7f18\u70b9&#xff0c;\u4f1a\u5728\u53c2\u6570\u7a7a\u95f4\u6295\u51fa\u4e00\u4e32\u7968&#xff0c;\u8fde\u6210\u6b63\u5f26\u66f2\u7ebf\u3002<\/li>\n<li>\u5bfb\u627e\u5cf0\u503c&#xff1a;\u591a\u6761\u66f2\u7ebf\u4ea4\u6c47\u7684(\u03c1,\u03b8)\u4f4d\u7f6e\u7968\u6570\u6700\u9ad8&#xff0c;\u4ee3\u8868\u5927\u91cf\u56fe\u50cf\u8fb9\u7f18\u70b9\u90fd\u5f52\u5c5e\u8fd9\u6761\u76f4\u7ebf&#xff0c;\u5bf9\u5e94\u539f\u56fe\u771f\u5b9e\u76f4\u7ebf\u3002<\/li>\n<p>\u4f18\u70b9&#xff1a;\u6297\u566a\u58f0\u5f3a&#xff0c;\u566a\u58f0\u70b9\u6295\u7968\u5206\u6563&#xff0c;\u4e0d\u4f1a\u5f62\u6210\u660e\u663e\u5cf0\u503c&#xff1b;\u80fd\u5904\u7406\u8fb9\u7f18\u65ad\u88c2&#xff0c;\u53ea\u8981\u5927\u90e8\u5206\u70b9\u4ecd\u5171\u7ebf&#xff0c;\u4ecd\u80fd\u5f62\u6210\u5cf0\u503c&#xff1b;\u80fd\u68c0\u6d4b\u957f\u7ed3\u6784&#xff0c;\u9002\u5408\u5efa\u7b51\u8fb9\u7f18\u3001\u9053\u8def\u8f66\u9053\u7ebf\u3001\u5de5\u4e1a\u7ed3\u6784&#xff0c;\u56e0\u4e3a\u957f\u7ebf\u4f1a\u79ef\u7d2f\u5927\u91cf\u6295\u7968\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;\u8ba1\u7b97\u91cf\u5927&#xff0c;\u5bf9\u4e8e\u6bcf\u4e00\u4e2a\u8fb9\u7f18\u70b9&#xff0c;\u90fd\u8981\u904d\u5386\u5927\u91cf \u03b8&#xff1b;\u53c2\u6570\u7a7a\u95f4\u5360\u7528\u5927&#xff0c;\u7d2f\u52a0\u5668A(\u03c1,\u03b8) \u901a\u5e38\u5f88\u5927&#xff0c;\u9ad8\u5206\u8fa8\u7387\u65f6\u5185\u5b58\u660e\u663e\u589e\u52a0&#xff1b;\u5206\u8fa8\u7387\u4f9d\u8d56\u4e25\u91cd&#xff0c;\u5982\u679c\u5206\u8fa8\u7387\u592a\u7c97\u7cbe\u5ea6\u4e0b\u964d&#xff0c;\u5982\u679c\u592a\u7ec6\u5cf0\u503c\u5206\u6563&#xff0c;\u56e0\u6b64\u91cf\u5316\u8bef\u5dee\u660e\u663e&#xff1b;\u4e0d\u9002\u5408\u77ed\u7ebf&#xff0c;\u77ed\u7ebf\u6295\u7968\u5c11&#xff0c;\u5bb9\u6613\u88ab\u566a\u58f0\u6df9\u6ca1&#xff1b;\u96be\u4ee5\u5904\u7406\u590d\u6742\u66f2\u7ebf&#xff0c;\u66f4\u9002\u5408\u89c4\u5219\u53c2\u6570\u5316\u5f62\u72b6&#xff0c;\u4f8b\u5982\u76f4\u7ebf\u3001\u5706\u3001\u692d\u5706\u3002\u590d\u6742\u81ea\u7531\u66f2\u7ebf\u56f0\u96be\u3002<\/p>\n<p>\u6982\u7387\u970d\u592b\u53d8\u6362&#xff08;PHT&#xff09;&#xff1a;\u4f20\u7edf\u970d\u592b\u6700\u5927\u95ee\u9898\u65f6\u8ba1\u7b97\u91cf\u592a\u5927&#xff0c;\u56e0\u6b64\u6982\u7387\u970d\u592b\u53d8\u6362\u4e0d\u518d\u904d\u5386\u5168\u90e8\u8fb9\u7f18\u70b9&#xff0c;\u800c\u662f\u968f\u673a\u91c7\u6837&#xff0c;\u76f4\u63a5\u8f93\u51fa\u7ebf\u6bb5\u7aef\u70b9(x1,y1,x2,y2)&#xff0c;\u800c\u975e\u65e0\u9650\u76f4\u7ebf\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;\u968f\u673a\u91c7\u7528\u901f\u5ea6\u66f4\u5feb&#xff1b;\u65e0\u9700\u5b8c\u6574\u7d2f\u52a0\u5668&#xff0c;\u5185\u5b58\u66f4\u4f4e&#xff1b;\u66f4\u9002\u5408\u5b9e\u4e60\u7cfb\u7edf&#xff1b;\u76f4\u63a5\u8f93\u51fa\u7ebf\u6bb5&#xff0c;\u66f4\u7b26\u5408\u5b9e\u9645\u573a\u666f\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;\u7ed3\u679c\u5b58\u5728\u968f\u673a\u6027&#xff0c;\u4e0d\u540c\u91c7\u6837\u7ed3\u679c\u53ef\u80fd\u7565\u6709\u4e0d\u540c&#xff1b;\u77ed\u7ebf\u56e0\u4e3a\u91c7\u6837\u4e0d\u8db3\u53ef\u80fd\u6f0f\u68c0&#xff1b;\u7a33\u5b9a\u6027\u4f4e\u4e8eSHT\u3002<\/p>\n<p>2.EDLines&#xff08;Edge Drawing Lines&#xff09;<\/p>\n<p>\u57fa\u4e8e\u8fb9\u7f18\u94fe\u751f\u957f\u7684\u5feb\u901f\u7ebf\u6bb5\u68c0\u6d4b\u65b9\u6cd5&#xff0c;\u6838\u5fc3\u601d\u60f3\u662f\u7ebf\u5f97\u5230\u8fde\u7eed\u8fb9\u7f18\u94fe&#xff0c;\u518d\u4ece\u8fb9\u7f18\u94fe\u62df\u5408\u76f4\u7ebf&#xff0c;\u6cbf\u8fb9\u7f18\u751f\u957f\u627e\u7ebf\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;\u56fe\u50cf\u2192\u68af\u5ea6\u8ba1\u7b97\u2192\u951a\u70b9\u68c0\u6d4b\u2192\u8fb9\u7f18\u94fe\u8ddf\u8e2a\u2192\u5f97\u5230\u8fde\u7eed\u8fb9\u7f18\u6bb5\u2192\u76f4\u7ebf\u62df\u5408\u2192\u9a8c\u8bc1\u7ebf\u6bb5\u2192\u8f93\u51fa\u6700\u7ec8\u7ebf\u6bb5<\/p>\n<li>\u68af\u5ea6\u8ba1\u7b97&#xff1a;\u9996\u5148\u8ba1\u7b97Gx\u200b,\u00a0Gy&#xff0c;\u83b7\u5f97\u68af\u5ea6\u5e45\u503c\u3001\u68af\u5ea6\u65b9\u5411\u3002<\/li>\n<li>Anchor&#xff08;\u63cf\u70b9&#xff09;\u68c0\u6d4b&#xff1a;\u5148\u627e\u53ef\u9760\u8fb9\u7f18\u8d77\u70b9&#xff0c;\u4e00\u4e2a\u50cf\u7d20\u5982\u679c\u68af\u5ea6\u660e\u663e\u5f3a\u4e8e\u90bb\u57df&#xff0c;\u5219\u8ba4\u4e3a\u8fd9\u91cc\u53ef\u80fd\u662f\u7a33\u5b9a\u8fb9\u7f18&#xff0c;\u4f5c\u4e3a\u8fb9\u7f18\u8ddf\u8e2a\u8d77\u70b9\u3002<\/li>\n<li>\n<p>Edge Drawing&#xff08;\u8fb9\u7f18\u94fe\u751f\u957f&#xff09;&#xff1a;\u4ece\u951a\u70b9\u5f00\u59cb&#xff0c;\u6309\u7167\u68af\u5ea6\u65b9\u5411\u9010\u50cf\u7d20\u8ddf\u8e2a\u8fb9\u7f18&#xff08;8 \u90bb\u57df\u3001\u68af\u5ea6\u65b9\u5411\u63a5\u8fd1\u3001\u5f3a\u8fb9\u7f18\u8fde\u901a&#xff09;&#xff0c;\u5f62\u6210\u8fde\u7eed\u8fb9\u7f18\u94fe&#xff0c;\u4f8b\u5982p1 \u2192 p2 \u2192 p3 \u2192 p4&#xff0c;\u5f97\u5230\u6709\u5e8f\u8fb9\u7f18\u70b9\u5e8f\u5217\u3002<\/p>\n<\/li>\n<li>\u7ebf\u6bb5\u62df\u5408&#xff1a;\u5bf9\u5c40\u90e8\u94fe\u5c40\u90e8\u62df\u5408\u76f4\u7ebf&#xff08;\u901a\u5e38\u6700\u5c0f\u4e8c\u4e58\u62df\u5408\u3001\u589e\u91cf\u62df\u5408&#xff09;\u5224\u65ad\u5f53\u524d\u8fb9\u7f18\u94fe\u662f\u5426\u8fd1\u4f3c\u5171\u7ebf&#xff0c;\u5982\u679c\u6ee1\u8db3\u5219\u8ba4\u4e3a\u662f\u4e00\u6761\u7ebf\u6bb5\u3002<\/li>\n<li>\u7ebf\u6bb5\u9a8c\u8bc1&#xff1a;\u4e0d\u662f\u6240\u6709\u8fb9\u7f18\u94fe\u90fd\u662f\u771f\u76f4\u7ebf&#xff0c;\u9700\u8981\u9a8c\u8bc1\u70b9\u5230\u76f4\u7ebf\u8ddd\u79bb\u3001\u652f\u6301\u70b9\u6570\u91cf\u3001\u6b8b\u5dee\u5927\u5c0f\u3001\u957f\u5ea6\u9608\u503c\u7b49&#xff0c;\u8fc7\u6ee4\u77ed\u8fb9\u3001\u566a\u58f0\u8fb9\u3001\u66f2\u7ebf\u6bb5&#xff0c;\u6700\u7ec8\u4fdd\u7559\u9ad8\u7f6e\u4fe1\u7ebf\u6bb5\u3002<\/li>\n<p>\u4f18\u70b9&#xff1a;1.\u901f\u5ea6\u5feb&#xff0c;\u4e0d\u9700\u8981\u5de8\u5927\u53c2\u6570\u7a7a\u95f4\u30022.\u5185\u5b58\u5c0f&#xff0c;\u4e0d\u9700\u8981\u7d2f\u52a0\u5668\u30023.\u9002\u5408\u77ed\u7ebf&#xff0c;\u76f4\u63a5\u6cbf\u8fb9\u7f18\u8ddf\u8e2a&#xff0c;\u77ed\u7ebf\u4e5f\u5bb9\u6613\u68c0\u6d4b\u30024.\u7ebf\u6bb5\u5b9a\u4f4d\u66f4\u51c6\u786e&#xff0c;\u76f4\u63a5\u518d\u56fe\u50cf\u7a7a\u95f4\u62df\u5408\u30025.\u8f93\u51fa\u5929\u7136\u662f\u7ebf\u6bb5\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u4f9d\u8d56\u8fb9\u7f18\u8fde\u7eed\u6027&#xff0c;\u5982\u679c\u8fb9\u7f18\u65ad\u88c2\u4e25\u91cd&#xff0c;\u8ddf\u8e2a\u4f1a\u5931\u8d25\u30022.\u5bf9\u566a\u58f0\u8fb9\u7f18\u654f\u611f&#xff0c;\u9519\u8bef\u8fb9\u7f18\u53ef\u80fd\u5bfc\u81f4\u9519\u8bef\u751f\u6210\u30023.\u66f2\u7ebf\u5bb9\u6613\u8bef\u5206\u6bb5&#xff0c;\u53ef\u80fd\u88ab\u6298\u6210\u591a\u4e2a\u77ed\u76f4\u7ebf\u3002<\/p>\n<p>3.LSD&#xff08;Line Segment Detector&#xff09;<\/p>\n<p>\u73b0\u4ee3\u6700\u7ecf\u5178\u7684\u4e9a\u50cf\u7d20\u7ea7\u7ebf\u6bb5\u68c0\u6d4b\u7b97\u6cd5&#xff0c;\u4f9d\u9760\u5c40\u90e8\u68af\u5ea6\u4e00\u81f4\u6027&#xff0c;\u76f4\u63a5\u5728\u68af\u5ea6\u573a\u4e2d\u68c0\u6d4b\u7ebf\u6bb5&#xff0c;\u907f\u514d\u201c\u5148\u627e\u8fb9\u7f18&#xff0c;\u518d\u627e\u7ebf\u201d&#xff0c;\u56e0\u6b64\u66f4\u5feb\u3001\u7cbe\u786e\u3001\u4e9a\u50cf\u7d20\u3001\u53c2\u6570\u5c11\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u540c\u4e00\u7ebf\u6bb5\u4e0a\u7684\u50cf\u7d20\u68af\u5ea6\u5e94\u8be5\u4e00\u81f4\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;\u56fe\u50cf \u2192 \u68af\u5ea6\u8ba1\u7b97 \u2192 \u533a\u57df\u751f\u957f \u2192 \u5f62\u6210\u7ebf\u652f\u6301\u533a\u57df \u2192 \u77e9\u5f62\u62df\u5408 \u2192 \u7edf\u8ba1\u9a8c\u8bc1 \u2192 \u8f93\u51fa\u7ebf\u6bb5.<\/p>\n<li>\u5168\u50cf\u7d20\u68af\u5ea6\u8ba1\u7b97&#xff1a;\u9996\u5148\u8ba1\u7b97\u68af\u5ea6\u65b9\u5411\u3001\u68af\u5ea6\u5e45\u503c\u4f46\u4e0d\u751f\u6210\u4e8c\u503c\u8fb9\u7f18\u56fe&#xff0c;\u8fd9\u662f\u4e0e Canny &#043; \u970d\u592b \u7684\u5de8\u5927\u533a\u522b\u3002<\/li>\n<li>\u68af\u5ea6\u65b9\u5411\u4e00\u81f4\u6027\u533a\u57df\u751f\u957f&#xff08;Region Growing&#xff09;&#xff1a;\u4ece\u9ad8\u68af\u5ea6\u50cf\u7d20&#xff08;\u79cd\u5b50\u70b9&#xff09;\u5f00\u59cb\u5bfb\u627e\u68af\u5ea6\u65b9\u5411\u76f8\u8fd1\u7684\u90bb\u57df\u50cf\u7d20\u4e0d\u65ad\u6269\u5c55\u5f62\u6210 Line Support Region&#xff08;LSR&#xff09;\u7ebf\u652f\u6301\u533a\u57df\u3002\u672c\u8d28\u662f\u4e00\u7fa4\u65b9\u5411\u4e00\u81f4\u7684\u50cf\u7d20\u3002<\/li>\n<li>\u77e9\u5f62\u62df\u5408&#xff1a;LSD \u5047\u8bbe\u7ebf\u6bb5\u2248\u72ed\u957f\u77e9\u5f62&#xff0c;\u56e0\u6b64\u5bf9\u652f\u6301\u533a\u57df\u62df\u5408\u77e9\u5f62&#xff0c;\u5f97\u5230\u7ebf\u6bb5\u957f\u5ea6\u3001\u5bbd\u5ea6\u3001\u65b9\u5411&#xff08;\u957f\u8fb9\u503e\u89d2&#xff09;\u3002<\/li>\n<li>\u7edf\u8ba1\u9a8c\u8bc1&#xff08;\u6838\u5fc3&#xff09;&#xff1a;\u4f7f\u7528 NFA&#xff08;Number of False Alarms&#xff09;\u8bef\u68c0\u6982\u7387&#xff0c;\u5224\u65ad\u8fd9\u6761\u7ebf\u662f\u4e0d\u662f\u968f\u673a\u566a\u58f0&#xff0c;\u5982\u679c\u5927\u91cf\u50cf\u7d20\u65b9\u5411\u4e00\u81f4&#xff0c;\u968f\u673a\u51fa\u73b0\u6982\u7387\u5f88\u4f4e&#xff0c;\u5219\u8ba4\u4e3a\u662f\u771f\u5b9e\u7ebf\u6bb5\u3002\u4f7f\u7528\u7edf\u8ba1\u81ea\u52a8\u63a7\u5236\u8bef\u68c0&#xff0c;\u56e0\u6b64\u53c2\u6570\u5c11&#xff08;\u4f20\u7edf\u65b9\u6cd5\u8ba4\u4e3a\u8bbe\u957f\u5ea6\u3001\u6295\u7968\u3001\u8fb9\u7f18\u9608\u503c&#xff09;\u3002<\/li>\n<p>\u4e3a\u4ec0\u4e48\u7cbe\u5ea6\u9ad8&#xff1a;\u4f7f\u7528\u68af\u5ea6\u65b9\u5411&#xff0c;\u6bd4\u8fb9\u7f18\u4e8c\u503c\u56fe\u4fe1\u606f\u66f4\u591a&#xff1b;\u4e9a\u50cf\u7d20&#xff1b;\u5c40\u90e8\u8fde\u7eed\u7ea6\u675f&#xff0c;\u6bd4\u970d\u592b\u66f4\u7cbe\u7ec6\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u4e9a\u50cf\u7d20\u7cbe\u5ea6\u9ad8&#xff0c;\u56e0\u4e3a\u76f4\u63a5\u8fde\u7eed\u62df\u5408\u30022.\u65e0\u53c2\u6570\u6216\u5c11\u53c2\u6570\u30023.\u4e0d\u9700\u8981\u8fb9\u7f18\u8fde\u63a5&#xff0c;\u6bd4EDLines\u7a33\u5b9a\u30024.\u901f\u5ea6\u5feb&#xff0c;\u590d\u6742\u5ea6\u63a5\u8fd1O(N)&#xff0c;\u5355\u6b21\u533a\u57df\u751f\u957f&#xff0c;\u6bcf\u4e2a\u50cf\u7d20\u901a\u5e38\u53ea\u8bbf\u95ee\u6709\u9650\u6b21\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5bf9\u7eb9\u7406\u566a\u58f0\u654f\u611f&#xff0c;\u5927\u91cf\u7eb9\u7406\u53ef\u80fd\u5f62\u6210\u4f2a\u68af\u5ea6\u4e00\u81f4\u533a\u57df\u30022.\u66f2\u7ebf\u4f1a\u88ab\u6298\u6210\u7ebf\u6bb5&#xff0c;\u56e0\u4e3a\u53ea\u80fd\u68c0\u6d4b\u76f4\u7ebf\u30023.\u5f31\u8fb9\u7f18\u53ef\u80fd\u6f0f\u68c0&#xff0c;\u68af\u5ea6\u4e0d\u8db3\u65f6\u533a\u57df\u751f\u957f\u56f0\u96be\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"505\" src=\"2026-08-16soib1jeb1tb.png\" width=\"482\" \/><\/p>\n<p>4.FLD&#xff08;Fast Line Detector&#xff09;<\/p>\n<p>\u5feb\u901f\u7ebf\u6bb5\u68c0\u6d4b\u5668&#xff0c;\u662f LSD \u7684\u5de5\u7a0b\u52a0\u901f\u7248\u672c\u3002\u6838\u5fc3\u601d\u60f3\u662f\u5feb\u901f\u626b\u63cf\u68af\u5ea6\u53d8\u5316&#043;\u533a\u57df\u805a\u5408&#043;\u7ebf\u6bb5\u62df\u5408\u3002\u91cd\u70b9\u662f\u5de5\u7a0b\u901f\u5ea6\u4f18\u5316&#xff0c;\u800c\u4e0d\u662f\u4e25\u683c\u7edf\u8ba1\u5efa\u6a21\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;\u56fe\u50cf\u2192\u68af\u5ea6\u8ba1\u7b97\u2192\u5feb\u901f\u533a\u57df\u626b\u63cf\u2192\u5019\u9009\u7ebf\u6bb5\u751f\u6210\u2192\u7ebf\u6bb5\u5408\u5e76\u2192\u8f93\u51fa\u7ed3\u679c\u3002<\/p>\n<li>\u5168\u50cf\u7d20\u68af\u5ea6\u8ba1\u7b97\u3002<\/li>\n<li>\u5f3a\u68af\u5ea6\u7b5b\u9009&#xff1a;\u4e0d\u4f1a\u5bf9\u6240\u6709\u50cf\u7d20\u90fd\u5904\u7406&#xff0c;\u800c\u662f\u53ea\u4fdd\u7559\u5f3a\u68af\u5ea6\u50cf\u7d20 G &gt; T&#xff08;\u68af\u5ea6\u9608\u503c&#xff09;\u3002\u4f5c\u7528\u662f\u8fc7\u6ee4\u5e73\u5766\u533a\u57df\u3001\u5f31\u7eb9\u7406\u3001\u5c0f\u566a\u58f0&#xff0c;\u4fdd\u7559\u771f\u6b63\u53ef\u80fd\u5c5e\u4e8e\u8fb9\u7f18\u7684\u50cf\u7d20\u3002<\/li>\n<li>\u5c40\u90e8\u533a\u57df\u626b\u63cf\u548c\u805a\u7c7b&#xff1a;\u626b\u63cf\u56fe\u50cf\u4e2d\u7684\u5f3a\u68af\u5ea6\u50cf\u7d20&#xff0c;\u5bfb\u627e\u65b9\u5411\u76f8\u8fd1\u4e14\u7a7a\u95f4\u8fde\u7eed\u7684\u50cf\u7d20\u96c6\u5408\u5f62\u6210\u5019\u9009\u7ebf\u533a\u57df\u3002\u672c\u8d28\u662f\u5bfb\u627e\u5c40\u90e8\u5171\u7ebf\u533a\u57df\u3002<\/li>\n<li>\u5019\u9009\u7ebf\u6bb5\u751f\u6210&#xff1a;\u805a\u7c7b\u5b8c\u6210\u540e&#xff0c;\u6bcf\u4e2a\u533a\u57df\u53ef\u80fd\u5bf9\u5e94\u4e00\u6761\u7ebf\u6bb5&#xff0c;\u56e0\u6b64\u5bf9\u533a\u57df\u8fdb\u884c\u521d\u6b65\u76f4\u7ebf\u62df\u5408\u3002\u901a\u5e38\u4f7f\u7528\u6700\u5c0f\u4e8c\u4e58\u76f4\u7ebf\u62df\u5408\u76ee\u6807\u662f\u627e\u5230 ax&#043;by&#043;c&#061;0&#xff0c;\u4f7f\u5f97<img decoding=\"async\" alt=\"$\\\\sum {d_i}^2$\" class=\"mathcode\" src=\"2026-08-16gmv11nf5ie5.png\" \/>\u6700\u5c0f&#xff0c;\u5176\u4e2ddi\u200b\u8868\u793a\u70b9\u5230\u76f4\u7ebf\u7684\u8ddd\u79bb\u3002<\/li>\n<li>\u7ebf\u6bb5\u751f\u957f&#xff1a;\u6cbf\u7740\u5f53\u524d\u7ebf\u65b9\u5411\u7ee7\u7eed\u6269\u5c55&#xff0c;\u5c1d\u8bd5\u5438\u6536\u66f4\u591a\u5171\u7ebf\u50cf\u7d20\u3002\u521d\u59cb\u805a\u7c7b\u53ef\u80fd\u53ea\u8986\u76d6\u5c40\u90e8\u533a\u57df&#xff0c;\u771f\u5b9e\u7ebf\u6bb5\u901a\u5e38\u66f4\u957f&#xff0c;\u56e0\u6b64\u9700\u8981\u8fdb\u4e00\u6b65\u6269\u5c55\u3002<\/li>\n<li>\u7ebf\u6bb5\u5408\u5e76&#xff1a;\u4e0d\u540c\u533a\u57df\u53ef\u80fd\u5c5e\u4e8e\u540c\u4e00\u771f\u5b9e\u76f4\u7ebf&#xff0c;\u56e0\u6b64 FLD \u4f1a\u8fdb\u4e00\u6b65\u68c0\u67e5\u3002\u5408\u5e76\u6761\u4ef6&#xff1a;\u65b9\u5411\u63a5\u8fd1\u3001\u7a7a\u95f4\u8ddd\u79bb\u63a5\u8fd1\u3001\u5171\u7ebf\u6027\u5f3a\u3002<\/li>\n<li>\u7ebf\u6bb5\u9a8c\u8bc1\u548c\u8fc7\u6ee4&#xff1a;\u4f1a\u8fc7\u6ee4\u4f4e\u8d28\u91cf\u5019\u9009\u7ebf\u6bb5&#xff08;\u957f\u5ea6\u592a\u77ed\u3001\u652f\u6301\u70b9\u592a\u5c11\u3001\u62df\u5408\u8bef\u5dee\u8fc7\u5927&#xff09;&#xff0c;\u8f93\u51fa\u6700\u7ec8\u7ebf\u6bb5\u3002<\/li>\n<table>\n<tr>\u65b9\u6cd5\u4f20\u7edf\u970d\u592b&#xff08;SHT\/PHT&#xff09;EDLinesLSDFLD<\/tr>\n<tbody>\n<tr>\n<td>\u6838\u5fc3\u601d\u60f3<\/td>\n<td>\u53c2\u6570\u7a7a\u95f4\u6295\u7968<\/td>\n<td>\u8fb9\u7f18\u94fe\u751f\u957f &#043; \u76f4\u7ebf\u62df\u5408<\/td>\n<td>\u68af\u5ea6\u65b9\u5411\u4e00\u81f4\u6027\u533a\u57df\u751f\u957f<\/td>\n<td>\u5feb\u901f\u68af\u5ea6\u805a\u7c7b &#043; \u7ebf\u6bb5\u62df\u5408<\/td>\n<\/tr>\n<tr>\n<td>\u5de5\u4f5c\u7a7a\u95f4<\/td>\n<td>\u53c2\u6570\u7a7a\u95f4<\/td>\n<td>\u56fe\u50cf\u7a7a\u95f4<\/td>\n<td>\u68af\u5ea6\u573a<\/td>\n<td>\u68af\u5ea6\u573a<\/td>\n<\/tr>\n<tr>\n<td>\u57fa\u7840\u8f93\u5165<\/td>\n<td>\u4e8c\u503c\u8fb9\u7f18\u70b9<\/td>\n<td>\u8fb9\u7f18\u94fe<\/td>\n<td>\u68af\u5ea6\u65b9\u5411\u573a<\/td>\n<td>\u68af\u5ea6\u65b9\u5411\u573a<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f9d\u8d56\u8fb9\u7f18\u68c0\u6d4b<\/td>\n<td>\u5f3a\u4f9d\u8d56&#xff08;\u901a\u5e38Canny&#xff09;<\/td>\n<td>\u5f3a\u4f9d\u8d56&#xff08;ED\u8fb9\u7f18&#xff09;<\/td>\n<td>\u4e0d\u4f9d\u8d56\u4e8c\u503c\u8fb9\u7f18\u56fe<\/td>\n<td>\u4e0d\u4f9d\u8d56\u4e8c\u503c\u8fb9\u7f18\u56fe<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u5168\u56fe\u68af\u5ea6\u8ba1\u7b97<\/td>\n<td>\u901a\u5e38\u4e0d\u662f\u6838\u5fc3<\/td>\n<td>\u5c40\u90e8\u4f7f\u7528<\/td>\n<td>\u662f<\/td>\n<td>\u662f<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u53c2\u6570\u7a7a\u95f4\u6295\u7968<\/td>\n<td>\u662f<\/td>\n<td>\u5426<\/td>\n<td>\u5426<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f7f\u7528\u7d2f\u52a0\u5668<\/td>\n<td>\u662f<\/td>\n<td>\u5426<\/td>\n<td>\u5426<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u6709\u533a\u57df\u751f\u957f<\/td>\n<td>\u5426<\/td>\n<td>\u6709&#xff08;\u8fb9\u7f18\u94fe\u8ddf\u8e2a&#xff09;<\/td>\n<td>\u6709&#xff08;LSR\u751f\u957f&#xff09;<\/td>\n<td>\u6709&#xff08;\u5feb\u901f\u805a\u7c7b&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u7ebf\u652f\u6301\u533a\u57df<\/td>\n<td>\u65e0<\/td>\n<td>\u8fb9\u7f18\u94fe<\/td>\n<td>LSR&#xff08;Line Support Region&#xff09;<\/td>\n<td>\u5019\u9009\u5171\u7ebf\u533a\u57df<\/td>\n<\/tr>\n<tr>\n<td>\u76f4\u7ebf\u8868\u793a<\/td>\n<td>((\\\\rho,\\\\theta))<\/td>\n<td>\u7ebf\u6bb5\u7aef\u70b9<\/td>\n<td>\u72ed\u957f\u77e9\u5f62 &#043; \u7aef\u70b9<\/td>\n<td>\u7ebf\u6bb5\u7aef\u70b9<\/td>\n<\/tr>\n<tr>\n<td>\u8f93\u51fa\u5f62\u5f0f<\/td>\n<td>\u65e0\u9650\u76f4\u7ebf \/ \u7ebf\u6bb5<\/td>\n<td>\u7ebf\u6bb5<\/td>\n<td>\u7ebf\u6bb5<\/td>\n<td>\u7ebf\u6bb5<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u76f4\u63a5\u8f93\u51fa\u7aef\u70b9<\/td>\n<td>PHT\u53ef\u4ee5<\/td>\n<td>\u662f<\/td>\n<td>\u662f<\/td>\n<td>\u662f<\/td>\n<\/tr>\n<tr>\n<td>\u65b9\u5411\u4fe1\u606f\u5229\u7528<\/td>\n<td>\u5f31<\/td>\n<td>\u4e2d<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u8f83\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u68af\u5ea6\u65b9\u5411\u4e00\u81f4\u6027\u5206\u6790<\/td>\n<td>\u65e0<\/td>\n<td>\u90e8\u5206<\/td>\n<td>\u6838\u5fc3<\/td>\n<td>\u6838\u5fc3\u4e4b\u4e00<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f7f\u7528\u7edf\u8ba1\u9a8c\u8bc1<\/td>\n<td>\u65e0<\/td>\n<td>\u5f88\u5c11<\/td>\n<td>\u5f3a&#xff08;NFA&#xff09;<\/td>\n<td>\u5f88\u5f31<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f7f\u7528NFA<\/td>\n<td>\u5426<\/td>\n<td>\u5426<\/td>\n<td>\u662f<\/td>\n<td>\u5426<\/td>\n<\/tr>\n<tr>\n<td>\u4e9a\u50cf\u7d20\u7cbe\u5ea6<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u8f83\u9ad8<\/td>\n<td>\u5f88\u9ad8<\/td>\n<td>\u4e00\u822c<\/td>\n<\/tr>\n<tr>\n<td>\u957f\u7ebf\u68c0\u6d4b\u80fd\u529b<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u77ed\u7ebf\u68c0\u6d4b\u80fd\u529b<\/td>\n<td>\u8f83\u5f31<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u8fb9\u7f18\u65ad\u88c2\u9c81\u68d2\u6027<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u8f83\u5f3a<\/td>\n<td>\u4e00\u822c<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u566a\u58f0\u9c81\u68d2\u6027<\/td>\n<td>\u5f3a<\/td>\n<td>\u4e2d<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u4e2d<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u7eb9\u7406\u4f2a\u7ebf\u6291\u5236<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u4e00\u822c<\/td>\n<\/tr>\n<tr>\n<td>\u53c2\u6570\u4f9d\u8d56<\/td>\n<td>\u8f83\u5f3a<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u5f88\u5c11<\/td>\n<td>\u8f83\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u91cf\u5316\u8bef\u5dee<\/td>\n<td>\u660e\u663e<\/td>\n<td>\u5f88\u5c0f<\/td>\n<td>\u5f88\u5c0f<\/td>\n<td>\u5c0f<\/td>\n<\/tr>\n<tr>\n<td>\u8ba1\u7b97\u91cf<\/td>\n<td>\u5927<\/td>\n<td>\u8f83\u5c0f<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u5f88\u5c0f<\/td>\n<\/tr>\n<tr>\n<td>\u5185\u5b58\u5360\u7528<\/td>\n<td>\u5927<\/td>\n<td>\u5c0f<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u5c0f<\/td>\n<\/tr>\n<tr>\n<td>\u5b9e\u65f6\u6027<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<td>\u975e\u5e38\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u7406\u8bba\u4e25\u8c28\u6027<\/td>\n<td>\u4e2d<\/td>\n<td>\u4e2d<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u504f\u5de5\u7a0b<\/td>\n<\/tr>\n<tr>\n<td>\u5de5\u7a0b\u5b9e\u73b0\u590d\u6742\u5ea6<\/td>\n<td>\u4f4e<\/td>\n<td>\u4e2d<\/td>\n<td>\u9ad8<\/td>\n<td>\u4e2d<\/td>\n<\/tr>\n<tr>\n<td>OpenCV\u652f\u6301<\/td>\n<td>\u5f3a<\/td>\n<td>\u8f83\u5c11<\/td>\n<td>\u6709<\/td>\n<td>\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578bOpenCV\u63a5\u53e3<\/td>\n<td>HoughLines<\/td>\n<td>\u7b2c\u4e09\u65b9\u5b9e\u73b0\u8f83\u591a<\/td>\n<td>createLineSegmentDetector<\/td>\n<td>FastLineDetector<\/td>\n<\/tr>\n<tr>\n<td>\u9002\u5408\u573a\u666f<\/td>\n<td>\u5efa\u7b51\u3001\u8f66\u9053\u7ebf\u3001\u957f\u7ed3\u6784<\/td>\n<td>\u5de5\u4e1a\u7ebf\u6bb5\u3001\u5b9e\u65f6\u89c6\u89c9<\/td>\n<td>SLAM\u3001\u91cd\u5efa\u3001\u51e0\u4f55\u89c6\u89c9<\/td>\n<td>\u5b9e\u65f6SLAM\u3001\u5d4c\u5165\u5f0f<\/td>\n<\/tr>\n<tr>\n<td>\u73b0\u4ee3SLAM\u4f7f\u7528<\/td>\n<td>\u8f83\u5c11<\/td>\n<td>\u8f83\u591a<\/td>\n<td>\u975e\u5e38\u591a<\/td>\n<td>\u5de5\u7a0b\u5316\u8f83\u591a<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#xff08;4&#xff09;\u7ebf\u63cf\u8ff0\u5b50<\/p>\n<p>\u7ebf\u68c0\u6d4b\u540e&#xff08;LSD\/Hough\/FLD&#xff09;\u53ea\u5f97\u5230\u7ebf\u7684\u4f4d\u7f6e\u3001\u65b9\u5411\u3001\u957f\u5ea6&#xff0c;\u56e0\u6b64\u4f7f\u7528\u7ebf\u63cf\u8ff0\u5b50\u70b9\u63cf\u8ff0\u8fd9\u6761\u7ebf&#xff08;\u7ebf\u672c\u8eab\u4fe1\u606f\u592a\u5c11&#xff0c;\u6709\u533a\u5206\u6027\u7684\u662f\u7ebf\u4e24\u4fa7\u7eb9\u7406\u7ed3\u6784&#xff09;&#xff0c;\u4ece\u800c\u5b9e\u73b0\u540c\u4e00\u6761\u7ebf\u8de8\u56fe\u50cf\u7a33\u5b9a\u5339\u914d\u3002<\/p>\n<p>\u7ebf\u63cf\u8ff0\u5b50\u7684\u56f0\u96be&#xff1a;1.\u70b9\u7279\u5f81\u5c40\u90e8\u7eb9\u7406\u552f\u4e00&#xff0c;\u4f46\u662f\u7ebf\u5929\u7136\u91cd\u590d&#xff0c;\u5c40\u90e8\u7eb9\u7406\u9ad8\u5ea6\u76f8\u4f3c\u30022.\u7ebf\u63cf\u8ff0\u5b50\u9700\u8981\u8003\u8651\u6cbf\u7ebf\u65b9\u5411\u3001\u5782\u76f4\u65b9\u5411\u30023.\u7ebf\u957f\u5ea6\u53d8\u5316\u5927&#xff0c;\u6709\u957f\u7ebf\u3001\u77ed\u7ebf\u3001\u90e8\u5206\u906e\u6321&#xff0c;\u56e0\u6b64\u7ebf\u63cf\u8ff0\u8981\u9002\u5e94\u5c3a\u5ea6\u53d8\u5316\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u672c\u8d28\u90fd\u5728\u505a\u7edf\u8ba1\u9644\u8fd1\u533a\u57df\u7684\u68af\u5ea6\/\u7eb9\u7406\u7ed3\u6784\u3002<\/p>\n<p>\u7ebf\u63cf\u8ff0\u533a\u57df&#xff08;Band Region&#xff09;&#xff1a;\u7ebf\u662f\u957f\u7ed3\u6784&#xff0c;\u4e0d\u80fd\u50cf\u70b9\u4e00\u6837\u7b80\u5355\u5355\u7528\u65b9\u5757&#xff0c;\u5982\u4ee5\u70b9\u4e3a\u4e2d\u5fc3&#xff0c;\u53d6\u6b63\u65b9\u5f62Patch\u3002\u901a\u5e38\u5efa\u7acb\u5e26\u72b6\u533a\u57df&#xff0c;\u4f8b\u5982&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#xff0c;\u957f\u5ea6\u662f\u7ebf\u6bb5\u957f\u5ea6&#xff0c;\u5bbd\u5ea6\u4e3aw\u3002<\/p>\n<p>\u5c40\u90e8\u5750\u6807\u7cfb&#xff1a;\u5efa\u7acb\u7ebf\u81ea\u8eab\u5750\u6807\u7cfb&#xff0c;\u5b9a\u4e49\u6cbf\u7ebf\u65b9\u5411dL&#xff0c;\u5782\u76f4\u65b9\u5411d\u22a5&#xff0c;\u56e0\u6b64\u65cb\u8f6c\u4e0d\u53d8\u3002<\/p>\n<p>1.LBD&#xff08;Line Band Descriptor&#xff09;<\/p>\n<p>\u7ebf\u5e26\u63cf\u8ff0\u5b50&#xff0c;\u7ebf\u7248BRIEF&#xff0c;\u7edf\u8ba1\u7ebf\u9644\u8fd1\u68af\u5ea6\u7ed3\u6784\u3002<\/p>\n<li>\u5efa\u7acbBand Region&#xff1a;\u8bbe\u7ebf\u6bb5 L&#061;(x1\u200b,y1\u200b,x2\u200b,y2\u200b)&#xff0c;\u8ba1\u7b97\u7ebf\u65b9\u5411<img decoding=\"async\" alt=\"$d_L=\\\\frac{(x_2-x_1,\\\\, y_2-y_1)}{\\\\|L\\\\|}$\" class=\"mathcode\" src=\"2026-08-16xob1cvlt0oh.png\" \/>&#xff0c;\u6cd5\u7ebf\u65b9\u5411d\u22a5\u200b&#061;(\u2212dy\u200b,dx\u200b)&#xff0c;\u5f97\u5230\u5c40\u90e8\u5750\u6807\u7cfb\u3002<\/li>\n<li>\u6784\u5efa\u652f\u6301\u533a\u57df&#xff1a;\u56f4\u7ed5\u7ebf\u6bb5\u5efa\u7acb\u957f\u6761\u533a\u57df&#xff0c;\u4f8b\u5982 width &#061; 7~15 pixels\u3002<\/li>\n<li>Band\u5212\u5206&#xff1a;\u628a\u5e26\u72b6\u533a\u57df\u6cbf\u7ebf\u65b9\u5411\u5747\u5300\u5207\u5206\u6210\u591a\u4e2aBand&#xff0c;\u6bcf\u4e2aBand\u5305\u542b\u4e00\u4e2a\u5c40\u90e8\u5b50\u533a\u57df\u3002<\/li>\n<li>\u68af\u5ea6\u8ba1\u7b97&#xff1a;\u5bf9Band\u5185\u6240\u6709\u50cf\u7d20\u8ba1\u7b97\u56fe\u50cf\u68af\u5ea6&#xff0c;g&#061;(gx\u200b,gy\u200b)\u3002<\/li>\n<li>\u68af\u5ea6\u6295\u5f71&#xff1a;\u7ebf\u6709\u4e3b\u65b9\u5411&#xff0c;\u56e0\u6b64\u628a\u68af\u5ea6\u5206\u522b\u6295\u5f71\u5230 \u6cbf\u7ebf\u65b9\u5411 gL\u200b&#061;g\u22c5dL&#xff0c;\u8868\u793a\u6cbf\u7ebf\u53d8\u5316&#xff1b;\u5782\u76f4\u65b9\u5411 g\u22a5\u200b&#061;g\u22c5d\u22a5\u200b&#xff0c;\u8868\u793a\u8de8\u8fb9\u7f18\u53d8\u5316\u3002\u5f53\u68af\u5ea6\u65b9\u5411\u4e0e\u53c2\u8003\u65b9\u5411\u5939\u89d2\u5c0f90\u5ea6\u65f6\u6295\u5f71\u4e3a\u6b63\u3002<\/li>\n<li>\n<p>\u68af\u5ea6\u7edf\u8ba1&#xff1a;\u5bf9\u6bcf\u4e2aBand&#xff0c;\u5206\u522b\u5bf9\u4e24\u4e2a\u65b9\u5411\u7edf\u8ba1\u6b63\u8d1f\u68af\u5ea6\u5747\u503c<img decoding=\"async\" alt=\"$\\\\mu=\\\\frac{1}{N}\\\\sum g_i$\" class=\"mathcode\" src=\"2026-08-16wxtjdy5jgdh.png\" \/>&#xff0c;\u8868\u793a\u6574\u4f53\u65b9\u5411\u8d8b\u52bf&#xff1b;\u65b9\u5dee<img decoding=\"async\" alt=\"$\\\\sigma=\\\\sqrt{\\\\frac{1}{N}\\\\sum\\\\bigl(g_i-\\\\mu\\\\bigr)^2}$\" class=\"mathcode\" src=\"2026-08-16icpxyb1hcnn.png\" \/>&#xff0c;\u8868\u793a\u7eb9\u7406\u53d8\u5316\u590d\u6742\u7a0b\u5ea6&#xff1b;\u7edd\u5bf9\u5747\u503c<br \/>\n<img decoding=\"async\" alt=\"$\\\\mu_{\\\\mathrm{abs}}=\\\\frac{1}{N}\\\\sum_{i=1}^{N}\\\\bigl|g_i\\\\bigr|$\" class=\"mathcode\" src=\"2026-08-16bakmwn0mde3.png\" \/>&#xff0c;\u8868\u793a\u7eb9\u7406\u53d8\u5316\u590d\u6742\u7a0b\u5ea6\u3002<\/p>\n<li>\u5206\u522b\u5bf9\u4e24\u4e2a\u65b9\u5411\u7edf\u8ba1&#xff0c;\u6cbf\u7ebf\u65b9\u5411<img decoding=\"async\" alt=\"$\\\\mu_L,\\\\; \\\\sigma_L,\\\\; \\\\bigl|\\\\mu_L\\\\bigr|$\" class=\"mathcode\" src=\"2026-08-16gnahwwd2vji.png\" \/>&#xff1b;\u6cd5\u7ebf\u65b9\u5411<img decoding=\"async\" alt=\"$\\\\mu_{\\\\perp},\\\\; \\\\sigma_{\\\\perp},\\\\; \\\\bigl|\\\\mu_{\\\\perp}\\\\bigr|$\" class=\"mathcode\" src=\"2026-08-16s5kcbj11juy.png\" \/>\u3002\u5047\u5982\u67099\u4e2aBand&#xff0c;\u6bcf\u4e2aBand\u4ea7\u751f8\u7ef4\u7279\u5f81&#xff0c;\u6700\u7ec8\u5f97\u523072\u7ef4\u6d6e\u70b9\u63cf\u8ff0\u5b50\u3002<\/li>\n<\/li>\n<li>\n<p>\u5f62\u6210\u63cf\u8ff0\u5411\u91cf&#xff1a;\u5c06\u6240\u6709Band\u7edf\u8ba1\u62fc\u63a5\u5f62\u6210Descriptor&#061;[f1\u200b,f2\u200b,&#8230;,fn\u200b]\u3002<\/p>\n<\/li>\n<li>\n<p>\u4e8c\u503c\u5316&#xff1a;\u7c7b\u4f3cBRIEF&#xff0c;\u6bd4\u8f83\u4e24\u4e2a\u63cf\u8ff0\u5b50\u5143\u7d20\u4e4b\u95f4\u5927\u5c0f&#xff0c;\u4f8b\u5982<img decoding=\"async\" alt=\"$f_i &gt; f_j$\" class=\"mathcode\" src=\"2026-08-16ka2u4wi2j3q.png\" \/>&#xff0c;\u751f\u6210\u4e8c\u8fdb\u5236\u4e32\u3002<\/p>\n<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"400\" src=\"2026-08-16uqkxhnijfop.png\" width=\"732\" \/><\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u5c40\u90e8\u5750\u6807\u7cfb\u63d0\u4f9b\u65cb\u8f6c\u9c81\u68d2\u30022.\u68af\u5ea6\u7edf\u8ba1\u63d0\u4f9b\u5149\u7167\u9c81\u68d2\u30023.Band\u7ed3\u6784\u63d0\u4f9b\u7ebf\u7ed3\u6784\u8868\u8fbe\u80fd\u529b\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u533a\u5206\u6027\u5f31\u4e8e\u70b9\u63cf\u8ff0\u5b50\u30022.\u5e73\u884c\u7ebf\u5bb9\u6613\u6df7\u6dc6\u30023.\u906e\u6321\u654f\u611f&#xff0c;\u7ebf\u65ad\u88c2\u540e\u63cf\u8ff0\u5b50\u5bb9\u6613\u53d8\u5316\u3002<\/p>\n<p>2.MSLD&#xff08;Mean-Standard deviation Line Descriptor&#xff09;<\/p>\n<p>\u5747\u503c-\u6807\u51c6\u5dee\u7ebf\u63cf\u8ff0\u7b26&#xff0c;LBD\u524d\u8eab\u3002\u7edf\u8ba1\u5747\u503c\u548c\u65b9\u5dee&#xff0c;\u4e0d\u4e8c\u503c\u5316\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;<\/p>\n<li>\u7ebf\u68c0\u6d4b&#xff08;LSD\/EDLines&#xff09;\u3002<\/li>\n<li>\u5efa\u7acb\u7ebf\u652f\u6301\u533a\u57df&#xff0c;\u6784\u9020\u5c40\u90e8\u5750\u6807\u7cfb\u3002<\/li>\n<li>\u5212\u5206\u4e3a\u591a\u4e2aband\u3002<\/li>\n<li>\u8ba1\u7b97\u50cf\u7d20\u68af\u5ea6&#xff0c;\u6295\u5f71\u5230\u7ebf\u3001\u6cd5\u7ebf\u65b9\u5411\u3002<\/li>\n<li>\u7edf\u8ba1\u6bcf\u4e2aband\u7684\u68af\u5ea6\u5747\u503c\u3001\u68af\u5ea6\u6807\u51c6\u5dee&#xff0c;\u5f97\u52304\u7ef4\u7279\u5f81\u3002<\/li>\n<li>\u62fc\u63a5\u4e3a\u6d6e\u70b9\u63cf\u8ff0\u5b50&#xff0c;\u5047\u8bbe8\u4e2aband&#xff0c;\u5f97\u523032\u7ef4\u6d6e\u70b9\u63cf\u8ff0\u5b50\u3002<\/li>\n<p>\u4f18\u70b9&#xff1a;1.\u5bf9\u5f31\u7eb9\u7406\u9c81\u68d2&#xff0c;\u7ebf\u6bd4\u70b9\u66f4\u7a33\u5b9a\u30022.\u5bf9\u5149\u7167\u6bd4\u8f83\u7a33\u5b9a&#xff0c;\u56e0\u4e3a\u4f7f\u7528\u5747\u503c\u3001\u65b9\u5dee\u3001\u5f52\u4e00\u5316\u30023.\u5bf9\u65cb\u8f6c\u9c81\u68d2&#xff0c;\u4f7f\u7528\u7ebf\u5c40\u90e8\u5750\u6807\u7cfb\u30024.\u51e0\u4f55\u7ea6\u675f\u5f3a&#xff0c;\u7ebf\u5177\u6709\u957f\u5ea6\u3001\u65b9\u5411&#xff0c;\u6bd4\u70b9\u7a33\u5b9a\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5339\u914d\u901f\u5ea6\u6162\u30022.\u5bf9\u7ebf\u68c0\u6d4b\u4f9d\u8d56\u8f83\u5f3a&#xff0c;\u5982\u679cLSD\/EDLines\u68c0\u6d4b\u4e0d\u597d&#xff0c;\u63cf\u8ff0\u5b50\u4e5f\u4f1a\u53d7\u5f71\u54cd\u3002<\/p>\n<p>3.Line-SIFT <\/p>\n<p>\u628a SIFT \u601d\u60f3\u6269\u5c55\u5230\u7ebf\u7279\u5f81&#xff0c;\u6838\u5fc3\u76ee\u6807\u662f\u4e3a\u7ebf\u6bb5\u6784\u5efa\u5177\u6709\u5c3a\u5ea6\/\u65cb\u8f6c\u9c81\u68d2\u6027\u7684\u63cf\u8ff0\u5b50\u3002\u5728\u7ebf\u9644\u8fd1\u5efa\u7acb\u5c40\u90e8\u533a\u57df&#xff0c;\u518d\u7edf\u8ba1\u68af\u5ea6\u65b9\u5411\u5206\u5e03\u3002\u66f4\u63a5\u8fd1 SIFT \u7684\u65b9\u5411\u76f4\u65b9\u56fe\u601d\u60f3&#xff0c;MSLD\/LBD \u66f4\u504f mean\/std statistics\u3002<\/p>\n<li>\u7ebf\u68c0\u6d4b\u3002<\/li>\n<li>\u5efa\u7acb\u7ebf\u652f\u6301\u533a\u57df&#xff0c;\u6784\u9020\u5c40\u90e8\u5750\u6807\u7cfb\u3002<\/li>\n<li>\u5212\u5206\u5b50\u533a\u57df&#xff08;cell&#xff09;\u3002<\/li>\n<li>\u8ba1\u7b97\u6bcf\u4e2a\u50cf\u7d20\u7684\u68af\u5ea6\u3002<\/li>\n<li>\u68af\u5ea6\u65b9\u5411\u7edf\u8ba1&#xff1a;Line-SIFT \u5bf9\u6bcf\u4e2a cell \u7edf\u8ba1 orientation histogram&#xff08;\u65b9\u5411\u76f4\u65b9\u56fe&#xff09;&#xff0c;\u4f8b\u5982 8 bins&#xff0c;MSLD\u7edf\u8ba1\u65b9\u5dee\/\u5747\u503c\u3002<\/li>\n<li>\u8ba1\u7b97\u68af\u5ea6\u65b9\u5411&#xff1a;\u65b9\u5411 <img decoding=\"async\" alt=\"$\\\\theta=\\\\arctan\\\\biggl(\\\\frac{g_y}{g_x}\\\\biggr)$\" class=\"mathcode\" src=\"2026-08-16krfxu2v5owa.png\" \/>&#xff0c;\u5e45\u503c\u00a0<img decoding=\"async\" alt=\"$m=\\\\sqrt{g_x^2 + g_y^2}$\" class=\"mathcode\" src=\"2026-08-16kujxp3cklrz.png\" \/>&#xff0c;\u7528\u5e45\u503c\u4f5c\u4e3a\u6295\u7968\u6743\u91cd&#xff0c;\u68af\u5ea6\u65b9\u5411\u5206\u5e03\u6bd4\u5355\u7eaf\u7684\u5747\u503c\u3001\u65b9\u5dee\u8868\u8fbe\u80fd\u529b\u66f4\u5f3a\u3002<\/li>\n<li>\u6700\u7ec8\u63cf\u8ff0\u5b50&#xff1a;\u4f8b\u5982 8\u4e2acells&#xff0c;\u6bcf\u4e2acell 8-bin \u76f4\u65b9\u56fe&#xff0c;\u6700\u7ec8\u5f97\u523064\u4e3a\u6d6e\u70b9\u63cf\u8ff0\u5b50\u3002<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"215\" src=\"2026-08-161hd3vxo4ybq.png\" width=\"742\" \/><\/p>\n<p>\u7f3a\u70b9&#xff1a;\u8ba1\u7b97\u8f83\u91cd&#xff0c;\u4e0d\u592a\u7528\u4e8e\u5b9e\u65f6\u7cfb\u7edf\u3002<\/p>\n<p>4.LLD&#xff08;Local Line Descriptor&#xff09;<\/p>\n<p>\u5c40\u90e8\u7ebf\u63cf\u8ff0\u5b50&#xff0c;\u8f7b\u91cf\u7ea7\u7ebf\u7279\u5f81\u63cf\u8ff0\u65b9\u6cd5&#xff0c;\u6838\u5fc3\u76ee\u6807\u662f\u4f4e\u8ba1\u7b97\u91cf\u3001\u4f4e\u5185\u5b58\u3001\u5b9e\u65f6\u5339\u914d\u3002\u672c\u8d28\u4e0a\u5c5e\u4e8e LBD\/MSLD \u4f53\u7cfb\u7684\u8f7b\u91cf\u5316\u7248\u672c&#xff0c;\u91cd\u70b9\u4e0d\u662f\u590d\u6742\u7edf\u8ba1&#xff0c;\u800c\u662f\u5feb\u901f\u3001\u5c40\u90e8\u3001\u53ef\u5b9e\u65f6\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u7528\u5c3d\u53ef\u80fd\u5c11\u7684\u8ba1\u7b97 \u63cf\u8ff0\u7ebf\u9644\u8fd1\u5c40\u90e8\u7ed3\u6784\u3002<\/p>\n<p>\u4f20\u7edf\u7ebf\u63cf\u8ff0\u5b50&#xff0c;\u4f8b\u5982MSLD \u9700\u8981\u5747\u503c\u3001\u65b9\u5dee\u3001\u591a band \u7edf\u8ba1\u3001\u6d6e\u70b9\u8fd0\u7b97&#xff1b;Line-SIFT \u9700\u8981\u7edf\u8ba1\u76f4\u65b9\u56fe\u3001\u68af\u5ea6\u9632\u7ebf\u3001\u9ad8\u7ef4\u6d6e\u70b9\u8fd0\u7b97\u3002LLD\u7684\u76ee\u6807\u662f\u4fdd\u7559\u7ebf\u7ed3\u6784\u4fe1\u606f&#xff0c;\u540c\u65f6\u5c3d\u53ef\u80fd\u5feb\u3002<\/p>\n<p>\u5178\u578b\u6d41\u7a0b&#xff1a;<\/p>\n<li>\u7ebf\u68c0\u6d4b<\/li>\n<li>\u6784\u5efa\u5c40\u90e8\u652f\u6301\u533a\u57df&#xff0c;\u901a\u5e38\u66f4\u7a84&#xff0c;\u66f4\u5c0f\u3002<\/li>\n<li>\u5c40\u90e8\u68af\u5ea6\u91c7\u6837&#xff1a;\u4e0d\u4f1a\u5bf9\u6574\u4e2a\u533a\u57df\u505a\u590d\u6742\u7edf\u8ba1&#xff0c;\u800c\u662f\u7a00\u758f\u91c7\u6837&#xff0c;\u4f8b\u5982\u6cbf\u7ebf\u5747\u5300\u91c7\u6837 N \u4e2a\u70b9&#xff0c;\u6bcf\u4e2a\u91c7\u6837\u70b9\u652f\u53d6\u7b80\u5355\u68af\u5ea6\u4fe1\u606f\u3002<\/li>\n<li>\u8f7b\u91cf\u5316\u8ba1\u7b97&#xff1a;\u5f80\u5f80\u53ea\u505a\u7b80\u5355\u6bd4\u8f83&#xff0c;\u4f8b\u5982\u68af\u5ea6 g&gt;0?&#xff0c;\u90bb\u57df\u6bd4\u8f83\u00a0<img decoding=\"async\" alt=\"$I(p_1) &gt; I(p_2)$\" class=\"mathcode\" src=\"2026-08-16pbr4vh4qgyb.png\" \/>&#xff0c;\u5c40\u90e8\u6a21\u5f0f\u7c7b\u4f3cBRIEF&#xff0c;\u56e0\u6b64\u5f88\u591aLLD \u662f\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50\u3002<\/li>\n<li>\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff1a;\u5728\u91c7\u6837\u70b9\u5bf9\u6bd4\u5b8c\u6210\u65f6\u5c31\u751f\u6210\u4e86\u4e8c\u8fdb\u5236\u4e32\u3002<\/li>\n<p>\u4f18\u70b9&#xff1a;1.\u9002\u5408\u5b9e\u65f6\u7cfb\u7edf&#xff0c;\u63cf\u8ff0\u5b50\u5c0f\u3001\u5339\u914d\u5feb\u3001\u5185\u5b58\u5c0f\u30022.\u9c81\u68d2\u6027&#xff0c;\u7ebf\u51e0\u4f55\u7ed3\u6784\u66f4\u7a33\u5b9a\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u8868\u8fbe\u80fd\u529b\u6709\u9650&#xff0c;\u56e0\u4e3a\u63cf\u8ff0\u5b50\u592a\u7b80\u5355\u30022.\u91cd\u590d\u7eb9\u7406\u5bb9\u6613\u8bef\u5339\u914d\u30023.\u5bf9\u590d\u6742\u5149\u7167\u53d8\u5316\u4e0d\u5982\u6df1\u5ea6\u7279\u5f81\u3002<\/p>\n<p>5.SOLD2<\/p>\n<p>Self-supervised Occlusion-aware Line Description and Detection&#xff0c;\u6df1\u5ea6\u5b66\u4e60\u7ebf\u63cf\u8ff0\u5b50&#xff0c;\u96c6\u7ebf\u68c0\u6d4b\u3001\u7ebf\u63cf\u8ff0\u3001\u7ebf\u5339\u914d\u4e8e\u4e00\u4f53\u5316\u7684\u7cfb\u7edf&#xff0c;\u8ba9\u7f51\u7edc\u81ea\u5df1\u5b66\u4e60\u4ec0\u4e48\u6837\u7684\u7ed3\u6784\u6700\u5bb9\u6613\u5339\u914d\u3002<\/p>\n<p>\u4f20\u7edf\u65b9\u6cd5\u7684\u51e0\u5927\u95ee\u9898&#xff1a;1.\u7ebf\u5bb9\u6613\u65ad\u88c2&#xff0c;\u4f8b\u5982\u906e\u6321\u3001\u9634\u5f71\u30022.\u91cd\u590d\u7ed3\u6784\u4e25\u91cd&#xff0c;\u4f8b\u5982\u7a97\u6846&#xff0c;\u6805\u680f\u30023.\u624b\u5de5\u63cf\u8ff0\u5b50\u533a\u5206\u6027\u4e0d\u8db3&#xff0c;LBD\/MSLD\u672c\u8d28\u8fd8\u662f\u68af\u5ea6\u7edf\u8ba1\u30024.\u90e8\u5206\u53ef\u89c1\u6027\u95ee\u9898&#xff0c;\u5f88\u591a\u7ebf\u53ea\u51fa\u73b0\u4e00\u534a\u3002<\/p>\n<p>\u603b\u4f53\u7ed3\u6784&#xff1a;Image\u2192CNN Backbone\u2192Line Detector\u2192Line Heatmap\u2192Line Segments<\/p>\n<p>Line Detector&#xff08;\u7ebf\u68c0\u6d4b\u5668&#xff09;&#xff1a;CNN \u9884\u6d4b\u7ebf\u6982\u7387&#xff0c;\u8f93\u51fa Line Heatmap&#xff08;\u7ebf\u70ed\u529b\u56fe&#xff09;&#xff0c;\u4f8b\u5982\u6bcf\u4e2a\u50cf\u7d20\u5c5e\u4e8e\u7ebf\u7684\u6982\u7387\u3002CNN \u80fd\u5229\u7528\u5927\u8303\u56f4\u4e0a\u4e0b\u6587&#xff0c;\u5373\u4f7f\u7ebf\u65ad\u88c2&#xff0c;\u7f51\u7edc\u4e5f\u80fd\u63a8\u65ad\u5b83\u4ecd\u7136\u5c5e\u4e8e\u540c\u4e00\u6761\u7ebf\u3002<\/p>\n<p>Descriptor Decoder&#xff08;\u63cf\u8ff0\u5b50\u89e3\u7801\u5668&#xff09;&#xff1a;\u4f20\u7edf\u65b9\u6cd5\u7edf\u8ba1\u68af\u5ea6\u3001\u65b9\u5411\u76f4\u65b9\u56fe\u3002CNN \u76f4\u63a5\u8f93\u51fa\u7279\u5f81\u5d4c\u5165\u3002SOLD2 \u7ebf\u5f97\u5230\u7a20\u5bc6\u7279\u5f81\u56fe&#xff0c;\u7136\u540e\u6cbf\u7ebf\u91c7\u6837\u53d6\u7279\u5f81&#xff0c;\u6700\u540eaverage pooling\u3001attention\u3001aggregation\u5f62\u6210\u6574\u6761\u7ebf\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u6bd4LBD\u5f3a&#xff1a;\u53ea\u80fd\u8868\u8fbe\u5c40\u90e8\u68af\u5ea6\u5173\u7cfb&#xff0c;\u800cSOLD2 \u7279\u5f81\u5305\u542b\u8d28\u5730\u3001\u4e0a\u4e0b\u6587\u3001\u8bed\u4e49\u3001\u5168\u5c40\u7ed3\u6784\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u5149\u7167\u4e0d\u53d8\u6027\u30022.\u906e\u6321\u9c81\u68d2\u6027\u30023.\u91cd\u590d\u7eb9\u7406\u533a\u5206\u80fd\u529b\u30024.\u4e0a\u4e0b\u6587\u8bed\u4e49\u30025.\u975e\u7ebf\u6027\u7ed3\u6784\u8868\u8fbe\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u8ba1\u7b97\u91cf\u5927\u30022.\u5185\u5b58\u5927&#xff0c;\u901a\u5e38\u6d6e\u70b9\u63cf\u8ff0\u5b50\u30023.CPU\u5b9e\u65f6\u6027\u8f83\u5dee\u30024.\u90e8\u7f72\u590d\u6742\u3002<\/p>\n<table>\n<tr>\u65b9\u6cd5\u7c7b\u578b\u6838\u5fc3\u601d\u60f3Descriptor\u7c7b\u578b\u5339\u914d\u8ddd\u79bb\u901f\u5ea6\u9c81\u68d2\u6027\u8ba1\u7b97\u91cf\u662f\u5426\u5b9e\u65f6\u4e3b\u8981\u4f18\u70b9\u4e3b\u8981\u7f3a\u70b9\u5178\u578b\u573a\u666f<\/tr>\n<tbody>\n<tr>\n<td>MSLD<\/td>\n<td>\u7edf\u8ba1\u578b<\/td>\n<td>\u7edf\u8ba1\u7ebf\u652f\u6301\u533a\u57df\u7684 mean\/std<\/td>\n<td>Float<\/td>\n<td>L2<\/td>\n<td>\u8f83\u6162<\/td>\n<td>\u5f3a<\/td>\n<td>\u8f83\u5927<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u4fe1\u606f\u91cf\u4e30\u5bcc&#xff1b;\u5339\u914d\u7a33\u5b9a<\/td>\n<td>\u5339\u914d\u6162&#xff1b;\u5185\u5b58\u5927<\/td>\n<td>\u9ad8\u7cbe\u5ea6\u5339\u914d<\/td>\n<\/tr>\n<tr>\n<td>LBD<\/td>\n<td>\u4e8c\u503c\u578b<\/td>\n<td>Band\u7edf\u8ba1 &#043; Binary Encoding<\/td>\n<td>Binary<\/td>\n<td>Hamming<\/td>\n<td>\u5f88\u5feb<\/td>\n<td>\u8f83\u5f3a<\/td>\n<td>\u5c0f<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u5b9e\u65f6\u6027\u4f18\u79c0&#xff1b;\u5185\u5b58\u5c0f<\/td>\n<td>\u4fe1\u606f\u635f\u5931&#xff1b;\u91cd\u590d\u7eb9\u7406\u6613\u8bef\u5339\u914d<\/td>\n<td>VO\/SLAM<\/td>\n<\/tr>\n<tr>\n<td>Line-SIFT<\/td>\n<td>Histogram\u578b<\/td>\n<td>\u7edf\u8ba1\u68af\u5ea6\u65b9\u5411\u5206\u5e03<\/td>\n<td>Float<\/td>\n<td>L2<\/td>\n<td>\u6162<\/td>\n<td>\u5f88\u5f3a<\/td>\n<td>\u5927<\/td>\n<td>\u8f83\u5dee<\/td>\n<td>\u5c3a\u5ea6\u4e0e\u65cb\u8f6c\u9c81\u68d2\u6027\u5f3a<\/td>\n<td>descriptor\u7ef4\u5ea6\u9ad8<\/td>\n<td>\u79bb\u7ebf\u914d\u51c6<\/td>\n<\/tr>\n<tr>\n<td>LLD<\/td>\n<td>\u8f7b\u91cf\u5c40\u90e8\u578b<\/td>\n<td>\u5c40\u90e8\u533a\u57df\u5feb\u901f\u7f16\u7801<\/td>\n<td>\u591a\u4e3aBinary<\/td>\n<td>Hamming<\/td>\n<td>\u5f88\u5feb<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u5c0f<\/td>\n<td>\u5f3a<\/td>\n<td>\u8f7b\u91cf\u5316&#xff1b;CPU\u53cb\u597d<\/td>\n<td>\u533a\u5206\u6027\u4e00\u822c<\/td>\n<td>Embedded\/\u5b9e\u65f6\u7cfb\u7edf<\/td>\n<\/tr>\n<tr>\n<td>SOLD2<\/td>\n<td>\u6df1\u5ea6\u5b66\u4e60\u578b<\/td>\n<td>CNN\u5b66\u4e60\u7ebf\u7ed3\u6784\u7279\u5f81<\/td>\n<td>Learned Float Embedding<\/td>\n<td>Cosine\/L2<\/td>\n<td>\u8f83\u6162<\/td>\n<td>\u6700\u5f3a<\/td>\n<td>\u5f88\u5927<\/td>\n<td>GPU\u4e0b\u53ef\u5b9e\u65f6<\/td>\n<td>\u5149\u7167\/\u906e\u6321\/\u91cd\u590d\u7eb9\u7406\u9c81\u68d2\u6027\u5f3a<\/td>\n<td>\u9700\u8981GPU&#xff1b;\u90e8\u7f72\u590d\u6742<\/td>\n<td>\u73b0\u4ee3\u6df1\u5ea6SLAM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#xff08;5&#xff09;\u51e0\u4f55\u7ea6\u675f<\/p>\n<p>1.\u65b9\u5411\u7ea6\u675f<\/p>\n<li>\u7ebf\u65b9\u5411&#xff1a;\u7ebf\u6bb5<img decoding=\"async\" alt=\"$l=(p_s,\\\\, p_e)$\" class=\"mathcode\" src=\"2026-08-16f5olntzdtjn.png\" \/>&#xff0c;\u65b9\u5411\u5411\u91cf<img decoding=\"async\" alt=\"$v=\\\\frac{p_e-p_s}{\\\\|p_e-p_s\\\\|}$\" class=\"mathcode\" src=\"2026-08-160kqipm2ik1s.png\" \/>\u3002<\/li>\n<li>\u65b9\u5411\u5939\u89d2&#xff1a;\u4e24\u6761\u7ebf l1\u200b&#xff0c;l2&#xff0c;\u5939\u89d2\u03b8&#061;arccos(v1\u200b\u22c5v2\u200b)\u3002<\/li>\n<li>\u5339\u914d\u6761\u4ef6&#xff1a;\u03b8&lt;\u03c4\u03b8\u3002\u200b\u200b<\/li>\n<p>2.Overlap\u7ea6\u675f<\/p>\n<p>\u4e0d\u4ec5\u65b9\u5411\u4e00\u81f4&#xff0c;\u8fd8\u5e94\u5728\u7ebf\u65b9\u5411\u4e0a\u6709\u91cd\u53e0\u3002<\/p>\n<li>\u7edf\u4e00\u65b9\u5411<\/li>\n<li>\u5c06\u4e24\u7ebf\u6295\u5f71\u6620\u5c04\u5230\u540c\u4e00\u8f74\u4e0a&#xff0c;\u5f97\u5230\u4e24\u4e2a\u533a\u95f4 [a1\u200b,b1\u200b]&#xff0c;[a2,b2]\u3002<\/li>\n<li>\u8ba1\u7b97\u91cd\u53e0\u957f\u5ea6&#xff1a;<img decoding=\"async\" alt=\"$L_o=\\\\max\\\\bigl(0,\\\\; \\\\min(b_1,b_2)-\\\\max(a_1,a_2)\\\\bigr)$\" class=\"mathcode\" src=\"2026-08-16sr410pwbc4f.png\" \/><\/li>\n<li>\u5f52\u4e00\u5316&#xff1a;<img decoding=\"async\" alt=\"r=\\\\frac{L_o}{max(L_1,L_2)}\" class=\"mathcode\" src=\"2026-08-165idn5aebywr.png\" \/>&#xff0c;\u5982\u679cr &gt; 0.5 \u8bf4\u660e\u81f3\u5c11\u6709\u4e00\u534a\u91cd\u53e0\u3002<\/li>\n<p>3.\u957f\u5ea6\u7ea6\u675f<\/p>\n<p>\u540c\u4e00\u7269\u7406\u7ebf&#xff0c;\u957f\u5ea6\u4e0d\u4f1a\u5dee\u592a\u79bb\u8c31\u3002\u8981\u6c42 rl\u200b &gt; \u03c4&#xff0c;\u901a\u5e38 \u03c4 &#061; 0.5\u3002<img decoding=\"async\" alt=\"r_l=\\\\frac{min(L_1,L_2)}{max(L_1,L_2)}\" class=\"mathcode\" src=\"2026-08-16uoytedosf1z.png\" \/><\/p>\n<p>4.\u4e2d\u70b9\u8ddd\u79bb\u7ea6\u675f<\/p>\n<li>\u5b9a\u4e49\u4e2d\u70b9\u00a0<img decoding=\"async\" alt=\"c=\\\\frac{ps+pe}{2}\" class=\"mathcode\" src=\"2026-08-16uwiz5rsvvul.png\" \/>\u3002<\/li>\n<li>\u8ddd\u79bb<img decoding=\"async\" alt=\"$d_c=\\\\|c_1 - c_2\\\\|$\" class=\"mathcode\" src=\"2026-08-16ph3qtgro532.png\" \/>\u3002<\/li>\n<li>\u6761\u4ef6 dc \u200b&lt; \u03c4c\u3002\u200b<\/li>\n<p>\u9002\u5408\u89c6\u9891\u8ddf\u8e2a&#xff0c;VO\u8fde\u7eed\u5e27\u3002<\/p>\n<p>5.\u70b9\u5230\u7ebf\u8ddd\u79bb\u7ea6\u675f<\/p>\n<p>\u7ebf\u91cd\u6295\u5f71\u8bef\u5dee\u6838\u5fc3&#xff0c;SLAM \u6838\u5fc3&#xff0c;\u5df2\u77e5\u5730\u56fe\u7ebf\u3001\u76f8\u673a\u4f4d\u59ff&#xff0c;\u5f97\u5230\u6295\u5f71\u540e\u7684\u7ebf&#xff0c;\u518d\u6bd4\u8f83\u89c2\u6d4b\u7ebf\u7aef\u70b9\u5230\u6295\u5f71\u7ebf\u8ddd\u79bb\u3002<\/p>\n<h3>2. \u7279\u5f81\u5339\u914d<\/h3>\n<p>\u7279\u5f81\u5339\u914d\u7684\u672c\u8d28\u662f\u7279\u5f81\u63cf\u8ff0\u5b50\u7684\u6700\u8fd1\u90bb\u641c\u7d22&#xff0c;\u6bcf\u4e00\u4e2a\u5173\u952e\u70b9\u63d0\u53d6\u4e00\u4e2a\u9ad8\u7ef4\u63cf\u8ff0\u5b50\u5411\u91cf&#xff0c;\u7136\u540e\u7b97\u5411\u91cf\u8ddd\u79bb&#xff0c;\u8ddd\u79bb\u6700\u5c0f\u7684\u5c31\u5f53\u6210\u5339\u914d\u5bf9\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u5fc5\u7136\u6709\u9519\u8bef\u5339\u914d&#xff1a;1.\u53ea\u770b\u5411\u91cf\u76f8\u4f3c\u5ea6&#xff0c;\u4e0d\u770b\u51e0\u4f55\u5173\u7cfb\u30022.\u91cd\u590d\u7eb9\u7406\u5fc5\u7136\u649e\u8f66\u30023.SIFT\/ORB \u90fd\u662f\u5c40\u90e8\u5c0f\u90bb\u57df\u7279\u5f81&#xff0c;\u53ea\u6709\u5c0f\u5757\u7eb9\u7406\u4fe1\u606f&#xff0c;\u6ca1\u6709\u6574\u5f20\u56fe\u7684\u5168\u5c40\u4f4d\u7f6e\u903b\u8f91&#xff1b;<\/p>\n<h4>2.1 BFMatcher<\/h4>\n<p>\u66b4\u529b\u5339\u914d&#xff0c;\u6700\u7b80\u5355\u3001\u6700\u76f4\u63a5&#xff1a;\u5bf9\u6bcf\u4e2a\u7279\u5f81\u70b9&#xff0c;\u904d\u5386\u53e6\u4e00\u5f20\u56fe\u6240\u6709\u70b9\u627e\u6700\u8fd1\u7684\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;\u7b80\u5355\u76f4\u63a5&#xff0c;&#xff0c;\u7cbe\u5ea6\u9ad8&#xff0c;\u5bb9\u6613\u7406\u89e3\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;\u6162\u3001\u5bb9\u6613\u4ea7\u751f\u9519\u8bef\u5339\u914d&#xff0c;\u91cd\u590d\u7eb9\u7406\u573a\u666f\u4e0d\u7a33\u5b9a\u3002<\/p>\n<p>\u8ddd\u79bb\u5ea6\u91cf&#xff1a;ORB&#xff08;\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff09;\u4f7f\u7528\u6c49\u660e\u8ddd\u79bb&#xff08;Hamming Distance&#xff09;&#xff0c;\u53c2\u6570\u4e3acv::NORM_HAMMING&#xff0c;\u5373\u4e24\u4e2a\u4e8c\u8fdb\u5236\u4e32\u6709\u591a\u5c11\u4f4d\u4e0d\u540c&#xff1b;SIFT \/ SURF&#xff08;\u6d6e\u70b9\u63cf\u8ff0\u5b50&#xff09;\u4f7f\u7528\u6b27\u6c0f\u8ddd\u79bb&#xff08;L2 Distance&#xff09;&#xff0c;\u53c2\u6570\u4e3acv::NORM_L2\u3002<\/p>\n<p>cv::BFMatcher matcher(cv::NORM_HAMMING);\/\/ \u7b2c\u4e8c\u4e2a\u53c2\u6570&#061;true &#061; \u4ea4\u53c9\u9a8c\u8bc1<br \/>\nstd::vector&lt;cv::DMatch&gt; matches;<br \/>\nmatcher.match(des1, des2, matches);<\/p>\n<h4>2.2 KNN \u5339\u914d &#043; Lowe Ratio Test<\/h4>\n<p>\u8fd9\u662f\u7ecf\u5178\u5c40\u90e8\u7279\u5f81&#xff08;SIFT \/ SURF \/ ORB&#xff09;\u4e2d\u6700\u6807\u51c6\u3001\u6700\u5e38\u7528\u7684\u9c81\u68d2\u5339\u914d\u65b9\u6cd5\u3002\u539f\u7406&#xff1a;\u5bf9\u6bcf\u4e2a\u70b9\u627e 2 \u4e2a\u6700\u8fd1\u90bb&#xff0c;\u5982\u679c\u6700\u8fd1\u90bb \/ \u6b21\u8fd1\u90bb &lt; 0.75&#xff0c;\u8bf4\u660e\u5339\u914d\u53ef\u9760&#xff0c;\u5426\u5219\u662f\u6a21\u7cca\u5339\u914d \u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;\u5927\u5e45\u51cf\u5c11\u8bef\u5339\u914d&#xff0c;\u5bf9\u91cd\u590d\u7eb9\u7406\u6548\u679c\u597d&#xff0c;SIFT\/ORB \u6807\u51c6\u6d41\u7a0b\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;\u5339\u914d\u6570\u4f1a\u51cf\u5c11\u3002<\/p>\n<p>cv::BFMatcher matcher(cv::NORM_L2);<br \/>\nstd::vector&lt;std::vector&lt;cv::DMatch&gt;&gt; knnMatches;<\/p>\n<p>matcher.knnMatch(des1, des2, knnMatches, 2);<\/p>\n<p>std::vector&lt;cv::DMatch&gt; goodMatches;<\/p>\n<p>for (auto&amp; match : knnMatches) {<br \/>\n    if (match[0].distance &lt; 0.75 * match[1].distance) {<br \/>\n        goodMatches.push_back(match[0]);<br \/>\n    }<br \/>\n}<\/p>\n<p>\u4e3a\u4ec0\u4e48\u975e\u5e38\u6709\u6548&#xff1f;\u4f8b\u5982&#xff1a;<\/p>\n<p>\u6b63\u786e\u5339\u914d&#xff1a;\u6700\u8fd1\u90bb 10&#xff0c;\u7b2c\u4e8c\u8fd1\u90bb 40\u3002\u8bf4\u660e\u552f\u4e00\u6027\u5f3a\u3002<\/p>\n<p>\u9519\u8bef\u5339\u914d&#xff1a;\u6700\u8fd1\u90bb 20&#xff0c;\u7b2c\u4e8c\u8fd1\u90bb 22\u3002\u8bf4\u660e\u5f88\u591a\u70b9\u90fd\u5f88\u50cf&#xff0c;\u4e0d\u53ef\u9760\u3002<\/p>\n<h4>2.3 radiusMatch<\/h4>\n<p>\u534a\u5f84\u5339\u914d\/\u8ddd\u79bb\u9608\u503c\u8fc7\u6ee4\u5339\u914d&#xff0c;\u5c5e*\u66b4\u529b\u5339\u914d\u7684\u4e00\u79cd&#xff0c;\u6838\u5fc3\u601d\u60f3&#xff1a;\u5bf9\u6bcf\u4e2a\u7279\u5f81\u70b9&#xff0c;\u8ba1\u7b97\u5b83\u4e0e\u53e6\u4e00\u5f20\u56fe\u6240\u6709\u7279\u5f81\u70b9\u7684\u63cf\u8ff0\u5b50\u8ddd\u79bb&#xff0c;\u53ea\u4fdd\u7559\u8ddd\u79bb \u2264 \u8bbe\u5b9a\u9608\u503c&#xff08;maxDistance&#xff09;\u7684\u5339\u914d&#xff0c;\u5927\u4e8e\u9608\u503c\u7684\u5168\u90e8\u4e22\u5f03&#xff0c;\u8ba4\u4e3a\u201c\u4e0d\u591f\u50cf\u201d\u3002\u5b83\u4e0d\u9650\u5236\u5339\u914d\u6570\u91cf&#xff08;0\/1\/\u591a\u4e2a\u90fd\u884c&#xff09;&#xff0c;\u53ea\u770b\u76f8\u4f3c\u5ea6\u591f\u4e0d\u591f\u9ad8\u3002<\/p>\n<p>\u4f18\u70b9<br \/>\n&#8211; \u7b80\u5355\u76f4\u89c2&#xff0c;\u53ef\u63a7\u6027\u5f3a&#xff08;\u76f4\u63a5\u7528\u8ddd\u79bb\u63a7\u5236\u8d28\u91cf&#xff09;<br \/>\n&#8211; \u53ef\u4ee5\u4fdd\u7559\u4e00\u5bf9\u591a\u7684\u6b63\u786e\u5339\u914d&#xff08;\u67d0\u4e9b\u573a\u666f\u9700\u8981&#xff09;<br \/>\n&#8211; \u4e0d\u9700\u8981\u50cf KNN \u90a3\u6837\u4f9d\u8d56\u6b21\u8fd1\u90bb&#xff0c;\u9002\u5408\u7279\u5f81\u5c11\u7684\u56fe<\/p>\n<p>\u7f3a\u70b9<br \/>\n&#8211; \u901f\u5ea6\u6162&#xff08;\u66b4\u529b\u904d\u5386&#xff09;<br \/>\n&#8211; \u9608\u503c\u9700\u8981\u624b\u52a8\u8c03&#xff0c;\u4e0d\u540c\u56fe\u3001\u4e0d\u540c\u7279\u5f81\u8981\u6539\u53c2\u6570<br \/>\n&#8211; \u91cd\u590d\u7eb9\u7406\u573a\u666f\u4ecd\u7136\u5bb9\u6613\u51fa\u9519<\/p>\n<p>cv::BFMatcher matcher(cv::NORM_L2); \u00a0\/\/ SIFT\u7528L2&#xff0c;ORB\u7528HAMMING<\/p>\n<p>std::vector&lt;std::vector&lt;cv::DMatch&gt;&gt; radiusMatches;<br \/>\nfloat maxDistance &#061; 150; \u00a0\/\/ \u8ddd\u79bb\u9608\u503c&#xff08;SIFT\u5e38\u7528 100~200&#xff09;<\/p>\n<p>matcher.radiusMatch(des1, des2, radiusMatches, maxDistance);<\/p>\n<p>\/\/ \u8f6c\u6210\u4e00\u7ef4\u597d\u4f7f\u7528<br \/>\nstd::vector&lt;cv::DMatch&gt; goodMatches;<br \/>\nfor (auto&amp; matchVec : radiusMatches) {<br \/>\n\u00a0 \u00a0 if (!matchVec.empty()) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 goodMatches.push_back(matchVec[0]); \u00a0\/\/ \u53d6\u6700\u8fd1\u7684\u4e00\u4e2a<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\u4e3a\u4ec0\u4e48\u6709\u6548&#xff1f;<br \/>\n&#8211; \u6b63\u786e\u5339\u914d&#xff1a;\u63cf\u8ff0\u5b50\u8ddd\u79bb\u5f88\u5c0f<br \/>\n&#8211; \u9519\u8bef\u5339\u914d&#xff1a;\u63cf\u8ff0\u5b50\u8ddd\u79bb\u5f88\u5927<\/p>\n<p>\u76f4\u63a5\u8bbe\u5b9a\u4e00\u6761\u201c\u53ca\u683c\u7ebf\u201d&#xff0c;\u53ea\u7559\u4e0b\u9ad8\u5206\u5339\u914d\u3002<\/p>\n<h4>2.3. FLANN \u5feb\u901f\u5339\u914d<\/h4>\n<p>Fast Library for Approximate Nearest Neighbors&#xff0c;\u7279\u5f81\u70b9\u8d85\u591a\u65f6\u7528\u3002\u6838\u5fc3\u601d\u60f3&#xff1a;\u4e0d\u7528\u66b4\u529b\u641c\u7d22&#xff0c;\u800c\u662f\u7528\u7d22\u5f15\u7ed3\u6784\u52a0\u901f\u6700\u8fd1\u90bb\u67e5\u627e.<\/p>\n<p>\u4f18\u70b9&#xff1a;\u5f88\u5feb&#xff0c;\u5927\u89c4\u6a21\u5339\u914d\u4f18\u79c0\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;\u8fd1\u4f3c\u641c\u7d22\u3002<\/p>\n<p>\u9002\u7528&#xff1a;SIFT\/SURF\u3001\u51e0\u5343\u4ee5\u4e0a\u7279\u5f81\u70b9<\/p>\n<p>cv::FlannBasedMatcher matcher;<br \/>\nstd::vector&lt;cv::DMatch&gt; matches;<br \/>\nmatcher.match(des1, des2, matches);<\/p>\n<h4>2.4 RANSAC &#xff08;Random Sample Consensus&#xff09;<\/h4>\n<p>\u5b83\u4e0d\u662f\u5339\u914d\u65b9\u6cd5&#xff0c;\u800c\u662f\u5339\u914d\u540e\u8fc7\u6ee4\u3002<\/p>\n<p>RANSAC\u7684\u76ee\u6807\u662f\u4ece\u4e00\u5806\u5e26\u9519\u8bef\u7684\u5339\u914d\u91cc&#xff0c;\u627e\u51fa\u6b63\u786e\u7684\u5185\u70b9&#xff0c;\u6254\u6389\u9519\u8bef\u7684\u5916\u70b9\u3002\u7279\u5f81\u5339\u914d\u4e4b\u540e\u4e00\u5b9a\u5b58\u5728\u9519\u8bef\u5339\u914d&#xff0c;\u800c\u56fe\u50cf\u62fc\u63a5\u771f\u6b63\u9700\u8981\u7684\u662f&#xff0c;\u51e0\u4f55\u4e00\u81f4\u7684\u5339\u914d\u3002<\/p>\n<p>Inlier&#xff08;\u5185\u70b9&#xff09;&#xff1a;\u771f\u6b63\u7b26\u5408\u540c\u4e00\u4e2a\u51e0\u4f55\u6a21\u578b\u7684\u5339\u914d\u70b9<\/p>\n<p>Outlier&#xff08;\u5916\u70b9&#xff09;&#xff1a;\u9519\u8bef\u5339\u914d&#xff0c;\u4e0d\u6ee1\u8db3\u6574\u4f53\u51e0\u4f55\u5173\u7cfb<\/p>\n<p>\u968f\u673a\u4e00\u81f4\u6027\u62bd\u6837\u7684\u6838\u5fc3\u601d\u60f3&#xff1a;\u5148\u968f\u673a\u62bd\u5c11\u91cf\u70b9&#xff0c;\u7528\u8fd9\u4e9b\u70b9\u8ba1\u7b97\u5355\u5e94\u77e9\u9635H&#xff0c;\u62ff\u8fd9\u4e2aH\u53bb\u9a8c\u8bc1\u6240\u6709\u5339\u914d\u70b9\u3002\u5148\u731c\u4e00\u4e2a\u6a21\u578b&#xff0c;\u770b\u8c01\u652f\u6301\u5b83&#xff0c;\u7136\u540e\u4e0d\u65ad\u91cd\u590d&#xff0c;\u627e\u51fa\u201d\u652f\u6301\u4eba\u6570\u6700\u591a\u201c\u7684\u54ea\u4e2aH\u3002<\/p>\n<p>Lowe Ratio\u770b\u7684\u662f\u63cf\u8ff0\u5b50\u50cf\u4e0d\u50cf&#xff0c;\u5c5e\u4e8e\u5c40\u90e8\u7eb9\u7406\u4e00\u81f4\u6027&#xff0c;RANSAC\u770b\u7684\u662f\u51e0\u4f55\u5173\u7cfb\u662f\u5426\u4e00\u81f4\u3002<\/p>\n<p>Reprojection Error&#xff08;\u91cd\u6295\u5f71\u8bef\u5dee&#xff09;&#xff1a;RANSAC\u4f1a\u5148\u968f\u673a\u731c\u4e00\u4e2a\u6a21\u578b&#xff08;H\u6216Affine&#xff09;&#xff0c;\u7528\u8fd9\u4e2a\u6a21\u578b\u9884\u6d4b\u6e90\u70b9\u5e94\u8be5\u6295\u5f71\u5230\u54ea\u91cc\u30023.\u8ba1\u7b97\u9884\u6d4b\u4f4d\u7f6e\u548c\u771f\u5b9e\u5339\u914d\u4f4d\u7f6e\u4e4b\u95f4\u7684\u8ddd\u79bb&#xff0c;\u8fd9\u5c31\u662f\u91cd\u6295\u5f71\u8bef\u5dee\u3002\u5982\u679c\u8bef\u5dee &lt; ransacReprojThreshold&#xff0c;\u5219\u8ba4\u4e3a\u662f\u5185\u70b9&#xff0c;\u5426\u5219\u8ba4\u4e3a\u662f\u5916\u70b9<\/p>\n<p>cv::Mat H &#061; cv::findHomography(<br \/>\n    srcPoints,   \/\/ \u6e90\u56fe\u50cf\u70b9<br \/>\n    dstPoints,   \/\/ \u76ee\u6807\u56fe\u50cf\u70b9<br \/>\n    cv::RANSAC,  \/\/ \u5f00\u542f RANSAC<br \/>\n    5.0          \/\/ \u8bef\u5dee\u9608\u503c&#xff08;\u4e00\u822c 3~5&#xff09;<br \/>\n);<br \/>\n\u8f93\u51fa mask&#xff0c;\u8868\u793a\u54ea\u4e9b\u662f\u5185\u70b9&#xff08;inlier&#xff09;<\/p>\n<table>\n<tr>\u65b9\u6cd5\u672c\u8d28\u5e38\u7528\u63cf\u8ff0\u5b50\/\u7b97\u6cd5\u4f18\u70b9\u7f3a\u70b9\u5178\u578b\u4f7f\u7528\u573a\u666f<\/tr>\n<tbody>\n<tr>\n<td>BF Match<\/td>\n<td>\u66b4\u529b\u6700\u8fd1\u90bb\u5339\u914d<\/td>\n<td>ORB\u3001BRIEF\u3001AKAZE<\/td>\n<td>\u7b80\u5355\u3001\u7cbe\u786e<\/td>\n<td>\u901f\u5ea6\u6162<\/td>\n<td>\u5c0f\u89c4\u6a21\u7279\u5f81\u5339\u914d\u3001\u5b66\u4e60\u4e0e\u8c03\u8bd5<\/td>\n<\/tr>\n<tr>\n<td>BF Match &#043; CrossCheck<\/td>\n<td>\u5f00\u542f\u4ea4\u53c9\u9a8c\u8bc1&#xff08;\u53cc\u5411\u6700\u8fd1\u90bb\u4e00\u81f4&#xff09;<\/td>\n<td>ORB\u3001BRIEF<\/td>\n<td>\u5339\u914d\u66f4\u7a33\u5b9a\u3001\u8bef\u5339\u914d\u66f4\u5c11<\/td>\n<td>\u5339\u914d\u6570\u91cf\u51cf\u5c11<\/td>\n<td>ORB \u56fe\u50cf\u914d\u51c6\u3001\u5b9e\u65f6\u89c6\u89c9\u3001\u5c0f\u8303\u56f4\u8fd0\u52a8\u573a\u666f<\/td>\n<\/tr>\n<tr>\n<td>KNN Match &#043; Lowe Ratio Test<\/td>\n<td>\u591a\u8fd1\u90bb\u5339\u914d &#043; \u6700\u8fd1\u90bb\u552f\u4e00\u6027\u8fc7\u6ee4<\/td>\n<td>SIFT\u3001SURF\u3001ORB<\/td>\n<td>\u9c81\u68d2\u6027\u9ad8\u3001\u6709\u6548\u51cf\u5c11\u8bef\u5339\u914d<\/td>\n<td>\u4f1a\u4e22\u5931\u90e8\u5206\u6b63\u786e\u5339\u914d<\/td>\n<td>\u9ad8\u7cbe\u5ea6\u56fe\u50cf\u914d\u51c6\u3001\u62fc\u63a5\u3001SLAM\u3001\u4e09\u7ef4\u91cd\u5efa<\/td>\n<\/tr>\n<tr>\n<td>FLANN<\/td>\n<td>\u8fd1\u4f3c\u6700\u8fd1\u90bb\u641c\u7d22<\/td>\n<td>SIFT\u3001SURF<\/td>\n<td>\u5927\u89c4\u6a21\u5339\u914d\u901f\u5ea6\u5feb<\/td>\n<td>\u7cbe\u5ea6\u7565\u4f4e\u4e8e\u66b4\u529b\u5339\u914d<\/td>\n<td>\u5927\u91cf\u7279\u5f81\u70b9\u5339\u914d\u3001\u79bb\u7ebf\u91cd\u5efa\u3001\u5927\u573a\u666f\u68c0\u7d22<\/td>\n<\/tr>\n<tr>\n<td>RANSAC<\/td>\n<td>\u51e0\u4f55\u4e00\u81f4\u6027\u7b5b\u9009<\/td>\n<td>\u914d\u5408\u6240\u6709\u7279\u5f81\u7b97\u6cd5\u4f7f\u7528<\/td>\n<td>\u53bb\u9664\u79bb\u7fa4\u70b9\u3001\u63d0\u9ad8\u914d\u51c6\u7a33\u5b9a\u6027<\/td>\n<td>\u4e0d\u662f\u5339\u914d\u5668&#xff0c;\u9700\u8981\u4f9d\u8d56\u524d\u5e8f\u5339\u914d<\/td>\n<td>\u5355\u5e94\u77e9\u9635\u4f30\u8ba1\u3001\u56fe\u50cf\u914d\u51c6\u3001\u4f4d\u59ff\u4f30\u8ba1\u3001SLAM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>void cv::DescriptorMatcher::match(InputArray queryDescriptors, InputArray trainDescriptors, std::vector&lt;DMatch&gt;&amp; matches, InputArray mask &#061; noArray());<br \/>\n\u529f\u80fd&#xff1a;\u5bf9\u4e24\u7ec4\u63cf\u8ff0\u5b50\u8fdb\u884c\u6700\u8fd1\u90bb\u5339\u914d\u3002<br \/>\n\u53c2\u6570&#xff1a;mask&#xff1a;\u5339\u914d\u63a9\u7801&#xff0c;\u7528\u4e8e\u9650\u5236\u90a3\u4e9b\u63cf\u8ff0\u5b50\u5141\u8bb8\u5339\u914d&#xff0c;\u9ed8\u8ba4\u4e3anoArray&#xff0c;\u8868\u793a\u5168\u56fe\u5339\u914d<\/p>\n<p>void cv::drawMatches(InputArray img1, const std::vector&lt;KeyPoint&gt;&amp; keypoints1, InputArray img2, const std::vector&lt;KeyPoint&gt;&amp; keypoints2, const std::vector&lt;DMatch&gt;&amp; matches1to2, InputOutputArray outImg, const Scalar&amp; matchColor &#061; Scalar::all(-1), const Scalar&amp; singlePointColor &#061; Scalar::all(-1), const std::vector&lt;char&gt;&amp; matchesMask &#061; std::vector&lt;char&gt;(), int flags &#061; DrawMatchesFlags::DEFAULT);<br \/>\n\u529f\u80fd&#xff1a;\u7ed8\u5236\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u5339\u914d\u7279\u5f81\u70b9\u3002<br \/>\n\u53c2\u6570&#xff1a;<br \/>\nmatches1to2&#xff1a;\u5339\u914d\u7ed3\u679c&#xff0c;\u901a\u5e38\u6765\u81eamatcher.match()\u6216good_matches&#xff1b;<br \/>\noutImg&#xff1a;\u8f93\u51fa\u7ed8\u5236\u56fe\u50cf<br \/>\nmatchesMask&#xff1a;\u5339\u914d\u63a9\u7801&#xff0c;\u7528\u4e8e\u53ea\u7ed8\u5236\u90e8\u5206\u5339\u914d&#xff0c;\u901a\u5e38\u914d\u5408RANSAC\u5185\u70b9\u4f7f\u7528<br \/>\nflags&#xff1a;\u7ed8\u5236\u65b9\u5f0f\u63a7\u5236&#xff0c;\u5e38\u7528 DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS \u8868\u793a\u4e0d\u7ed8\u5236\u672a\u5339\u914d\u70b9<\/p>\n<h4>2.5 \u56fe\u50cf\u914d\u51c6\u8fc7\u7a0b\u4e2d\u4f7f\u7528\u5230\u7684\u6570\u636e\u7ed3\u6784<\/h4>\n<p>&#xff08;1&#xff09;cv::Mat<\/p>\n<p>OpenCV\u4e2d\u56fe\u50cf\/\u77e9\u9635\u7684\u7edf\u4e00\u6570\u636e\u7ed3\u6784&#xff0c;\u672c\u8d28\u662f\u4e8c\u7ef4\u77e9\u9635<\/p>\n<p>\/\/ 1. \u5b58\u50a8\u56fe\u50cf&#xff1a;cv::Mat img<br \/>\n\/\/ 2. \u5b58\u50a8\u63cf\u8ff0\u5b50&#xff1a;cv::Mat descriptors<br \/>\n\/\/ 3. \u5b58\u50a8\u5355\u5e94\u77e9\u9635&#xff1a;3&#215;3 \u53d8\u6362\u77e9\u9635 cv::Mat H<br \/>\n\/\/ 4. \u5185\u70b9\u63a9\u7801&#xff1a;cv::Mat mask&#xff08;RANSAC \u8f93\u51fa&#xff0c;\u6807\u8bb0\u5185\u70b9\/\u5916\u70b9&#xff09;<br \/>\nclass cv::Mat<br \/>\n{<br \/>\npublic:<br \/>\n    int rows;      \/\/ \u77e9\u9635\u7684\u884c\u6570<br \/>\n                   \/\/ &#8211; \u56fe\u50cf&#xff1a;\u9ad8\u5ea6&#xff08;\u56fe\u50cf\u7684\u884c\u6570&#xff0c;\u5373Y\u65b9\u5411\u5c3a\u5bf8&#xff09;<br \/>\n                   \/\/ &#8211; \u63cf\u8ff0\u5b50\u96c6\u5408&#xff1a;\u7279\u5f81\u70b9\u7684\u6570\u91cf&#xff08;\u6bcf\u4e2a\u7279\u5f81\u70b9\u63cf\u8ff0\u5b50\u5360\u4e00\u884c&#xff09;<br \/>\n                   \/\/ &#8211; \u5355\u5e94\u77e9\u9635 H&#xff1a;3&#xff08;3\u00d73\u77e9\u9635\u7684\u884c\u6570&#xff09;<br \/>\n                   \/\/ &#8211; \u5185\u70b9\u63a9\u7801 mask&#xff1a;\u5339\u914d\u70b9\u5bf9\u7684\u6570\u91cf&#xff08;\u6bcf\u4e2a\u70b9\u5bf9\u5bf9\u5e94\u4e00\u884c&#xff09;<\/p>\n<p>    int cols;      \/\/ \u77e9\u9635\u7684\u5217\u6570<br \/>\n                   \/\/ &#8211; \u56fe\u50cf&#xff1a;\u5bbd\u5ea6&#xff08;\u56fe\u50cf\u7684\u5217\u6570&#xff0c;\u5373X\u65b9\u5411\u5c3a\u5bf8&#xff09;<br \/>\n                   \/\/ &#8211; \u63cf\u8ff0\u5b50\u96c6\u5408&#xff1a;\u63cf\u8ff0\u5b50\u7684\u7ef4\u5ea6<br \/>\n                   \/\/   SIFT \/ SURF&#xff1a;128 \u6216 64&#xff08;\u6d6e\u70b9\u578b&#xff09;<br \/>\n                   \/\/   ORB \/ BRISK \/ FREAK&#xff1a;32 \u5b57\u8282&#xff08;256 \u4f4d&#xff0c;\u5b57\u8282\u578b&#xff09;<br \/>\n                   \/\/ &#8211; \u5355\u5e94\u77e9\u9635 H&#xff1a;3&#xff08;3\u00d73\u77e9\u9635\u7684\u5217\u6570&#xff09;<br \/>\n                   \/\/ &#8211; \u5185\u70b9\u63a9\u7801 mask&#xff1a;1&#xff08;\u6bcf\u4e00\u884c\u53ea\u6709\u4e00\u4e2a\u503c&#xff0c;\u8868\u793a\u5185\u70b9\/\u5916\u70b9&#xff09;<\/p>\n<p>    int type;      \/\/ \u77e9\u9635\u5143\u7d20\u7684\u6570\u636e\u7c7b\u578b\u53ca\u901a\u9053\u6570&#xff08;\u7528 CV_ \u5b8f\u8868\u793a&#xff09;<br \/>\n                   \/\/ &#8211; \u56fe\u50cf&#xff1a;<br \/>\n                   \/\/   \u00b7 \u7070\u5ea6\u56fe&#xff1a;CV_8UC1<br \/>\n                   \/\/   \u00b7 \u5f69\u8272\u56fe&#xff1a;CV_8UC3&#xff08;BGR \u987a\u5e8f&#xff09;<br \/>\n                   \/\/ &#8211; \u63cf\u8ff0\u5b50\u96c6\u5408&#xff1a;<br \/>\n                   \/\/   \u00b7 SIFT \/ SURF&#xff1a;CV_32F&#xff08;32\u4f4d\u6d6e\u70b9&#xff0c;\u6bcf\u4e2a\u7ef4\u5ea6\u4e00\u4e2a float&#xff09;<br \/>\n                   \/\/   \u00b7 ORB \/ AKAZE \/ BRISK&#xff1a;CV_8U&#xff08;\u4e8c\u8fdb\u5236\u63cf\u8ff0\u5b50&#xff0c;\u901a\u5e38\u4e3a 8U \u5355\u901a\u9053&#xff0c;\u591a\u4e2a\u5b57\u8282\u8fde\u7eed\u5b58\u50a8&#xff09;<br \/>\n                   \/\/ &#8211; \u5355\u5e94\u77e9\u9635 H&#xff1a;\u591a\u6570\u4f7f\u7528 CV_64F&#xff08;\u53cc\u7cbe\u5ea6&#xff09;\u63d0\u9ad8\u7cbe\u5ea6&#xff0c;\u4e5f\u53ef\u7528 CV_32F<br \/>\n                   \/\/ &#8211; \u5185\u70b9\u63a9\u7801 mask&#xff1a;CV_8U&#xff08;8\u4f4d\u65e0\u7b26\u53f7\u6574\u6570&#xff0c;\u53d6\u503c 0&#xff08;\u5916\u70b9&#xff09;\u6216 1&#xff08;\u5185\u70b9&#xff09;&#xff09;<\/p>\n<p>    void* data;    \/\/ \u6307\u5411\u77e9\u9635\u5b9e\u9645\u5b58\u50a8\u6570\u636e\u7684\u6307\u9488&#xff08;\u6309\u884c\u987a\u5e8f\u8fde\u7eed\u5b58\u653e&#xff09;<br \/>\n                   \/\/ &#8211; \u56fe\u50cf&#xff1a;\u6307\u5411\u50cf\u7d20\u6570\u636e\u7684\u9996\u5730\u5740&#xff08;\u6309\u884c\u4f18\u5148\u5b58\u50a8&#xff09;<br \/>\n                   \/\/ &#8211; \u63cf\u8ff0\u5b50\u96c6\u5408&#xff1a;\u6307\u5411\u6240\u6709\u7279\u5f81\u63cf\u8ff0\u5b50\u6570\u636e\u7684\u9996\u5730\u5740&#xff08;\u6bcf\u884c\u4e00\u4e2a\u63cf\u8ff0\u5b50&#xff09;<br \/>\n                   \/\/ &#8211; \u5355\u5e94\u77e9\u9635 H&#xff1a;\u6307\u5411 9 \u4e2a\u6d6e\u70b9\u6570&#xff08;\u6216 6 \u4e2a\u4eff\u5c04\u5143\u7d20&#xff09;\u7684\u9996\u5730\u5740<br \/>\n                   \/\/ &#8211; \u5185\u70b9\u63a9\u7801 mask&#xff1a;\u6307\u5411\u5b57\u8282\u6570\u7ec4\u7684\u9996\u5730\u5740&#xff0c;\u6bcf\u4e2a\u5b57\u8282\u4e3a 0 \u6216 1<br \/>\n};<\/p>\n<p>&#xff08;2&#xff09;cv::KeyPoint<\/p>\n<p>\u4fdd\u5b58\u7279\u5f81\u70b9\u4fe1\u606f&#xff0c;\u672c\u8d28\u662f\u4e00\u4e2a\u5173\u952e\u70b9\u5bf9\u8c61\u3002\u5305\u62ec\u5750\u6807\u3001\u5c3a\u5ea6\u3001\u65b9\u5411\u3001\u54cd\u5e94\u503c\u7b49\u4fe1\u606f<\/p>\n<p>class KeyPoint<br \/>\n{<br \/>\npublic:<br \/>\n    cv::Point2f pt;    \/\/ \u5750\u6807 (x,y)<br \/>\n    float size;        \/\/ \u7279\u5f81\u70b9\u76f4\u5f84\/\u5c3a\u5ea6<br \/>\n    float angle;       \/\/ \u65b9\u5411 0~360\u00b0<br \/>\n    float response;    \/\/ \u54cd\u5e94\u5f3a\u5ea6&#xff08;\u7a33\u5b9a\u6027&#xff09;<br \/>\n    int octave;        \/\/ \u91d1\u5b57\u5854\u5c42\u6570<br \/>\n    int class_id;      \/\/ \u5206\u7c7bID&#xff08;\u9ed8\u8ba4-1&#xff09;<br \/>\n};<\/p>\n<p>&#xff08;3&#xff09;cv::Point2f<\/p>\n<p>\u4fdd\u5b58\u4e8c\u7ef4\u6d6e\u70b9\u5750\u6807&#xff0c;KeyPoint\u4fdd\u5b58\u5b8c\u6574\u7684\u7279\u5f81\u4fe1\u606f&#xff0c;\u4f46\u51e0\u4f55\u53d8\u6362\u53ea\u9700\u8981\u5750\u6807&#xff0c;\u56e0\u6b64\u7528\u6765\u63d0\u53d6\u5339\u914d\u70b9<\/p>\n<p>struct Point2f<br \/>\n{<br \/>\n    float x;           \/\/ X\u5750\u6807<br \/>\n    float y;           \/\/ Y\u5750\u6807<br \/>\n};<\/p>\n<p>&#xff08;4&#xff09;cv::Match<\/p>\n<p>\u4fdd\u5b58\u4e24\u4e2a\u63cf\u8ff0\u5b50\u7684\u5339\u914d\u5173\u7cfb<\/p>\n<p>class DMatch<br \/>\n{<br \/>\npublic:<br \/>\n    int queryIdx;      \/\/ \u56fe1\u7684\u7279\u5f81\u70b9\u7d22\u5f15<br \/>\n    int trainIdx;      \/\/ \u56fe2\u7684\u7279\u5f81\u70b9\u7d22\u5f15<br \/>\n    int imgIdx;        \/\/ \u56fe\u50cf\u7d22\u5f15&#xff08;\u4e00\u822c&#061;0&#xff09;<br \/>\n    float distance;    \/\/ \u63cf\u8ff0\u5b50\u8ddd\u79bb&#xff08;\u8d8a\u5c0f\u5339\u914d\u8d8a\u597d&#xff09;<br \/>\n};<\/p>\n<p>&#xff08;5&#xff09;\u5b8c\u6574\u6d41\u7a0b\u4e2d\u7684\u6570\u636e\u6d41<\/p>\n<p>Mat img1,img2 \u2192 vector&lt;KeyPoint&gt; \u2192 Mat descriptors \u2192 vector&lt;DMatch&gt; \u2192 vector&lt;Point2f&gt; \u2192 Mat H \u2192 warpPerspective \u2192 Mat registered<\/p>\n<h3>3. \u51e0\u4f55\u53d8\u6362\u6a21\u578b<\/h3>\n<p>\u51e0\u4f55\u53d8\u6362\u6a21\u578b&#xff0c;\u7528\u6765\u63cf\u8ff0\u4e24\u5f20\u56fe\u50cf\u4e4b\u95f4\u50cf\u7d20\u4f4d\u7f6e\u7684\u6620\u5c04\u5173\u7cfb&#xff0c;\u5efa\u7acb\u4ece\u6e90\u56fe\u50cf \u2192 \u76ee\u6807\u56fe\u50cf\u7684\u7a7a\u95f4\u53d8\u6362\u89c4\u5219&#xff0c;\u5b9e\u73b0\u6574\u5e45\u56fe\u50cf\u5bf9\u9f50\u3001\u914d\u51c6\u3001\u77eb\u6b63\u3002<\/p>\n<p>\u76f8\u5173\u6982\u5ff5&#xff1a;<\/p>\n<p>\u81ea\u7531\u5ea6 DoF&#xff1a;\u552f\u4e00\u786e\u5b9a\u4e00\u79cd\u53d8\u6362&#xff0c;\u6700\u5c11\u9700\u8981\u591a\u5c11\u4e2a\u72ec\u7acb\u672a\u77e5\u53c2\u6570\u3002\u53c2\u6570\u8d8a\u591a \u2192 \u80fd\u63cf\u8ff0\u7684\u5f62\u53d8\u8d8a\u590d\u6742 \u2192 \u6a21\u578b\u8868\u8fbe\u80fd\u529b\u8d8a\u5f3a\u3002<\/p>\n<h4>3.1 Rigid<\/h4>\n<p>\u521a\u4f53\u53d8\u6362&#xff0c;\u652f\u6301\u5e73\u79fb\u548c\u65cb\u8f6c\u3002<\/p>\n<p>3 \u81ea\u7531\u5ea6&#xff1a;2D \u5e73\u9762&#xff0c;x \u5e73\u79fb\u3001y \u5e73\u79fb\u3001\u65cb\u8f6c\u89d2\u5ea6 \u2192 3 \u4e2a\u53c2\u6570\u3002\u957f\u5ea6\u4e0d\u53d8\u3001\u89d2\u5ea6\u4e0d\u53d8\u3001\u5f62\u72b6\u5b8c\u5168\u4e0d\u53d8&#xff0c;\u80fd\u53d8\u7684\u4e1c\u897f\u6700\u5c11&#xff0c;\u6240\u4ee5\u81ea\u7531\u5ea6\u6700\u4f4e\u3002<\/p>\n<p>\u6570\u5b66\u5f62\u5f0f&#xff1a;x\u2032&#061;Rx&#043;t&#xff0c;\u5176\u4e2d&#xff0c;R\u4e3a\u65cb\u8f6c\u77e9\u9635&#xff0c;t\u4e3a\u5e73\u79fb\u5411\u91cf\u3002<\/p>\n<p>\u7279\u70b9&#xff1a;\u4fdd\u6301\u8ddd\u79bb\u3001\u89d2\u5ea6\u3001\u5f62\u72b6\u4e0d\u53d8\u3002<\/p>\n<p>\u521a\u4f53\u53d8\u6362\u77e9\u9635\u662f2*3\u77e9\u9635&#xff0c;\u53ea\u80fd\u8868\u793a\u65cb\u8f6c&#043;\u5e73\u79fb&#xff0c;\u4e13\u95e8\u7ed9\u521a\u4f53\u53d8\u6362\/\u4eff\u5c04\u53d8\u6362\u4f7f\u7528\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"146\" src=\"2026-08-16pwvoxhxmfj2.png\" width=\"424\" \/><\/p>\n<p>\/\/ \u521a\u4f53\u53d8\u6362&#xff08;Rigid Transform&#xff09;<br \/>\n\/\/ \u4ec5&#xff1a;\u65cb\u8f6c &#043; \u5e73\u79fb&#xff0c;\u4e0d\u5141\u8bb8\u7f29\u653e<\/p>\n<p>\/\/ \u8ba1\u7b97\u521a\u4f53\u53d8\u6362\u77e9\u9635&#xff08;2\u00d73&#xff09;<br \/>\ncv::Mat rigidMat &#061; cv::estimateAffinePartial2D(<br \/>\n    pts1,                  \/\/ \u6e90\u70b9<br \/>\n    pts2,                  \/\/ \u76ee\u6807\u70b9<br \/>\n    mask,                  \/\/ RANSAC \u5185\u70b9 mask<br \/>\n    cv::RANSAC,            \/\/ \u9c81\u68d2\u4f30\u8ba1<br \/>\n    3.0                    \/\/ ransacReprojThreshold&#xff08;\u91cd\u6295\u5f71\u8bef\u5dee\u9608\u503c&#xff09;<br \/>\n);<\/p>\n<p>\/\/ \u5bf9\u56fe\u50cf\u5e94\u7528\u521a\u4f53\u53d8\u6362<br \/>\ncv::Mat alignedRigid;<br \/>\ncv::warpAffine(img1, alignedRigid, rigidMat, img2.size());<\/p>\n<h4>3.2 Similarity<\/h4>\n<p>\u76f8\u4f3c\u53d8\u6362&#xff0c;\u652f\u6301\u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u7b49\u6bd4\u4f8b\u7f29\u653e\u3002\u521a\u4f53 &#043; \u7b49\u6bd4\u4f8b\u7f29\u653e&#xff0c;\u5f62\u72b6\u4e0d\u53d8\u3001\u5927\u5c0f\u53ef\u6539\u3002<\/p>\n<p>4 \u81ea\u7531\u5ea6&#xff1a;x \u5e73\u79fb\u3001y \u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u7f29\u653e\u7cfb\u6570 \u2192 4 \u4e2a\u53c2\u6570\u3002<\/p>\n<p>\u6570\u5b66\u5f62\u5f0f&#xff1a;x\u2032 &#061; s\u00b7R\u00b7x &#043; t&#xff0c;\u5176\u4e2d&#xff0c;s&#xff1a;\u7f29\u653e\u56e0\u5b50&#xff08;\u7b49\u6bd4\u4f8b&#xff09;&#xff0c;R&#xff1a;\u65cb\u8f6c\u77e9\u9635&#xff0c;t&#xff1a;\u5e73\u79fb\u5411\u91cf\u3002<\/p>\n<p>\u7279\u70b9&#xff1a;\u4fdd\u6301\u7269\u4f53\u5185\u90e8\u89d2\u5ea6\u3001\u5f62\u72b6\u3001\u957f\u5bbd\u6bd4\u4f8b\u4e0d\u53d8&#xff1b;\u4ec5\u6539\u53d8\u6574\u4f53\u4f4d\u7f6e\u3001\u6574\u4f53\u5c3a\u5bf8\u5927\u5c0f\u3001\u6574\u4f53\u65cb\u8f6c\u671d\u5411\u3002<\/p>\n<p>\u76f8\u4f3c\u53d8\u6362\u77e9\u9635\u662f 2\u00d73 \u77e9\u9635&#xff0c;\u8868\u793a&#xff1a;\u65cb\u8f6c &#043; \u5e73\u79fb &#043; \u7edf\u4e00\u7f29\u653e\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"161\" src=\"2026-08-16vxoyycbnow0.png\" width=\"484\" \/><\/p>\n<p>\/\/  \u76f8\u4f3c\u53d8\u6362&#xff08;Similarity Transform&#xff09;<br \/>\n\/\/ \u65cb\u8f6c &#043; \u5e73\u79fb &#043; \u7b49\u6bd4\u4f8b\u7f29\u653e&#xff0c;\u4e0d\u5141\u8bb8\u9519\u5207<br \/>\n\/\/ OpenCV \u6ca1\u6709\u4e13\u95e8\u201c\u76f8\u4f3c\u53d8\u6362\u201d\u51fd\u6570<br \/>\n\/\/ \u5b9e\u9645\u5de5\u7a0b\u91cc\u901a\u5e38\u4ecd\u7528 estimateAffinePartial2D<\/p>\n<p>\/\/ \u8ba1\u7b97\u76f8\u4f3c\u53d8\u6362\u77e9\u9635&#xff08;2\u00d73&#xff09;<br \/>\ncv::Mat simMat &#061; cv::estimateAffinePartial2D(pts1, pts2, mask, cv::RANSAC, 3.0);<\/p>\n<p>\/\/ \u5bf9\u56fe\u50cf\u5e94\u7528\u76f8\u4f3c\u53d8\u6362<br \/>\ncv::Mat alignedSim;<br \/>\ncv::warpAffine(img1, alignedSim, simMat, img2.size());<\/p>\n<h4>3.3 Affine<\/h4>\n<p>\u4eff\u5c04\u53d8\u6362&#xff0c;\u652f\u6301\u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u62c9\u4f38\u3001\u503e\u659c\u3001\u4e0d\u7b49\u6bd4\u4f8b\u7f29\u653e\u3002\u4e0d\u518d\u4fdd\u5f62\u72b6\u3001\u4e0d\u4fdd\u89d2\u5ea6&#xff0c;\u53ea\u4fdd\u7559\u5e73\u884c\u7ebf\u6c38\u8fdc\u5e73\u884c<\/p>\n<p>6 \u81ea\u7531\u5ea6&#xff1a;2D \u4eff\u5c04\u77e9\u9635 6 \u4e2a\u72ec\u7acb\u5143\u7d20 \u2192 6 \u4e2a\u53c2\u6570<\/p>\n<p>\u6570\u5b66\u5f62\u5f0f&#xff1a;x\u2032 &#061; A\u00b7x &#043; t&#xff0c;\u5176\u4e2d&#xff1a;A&#xff1a;2\u00d72 \u4eff\u5c04\u77e9\u9635&#xff08;\u5305\u542b\u65cb\u8f6c\u3001\u7f29\u653e\u3001\u9519\u5207&#xff09;t&#xff1a;\u5e73\u79fb\u5411\u91cf\u3002<\/p>\n<p>\u7279\u70b9&#xff1a;\u4fdd\u6301\u5e73\u884c\u6027\u3001\u4fdd\u6301\u76f4\u7ebf\u6027&#xff0c;\u4e0d\u4fdd\u6301\u8ddd\u79bb\u3001\u4e0d\u4fdd\u6301\u89d2\u5ea6\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"160\" src=\"2026-08-16jibuhnhdbhy.png\" width=\"497\" \/><\/p>\n<p>\/\/ 3. \u4eff\u5c04\u53d8\u6362&#xff08;Affine Transform&#xff09;<br \/>\n\/\/ \u65cb\u8f6c &#043; \u5e73\u79fb &#043; \u7f29\u653e &#043; \u9519\u5207<br \/>\n\/\/ \u4f7f\u7528&#xff1a;estimateAffine2D<\/p>\n<p>\/\/ \u8ba1\u7b97\u4eff\u5c04\u53d8\u6362\u77e9\u9635&#xff08;2\u00d73&#xff09;<br \/>\ncv::Mat affineMat &#061; cv::estimateAffine2D(pts1, pts2, mask, cv::RANSAC, 3.0);<\/p>\n<p>\/\/ \u5bf9\u56fe\u50cf\u5e94\u7528\u4eff\u5c04\u53d8\u6362<br \/>\ncv::Mat alignedAffine;<br \/>\ncv::warpAffine(img1, alignedAffine, affineMat, img2.size());<\/p>\n<h4>3.4 Homography<\/h4>\n<p>\u5355\u5e94\u6027\u53d8\u6362&#xff0c;\u652f\u6301\u5e73\u79fb\u3001\u65cb\u8f6c\u3001\u7f29\u653e\u3001\u9519\u5207\u3001\u900f\u89c6\u7578\u53d8\u3002\u6700\u5927\u7684\u7279\u70b9\u662f\u652f\u6301\u900f\u89c6\u53d8\u5316&#xff0c;\u5982\u659c\u62cd\u3001\u8fd1\u5927\u8fdc\u5c0f\u3001\u89c6\u89d2\u53d8\u5316\u3002<\/p>\n<p>8 \u81ea\u7531\u5ea6&#xff1a;3\u00d73 \u5355\u5e94\u77e9\u9635&#xff0c;\u5c3a\u5ea6\u5197\u4f59\u540e\u6709\u6548\u72ec\u7acb\u53c2\u6570 8 \u4e2a<\/p>\n<p>\u6570\u5b66\u5f62\u5f0f&#xff1a;\u9f50\u6b21\u5750\u6807\u4e0b<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"77\" src=\"2026-08-163fjcgn3nma3.png\" width=\"152\" \/><\/p>\n<p>\u7279\u70b9&#xff1a;\u4ec5\u4fdd\u6301\u76f4\u7ebf\u6027&#xff08;\u76f4\u7ebf\u53d8\u6362\u540e\u4ecd\u662f\u76f4\u7ebf&#xff09;&#xff1b;\u4e0d\u4fdd\u6301\u5e73\u884c\u3001\u4e0d\u4fdd\u6301\u89d2\u5ea6\u3001\u4e0d\u4fdd\u6301\u6bd4\u4f8b\u3001\u4e0d\u4fdd\u6301\u8ddd\u79bb&#xff1b;\u53ef\u5904\u7406\u8fd1\u5927\u8fdc\u5c0f\u900f\u89c6\u5f62\u53d8\u3002<\/p>\n<p>\u6210\u7acb\u6761\u4ef6&#xff1a;\u5fc5\u987b\u6ee1\u8db3\u573a\u666f\u8fd1\u4f3c\u5e73\u9762\u6216\u76f8\u673a\u7eaf\u65cb\u8f6c&#xff0c;\u573a\u666f\u6240\u6709\u70b9&#xff0c;\u6df1\u5ea6\u5fc5\u987b\u4e00\u6837\u3002<\/p>\n<p>\u89c6\u5dee Parallax&#xff1a;\u7269\u4f53\u79bb\u76f8\u673a\u8fdc\u8fd1\u4e0d\u540c&#xff08;\u6df1\u5ea6\u4e0d\u540c&#xff09;&#xff0c;\u76f8\u673a\u4e00\u52a8&#xff0c;\u50cf\u7d20\u4f4d\u79fb\u91cf\u4e0d\u4e00\u6837\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u975e\u5e73\u9762&#xff0c;Homography \u5fc5\u8d25&#xff1a;Homography \u7684\u6570\u5b66\u5047\u8bbe\u662f\u6574\u5f20\u56fe\u6240\u6709\u50cf\u7d20\u70b9&#xff0c;\u670d\u4ece\u540c\u4e00\u4e2a 3\u00d73 \u6295\u5f71\u6620\u5c04\u89c4\u5219\u3002\u9690\u542b\u6761\u4ef6&#xff1a;\u6240\u6709\u70b9\u6df1\u5ea6\u76f8\u540c&#xff0c;\u8fd0\u52a8\u89c4\u5f8b\u5b8c\u5168\u4e00\u81f4\u3002\u4e00\u65e6\u573a\u666f\u4e0d\u662f\u5e73\u9762&#xff0c;\u6709\u8fd1\u70b9\u3001\u6709\u8fdc\u70b9 \u2192 \u4e0d\u540c\u6df1\u5ea6\u4ea7\u751f\u4e0d\u540c\u89c6\u5dee\u6bcf\u4e2a\u70b9\u7684\u50cf\u7d20\u8fd0\u52a8\u89c4\u5f8b\u4e0d\u4e00\u6837\u3002<\/p>\n<p>\u4e24\u79cd Homography \u80fd\u6b63\u5e38\u5de5\u4f5c\u7684\u60c5\u51b5&#xff1a;<\/p>\n<p>1.\u573a\u666f\u4e25\u683c\u5171\u5e73\u9762&#xff0c;\u5899\u9762\u3001\u5730\u9762\u3001\u4e66\u672c\u3001\u68cb\u76d8\u683c\u6240\u6709\u70b9\u6df1\u5ea6\u51e0\u4e4e\u4e00\u81f4 \u2192 \u6ca1\u6709\u89c6\u5dee\u5dee\u5f02\u6240\u6709\u70b9\u50cf\u7d20\u8fd0\u52a8\u7edf\u4e00 \u2192 H \u5b8c\u7f8e\u6210\u7acb\u3002<\/p>\n<p>2.\u76f8\u673a\u53ea\u6709\u65cb\u8f6c\u3001\u6ca1\u6709\u5e73\u79fb&#xff0c;\u76f8\u673a\u539f\u5730\u8f6c\u5708&#xff0c;\u4e0d\u5f80\u524d\u8d70\u3001\u4e0d\u5de6\u53f3\u79fb&#xff0c;\u6ca1\u6709\u5e73\u79fb\u5c31\u6ca1\u6709\u89c6\u5dee&#xff0c;\u8fdc\u8fd1\u70b9\u770b\u4e0d\u51fa\u524d\u540e\u4f4d\u79fb&#xff0c;\u6574\u5e45\u56fe\u50cf\u53d8\u5316\u7b49\u6548\u4e8e\u7eaf\u6295\u5f71\u53d8\u5f62 \u2192 H \u4e5f\u80fd\u6210\u7acb\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"163\" src=\"2026-08-16ywifsgdbr3i.png\" width=\"483\" \/><\/p>\n<p>[ h11 \u00a0h12 \u00a0h13 ] \u00a0 \/\/ \u7ebf\u6027\u53d8\u6362 &#043; \u6c34\u5e73\u5e73\u79fb<br \/>\n[ h21 \u00a0h22 \u00a0h23 ] \u00a0 \/\/ \u7ebf\u6027\u53d8\u6362 &#043; \u5782\u76f4\u5e73\u79fb<br \/>\n[ h31 \u00a0h32 \u00a0h33 ] \u00a0 \/\/ \u900f\u89c6\u53d8\u6362\u5206\u91cf<\/p>\n<p>H &#xff08;\u5355\u5e94\u6027\u77e9\u9635&#xff09;\u5171 9 \u4e2a\u5143\u7d20&#xff0c;\u5c3a\u5ea6\u56fa\u5b9a\u5269 8 \u4e2a\u672a\u77e5\u91cf&#xff1b;\u4e00\u5bf9\u70b9\u7ed9 2 \u4e2a\u65b9\u7a0b&#xff0c;8\/2&#061;4&#xff0c;\u6240\u4ee5\u53ea\u8981 4 \u5bf9\u70b9\u3002<\/p>\n<p>\u9002\u7528\u573a\u666f&#xff1a;1.\u573a\u666f\u7269\u4f53\u5728\u73b0\u5b9e\u4e2d\u662f\u4e25\u683c\u5e73\u9762\u30022.\u76f8\u673a\u7eaf\u7ed5\u5149\u5fc3\u65cb\u8f6c&#xff08;\u539f\u5730\u8f6c\u5708\u3001\u4fef\u4ef0\u3001\u5de6\u53f3\u8f6c\u5934&#xff09;\u3001\u65e0\u5e73\u79fb\u76f8\u673a\u3002<\/p>\n<p>\u666e\u901a\u56fe\u50cf\u53d8\u6362&#xff08;\u521a\u4f53 \/ \u76f8\u4f3c \/ \u4eff\u5c04&#xff09;\u53ea\u662f\u50cf\u7d20\u5c42\u9762\u7684\u51e0\u4f55\u5f62\u53d8&#xff0c;\u7eaf 2D \u56fe\u50cf\u5185\u90e8\u62c9\u626f\u3001\u65cb\u8f6c\u3001\u7f29\u653e&#xff0c;\u548c\u771f\u5b9e\u4e09\u7ef4\u7a7a\u95f4\u65e0\u5173\u3002<\/p>\n<p>Homography \u5355\u5e94\u6027\u524d\u63d0\u5fc5\u987b\u6709&#xff1a;\u771f\u5b9e\u7269\u7406\u5e73\u9762\u3002\u662f3D \u5e73\u9762 \u2192 \u4e24\u4e2a 2D \u50cf\u7d20\u5e73\u9762 \u4e4b\u95f4\u7684\u6295\u5f71\u51e0\u4f55\u7ea6\u675f&#xff0c;\u5355\u5e94\u662f\u540c\u4e00\u4e2a\u7a7a\u95f4\u5e73\u9762&#xff0c;\u6362\u4e2a\u76f8\u673a\u770b\u7684\u6295\u5f71\u5173\u7cfb\u3002<\/p>\n<p>cv::Mat cv::findHomography(<br \/>\n\u00a0 \u00a0 InputArray \u00a0 \u00a0srcPoints, \u00a0 \u00a0 \/\/ \u6e90\u56fe\u50cf\u7279\u5f81\u70b9\u96c6 pts1<br \/>\n\u00a0 \u00a0 InputArray \u00a0 \u00a0dstPoints, \u00a0 \u00a0 \/\/ \u76ee\u6807\u56fe\u50cf\u7279\u5f81\u70b9\u96c6 pts2<br \/>\n\u00a0 \u00a0 OutputArray \u00a0 mask, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ \u8f93\u51fa\u5185\u70b9\u63a9\u7801 mask<br \/>\n\u00a0 \u00a0 int \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 method, \u00a0 \u00a0 \u00a0 \u00a0 \/\/ \u9c81\u68d2\u4f30\u8ba1\u65b9\u6cd5&#xff0c;\u5e38\u7528 cv::RANSAC<br \/>\n\u00a0 \u00a0 double \u00a0 \u00a0 \u00a0 \u00a0ransacReprojThreshold, \/\/ RANSAC\u91cd\u6295\u5f71\u8bef\u5dee\u9608\u503c&#xff08;\u50cf\u7d20&#xff09;<br \/>\n\u00a0 \u00a0 int \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 maxIters &#061; 2000, \u00a0 \u00a0 \u00a0 \/\/ RANSAC\u6700\u5927\u8fed\u4ee3\u6b21\u6570&#xff0c;\u9ed8\u8ba42000<br \/>\n\u00a0 \u00a0 double \u00a0 \u00a0 \u00a0 \u00a0confidence &#061; 0.99, \u00a0 \u00a0 \/\/ RANSAC\u7f6e\u4fe1\u5ea6&#xff0c;\u9ed8\u8ba40.99<br \/>\n\u00a0 \u00a0 int \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 refineIters &#061; 5 \u00a0 \u00a0 \u00a0 \/\/ \u6700\u7ec8\u4f18\u5316\u8fed\u4ee3\u6b21\u6570&#xff0c;\u9ed8\u8ba45<br \/>\n);\u00a0<br \/>\n\/\/ \u529f\u80fd&#xff1a;\u8ba1\u7b97\u5305\u542b\u900f\u89c6\u7684 3\u00d73 \u5355\u5e94\u53d8\u6362\u77e9\u9635<br \/>\n\/\/ \u8f93\u51fa&#xff1a;Mat \u7c7b\u578b&#xff0c;\u5927\u5c0f 3\u00d73<\/p>\n<p>void perspectiveTransform(<br \/>\n    InputArray   src,   \/\/ \u8f93\u5165&#xff1a;\u539f\u59cb\u70b9\u96c6 (2D\u70b9 \u6216 3D\u70b9)<br \/>\n    OutputArray  dst,   \/\/ \u8f93\u51fa&#xff1a;\u53d8\u6362\u540e\u7684\u70b9\u96c6<br \/>\n    InputArray   M      \/\/ 3\u00d73 \u5355\u5e94\u77e9\u9635 H \u6216 \u6295\u5f71\u77e9\u9635<br \/>\n);<br \/>\n\/\/\u7528\u5355\u5e94\u77e9\u9635 H \u628a\u56fe 1 \u7684\u70b9\u6620\u5c04\u5230\u56fe 2<\/p>\n<p>\/\/ \u5e94\u7528\u5355\u5e94\u900f\u89c6\u53d8\u6362<br \/>\nvoid cv::warpPerspective(<br \/>\n\u00a0 \u00a0 InputArray \u00a0 \u00a0src, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ \u8f93\u5165\u539f\u59cb\u56fe\u50cf img1<br \/>\n\u00a0 \u00a0 OutputArray \u00a0 dst, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ \u8f93\u51fa\u914d\u51c6\u540e\u56fe\u50cf<br \/>\n\u00a0 \u00a0 InputArray \u00a0 \u00a0M, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ 3\u00d73 \u5355\u5e94\u53d8\u6362\u77e9\u9635 H<br \/>\n\u00a0 \u00a0 Size \u00a0 \u00a0 \u00a0 \u00a0 \u00a0dsize, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ \u8f93\u51fa\u56fe\u50cf\u5c3a\u5bf8&#xff0c;\u4e00\u822c\u7528 img2.size()<br \/>\n\u00a0 \u00a0 int \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 flags &#061; INTER_LINEAR, \u00a0 \u00a0\/\/ \u63d2\u503c\u65b9\u5f0f&#xff0c;\u9ed8\u8ba4\u7ebf\u6027\u63d2\u503c<br \/>\n\u00a0 \u00a0 int \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 borderMode &#061; BORDER_CONSTANT, \/\/ \u8fb9\u754c\u586b\u5145\u6a21\u5f0f<br \/>\n\u00a0 \u00a0 const Scalar&amp; borderValue &#061; Scalar() \u00a0 \u00a0\/\/ \u8fb9\u754c\u586b\u5145\u989c\u8272&#xff0c;\u9ed8\u8ba4\u9ed1\u8272<br \/>\n);<\/p>\n<p>\/\/ \u6c42\u5355\u5e94\u53d8\u6362\u77e9\u9635&#xff08;\u542b\u900f\u89c6\u7578\u53d8&#xff0c;3\u00d73&#xff09;<br \/>\ncv::Mat H &#061; cv::findHomography(pts1, pts2, cv::RANSAC);<\/p>\n<p>\/\/ \u628a pts1 \u7528 H \u53d8\u6362\u5230\u76ee\u6807\u4f4d\u7f6e<br \/>\nstd::vector&lt;cv::Point2f&gt; pts1_proj;<br \/>\ncv::perspectiveTransform(pts1, pts1_proj, H);<\/p>\n<p>\/\/ \u5bf9\u56fe\u50cf \u505a\u5355\u5e94\u53d8\u6362 (warpPerspective)<br \/>\ncv::Mat alignedImg;<br \/>\ncv::warpPerspective(img1, alignedImg, H, img2.size());<\/p>\n<h4>3.5 \u975e\u521a\u6027\u53d8\u6362&#xff08;Non-rigidTransformation&#xff09;<\/h4>\n<p>\u4e0d\u6ee1\u8db3\u6574\u4f53\u7edf\u4e00\u51e0\u4f55\u6a21\u578b&#xff0c;\u5c40\u90e8\u53ef\u4ee5\u5404\u81ea\u5f62\u53d8\u3001\u62c9\u4f38\u3001\u626d\u66f2&#xff1b;\u6ca1\u6709\u5168\u5c40\u56fa\u5b9a\u7684 2\u00d73 \/ 3\u00d73 \u7edf\u4e00\u77e9\u9635&#xff0c;\u6bcf\u4e00\u5757\u533a\u57df\u5f62\u53d8\u90fd\u53ef\u4ee5\u4e0d\u4e00\u6837\u3002<\/p>\n<p>\u6570\u5b66\u7279\u70b9&#xff1a;\u65e0\u7edf\u4e00\u5168\u5c40\u516c\u5f0f x \u2032 &#061;Mx&#xff1b;<\/p>\n<p>\u7279\u70b9&#xff1a;\u4e0d\u4fdd\u6301\u8ddd\u79bb\u3001\u4e0d\u4fdd\u6301\u89d2\u5ea6\u3001\u4e0d\u4fdd\u6301\u5e73\u884c\u3001\u4e0d\u4fdd\u6301\u76f4\u7ebf&#xff0c;\u65e0\u7edf\u4e00\u5168\u5c40\u53d8\u6362\u77e9\u9635&#xff0c;\u5141\u8bb8\u5c40\u90e8\u975e\u5747\u5300\u5f62\u53d8.<\/p>\n<p>\u662f\u9010\u70b9 \/ \u5c40\u90e8\u6620\u5c04\u5173\u7cfb&#xff0c;\u6bcf\u4e2a\u50cf\u7d20\u7684\u504f\u79fb\u91cf\u53ef\u4ee5\u72ec\u7acb\u53d8\u5316\u3002<\/p>\n<p>\u652f\u6301\u5f62\u53d8&#xff1a;\u5f2f\u66f2\u3001\u626d\u66f2\u3001\u5c40\u90e8\u62c9\u4f38\u3001\u5f39\u6027\u5f62\u53d8\u3001\u4eba\u8138\u5f62\u53d8\u3001\u533b\u5b66\u56fe\u50cf\u5f62\u53d8\u3001\u5730\u8868\u5f62\u53d8\u7b49\u3002<\/p>\n<p>\u9002\u5408&#xff1a;\u533b\u5b66\u5f71\u50cf\u914d\u51c6\u3001\u4eba\u8138\u5bf9\u9f50\u3001\u66f2\u9762\u7269\u4f53\u914d\u51c6\u3001\u5f62\u53d8\u62fc\u63a5\u3002<\/p>\n<p>\u975e\u521a\u6027\u6ca1\u6709\u4e00\u4e2a\u56fa\u5b9a\u77e9\u9635\u6c42\u89e3\u51fd\u6570&#xff0c;\u5e38\u7528\u65b9\u6848&#xff1a;<\/p>\n<li>\u8584\u677f\u6837\u6761\u63d2\u503c TPS&#xff08;\u6700\u7ecf\u5178\u975e\u521a\u6027\u914d\u51c6&#xff09;<\/li>\n<li>\u57fa\u4e8e\u7a20\u5bc6\u5149\u6d41&#xff08;Optical Flow&#xff09;<\/li>\n<li>\u57fa\u4e8e\u66f2\u9762\u5f62\u53d8&#xff08;B-Spline&#xff09;<\/li>\n<p>\u548c\u524d\u9762\u56db\u7c7b\u7684\u6838\u5fc3\u533a\u522b&#xff1a;<\/p>\n<p>\u524d\u9762\u56db\u79cd&#xff1a;\u521a\u6027\u7c7b\u53d8\u6362&#xff08;\u521a\u4f53\u3001\u76f8\u4f3c\u3001\u4eff\u5c04\u3001\u5355\u5e94&#xff09;&#xff0c;\u5168\u5c40\u540c\u4e00\u4e2a\u77e9\u9635&#xff0c;\u6574\u5f20\u56fe\u50cf\u4e00\u5957\u53d8\u6362\u89c4\u5219&#xff0c;\u53ea\u80fd\u6574\u4f53\u65cb\u8f6c \/ \u5e73\u79fb \/ \u7f29\u653e \/ \u900f\u89c6&#xff1b;<\/p>\n<p>\u975e\u521a\u6027\u53d8\u6362&#xff1a;\u65e0\u5168\u5c40\u7edf\u4e00\u77e9\u9635&#xff0c;\u5c40\u90e8\u53ef\u4ee5\u5f2f\u3001\u53ef\u4ee5\u626d\u3001\u53ef\u4ee5\u5355\u72ec\u62c9\u4f38&#xff0c;\u81ea\u7531\u5ea6\u6781\u9ad8&#xff0c;\u9002\u914d\u4e0d\u89c4\u5219\u5f62\u53d8\u3002<\/p>\n<h2>\u4e8c\u3001\u57fa\u4e8e\u7070\u5ea6\u7684\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5<\/h2>\n<p>\u57fa\u4e8e\u7070\u5ea6\u7684\u914d\u51c6\u65b9\u6cd5&#xff0c;\u4e5f\u53eb\u76f4\u63a5\u6cd5&#xff08;Direct Methods&#xff09;\/\u57fa\u4e8e\u50cf\u7d20\u7684\u65b9\u6cd5&#xff08;Pixel-based Methods&#xff09;\/\u57fa\u4e8e\u5f3a\u5ea6\u7684\u914d\u51c6&#xff08;Intensity-based Registration&#xff09;&#xff0c;\u5728OpenCV\u53ca\u76f8\u5173\u6587\u732e\u4e2d&#xff0c;\u6709\u65f6\u4e5f\u5f52\u7c7b\u4e3a \u57fa\u4e8e\u533a\u57df\u7684\u914d\u51c6&#xff08;Area-based Registration&#xff09;&#xff0c;\u4ee5\u533a\u522b\u4e8e\u57fa\u4e8e\u7279\u5f81\u7684\u914d\u51c6\u3002<\/p>\n<p>\u7279\u5f81\u6cd5\u7684\u95ee\u9898&#xff1a;\u5982\u679c\u9047\u5230\u6ca1\u6709\u7a33\u5b9a\u7279\u5f81\u70b9\u7684\u573a\u666f&#xff0c;\u5982\u767d\u5899\u3001\u5730\u9762\u3001\u5929\u7a7a\u3001\u6a21\u7cca\u3001\u5f31\u7eb9\u7406&#xff0c;\u53ef\u80fd\u6839\u672c\u6ca1\u6709\u7a33\u5b9a\u7279\u5f81\u70b9&#xff0c;\u4e8e\u662fdetect\u4e0d\u5230\u70b9&#xff0c;\u540e\u9762\u5168\u6302\u3002\u56e0\u6b64\u51fa\u73b0 Direct Methods\u3002<\/p>\n<p>\u76f4\u63a5\u6cd5\u7684\u6838\u5fc3\u601d\u60f3&#xff1a;\u4e0d\u4f9d\u8d56\u7279\u5f81\u70b9\u3001\u63cf\u8ff0\u5b50\u3001\u5339\u914d&#xff0c;\u800c\u662f\u76f4\u63a5\u9009\u4e00\u6279\u50cf\u7d20&#xff0c;\u4f18\u5316\u76f8\u673a\u4f4d\u59ff\u8ba9\u8fd9\u4e9b\u50cf\u7d20\u7684\u7070\u5ea6\u8bef\u5dee\u6700\u5c0f&#xff0c;\u6700\u5c0f\u5316\u4e24\u5f20\u56fe\u50cf\u7684\u7070\u5ea6\u8bef\u5dee&#xff08;Photometric Error&#xff09;&#xff0c;\u5bfb\u627e\u6700\u4f18 Warp&#xff08;\u53d8\u6362&#xff09;&#xff0c;\u4f7f warp \u540e\u7684\u56fe\u50cf\u7070\u5ea6\u5c3d\u53ef\u80fd\u4e00\u81f4&#xff0c;\u672c\u8d28\u662f Photometric Optimization&#xff08;\u5149\u5ea6\u4f18\u5316&#xff09;\u3002<\/p>\n<p>\u5148\u9884\u4f30\u4e24\u56fe\u4e4b\u95f4\u7c97\u7565\u7684\u65cb\u8f6c\u4e0e\u5e73\u79fb\u53d8\u6362\u5173\u7cfb&#xff0c;\u9009\u53d6\u56fe\u50cf\u4e2d\u9ad8\u68af\u5ea6\u50cf\u7d20&#xff0c;\u4f9d\u636e\u5f53\u524d\u9884\u4f30\u5173\u7cfb\u628a\u7b2c\u4e00\u5f20\u56fe\u50cf\u7d20\u6620\u5c04\u5230\u7b2c\u4e8c\u5f20\u56fe\u5bf9\u5e94\u4f4d\u7f6e&#xff0c;\u8ba1\u7b97\u91cd\u5408\u4f4d\u7f6e\u7684\u50cf\u7d20\u7070\u5ea6\u5dee\u503c\u3002\u518d\u501f\u52a9\u9ad8\u65af\u725b\u987f\u3001LM \u7b49\u4f18\u5316\u7b97\u6cd5&#xff0c;\u671d\u7740\u7f29\u5c0f\u7070\u5ea6\u8bef\u5dee\u7684\u65b9\u5411\u6301\u7eed\u8c03\u6574\u53d8\u6362\u53c2\u6570&#xff0c;\u4e0d\u65ad\u8fed\u4ee3\u4fee\u6b63&#xff0c;\u76f4\u81f3\u7070\u5ea6\u8bef\u5dee\u8fbe\u5230\u6700\u5c0f&#xff0c;\u6700\u7ec8\u5f97\u5230\u6700\u4f18\u7684\u56fe\u50cf\u53d8\u6362\u5173\u7cfb\u4e0e\u76f8\u673a\u4f4d\u59ff\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9\u4e0e\u9002\u7528\u573a\u666f<\/p>\n<p>\u4f18\u70b9<\/p>\n<li>\n<p>\u76f4\u63a5\u5229\u7528\u50cf\u7d20\u7070\u5ea6\u4fe1\u606f&#xff0c;\u4e0d\u4f9d\u8d56\u7279\u5f81\u70b9&#xff0c;\u5f31\u7eb9\u7406\u751a\u81f3\u65e0\u7eb9\u7406\u533a\u57df\u4e5f\u80fd\u5de5\u4f5c\u3002<\/p>\n<\/li>\n<li>\n<p>\u4e0d\u9700\u8981\u7279\u5f81\u63d0\u53d6\u4e0e\u63cf\u8ff0\u5b50\u5339\u914d&#xff0c;\u907f\u514d\u4e86\u5927\u91cf\u7279\u5f81\u5339\u914d\u5f00\u9500\u3002<\/p>\n<\/li>\n<li>\n<p>\u7eaf\u4f20\u7edf\u4f18\u5316\u65b9\u6cd5&#xff0c;\u65e0\u9700\u8bad\u7ec3\u6a21\u578b\u3002<\/p>\n<\/li>\n<li>\n<p>\u5728\u5c0f\u8fd0\u52a8\u3001\u9ad8\u5e27\u7387\u573a\u666f\u4e0b\u8ba1\u7b97\u6548\u7387\u8f83\u9ad8&#xff0c;\u9002\u5408\u5b9e\u65f6\u7cfb\u7edf\u3002<\/p>\n<\/li>\n<li>\n<p>\u80fd\u5145\u5206\u5229\u7528\u6574\u5e45\u56fe\u50cf\u4fe1\u606f&#xff0c;\u5c40\u90e8\u5bf9\u9f50\u7cbe\u5ea6\u901a\u5e38\u8f83\u9ad8\u3002<\/p>\n<\/li>\n<p>\u7f3a\u70b9<\/p>\n<li>\n<p>\u57fa\u4e8e\u7070\u5ea6\u4e00\u81f4\u6027\u5047\u8bbe&#xff0c;\u5bf9\u5149\u7167\u53d8\u5316\u8f83\u654f\u611f\u3002<\/p>\n<\/li>\n<li>\n<p>\u5bf9\u5927\u5c3a\u5ea6\u53d8\u5316\u3001\u65cb\u8f6c\u53ca\u5f3a\u900f\u89c6\u53d8\u5316\u9002\u5e94\u80fd\u529b\u6709\u9650\u3002<\/p>\n<\/li>\n<li>\n<p>\u672c\u8d28\u5c5e\u4e8e\u5c40\u90e8\u4f18\u5316&#xff0c;\u5bb9\u6613\u9677\u5165\u5c40\u90e8\u6700\u4f18\u3002<\/p>\n<\/li>\n<li>\n<p>\u901a\u5e38\u9700\u8981\u8f83\u597d\u7684\u521d\u59cb\u4f4d\u59ff\u6216\u7c97\u5bf9\u9f50\u7ed3\u679c\u3002<\/p>\n<\/li>\n<li>\n<p>\u5bf9\u52a8\u6001\u7269\u4f53\u3001\u906e\u6321\u548c\u975e\u521a\u6027\u5f62\u53d8\u8f83\u654f\u611f\u3002<\/p>\n<\/li>\n<li>\n<p>\u5728\u4f4e\u68af\u5ea6\u533a\u57df&#xff08;\u7eaf\u8272\u533a\u57df&#xff09;\u4e2d\u7ea6\u675f\u4e0d\u8db3&#xff0c;\u5bb9\u6613\u9000\u5316\u3002<\/p>\n<\/li>\n<p>\u9002\u7528\u573a\u666f<\/p>\n<li>\n<p>\u5f31\u7eb9\u7406\u3001\u4f4e\u7eb9\u7406\u73af\u5883\u3002<\/p>\n<\/li>\n<li>\n<p>\u9ad8\u5e27\u7387\u3001\u5c0f\u4f4d\u79fb\u8fde\u7eed\u8fd0\u52a8\u573a\u666f\u3002<\/p>\n<\/li>\n<li>\n<p>\u5b9e\u65f6\u89c6\u89c9\u91cc\u7a0b\u8ba1&#xff08;VO&#xff09;\u4e0e SLAM\u3002<\/p>\n<\/li>\n<li>\n<p>\u8fb9\u7f18\u4e30\u5bcc\u3001\u7070\u5ea6\u8fde\u7eed\u53d8\u5316\u660e\u663e\u7684\u573a\u666f\u3002<\/p>\n<\/li>\n<li>\n<p>\u89c6\u9891\u7a33\u50cf\u3001\u77ed\u65f6\u5e27\u95f4\u8ddf\u8e2a\u4e0e\u5c40\u90e8\u7cbe\u7ec6\u5bf9\u9f50\u3002<\/p>\n<\/li>\n<li>\n<p>\u533b\u5b66\u56fe\u50cf\u3001\u9065\u611f\u56fe\u50cf\u7b49\u9ad8\u7cbe\u5ea6\u7070\u5ea6\u914d\u51c6\u4efb\u52a1\u3002<\/p>\n<\/li>\n<p>\u4e0d\u9002\u5408\u573a\u666f<\/p>\n<li>\n<p>\u5927\u4f4d\u79fb\u3001\u5927\u89c6\u89d2\u53d8\u5316\u573a\u666f\u3002<\/p>\n<\/li>\n<li>\n<p>\u5f3a\u5149\u7167\u53d8\u5316\u6216\u66dd\u5149\u53d8\u5316\u660e\u663e\u7684\u573a\u666f\u3002<\/p>\n<\/li>\n<li>\n<p>\u52a8\u6001\u76ee\u6807\u8f83\u591a\u7684\u573a\u666f\u3002<\/p>\n<\/li>\n<li>\n<p>\u5927\u9762\u79ef\u7eaf\u8272\u3001\u4f4e\u68af\u5ea6\u533a\u57df\u3002<\/p>\n<\/li>\n<li>\n<p>\u5b58\u5728\u4e25\u91cd\u906e\u6321\u6216\u975e\u521a\u6027\u5f62\u53d8\u7684\u573a\u666f\u3002<\/p>\n<\/li>\n<li>\n<p>\u521d\u59cb\u4f4d\u59ff\u8bef\u5dee\u8f83\u5927\u7684\u573a\u666f\u3002<\/p>\n<\/li>\n<p>&#xff08;2&#xff09;\u6838\u5fc3\u6982\u5ff5<\/p>\n<p>Brightness Constancy&#xff08;\u4eae\u5ea6\u6052\u5b9a\u5047\u8bbe&#xff09;&#xff1a;\u7070\u5ea6\u6cd5\u6700\u6838\u5fc3\u7684\u5047\u8bbe&#xff0c;\u5047\u8bbe\u540c\u4e00\u4e2a\u7269\u7406\u70b9\u5728\u77ed\u65f6\u95f4\u5185\u7070\u5ea6\u8fd1\u4f3c\u4e0d\u53d8&#xff0c;\u5373I(x,y,t) &#061; I(x&#043;dx,y&#043;dy,t&#043;dt)&#xff0c;\u540c\u4e00\u4e2a\u70b9\u867d\u7136\u50cf\u7d20\u4f4d\u7f6e\u53d8\u4e86&#xff0c;\u4f46\u662f\u7070\u5ea6\u503c\u6ca1\u53d8\u3002<\/p>\n<p>Photometric Error&#xff08;\u5149\u5ea6\u8bef\u5dee&#xff09;&#xff1a;E &#061; I1(p) &#8211; I2(p&#039;)&#xff0c;\u7b2c\u4e00\u5f20\u56fe\u50cf\u7d20\u7070\u5ea6\u51cf\u7b2c\u4e8c\u5f20\u56fe\u5bf9\u5e94\u4f4d\u7f6e\u7070\u5ea6&#xff0c;\u76f4\u63a5\u6cd5\u7684\u76ee\u6807\u662f\u6700\u5c0f\u5316\u6240\u6709\u50cf\u7d20\u8bef\u5dee\u3002<\/p>\n<p>Wrap&#xff08;\u56fe\u50cf\u53d8\u6362&#xff09;&#xff1a;\u672c\u8d28\u662f\u51e0\u4f55\u6295\u5f71&#xff0c;\u901a\u8fc7\u76f8\u673a\u6a21\u578b\u3001\u4f4d\u59ff\u53d8\u6362\u3001\u6295\u5f71\u6a21\u578b&#xff0c;\u628a Image1 \u4e2d\u7684\u50cf\u7d20\u6620\u5c04\u5230 Image 2\u30021.\u5c06\u5f53\u524d\u50cf\u7d20\u53cd\u6295\u5f71\u5f97\u5230 3D \u70b9\u30022.\u4f7f\u7528\u76f8\u673a\u4f4d\u59ff\u5bf9 3D \u70b9\u505a\u521a\u4f53\u53d8\u6362\u30023.\u518d\u6295\u5f71\u56de\u5230\u56fe\u50cf\u5e73\u9762\u5f97\u5230\u4e0b\u4e00\u5e27\u50cf\u7d20\u4f4d\u7f6e\u3002\u8fd9\u662f\u73b0\u4ee3\u00a0 Drect VO \/ DSO \/ LSD-SLAM \u6838\u5fc3\u3002<\/p>\n<p>Image Gradient&#xff08;\u56fe\u50cf\u68af\u5ea6&#xff09;&#xff1a;\u76f4\u63a5\u6cd5\u6781\u5ea6\u4f9d\u8d56\u7070\u5ea6\u53d8\u5316&#xff0c;\u56e0\u4e3a\u4f18\u5316\u5fc5\u987b\u77e5\u9053\u5f80\u54ea\u4e2a\u65b9\u5411\u79fb\u52a8\u8bef\u5dee\u4e0b\u964d\u6700\u5feb&#xff0c;\u68af\u5ea6\u672c\u8d28\u662f\u7070\u5ea6\u53d8\u5316\u7387&#xff0c;\u5982\u679c\u533a\u57df\u5b8c\u5168\u5e73\u5766&#xff0c;\u6ca1\u6709\u68af\u5ea6\u5c31\u65e0\u6cd5\u4f18\u5316&#xff0c;\u6240\u4ee5\u76f4\u63a5\u6cd5\u4f9d\u8d56 Gradient&#xff08;\u68af\u5ea6&#xff09; \u800c\u4e0d\u662f corner&#xff08;\u89d2\u70b9&#xff09;\u3002<\/p>\n<p>Optical Flow&#xff08;\u5149\u6d41&#xff09;&#xff1a;\u56fe\u50cf\u4e2d\u50cf\u7d20\u968f\u65f6\u95f4\u8fd0\u52a8\u5f62\u6210\u7684\u8fd0\u52a8\u573a&#xff0c;\u662f\u56fe\u50cf\u5e73\u9762\u4e0a\u7684\u8868\u89c2\u8fd0\u52a8\u3002&#xff1b;\u4f8b\u5982&#xff0c;frame1: pixel(x,y); frame2: pixel(x&#043;u,y&#043;v)&#xff0c;\u5176\u4e2d(u,v)\u5c31\u662f\u5149\u6d41\u3002\u5149\u6d41\u7b97\u6cd5\u5efa\u7acb\u5728 Brightness Constancy&#xff08;\u4eae\u5ea6\u6052\u5b9a&#xff09;\u4e0a&#xff0c;\u8fd9\u662f LK\u3001IC-LK\u3001Horn-Schunck\u3001Direct VO \u5171\u540c\u57fa\u7840\u3002<\/p>\n<p>\u5149\u6d41\u7ea6\u675f\u65b9\u7a0b&#xff08;Optical Flow Constraint Equation&#xff09;&#xff1a;\u6709 I(x,y,t) &#061; I(x&#043;dx,y&#043;dy,t&#043;dt)&#xff0c;\u5bf9\u53f3\u8fb9\u505a\u4e00\u9636\u6cf0\u52d2\u5c55\u5f00&#xff0c;\u5f97\u5230 I(x&#043;dx,y&#043;dy,t&#043;dt) \u2248 I(x,y,t) &#043; Ix\u00b7dx &#043; Iy\u00b7dy &#043; It\u00b7dt&#xff0c;\u5176\u4e2d Ix &#061; \u2202I\/\u2202x\u3001Iy &#061; \u2202I\/\u2202y\u3001It &#061; \u2202I\/\u2202t&#xff0c;\u5373\u56fe\u50cf\u68af\u5ea6&#xff08;\u7070\u5ea6\u53d8\u5316\u7387&#xff09;&#xff0c;\u4ee3\u56de\u5e76\u9664\u4ee5dt\u5f97\u5230\u5149\u6d41\u7ea6\u675f\u65b9\u7a0b&#xff1a;Ix\u00b7u &#043; Iy\u00b7v &#043; It &#061; 0&#xff0c;\u5176\u4e2d u &#061; dx\/dt&#xff0c;v &#061; dy\/dt&#xff0c;\u5373\u50cf\u7d20\u8fd0\u52a8\u901f\u5ea6&#xff1b;It\u8868\u793a\u65f6\u95f4\u65b9\u5411\u7684\u7070\u5ea6\u53d8\u5316&#xff0c;I(t&#043;1)-I(t)&#xff0c;\u8fd9\u516c\u5f0f\u7684\u771f\u6b63\u542b\u4e49\u662f\u4f4d\u79fb\u9020\u6210\u7684\u7070\u5ea6\u53d8\u5316\u5e94\u8be5\u62b5\u6d88\u65f6\u95f4\u7070\u5ea6\u53d8\u5316\u3002\u8fd9\u4e2a\u65b9\u7a0b\u6709\u4e24\u4e2a\u672a\u77e5\u6570 u\u3001v&#xff0c;\u56e0\u6b64\u65e0\u6cd5\u76f4\u63a5\u6c42\u89e3&#xff0c;\u8fd9\u53eb Aperture Problem&#xff08;\u5b54\u5f84\u95ee\u9898&#xff09;&#xff0c;\u5373\u5355\u4e2a\u50cf\u7d20\u65e0\u6cd5\u786e\u5b9a\u771f\u5b9e\u8fd0\u52a8\u65b9\u5411\u3002<\/p>\n<p>&#xff08;3&#xff09;\u5206\u7c7b<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"288\" src=\"2026-08-16emxcj212doj.png\" width=\"1139\" \/><\/p>\n<p>\u7a00\u758f\u76f4\u63a5\u6cd5&#xff0c;\u53ea\u4f18\u5316\u5c11\u91cf\u5173\u952e\u533a\u57df&#xff08;Patch&#xff09;&#xff0c;\u53ea\u9009\u62e9\u9ad8\u68af\u5ea6\u50cf\u7d20&#xff0c;\u518d\u505a Patch \u7070\u5ea6\u8ddf\u8e2a\u3002\u53ea\u5728\u5c11\u91cf\u7a33\u5b9a\u70b9\u9644\u8fd1 Photometric Error\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u975e\u5e38\u5feb&#xff1a;\u53ea\u4f18\u5316\u5c11\u91cf\u70b9\u30022.\u5b9e\u65f6\u6027\u6781\u5f3a&#xff1a;CPU\u5373\u53ef\u8fd0\u884c\u30023.\u6570\u5b66\u7b80\u5355&#xff1a;\u5c0f\u7a97\u53e3\u4f18\u5316\u30024.\u4e9a\u50cf\u7d20\u7cbe\u5ea6\u9ad8&#xff1a;\u7070\u5ea6\u4f18\u5316\u30025.\u5de5\u7a0b\u6210\u719f&#xff1a;OpenCV\u5927\u91cf\u652f\u6301\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u4f9d\u8d56\u89d2\u70b9&#xff1a;\u5e73\u5766\u533a\u57df\u65e0\u68af\u5ea6\u30022.\u5149\u7167\u654f\u611f&#xff1a;Brightness Constancy\u30023.\u957f\u671f\u6f02\u79fb&#xff1a;Tracking Error \u7d2f\u79ef\u30024.\u906e\u6321\u5bb9\u6613\u5931\u8d25&#xff1a;Patch \u88ab\u7834\u574f\u30025.\u5927\u4f4d\u79fb\u56f0\u96be&#xff1a;\u7ebf\u6027\u5316\u8981\u6c42\u5c0f\u8fd0\u52a8<\/p>\n<p>\u9002\u7528\u573a\u666f&#xff1a;1.\u89c6\u9891\u8ddf\u8e2a&#xff1a;\u975e\u5e38\u9002\u5408\u30022.VO Frontend&#xff1a;\u975e\u5e38\u9002\u5408\u30023.SLAM \u524d\u7aef&#xff1a;\u975e\u5e38\u9002\u5408\u30024.\u89c6\u9891\u7a33\u50cf&#xff1a;\u9002\u5408\u30025.\u533b\u5b66\u5f71\u50cf&#xff1a;\u4e00\u822c\u30026.\u5927\u89c6\u89d2\u53d8\u5316&#xff1a;\u4e0d\u9002\u5408<\/p>\n<p>LK\u3001KLT Pipeline&#xff1a;\u8f93\u5165\u4e24\u5e27\u56fe\u50cf \u2192 Shi-Tomasi \u68c0\u6d4b\u89d2\u70b9 \u2192<br \/>\nPyramid LK \u5149\u6d41 \u2192 \u5f97\u5230\u5bf9\u5e94\u70b9 \u2192 RANSAC \u2192 Homography \u2192 warpPerspective<\/p>\n<p>\u7a20\u5bc6\u76f4\u63a5\u6cd5&#xff08;Dense Direct Methods&#xff09;\u7684\u7279\u70b9\u662f\u5bf9\u5168\u56fe\u6240\u6709\u50cf\u7d20\u505a\u4f18\u5316&#xff0c;\u4fe1\u606f\u66f4\u591a\u3001\u4f46\u8ba1\u7b97\u91cf\u5de8\u5927\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1. \u4fe1\u606f\u91cf\u5de8\u5927&#xff0c;\u4f7f\u7528\u5168\u90e8\u50cf\u7d20\u30022. \u5f31\u7eb9\u7406\u66f4\u5f3a&#xff0c;\u4e0d\u4f9d\u8d56\u89d2\u70b9\u30023. \u5bf9\u9f50\u7cbe\u5ea6\u9ad8&#xff0c;Dense Constraint\u30024. \u8fde\u7eed\u8fd0\u52a8\u573a&#xff0c;\u7a20\u5bc6Flow\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1. \u8ba1\u7b97\u91cf\u5de8\u5927&#xff0c;\u5168\u56fe\u4f18\u5316\u30022. \u5f88\u5403\u5185\u5b58&#xff0c;Dense Flow\u30023. \u5bf9\u5149\u7167\u654f\u611f\u30024. \u5bb9\u6613\u5c40\u90e8\u6700\u4f18&#xff0c;\u975e\u7ebf\u6027\u4f18\u5316\u30025. \u5b9e\u65f6\u6027\u5dee&#xff0c;\u8ba1\u7b97\u91cd\u3002<\/p>\n<p>\u573a\u666f\u9002\u914d&#xff1a;1. \u533b\u5b66\u914d\u51c6&#xff1a;\u975e\u5e38\u9002\u5408\u30022. \u9065\u611f\u914d\u51c6&#xff1a;\u975e\u5e38\u9002\u5408\u30023. \u89c6\u9891\u7a33\u50cf&#xff1a;\u9002\u5408\u30024. Dense VO&#xff1a;\u9002\u5408\u3002<\/p>\n<p>Farneback Pipeline&#xff1a;\u8f93\u5165\u4e24\u5e27\u56fe\u50cf \u2192 \u7070\u5ea6\u5316 \u2192 \u5efa\u7acb Pyramid<br \/>\n\u2192 \u5c40\u90e8\u533a\u57df\u505a Polynomial Expansion&#xff08;\u591a\u9879\u5f0f\u5c55\u5f00&#xff09;<br \/>\n\u2192 \u4f30\u8ba1 Dense Flow \u2192 \u5f97\u5230\u5168\u56fe Motion Field<br \/>\n\u2192 \u6839\u636e Flow \u4f30\u8ba1 Warp \u2192 warpAffine \/ warpPerspective<\/p>\n<p>TV-L1 Pipeline&#xff1a;\u8f93\u5165\u4e24\u5e27\u56fe\u50cf \u2192 \u7070\u5ea6\u5316 \u2192 \u5efa\u7acb\u591a\u5c3a\u5ea6 Pyramid<br \/>\n\u2192 \u5efa\u7acb Optical Flow Energy \u2192 TV Regularization&#xff08;\u603b\u53d8\u5dee\u6b63\u5219\u5316&#xff09;<br \/>\n\u2192 L1 Photometric Optimization \u2192 \u8fed\u4ee3\u4f18\u5316 Flow<br \/>\n\u2192 \u5f97\u5230 Dense Optical Flow \u2192 \u6839\u636e Flow \u6c42 Warp<\/p>\n<p>\u534a\u7a20\u5bc6\u76f4\u63a5\u6cd5&#xff08;Semi-Dense Direct Methods&#xff09;&#xff0c;\u73b0\u4ee3 Direct VO \u6838\u5fc3\u3002\u9009\u53d6\u4f18\u5316\u9ad8\u68af\u5ea6\u533a\u57df&#xff08;\u6574\u7247\u68af\u5ea6\u8db3\u591f\u7684\u50cf\u7d20\u533a\u57df&#xff09;&#xff0c;\u5373&#xff1a;\u2223\u2207I\u2223&gt;threshold\u3002\u56e0\u4e3a\u5e73\u5766\u533a\u57df\u6ca1\u6709\u4fe1\u606f\u3002\u901a\u8fc7\u9ad8\u68af\u5ea6\u50cf\u7d20\u5b9e\u73b0\u4e86\u7cbe\u5ea6\u4e0e\u901f\u5ea6\u7684\u5e73\u8861\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1. \u6bd4Dense\u5feb\u5f88\u591a&#xff0c;\u4e0d\u4f18\u5316\u65e0\u4fe1\u606f\u533a\u57df\u30022. \u6bd4Sparse\u4fe1\u606f\u66f4\u591a&#xff0c;\u4f7f\u7528\u5927\u91cf\u8fb9\u7f18\u30023. \u66f4\u7a33\u5b9a&#xff0c;\u9ad8\u68af\u5ea6\u533a\u57df\u7ea6\u675f\u5f3a\u30024. \u66f4\u9002\u5408VO&#xff0c;\u517c\u987e\u7cbe\u5ea6\u4e0e\u901f\u5ea6\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1. \u7cfb\u7edf\u590d\u6742&#xff0c;\u9700\u8981\u6df1\u5ea6\/\u4f4d\u59ff\u8054\u5408\u4f18\u5316\u30022. \u6570\u5b66\u95e8\u69db\u9ad8&#xff0c;SE(3)&#043;BA\u30023. \u5149\u7167\u654f\u611f&#xff0c;Photometric Error\u30024. \u521d\u59cb\u5316\u56f0\u96be&#xff0c;\u975e\u7ebf\u6027\u4f18\u5316\u3002<\/p>\n<p>\u573a\u666f\u9002\u914d&#xff1a;1. Direct VO&#xff1a;\u975e\u5e38\u9002\u5408\u30022. Direct SLAM&#xff1a;\u975e\u5e38\u9002\u5408\u30023. AR\/VR&#xff1a;\u975e\u5e38\u9002\u5408\u30024. \u5b9e\u65f6\u5b9a\u4f4d&#xff1a;\u975e\u5e38\u9002\u5408\u30025. \u533b\u5b66\u914d\u51c6&#xff1a;\u4e00\u822c\u3002<\/p>\n<p>\u4ee3\u8868\u7cfb\u7edf&#xff1a;LSD-SLAM&#xff0c;DSO&#xff0c;SVO\u3002<\/p>\n<p>DSO Pipelline&#xff1a;\u8f93\u5165\u56fe\u50cf \u2192 \u56fe\u50cf\u91d1\u5b57\u5854 \u2192 \u9009\u62e9\u9ad8\u68af\u5ea6\u70b9<br \/>\n\u2192 \u4f30\u8ba1\u6df1\u5ea6 \u2192 \u5efa\u7acb Photometric Error \u2192 SE(3) Warp<br \/>\n\u2192 Gauss-Newton \u2192 \u8054\u5408\u4f18\u5316&#xff1a;Pose &#043; Depth &#043; Exposure<br \/>\n\u2192 Keyframe \u2192 Sliding Window BA<\/p>\n<p>LLSD-SLAM Pipeline&#xff1a;\u8f93\u5165 Monocular Video \u2192 \u5efa\u7acb Pyramid<br \/>\n\u2192 \u63d0\u53d6\u9ad8\u68af\u5ea6\u50cf\u7d20 \u2192 Depth Estimation \u2192 Direct Image Alignment<br \/>\n\u2192 Photometric Optimization \u2192 Pose Tracking \u2192 Keyframe Selection<br \/>\n\u2192 Depth Map Fusion \u2192 Pose Graph Optimization<\/p>\n<p>Global Direct Alignment&#xff08;\u5168\u5c40\u76f4\u63a5\u914d\u51c6&#xff09;&#xff1a;\u76f4\u63a5\u4f18\u5316\u6574\u5f20\u56fe Warp&#xff0c;\u6574\u56fe\u5efa\u7acb\u7edf\u4e00\u5149\u5ea6\u7ea6\u675f&#xff0c;\u6c42\u89e3\u5168\u5c40\u552f\u4e00\u53d8\u6362&#xff08;\u5355\u5e94 \/ \u521a\u4f53 \/ \u4eff\u5c04&#xff09;\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u5149\u7167\u9c81\u68d2\u30022.\u4e9a\u50cf\u7d20\u7cbe\u5ea6\u30023.\u4f9d\u8d56\u68af\u5ea6\u800c\u975e\u89d2\u70b9&#xff0c;\u8fb9\u7f18\u533a\u57df\u5373\u53ef\u63d0\u4f9b\u7ea6\u675f\u30024.\u4e0d\u9700\u8981\u7279\u5f81\u70b9\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u901f\u5ea6\u8f83\u6162&#xff0c;\u76f8\u6bd4\u7a00\u758f\u7279\u5f81\u6cd5\u8ba1\u7b97\u91cf\u66f4\u5927&#xff0c;\u9700\u8981\u5904\u7406\u66f4\u591a\u50cf\u7d20\u30022.\u5bf9\u521d\u59cb\u5316\u654f\u611f&#xff0c;\u975e\u7ebf\u6027\u4f18\u5316\u6613\u9677\u5165\u5c40\u90e8\u6700\u4f18&#xff0c;\u4f9d\u8d56\u826f\u597d\u521d\u59cb\u4f4d\u59ff\u30023.\u52a8\u6001\u573a\u666f\u5dee&#xff0c;\u5149\u5ea6\u8bef\u5dee\u6a21\u578b\u5047\u8bbe\u573a\u666f\u9759\u6001&#xff0c;\u52a8\u6001\u7269\u4f53\u4f1a\u7834\u574f\u7ea6\u675f\u30024.\u5927\u900f\u89c6\u53d8\u5316\u56f0\u96be&#xff0c;\u7ebf\u6027\u5316\u5047\u8bbe\u8981\u6c42\u8fd0\u52a8\u5e45\u5ea6\u5c0f&#xff0c;\u89c6\u89d2\u5267\u70c8\u53d8\u5316\u6613\u5931\u6548\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"423\" src=\"2026-08-16fmsjwnn3wu3.png\" width=\"914\" \/><\/p>\n<p>\u9002\u5408\u573a\u666f&#xff1a;\u56fe\u50cf\u914d\u51c6\u3001\u89c6\u9891\u7a33\u50cf\u3001\u533b\u5b66\u56fe\u50cf\u3001\u9065\u611f\u56fe\u50cf\u3001\u5f31\u7eb9\u7406\u914d\u51c6\u3002<\/p>\n<p>ECC Pipeline&#xff1a;\u521d\u59cb\u5316 Warp \u2192 Warp \u56fe\u50cf \u2192 \u8ba1\u7b97\u7070\u5ea6\u8bef\u5dee<br \/>\n\u2192 \u8ba1\u7b97\u68af\u5ea6 \u2192 Jacobian \u2192 Hessian \u2192 Gauss-Newton \u2192 \u66f4\u65b0 Warp \u2192 \u6536\u655b\u3002<\/p>\n<p>Frequency-domain Direct Methods&#xff08;\u9891\u57df\u76f4\u63a5\u6cd5&#xff09;&#xff1a;\u9891\u57df\u76f4\u63a5\u6cd5\u4e0d\u76f4\u63a5\u5728\u50cf\u7d20\u7a7a\u95f4\u505a\u7070\u5ea6\u4f18\u5316&#xff0c;\u800c\u662f\u901a\u8fc7\u5085\u91cc\u53f6\u53d8\u6362&#xff08;FFT&#xff09;\u5c06\u56fe\u50cf\u8f6c\u6362\u5230\u9891\u57df&#xff0c;\u5229\u7528\u76f8\u4f4d\u76f8\u5173 \/ \u4e92\u76f8\u5173\u6c42\u89e3\u56fe\u50cf\u95f4\u7684\u5e73\u79fb\u504f\u79fb&#xff0c;\u5b9e\u73b0\u5feb\u901f\u914d\u51c6\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u8d85\u5feb&#xff0c;\u9891\u57df\u4e92\u76f8\u5173\u5229\u7528 FFT \u5b9e\u73b0&#xff0c;\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a O (N log N)\u30022.\u6297\u566a\u58f0&#xff0c;\u9891\u57df\u6ee4\u6ce2\u7279\u6027\u5929\u7136\u6291\u5236\u9ad8\u9891\u566a\u58f0\u30023.\u5b9e\u73b0\u7b80\u5355\u30024.\u5927\u5e73\u79fb\u7a33\u5b9a\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u53ea\u80fd\u4f30\u8ba1\u5e73\u79fb\u30022.\u65e0\u6cd5\u5904\u7406\u590d\u6742\u5f62\u53d8\u30023.\u4e0d\u9002\u5408\u900f\u89c6\u53d8\u5316\u3002<\/p>\n<p>\u573a\u666f&#xff1a;\u5e73\u79fb\u914d\u51c6\u3001\u5de5\u4e1a\u68c0\u6d4b\u3001\u89c6\u9891\u7a33\u50cf\u3001\u5feb\u901f\u7c97\u5bf9\u9f50\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"427\" src=\"2026-08-16fvu32ekrmvy.png\" width=\"234\" \/><\/p>\n<p>Phase Correlation Pipeline&#xff1a;\u8f93\u5165\u4e24\u5f20\u56fe \u2192 FFT&#xff08;\u5085\u91cc\u53f6\u53d8\u6362&#xff09;<br \/>\n\u2192 \u8ba1\u7b97 Cross Power Spectrum \u2192 IFFT \u2192 \u5cf0\u503c\u68c0\u6d4b \u2192 \u5f97\u5230\u5e73\u79fb\u91cf(dx,dy) \u2192 warpAffine<\/p>\n<table>\n<tr>\u7c7b\u522b\u6838\u5fc3\u601d\u60f3\u5178\u578b\u7b97\u6cd5\u7a00\u758f\/\u7a20\u5bc6\u662f\u5426\u4f18\u5316\u7070\u5ea6\u662f\u5426\u9700\u8981\u7279\u5f81\u70b9\u662f\u5426\u9700\u8981Descriptor\u662f\u5426\u5c5e\u4e8eVO\/SLAM\u6838\u5fc3OpenCV\u662f\u5426\u652f\u6301OpenCV\u51fd\u6570\/APIC&#043;&#043;Python\u5178\u578b\u7528\u9014\u4f18\u70b9\u7f3a\u70b9<\/tr>\n<tbody>\n<tr>\n<td>Sparse Direct Methods&#xff08;\u7a00\u758f\u76f4\u63a5\u6cd5&#xff09;<\/td>\n<td>\u53ea\u4f18\u5316\u5c11\u91cf Patch \u7070\u5ea6<\/td>\n<td>LK\u3001Pyramid LK\u3001KLT\u3001IC-LK<\/td>\n<td>\u7a00\u758f<\/td>\n<td>\u662f<\/td>\n<td>\u901a\u5e38\u9700\u8981\u89d2\u70b9<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u662f&#xff08;Frontend\u6838\u5fc3&#xff09;<\/td>\n<td>\u652f\u6301&#xff08;IC-LK\u65e0\u72ec\u7acbAPI&#xff09;<\/td>\n<td>calcOpticalFlowPyrLK()<\/td>\n<td>\u652f\u6301<\/td>\n<td>\u652f\u6301<\/td>\n<td>Tracking\u3001VO Frontend\u3001SLAM Frontend<\/td>\n<td>\u6781\u5feb\u3001\u5b9e\u65f6\u6027\u5f3a\u3001CPU\u53cb\u597d<\/td>\n<td>\u5bf9\u5149\u7167\u654f\u611f\u3001\u5927\u4f4d\u79fb\u56f0\u96be\u3001\u957f\u671f\u6f02\u79fb<\/td>\n<\/tr>\n<tr>\n<td>Dense Direct Methods&#xff08;\u7a20\u5bc6\u76f4\u63a5\u6cd5&#xff09;<\/td>\n<td>\u5bf9\u5168\u56fe\u6240\u6709\u50cf\u7d20\u4f18\u5316<\/td>\n<td>Farneback\u3001TV-L1\u3001Horn-Schunck<\/td>\n<td>\u7a20\u5bc6<\/td>\n<td>\u662f<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u90e8\u5206\u5c5e\u4e8e<\/td>\n<td>\u652f\u6301&#xff08;Horn-Schunck\u65e0&#xff09;<\/td>\n<td>calcOpticalFlowFarneback() DualTVL1OpticalFlow<\/td>\n<td>\u652f\u6301<\/td>\n<td>\u652f\u6301<\/td>\n<td>Dense Flow\u3001Motion Analysis\u3001\u89c6\u9891\u7406\u89e3<\/td>\n<td>\u4fe1\u606f\u91cf\u5927\u3001\u8fd0\u52a8\u8fde\u7eed<\/td>\n<td>\u8ba1\u7b97\u91cf\u5de8\u5927\u3001\u5185\u5b58\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>Semi-Dense Direct Methods&#xff08;\u534a\u7a20\u5bc6\u76f4\u63a5\u6cd5&#xff09;<\/td>\n<td>\u53ea\u4f18\u5316\u9ad8\u68af\u5ea6\u533a\u57df<\/td>\n<td>LSD-SLAM\u3001DSO\u3001SVO<\/td>\n<td>\u534a\u7a20\u5bc6<\/td>\n<td>\u662f<\/td>\n<td>\u4e0d\u4e00\u5b9a<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u662f&#xff08;\u73b0\u4ee3Direct VO\u6838\u5fc3&#xff09;<\/td>\n<td>\u4e0d\u652f\u6301<\/td>\n<td>\u65e0<\/td>\n<td>\u9700\u7b2c\u4e09\u65b9\u5e93<\/td>\n<td>\u9700\u7b2c\u4e09\u65b9\u5e93<\/td>\n<td>Direct VO\u3001SLAM\u3001AR<\/td>\n<td>\u7cbe\u5ea6\u9ad8\u3001\u5f31\u7eb9\u7406\u5f3a\u3001\u6548\u7387\u6bd4Dense\u9ad8<\/td>\n<td>\u6570\u5b66\u590d\u6742\u3001\u5de5\u7a0b\u96be\u3001\u5149\u7167\u654f\u611f<\/td>\n<\/tr>\n<tr>\n<td>Global Direct Alignment&#xff08;\u5168\u5c40\u76f4\u63a5\u914d\u51c6&#xff09;<\/td>\n<td>\u76f4\u63a5\u4f18\u5316\u6574\u56feWarp<\/td>\n<td>ECC\u3001Image Alignment<\/td>\n<td>\u5168\u5c40\/\u7a20\u5bc6<\/td>\n<td>\u662f<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u5c5e\u4e8e\u5b8c\u6574VO<\/td>\n<td>\u652f\u6301<\/td>\n<td>findTransformECC()<\/td>\n<td>\u652f\u6301<\/td>\n<td>\u652f\u6301<\/td>\n<td>\u56fe\u50cf\u914d\u51c6\u3001\u89c6\u9891\u7a33\u50cf\u3001\u533b\u5b66\u56fe\u50cf<\/td>\n<td>\u4e9a\u50cf\u7d20\u7cbe\u5ea6\u9ad8\u3001\u5f31\u7eb9\u7406\u53ef\u7528<\/td>\n<td>\u5bf9\u521d\u59cb\u5316\u654f\u611f\u3001\u52a8\u6001\u573a\u666f\u5dee<\/td>\n<\/tr>\n<tr>\n<td>Frequency-based Direct Methods&#xff08;\u9891\u57df\u76f4\u63a5\u6cd5&#xff09;<\/td>\n<td>\u5728\u9891\u57df\u4f30\u8ba1\u8fd0\u52a8<\/td>\n<td>Phase Correlation\u3001Fourier-Mellin<\/td>\n<td>\u5168\u5c40<\/td>\n<td>\u95f4\u63a5<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u5c5e\u4e8e<\/td>\n<td>\u90e8\u5206\u652f\u6301<\/td>\n<td>phaseCorrelate()<\/td>\n<td>\u652f\u6301<\/td>\n<td>\u652f\u6301<\/td>\n<td>\u5e73\u79fb\u914d\u51c6\u3001\u5de5\u4e1a\u68c0\u6d4b\u3001\u5feb\u901f\u7c97\u5bf9\u9f50<\/td>\n<td>\u8d85\u5feb\u3001\u6297\u566a\u58f0\u3001\u5927\u5e73\u79fb\u7a33\u5b9a<\/td>\n<td>\u901a\u5e38\u53ea\u80fd\u5904\u7406\u5e73\u79fb\u6216\u7b80\u5355\u53d8\u6362<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#xff08;4&#xff09;\u7279\u5f81\u6cd5\u7684\u672c\u8d28\u533a\u522b<\/p>\n<p>Feature-based&#xff1a;\u4f18\u5316\u51e0\u4f55\u5bf9\u5e94\u5173\u7cfb&#xff0c;\u5373\u70b9\u5bf9\u70b9\u5bf9\u5e94&#xff0c;\u4f8b\u5982&#xff1a;ORB\u3001SIFT\u3001SURF&#xff0c;\u4f18\u5316\u76ee\u6807 Reprojection Error&#xff08;\u91cd\u6295\u5f71\u8bef\u5dee&#xff09;\u3002<\/p>\n<p>Direct Method&#xff1a;\u4f18\u5316\u7070\u5ea6\u4e00\u81f4\u6027&#xff0c;\u5373 Pixel-to-pixel Alignment&#xff08;\u50cf\u7d20\u5bf9\u9f50&#xff09;&#xff0c;\u4f18\u5316\u76ee\u6807 Photometric Error&#xff08;\u5149\u5ea6\u8bef\u5dee&#xff09;\u3002<\/p>\n<table>\n<tr>\u7279\u5f81\u6cd5\u76f4\u63a5\u6cd5<\/tr>\n<tbody>\n<tr>\n<td>\u4f7f\u7528\u5173\u952e\u70b9<\/td>\n<td>\u4e0d\u9700\u8981\u5173\u952e\u70b9<\/td>\n<\/tr>\n<tr>\n<td>\u4f7f\u7528 descriptor&#xff08;\u63cf\u8ff0\u5b50&#xff09;<\/td>\n<td>\u4f7f\u7528\u7070\u5ea6\u503c<\/td>\n<\/tr>\n<tr>\n<td>\u5148\u5339\u914d\u518d\u4f18\u5316<\/td>\n<td>\u76f4\u63a5\u4f18\u5316<\/td>\n<\/tr>\n<tr>\n<td>\u7a00\u758f correspondence<\/td>\n<td>\u7a20\u5bc6 \/ \u534a\u7a20\u5bc6\u4f18\u5316<\/td>\n<\/tr>\n<tr>\n<td>\u51e0\u4f55\u9a71\u52a8<\/td>\n<td>\u5149\u5ea6\u9a71\u52a8<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5149\u7167\u66f4\u9c81\u68d2<\/td>\n<td>\u5bf9\u5149\u7167\u654f\u611f<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u521d\u59cb\u5316\u4e0d\u654f\u611f<\/td>\n<td>\u5bf9\u521d\u59cb\u5316\u654f\u611f<\/td>\n<\/tr>\n<tr>\n<td>\u9002\u5408\u5927\u4f4d\u79fb<\/td>\n<td>\u9002\u5408\u5c0f\u4f4d\u79fb<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>1.\u7a00\u758f\u76f4\u63a5\u6cd5<\/h3>\n<h4>1.1 Lucas-Kanade Optical Flow&#xff08;LK \u5149\u6d41&#xff09;<\/h4>\n<p>LK \u5c5e\u4e8e\u57fa\u4e8e\u7070\u5ea6\u7684\u7a00\u758f\u76f4\u63a5\u6cd5&#xff0c;\u4f9d\u9760\u7070\u5ea6\u4e0d\u53d8\u5047\u8bbe\u4e0e\u56fe\u50cf\u68af\u5ea6\u3002\u5148\u5728\u53c2\u8003\u56fe\u63d0\u53d6 Shi-Tomasi \u89d2\u70b9&#xff0c;\u518d\u5728\u53e6\u4e00\u5f20\u56fe\u4e2d\u8ddf\u8e2a\u8fd9\u4e9b\u7279\u5f81\u70b9\u7684\u8fd0\u52a8\u4f4d\u7f6e&#xff1b;\u5f97\u5230\u6210\u5bf9\u5339\u914d\u70b9\u540e&#xff0c;\u518d\u6c42\u89e3\u53d8\u6362\u77e9\u9635\u5b9e\u73b0\u56fe\u50cf\u5bf9\u9f50\u3002\u65e0\u9700\u5bf9\u6574\u5f20\u56fe\u8ba1\u7b97&#xff0c;\u53ea\u505a\u5c40\u90e8\u7279\u5f81\u70b9\u8ddf\u8e2a&#xff0c;\u901f\u5ea6\u5feb&#xff0c;\u9002\u5408\u5e27\u95f4\u5c0f\u8fd0\u52a8\u3001\u8fde\u7eed\u89c6\u9891\u6216\u5c0f\u5e45\u504f\u79fb\u56fe\u50cf\u914d\u51c6\u3002LK\u7684\u672c\u8d28\u662f\u5c40\u90e8\u7070\u5ea6\u4e00\u81f4\u6027\u4f18\u5316&#xff0c;\u627e\u4e00\u4e2a\u5c0f\u4f4d\u79fb\u8ba9\u7a97\u53e3\u7070\u5ea6\u5dee\u6700\u5c0f&#xff0c;\u627e\u6700\u4f18 warp \u53c2\u6570 p \u8ba9 warp \u540e\u7684\u56fe \u2248 template\u3002<\/p>\n<p>LLK\u5149\u6d41\u53ea\u9700\u641c\u5bfb\u56fe\u50cf\u5757\u7070\u5ea6\u5dee\u5f02\u6700\u5c0f\u7684\u5339\u914d\u4f4d\u7f6e\u5b8c\u6210\u5757\u5bf9\u9f50\u3002\u5176\u4f18\u5316\u76ee\u6807\u4e3a\u6700\u5c0f\u5316\u7070\u5ea6\u5e73\u65b9\u8bef\u5deeSSD&#xff0c;\u516c\u5f0f\u4e3a$\\\\min\\\\sum(I_1-I_2)^2$&#xff0c;\u901a\u8fc7\u8fed\u4ee3\u6c42\u89e3\u6700\u4f18\u50cf\u7d20\u504f\u79fb\u91cf&#xff0c;\u5b9e\u73b0\u7cbe\u51c6\u8fd0\u52a8\u8ddf\u8e2a\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9<\/p>\n<li>\u8ba1\u7b97\u901f\u5ea6\u6781\u5feb&#xff0c;\u53ea\u4f18\u5316\u5c40\u90e8\u5c0f\u7a97\u53e3&#xff08;Patch&#xff09;\u3002<\/li>\n<li>\u6570\u5b66\u6a21\u578b\u7b80\u6d01\u4f18\u96c5&#xff0c;\u57fa\u4e8e\u6700\u5c0f\u4e8c\u4e58\u4f18\u5316\u3002<\/li>\n<li>\u7070\u5ea6\u76f4\u63a5\u4f18\u5316&#xff0c;\u53ef\u8fbe\u5230\u8f83\u9ad8\u4e9a\u50cf\u7d20\u7cbe\u5ea6\u3002<\/li>\n<li>\u975e\u5e38\u9002\u5408\u5b9e\u65f6\u8ddf\u8e2a\u4e0e\u89c6\u9891\u5904\u7406\u3002<\/li>\n<li>\u662f\u7ecf\u5178 Direct Method \u4e0e Optical Flow \u7684\u57fa\u7840\u3002<\/li>\n<p>\u7f3a\u70b9<\/p>\n<li>\u5bf9\u5149\u7167\u53d8\u5316\u654f\u611f&#xff0c;\u4f9d\u8d56 Brightness Constancy&#xff08;\u7070\u5ea6\u4e00\u81f4\u6027\u5047\u8bbe&#xff09;\u3002<\/li>\n<li>\u5927\u4f4d\u79fb\u573a\u666f\u56f0\u96be&#xff0c;\u56e0\u4e3a\u6cf0\u52d2\u5c55\u5f00\u7ebf\u6027\u5316\u8981\u6c42\u5c0f\u8fd0\u52a8&#xff0c;\u56e0\u6b64\u901a\u5e38\u9700\u8981 Pyramid LK\u3002<\/li>\n<li>\u5f31\u7eb9\u7406\u533a\u57df\u6548\u679c\u5dee&#xff0c;\u68af\u5ea6\u4e0d\u8db3\u4f1a\u5bfc\u81f4\u7ea6\u675f\u9000\u5316\u3002<\/li>\n<li>\u5bb9\u6613\u51fa\u73b0\u957f\u671f\u6f02\u79fb&#xff08;Tracking Drift&#xff09;\u3002<\/li>\n<li>\u906e\u6321\u6216\u5feb\u901f\u8fd0\u52a8\u65f6\u5bb9\u6613\u8ddf\u8e2a\u5931\u8d25\u3002<\/li>\n<li>\u672c\u8d28\u5c5e\u4e8e\u5c40\u90e8\u4f18\u5316&#xff0c;\u5bb9\u6613\u9677\u5165\u5c40\u90e8\u6700\u4f18\u3002<\/li>\n<p>\u9002\u7528\u573a\u666f<\/p>\n<li>\u89c6\u9891\u76ee\u6807\u8ddf\u8e2a\u3002<\/li>\n<li>\u89c6\u9891\u7a33\u50cf\u3002<\/li>\n<li>VO \/ SLAM \u524d\u7aef\u8ddf\u8e2a\u3002<\/li>\n<li>\u9ad8\u5e27\u7387\u5c0f\u8fd0\u52a8\u573a\u666f\u3002<\/li>\n<li>\u5b9e\u65f6\u5149\u6d41\u4f30\u8ba1\u3002<\/li>\n<li>\u7a00\u758f\u7279\u5f81\u8ddf\u8e2a&#xff08;KLT Tracking&#xff09;\u3002<\/li>\n<p>&#xff08;2&#xff09;\u6838\u5fc3\u6982\u5ff5<\/p>\n<p>Lucas-Kanade&#xff08;LK&#xff09;&#xff1a;LK \u7684\u4f1f\u5927\u4e4b\u5904\u5728\u4e8e\u201c\u4e00\u4e2a\u50cf\u7d20\u4e0d\u591f&#xff0c;\u90a3\u5c31\u770b\u4e00\u4e2a patch &#xff08;\u5c0f\u7a97\u53e3&#xff09;\u201d&#xff0c;\u5047\u8bbe\u7a97\u53e3\u5185\u6240\u6709\u50cf\u7d20\u8fd0\u52a8\u4e00\u81f4&#xff0c;\u4e8e\u662f\u7a97\u53e3\u5185\u7684\u6bcf\u4e00\u4e2a\u50cf\u7d20\u90fd\u6709\u4e00\u4e2a\u5149\u6d41\u7ea6\u675f\u65b9\u7a0b&#xff0c;\u6700\u540e\u5f97\u5230\u8d85\u5b9a\u65b9\u7a0b\u7ec4 A*d &#061; b&#xff0c;\u7136\u540e\u7528\u6700\u5c0f\u4e8c\u4e58\u6c42\u89e3\u3002<\/p>\n<p>\u8fb9\u7f18\u4e0d\u597d\u3001\u89d2\u70b9\u6700\u597d&#xff1a;\u4f8b\u5982\u7ad6\u76f4\u8fb9\u7f18\u53ea\u6709 x \u65b9\u5411\u53d8\u5316&#xff0c;\u65e0\u6cd5\u786e\u5b9a v&#xff0c;\u56e0\u6b64\u8fb9\u7f18\u4e0d\u53ef\u7a33\u5b9a\u8ddf\u8e2a&#xff1b;\u89d2\u70b9x\u3001y\u65b9\u5411\u90fd\u6709\u53d8\u5316&#xff0c;\u6240\u4ee5 Harris\/Shi-Tomasi \u9002\u5408LK\u3002<\/p>\n<p>\u91d1\u5b57\u5854 LK&#xff08;Pyramidal LK&#xff09;&#xff1a;\u666e\u901a LK \u53ea\u80fd\u5904\u7406\u5c0f\u4f4d\u79fb&#xff0c;\u56e0\u4e3a\u6cf0\u52d2\u5c55\u5f00\u8981\u6c42 dx \u5f88\u5c0f&#xff0c;\u5982\u679c\u8fd0\u52a8\u592a\u5927\u5c31\u662f\u76f4\u63a5\u5931\u6548&#xff0c;\u4e8e\u662f\u6709\u4e86\u56fe\u50cf\u91d1\u5b57\u5854\u3002\u5148\u5728\u9876\u5c42\u91d1\u5b57\u5854&#xff08;\u4f4e\u5206\u8fa8\u7387&#xff09;\u5f00\u59cb\u8dd1 LK \u6d41\u5149&#xff0c;\u7b97\u51fa\u7c97\u7565\u4f4d\u79fbu&#xff0c;v\u3002\u628a\u4e0a\u5c42\u5f97\u5230\u7684\u4f4d\u79fb\u4f5c\u4e3a\u521d\u59cb\u503c&#xff0c;\u4f20\u5230\u4e0b\u4e00\u5c42&#xff0c;\u6bcf\u5c42\u90fd\u7528 LK \u8fed\u4ee3\u5fae\u8c03\u4f4d\u79fb&#xff0c;\u4e00\u76f4\u8fed\u4ee3\u5230\u539f\u56fe\u5c42&#xff0c;\u5f97\u5230\u6700\u7ec8\u7cbe\u786e\u5149\u6d41\u3002\u91d1\u5b57\u5854 LK &#061; \u56fe\u50cf\u91d1\u5b57\u5854 &#043; \u7c97\u5230\u7ec6\u8fed\u4ee3&#xff0c;\u5df2\u77e5\u524d\u4e00\u5e27\u5173\u952e\u70b9&#xff0c;\u8f93\u51fa\u8fd9\u4e9b\u70b9\u518d\u4e0b\u4e00\u5e27\u8dd1\u5230\u54ea\u4e86&#xff0c;\u672c\u8d28\u662f\u70b9\u5bf9\u70b9\u8f68\u8ff9\u8ddf\u8e2a&#xff0c;\u4e0d\u9700\u8981\u91cd\u65b0\u68c0\u6d4b\u89d2\u70b9\u3001\u505a\u63cf\u8ff0\u5b50\u5339\u914d\u3002\u800c\u4f20\u7edf\u7279\u5f81\u5339\u914d\u9700\u8981\u5728\u4e24\u5e27\u5404\u81ea\u91cd\u65b0\u68c0\u6d4b\u89d2\u70b9\u3001\u91cd\u65b0\u505a\u63cf\u8ff0\u5b50\u5339\u914d\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"276\" src=\"2026-08-16kc4ifb1oqke.png\" width=\"1046\" \/><\/p>\n<p>&#xff08;3&#xff09;LK Pipeline<\/p>\n<p>1.\u68c0\u6d4b\u7279\u5f81\u70b9&#xff0c;\u901a\u5e38Harris\u3001Shi-Tomasi\u30022.\u53d6patch\u30023.\u8ba1\u7b97\u56fe\u50cf\u68af\u5ea6\u30024.\u5efa\u7acb\u5149\u5ea6\u8bef\u5dee\u30025.Gauss-Newton Optimization&#xff08;\u9ad8\u65af\u725b\u987f\u4f18\u5316&#xff09;\u6c42dx\u3001dy\u30025.\u5f97\u5230 optical flow&#xff08;\u5149\u6d41&#xff09;\u3002<\/p>\n<p>Lucas-Kanade \u5149\u6d41\u672c\u8d28\u662f\u8ddf\u8e2a&#xff0c;\u4e0d\u662f\u68c0\u6d4b\u3001\u4e0d\u662f\u5339\u914d\u3002\u65e2\u80fd\u7528\u89c6\u9891\u8fde\u7eed\u5e27&#xff0c;\u4e5f\u80fd\u7528\u4e24\u5f20\u95f4\u9694\u5f88\u5c0f\u7684\u56fe\u7247\u3002\u5148\u4f7f\u7528 Shi-Tomasi \u63d0\u89d2\u70b9&#xff0c;\u540e\u9762\u6bcf\u4e00\u5e27\u4e0d\u7528\u518d\u91cd\u65b0\u68c0\u6d4b\u5173\u952e\u70b9&#xff0c;LK \u76f4\u63a5\u8ddf\u7740\u7070\u5ea6\u53d8\u5316&#xff0c;\u7b97\u51fa\u6bcf\u4e2a\u70b9\u8dd1\u5230\u54ea\u3002<\/p>\n<h4>1.2 IC-LK&#xff08;Inverse Compositional Lucas-Kanade&#xff09;<\/h4>\n<p>\u5982\u679c\u8bf4 LK \u80fd\u5de5\u4f5c&#xff0c;IC-LK \u5219\u80fd\u591f\u5b9e\u65f6\u5de5\u4f5c&#xff0c;\u5b83\u628a\u539f\u672c\u6bcf\u6b21\u8fed\u4ee3\u90fd\u8981\u91cd\u590d\u7684\u5927\u91cf\u8ba1\u7b97&#xff0c;\u63d0\u524d\u9884\u8ba1\u7b97&#xff0c;\u8fd9\u662f\u5b83\u7684\u672c\u8d28\u3002<\/p>\n<p>\u666e\u901a Forward Additive LK&#xff1a;\u6bcf\u6b21\u8fed\u4ee3\u90fd\u8981\u91cd\u65b0\u6c42 1. Warp image\u30022. \u8ba1\u7b97\u5f53\u524d\u56fe\u50cf\u68af\u5ea6\u30023. \u8ba1\u7b97 Jacobian\u30024. \u8ba1\u7b97 Hessian\u30025. \u6c42 \u0394p\u30026. \u66f4\u65b0 p\u3002\u95ee\u9898\u662fHessian\/Jacobian \u6bcf\u8f6e\u90fd\u91cd\u65b0\u8ba1\u7b97&#xff0c;\u4ee3\u4ef7\u5f88\u5927&#xff0c;\u5c24\u5176&#xff1a;\u89c6\u9891 60FPS&#xff0c;\u6bcf\u5e27\u51e0\u767e\u7279\u5f81\u70b9&#xff0c;\u6bcf\u70b9\u51e0\u5341\u6b21\u8fed\u4ee3&#xff0c;\u8ba1\u7b97\u7206\u70b8\u3002<\/p>\n<p>IC-LK&#xff1a;\u53d1\u73b0\u771f\u6b63\u53d8\u5316\u7684\u662f warp&#xff0c;template \u6839\u672c\u6ca1\u53d8&#xff0c;\u4e8e\u662f&#xff0c;\u5b83\u5c06\u666e\u901a LK \u7684\u4f18\u5316 I(W(x;p&#043;\u0394p)) \u2248 T(x) \u66f4\u65b0 Current Image&#xff0c;\u53cd\u8fc7\u6765 I(W(x;p)) \u2248 T(W(x;\u0394p)) \u66f4\u65b0 Template&#xff0c;\u8fd9\u5c31\u662f\u00a0Inverse&#xff08;\u9006&#xff09;Compositional&#xff08;\u7ec4\u5408&#xff09;\u540d\u5b57\u7684\u6765\u6e90\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u8fd9\u6837\u5c31\u5feb\u4e86&#xff1a;\u56e0\u4e3a Template \u662f\u56fa\u5b9a\u7684&#xff0c;\u6240\u4ee5 Template \u7684 Gradient\u3001Jacobian\u3001Hessian \u5168\u90e8\u53ef\u4ee5\u9884\u8ba1\u7b97&#xff0c;\u4e0d\u9700\u8981\u6bcf\u6b21\u53bb\u8ba1\u7b97warp\u540e\u7684\u56fe\u50cf\u3002<\/p>\n<p>\u5c40\u9650\u6027&#xff1a;1.\u53ea\u80fd\u505a\u5c0f\u8fd0\u52a8&#xff0c;\u56e0\u4e3a\u4f9d\u8d56&#xff08;Taylor Linearization&#xff09;\u6cf0\u52d2\u7ebf\u6027\u5316\u30022.\u5149\u7167\u53d8\u5316\u654f\u611f&#xff0c;\u56e0\u4e3a\u76ee\u6807\u8fd8\u662f SSD\u30023.\u906e\u6321\u654f\u611f&#xff0c;\u5c40\u90e8 patch \u88ab\u6321\u4f4f&#xff0c;\u4f18\u5316\u76ee\u6807\u9519\u8bef\u30024.\u4f4e\u7eb9\u7406\u533a\u57df\u5bb9\u6613\u5931\u8d25&#xff0c;\u56e0\u4e3a \u2207I\u22480&#xff0c;Hessian \u4e0d\u7a33\u5b9a\u3002<\/p>\n<p>IC-LK \u4e0e \u91d1\u5b57\u5854 LK \u7684\u5173\u7cfb&#xff1a;IC-LK \u89e3\u51b3\u8ba1\u7b97\u901f\u5ea6\u6162\u3001\u8fed\u4ee3\u6548\u7387\u4f4e\u7684\u95ee\u9898&#xff0c;\u91d1\u5b57\u5854 Pyramid \u89e3\u51b3\u5e27\u95f4\u5927\u4f4d\u79fb\u95ee\u9898&#xff0c;\u901a\u8fc7\u56fe\u50cf\u91d1\u5b57\u5854\u7531\u7c97\u5230\u7cbe\u9010\u5c42\u7f29\u5c0f\u4f4d\u79fb\u3002\u5de5\u7a0b\u5b9e\u9645\u7ec4\u5408&#xff1a;Pyramid IC-LK\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"507\" src=\"2026-08-16ejqfqko1gcs.png\" width=\"518\" \/><\/p>\n<h4>1.3 KLT&#xff08;Kanade-Lucas-Tomasi Tracker&#xff09;<\/h4>\n<p>Kanade-Lucas-Tomasi \u8ddf\u8e2a\u5668&#xff0c;\u672c\u8d28\u4e0a\u662f&#xff1a;Shi-Tomasi \u89d2\u70b9\u68c0\u6d4b &#043; Pyramid LK \u5149\u6d41\u8ddf\u8e2a\u3002\u5b83\u4e0d\u662f\u65b0\u7684\u5149\u6d41\u7406\u8bba&#xff0c;\u800c\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u7a00\u758f\u70b9\u8ddf\u8e2a\u6846\u67b6&#xff0c;KLT \u5c5e\u4e8e\u57fa\u4e8e\u7070\u5ea6\u7684\u7a00\u758f\u76f4\u63a5\u6cd5&#xff0c;\u5229\u7528&#xff1a;Brightness Constancy&#xff08;\u4eae\u5ea6\u6052\u5b9a&#xff09;\u3001Local Patch Alignment&#xff08;\u5c40\u90e8\u7070\u5ea6\u5bf9\u9f50&#xff09;\u3001Pyramid LK&#xff08;\u591a\u5c42\u91d1\u5b57\u5854\u5149\u6d41&#xff09;\u5728\u8fde\u7eed\u5e27\u4e2d\u8ddf\u8e2a\u7a33\u5b9a\u89d2\u70b9\u8fd0\u52a8\u3002<\/p>\n<p>KLT \u6700\u5927\u7279\u70b9&#xff1a;\u7b2c\u4e00\u5e27\u68c0\u6d4b\u89d2\u70b9&#xff0c;\u540e\u7eed\u53ea\u8ddf\u8e2a&#xff0c;\u4e0d\u91cd\u65b0\u5339\u914d\u3002\u56e0\u6b64\u76f8\u6bd4\u4f20\u7edf Feature Matching&#xff1a;\u4e0d\u9700\u8981 descriptor\u3001brute-force matching\u3001FLANN&#xff0c;\u901f\u5ea6\u6781\u5feb\u3002\u975e\u5e38\u9002\u5408&#xff1a;Video Tracking&#xff08;\u89c6\u9891\u8ddf\u8e2a&#xff09;\u3001Visual Odometry&#xff08;\u89c6\u89c9\u91cc\u7a0b\u8ba1&#xff09;\u3001SLAM Frontend&#xff08;SLAM \u524d\u7aef&#xff09;\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u901f\u5ea6\u6781\u5feb\u30022.\u9002\u5408\u5b9e\u65f6\u89c6\u9891\u30023.\u4e9a\u50cf\u7d20\u7cbe\u5ea6\u9ad8\u30024.\u5b9e\u73b0\u7b80\u5355\u30025.\u4e0d\u9700\u8981 descriptor\u30026.CPU \u5373\u53ef\u5b9e\u65f6\u8fd0\u884c\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5bf9\u5149\u7167\u53d8\u5316\u654f\u611f\u30022.\u5927\u4f4d\u79fb\u56f0\u96be\u30023.\u5feb\u901f\u8fd0\u52a8\u5bb9\u6613\u6f02\u79fb\u30024.\u957f\u671f\u8ddf\u8e2a\u5bb9\u6613\u7d2f\u8ba1\u8bef\u5dee\u30025.\u906e\u6321\u540e\u5bb9\u6613\u5931\u8d25\u30026.\u5f31\u7eb9\u7406\u533a\u57df\u6548\u679c\u5dee\u3002<\/p>\n<p>&#xff08;2&#xff09;\u76f8\u5173\u95ee\u9898<\/p>\n<p>\u4e3a\u4ec0\u4e48 KLT \u5fc5\u987b\u4f7f\u7528\u89d2\u70b9&#xff1a;\u56e0\u4e3a KLT \u672c\u8d28\u4ecd\u7136\u4f9d\u8d56\u56fe\u50cf\u68af\u5ea6\u3002\u5982\u679c\u533a\u57df\u5b8c\u5168\u5e73\u5766&#xff0c;\u6216\u8005\u53ea\u6709\u5355\u65b9\u5411\u8fb9\u7f18&#xff0c;\u5219\u65e0\u6cd5\u7a33\u5b9a\u8ddf\u8e2a&#xff0c;\u56e0\u4e3a Hessian \u4f1a\u9000\u5316\u3002\u4f8b\u5982\u7ad6\u76f4\u8fb9\u7f18\u53ea\u6709 x \u65b9\u5411\u68af\u5ea6&#xff0c;\u65e0\u6cd5\u786e\u5b9a y \u65b9\u5411\u8fd0\u52a8&#xff0c;\u56e0\u6b64\u8fb9\u7f18\u4e0d\u7a33\u5b9a&#xff1b;\u89d2\u70b9\u540c\u65f6\u5177\u6709 x\u3001y \u4e24\u4e2a\u65b9\u5411\u68af\u5ea6&#xff0c;\u56e0\u6b64 Hessian \u53ef\u9006&#xff0c;\u9002\u5408\u7a33\u5b9a\u8ddf\u8e2a\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"166\" src=\"2026-08-16dbssfviztqn.png\" width=\"522\" \/><\/p>\n<p>\u4e3a\u4ec0\u4e48 Shi-Tomasi \u6700\u9002\u5408 KLT&#xff1a;Shi-Tomasi \u4f1a\u5bfb\u627e\u4e24\u4e2a\u65b9\u5411\u90fd\u6709\u660e\u663e\u68af\u5ea6\u53d8\u5316\u7684\u4f4d\u7f6e&#xff0c;\u5373\u771f\u6b63\u9002\u5408\u5149\u6d41\u8ddf\u8e2a\u7684\u70b9&#xff0c;\u56e0\u6b64 KLT \u901a\u5e38\u7b2c\u4e00\u6b65\u90fd\u4f1a\u4f7f\u7528 goodFeaturesToTrack() \u68c0\u6d4b Shi-Tomasi Corner\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48 KLT \u975e\u5e38\u5feb&#xff1a;\u56e0\u4e3a KLT \u4e0d\u505a descriptor\u3001\u4e0d\u505a brute-force matching\u3001\u4e0d\u505a Hamming Distance\u3001\u4e0d\u505a FLANN&#xff0c;\u53ea\u505a Local Patch Optimization&#xff08;\u5c40\u90e8\u7070\u5ea6\u4f18\u5316&#xff09;&#xff0c;\u56e0\u6b64\u8ba1\u7b97\u91cf\u6781\u5c0f&#xff0c;\u7ecf\u5178 CPU \u5b9e\u65f6 Tracking \u5927\u91cf\u4f7f\u7528 KLT\u3002<\/p>\n<p>KLT \u4e0e LK \u7684\u5173\u7cfb&#xff1a;LK&#xff08;Lucas-Kanade&#xff09;\u672c\u8d28\u662f\u5149\u6d41\u4f18\u5316\u7b97\u6cd5&#xff0c;\u8d1f\u8d23\u6c42\u89e3\u5149\u6d41&#xff1a;(u,v)\u3002\u800c KLT \u662f\u5b8c\u6574\u8ddf\u8e2a\u6846\u67b6&#xff0c;\u672c\u8d28\u662f&#xff1a;Shi-Tomasi &#043; Pyramid LK &#043; Track Management\u3002\u56e0\u6b64 KLT \u53ef\u4ee5\u7406\u89e3\u4e3a\u5de5\u7a0b\u5316\u7684 LK Tracker\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48 KLT \u4f1a\u6f02\u79fb&#xff08;Drift&#xff09;&#xff1a;KLT \u6bcf\u4e00\u5e27\u90fd\u57fa\u4e8e\u4e0a\u4e00\u5e27\u7ed3\u679c\u7ee7\u7eed\u8ddf\u8e2a&#xff0c;\u56e0\u6b64\u8bef\u5dee\u4f1a\u4e0d\u65ad\u7d2f\u8ba1&#xff0c;\u8fd9\u53eb Drift&#xff08;\u6f02\u79fb&#xff09;\u3002\u957f\u671f Tracking \u540e&#xff0c;\u70b9\u7684\u4f4d\u7f6e\u4f1a\u8d8a\u6765\u8d8a\u504f&#xff0c;\u56e0\u6b64 VO \/ SLAM \u4e2d\u901a\u5e38\u9700\u8981 Re-detect Feature&#xff08;\u91cd\u65b0\u68c0\u6d4b\u7279\u5f81\u70b9&#xff09;\u3001Keyframe&#xff08;\u5173\u952e\u5e27&#xff09;\u4ee5\u53ca Bundle Adjustment&#xff08;BA&#xff09;\u4fee\u6b63\u6f02\u79fb\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48 KLT \u9002\u5408 VO \/ SLAM Frontend&#xff1a;VO \u524d\u7aef\u6700\u9700\u8981\u7684\u662f\u5feb\u901f\u7a33\u5b9a Tracking&#xff0c;\u800c\u4e0d\u662f\u590d\u6742 descriptor matching&#xff0c;\u56e0\u6b64 KLT \u975e\u5e38\u9002\u5408 Frame-to-frame Tracking&#xff08;\u5e27\u95f4\u8ddf\u8e2a&#xff09;\u3001Sparse Correspondence&#xff08;\u7a00\u758f\u5bf9\u5e94&#xff09;\u4ee5\u53ca Motion Estimation&#xff08;\u8fd0\u52a8\u4f30\u8ba1&#xff09;\u3002<\/p>\n<p>&#xff08;3&#xff09;KLT Pipeline<\/p>\n<p>1.\u8f93\u5165\u89c6\u9891\u8fde\u7eed\u5e27\u30022.\u7b2c\u4e00\u5e27\u68c0\u6d4b Shi-Tomasi \u89d2\u70b9\u30023.\u5bf9\u6bcf\u4e2a\u89d2\u70b9\u53d6 patch\u30024.\u8ba1\u7b97\u56fe\u50cf\u68af\u5ea6\u30025.\u5efa\u7acb Photometric Error&#xff08;\u5149\u5ea6\u8bef\u5dee&#xff09;\u30026.\u4f7f\u7528 LK \u6c42\u89e3\u5149\u6d41\u30027.\u66f4\u65b0\u70b9\u4f4d\u7f6e\u30028.\u4e0b\u4e00\u5e27\u7ee7\u7eed\u8ddf\u8e2a\u3002\u672c\u8d28\u662f detect once &#043; track many frames\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"226\" src=\"2026-08-16piy4h43zs2c.png\" width=\"1048\" \/><\/p>\n<p>\u7ecf\u5178 VO \u901a\u5e38\u4f7f\u7528&#xff1a;KLT &#043; RANSAC &#043; Essential Matrix \u8fdb\u884c\u8fd0\u52a8\u4f30\u8ba1\u3002<\/p>\n<p>void cvtColor(InputArray src, OutputArray dst, int code, int dstCn &#061; 0);<br \/>\n\u53c2\u6570&#xff1a;src \u539f\u56fe&#xff0c;dst \u8f93\u51fa\u56fe&#xff0c;code \u8f6c\u6362\u7c7b\u578b&#xff0c;dstCn \u8f93\u51fa\u901a\u9053\u6570<br \/>\nvoid goodFeaturesToTrack(InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance, InputArray mask &#061; Mat(), int blockSize &#061; 3, bool useHarrisDetector &#061; false, double k &#061; 0.04);<br \/>\n\u53c2\u6570&#xff1a;image\u7070\u5ea6\u56fe&#xff0c;corners\u8f93\u51fa\u89d2\u70b9&#xff0c;maxCorners\u6700\u5927\u70b9\u6570&#xff0c;qualityLevel\u8d28\u91cf\u9608\u503c&#xff0c;minDistance\u70b9\u6700\u5c0f\u95f4\u8ddd&#xff0c;mask\u63a9\u7801&#xff0c;blockSize\u7a97\u53e3\u5c3a\u5bf8&#xff0c;useHarrisDetector\u662f\u5426\u542f\u7528 Harris \u89d2\u70b9&#xff0c;kHarris \u7cfb\u6570<br \/>\nvoid calcOpticalFlowPyrLK(InputArray prevImg, InputArray nextImg, InputArray prevPts, InputOutputArray nextPts, OutputArray status, OutputArray err, Size winSize &#061; Size(21,21), int maxLevel &#061; 3, TermCriteria criteria &#061; TermCriteria(TermCriteria::EPS&#043;TermCriteria::COUNT,30,0.01), int flags &#061; 0, double minEigThreshold &#061; 1e-4);<br \/>\n\u53c2\u6570&#xff1a;prevImg\u524d\u5e27\u7070\u5ea6\u56fe&#xff0c;nextImg\u5f53\u524d\u5e27\u7070\u5ea6\u56fe&#xff0c;prevPts\u524d\u5e27\u7279\u5f81\u70b9&#xff0c;nextPts\u8f93\u51fa\u8ddf\u8e2a\u70b9&#xff0c;status\u8ddf\u8e2a\u72b6\u6001&#xff0c;err\u5339\u914d\u8bef\u5dee&#xff0c;winSize\u641c\u7d22\u7a97\u53e3&#xff0c;maxLevel\u91d1\u5b57\u5854\u5c42\u6570&#xff0c;criteria\u8fed\u4ee3\u7ec8\u6b62\u6761\u4ef6&#xff0c;flags\u7b97\u6cd5\u6807\u5fd7&#xff0c;minEigThreshold\u6700\u5c0f\u7279\u5f81\u503c\u9608\u503c<br \/>\n\/\/ \u5e94\u7528<br \/>\ncv::Mat gray1, gray2;<br \/>\ncv::cvtColor(img1, gray1, cv::COLOR_BGR2GRAY);<br \/>\ncv::cvtColor(img2, gray2, cv::COLOR_BGR2GRAY);<\/p>\n<p>std::vector&lt;cv::Point2f&gt; pts1, pts2;<br \/>\ncv::goodFeaturesToTrack(gray1, pts1, 200, 0.01, 10, cv::Mat(), 3, false, 0.04);<\/p>\n<p>std::vector&lt;uchar&gt; status;<br \/>\nstd::vector&lt;float&gt; err;<br \/>\ncv::calcOpticalFlowPyrLK(gray1, gray2, pts1, pts2, status, err, cv::Size(15,15), 3, cv::TermCriteria(cv::TermCriteria::EPS|cv::TermCriteria::COUNT,10,0.03));<\/p>\n<p>\/\/ \u7b5b\u9009\u6709\u6548\u70b9<br \/>\nstd::vector&lt;cv::Point2f&gt; good1, good2;<br \/>\nfor (int i &#061; 0; i &lt; status.size(); i&#043;&#043;)<br \/>\n{<br \/>\n    if (status[i])<br \/>\n    {<br \/>\n        good1.push_back(pts1[i]);<br \/>\n        good2.push_back(pts2[i]);<br \/>\n    }<br \/>\n}<\/p>\n<h3>2.\u7a20\u5bc6\u76f4\u63a5\u6cd5<\/h3>\n<p>1.Horn-Schunck Optical Flow&#xff1a;\u7ecf\u5178 Dense Optical Flow\u3002\u6838\u5fc3\u601d\u60f3&#xff1a;\u9664\u4e86\u6ee1\u8db3\u5149\u6d41\u7ea6\u675f&#xff0c;\u8fd8\u5047\u8bbe\u5168\u56fe\u5149\u6d41\u5e73\u6ed1\u3002\u76ee\u6807\u662f\u540c\u65f6\u6ee1\u8db3\u5149\u6d41\u7ea6\u675f\u3001\u5168\u5c40\u5e73\u6ed1\u3002<\/p>\n<p>2.Farneback Optical Flow&#xff1a;OpenCV \u5e38\u7528 Dense Flow&#xff0c;calcOpticalFlowFarneback()\u3002\u7279\u70b9&#xff1a;\u7a20\u5bc6\u3001\u8fde\u7eed\u8fd0\u52a8\u573a\u3001\u5b9e\u65f6\u6027\u8f83\u597d\u3002<\/p>\n<p>3.TV-L1 Optical Flow&#xff1a;\u9ad8\u7cbe\u5ea6 Dense Optical Flow\u3002\u76f8\u6bd4 Farneback \u66f4\u6297\u566a\u58f0\u3001\u6297\u5149\u7167\u3001\u6297\u5f02\u5e38\u503c&#xff0c;\u4f46\u8ba1\u7b97\u66f4\u6162\u3002<\/p>\n<p>cv::Ptr&lt;cv::optflow::DualTVL1OpticalFlow&gt; tvl1 &#061; cv::optflow::createOptFlow_DualTVL1();<br \/>\ncv::Mat flow;<br \/>\ntvl1-&gt;calc(gray1, gray2, flow);<br \/>\ncv::Mat warp &#061; cv::findTransformFromOpticalFlow(flow, cv::MOTION_HOMOGRAPHY);<br \/>\ncv::warpPerspective(img1, aligned, warp, img1.size());<\/p>\n<p>4.Motion Estimation&#xff08;\u57fa\u4e8e\u5757\u5339\u914d\u7684\u76f4\u63a5\u914d\u51c6&#xff09;<\/p>\n<p>OpenCV \u5185\u7f6e cv::motempl:: \u6a21\u5757 \u5168\u56fe\u5206\u5757 \u2192 \u76f4\u63a5\u8ba1\u7b97\u7070\u5ea6\u5dee \u2192 \u8f93\u51fa\u5168\u5c40\u53d8\u6362<\/p>\n<p>cv::Mat flow;<br \/>\ncv::calcOpticalFlowFarneback(gray1, gray2, flow, 0.5, 3, 15, 3, 5, 1.2, 0);<br \/>\ncv::Mat warp &#061; cv::findTransformFromOpticalFlow(flow, cv::MOTION_AFFINE);<br \/>\ncv::warpAffine(img1, aligned, warp, img1.size());<\/p>\n<table>\n<tr>\u7c7b\u522bSparse Optical Flow&#xff08;\u7a00\u758f\u5149\u6d41&#xff09;Dense Optical Flow&#xff08;\u7a20\u5bc6\u5149\u6d41&#xff09;<\/tr>\n<tbody>\n<tr>\n<td>\u6838\u5fc3\u601d\u60f3<\/td>\n<td>\u53ea\u8ddf\u8e2a\u5c11\u91cf\u5173\u952e\u70b9\u8fd0\u52a8<\/td>\n<td>\u4f30\u8ba1\u6bcf\u4e2a\u50cf\u7d20\u7684\u8fd0\u52a8<\/td>\n<\/tr>\n<tr>\n<td>\u8ddf\u8e2a\u5bf9\u8c61<\/td>\n<td>\u7279\u5f81\u70b9 \/ Corner \/ Patch<\/td>\n<td>\u5168\u56fe\u6240\u6709\u50cf\u7d20<\/td>\n<\/tr>\n<tr>\n<td>\u8f93\u51fa<\/td>\n<td>\u51e0\u5341&#xff5e;\u51e0\u767e\u4e2a\u70b9\u7684\u4f4d\u79fb<\/td>\n<td>\u6574\u5f20 Flow Map&#xff08;\u4e8c\u7ef4\u8fd0\u52a8\u573a&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u6570\u636e\u91cf<\/td>\n<td>\u5c11<\/td>\n<td>\u6781\u5927<\/td>\n<\/tr>\n<tr>\n<td>\u901f\u5ea6<\/td>\n<td>\u5feb&#xff0c;\u9002\u5408\u5b9e\u65f6<\/td>\n<td>\u6162&#xff0c;\u8ba1\u7b97\u91cd<\/td>\n<\/tr>\n<tr>\n<td>\u7cbe\u5ea6<\/td>\n<td>\u5c40\u90e8\u8f83\u51c6<\/td>\n<td>\u5168\u5c40\u8fde\u7eed\u66f4\u5b8c\u6574<\/td>\n<\/tr>\n<tr>\n<td>\u9002\u5408\u573a\u666f<\/td>\n<td>Tracking\u3001VO\u3001SLAM<\/td>\n<td>Motion Analysis\u3001\u89c6\u9891\u7406\u89e3<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u8981\u7279\u5f81\u70b9<\/td>\n<td>\u901a\u5e38\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u5229\u7528\u6574\u56fe\u7070\u5ea6<\/td>\n<td>\u90e8\u5206<\/td>\n<td>\u5168\u90e8<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5f31\u7eb9\u7406\u533a\u57df<\/td>\n<td>\u5bb9\u6613\u5931\u8d25<\/td>\n<td>\u76f8\u5bf9\u66f4\u597d<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5927\u8fd0\u52a8<\/td>\n<td>\u4e00\u822c\u9700 Pyramid<\/td>\n<td>\u73b0\u4ee3\u65b9\u6cd5\u66f4\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5185\u5b58\u5360\u7528<\/td>\n<td>\u4f4e<\/td>\n<td>\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>\u5de5\u7a0b\u590d\u6742\u5ea6<\/td>\n<td>\u8f83\u4f4e<\/td>\n<td>\u8f83\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>OpenCV \u5e38\u7528\u63a5\u53e3<\/td>\n<td>calcOpticalFlowPyrLK()<\/td>\n<td>calcOpticalFlowFarneback()<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u7b97\u6cd5<\/td>\n<td>LK\u3001KLT\u3001IC-LK<\/td>\n<td>Horn-Schunck\u3001Farneback\u3001RAFT<\/td>\n<\/tr>\n<tr>\n<td>\u6570\u5b66\u672c\u8d28<\/td>\n<td>Patch Alignment<\/td>\n<td>Dense Motion Field Estimation<\/td>\n<\/tr>\n<tr>\n<td>\u5e38\u89c1\u4f18\u5316<\/td>\n<td>Pyramid\u3001IC-LK<\/td>\n<td>Multi-scale\u3001CNN<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u7528\u9014<\/td>\n<td>\u70b9\u8ddf\u8e2a\u3001\u7a33\u5b9a\u89d2\u70b9<\/td>\n<td>\u89c6\u9891\u5206\u5272\u3001\u52a8\u4f5c\u5206\u6790<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>3.\u5168\u5c40\u76f4\u63a5\u6cd5<\/h3>\n<h4>3.1 ECC&#xff08;Enhanced Correlation Coefficient&#xff09;<\/h4>\n<p>ECC&#xff08;\u589e\u5f3a\u76f8\u5173\u7cfb\u6570&#xff09;\u5c5e\u4e8e\u57fa\u4e8e\u7070\u5ea6\u7684\u5168\u5c40\u76f4\u63a5\u6cd5&#xff0c;\u662f\u5bf9\u6574\u5f20\u56fe\u4f18\u5316&#xff0c;\u8ba9\u4e24\u5f20\u56fe\u6574\u4f53\u5c3d\u53ef\u80fd\u4e00\u81f4&#xff0c;\u672c\u8d28\u4e0a\u662f\u6c42\u4e00\u4e2aWarp&#xff08;\u53d8\u6362&#xff09;&#xff0c;\u4f7f Image Warp \u540e\u5c3d\u53ef\u80fd\u548c Image2 \u4e00\u81f4&#xff0c;\u4e5f\u5c31\u662f\u5bf9\u9f50\u3002<\/p>\n<p>LK \u7684\u672c\u8d28\u662f\u6700\u5c0f\u5316 SDD&#xff08;\u7070\u5ea6\u5dee&#xff09;&#xff0c;\u800c ECC \u5173\u6ce8\u7070\u5ea6\u53d8\u5316\u8d8b\u52bf\u662f\u5426\u4e00\u81f4&#xff0c;\u5373\u6700\u5927\u5316 Correlation&#xff08;\u76f8\u5173\u6027&#xff09;\u3002\u672c\u8d28\u4e0a\u4e24\u5f20\u56fe\u8d8a\u76f8\u4f3c&#xff0c;ECC \u8d8a\u5927&#xff0c;\u4f18\u5316\u76ee\u6807\u662f max corr(I1, I2)\u3002<\/p>\n<p>\u666e\u901a\u76f4\u63a5\u6cd5\u975e\u5e38\u6015\u4eae\u5ea6\u53d8\u5316\u3001\u5bf9\u6bd4\u5ea6\u53d8\u5316\u3001\u66dd\u5149\u53d8\u5316&#xff0c;\u800c ECC \u4f1a\u53bb\u503c\u9664\u65b9\u5dee&#xff0c;\u56e0\u6b64\u6297\u5149\u7167\u53d8\u5316&#xff0c;\u5373\u4f7f\u6574\u4f53\u4eae\u4e00\u70b9\u6216\u6697\u4e00\u70b9&#xff0c;\u53ea\u8981\u7eb9\u7406\u7ed3\u6784\u4e00\u81f4&#xff0c;\u4ecd\u7136\u80fd\u5bf9\u9f50\u3002<\/p>\n<p>&#xff08;1&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u4e9a\u50cf\u7d20\u7cbe\u5ea6\u9ad8&#xff0c;\u56e0\u4e3a\u76f4\u63a5\u4f18\u5316\u7070\u5ea6\u30022.\u5149\u7167\u9c81\u68d2\u30023.\u4e0d\u9700\u8981\u7279\u5f81\u70b9&#xff0c;\u5f31\u7eb9\u7406\u4e5f\u80fd\u5de5\u4f5c\u30024.\u6570\u5b66\u4f18\u96c5\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5bf9\u521d\u59cb\u5316\u654f\u611f&#xff0c;\u5982\u679c\u521d\u59cb\u5316\u5dee\u8ddd\u592a\u5927&#xff0c;\u5bb9\u6613\u5931\u8d25\u30022.\u8ba1\u7b97\u91cf\u8f83\u5927&#xff0c;\u56e0\u4e3a\u6574\u56fe\u4f18\u5316\u30023.\u52a8\u6001\u573a\u666f\u5dee&#xff0c;\u79fb\u52a8\u7269\u4f53\u4f1a\u7834\u574f photometric consistency&#xff08;\u5149\u5ea6\u4e00\u81f4\u6027&#xff09;\u30024.\u5927\u900f\u89c6\u53d8\u5316\u56f0\u96be&#xff0c;\u5c24\u5176\u975e\u5e73\u9762\u573a\u666f\u3002<\/p>\n<p>&#xff08;2&#xff09;\u76f8\u5173\u95ee\u9898<\/p>\n<p>\u4e3a\u4ec0\u4e48\u9700\u8981 Warp Jacobian&#xff1a;\u56e0\u4e3a\u4f18\u5316\u5668\u9700\u8981\u77e5\u9053&#xff1a;\u53c2\u6570\u53d8\u5316-&gt;\u50cf\u7d20\u4f4d\u7f6e\u53d8\u5316-&gt;\u7070\u5ea6\u53d8\u5316&#xff0c;\u4e5f\u5c31\u662fwarp\u6539\u4e00\u70b9\u56fe\u50cf\u4f1a\u600e\u4e48\u53d8\u5316&#xff0c;\u6240\u4ee5ECC\u672c\u8d28\u8fd8\u662f Nonlinear Optimization&#xff08;\u975e\u7ebf\u6027\u4f18\u5316&#xff09;\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"114\" src=\"2026-08-16op4vps5yu2j.png\" width=\"467\" \/><\/p>\n<p>\u4e3a\u4ec0\u4e48\u9700\u8981 Pyramid&#xff1a;\u539f\u59cb ECC \u95ee\u9898\u53ea\u80fd\u5904\u7406\u5c0f\u4f4d\u79fb&#xff0c;\u5982\u679c\u4e24\u56fe\u8ddd\u79bb\u5dee\u8ddd\u592a\u5927&#xff0c;\u4f18\u5316\u4f1a\u6389\u8fdb Local Minimum&#xff08;\u5c40\u90e8\u6700\u4f18&#xff09;&#xff0c;\u6240\u4ee5\u4f7f\u7528\u00a0Image Pyramid&#xff08;\u91d1\u5b57\u5854&#xff09;&#xff0c;\u4e0e Pyramid LK \u601d\u60f3\u4e00\u6837\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u52a8\u6001\u573a\u666f\u5bb9\u6613\u5931\u8d25&#xff1a;\u56e0\u4e3a\u52a8\u6001\u7269\u4f53\u4f1a\u7834\u574f Photometric Consistency&#xff08;\u5149\u5ea6\u4e00\u81f4\u6027&#xff09;&#xff0c;\u4e8e\u662f\u4f18\u5316\u76ee\u6807\u9519\u8bef&#xff0c;\u6240\u4ee5\u5bf9\u4e8e\u52a8\u6001\u573a\u666f&#xff0c;\u57fa\u4e8e\u7279\u5f81\u7684\u65b9\u6cd5\u66f4\u9c81\u68d2&#xff0c;ECC \u66f4\u8106\u5f31\u3002<\/p>\n<p>ECC \u548c LK \u5173\u7cfb&#xff1a;LK \u672c\u8d28\u662f Patch Alignment&#xff08;\u5c0f\u7a97\u53e3&#xff09;\u5bf9\u9f50&#xff1b;ECC \u672c\u8d28\u662f Whole Image Alignment \u6574\u56fe\u5bf9\u9f50\u3002\u4e24\u8005\u5171\u540c\u6838\u5fc3\u90fd\u662f Photometric Optimization&#xff08;\u7070\u5ea6\u4f18\u5316&#xff09;\u3002<\/p>\n<p>Photometric Optimization&#xff08;\u5149\u5ea6\u4f18\u5316\/\u7070\u5ea6\u4f18\u5316&#xff09;&#xff1a;\u4e0d\u7528\u7279\u5f81\u70b9\u3001\u4e0d\u7528\u5339\u914d\u70b9&#xff0c;\u76f4\u63a5\u7528\u50cf\u7d20\u7070\u5ea6\u503c\u505a\u8bef\u5dee\u6700\u5c0f\u5316&#xff0c;\u8fed\u4ee3\u6c42\u89e3\u76f8\u673a\u4f4d\u59ff \/ \u56fe\u50cf\u53d8\u6362\u77e9\u9635\u7684\u4f18\u5316\u65b9\u5f0f\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u5c5e\u4e8e\u76f4\u63a5\u6cd5&#xff1a;\u6ca1\u6709keypoint\u3001descriptor\u3001matching&#xff0c;\u800c\u662f warp(x;p) \u76f4\u63a5\u4f18\u5316 p&#xff08;\u53d8\u6362\u53c2\u6570&#xff0c;Transformation Parameters&#xff09;&#xff0c;\u4f7f warp \u540e\u56fe\u50cf\u4e0e\u76ee\u6807\u56fe\u50cf\u7070\u5ea6\u6700\u76f8\u4f3c\u3002<\/p>\n<p>&#xff08;3&#xff09;Pipeline<\/p>\n<p>1.\u521d\u59cb\u5316warp&#xff0c;\u4f8b\u5982\u5e73\u79fb\u3001\u4eff\u5c04\u3001\u5355\u5e94\u6027\u30022.Warp Image1&#xff0c;\u628a Image1 \u6295\u5f71\u5230 Image2 \u5750\u6807\u7cfb\u30023.\u8ba1\u7b97 ECC Score&#xff0c;\u5373\u4e24\u5f20\u56fe\u76f8\u5173\u6027\u30024.Compute Jacobian\u3001Build Hessian\u3001Gauss-Newton Optimization\u30025.\u66f4\u65b0Warp\u30026.\u76f4\u5230\u6536\u655b\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"405\" src=\"2026-08-16wynyropmslo.png\" width=\"1006\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"290\" src=\"2026-08-16ywzmzy2zdcy.png\" width=\"879\" \/><\/p>\n<p>double findTransformECC(InputArray templateImage, InputArray inputImage, InputOutputArray warpMatrix, int motionType, TermCriteria criteria, InputArray inputMask, int gaussFiltSize);<br \/>\n\u529f\u80fd&#xff1a;\u57fa\u4e8e\u589e\u5f3a\u76f8\u5173\u7cfb\u6570&#xff08;ECC&#xff09;\u7684\u5168\u5c40\u7070\u5ea6\u56fe\u50cf\u914d\u51c6&#xff0c;\u65e0\u9700\u7279\u5f81\u70b9&#xff0c;\u76f4\u63a5\u8fed\u4ee3\u8ba1\u7b97\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u53d8\u6362\u77e9\u9635&#xff0c;\u5b9e\u73b0\u6574\u56fe\u5bf9\u9f50\u3002<br \/>\n\u53c2\u6570&#xff1a;<br \/>\ntemplateImage&#xff1a;\u57fa\u51c6 \/ \u53c2\u8003\u56fe\u50cf&#xff08;\u7070\u5ea6\u56fe&#xff09;<br \/>\ninputImage&#xff1a;\u5f85\u914d\u51c6\u7684\u8f93\u5165\u56fe\u50cf&#xff08;\u7070\u5ea6\u56fe&#xff09;<br \/>\nwarpMatrix&#xff1a;\u8f93\u51fa\u53d8\u6362\u77e9\u9635&#xff08;\u5e73\u79fb \/ \u65cb\u8f6c \/ \u4eff\u5c04 \/ \u5355\u5e94&#xff09;<br \/>\nmotionType&#xff1a;\u53d8\u6362\u7c7b\u578b<br \/>\n &#8211; MOTION_TRANSLATION&#xff1a;\u5e73\u79fb&#xff0c;2 DOF<br \/>\n &#8211; MOTION_EUCLIDEAN&#xff1a;\u5e73\u79fb &#043; \u65cb\u8f6c&#xff08;\u521a\u6027&#xff09;&#xff0c;3 DOF<br \/>\n &#8211; MOTION_AFFINE&#xff1a;\u4eff\u5c04&#xff0c;6 DOF<br \/>\n &#8211; MOTION_HOMOGRAPHY&#xff1a;\u900f\u89c6\u5355\u5e94&#xff0c;8 DOF<br \/>\ncriteria&#xff1a;\u8fed\u4ee3\u505c\u6b62\u6761\u4ef6&#xff08;\u6b21\u6570 &#043; \u7cbe\u5ea6&#xff09;<br \/>\ninputMask&#xff1a;\u63a9\u7801&#xff08;\u4e0d\u9700\u8981\u586b Mat ()&#xff09;<br \/>\ngaussFiltSize&#xff1a;\u9ad8\u65af\u6ee4\u6ce2\u7a97\u53e3\u5927\u5c0f&#xff08;\u9ed8\u8ba4 5&#xff09;<\/p>\n<p>\u5185\u90e8\u57fa\u672cfor iteration&#xff1a;1. Warp input image 2. Compute image gradient 3. Compute ECC score 4. Compute Jacobian 5. Build Hessian 6. Solve delta_p 7. Update warp 8. Check convergence<br \/>\n\u672c\u8d28\u662f Gauss-Newton nonlinear optimization&#xff08;\u9ad8\u65af-\u725b\u987f\u975e\u7ebf\u6027\u4f18\u5316&#xff09;\u3002<\/p>\n<p>\u6ce8\u610f&#xff1a;1.\u5fc5\u987b\u662f\u7070\u5ea6\u56fe\u30022.\u5fc5\u987b float32\u3002<\/p>\n<table>\n<tr>\u65b9\u6cd5\u7c7b\u578b\u901f\u5ea6\u7cbe\u5ea6\u9002\u5408\u573a\u666fOpenCV \u51fd\u6570<\/tr>\n<tbody>\n<tr>\n<td>LK \u5149\u6d41 &#043; \u5355\u5e94<\/td>\n<td>\u7a00\u758f\u76f4\u63a5\u6cd5<\/td>\n<td>\u6781\u5feb<\/td>\n<td>\u4e2d<\/td>\n<td>\u5c0f\u8fd0\u52a8\u3001\u89c6\u9891\u7a33\u50cf<\/td>\n<td>calcOpticalFlowPyrLK<\/td>\n<\/tr>\n<tr>\n<td>ECC<\/td>\n<td>\u5168\u5c40\u76f4\u63a5\u6cd5<\/td>\n<td>\u4e2d\u6162<\/td>\n<td>\u5f88\u9ad8<\/td>\n<td>\u6574\u56fe\u5bf9\u9f50\u3001\u533b\u5b66\u56fe\u50cf\u3001\u5f31\u7eb9\u7406<\/td>\n<td>findTransformECC<\/td>\n<\/tr>\n<tr>\n<td>Phase Corr<\/td>\n<td>\u9891\u57df\u76f4\u63a5\u6cd5<\/td>\n<td>\u8d85\u5feb<\/td>\n<td>\u4f4e&#xff08;\u4ec5\u5e73\u79fb&#xff09;<\/td>\n<td>\u5e73\u79fb\u56fe\u50cf<\/td>\n<td>phaseCorrelate<\/td>\n<\/tr>\n<tr>\n<td>Farneback<\/td>\n<td>\u7a20\u5bc6\u76f4\u63a5\u6cd5<\/td>\n<td>\u5feb<\/td>\n<td>\u4e2d\u9ad8<\/td>\n<td>\u8fde\u7eed\u5e27\u3001\u89c6\u9891<\/td>\n<td>calcOpticalFlowFarneback<\/td>\n<\/tr>\n<tr>\n<td>TV-L1<\/td>\n<td>\u7a20\u5bc6\u76f4\u63a5\u6cd5<\/td>\n<td>\u6162<\/td>\n<td>\u6700\u9ad8<\/td>\n<td>\u9ad8\u7cbe\u5ea6\u914d\u51c6\u3001\u566a\u58f0\u56fe\u50cf<\/td>\n<td>DualTVL1OpticalFlow<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>4.\u76f8\u4f4d\u76f8\u5173\u6cd5&#xff08;Phase Correlation&#xff09;<\/h3>\n<p>\u57fa\u4e8e\u9891\u57df\u7684\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5&#xff0c;\u5229\u7528\u5085\u91cc\u53f6\u53d8\u6362\u7684\u5e73\u79fb\u6027\u8d28\u901a\u8fc7\u9891\u8c31\u76f8\u4f4d\u5dee\u4f30\u8ba1\u4e24\u5e45\u56fe\u4e4b\u95f4\u7684\u5e73\u79fb\u91cf\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u5047\u8bbe\u4e24\u5e45\u56fe\u4ec5\u5b58\u5728\u5e73\u79fb&#xff0c;<img decoding=\"async\" alt=\"$g(x,y)=f(x-\\\\Delta x,\\\\, y-\\\\Delta y)$\" class=\"mathcode\" src=\"2026-08-162bdazmyj1hl.png\" \/>\u3002<\/p>\n<p>&#xff08;1&#xff09;\u76f8\u5173\u6982\u5ff5<\/p>\n<p>\u5085\u91cc\u53f6\u53d8\u6362&#xff1a;\u56fe\u50cf\u518d\u7a7a\u95f4\u57df\u4e2d\u7684\u5e73\u79fb\u4f1a\u53d8\u6210\u5085\u91cc\u53f6\u57df\u4e2d\u7684\u76f8\u4f4d\u53d8\u5316&#xff0c;\u800c\u5e45\u503c\u4e0d\u53d8\u3002\u5047\u8bbe\u4e24\u5f20\u56fe&#xff0c;I2\u200b(x,y) \u662f I1\u200b(x,y) \u5e73\u79fb\u5f97\u5230\u00a0<img decoding=\"async\" alt=\"$I_2(x,y)=I_1(x-\\\\Delta x,\\\\, y-\\\\Delta y)$\" class=\"mathcode\" src=\"2026-08-16aymdmlabswr.png\" \/>&#xff0c;\u90a3\u4e48\u5b83\u4eec\u5085\u91cc\u53f6\u53d8\u6362\u6ee1\u8db3\u3002\u5e45\u503c\u4e0d\u53d8<img decoding=\"async\" alt=\"$F_2(u,v)=F_1(u,v)e^{-j2\\\\pi(u\\\\Delta x+v\\\\Delta y)}$\" class=\"mathcode\" src=\"2026-08-16ojfvjtm0vj5.png\" \/>&#xff0c;\u53ea\u6539\u53d8\u76f8\u4f4d\u589e\u52a0\u00a0<img decoding=\"async\" alt=\"$e^{-j2\\\\pi\\\\bigl(u\\\\Delta x + v\\\\Delta y\\\\bigr)}$\" class=\"mathcode\" src=\"2026-08-16sf0sg4gqjwq.png\" \/>&#xff0c;\u8fd9\u610f\u5473\u7740\u56fe\u50cf\u5e73\u79fb\u5173\u7cfb\u5b8c\u5168\u9690\u85cf\u518d\u76f8\u4f4d\u5dee\u91cc\u9762&#xff0c;\u56e0\u6b64\u53ea\u8981\u5206\u6790\u76f8\u4f4d\u5c31\u80fd\u6062\u590d (\u0394x,\u0394y)\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u5e45\u503c\u4e0d\u53d8&#xff1a;F1\u200b(u,v) \u672c\u8eab\u662f\u4e00\u4e2a\u590d\u6570&#xff0c;\u53ef\u4ee5\u5199\u6210\u5e45\u503c &#043; \u76f8\u4f4d\u7684\u5f62\u5f0f&#xff1a;<img decoding=\"async\" alt=\"F_1(u,v)=|F_1(u,v)|\\\\cdot e^{j\\\\phi_1(u,v)}\" class=\"mathcode\" src=\"2026-08-16vseplou0q5a.png\" \/>\u00a0\u3002\u540e\u9762\u4e58\u7684<img decoding=\"async\" alt=\"e^{-j2\\\\pi(u\\\\Delta x+v\\\\Delta y)}\" class=\"mathcode\" src=\"2026-08-16hpmj0yjfo4h.png\" \/>\u4e5f\u662f\u4e00\u4e2a\u590d\u6570&#xff0c;\u5b83\u7684\u5f62\u5f0f\u662f\u5355\u4f4d\u590d\u6570&#xff0c;\u5e45\u503c\u6c38\u8fdc\u662f 1&#xff08;\u56e0\u4e3a<img decoding=\"async\" alt=\"\\\\big|e^{j\\\\theta}\\\\big|\" class=\"mathcode\" src=\"2026-08-16mszjzji5yhr.png\" \/> &#061;1&#xff09;\u5b83\u7684\u76f8\u4f4d\u662f \u22122\u03c0(u\u0394x&#043;v\u0394y)\u3002\u5c06 F1 \u7684\u590d\u6570\u5f62\u5f0f\u5e26\u5165\u5f97<img decoding=\"async\" alt=\"F_2(u,v) = \\\\left( |F_1| \\\\cdot e^{j\\\\phi_1} \\\\right) \\\\cdot e^{-j2\\\\pi(u\\\\Delta x + v\\\\Delta y)}\" class=\"mathcode\" src=\"2026-08-162top0pfpylu.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"F_2(u,v) = |F_1| \\\\cdot e^{j\\\\left( \\\\phi_1 - 2\\\\pi(u\\\\Delta x + v\\\\Delta y) \\\\right)}\" class=\"mathcode\" src=\"2026-08-16qubjubfksgu.png\" \/>&#xff0c;\u5e45\u503c\u90e8\u5206\u8fd8\u662f |F1| \u6ca1\u6709\u53d8\u5316&#xff1b;\u76f8\u4f4d\u90e8\u5206&#xff1a;\u53d8\u6210\u4e86<img decoding=\"async\" alt=\"\\\\phi_1 - 2\\\\pi\\\\left(u\\\\Delta x + v\\\\Delta y\\\\right)\" class=\"mathcode\" src=\"2026-08-16qyccpzh1lwo.png\" \/> &#xff0c;\u6bd4\u539f\u6765\u591a\u4e86\u4e00\u4e2a\u56fa\u5b9a\u7684\u7ebf\u6027\u504f\u79fb&#xff0c;\u6240\u4ee5\u8bf4 \u201c\u53ea\u6539\u53d8\u76f8\u4f4d\u201d\u3002\u4efb\u4f55\u590d\u6570\u90fd\u53ef\u4ee5\u5199\u6210\u6781\u5750\u6807\u5f62\u5f0f&#xff1a;<img decoding=\"async\" alt=\"z = r \\\\cdot e^{j\\\\theta}\" class=\"mathcode\" src=\"2026-08-16ddr0vf1geh5.png\" \/>\u3002\u5176\u4e2d&#xff1a;r&#061;\u2223z\u2223 \u662f\u6a21&#xff08;\u5e45\u503c&#xff09;&#xff0c;\u03b8 \u662f\u8f90\u89d2&#xff08;\u76f8\u4f4d&#xff09;&#xff0c;<img decoding=\"async\" alt=\"\\\\left| e^{j\\\\theta} \\\\right|\" class=\"mathcode\" src=\"2026-08-16zldv3bgdru1.png\" \/>\u662f\u5355\u4f4d\u590d\u6570&#xff0c;\u4e58\u4ee5\u5355\u4f4d\u590d\u6570&#xff0c;\u5e45\u503c\u4e0d\u53d8&#xff0c;\u53ea\u4f1a\u8ba9\u590d\u6570\u5728\u590d\u5e73\u9762\u4e0a\u7ed5\u539f\u70b9\u65cb\u8f6c\u4e00\u4e2a\u89d2\u5ea6 \u03b8&#xff0c;\u4e5f\u5c31\u662f\u76f8\u4f4d\u53d8\u5316\u3002<\/p>\n<p>\u5085\u91cc\u53f6\u57df&#xff08;\u9891\u57df&#xff09;&#xff1a;\u56fe\u50cf\u539f\u672c\u4ee5\u50cf\u7d20\u5750\u6807 (x,y) \u63cf\u8ff0&#xff0c;\u53eb\u7a7a\u95f4\u57df&#xff1b;\u7ecf\u8fc7\u5085\u91cc\u53f6\u53d8\u6362\u540e&#xff0c;\u6539\u7528\u9891\u7387 (u,v) \u63cf\u8ff0&#xff0c;\u8fd9\u4e2a\u65b0\u7684\u8868\u8fbe\u7a7a\u95f4&#xff0c;\u5c31\u662f\u5085\u91cc\u53f6\u57df&#xff08;\u9891\u57df&#xff09;\u3002<\/p>\n<p>\u5e45\u503c\u548c\u76f8\u4f4d&#xff1a;\u5085\u91cc\u53f6\u53d8\u6362\u516c\u5f0f F(u)&#061;A(u)\u22c5ej\u03c6(u)&#xff0c;A(u) \u5e45\u503c&#xff0c;\u8be5\u9891\u7387\u5206\u91cf\u7684\u5f3a\u5ea6 \/ \u6743\u91cd&#xff1b;\u03c6(u) \u76f8\u4f4d&#xff0c;\u4ee3\u8868\u8be5\u9891\u7387\u5206\u91cf\u7684\u4f4d\u7f6e \/ \u504f\u79fb\u4fe1\u606f&#xff0c;\u51b3\u5b9a\u6ce2\u5f62\u5728\u7a7a\u95f4\u4e2d\u7684\u5206\u5e03\u3001\u4f4d\u7f6e\u3001\u5f62\u72b6\u8f6e\u5ed3\u3002<\/p>\n<p>\u8ba1\u7b97\u4e92\u529f\u7387\u8c31\u5f52\u4e00\u5316\u5e45\u503c&#xff1a;<img decoding=\"async\" alt=\"F_2^{*}\" class=\"mathcode\" src=\"2026-08-16izvvlxrdpfi.png\" \/>&#xff0c;\u662f F2\u200b \u7684\u590d\u6570\u5171\u8f6d&#xff08;\u865a\u90e8\u53d6\u53cd&#xff09;&#xff0c;\u4e92\u529f\u7387\u8c31<br \/>\n<img decoding=\"async\" alt=\"R(u,v)=e^{j2\\\\pi(u\\\\Delta x+v\\\\Delta y)}\" class=\"mathcode\" src=\"2026-08-16r0kwswgciyc.png\" \/>&#xff0c;\u5e45\u503c\u5168\u90e8\u88ab\u5f52\u4e00\u5316&#xff0c;\u53ea\u5269\u76f8\u4f4d\u4fe1\u606f\u3002<\/p>\n<p><img decoding=\"async\" alt=\"R(u,v) = \\\\frac{F_1(u,v)\\\\,F_2^*(u,v)}{\\\\left|F_1(u,v)\\\\,F_2^*(u,v)\\\\right|}\" class=\"mathcode\" src=\"2026-08-16o1mehdxgpxn.png\" \/><\/p>\n<p>\u5206\u5b50&#xff1a;<img decoding=\"async\" alt=\"F_1 \\\\cdot F_2^* = F_1 \\\\cdot F_1^* \\\\cdot e^{j2\\\\pi(u\\\\Delta x + v\\\\Delta y)}\" class=\"mathcode\" src=\"2026-08-161sbgkrqagjk.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"F_1 \\\\cdot F_2^* = \\\\left|F_1\\\\right|^2 \\\\cdot e^{j2\\\\pi(u\\\\Delta x + v\\\\Delta y)}\" class=\"mathcode\" src=\"2026-08-16upcpi5he0t0.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"\\\\left|F_1 F_2^*\\\\right| = \\\\left|F_1\\\\right|^2 \\\\cdot \\\\left|e^{j2\\\\pi(u\\\\Delta x + v\\\\Delta y)}\\\\right|\" class=\"mathcode\" src=\"2026-08-16e0hpe5dcwcj.png\" \/><\/p>\n<p>\u5206\u6bcd&#xff1a;<img decoding=\"async\" alt=\"\\\\left|F_1 F_2^*\\\\right| = \\\\left|F_1\\\\right|^2 \\\\cdot \\\\left|e^{j2\\\\pi(u\\\\Delta x + v\\\\Delta y)}\\\\right|\" class=\"mathcode\" src=\"2026-08-16e0hpe5dcwcj.png\" \/><\/p>\n<p>\u76f8\u9664\u5316\u7b80&#xff1a;<img decoding=\"async\" alt=\"R(u,v) = \\\\frac{\\\\left|F_1\\\\right|^2 \\\\cdot e^{j2\\\\pi(u\\\\Delta x + v\\\\Delta y)}}{\\\\left|F_1\\\\right|^2}=e^{j2\\\\pi(u\\\\Delta x + v\\\\Delta y)}\" class=\"mathcode\" src=\"2026-08-16gt22bjvtumu.png\" \/><\/p>\n<p>\u5085\u91cc\u53f6\u9006\u53d8\u6362&#xff1a;\u8bb0\u9006\u53d8\u6362\u4e3a <img decoding=\"async\" alt=\"\\\\mathcal{F}^{-1}\" class=\"mathcode\" src=\"2026-08-161bbaw12aozt.png\" \/>&#xff0c;<img decoding=\"async\" alt=\"I(x,y)=\\\\mathcal{F}^{-1}\\\\left[R(u,v)\\\\right]\" class=\"mathcode\" src=\"2026-08-16m24xkwzwxrv.png\" \/>&#xff0c;\u6839\u636e\u5085\u91cc\u53f6\u53d8\u6362\u5bf9\u5076\u6027\u8d28&#xff1a;<br \/>\n<img decoding=\"async\" alt=\"\\\\mathcal{F}^{-1}\\\\left\\\\{e^{j2\\\\pi(u\\\\Delta x+v\\\\Delta y)}\\\\right\\\\} = \\\\delta(x-\\\\Delta x,\\\\; y-\\\\Delta y)\" class=\"mathcode\" src=\"https:\/\/latex.csdn.net\/eq?%5Cmathcal%7BF%7D%5E%7B-1%7D%5Cleft%5C%7Be%5E%7Bj2%5Cpi%28u%5CDelta%20x&amp;plus;v%5CDelta%20y%29%7D%5Cright%5C%7D%20%3D%20%5Cdelta%28x-%5CDelta%20x%2C%5C%3B%20y-%5CDelta%20y%29\" \/>&#xff0c;\u7a7a\u57df\u56fe\u50cf I(x,y) \u4e0a&#xff0c;\u4ec5\u5728\u5750\u6807 (\u0394x,\u0394y) \u5904\u51fa\u73b0\u4e00\u4e2a\u5c16\u9510\u5cf0\u503c&#xff1b;\u5176\u4f59\u4f4d\u7f6e\u6570\u503c\u8fd1\u4f3c\u4e3a 0\u3002\u5cf0\u503c\u6240\u5728\u5750\u6807 (\u0394x,\u0394y)&#xff0c;\u5c31\u662f\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u5e73\u79fb\u91cf\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"555\" src=\"2026-08-16rb53up4nkbc.png\" width=\"591\" \/><\/p>\n<p>\u5e73\u79fb\u6027\u8d28&#xff1a;\u7a7a\u95f4\u57df\u5e73\u79fb g(x,y)&#061;f(x\u2212\u0394x,y\u2212\u0394y)&#xff0c;\u5728\u9891\u57df\u53d8\u6210\u76f8\u4f4d\u79fb\u52a8\u3002<\/p>\n<p>\u65cb\u8f6c\u6027\u8d28&#xff1a;\u7a7a\u95f4\u57df\u65cb\u8f6c f(r,\u03b8)\u2192f(r,\u03b8\u2212\u0394\u03b8)&#xff0c;\u5728\u6781\u5750\u6807\u91cc\u65cb\u8f6c\u53d8\u6210\u89d2\u5ea6\u65b9\u5411\u5e73\u79fb\u3002<\/p>\n<p>\u7f29\u653e\u6027\u8d28&#xff1a;\u7a7a\u95f4\u57df\u7f29\u653e f(ax,ay)&#xff0c;\u4f1a\u5728\u9891\u57df\u4ea7\u751f\u534a\u5f84\u65b9\u5411\u7f29\u653e&#xff0c;\u5bf9\u534a\u5f84\u53d6log&#xff0c;log(ar)&#061;loga&#043;logr&#xff0c;\u5c06\u7f29\u653e\u53d8\u6210\u4e86\u5e73\u79fb\u3002<\/p>\n<p>\u4f4e\u901a\u6ee4\u6ce2&#xff1a;\u4fdd\u7559\u4f4e\u9891&#xff0c;\u6ee4\u9664 \/ \u524a\u5f31\u9ad8\u9891\u3002<\/p>\n<p>&#xff08;2&#xff09;\u4f18\u7f3a\u70b9<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u4e9a\u50cf\u7d20\u914d\u51c6\u30022.\u6297\u5149\u7167&#xff0c;\u4f7f\u7528\u4e92\u529f\u7387\u8c31\u53bb\u6389\u5e45\u503c\u30023.FFT&#xff0c;\u5feb\u901f\u5085\u91cc\u53f6\u53d8\u6362&#xff0c;\u65f6\u95f4\u590d\u6742\u5ea6\u4e3aO(NlogN)\u30024.\u65e0\u9700\u7279\u5f81\u70b9\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u53ea\u80fd\u5904\u7406\u6574\u4f53\u5e73\u79fb&#xff0c;\u89e3\u51b3\u65b9\u6cd5 Fourier-Mellin Transform&#xff08;\u6885\u6797\u53d8\u6362&#xff09;\u30022.\u5bf9\u906e\u6321\u654f\u611f&#xff0c;\u5085\u91cc\u53f6\u53d8\u6362\u662f\u5168\u5c40\u53d8\u6362\u30023.\u5bf9\u5c40\u90e8\u5f62\u53d8\u5dee\u30024.\u5468\u671f\u7eb9\u7406\u53ef\u80fd\u591a\u5cf0&#xff0c;\u591a\u4e2a\u5bf9\u9f50\u90fd\u53ef\u80fd\u5bf9\u9f50\u6210\u529f\u3002<\/p>\n<p>&#xff08;3&#xff09;FMT&#xff08;\u5085\u91cc\u53f6\u2013\u6885\u6797\u53d8\u6362&#xff09;<\/p>\n<p>Phase Correlation \u7684\u6269\u5c55\u7248&#xff0c;\u7528\u4e8e\u89e3\u51b3\u5e73\u79fb &#043; \u65cb\u8f6c &#043; \u7f29\u653e\u914d\u51c6\u95ee\u9898\u3002\u6838\u5fc3\u662f\u5c06\u65cb\u8f6c\u548c\u7f29\u653e\u8f6c\u6362\u6210\u5e73\u79fb&#xff0c;\u7136\u540e\u518d\u7528\u00a0Phase Correlation\u00a0\u6c42\u89e3\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;<\/p>\n<li>\u5bf9\u56fe\u50cf f(x,y) \u505a FFT \u5feb\u901f\u5085\u91cc\u53f6\u53d8\u6362\u5f97\u5230 F(u,v)&#xff1a;\u5e73\u79fb\u53ea\u5f71\u54cd\u76f8\u4f4d&#xff0c;\u800c\u65cb\u8f6c\/\u7f29\u653e\u53ea\u8981\u5f71\u54cd\u9891\u8c31\u7ed3\u6784\u3002<\/li>\n<li>\u53d6\u9891\u8c31\u5e45\u503c&#xff1a;\u53d6\u00a0<img decoding=\"async\" alt=\"\\\\left|F(u,v)\\\\right|\" class=\"mathcode\" src=\"2026-08-16uyzvmk2oujq.png\" \/>&#xff0c;\u53bb\u9664\u5e73\u79fb\u5f71\u54cd\u3002<\/li>\n<li>\u8f6c\u6781\u5750\u6807&#xff1a;\u5750\u6807 (u,v) \u53d8\u6210 (r,\u03b8)\u3002\u6b64\u65f6\u65cb\u8f6c\u53d8\u6210\u4e86\u03b8\u65b9\u5411\u5e73\u79fb\u3002<\/li>\n<li>Log-Polar\u53d8\u6362&#xff1a;\u5bf9\u534a\u5f84 r \u53d6\u5bf9\u6570 \u03c1&#061;logr \u5f97\u5230 (\u03c1,\u03b8)&#xff0c;\u5c06\u7f29\u653e\u53d8\u6210\u03c1\u65b9\u5411\u5e73\u79fb\u3002<\/li>\n<li>\u76f8\u4f4d\u76f8\u5173&#xff1a;\u5bf9 Log-Polar \u56fe\u91cd\u65b0\u505a FFT&#xff0c;\u6784\u9020\u4e92\u529f\u666e\u7387&#xff0c;\u5085\u91cc\u53f6\u9006\u53d8\u6362&#xff0c;\u5bfb\u627e\u5cf0\u503c&#xff0c;\u5f97\u5230\u00a0(\u0394\u03c1,\u0394\u03b8)&#xff0c;\u0394\u03b8\u5c31\u662f\u56fe\u50cf\u65cb\u8f6c\u89d2\u5ea6&#xff0c;\u0394\u03c1&#061;logs&#xff0c;\u0394\u03c1&#061;logs&#xff0c;\u7f29\u653e\u534a\u5f84<img decoding=\"async\" alt=\"s=e^{\\\\Delta \\\\rho}\" class=\"mathcode\" src=\"2026-08-16t2qu5aq4nkb.png\" \/>\u3002<\/li>\n<li>\u53bb\u9664\u65cb\u8f6c\u7f29\u653e\u540e&#xff0c;\u5728\u505a\u4e00\u6b21\u666e\u901a phase correlation&#xff0c;\u6c42(\u0394x,\u0394y)\u3002<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"640\" src=\"2026-08-16i3ajm2wojpi.png\" width=\"484\" \/><\/p>\n<p>&#xff08;4&#xff09;\u57fa\u4e8e\u5085\u91cc\u53f6\u6781\u5750\u6807\u7684\u65b9\u6cd5<\/p>\n<p>\u4e0d\u505alog&#xff0c;\u53ea\u505a Polar Transform &#043; Phase Correlation\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;<\/p>\n<li>FFT\u3002<\/li>\n<li>\u53d6\u9891\u8c31\u5e45\u503c\u3002<\/li>\n<li>\u8f6c\u6781\u5750\u6807\u3002<\/li>\n<li>\u5bf9\u6781\u5750\u6807\u56fe\u505a\u76f8\u4f4d\u76f8\u5173\u3002<\/li>\n<li>\u53bb\u9664\u65cb\u8f6c&#xff0c;\u505a\u666e\u901a\u76f8\u4f4d\u76f8\u5173\u6c42\u5e73\u79fb<\/li>\n<p>FMT\u53ea\u662f\u7ecf\u5178\u9891\u57df\u914d\u51c6\u6846\u67b6&#xff0c;\u8fd8\u6709\u5f88\u591a\u6539\u8fdb\u7248\u3002\u4f20\u7edfFMT\u7684\u95ee\u9898\u6709\u5bf9\u900f\u89c6\u5f31\u3001\u5bf9\u5c40\u90e8\u5f62\u53d8\u5dee\u3001\u5bf9\u906e\u6321\u654f\u611f\u3001\u8fb9\u7f18\u6548\u5e94\u660e\u663e\u3001\u5bf9\u91cd\u590d\u7eb9\u7406\u4e0d\u7a33\u5b9a\u3001\u5bf9\u975e\u5747\u5300\u5c3a\u5ea6\u5dee\u3002\u56e0\u6b64\u73b0\u4ee3\u5f88\u591a\u6539\u8fdb\u672c\u8d28\u90fd\u662f\u8ba9\u9891\u57df\u914d\u51c6\u66f4\u5c40\u90e8\u3001\u9c81\u68d2\u3001\u7a33\u5b9a\u3002<\/p>\n<p>&#xff08;5&#xff09;Windowed FMT<\/p>\n<p>\u5728FMT\u524d\u52a0\u7a97\u53e3\u51fd\u6570 Hanning\/Hamming \u51cf\u5c11 spectral leakage&#xff08;\u9891\u8c31\u6cc4\u6f0f&#xff09;\u3002FFT \u9ed8\u8ba4\u56fe\u50cf\u8fb9\u754c\u5468\u671f\u8fde\u7eed&#xff0c;\u5f3a\u884c\u5468\u671f\u5ef6\u62d3&#xff0c;\u5b9e\u9645\u8fb9\u7f18\u4f1a\u7a81\u53d8\u5bfc\u81f4\u9891\u8c31\u6cc4\u9732\u3002\u4f8b\u5982\u56fe\u50cf&#xff1a;\u9ed1\u8fb9 | \u56fe\u50cf | \u767d\u8fb9&#xff1b;\u5ef6\u62d3 &#8230; \u767d\u8fb9 | \u9ed1\u8fb9 | \u56fe\u50cf | \u767d\u8fb9 | \u9ed1\u8fb9 | \u56fe\u50cf | \u767d\u8fb9 &#8230;\u3002<\/p>\n<p>\u7a97\u53e3\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u6743\u91cd\u51fd\u6570&#xff0c;\u5bf9\u8fb9\u7f18\u9010\u6e10\u8870\u51cf&#xff0c;\u4f8b\u5982\u4e2d\u5fc3\u6743\u91cd\u4e3a1&#xff0c;\u8fb9\u7f18\u9010\u6e10\u53d80\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"231\" src=\"2026-08-16bp1lpc10wsa.png\" width=\"414\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"189\" src=\"2026-08-16d5p22dqpqgb.png\" width=\"839\" \/><\/p>\n<p>&#xff08;6&#xff09;Pyramid FMT<\/p>\n<p>\u591a\u5c3a\u5ea6FMT&#xff0c;\u6784\u5efa Gaussian Pyramid&#xff0c;\u4ece\u7c97\u5c3a\u5ea6\u5230\u7ec6\u5c3a\u5ea6\u9010\u5c42FMT&#xff0c;\u63d0\u5347\u5bf9\u5927\u5c3a\u5ea6\u53d8\u5316\u548c\u566a\u58f0\u7684\u9c81\u68d2\u6027\u3002\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;<\/p>\n<li>\u6784\u5efa\u56fe\u50cf\u91d1\u5b57\u5854\u3002<\/li>\n<li>\u6bcf\u4e00\u5c42\u72ec\u7acb\u505a FMT\u3002<\/li>\n<li>\u7c97\u5230\u7ec6&#xff1a;\u4ece\u4f4e\u5206\u8fa8\u7387\u5230\u9ad8\u5206\u8fa8\u7387&#xff0c;\u7c97\u5c3a\u5ea6\u4f30\u8ba1\u5168\u5c40\u7ed3\u6784&#xff0c;\u7cfb\u5c3a\u5ea6\u505a\u7cbe\u786e<\/li>\n<li>\u7ed3\u679c\u878d\u5408&#xff1a;\u5e38\u89c1\u878d\u5408\u65b9\u5f0f&#xff1a;1.\u7f6e\u4fe1\u5ea6\u52a0\u6743<img decoding=\"async\" alt=\"T=\\\\sum w_l\\\\,T^l\" class=\"mathcode\" src=\"2026-08-16lql1cxnnqgy.png\" \/>\u30022.\u9891\u8c31\u5cf0\u503c\u4e00\u81f4\u6027\u6295\u7968\u30023.\u53ea\u7528\u4f4e\u5c42\u521d\u59cb\u5316&#xff0c;\u7528\u9ad8\u5c42\u7279\u5f81\u4fee\u6b63\u3002<\/li>\n<p>\u91d1\u5b57\u5854\u7684\u4f5c\u7528&#xff1a;1.\u964d\u4f4e\u9891\u8c31\u590d\u6742\u5ea6&#xff0c;\u4f4e\u5206\u8fa8\u7387\u4e0b\u9ad8\u9891\u88ab\u6291\u5236&#xff0c;\u4e3b\u7ed3\u6784\u66f4\u660e\u663e\u30022.\u589e\u5f3a\u5927\u4f4d\u79fb\u9c81\u68d2\u6027&#xff0c;\u5927\u4f4d\u79fb\u5728\u9ad8\u5206\u8fa8\u7387\u4e0b\u5f88\u96be\u5339\u914d&#xff0c;\u5728\u4f4e\u5206\u8fa8\u7387\u53d8\u6210\u5c0f\u4f4d\u79fb\u30023.\u51cf\u5c11 log-polar \u91c7\u6837\u8bef\u5dee&#xff0c;log-polar \u5bf9\u9ad8\u9891\u5f88\u654f\u611f&#xff0c;\u91d1\u5b57\u5854\u7684\u5929\u7136\u4f4e\u901a\u6ee4\u6ce2\u3002<\/p>\n<p>&#xff08;7&#xff09;Local FMT<\/p>\n<p>LFMT\u00a0\u5bf9\u5c40\u90e8patch \u8fdb\u884cFFT&#xff0c;\u5bf9\u6bcf\u4e2apatch \u72ec\u7acb\u4f30\u8ba1\u65cb\u8f6c\u3001\u7f29\u653e\u3001\u5e73\u79fb&#xff0c;\u518d\u8fdb\u884c\u5168\u5c40\u878d\u5408\u3002<\/p>\n<p>\u6807\u51c6 FMT \u5047\u8bbe\u6574\u56fe\u56fe\u50cf\u6ee1\u8db3\u201c\u5168\u5c40\u76f8\u4f3c\u53d8\u6362\u201d&#xff0c;1.\u906e\u6321&#xff0c;FFT\u88ab\u6c61\u67d3&#xff1b;2.\u52a8\u6001\u7269\u4f53&#xff0c;\u975e\u521a\u6027\u6270\u52a8&#xff1b;3.\u89c6\u5dee&#xff0c;\u5c40\u90e8\u51e0\u4f55\u4e0d\u4e00\u81f4&#xff1b;4.\u975e\u5e73\u9762\u573a\u666f&#xff0c;\u5355\u4e00\u5355\u5e94\u6027\u4e0d\u6210\u7acb&#xff1b;5.\u5c40\u90e8\u7eb9\u7406\u5f3a\u4f46\u5168\u5c40\u5f31&#xff0c;\u5cf0\u503c\u4e0d\u7a33\u5b9a&#xff1b;\u8fd9\u4e9b\u573a\u666f\u53ef\u80fd\u5931\u8d25\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3\u662f\u4ece\u5168\u5c40\u9891\u57df \u2192 \u5c40\u90e8\u9891\u57df\u96c6\u6210&#xff0c;\u5c06\u56fe\u50cf\u5212\u5206\u4e3a patch&#xff1a;I\u2192{P1\u200b,P2\u200b,&#8230;,PN\u200b}&#xff0c;\u5bf9\u6bcf\u4e2apatch&#xff1a;<\/p>\n<li>\u5c40\u90e8 FFT\u3002<\/li>\n<li>log-polar \u53d8\u6362<\/li>\n<li>\u76f8\u4f4d\u76f8\u5173&#xff1a;\u4f30\u8ba1\u5c40\u90e8\u53d8\u6362&#xff0c;<img decoding=\"async\" alt=\"T_i=\\\\left(\\\\Delta x_i,\\\\;\\\\Delta y_i,\\\\;\\\\theta_i,\\\\;s_i\\\\right)\" class=\"mathcode\" src=\"2026-08-164wwxb5iw2c1.png\" \/>\u3002<\/li>\n<li>\u4e0d\u76f4\u63a5\u8f93\u51fa\u4e00\u4e2a\u5168\u5c40\u53d8\u6362&#xff0c;\u800c\u662f\u8f93\u51fa\u4e00\u7ec4\u5c40\u90e8\u8fd0\u52a8\u573a\u3002<\/li>\n<li>\u878d\u5408\u7b56\u7565&#xff1a;1.RANSAC \u878d\u5408&#xff0c;\u5047\u8bbe\u5927\u90e8\u5206 patch \u6ee1\u8db3\u540c\u4e00\u8fd0\u52a8\u6a21\u578b\u30022.\u52a0\u6743\u5e73\u5747&#xff0c;<img decoding=\"async\" alt=\"T=\\\\sum w_{i}\\\\,T_{i}\" class=\"mathcode\" src=\"2026-08-16clqeiimhcfe.png\" \/>&#xff0c;\u6743\u91cd\u6765\u81ea FFT \u5cf0\u503c\u9510\u5ea6\u3001\u9891\u8c31\u80fd\u91cf\u3001\u533a\u57df\u7eb9\u7406\u4e30\u5bcc\u5ea6\u30023.\u56fe\u4f18\u5316&#xff08;\u9ad8\u7ea7\u7248\u672c&#xff09;\u3002<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"553\" src=\"2026-08-16scd0uyuo0z0.png\" width=\"1015\" \/><\/p>\n<p>&#xff08;8&#xff09;Sub-pixel Phase Correlation<\/p>\n<p>\u6807\u51c6 Phase Correlation \u5f97\u5230\u7684\u5cf0\u503c\u4f4d\u7f6e&#xff08;\u4f4d\u79fb&#xff09;\u901a\u5e38\u53ea\u80fd\u7cbe\u786e\u5230\u6574\u6570\u50cf\u7d20&#xff0c;\u4e9a\u50cf\u7d20\u76f8\u4f4d\u76f8\u5173\u5bf9 correlation peak \u505a\u5c40\u90e8\u66f2\u9762\u62df\u5408&#xff0c;\u628a\u4f4d\u79fb\u4f30\u8ba1\u4ece\u6574\u6570\u50cf\u7d20\u7cbe\u5ea6 \u2192 \u4e9a\u50cf\u7d20\u7cbe\u5ea6\u3002<\/p>\n<p>\u5e38\u89c1\u7684\u4e9a\u50cf\u7d20\u4f30\u8ba1\u65b9\u6cd5&#xff1a;<\/p>\n<p>1.\u629b\u7269\u7ebf\u62df\u5408&#xff08;\u6700\u5e38\u7528&#xff09;&#xff1a;\u5728\u5cf0\u503c\u9644\u8fd1\u53d6 3*3 \u6216 1\u7ef4\u90bb\u57df f(\u22121) f(0) f(1)&#xff0c;\u62df\u5408 f(x)&#061;ax2&#043;bx&#043;c&#xff0c;\u5cf0\u503c\u4f4d\u7f6e<img decoding=\"async\" alt=\"\\\\delta x=\\\\frac{r_{-1}-r_{+1}}{2(r_{-1}-2r_0+r_{+1})}\" class=\"mathcode\" src=\"2026-08-16f2uub2uwiif.png\" \/>&#xff0c;\u6700\u7ec8\u4e9a\u50cf\u7d20\u4f4d\u7f6e<img decoding=\"async\" alt=\"x=x_0+\\\\delta x\" class=\"mathcode\" src=\"2026-08-16fahe5hxscbw.png\" \/>\u3002\u7b80\u5355\u3001\u5feb\u3002<\/p>\n<p>2.\u9ad8\u65af\u62df\u5408&#xff1a;\u5047\u8bbe\u5cf0\u503c\u670d\u4ece<img decoding=\"async\" alt=\"f(x)=Ae^{-\\\\frac{(x-\\\\mu)^2}{2\\\\sigma^2}}\" class=\"mathcode\" src=\"2026-08-16ixwzobfijwv.png\" \/>&#xff0c;\u53d6log&#xff1a;<img decoding=\"async\" alt=\"\\\\ln f(x)=-\\\\frac{(x-\\\\mu)^2}{2\\\\sigma^2}\" class=\"mathcode\" src=\"2026-08-16vzytzghka3k.png\" \/>&#xff0c;\u62df\u5408\u5f97\u5230 \u03bc &#061; \u4e9a\u50cf\u7d20\u4f4d\u7f6e\u3002\u66f4\u5e73\u6ed1\u3001\u6297\u566a\u66f4\u597d\u3002<\/p>\n<p>3.\u8d28\u5fc3\u6cd5&#xff1a;\u5728\u5cf0\u503c\u90bb\u57df\u6c42<img decoding=\"async\" alt=\"x^{*}=\\\\frac{\\\\sum x_i f_i}{\\\\sum f_i}\" class=\"mathcode\" src=\"2026-08-16k2xh0akeu0q.png\" \/>\u3002\u7a33\u5b9a&#xff0c;\u4e0d\u9700\u8981\u62df\u5408\u6a21\u578b&#xff0c;\u4f46\u662f\u5bf9\u566a\u58f0\u654f\u611f&#xff0c;\u5cf0\u4e0d\u5c16\u9510\u65f6\u8bef\u5dee\u5927\u3002<\/p>\n<p>4.sinc \u63d2\u503c&#xff08;\u7406\u8bba\u6700\u4f18&#xff09;&#xff1a;\u7406\u60f3\u76f8\u5173\u5cf0\u662f sinc \u51fd\u6570&#xff0c;\u5bf9\u79bb\u6563\u70b9\u505a sinc interpolation&#xff08;\u5e78\u683c\u63d2\u503c&#xff09;\u5f97\u5230\u8fde\u7eed\u51fd\u6570\u3002\u7406\u8bba\u6700\u7cbe\u786e&#xff0c;\u4f46\u8ba1\u7b97\u590d\u6742&#xff0c;\u5de5\u7a0b\u8f83\u5c11\u7528\u3002<\/p>\n<p>&#xff08;9&#xff09;WPC&#xff08;Weighted Phase Correlation&#xff09;<\/p>\n<p>\u666e\u901a PC \u6240\u6709\u9891\u7387\u6743\u91cd\u4e00\u6837\u3002\u4f46\u4f4e\u9891\u5bb9\u6613\u53d7\u5149\u7167\u5f71\u54cd&#xff0c;\u9ad8\u9891\u5bb9\u6613\u53d7\u566a\u58f0\u5f71\u54cd\u3002\u52a0\u6743\u76f8\u4f4d\u76f8\u5173\u5f15\u5165\u6743\u91cd\u51fd\u6570<img decoding=\"async\" alt=\"R_W(u,v)=\\\\frac{F(u,v)\\\\cdot G^{\\\\ast}(u,v)}{W(u,v)\\\\cdot\\\\vert F(u,v)\\\\cdot G^{\\\\ast}(u,v)\\\\vert}\" class=\"mathcode\" src=\"2026-08-16tjf3fyca4po.png\" \/>&#xff0c;\u5c06\u9891\u57df\u53d8\u6210\u52a0\u6743\u6295\u7968\u7cfb\u7edf\u3002<\/p>\n<p>\u6743\u91cd\u51fd\u6570&#xff1a;<\/p>\n<p>1.\u200b\u4f4e\u9891\u4f18\u5148&#xff08;Low-frequency emphasis&#xff09;&#xff1a;<img decoding=\"async\" alt=\"W(u,v)=\\\\frac{1}{1+\\\\sqrt{u^2+v^2}}\" class=\"mathcode\" src=\"2026-08-16jcs2lchhq15.png\" \/>&#xff0c;\u200b\u4f1a\u5f3a\u5316\u7ed3\u6784\u8f6e\u5ed3\u3001\u6291\u5236\u9ad8\u9891\u566a\u58f0&#xff0c;\u9002\u5408\u6a21\u7cca\u56fe\u50cf\u3001\u4f4e\u7eb9\u7406\u573a\u666f\u3002<\/p>\n<p>2.\u9ad8\u9891\u589e\u5f3a&#xff08;Edge-aware&#xff09;&#xff1a;<img decoding=\"async\" alt=\"W(u, v) = \\\\sqrt{u^2 + v^2}\" class=\"mathcode\" src=\"2026-08-16muywj0k2or0.png\" \/>&#xff0c;\u5f3a\u5316\u8fb9\u7f18\u4fe1\u606f\u3001\u63d0\u9ad8\u5b9a\u4f4d\u9510\u5ea6&#xff0c;\u9002\u5408\u9ad8\u7eb9\u7406\u3001\u9700\u8981\u7cbe\u786e\u4e9a\u50cf\u7d20\u5b9a\u4f4d\u7684\u573a\u666f\u3002<\/p>\n<p>3.\u5e26\u901a\u52a0\u6743&#xff08;Band-pass weighting&#xff09;&#xff1a;<img decoding=\"async\" alt=\"W(u, v) = \\\\begin{cases} 1, &amp; r_1 \\\\leq \\\\sqrt{u^2 + v^2} \\\\leq r_2 \\\\\\\\ 0, &amp; \\\\text{otherwise} \\\\end{cases}\" class=\"mathcode\" src=\"2026-08-16y5niszuvwqy.png\" \/><\/p>\n<p>&#xff0c;\u53ea\u8ba9\u4e2d\u9891\u7ed3\u6784\u53c2\u4e0e\u76f8\u4f4d\u76f8\u5173&#xff0c;\u7ed3\u6784\u4fe1\u606f\u66f4\u7a33\u5b9a&#xff0c;\u6297\u5149\u7167\u53d8\u5316&#xff08;\u53bb\u4f4e\u9891&#xff09;&#xff0c;\u6297\u566a\u58f0&#xff08;\u53bb\u9ad8\u9891&#xff09;&#xff0c;\u5cf0\u503c\u66f4\u5c16\u9510&#xff08;\u66f4\u5229\u4e8e sub-pixel&#xff09;\u3002\u4f46\u662f\u53c2\u6570 r1,r2r_1, r_2r1\u200b,r2\u200b \u9700\u8981\u8c03&#xff0c;\u573a\u666f\u53d8\u5316\u5927\u65f6\u5bb9\u6613\u5931\u6548&#xff08;\u5c3a\u5ea6\u4e0d\u5339\u914d&#xff09;&#xff0c;<\/p>\n<p>4.SNR-based weighting&#xff08;\u5de5\u7a0b\u5e38\u7528&#xff09;&#xff1a;<img decoding=\"async\" alt=\"V(u, v) = \\\\frac{\\\\left|F(u, v)G^{*}(u, v)\\\\right|}{\\\\left|F(u, v)G^{*}(u, v)\\\\right| + \\\\epsilon}\" class=\"mathcode\" src=\"2026-08-16oefpzy2xgzo.png\" \/><\/p>\n<p>&#xff0c;\u6839\u636e\u4fe1\u566a\u6bd4\u81ea\u9002\u5e94\u52a0\u6743&#xff0c;\u4fe1\u566a\u6bd4\u9ad8\u6743\u91cd\u5927&#xff0c;\u566a\u58f0\u9891\u7387\u4f4e\u6743\u91cd\u4f4e\u3002<\/p>\n<h3>5.\u73b0\u4ee3 Direct VO \/ SLAM<\/h3>\n<p>VO&#xff08;Visual Odometry&#xff09;&#xff1a;\u89c6\u89c9\u91cc\u7a0b\u8ba1&#xff0c;\u4f30\u8ba1\u76f8\u673a\u8fd0\u52a8&#xff0c;\u8f93\u5165\u8fde\u7eed\u56fe\u50cf&#xff0c;\u6bcf\u4e00\u5e27\u53ea\u548c\u524d\u4e00\u5e27\u505a\u5e27\u95f4\u5bf9\u9f50 \/ \u8fd0\u52a8\u4f30\u8ba1&#xff0c;\u4e0d\u65ad\u7d2f\u52a0\u5e27\u95f4\u8fd0\u52a8&#xff0c;\u8dd1\u51fa\u76f8\u673a\u884c\u8d70\u8f68\u8ff9\u3002<\/p>\n<p>SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;&#xff1a;\u540c\u6b65\u5b9a\u4f4d\u4e0e\u5730\u56fe\u6784\u5efa&#xff0c;\u76ee\u6807\u662f\u4e00\u8fb9\u5b9a\u4f4d&#xff0c;\u4e00\u8fb9\u5efa\u56fe&#xff0c;\u5373\u4e0d\u4ec5\u77e5\u9053 camera \u5728\u54ea\u91cc&#xff0c;\u8fd8\u77e5\u9053\u73af\u5883\u957f\u4ec0\u4e48\u6837\u3002\u5728 VO \u8fde\u7eed\u9010\u5e27\u5bf9\u9f50\u7b97\u8f68\u8ff9\u57fa\u7840\u4e0a\u518d\u52a0&#xff1a;1.\u6784\u5efa\u4e09\u7ef4\u73af\u5883\u5730\u56fe\u30022.\u56de\u73af\u68c0\u6d4b&#xff1a;\u9694\u5f88\u4e45\u7684\u65e7\u5e27\u548c\u5f53\u524d\u5e27\u5339\u914d\u5bf9\u9f50&#xff0c;\u4fee\u6b63\u8f68\u8ff9\u6f02\u79fb\u30023.\u5168\u5c40 BA \u4f18\u5316\u7edf\u4e00\u6821\u6b63\u6240\u6709\u4f4d\u59ff\u4e0e\u5730\u56fe\u70b9<\/p>\n<p>\u5bf9\u9f50\u65b9\u6cd5&#xff1a;<\/p>\n<p>1. \u7279\u5f81\u70b9\u6cd5\u5bf9\u9f50&#xff08;\u95f4\u63a5\u6cd5&#xff09;&#xff1a;\u5148\u63d0\u53d6\u7279\u5f81\u2192\u5339\u914d\u7279\u5f81\u2192\u7528\u5339\u914d\u5bf9\u6c42\u89e3\u76f8\u5bf9\u4f4d\u59ff<\/p>\n<p>\u5e38\u7528\u7279\u5f81<\/p>\n<p>\u00a0&#8211; FAST\u3001Harris\u3001Shi-Tomasi \u89d2\u70b9<\/p>\n<p>\u00a0&#8211; ORB&#xff08;\u5de5\u7a0b\u9996\u9009&#xff0c;FAST \u89d2\u70b9 &#043; \u65cb\u8f6c BRIEF \u63cf\u8ff0\u5b50&#xff09;<\/p>\n<p>\u00a0&#8211; SIFT\u3001SURF&#xff08;\u7cbe\u5ea6\u9ad8\u3001\u901f\u5ea6\u6162&#xff09;<\/p>\n<p>\u4f18\u70b9&#xff1a;\u5bf9\u5149\u7167\u3001\u8f7b\u5fae\u5f62\u53d8\u9c81\u68d2&#xff0c;\u7a33\u5b9a\u6027\u5f3a<\/p>\n<p>\u7f3a\u70b9&#xff1a;\u6781\u5ea6\u4f9d\u8d56\u7eb9\u7406&#xff0c;\u5f31\u7eb9\u7406\u573a\u666f\u65e0\u7279\u5f81\u76f4\u63a5\u5931\u6548<\/p>\n<p>\u4ee3\u8868&#xff1a;ORB-SLAM \u7cfb\u5217<\/p>\n<p>2. \u76f4\u63a5\u6cd5\u5bf9\u9f50&#xff08;\u4e0d\u9760\u7279\u5f81&#xff0c;\u7eaf\u7070\u5ea6\u4f18\u5316&#xff09;&#xff1a;\u5229\u7528\u7070\u5ea6\u4e0d\u53d8\u5047\u8bbe&#xff0c;\u6700\u5c0f\u5316\u5e27\u95f4\u7070\u5ea6\u8bef\u5dee\u4f18\u5316\u4f4d\u59ff<\/p>\n<p>&#xff08;1&#xff09;\u7a00\u758f\u76f4\u63a5\u6cd5<\/p>\n<p>\u4ee3\u8868&#xff1a;LK\/KLT \u5149\u6d41\u3001DSO<\/p>\n<p>\u505a\u6cd5&#xff1a;\u53ea\u9009\u53d6\u9ad8\u68af\u5ea6\u7a00\u758f\u50cf\u7d20 \/ \u89d2\u70b9\u5468\u8fb9\u5c0f\u56fe\u50cf\u5757&#xff0c;\u505a\u5c40\u90e8 Patch \u5bf9\u9f50&#xff0c;\u6700\u5c0f\u5316 SSD \u7070\u5ea6\u5e73\u65b9\u8bef\u5dee<\/p>\n<p>\u7279\u70b9&#xff1a;\u901f\u5ea6\u5feb&#xff1b;\u5f31\u7eb9\u7406\u6548\u679c\u5dee&#xff0c;\u65e0\u68af\u5ea6\u533a\u57df\u65e0\u6cd5\u8ddf\u8e2a<\/p>\n<p>\u6d41\u7a0b&#xff1a;\u63d0\u89d2\u70b9\u2192\u5757\u7070\u5ea6\u5339\u914d\u2192\u6c42\u50cf\u7d20\u504f\u79fb\u2192\u89e3\u4f4d\u59ff<\/p>\n<p>&#xff08;2&#xff09;\u534a\u7a20\u5bc6\u76f4\u63a5\u6cd5<\/p>\n<p>\u4ee3\u8868&#xff1a;LSD-SLAM<\/p>\n<p>\u505a\u6cd5&#xff1a;\u9009\u53d6\u6574\u7247\u68af\u5ea6\u8fbe\u6807\u8fde\u7eed\u533a\u57df\u6210\u7247\u50cf\u7d20\u53c2\u4e0e\u4f18\u5316<\/p>\n<p>\u7279\u70b9&#xff1a;\u517c\u987e\u901f\u5ea6\u4e0e\u50cf\u7d20\u5229\u7528\u7387&#xff0c;\u666e\u901a\u5f31\u7eb9\u7406\u53ef\u9002\u914d&#xff0c;\u7eaf\u767d\u65e0\u68af\u5ea6\u533a\u57df\u5931\u6548<\/p>\n<p>&#xff08;3&#xff09;\u7a20\u5bc6\u76f4\u63a5\u6cd5<\/p>\n<p>\u505a\u6cd5&#xff1a;\u4f7f\u7528\u56fe\u50cf\u5168\u90e8\u50cf\u7d20\u6784\u5efa\u5149\u5ea6\u8bef\u5dee<\/p>\n<p>\u7279\u70b9&#xff1a;\u5f31\u7eb9\u7406\u9002\u914d\u6700\u5f3a&#xff0c;\u4f9d\u9760\u5168\u5c40\u50cf\u7d20\u5173\u8054\u63a8\u65ad\u8fd0\u52a8&#xff1b;\u8fd0\u7b97\u91cf\u5927\u3001\u5b9e\u65f6\u6027\u5dee<\/p>\n<p>&#xff08;4&#xff09;\u5168\u5c40\u76f4\u63a5\u5bf9\u9f50 ECC<\/p>\n<p>\u539f\u7406&#xff1a;\u6700\u5927\u5316\u5168\u5c40\u7070\u5ea6\u4e92\u76f8\u5173&#xff0c;\u5339\u914d\u6574\u5f20\u56fe\u7070\u5ea6\u53d8\u5316\u8d8b\u52bf&#xff0c;\u6c42\u89e3\u7edf\u4e00\u5168\u5c40\u53d8\u6362\u77e9\u9635<\/p>\n<p>\u7279\u70b9&#xff1a;\u4e0d\u4f9d\u8d56\u5c40\u90e8\u7279\u5f81\u70b9&#xff0c;\u9002\u5408\u6574\u5f20\u56fe\u50cf\u6574\u4f53\u5bf9\u9f50&#xff1b;\u5927\u9762\u79ef\u5f31\u7eb9\u7406 &#043; \u5149\u7167\u53d8\u5316\u6548\u679c\u4e0b\u964d<\/p>\n<p>3. \u73b0\u4ee3\u6df1\u5ea6\u5b66\u4e60\u5bf9\u9f50\u65b9\u6cd5<\/p>\n<p>&#xff08;1&#xff09;\u6df1\u5ea6\u7279\u5f81\u5339\u914d&#xff1a;SuperPoint&#043;SuperGlue\u3001LoFTR<\/p>\n<p>\u5f31\u7eb9\u7406\u3001\u5927\u89c6\u5dee\u3001\u906e\u6321\u573a\u666f\u5339\u914d\u80fd\u529b\u8fdc\u8d85\u4f20\u7edf\u7279\u5f81<\/p>\n<p>&#xff08;2&#xff09;\u6df1\u5ea6\u5149\u6d41\u5bf9\u9f50<\/p>\n<p>\u4ee3\u8868&#xff1a;RAFT\u3001PWC-Net\u3001RAFT<\/p>\n<p>\u4ee3\u8868&#xff1a;PWC-Net\u3001RAFT&#xff0c;\u66ff\u4ee3\u4f20\u7edf LK&#xff0c;\u5927\u8fd0\u52a8\u3001\u5f31\u7eb9\u7406\u8ddf\u8e2a\u66f4\u7a33<\/p>\n<p>&#xff08;3&#xff09;\u7aef\u5230\u7aef\u4f4d\u59ff\u5bf9\u9f50<\/p>\n<p>DeepVO\u3001DPVO \u76f4\u63a5\u8f93\u5165\u524d\u540e\u5e27\u56de\u5f52\u76f8\u5bf9\u4f4d\u59ff&#xff0c;\u8df3\u8fc7\u4eba\u5de5\u5339\u914d\u6d41\u7a0b\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u4f1a\u9700\u8981 Camera Model&#xff08;\u76f8\u673a\u6a21\u578b&#xff09;&#xff1a;\u56e0\u4e3a\u76f8\u673a\u62cd\u5230\u7684\u56fe\u50cf\u672c\u8d28\u662f 3D \u4e16\u754c\u6295\u5f71\u5230 2D\u56fe\u50cf&#xff0c;VO \/ SLAM \u5fc5\u987b\u77e5\u9053 3D \u70b9\u5982\u4f55\u53d8\u6210 2D \u50cf\u7d20&#xff0c;\u5426\u5219\u65e0\u6cd5\u4ece\u56fe\u50cf\u6062\u590d\u8fd0\u52a8\u3002<\/p>\n<p>Pinhole Camera&#xff08;\u5c0f\u5b54\u6210\u50cf\u6a21\u578b&#xff09;&#xff1a;\u8fd9\u662f\u89c6\u89c9 SLAM \u6700\u57fa\u7840\u6a21\u578b&#xff0c;\u6838\u5fc3\u601d\u60f3\u662f\u5149\u7ebf\u7a7f\u8fc7\u4e00\u4e2a\u5c0f\u5b54\u6295\u5f71\u5230\u6210\u50cf\u5e73\u9762\u3002\u4e09\u7ef4\u70b9&#xff1a;P&#061;(X,Y,Z)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"149\" src=\"2026-08-162gspt1rkuyn.png\" width=\"652\" \/><\/p>\n<p>\u5176\u4e2d&#xff1a;fx\u3001fy \u8868\u793a\u7126\u8ddd&#xff1b;cx\u3001cy \u4e3b\u70b9&#xff1b;Z \u6df1\u5ea6\u3002<\/p>\n<p>Intrinsics&#xff08;\u76f8\u673a\u5185\u53c2&#xff09;&#xff1a;\u76f8\u673a\u5982\u4f55\u628a 3D \u6620\u5c04\u5230\u50cf\u7d20\u5750\u6807\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"240\" src=\"2026-08-16gue2wcod3lp.png\" width=\"736\" \/><\/p>\n<p>Distortion&#xff08;\u7578\u53d8&#xff09;&#xff1a;\u771f\u5b9e\u955c\u5934\u5e76\u4e0d\u662f\u7406\u60f3 pinhole&#xff08;\u9488\u5b54&#xff09;&#xff0c;\u56e0\u6b64\u4f1a\u4ea7\u751f\u7578\u53d8\u30021.Radial Distortion&#xff08;\u5f84\u5411\u7578\u53d8&#xff09;&#xff0c;\u8868\u73b0\u4e3a\u56fe\u50cf\u8fb9\u7f18\u5f2f\u66f2&#xff0c;\u5305\u62ec&#xff1a;Barrel&#xff08;\u6876\u5f62&#xff09;Pincushion&#xff08;\u6795\u5f62&#xff09;\u30022.Tangential Distortion&#xff08;\u5207\u5411\u7578\u53d8&#xff09;&#xff0c;\u955c\u5934\u5b89\u88c5\u4e0d\u5b8c\u5168\u5e73\u884c\u5bfc\u81f4\u3002\u4e3a\u4ec0\u4e48\u5fc5\u987b\u77eb\u6b63&#xff1f;\u56e0\u4e3a VO \/ SLAM \u6781\u5ea6\u4f9d\u8d56\u51e0\u4f55\u7cbe\u5ea6&#xff0c;\u7578\u53d8\u4f1a\u5bfc\u81f4&#xff1a;Projection Error\u3001Pose Error\u3001Tracking Error\u3002<\/p>\n<p>Projection&#xff08;\u6295\u5f71&#xff09;&#xff1a;\u8fd9\u662f 3D \u2192 2D \u8fc7\u7a0b&#xff0c;\u5373 P&#061;(X,Y,Z) \u53d8\u6210 p&#061;(u,v)&#xff0c;\u6295\u5f71\u672c\u8d28\u662f\u76f8\u673a\u770b\u5230\u4e16\u754c\u3002<\/p>\n<p>Back Projection&#xff08;\u53cd\u6295\u5f71&#xff09;&#xff1a;\u8fd9\u662f2D \u2192 3D \u8fc7\u7a0b&#xff0c;\u4f46\u662f\u5355\u4e2a\u50cf\u7d20\u65e0\u6cd5\u6062\u590d 3D&#xff0c;\u56e0\u4e3a\u7f3a\u5c11 Depth&#xff0c;\u6240\u4ee5\u5fc5\u987b\u50cf\u7d20&#043;\u6df1\u5ea6\u4e09\u7ef4\u70b9&#xff0c;P&#061;(p,d)\/\u03c0\u3002<\/p>\n<p>DIrect VO \u7684 Warp \u672c\u8d28\u5c31\u662f\u00a0p\u2032&#061;\u03c0(T(p,d)\/\u03c0)&#xff1a;1.\u5f53\u524d\u50cf\u7d20p\u53cd\u6295\u5f71\u5f97\u52303D\u70b9\u30022.\u76f8\u673a\u8fd0\u52a8T\u2208SE(3)\u30023.\u518d\u91cd\u65b0\u6295\u5f71\u5f97\u5230\u4e0b\u4e00\u5e27\u50cf\u7d20p\u2032\u3002<\/p>\n<p>Reprojection Error&#xff08;\u91cd\u6295\u5f71\u8bef\u5dee&#xff09;&#xff1a;Feature-based SLAM \u6838\u5fc3 e&#061;p\u2212p^&#xff0c;\u5373\u771f\u5b9e\u4f4d\u7f6e\u51cf\u53bb\u9884\u6d4b\u6295\u5f71\u4f4d\u7f6e\u3002\u5047\u8bbe\u6709 3D \u70b9\u548c\u76f8\u673a\u4f4d\u59ff&#xff0c;\u90a3\u4e48\u53ef\u4ee5\u9884\u6d4b\u8fd9\u4e2a 3D \u70b9\u5e94\u8be5\u6295\u5f71\u5230\u54ea\u91cc\u200b\u3002<\/p>\n<p>Photometric Error&#xff08;\u5149\u5ea6\u8bef\u5dee&#xff09;&#xff1a;\u8fd9\u662f Direct SLAM \u7075\u9b42&#xff0c;\u4f8b\u5982&#xff1a;LSD-SLAM\u3001DSO\u3002\u672c\u8d28\u4e0d\u662f\u6bd4\u8f83\u70b9\u7684\u4f4d\u7f6e&#xff0c;\u800c\u662f\u6bd4\u8f83\u7070\u5ea6&#xff0c;\u5373E&#061;I1\u200b(p)\u2212I2\u200b(p\u2032)\u3002\u6240\u4ee5 Feature-based \u4f18\u5316\u51e0\u4f55\u8bef\u5dee\u3001Direct Method \u4f18\u5316\u5149\u5ea6\u8bef\u5dee\u3002<\/p>\n<p>SE(3)&#xff08;Special Euclidean Group 3D&#xff09;&#xff1a;\u73b0\u4ee3 SLAM \u6838\u5fc3&#xff0c;\u4e09\u7ef4\u7279\u6b8a\u6b27\u6c0f\u7fa4&#xff08;\u65cb\u8f6c &#043; \u5e73\u79fb&#xff09;&#xff0c;\u63cf\u8ff0\u4e09\u7ef4\u7a7a\u95f4\u521a\u4f53\u53d8\u6362\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"201\" src=\"2026-08-16mh3v51lonse.png\" width=\"638\" \/><\/p>\n<p>SO(3)&#xff1a;\u4e09\u7ef4\u7279\u6b8a\u6b63\u4ea4\u7fa4&#xff08;\u53ea\u8868\u793a\u65cb\u8f6c&#xff09;&#xff0c;\u662f\u6240\u6709\u65cb\u8f6c\u77e9\u9635\u96c6\u5408\u3002<\/p>\n<p>Lie Algebra&#xff08;\u674e\u4ee3\u6570&#xff09;&#xff1a;\u8fd9\u662f\u73b0\u4ee3 SLAM \u6700\u5927\u95e8\u69db\u4e4b\u4e00\u3002\u4e3a\u4ec0\u4e48\u9700\u8981\u674e\u4ee3\u6570&#xff0c;\u56e0\u4e3a\u65cb\u8f6c\u77e9\u9635\u4e0d\u80fd\u76f4\u63a5\u52a0\u51cf\u3002\u4f18\u5316\u65f6\u4e0d\u80fd&#xff1a;R &#061; R &#043; dR&#xff0c;\u8fd9\u662f\u9519\u7684\u3002\u6b63\u786e\u505a\u6cd5\u662f\u4f7f\u7528 Lie Algebra \u8fdb\u884c\u5c0f\u6270\u52a8\u66f4\u65b0\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48 Brightness Constancy \u4e0d\u6210\u7acb&#xff1a;\u771f\u5b9e\u76f8\u673a\u5b58\u5728 Auto Exposure\u3001Gamma\u3001Vignetting\u3001Sensor Response\u3001Motion Blur&#xff0c;\u56e0\u6b64\u5373\u4f7f\u540c\u4e00\u4e2a\u70b9&#xff0c;\u7070\u5ea6\u4e5f\u4f1a\u53d8\u5316&#xff0c;\u6240\u4ee5\u73b0\u4ee3 Direct VO \u4e0d\u518d\u5047\u8bbe\u00a0I1&#061;I2&#xff0c;\u800c\u662fI2&#061;aI 1&#043;b&#xff0c;\u751a\u81f3\u66f4\u590d\u6742\u66dd\u5149\u6a21\u578b\u3002<\/p>\n<p>Bundle Adjustment&#xff08;BA&#xff09;&#xff1a;\u89c6\u89c9\u4f18\u5316\u6838\u5fc3&#xff0c;\u672c\u8d28\u662f\u8054\u5408\u4f18\u5316 Camera Pose\u30013D Landmark \u4f7f\u6574\u4f53\u8bef\u5dee\u6700\u5c0f&#xff0c;\u4e0d\u662f\u5c40\u90e8\u4fee\u6b63&#xff0c;\u800c\u662f\u5168\u5c40\u8054\u5408\u4f18\u5316\u3002Feature-based \u6700\u5c0f\u5316 Reprojection Error\u3002Direct-based \u6700\u5c0f\u5316 Photometric Error\u3002<\/p>\n<table>\n<tr>\u7c7b\u522bFeature-based SLAM&#xff08;\u7279\u5f81\u6cd5&#xff09;Direct SLAM&#xff08;\u76f4\u63a5\u6cd5&#xff09;Semi-Direct SLAM&#xff08;\u534a\u76f4\u63a5\u6cd5&#xff09;<\/tr>\n<tbody>\n<tr>\n<td>\u6838\u5fc3\u601d\u60f3<\/td>\n<td>\u63d0\u53d6\u7279\u5f81\u70b9\u5e76\u5339\u914d<\/td>\n<td>\u76f4\u63a5\u4f18\u5316\u50cf\u7d20\u7070\u5ea6<\/td>\n<td>\u7279\u5f81 &#043; \u7070\u5ea6\u6df7\u5408<\/td>\n<\/tr>\n<tr>\n<td>\u4f18\u5316\u5bf9\u8c61<\/td>\n<td>Reprojection Error&#xff08;\u91cd\u6295\u5f71\u8bef\u5dee&#xff09;<\/td>\n<td>Photometric Error&#xff08;\u5149\u5ea6\u8bef\u5dee&#xff09;<\/td>\n<td>\u4e24\u8005\u7ed3\u5408<\/td>\n<\/tr>\n<tr>\n<td>\u4f7f\u7528\u5185\u5bb9<\/td>\n<td>Keypoint &#043; Descriptor<\/td>\n<td>Pixel Intensity&#xff08;\u50cf\u7d20\u7070\u5ea6&#xff09;<\/td>\n<td>Sparse Feature &#043; Gray<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u8981 Descriptor<\/td>\n<td>\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u901a\u5e38\u53ea\u90e8\u5206\u9700\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u8981 Matching<\/td>\n<td>\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981\u663e\u5f0f Matching<\/td>\n<td>\u90e8\u5206\u9700\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u6570\u5b66\u6838\u5fc3<\/td>\n<td>\u51e0\u4f55\u4f18\u5316<\/td>\n<td>\u5149\u5ea6\u4f18\u5316<\/td>\n<td>\u51e0\u4f55 &#043; \u5149\u5ea6<\/td>\n<\/tr>\n<tr>\n<td>\u672c\u8d28\u9a71\u52a8<\/td>\n<td>Geometry-driven<\/td>\n<td>Photometric-driven<\/td>\n<td>Hybrid-driven<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u8bef\u5dee<\/td>\n<td>|| p\u2212p^\u200b || \u5e73\u65b9<\/td>\n<td>|| I1\u200b\u2212I2\u200b || \u5e73\u65b9<\/td>\n<td>\u6df7\u5408\u8bef\u5dee<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5149\u7167\u53d8\u5316<\/td>\n<td>\u66f4\u9c81\u68d2<\/td>\n<td>\u8f83\u654f\u611f<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5f31\u7eb9\u7406\u533a\u57df<\/td>\n<td>\u8f83\u5dee<\/td>\n<td>\u66f4\u5f3a<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u8fd0\u52a8\u6a21\u7cca<\/td>\n<td>\u8f83\u9c81\u68d2<\/td>\n<td>\u8f83\u654f\u611f<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u521d\u59cb\u5316\u654f\u611f<\/td>\n<td>\u8f83\u4f4e<\/td>\n<td>\u5f88\u9ad8<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f9d\u8d56\u68af\u5ea6<\/td>\n<td>\u95f4\u63a5\u4f9d\u8d56<\/td>\n<td>\u5f3a\u4f9d\u8d56<\/td>\n<td>\u90e8\u5206\u4f9d\u8d56<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f9d\u8d56\u89d2\u70b9<\/td>\n<td>\u5f3a\u4f9d\u8d56<\/td>\n<td>\u4e0d\u4e00\u5b9a<\/td>\n<td>\u90e8\u5206\u4f9d\u8d56<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u8981\u9ad8\u7eb9\u7406<\/td>\n<td>\u901a\u5e38\u9700\u8981<\/td>\n<td>\u4e0d\u5b8c\u5168\u9700\u8981<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u7a00\u758f \/ \u7a20\u5bc6<\/td>\n<td>\u7a00\u758f<\/td>\n<td>\u7a00\u758f \/ \u534a\u7a20\u5bc6 \/ \u7a20\u5bc6<\/td>\n<td>\u534a\u7a00\u758f<\/td>\n<\/tr>\n<tr>\n<td>\u8ba1\u7b97\u91cf<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u8f83\u9ad8<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u5b9e\u65f6\u6027<\/td>\n<td>\u8f83\u597d<\/td>\n<td>Dense \u8f83\u6162<\/td>\n<td>\u5f88\u597d<\/td>\n<\/tr>\n<tr>\n<td>\u6297\u5927\u4f4d\u79fb\u80fd\u529b<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f31<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u4e9a\u50cf\u7d20\u7cbe\u5ea6<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u5f88\u9ad8<\/td>\n<td>\u8f83\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u5bb9\u6613\u5c40\u90e8\u6700\u4f18<\/td>\n<td>\u76f8\u5bf9\u4e0d\u5bb9\u6613<\/td>\n<td>\u5bb9\u6613<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9002\u5408\u52a8\u6001\u573a\u666f<\/td>\n<td>\u66f4\u9002\u5408<\/td>\n<td>\u8f83\u5dee<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9002\u5408\u5f31\u7eb9\u7406<\/td>\n<td>\u8f83\u5dee<\/td>\n<td>\u66f4\u5f3a<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9002\u5408\u4f4e\u7b97\u529b\u8bbe\u5907<\/td>\n<td>\u8f83\u9002\u5408<\/td>\n<td>Dense \u4e0d\u9002\u5408<\/td>\n<td>\u5f88\u9002\u5408<\/td>\n<\/tr>\n<tr>\n<td>\u5730\u56fe\u8868\u793a<\/td>\n<td>Sparse Landmark<\/td>\n<td>Dense \/ Semi-Dense Map<\/td>\n<td>Sparse Map<\/td>\n<\/tr>\n<tr>\n<td>BA \u4f18\u5316\u5bf9\u8c61<\/td>\n<td>Pose &#043; Landmark<\/td>\n<td>Pose &#043; Photometric<\/td>\n<td>Pose &#043; Sparse Depth<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u7cfb\u7edf<\/td>\n<td>ORB-SLAM\u3001PTAM<\/td>\n<td>LSD-SLAM\u3001DSO<\/td>\n<td>SVO<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u524d\u7aef<\/td>\n<td>ORB\/SIFT\/SURF<\/td>\n<td>Direct Alignment<\/td>\n<td>Feature &#043; Direct<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u4f18\u5316<\/td>\n<td>Bundle Adjustment<\/td>\n<td>Photometric BA<\/td>\n<td>Hybrid Optimization<\/td>\n<\/tr>\n<tr>\n<td>\u4ee3\u8868\u6838\u5fc3\u516c\u5f0f<\/td>\n<td>e&#061;p\u2212p^\u200b<\/td>\n<td>E&#061;I1\u200b\u2212I2\u200b<\/td>\n<td>\u6df7\u5408<\/td>\n<\/tr>\n<tr>\n<td>\u5de5\u7a0b\u96be\u70b9<\/td>\n<td>\u7279\u5f81\u7a33\u5b9a\u6027<\/td>\n<td>\u5149\u7167\u3001\u521d\u59cb\u5316\u3001\u4f18\u5316\u7a33\u5b9a\u6027<\/td>\n<td>\u7cfb\u7edf\u878d\u5408\u590d\u6742<\/td>\n<\/tr>\n<tr>\n<td>\u73b0\u4ee3\u8d8b\u52bf<\/td>\n<td>\u7a33\u5b9a\u6210\u719f<\/td>\n<td>\u7cbe\u5ea6\u9ad8\u3001\u7406\u8bba\u4f18\u96c5<\/td>\n<td>\u5de5\u7a0b\u5b9e\u7528\u6027\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u9002\u5408\u521d\u5b66\u8005<\/td>\n<td>\u6700\u9002\u5408<\/td>\n<td>\u6570\u5b66\u95e8\u69db\u9ad8<\/td>\n<td>\u4e2d\u7b49<\/td>\n<\/tr>\n<tr>\n<td>\u672c\u8d28\u533a\u522b<\/td>\n<td>\u4f18\u5316\u51e0\u4f55\u5bf9\u5e94\u5173\u7cfb<\/td>\n<td>\u4f18\u5316\u7070\u5ea6\u4e00\u81f4\u6027<\/td>\n<td>\u540c\u65f6\u5229\u7528\u4e24\u8005<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\u4e09\u3001\u57fa\u4e8e\u6df1\u5ea6\u5b66\u4e60\u7684\u65b9\u6cd5<\/h2>\n<p>Feature-based \u95ee\u9898&#xff1a;\u5f31\u7eb9\u7406\u56f0\u96be\u3001\u5149\u7167\u654f\u611f\u3001\u91cd\u590d\u7eb9\u7406\u5bb9\u6613\u8bef\u5339\u914d\u3002<\/p>\n<p>Direct Method \u95ee\u9898&#xff1a;\u5149\u7167\u654f\u611f\u3001\u521d\u59cb\u5316\u654f\u611f\u3001\u52a8\u6001\u573a\u666f\u56f0\u96be\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u5229\u7528 CNN \u81ea\u52a8\u5b66\u4e60\u54ea\u4e9b\u70b9\u7a33\u5b9a\u3001\u54ea\u4e9b descriptor \u66f4\u9002\u5408\u5339\u914d&#xff1b;\u8ba9 feature \u5bf9\u65cb\u8f6c\u3001\u5c3a\u5ea6\u3001\u5149\u7167\u3001\u6a21\u7cca\u66f4\u52a0\u9c81\u68d2\u3002<\/p>\n<p>\u6df1\u5ea6\u5b66\u4e60\u7279\u5f81\u63d0\u53d6\u5668&#xff1a;<\/p>\n<table>\n<tr>\u65b9\u6cd5\u6838\u5fc3\u5b9a\u4f4d\u4e00\u53e5\u8bdd\u7279\u70b9<\/tr>\n<tbody>\n<tr>\n<td>SuperPoint<\/td>\n<td>Learned Keypoint &#043; Descriptor<\/td>\n<td>\u7aef\u5230\u7aef\u5b66\u4e60\u7684\u89d2\u70b9\u68c0\u6d4b &#043; \u63cf\u8ff0\u5b50&#xff0c;\u662f\u6df1\u5ea6\u5b66\u4e60\u7279\u5f81\u7684 \u201c\u6807\u914d\u201d&#xff0c;\u5e38\u548c SuperGlue \u642d\u914d\u4f7f\u7528\u3002<\/td>\n<\/tr>\n<tr>\n<td>DISK<\/td>\n<td>\u53ef\u5b66\u4e60\u7279\u5f81<\/td>\n<td>\u8f7b\u91cf\u9ad8\u6548\u7684\u53ef\u5b66\u4e60\u5c40\u90e8\u7279\u5f81&#xff0c;\u517c\u987e\u7cbe\u5ea6\u548c\u901f\u5ea6&#xff0c;\u9002\u5408\u5b9e\u65f6\u573a\u666f\u3002<\/td>\n<\/tr>\n<tr>\n<td>R2D2<\/td>\n<td>Reliability-aware feature<\/td>\n<td>\u5e26 \u201c\u53ef\u9760\u6027\u611f\u77e5\u201d \u7684\u9c81\u68d2\u7279\u5f81&#xff0c;\u80fd\u9884\u6d4b\u7279\u5f81\u8d28\u91cf&#xff0c;\u8fc7\u6ee4\u4f4e\u8d28\u91cf\u70b9&#xff0c;\u6297\u5e72\u6270\u66f4\u5f3a\u3002<\/td>\n<\/tr>\n<tr>\n<td>D2-Net<\/td>\n<td>Dense CNN Feature<\/td>\n<td>\u5bc6\u96c6 CNN \u7279\u5f81&#xff0c;\u4e0d\u4f9d\u8d56\u7a00\u758f\u5173\u952e\u70b9&#xff0c;\u76f4\u63a5\u5728\u7279\u5f81\u56fe\u4e0a\u505a\u5339\u914d&#xff0c;\u5f31\u7eb9\u7406\u573a\u666f\u66f4\u7a33\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6df1\u5ea6\u5b66\u4e60\u5339\u914d \/ \u5149\u6d41\u65b9\u6cd5&#xff08;\u505a\u5bf9\u5e94\u5173\u7cfb&#xff09;&#xff1a;<\/p>\n<table>\n<tr>\u65b9\u6cd5\u6838\u5fc3\u5b9a\u4f4d\u4e00\u53e5\u8bdd\u7279\u70b9<\/tr>\n<tbody>\n<tr>\n<td>SuperGlue<\/td>\n<td>Learned matching<\/td>\n<td>\u57fa\u4e8e Transformer \u7684\u53ef\u5b66\u4e60\u5339\u914d\u5668&#xff0c;\u4e13\u95e8\u7ed9 SuperPoint \u8fd9\u7c7b\u7279\u5f81\u505a \u201c\u7cbe\u51c6\u914d\u5bf9\u201d&#xff0c;\u6297\u8bef\u5339\u914d\u80fd\u529b\u6781\u5f3a\u3002<\/td>\n<\/tr>\n<tr>\n<td>LoFTR<\/td>\n<td>Dense matching<\/td>\n<td>\u65e0\u5173\u952e\u70b9\u7684\u5bc6\u96c6\u5339\u914d&#xff0c;\u7528 Transformer \u76f4\u63a5\u5728\u7279\u5f81\u56fe\u4e0a\u5efa\u7acb\u5bf9\u5e94&#xff0c;\u89c6\u89d2\u53d8\u5316\u5927\u65f6\u8868\u73b0\u5f88\u597d\u3002<\/td>\n<\/tr>\n<tr>\n<td>RAFT<\/td>\n<td>Optical flow<\/td>\n<td>\u57fa\u4e8e\u5faa\u73af\u8fed\u4ee3\u7684\u5149\u6d41\u4f30\u8ba1&#xff0c;\u7cbe\u5ea6\u9ad8\u3001\u9c81\u68d2\u6027\u5f3a&#xff0c;\u662f\u6df1\u5ea6\u5b66\u4e60\u5149\u6d41\u7684\u6807\u6746\u65b9\u6cd5\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u7aef\u5230\u7aef\u6df1\u5ea6 SLAM\/VO&#xff08;\u76f4\u63a5\u8f93\u51fa\u4f4d\u59ff&#xff09;&#xff1a;<\/p>\n<table>\n<tr>\u65b9\u6cd5\u6838\u5fc3\u5b9a\u4f4d\u4e00\u53e5\u8bdd\u7279\u70b9<\/tr>\n<tbody>\n<tr>\n<td>DROID-SLAM<\/td>\n<td>Deep SLAM<\/td>\n<td>\u7aef\u5230\u7aef\u7684\u6df1\u5ea6 SLAM&#xff0c;\u7528\u6df1\u5ea6\u5b66\u4e60\u505a\u524d\u7aef\u5339\u914d &#043; \u540e\u7aef\u4f18\u5316&#xff0c;\u5355\u76ee\u4e5f\u80fd\u5b9e\u73b0\u7a33\u5b9a\u7684\u4e09\u7ef4\u91cd\u5efa\u3002<\/td>\n<\/tr>\n<tr>\n<td>DPVO<\/td>\n<td>Deep VO<\/td>\n<td>\u57fa\u4e8e\u5149\u6d41\u7684\u6df1\u5ea6\u89c6\u89c9\u91cc\u7a0b\u8ba1&#xff0c;\u76f4\u63a5\u4f30\u8ba1\u76f8\u673a\u8fd0\u52a8&#xff0c;\u5728\u5feb\u901f\u8fd0\u52a8\u3001\u5f31\u7eb9\u7406\u573a\u666f\u8868\u73b0\u8fdc\u8d85\u4f20\u7edf VO\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4f18\u70b9&#xff1a;<\/p>\n<p>\u6781\u5f3a\u7684\u9c81\u68d2\u6027\u4e0e\u8bed\u4e49\u7406\u89e3&#xff1a;\u7f51\u7edc\u4e0d\u4ec5\u80fd\u770b\u68af\u5ea6&#xff0c;\u8fd8\u80fd\u7406\u89e3\u201c\u8fd9\u662f\u4e00\u5f20\u684c\u5b50&#xff0c;\u90a3\u662f\u4e00\u5835\u5899\u201d\u3002\u5bf9\u6781\u7aef\u5149\u7167\u53d8\u5316&#xff08;\u767d\u5929\u5230\u9ed1\u591c&#xff09;\u3001\u5267\u70c8\u52a8\u6001\u6a21\u7cca\u3001\u5927\u8303\u56f4\u89c6\u89d2\u66f4\u8fed\u5177\u5907\u4f20\u7edf\u7b97\u6cd5\u65e0\u6cd5\u6bd4\u62df\u7684\u9c81\u68d2\u6027\u3002<\/p>\n<p>\u6446\u8131\u4eba\u5de5\u5047\u8bbe&#xff1a;\u4e0d\u9700\u8981\u751f\u642c\u786c\u5957\u201c\u4eae\u5ea6\u6052\u5b9a\u201d\u6216\u201c\u51e0\u4f55\u521a\u6027\u201d\u7b49\u5047\u8bbe&#xff0c;\u901a\u8fc7\u6570\u636e\u89c4\u5f8b\u81ea\u9002\u5e94\u62df\u5408\u590d\u6742\u9000\u5316\u573a\u666f\u3002<\/p>\n<p>\u7cbe\u5ea6\u4e0a\u9650\u9ad8&#xff1a;\u5728\u5b66\u4e60\u4e86\u6d77\u91cf\u573a\u666f\u5148\u9a8c\u540e&#xff0c;\u5728\u7279\u5b9a\u6216\u590d\u6742\u73af\u5883\u4e0b\u7684\u914d\u51c6\u7cbe\u5ea6\u5f80\u5f80\u80fd\u8d85\u8d8a\u4f20\u7edf\u65b9\u6cd5\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;<\/p>\n<p>\u7b97\u529b\u4e0e\u529f\u8017\u8981\u6c42\u9ad8&#xff1a;\u9700\u8981\u5f3a\u5927\u7684 GPU \u7b97\u529b\u652f\u6301&#xff0c;\u5728\u5d4c\u5165\u5f0f\u8bbe\u5907&#xff08;\u5982\u5c0f\u578b\u65e0\u4eba\u673a\u3001\u5fae\u578b\u4f20\u611f\u5668&#xff09;\u4e0a\u843d\u5730\u5b58\u5728\u4e25\u91cd\u7684\u5b9e\u65f6\u6027\u6311\u6218\u3002<\/p>\n<p>\u6cdb\u5316\u80fd\u529b&#xff08;Generalization&#xff09;\u53d7\u9650&#xff1a;\u5728\u8bad\u7ec3\u96c6\u7c7b\u4f3c\u7684\u573a\u666f\u8868\u73b0\u60ca\u8273&#xff0c;\u4f46\u4e00\u65e6\u8fdb\u5165\u5168\u65b0\u7684\u201c\u672a\u77e5\u9886\u57df\u201d&#xff08;Out-of-Distribution&#xff09;&#xff0c;\u7f51\u7edc\u53ef\u80fd\u4ea7\u751f\u96be\u4ee5\u9884\u6d4b\u7684\u79bb\u5947\u6f02\u79fb\u3002<\/p>\n<p>\u53ef\u89e3\u91ca\u6027\u5dee&#xff08;\u9ed1\u76d2\u6a21\u578b&#xff09;&#xff1a;\u7531\u4e8e\u7f3a\u4e4f\u4e25\u8c28\u7684\u51e0\u4f55\u6570\u7406\u63a8\u5bfc&#xff0c;\u7cfb\u7edf\u51fa\u9519\u65f6\u5f88\u96be\u8fdb\u884c\u5c40\u90e8 debug \u6216\u7ed9\u51fa\u7f6e\u4fe1\u5ea6\u4e0a\u9650\u3002<\/p>\n<h3>1. SuperPoint<\/h3>\n<p>\u6df1\u5ea6\u5b66\u4e60\u5c40\u90e8\u7279\u5f81\u3002SIFT\u3001ORB\u3001AKAZE\u5168\u90fd\u662f\u4eba\u624b\u5de5\u8bbe\u8ba1\u89c4\u5219&#xff0c;SuperPoint\u7b2c\u4e00\u6b21\u8ba9\u7f51\u7edc\u81ea\u5df1\u5b66\u4e60\u4ec0\u4e48\u70b9\u7a33\u5b9a\u3001\u4ec0\u4e48\u63cf\u8ff0\u6700\u597d&#xff0c;\u672c\u8d28\u662f\u7528\u795e\u7ecf\u7f51\u7edc\u540c\u65f6\u5b66\u4e60\u5173\u952e\u70b9&#043;\u63cf\u8ff0\u5b50\u3002<\/p>\n<p>\u4f20\u7edf\u7279\u5f81\u672c\u8d28\u9760\u4eba\u5de5\u89c4\u5219&#xff0c;\u5982\u68af\u5ea6\u3001\u89d2\u70b9\u3001Hessian\u3001\u7070\u5ea6\u5dee&#xff0c;\u800cSuperPoint\u76f4\u63a5\u4ece\u5927\u91cf\u6570\u636e\u4e2d\u5b66\u4e60\u4ec0\u4e48\u7279\u5f81\u6700\u7a33\u5b9a&#xff0c;\u56e0\u6b64&#xff0c;\u5b83\u5bf9\u5149\u7167\u53d8\u5316\u3001\u5f31\u7eb9\u7406\u3001\u6a21\u7cca\u3001\u590d\u6742\u89c6\u89d2\u901a\u5e38\u66f4\u7a33\u5b9a\u3002<\/p>\n<p>\u672c\u8d28\u7ed3\u6784&#xff1a;\u8f93\u5165Image&#xff0c;\u7f51\u7edc\u8f93\u51faHeatmap&#xff08;\u5173\u952e\u70b9\u6982\u7387&#xff09;\u3001Descriptor Map&#xff08;\u63cf\u8ff0\u5b50&#xff09;&#xff0c;\u5373Detector &#043; Descriptor\u540c\u65f6\u8f93\u51fa\u3002<\/p>\n<p>\u4f20\u7edfORB&#xff1a;FAST &#043; BRIEF&#xff1b;\u800cSuperPoint&#xff1a;CNN &#043; CNN&#xff08;\u7f51\u7edc\u81ea\u5df1\u5b66\u54ea\u4e9b\u4f4d\u7f6e\u9002\u5408\u505a\u5173\u952e\u70b9\u3001\u5982\u4f55\u63cf\u8ff0\u5c40\u90e8\u7eb9\u7406&#xff09;\u3002<\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;<\/p>\n<p>1. \u8f93\u5165\u56fe\u50cf&#xff1a;\u8f93\u5165\u5355\u5f20\u7070\u5ea6\u56fe\u50cf&#xff08;\u5c3a\u5bf8\u4efb\u610f&#xff0c;\u901a\u5e38\u7f29\u653e\u5230\u6a21\u578b\u9884\u8bbe\u5c3a\u5bf8&#xff09;\u3002<\/p>\n<p>2. CNN Backbone&#xff08;\u4e3b\u5e72\u7f16\u7801\u5668&#xff09;&#xff1a;\u91c7\u7528\u7c7b VGG \u98ce\u683c\u7684\u5377\u79ef\u7f51\u7edc&#xff0c;\u901a\u8fc7\u5377\u79ef &#043; \u6c60\u5316\u63d0\u53d6\u9ad8\u7ef4\u7279\u5f81\u3002\u6700\u7ec8\u8f93\u51fa&#xff1a;\u5206\u8fa8\u7387\u4e3a\u539f\u56fe 1\/8 \u7684\u7279\u5f81\u56fe&#xff08;\u8f93\u5165 H\u00d7W \u2192 \u8f93\u51fa H\/8 \u00d7 W\/8 \u00d7 C&#xff09;\u3002<\/p>\n<p>3. \u53cc\u5206\u652f\u8f93\u51fa\u5934&#xff1a;<\/p>\n<p>3.1 Detector Head&#xff08;\u5173\u952e\u70b9\u68c0\u6d4b\u5934&#xff09;&#xff1a;\u5bf9\u4e3b\u5e72\u7279\u5f81\u56fe\u505a\u5377\u79ef&#xff0c;\u751f\u6210\u5173\u952e\u70b9\u6982\u7387\u56fe&#xff08;Heatmap&#xff09;\u3002\u8f93\u51fa\u7ef4\u5ea6&#xff1a;H\/8 \u00d7 W\/8 \u00d7 65&#xff08;65 &#061; 8\u00d78 \u7f51\u683c\u5185 64 \u4e2a\u5019\u9009\u4f4d\u7f6e &#043; 1 \u4e2a\u65e0\u7279\u5f81\u70b9\u80cc\u666f\u901a\u9053&#xff09;\u3002<\/p>\n<p>3.2 Descriptor Head&#xff08;\u63cf\u8ff0\u5b50\u5934&#xff09;&#xff1a;\u5bf9\u4e3b\u5e72\u7279\u5f81\u56fe\u505a\u5377\u79ef&#xff0c;\u751f\u6210\u7a20\u5bc6\u63cf\u8ff0\u5b50\u56fe&#xff08;Dense Descriptor Map&#xff09;\u3002&#xff08;\u8f93\u51fa\u7ef4\u5ea6&#xff1a;H\/8 \u00d7 W\/8 \u00d7 256&#xff0c;\u6bcf\u4e2a\u50cf\u7d20\u4f4d\u7f6e\u5bf9\u5e94\u4e00\u4e2a 256 \u7ef4\u63cf\u8ff0\u5411\u91cf&#xff0c;\u7528\u4e8e\u540e\u7eed\u7279\u5f81\u5339\u914d&#xff09;\u3002<\/p>\n<p>4. NMS \u975e\u6781\u5927\u503c\u6291\u5236&#xff1a;\u4ece\u6982\u7387\u56fe\u4e2d\u63d0\u53d6\u5019\u9009\u5173\u952e\u70b9&#xff0c;\u4fdd\u7559\u5c40\u90e8\u54cd\u5e94\u6700\u5f3a\u7684\u70b9&#xff0c;\u53bb\u9664\u5c40\u90e8\u91cd\u590d\u54cd\u5e94\u3002\u8f93\u51fa&#xff1a;\u4e00\u7ec4\u7a00\u758f\u3001\u9ad8\u7cbe\u5ea6\u5173\u952e\u70b9\u5750\u6807\u3002<\/p>\n<p>5. \u63d0\u53d6\u5bf9\u5e94\u63cf\u8ff0\u5b50&#xff1a;\u6839\u636e\u5173\u952e\u70b9\u5750\u6807&#xff0c;\u5728\u7a20\u5bc6\u63cf\u8ff0\u5b50\u56fe\u4e0a\u53cc\u7ebf\u6027\u63d2\u503c&#xff08;\u7531\u4e8e\u5173\u952e\u70b9\u5750\u6807\u901a\u5e38\u4e0d\u662f\u6574\u6570\u4f4d\u7f6e&#xff0c;\u56e0\u6b64 Dense Descriptor Map \u9700\u8981\u4f7f\u7528 Bilinear Interpolation&#xff08;\u53cc\u7ebf\u6027\u63d2\u503c&#xff09;\u4ece\u90bb\u8fd1\u56db\u4e2a\u70b9&#xff0c;\u8ba1\u7b97\u5f53\u524d\u5173\u952e\u70b9\u7684 descriptor\u3002\u8fd9\u6837&#xff0c;descriptor \u66f4\u5e73\u6ed1\u3001\u66f4\u7a33\u5b9a&#xff09;\u5f97\u5230\u6bcf\u4e2a\u5173\u952e\u70b9\u7684 256 \u7ef4\u63cf\u8ff0\u5b50&#xff0c;\u5e76\u505a L2 \u5f52\u4e00\u5316\u3002<\/p>\n<p>6. \u63cf\u8ff0\u5b50\u5339\u914d&#xff1a;\u5bf9\u4e24\u5e45\u56fe\u50cf\u63d0\u53d6\u7684\u63cf\u8ff0\u5b50\u8fdb\u884c\u6700\u8fd1\u90bb\u5339\u914d \/ \u6bd4\u7387\u6d4b\u8bd5&#xff0c;\u5f97\u5230\u521d\u59cb\u5339\u914d\u70b9\u5bf9\u3002<\/p>\n<p>7. RANSAC \u5254\u9664\u8bef\u5339\u914d&#xff1a;\u4f7f\u7528 RANSAC \u4f30\u8ba1\u51e0\u4f55\u6a21\u578b&#xff0c;\u81ea\u52a8\u5254\u9664\u5916\u70b9\u3002<\/p>\n<p>8. \u8f93\u51fa\u6700\u7ec8\u53d8\u6362&#xff1a;\u8f93\u51fa\u5355\u5e94\u77e9\u9635 H&#xff0c;\u5b8c\u6210\u56fe\u50cf\u914d\u51c6\u3002<\/p>\n<p>\u76f8\u5173\u6982\u5ff5&#xff1a;<\/p>\n<p>CNN&#xff08;Convolutional Neural Network&#xff0c;\u5377\u79ef\u795e\u7ecf\u7f51\u7edc&#xff09; \u662f\u4e00\u7c7b\u4e13\u95e8\u7528\u4e8e\u5904\u7406\u7f51\u683c\u72b6\u6570\u636e&#xff08;\u5982\u56fe\u50cf\u3001\u89c6\u9891\u3001\u65f6\u5e8f\u4fe1\u53f7&#xff09;\u7684\u6df1\u5ea6\u5b66\u4e60\u6a21\u578b\u3002\u5b83\u7684\u6838\u5fc3\u7279\u70b9\u662f\u5229\u7528\u5377\u79ef\u8fd0\u7b97\u81ea\u52a8\u63d0\u53d6\u5c40\u90e8\u7279\u5f81&#xff08;\u5982\u8fb9\u7f18\u3001\u7eb9\u7406\u3001\u5f62\u72b6&#xff09;&#xff0c;\u5e76\u901a\u8fc7\u53c2\u6570\u5171\u4eab\u548c\u7a00\u758f\u8fde\u63a5\u5927\u5e45\u51cf\u5c11\u8ba1\u7b97\u91cf\u3002<\/p>\n<p>SuperPoint \u662f Fully Convolutional Network&#xff08;\u5168\u5377\u79ef\u7f51\u7edc&#xff09;&#xff1a;\u610f\u601d\u662f\u7f51\u7edc\u4e2d\u53ea\u6709&#xff1a;Convolution&#xff08;\u5377\u79ef&#xff09;Pooling&#xff08;\u6c60\u5316&#xff09;&#xff0c;\u6ca1\u6709Fully Connected Layer&#xff08;\u5168\u8fde\u5c42&#xff09;&#xff0c;\u56e0\u6b64\u8f93\u5165\u56fe\u50cf\u5c3a\u5bf8\u53ef\u4ee5\u53d8\u5316&#xff0c;\u56e0\u4e3a\u8f93\u51faFeature Map&#xff08;\u7279\u5f81\u56fe&#xff09;\u4f1a\u81ea\u52a8\u540c\u6bd4\u7f29\u653e\u3002<\/p>\n<p>Detechtor Head\u00a0&#xff1a;\u8f93\u51fa\u6bcf\u4e2a\u4f4d\u7f6e\u662f\u5173\u952e\u70b9\u7684\u6982\u7387&#xff0c;\u7f51\u7edc\u81ea\u5df1\u5b66\u4e60\u54ea\u4e9b\u70b9\u7a33\u5b9a\u3001\u53ef\u91cd\u590d\u3002<\/p>\n<p>Cell\/Grid&#xff08;\u7f51\u683c\u5355\u5143&#xff09;\u601d\u60f3&#xff1a;\u7531\u4e8eBackbone&#xff08;\u4e3b\u5e72\u7f51\u7edc&#xff09;\u7ecf\u8fc7Pooling&#xff08;\u6c60\u5316&#xff09;\u548cStride&#xff08;\u6b65\u957f\u4e0b\u91c7\u6837&#xff09;&#xff0c;\u6700\u7ec8\u539f\u56fe&#xff1a;H \u00d7 W&#xff0c;\u7279\u5f81\u56fe&#xff1a;H\/8 \u00d7 W\/8\u3002\u6240\u4ee5\u7279\u5f81\u56fe\u4e0a\u4e00\u4e2a\u50cf\u7d20&#xff0c;\u5bf9\u5e94\u539f\u56fe8 \u00d7 8 \u533a\u57df&#xff0c;\u56e0\u6b64Detector Head\u5e76\u4e0d\u662f\u68c0\u6d4b\u8fd9\u4e2a\u50cf\u7d20\u662f\u4e0d\u662f\u5173\u952e\u70b9&#xff0c;\u800c\u662f\u8fd9\u4e2a 8\u00d78 Cell&#xff08;\u7f51\u683c\u5355\u5143&#xff09;\u5185\u54ea\u4e2a\u4f4d\u7f6e\u662f\u5173\u952e\u70b9\u3002\u8fd9\u4e5f\u662f65&#061;64&#043;1\u7684\u6765\u6e90\u3002<\/p>\n<p>Softmax&#xff08;\u5f52\u4e00\u5316\u6982\u7387&#xff09;&#xff1a;Detector Head \u8f93\u51fa\u540e\u9700\u8981\u505aSoftmax&#xff08;\u6982\u7387\u5f52\u4e00\u5316&#xff09;&#xff0c;\u5c0665\u4e2a\u901a\u9053\u8f6c\u6362\u6210\u6240\u6709\u4f4d\u7f6e\u6982\u7387\u548c&#061;1&#xff0c;\u5373\u7f51\u7edc\u9884\u6d4b\u8fd9\u4e2aCell\u5185\u6700\u53ef\u80fd\u51fa\u73b0\u5173\u952e\u70b9\u7684\u4f4d\u7f6e\u3002<\/p>\n<p>Background Channel&#xff08;\u80cc\u666f\u901a\u9053&#xff09;&#xff1a;Detector Head \u8f93\u51faH\/8 \u00d7 W\/8 \u00d7 65&#xff0c;\u5176\u4e2d\u524d64\u4e2a\u901a\u9053\u8868\u793a8*8\u7f51\u683c\u4e2d64\u4e2a\u5019\u9009\u4f4d\u7f6e&#xff0c;\u7b2c65\u4e2a\u901a\u9053\u8868\u793aBackground&#xff08;\u80cc\u666f&#xff09;&#xff0c;\u76f8\u5f53\u4e8e\u4e00\u4e2a\u5783\u573e\u6876&#xff0c;\u8ba9\u7f51\u7edc\u53ef\u4ee5\u9009\u62e9\u8fd9\u4e2a cell \u91cc\u4e0d\u8f93\u51fa\u4efb\u4f55\u5173\u952e\u70b9\u3002<\/p>\n<p>Descriptor Head&#xff1a;\u8f93\u51fa\u6bcf\u4e2a\u50cf\u7d20\u4f4d\u7f6e\u5bf9\u5e94\u4e00\u4e2a\u9ad8\u7ef4\u5411\u91cf&#xff0c;\u4f8b\u5982256\u7ef4\u63cf\u8ff0\u5b50&#xff0c;\u4e4b\u540e\u5728\u5173\u952e\u70b9\u4f4d\u7f6e\u76f4\u63a5\u53d6\u5bf9\u5e94descriptor\u7528\u4e8e\u5339\u914d\u3002<\/p>\n<p>Dense Descriptor&#xff08;\u7a20\u5bc6\u63cf\u8ff0\u5b50&#xff09;&#xff1a;\u4f20\u7edf\u7279\u5f81\u5148\u68c0\u6d4b\u5173\u952e\u70b9&#xff0c;\u518d\u8ba1\u7b97\u63cf\u8ff0\u5b50\u3002\u800cSuperPoint\u4e00\u6b21\u6027\u8ba1\u7b97\u6574\u5f20\u56fe\u6240\u6709\u63cf\u8ff0\u5b50&#xff0c;\u7f51\u7edc\u76f4\u63a5\u8f93\u51faH\/8 \u00d7 W\/8 \u00d7 256&#xff0c;\u540e\u9762\u53ea\u9700\u8981\u5728\u5173\u952e\u70b9\u4f4d\u7f6eSampling&#xff08;\u91c7\u6837&#xff09;\u5373\u53ef\u3002<\/p>\n<p>\u8bad\u7ec3\u601d\u60f3&#xff1a;1.MagicPoint&#xff1a;\u5148\u5408\u6210\u51e0\u4f55\u56fe\u5f62&#xff0c;\u4f8b\u5982&#xff1a;\u7ebf\u3001\u89d2\u3001\u4e09\u89d2\u5f62&#xff0c;\u8bad\u7ec3\u89d2\u70b9\u68c0\u6d4b\u30022.Homographic Adaptation&#xff1a;\u5bf9\u771f\u5b9e\u56fe\u50cf\u4e0d\u65ad\u505aHomography\u53d8\u6362&#xff0c;\u5b66\u4e60\u54ea\u4e9b\u70b9\u5728\u53d8\u6362\u540e\u4ecd\u7a33\u5b9a\u3002<\/p>\n<p>SuperPoint Descriptor&#xff1a;\u901a\u5e38256\u7ef4\u6d6e\u70b9\u5411\u91cf&#xff0c;\u5339\u914d\u4e00\u822c\u4f7f\u7528L2\u8ddd\u79bb\u3002<\/p>\n<p>Repeatability&#xff08;\u53ef\u91cd\u590d\u6027&#xff09;&#xff1a;SuperPoint \u771f\u6b63\u4f18\u5316\u7684\u662f\u91cd\u590d\u68c0\u6d4b\u80fd\u529b&#xff0c;\u610f\u601d\u662f\u540c\u4e00\u4e2a\u7269\u7406\u70b9&#xff0c;\u5728\u4e0d\u540c\u5149\u7167\u3001\u89c6\u89d2\u3001\u5c3a\u5ea6\u3001\u6a21\u7cca\u60c5\u51b5\u4e0b\u8fd8\u80fd\u518d\u6b21\u88ab\u68c0\u6d4b\u51fa\u6765\u3002<\/p>\n<p>SuperPoint \u7684\u5c40\u9650\u6027&#xff1a;1.\u5927\u89c6\u89d2\u53d8\u5316\u4ecd\u6709\u9650&#xff0c;\u56e0\u4e3a\u4ecd\u7136\u5c5e\u4e8eLocal Feature&#xff08;\u5c40\u90e8\u7279\u5f81&#xff09;\u30022.\u91cd\u590d\u7eb9\u7406\u5bb9\u6613\u8bef\u5339\u914d&#xff0c;\u4f8b\u5982&#xff1a;\u7a97\u6237\u3001\u5730\u7816\u3001\u6805\u680f\u30023.\u5f31\u7eb9\u7406\u533a\u57df\u4ecd\u56f0\u96be&#xff0c;\u4f8b\u5982\u767d\u5899\u3001\u5929\u7a7a\u30024.\u63cf\u8ff0\u5b50\u7ef4\u5ea6\u9ad8&#xff0c;\u8ba1\u7b97\u548c\u5185\u5b58\u66f4\u5927\u3002<\/p>\n<p>SuperGlue&#xff1a;SuperPoint\u8d1f\u8d23\u68c0\u6d4b\u548c\u63cf\u8ff0&#xff0c;SuperGlue\u8d1f\u8d23Learned Matching&#xff08;\u5b66\u4e60\u5339\u914d&#xff09;&#xff0c;\u4f7f\u7528Graph Neural Network&#xff08;\u56fe\u795e\u7ecf\u7f51\u7edc&#xff09;\u3001Attention&#xff08;\u6ce8\u610f\u529b\u673a\u5236&#xff09;\u5b66\u4e60\u54ea\u4e9b\u70b9\u5e94\u8be5\u5339\u914d\u3002\u4f20\u7edf\u5339\u914d&#xff08;BFMatcher\u3001FLANN&#xff09;\u53ea\u770b&#xff1a;\u63cf\u8ff0\u5b50\u50cf\u4e0d\u50cf\u3002SuperGlue \u770b\u4e09\u6837\u4e1c\u897f&#xff1a;1.\u63cf\u8ff0\u5b50\u76f8\u4f3c\u5ea6&#xff08;\u50cf\u4e0d\u50cf&#xff09;\u30022.\u5173\u952e\u70b9\u5750\u6807\u4f4d\u7f6e&#xff08;\u5728\u54ea&#xff09;\u30023.\u6574\u5f20\u56fe\u7684\u4e0a\u4e0b\u6587\u7ed3\u6784&#xff08;\u573a\u666f\u5e03\u5c40&#xff09;\u3002\u7528 Transformer \u505a\u5168\u5c40\u63a8\u7406&#xff08;\u76f8\u5f53\u4e8e \u201c\u7406\u89e3\u573a\u666f\u201d&#xff09;&#xff0c;\u51e0\u4e4e\u4e0d\u4f1a\u9519\u5339\u914d\u3002<\/p>\n<p>Deep Feature &#043; Classical Geometry&#xff08;\u6df1\u5ea6\u7279\u5f81 &#043; \u4f20\u7edf\u51e0\u4f55&#xff09;&#xff1a;SuperPoint\u53ea\u5b66\u4e60\u7279\u5f81\u70b9\u548c\u63cf\u8ff0\u5b50&#xff0c;\u4f46\u540e\u9762\u5339\u914d RANSAC\u3001Homography \u4ecd\u7136\u662fClassical Geometry&#xff08;\u4f20\u7edf\u51e0\u4f55&#xff09;\u3002<\/p>\n<p>Grayscale Image&#xff08;\u7070\u5ea6\u56fe\u50cf&#xff09;&#xff1a;SuperPoint \u901a\u5e38\u8f93\u5165 Grayscale Image&#xff0c;\u56e0\u4e3a\u5c40\u90e8\u7279\u5f81\u66f4\u5173\u6ce8\u8fb9\u7f18\u3001\u68af\u5ea6\u3001\u51e0\u4f55\u7ed3\u6784&#xff0c;\u800c\u4e0d\u662f\u989c\u8272\u8bed\u4e49\u3002<\/p>\n<table>\n<tr>\u4f20\u7edf ORBSuperPoint<\/tr>\n<tbody>\n<tr>\n<td>FAST<\/td>\n<td>Detector Head<\/td>\n<\/tr>\n<tr>\n<td>BRIEF<\/td>\n<td>Descriptor Head<\/td>\n<\/tr>\n<tr>\n<td>detect()<\/td>\n<td>Heatmap<\/td>\n<\/tr>\n<tr>\n<td>compute()<\/td>\n<td>Descriptor Map<\/td>\n<\/tr>\n<tr>\n<td>\u4eba\u5de5\u89c4\u5219<\/td>\n<td>\u795e\u7ecf\u7f51\u7edc\u5b66\u4e60<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>2. SuperGlue<\/h3>\n<p>\u6df1\u5ea6\u5b66\u4e60\u7279\u5f81\u5339\u914d\u7f51\u7edc&#xff0c;\u8f93\u5165\u4e24\u5f20\u56fe\u7684\u5173\u952e\u70b9 &#043; \u63cf\u8ff0\u5b50&#xff08;\u901a\u5e38\u6765\u81ea SuperPoint&#xff09;&#xff0c;\u8f93\u51fa\u7cbe\u51c6\u5339\u914d &#043; \u81ea\u52a8\u5254\u9664\u9519\u8bef\u5339\u914d&#xff0c;\u5c24\u5176\u5728\u91cd\u590d\u7eb9\u7406&#xff08;\u5899\u3001\u5730\u9762&#xff09;\u3001\u5149\u7167\u53d8\u5316\u3001\u5927\u89c6\u89d2\u53d8\u5316\u3001\u906e\u6321\u3002<\/p>\n<p>\u4f20\u7edf\u5339\u914d&#xff08;BFMatcher\u3001FLANN&#xff09;&#xff1a;\u53ea\u770b\u63cf\u8ff0\u5b50\u8ddd\u79bb\u3001\u6ca1\u6709\u5168\u5c40\u4e0a\u4e0b\u6587\u3001\u91cd\u590d\u7eb9\u7406\u5fc5\u4e71\u914d\u3001\u5fc5\u987b\u624b\u52a8 RANSAC \u7b5b\u5916\u70b9\u3002<\/p>\n<p>SuperGlue&#xff1a;\u4f7f\u7528Graph Neural Network&#xff08;\u56fe\u795e\u7ecf\u7f51\u7edc&#xff09;\u3001Attention&#xff08;\u6ce8\u610f\u529b\u673a\u5236&#xff09;\u5b66\u4e60\u54ea\u4e9b\u70b9\u5e94\u8be5\u5339\u914d\u3002SuperGlue \u770b\u4e09\u6837\u4e1c\u897f&#xff1a;1.\u63cf\u8ff0\u5b50\u76f8\u4f3c\u5ea6&#xff08;\u50cf\u4e0d\u50cf&#xff09;\u30022.\u5173\u952e\u70b9\u5750\u6807\u4f4d\u7f6e&#xff08;\u5728\u54ea&#xff09;\u30023.\u6574\u5f20\u56fe\u7684\u4e0a\u4e0b\u6587\u7ed3\u6784&#xff08;\u573a\u666f\u5e03\u5c40&#xff09;\u3002\u7528 Transformer \u505a\u5168\u5c40\u63a8\u7406&#xff08;\u76f8\u5f53\u4e8e \u201c\u7406\u89e3\u573a\u666f\u201d&#xff09;&#xff0c;\u51e0\u4e4e\u4e0d\u4f1a\u9519\u5339\u914d\u3002<\/p>\n<p>SuperGlue \u53ea\u6709\u4e24\u5927\u5757&#xff1a;1.Attentional Graph Neural Network&#xff08;\u6ce8\u610f\u529b GNN&#xff09;\u30022.Optimal Matching Layer&#xff08;\u6700\u4f18\u5339\u914d\u5c42&#xff0c;Sinkhorn&#xff09;\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"536\" src=\"2026-08-16v3k2x5c13ua.png\" width=\"1080\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"689\" src=\"2026-08-16veua2dkez3h.png\" width=\"1363\" \/><\/p>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;\u5173\u952e\u70b9 &#043; \u63cf\u8ff0\u5b50 \u2192 \u7279\u5f81\u7f16\u7801 \u2192 \u591a\u5934\u81ea\u6ce8\u610f\u529b &#043; \u4ea4\u53c9\u6ce8\u610f\u529b \u2192 \u5339\u914d\u5f97\u5206\u77e9\u9635 \u2192 Sinkhorn&#xff08;\u71b5\u6b63\u5219\u5316\u6700\u4f18\u4f20\u8f93&#xff08;OT&#xff09;\u5feb\u901f\u6c42\u89e3\u7b97\u6cd5&#xff09; \u2192 \u6700\u7ec8\u5339\u914d<\/p>\n<p>\u7279\u5f81\u7f16\u7801&#xff1a;\u628a\u6bcf\u4e2a\u5173\u952e\u70b9\u7684128\u7ef4\u63cf\u8ff0\u5b50d\u3001\u5750\u6807(x,y)\u5408\u5e76\u6210\u4e00\u4e2a\u65b0\u5411\u91cf&#xff0c;\u8ba9\u7f51\u7edc\u540c\u65f6\u61c2\u5916\u89c2\u548c\u4f4d\u7f6e\u3002<\/p>\n<p>\u591a\u5934\u6ce8\u610f\u529b GNN&#xff1a;\u4e24\u79cd\u6ce8\u610f\u529b\u6765\u56de\u505a4~6\u5c42&#xff1a;<\/p>\n<p>\u00a0&#8211; Self-attention&#xff08;\u56fe\u5185&#xff09;&#xff1a;\u540c\u4e00\u5f20\u56fe\u91cc&#xff0c;\u5173\u952e\u70b9\u4e92\u76f8\u770b\u4e0a\u4e0b\u6587&#xff08;\u6bd4\u5982 \u201c\u8fd9\u4e2a\u70b9\u5728\u89d2\u843d&#xff0c;\u5468\u56f4\u70b9\u5c11&#xff0c;\u5e94\u8be5\u662f\u72ec\u7279\u7279\u5f81\u201d&#xff09;\u3002<\/p>\n<p>\u00a0&#8211; Cross-attention&#xff08;\u56fe\u95f4&#xff09;&#xff1a;\u4e24\u5f20\u56fe\u7684\u5173\u952e\u70b9\u4e92\u76f8\u770b&#xff08;\u6bd4\u5982 \u201cA \u56fe\u7684\u8fd9\u4e2a\u70b9&#xff0c;\u5728 B \u56fe\u54ea\u4e2a\u533a\u57df\u6700\u50cf\u201d&#xff09;\u3002<\/p>\n<p>\u00a0&#8211; \u7ed3\u679c&#xff1a;\u6bcf\u4e2a\u5173\u952e\u70b9\u7684\u5411\u91cf\u90fd\u88ab\u5168\u5c40\u4e0a\u4e0b\u6587\u589e\u5f3a&#xff0c;\u4e0d\u518d\u662f\u5b64\u7acb\u7684 128 \u7ef4\u3002<\/p>\n<p>Sinkhorn \u6700\u4f18\u5339\u914d&#xff1a;<\/p>\n<p>\u00a0&#8211; \u4f20\u7edf\u6700\u8fd1\u90bb\u5339\u914d\u95ee\u9898&#xff1a;\u8d2a\u5fc3\u5c31\u8fd1\u5339\u914d&#xff0c;\u4f1a\u51fa\u73b0\u4e00\u5bf9\u591a\u62a2\u540c\u4e00\u4e2a\u70b9\u6bd4\u5982 A1\u3001A2 \u90fd\u5339\u914d\u5230 B1&#xff0c;\u5339\u914d\u51b2\u7a81\u3001\u9519\u4e71&#xff0c;\u4e0d\u7b26\u5408\u771f\u5b9e\u4e00\u5bf9\u4e00\u5339\u914d\u89c4\u5219\u3002<\/p>\n<p>\u00a0&#8211; SuperGlue &#043; Sinkhorn &#xff1a;\u628a\u7279\u5f81\u5339\u914d\u6539\u6210\u53ef\u5fae\u5206\u6700\u4f18\u5206\u914d\u95ee\u9898&#xff0c;\u7528 Sinkhorn \u8fed\u4ee3\u7b97\u51fa\u53cc\u968f\u673a\u5339\u914d\u77e9\u9635 P&#xff0c;\u6ee1\u8db3\u4e09\u6761\u89c4\u5219&#xff1a;1.\u6e90\u56fe\u4e00\u4e2a\u7279\u5f81\u70b9\u6700\u591a\u53ea\u5339\u914d\u76ee\u6807\u56fe\u4e00\u4e2a\u70b9\u30022.\u76ee\u6807\u56fe\u4e00\u4e2a\u7279\u5f81\u70b9\u6700\u591a\u53ea\u88ab\u4e00\u4e2a\u6e90\u70b9\u5339\u914d\u30023.\u5141\u8bb8\u65e0\u5339\u914d&#xff08;\u6574\u884c \/ \u6574\u5217\u4e3a 0&#xff09;&#xff0c;\u9002\u914d\u906e\u6321\u3001\u5916\u70b9\u3001\u65e0\u5bf9\u5e94\u7279\u5f81\u3002<\/p>\n<p>\u00a0&#8211; \u5f97\u51fa\u5339\u914d&#xff1a;\u77e9\u9635\u91cc\u6570\u503cP ij \u8d8a\u5927&#xff0c;\u4ee3\u8868 A \u7b2c i \u4e2a\u70b9\u4e0e B \u7b2c j \u4e2a\u70b9\u5339\u914d\u7f6e\u4fe1\u5ea6\u8d8a\u9ad8&#xff0c;\u76f4\u63a5\u53d6\u6570\u503c\u6700\u5927\u7684\u4f4d\u7f6e&#xff0c;\u4f5c\u4e3a\u6700\u7ec8\u6b63\u786e\u5339\u914d\u5bf9\u3002<\/p>\n<h3>3. LoFTR<\/h3>\n<p>\u57fa\u4e8eTransformer\u7684\u65e0\u68c0\u6d4b\u5668\u5c40\u90e8\u7279\u5f81\u5339\u914d\u65b9\u6cd5&#xff08;Detector-Free Local Feature Matching with Transformers&#xff09;\u3002\u4f20\u7edf\u65b9\u6cd5\u5168\u90fd\u662f\u5148\u68c0\u6d4b\u5173\u952e\u70b9\u3001\u63d0\u53d6\u63cf\u8ff0\u5b50&#xff0c;\u518d\u505a\u5339\u914d&#xff0c;\u5982\u679cdetector\u68c0\u6d4b\u4e0d\u5230\u70b9&#xff0c;\u540e\u9762\u5c31\u5168\u6ca1\u4e86\u3002\u800cLoFTR\u7684\u6838\u5fc3\u601d\u60f3\u662f\u4e0d\u8981\u68c0\u6d4b\u5668&#xff0c;\u76f4\u63a5\u5bf9\u6574\u5f20\u56fe\u63d0\u53d6\u7a20\u5bc6\u7279\u5f81&#xff0c;\u8ba9\u7f51\u7edc\u81ea\u5df1\u5b66\u54ea\u91cc\u8be5\u5339\u914d\u3002\u4ee5\u524d\u5148\u627e\u70b9&#xff0c;\u73b0\u5728\u5148\u627e\u5bf9\u5e94\u5173\u7cfb&#xff0c;\u8fd9\u662f\u672c\u8d28\u53d8\u5316\u3002<\/p>\n<p>\u4f18\u70b9&#xff1a;1.\u5f31\u7eb9\u7406\u5f3a&#xff0c;\u56e0\u4e3a\u4e0d\u4f9d\u8d56 detector\u30022.\u5927\u89c6\u89d2\u5f3a&#xff0c;Attention\u80fd\u5b66\u4e60\u5168\u5c40\u5173\u7cfb\u30023.\u6a21\u7cca\u5f3a&#xff0c;\u56e0\u4e3a\u4e0a\u4e0b\u6587\u5e2e\u52a9\u5de8\u5927\u3002<\/p>\n<p>\u7f3a\u70b9&#xff1a;1.\u5f88\u6162&#xff0c;\u56e0\u4e3aDense Attention\u590d\u6742\u5ea6\u9ad8\u30022.\u5f88\u5403\u663e\u5b58&#xff0c;\u5c24\u5176\u9ad8\u5206\u8fa8\u7387\u30023.\u79fb\u52a8\u7aef\u90e8\u7f72\u96be&#xff0c;\u56e0\u4e3aTransformer\u91cd<\/p>\n<table>\n<tr>\u65b9\u6848\u8303\u5f0f\u662f\u5426\u8981\u5173\u952e\u70b9\u9002\u7528\u573a\u666f<\/tr>\n<tbody>\n<tr>\n<td>SuperPoint&#043;SuperGlue<\/td>\n<td>\u5148\u68c0\u6d4b\u5173\u952e\u70b9\u2192\u63d0\u63cf\u8ff0\u5b50\u2192Transformer \u5339\u914d<\/td>\n<td>\u8981<\/td>\n<td>\u7eb9\u7406\u4e30\u5bcc\u3001\u666e\u901a\u56fe\u50cf<\/td>\n<\/tr>\n<tr>\n<td>LoFTR<\/td>\n<td>\u7a20\u5bc6\u7279\u5f81 &#043; \u7c97\u7c92\u5ea6\u2192\u7ec6\u7c92\u5ea6 \u53cc\u5c42 Transformer \u5339\u914d<\/td>\n<td>\u4e0d\u8981\u5173\u952e\u70b9<\/td>\n<td>\u5f31\u7eb9\u7406\u3001\u91cd\u590d\u7eb9\u7406\u3001\u53cd\u5149\u3001\u5ba4\u5185\u590d\u6742\u573a\u666f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6574\u4f53\u6d41\u7a0b&#xff1a;Image0 &#043; Image1-&gt;CNN Backbone&#xff08;\u5377\u79ef\u4e3b\u5e72\u7f51\u7edc&#xff09;-&gt;Dense Feature Map&#xff08;\u7a20\u5bc6\u7279\u5f81\u56fe&#xff09;-&gt;Positional Encoding&#xff08;\u4f4d\u7f6e\u7f16\u7801&#xff09;-&gt;Local Feature Transformer-&gt;Self-Attention&#xff08;\u81ea\u6ce8\u610f\u529b&#xff09;-&gt;Cross-Attention&#xff08;\u4ea4\u53c9\u6ce8\u610f\u529b&#xff09;-&gt;Coarse Matching&#xff08;\u7c97\u5339\u914d&#xff09;-&gt;Fine-Level Refinement&#xff08;\u7cbe\u7ec6\u5339\u914d&#xff09;-&gt;Final Correspondence&#xff08;\u6700\u7ec8\u5bf9\u5e94\u70b9&#xff09;\u3002<\/p>\n<p>Dense Feature&#xff08;\u7a20\u5bc6\u7279\u5f81&#xff09;&#xff1a;\u4f20\u7edf\u65b9\u6cd5\u53ea\u5bf9\u5173\u952e\u70b9\u63d0\u53d6\u7279\u5f81&#xff0c;LoFTR\u5bf9\u6574\u5f20\u56fe\u6bcf\u4e2a\u4f4d\u7f6e\u90fd\u6709feature&#xff0c;\u4e5f\u5c31\u662f\u7a20\u5bc6\u63cf\u8ff0\u5b50\u56fe\u3002<\/p>\n<p>Self-Attention&#xff08;\u81ea\u6ce8\u610f\u529b&#xff09;&#xff1a;\u540c\u4e00\u5f20\u56fe\u4e0d\u540c\u4f4d\u7f6e\u4e4b\u95f4\u4e92\u76f8\u901a\u4fe1&#xff0c;\u4f8b\u5982\u5de6\u8fb9\u5899\u58c1\u70b9\u4f1a\u77e5\u9053\u81ea\u5df1\u9644\u8fd1\u7ed3\u6784\u3001\u5168\u5c40\u4e0a\u4e0b\u6587\u3001\u5468\u56f4\u7eb9\u7406\u5173\u7cfb\u3002<\/p>\n<p>Cross-Attention&#xff08;\u4ea4\u53c9\u6ce8\u610f\u529b&#xff09;&#xff1a;\u4e24\u5f20\u56fe\u4f1a\u4e92\u76f8\u5bfb\u627e\u5bf9\u5e94\u5173\u7cfb&#xff0c;\u8fd9\u5df2\u7ecf\u4e0d\u662fdescriptor \u6700\u8fd1\u90bb\u4e86&#xff0c;\u800c\u662f\u5b66\u4e60\u5339\u914d\u5173\u7cfb\u3002<\/p>\n<p>Positional Encoding&#xff08;\u4f4d\u7f6e\u7f16\u7801&#xff09;&#xff1a;Transformer\u672c\u8eab\u4e0d\u77e5\u9053\u8c01\u5728\u5de6\u8fb9\u3001\u8c01\u5728\u53f3\u8fb9&#xff0c;\u6240\u4ee5\u5fc5\u987b\u52a0\u5165\u4f4d\u7f6e\u4fe1\u606f&#xff0c;\u5426\u5219Attention\u6ca1\u6709\u7a7a\u95f4\u6982\u5ff5\u3002<\/p>\n<p>Coarse Matching&#xff08;\u7c97\u5339\u914d&#xff09;&#xff1a;LoFTR\u4e0d\u4f1a\u76f4\u63a5\u5168\u5206\u8fa8\u7387\u5339\u914d&#xff0c;\u5426\u5219\u76f4\u63a5\u8ba1\u7b97\u7206\u70b8&#xff0c;\u6240\u4ee5\u5148\u4f4e\u5206\u8fa8\u7387\u5168\u5c40\u5339\u914d&#xff0c;\u4f8b\u5982\u57281\/8 feature map\u4e2d\u5148\u627e\u5230\u5927\u6982\u5bf9\u5e94\u533a\u57df\u3002<\/p>\n<p>Fine Matching&#xff08;\u7cbe\u5339\u914d&#xff09;&#xff1a;\u5728\u7c97\u5339\u914d\u9644\u8fd1\u5c40\u90e8\u7a97\u53e3\u7ec6\u5316&#xff0c;\u5728\u7c97\u5339\u914d\u627e\u5230\u7684 \u201c\u5c0f\u533a\u57df\u201d \u91cc&#xff0c;\u505a\u50cf\u7d20\u7ea7\u7684\u7cbe\u51c6\u5339\u914d&#xff0c;\u628a\u4f4d\u7f6e\u4fee\u6b63\u5230\u539f\u56fe\u771f\u5b9e\u5750\u6807\u3002<\/p>\n<h3>4.\u6df1\u5ea6\u5b66\u4e60 Optical Flow<\/h3>\n<p>\u4f20\u7edf\u5149\u6d41&#xff1a;LK\u3001Horn-Schunck\u3001Farneback<\/p>\n<p>\u95ee\u9898&#xff1a;\u5927\u4f4d\u79fb\u56f0\u96be\u3001\u906e\u6321\u56f0\u96be\u3001\u5f31\u7eb9\u7406\u56f0\u96be&#xff1b;\u5c40\u90e8 patch \u5047\u8bbe\u5bb9\u6613\u5931\u8d25&#xff1b;\u590d\u6742\u8fd0\u52a8\u5efa\u6a21\u80fd\u529b\u5f31\u3002<\/p>\n<p>\u6df1\u5ea6\u5b66\u4e60\u5149\u6d41&#xff1a;FlowNet\u3001PWC-Net\u3001RAFT\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u7f51\u7edc\u76f4\u63a5\u5b66\u4e60\u50cf\u7d20\u8fd0\u52a8\u573a&#xff08;Dense Motion Field&#xff09;&#xff1b;\u4e0d\u518d\u4f9d\u8d56\u5c40\u90e8\u6cf0\u52d2\u5c55\u5f00&#xff0c;\u800c\u662f\u5168\u5c40\u5b66\u4e60 motion correspondence\u3002<\/p>\n<table>\n<tr>\u5bf9\u6bd4\u7ef4\u5ea6\u4f20\u7edf\u5149\u6d41&#xff08;LK\/Farneback&#xff09;\u6df1\u5ea6\u5b66\u4e60\u5149\u6d41&#xff08;RAFT\/FlowNet&#xff09;<\/tr>\n<tbody>\n<tr>\n<td>\u6838\u5fc3\u5047\u8bbe<\/td>\n<td>\u4eae\u5ea6\u4e0d\u53d8 &#043; \u5c40\u90e8\u5e73\u6ed1\u7ea6\u675f<\/td>\n<td>\u6570\u636e\u9a71\u52a8\u5b66\u4e60\u5168\u5c40\u8fd0\u52a8\u6a21\u5f0f<\/td>\n<\/tr>\n<tr>\n<td>\u5927\u4f4d\u79fb\u5904\u7406<\/td>\n<td>\u5dee&#xff0c;\u6613\u5931\u6548<\/td>\n<td>\u5f3a&#xff0c;\u91d1\u5b57\u5854 \/ \u8fed\u4ee3\u4f18\u5316\u9002\u914d\u5927\u4f4d\u79fb<\/td>\n<\/tr>\n<tr>\n<td>\u906e\u6321 \/ \u5f31\u7eb9\u7406<\/td>\n<td>\u5dee&#xff0c;\u6613\u6f02\u79fb \/ \u5931\u6548<\/td>\n<td>\u5f3a&#xff0c;\u5168\u5c40\u4e0a\u4e0b\u6587\u5efa\u6a21\u5904\u7406\u906e\u6321<\/td>\n<\/tr>\n<tr>\n<td>\u590d\u6742\u8fd0\u52a8<\/td>\n<td>\u5dee&#xff0c;\u975e\u521a\u6027\u5f62\u53d8\u5efa\u6a21\u5f31<\/td>\n<td>\u5f3a&#xff0c;\u6570\u636e\u9a71\u52a8\u9002\u914d\u590d\u6742\u8fd0\u52a8<\/td>\n<\/tr>\n<tr>\n<td>\u6cdb\u5316\u80fd\u529b<\/td>\n<td>\u4f9d\u8d56\u53c2\u6570\u8c03\u4f18&#xff0c;\u573a\u666f\u654f\u611f<\/td>\n<td>\u6570\u636e\u9a71\u52a8\u6cdb\u5316&#xff0c;\u9c81\u68d2\u6027\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u8ba1\u7b97\u6548\u7387<\/td>\n<td>\u5feb&#xff08;\u8f7b\u91cf\u7ea7\u7b97\u6cd5&#xff09;<\/td>\n<td>RAFT \u5b9e\u65f6\u6027\u8f83\u597d&#xff0c;FlowNet \u7565\u6162<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>FlowNet&#xff1a;\u4f20\u7edf\u5149\u6d41\u4f9d\u9760\u4eae\u5ea6\u6052\u5b9a\u5047\u8bbe\u4e0e\u5c40\u90e8\u4f18\u5316\u6c42\u89e3&#xff0c;\u9762\u5bf9\u5feb\u901f\u8fd0\u52a8\u3001\u590d\u6742\u906e\u6321\u573a\u666f\u7a33\u5b9a\u6027\u5dee\u3002FlowNet \u662f\u9996\u4e2a\u57fa\u4e8e CNN \u7684\u5149\u6d41\u7f51\u7edc&#xff0c;\u6838\u5fc3\u601d\u60f3\u5b9e\u73b0\u7aef\u5230\u7aef\u6620\u5c04&#xff1a;\u56fe\u50cf\u5bf9\u76f4\u63a5\u8f93\u51fa\u5149\u6d41\u573a&#xff0c;\u65e0\u9700\u4f20\u7edf\u624b\u5de5\u7ea6\u675f\u4e0e\u8fed\u4ee3\u6c42\u89e3\u3002<\/p>\n<p>PWC-Net&#xff1a;\u4f20\u7edf\u7a20\u5bc6\u5149\u6d41\u6574\u4f53\u4f18\u5316\u8ba1\u7b97\u5f00\u9500\u5927&#xff0c;\u8fd0\u884c\u901f\u5ea6\u6162&#xff0c;\u96be\u4ee5\u5b9e\u7528\u843d\u5730\u3002 PWC-Net \u878d\u5408\u91d1\u5b57\u5854\u3001\u7279\u5f81\u626d\u66f2\u3001\u4ee3\u4ef7\u4f53\u4e09\u5927\u6a21\u5757&#xff1a;\u5229\u7528\u91d1\u5b57\u5854\u7ed3\u6784\u9002\u914d\u5927\u4f4d\u79fb\u8fd0\u52a8&#xff0c;\u7531\u7c97\u5230\u7ec6\u901a\u8fc7\u7279\u5f81\u626d\u66f2\u5b8c\u6210\u7cbe\u7ec6\u5316\u4f18\u5316&#xff0c;\u501f\u52a9\u4ee3\u4ef7\u4f53\u8868\u5f81\u50cf\u7d20\u5339\u914d\u76f8\u4f3c\u5ea6\u3002<\/p>\n<p>RAFT&#xff08;\u4e3b\u6d41\u6700\u4f18&#xff09;&#xff1a;Recurrent All-Pairs Field Transforms\u3002\u4f20\u7edf\u5149\u6d41\u5c40\u9650\u4e8e\u5c40\u90e8\u5757\u8ddf\u8e2a&#xff0c;\u7f3a\u5c11\u5168\u5c40\u50cf\u7d20\u5173\u8054\u5efa\u6a21\u80fd\u529b&#xff0c;\u96be\u4ee5\u5904\u7406\u5927\u5e45\u5ea6\u8fd0\u52a8\u3001\u906e\u6321\u533a\u57df\u4e0e\u975e\u521a\u6027\u8fd0\u52a8\u3002 RAFT \u5168\u79f0\u9012\u5f52\u5168\u5bf9\u573a\u53d8\u6362&#xff0c;\u6838\u5fc3\u601d\u8def\u6784\u5efa\u5168\u50cf\u7d20\u5173\u8054\u4ee3\u4ef7\u4f53&#xff0c;\u5efa\u7acb\u6240\u6709\u50cf\u7d20\u95f4\u76f8\u4f3c\u5ea6\u5173\u8054&#xff0c;\u642d\u914d\u5faa\u73af\u8fed\u4ee3\u673a\u5236\u6301\u7eed\u4f18\u5316\u7ec6\u5316\u5149\u6d41\u7ed3\u679c\u3002 \u672c\u8d28\u662f\u795e\u7ecf\u7f51\u7edc\u5316\u7684\u7a20\u5bc6\u5149\u6d41\u8fed\u4ee3\u4f18\u5316\u6846\u67b6\u3002 \u4f18\u52bf&#xff1a;\u9884\u6d4b\u7cbe\u5ea6\u9876\u5c16&#xff0c;\u5bf9\u5927\u4f4d\u79fb\u3001\u906e\u6321\u3001\u590d\u6742\u975e\u521a\u6027\u8fd0\u52a8\u9c81\u68d2\u6027\u6781\u5f3a&#xff0c;\u662f\u73b0\u9636\u6bb5\u5de5\u4e1a\u4e0e\u5b66\u672f\u9886\u57df\u6700\u4e3b\u6d41\u7684\u6807\u6746\u7ea7\u5149\u6d41\u7b97\u6cd5\u3002<\/p>\n<p>\u9002\u7528\u573a\u666f&#xff1a;<\/p>\n<p>\u505a\u7814\u7a76\u3001\u9ad8\u7cbe\u5ea6\u3001VO\/SLAM&#xff1a;\u4e00\u5f8b RAFT<br \/>\n\u5de5\u7a0b\u843d\u5730\u3001\u5b9e\u65f6\u52a0\u901f&#xff1a;PWC-Net<br \/>\n\u65e0 GPU\u3001\u7b80\u5355\u573a\u666f&#xff1a;Farneback<br \/>\n\u6559\u5b66\u5b9e\u9a8c\u3001\u7a00\u758f\u8ddf\u8e2a&#xff1a;LK<\/p>\n<h3 style=\"background-color:transparent\">5.Deep VO<\/h3>\n<p>\u4f20\u7edf VO&#xff1a;\u7279\u5f81\u5339\u914d \u2192 PnP \u6c42\u89e3\u4f4d\u59ff \u2192 BA \u540e\u7aef\u4f18\u5316<\/p>\n<p>\u95ee\u9898&#xff1a;pipeline \u957f&#xff1b;\u8bef\u5339\u914d\u4f1a\u4f20\u9012\u9519\u8bef&#xff1b;\u52a8\u6001\u573a\u666f\u8106\u5f31&#xff1b;\u7279\u5f81\u4f9d\u8d56\u4e25\u91cd\u3002<\/p>\n<p>\u6838\u5fc3\u601d\u60f3&#xff1a;\u76f4\u63a5\u5b66\u4e60&#xff1a;Image Sequence \u2192 Camera Pose\u3002\u5373&#xff1a;RGB \u8f93\u5165 \u2192 \u7f51\u7edc\u76f4\u63a5\u8f93\u51fa\u4f4d\u59ff\u3002<\/p>\n<p>PoseNet&#xff1a;\u7b80\u5355\u3001\u7aef\u5230\u7aef\u3001\u4e0d\u4f9d\u8d56\u7279\u5f81\u70b9&#xff0c;\u7f3a\u70b9\u662f\u7cbe\u5ea6\u8f83\u4f4e\u3002<\/p>\n<p>DeepVO&#xff1a;\u8f93\u5165\u8fde\u7eed\u56fe\u50cf&#xff0c;\u8f93\u51fa\u8fde\u7eed\u4f4d\u59ff<\/p>\n<p>UnDeepVO&#xff08;Unsupervised Learning&#xff09;&#xff1a;\u4e0d\u9700\u8981\u771f\u5b9e\u4f4d\u59ff\u6807\u7b7e&#xff0c;\u5229\u7528\u5149\u5ea6\u4e00\u81f4\u6027\u3001\u51e0\u4f55\u7ea6\u675f\u3001\u91cd\u6295\u5f71\u8bef\u5dee\u8fdb\u884c\u81ea\u76d1\u7763\u8bad\u7ec3\u3002<\/p>\n<p>DROID-SLAM&#xff1a;\u73b0\u4ee3\u6700\u5f3a Deep SLAM\/VO \u4e4b\u4e00\u3002\u878d\u5408 Deep Feature\u3001Optical Flow\u3001Optimization\u3001Dense Matching&#xff0c;\u7cbe\u5ea6\u6781\u9ad8\u3002\u5c5e\u4e8eLearning &#043; Geometry Hybrid&#xff0c;\u5b66\u4e60\u4e0e\u51e0\u4f55\u878d\u5408\u3002<\/p>\n<p>\u4f18\u52bf&#xff1a;1.\u4e0d\u4f9d\u8d56\u4eba\u5de5\u7279\u5f81&#xff0c;\u56e0\u6b64\u5f31\u7eb9\u7406\u533a\u57df\u66f4\u7a33\u5b9a\u30022.\u7f51\u7edc\u53ef\u4ee5\u5b66\u4e60\u54ea\u4e9b\u533a\u57df\u4e0d\u53ef\u9760&#xff0c;\u52a8\u6001\u573a\u666f\u66f4\u9c81\u68d2\u30023.\u7aef\u5230\u7aef&#xff0c;\u76f4\u63a5\u8f93\u51fa\u4f4d\u59ff\u3002<\/p>\n<p>\u95ee\u9898&#xff1a;1.\u6cdb\u5316\u5dee\u30022.\u53ef\u89e3\u91ca\u6027\u5dee&#xff0c;\u9ed1\u76d2\u7f51\u7edc&#xff0c;\u5f88\u96be\u5206\u6790\u5931\u8d25\u539f\u56e0\u30023.\u9700\u8981\u5927\u91cf\u6570\u636e\u3002<\/p>\n<p>\u73b0\u4ee3\u8d8b\u52bf\u662f Learning &#043; Geometry \u878d\u5408&#xff0c;Deep Feature &#043; Geometry Optimization\u3002<\/p>\n<p>\u56db\u5927\u65b9\u6cd5\u672c\u8d28\u533a\u522b<\/p>\n<table>\n<tr>\u65b9\u6cd5\u672c\u8d28\u9a71\u52a8\u529b<\/tr>\n<tbody>\n<tr>\n<td>\u7279\u5f81\u6cd5<\/td>\n<td>\u51e0\u4f55\u9a71\u52a8&#xff08;Geometry-driven&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u7ebf\/\u8fb9\u7f18\u6cd5<\/td>\n<td>\u7ed3\u6784\u9a71\u52a8&#xff08;Structure-driven&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u76f4\u63a5\u6cd5<\/td>\n<td>\u5149\u5ea6\u9a71\u52a8&#xff08;Photometric-driven&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u6df1\u5ea6\u5b66\u4e60\u6cd5<\/td>\n<td>\u6570\u636e\u9a71\u52a8&#xff08;Data-driven&#xff09;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5178\u578bPipeline\u5bf9\u6bd4&#xff1a;<\/p>\n<p>1. \u7279\u5f81\u6cd5 Pipeline<\/p>\n<p>Image \u2192 Detect Keypoints \u2192 Compute Descriptor \u2192 Matching \u2192 RANSAC \u2192 PnP\/BA \u2192 Pose<\/p>\n<p>\u6838\u5fc3&#xff1a;\u5148\u5efa\u7acb Correspondence&#xff08;\u5bf9\u5e94\u5173\u7cfb&#xff09;&#xff0c;\u518d\u505a Geometry Optimization\u3002<\/p>\n<p>2. \u7ebf\/\u8fb9\u7f18\u6cd5 Pipeline<\/p>\n<p>Image \u2192 Edge Detection \u2192 Line Extraction \u2192 Line Matching \u2192 Geometry Optimization<\/p>\n<p>\u6838\u5fc3&#xff1a;\u4f7f\u7528\u7ed3\u6784\u4fe1\u606f&#xff0c;\u5229\u7528\u5e73\u884c\u7ebf\u3001\u6d88\u5931\u70b9\u3001\u8fb9\u7f18\u7ea6\u675f\u3002<\/p>\n<p>3. \u76f4\u63a5\u6cd5 Pipeline<\/p>\n<p>Image \u2192 Compute Gradient \u2192 Build Photometric Error \u2192 GN\/LM Optimization \u2192 Pose<\/p>\n<p>\u6838\u5fc3&#xff1a;\u4e0d\u505a matching&#xff0c;\u76f4\u63a5\u4f18\u5316\u7070\u5ea6\u4e00\u81f4\u6027\u3002<\/p>\n<p>4. \u6df1\u5ea6\u5b66\u4e60\u6cd5 Pipeline<\/p>\n<p>Image Sequence \u2192 Neural Network \u2192 Pose \/ Depth \/ Flow<\/p>\n<p>\u6838\u5fc3&#xff1a;\u4e0d\u624b\u5de5\u8bbe\u8ba1\u7279\u5f81&#xff0c;\u7f51\u7edc\u81ea\u5df1\u5b66\u4e60\u8868\u793a\u3002<\/p>\n<table>\n<tr>\u5bf9\u6bd4\u7ef4\u5ea6\u57fa\u4e8e\u7279\u5f81\u7684\u65b9\u6cd5&#xff08;Feature-based&#xff09;\u57fa\u4e8e\u7ebf\/\u8fb9\u7f18\u7684\u65b9\u6cd5&#xff08;Line\/Edge-based&#xff09;\u76f4\u63a5\u6cd5&#xff08;Direct Method&#xff09;\u57fa\u4e8e\u6df1\u5ea6\u5b66\u4e60\u7684\u65b9\u6cd5&#xff08;Deep Learning-based&#xff09;<\/tr>\n<tbody>\n<tr>\n<td>\u6838\u5fc3\u601d\u60f3<\/td>\n<td>\u63d0\u53d6\u5173\u952e\u70b9\u4e0e\u63cf\u8ff0\u5b50&#xff0c;\u901a\u8fc7\u5339\u914d\u6062\u590d\u51e0\u4f55\u5173\u7cfb<\/td>\n<td>\u5229\u7528\u8fb9\u7f18\u3001\u76f4\u7ebf\u3001\u8f6e\u5ed3\u7b49\u7ed3\u6784\u4fe1\u606f\u5efa\u7acb\u7ea6\u675f<\/td>\n<td>\u76f4\u63a5\u6700\u5c0f\u5316\u50cf\u7d20\u7070\u5ea6\u8bef\u5dee&#xff08;Photometric Error&#xff09;<\/td>\n<td>\u4f7f\u7528\u795e\u7ecf\u7f51\u7edc\u5b66\u4e60\u7279\u5f81\u3001\u5339\u914d\u3001\u6df1\u5ea6\u3001\u5149\u6d41\u6216\u4f4d\u59ff<\/td>\n<\/tr>\n<tr>\n<td>\u4f7f\u7528\u4fe1\u606f<\/td>\n<td>Corner\u3001Descriptor\u3001Geometry<\/td>\n<td>Edge\u3001Line\u3001Gradient\u3001Structure<\/td>\n<td>Pixel Intensity\u3001Image Gradient<\/td>\n<td>RGB\u3001Feature Map\u3001Semantic Context<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u8981\u7279\u5f81\u70b9<\/td>\n<td>\u9700\u8981<\/td>\n<td>\u4e0d\u4e00\u5b9a<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u4e00\u5b9a<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5f31\u7eb9\u7406\u573a\u666f\u80fd\u529b<\/td>\n<td>\u5f88\u5dee&#xff0c;\u767d\u5899\u3001\u5929\u7a7a\u3001\u5730\u677f\u5bb9\u6613\u65e0\u7279\u5f81\u70b9<\/td>\n<td>\u4e2d\u7b49&#xff0c;\u4ecd\u53ef\u5229\u7528\u8fb9\u7f18\u7ed3\u6784<\/td>\n<td>\u8f83\u5f3a&#xff0c;\u53ea\u8981\u5b58\u5728\u7070\u5ea6\u68af\u5ea6\u5373\u53ef\u4f18\u5316<\/td>\n<td>\u66f4\u5f3a&#xff0c;\u53ef\u5229\u7528\u5168\u5c40\u4e0a\u4e0b\u6587\u4e0e\u8bed\u4e49\u4fe1\u606f<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u52a8\u6001\u573a\u666f\u80fd\u529b<\/td>\n<td>\u4e2d\u7b49&#xff0c;\u53ef\u901a\u8fc7RANSAC\u5254\u9664\u90e8\u5206\u52a8\u6001\u70b9<\/td>\n<td>\u4e00\u822c&#xff0c;\u52a8\u6001\u8fb9\u7f18\u5bb9\u6613\u7834\u574f\u7ebf\u7ea6\u675f<\/td>\n<td>\u8f83\u5dee&#xff0c;\u52a8\u6001\u7269\u4f53\u7834\u574f\u5149\u5ea6\u4e00\u81f4\u6027<\/td>\n<td>\u8f83\u5f3a&#xff0c;\u53ef\u5b66\u4e60\u8fd0\u52a8\u6a21\u5f0f\u4e0e\u52a8\u6001\u533a\u57df<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5927\u4f4d\u79fb\u80fd\u529b<\/td>\n<td>\u5f3a&#xff0c;Descriptor Matching \u5bf9\u5927\u8fd0\u52a8\u9c81\u68d2<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u5f31&#xff0c;\u901a\u5e38\u5fc5\u987b Pyramid<\/td>\n<td>\u5f3a&#xff0c;\u73b0\u4ee3\u7f51\u7edc\u5bf9\u5927\u8fd0\u52a8\u975e\u5e38\u9c81\u68d2<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5e73\u79fb&#xff08;Translation&#xff09;\u9002\u5e94\u6027<\/td>\n<td>\u5f3a<\/td>\n<td>\u5f3a<\/td>\n<td>\u5c0f\u5e73\u79fb\u5f3a&#xff0c;\u5927\u5e73\u79fb\u5f31<\/td>\n<td>\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u65cb\u8f6c&#xff08;Rotation&#xff09;\u9002\u5e94\u6027<\/td>\n<td>\u8f83\u5f3a&#xff0c;SIFT\/ORB \u5177\u6709\u65cb\u8f6c\u4e0d\u53d8\u6027<\/td>\n<td>\u4e2d\u7b49&#xff0c;\u7ebf\u65b9\u5411\u53d8\u5316\u4f1a\u5f71\u54cd\u7a33\u5b9a\u6027<\/td>\n<td>\u8f83\u5f31&#xff0c;\u5927\u65cb\u8f6c\u5bb9\u6613\u4f18\u5316\u5931\u8d25<\/td>\n<td>\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u7f29\u653e&#xff08;Scale Change&#xff09;\u9002\u5e94\u6027<\/td>\n<td>\u5f3a&#xff0c;SIFT\/SURF \u5929\u751f\u591a\u5c3a\u5ea6<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u8f83\u5dee&#xff0c;\u5c3a\u5ea6\u53d8\u5316\u5bb9\u6613\u7834\u574f\u7070\u5ea6\u4e00\u81f4\u6027<\/td>\n<td>\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u900f\u89c6\u53d8\u5316&#xff08;Perspective Change&#xff09;\u9002\u5e94\u6027<\/td>\n<td>\u8f83\u5f3a&#xff0c;\u53ef\u7ed3\u5408 Homography \/ Epipolar Geometry<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u8f83\u5f31&#xff0c;\u975e\u5e73\u9762\u573a\u666f\u5bb9\u6613\u5931\u8d25<\/td>\n<td>\u8f83\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u5bf9\u5149\u7167\u53d8\u5316\u9002\u5e94\u6027<\/td>\n<td>\u4e2d\u7b49&#xff0c;Descriptor \u6709\u4e00\u5b9a\u9c81\u68d2\u6027<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u8f83\u5dee&#xff0c;Brightness Constancy \u5bb9\u6613\u5931\u6548<\/td>\n<td>\u8f83\u5f3a&#xff0c;\u53ef\u5b66\u4e60\u5149\u7167\u4e0d\u53d8\u7279\u5f81<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f9d\u8d56\u521d\u59cb\u5316<\/td>\n<td>\u4e0d\u654f\u611f<\/td>\n<td>\u4e2d\u7b49\u654f\u611f<\/td>\n<td>\u975e\u5e38\u654f\u611f<\/td>\n<td>\u76f8\u5bf9\u8f83\u5f31<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f9d\u8d56\u68af\u5ea6<\/td>\n<td>\u4e0d\u5f3a\u4f9d\u8d56<\/td>\n<td>\u5f3a\u4f9d\u8d56\u8fb9\u7f18\u68af\u5ea6<\/td>\n<td>\u6781\u5ea6\u4f9d\u8d56\u56fe\u50cf\u68af\u5ea6<\/td>\n<td>\u4e0d\u5b8c\u5168\u4f9d\u8d56<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u4f9d\u8d56\u63cf\u8ff0\u5b50<\/td>\n<td>\u5f3a\u4f9d\u8d56<\/td>\n<td>\u4e00\u822c\u4e0d\u4f9d\u8d56<\/td>\n<td>\u4e0d\u4f9d\u8d56<\/td>\n<td>\u7f51\u7edc\u81ea\u52a8\u5b66\u4e60\u8868\u793a<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u9700\u8981\u8bad\u7ec3<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u4e0d\u9700\u8981<\/td>\n<td>\u9700\u8981\u5927\u91cf\u8bad\u7ec3\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td>\u5de5\u7a0b\u590d\u6742\u5ea6<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u8f83\u9ad8<\/td>\n<td>\u5f88\u9ad8<\/td>\n<td>\u6781\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>\u8ba1\u7b97\u8d44\u6e90\u9700\u6c42<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u8f83\u9ad8<\/td>\n<td>\u6781\u9ad8&#xff08;\u901a\u5e38GPU&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u6570\u5b66\u6838\u5fc3<\/td>\n<td>\u591a\u89c6\u51e0\u4f55\u3001RANSAC\u3001BA<\/td>\n<td>\u7ebf\u51e0\u4f55\u3001\u6d88\u5931\u70b9\u3001\u7ea6\u675f\u4f18\u5316<\/td>\n<td>Photometric Optimization\u3001GN\/LM<\/td>\n<td>CNN\u3001Transformer\u3001Differentiable Optimization<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u7b97\u6cd5<\/td>\n<td>SIFT\u3001SURF\u3001ORB\u3001AKAZE\u3001SuperPoint<\/td>\n<td>LSD\u3001EDLines\u3001FLD\u3001PL-VIO<\/td>\n<td>LK\u3001IC-LK\u3001ECC\u3001DSO\u3001LSD-SLAM<\/td>\n<td>RAFT\u3001LoFTR\u3001SuperGlue\u3001DROID-SLAM<\/td>\n<\/tr>\n<tr>\n<td>OpenCV\u652f\u6301<\/td>\n<td>\u5f3a\u652f\u6301<\/td>\n<td>\u90e8\u5206\u652f\u6301<\/td>\n<td>\u90e8\u5206\u652f\u6301<\/td>\n<td>\u57fa\u672c\u4e0d\u76f4\u63a5\u652f\u6301<\/td>\n<\/tr>\n<tr>\n<td>\u5178\u578b\u5e94\u7528<\/td>\n<td>VO\u3001SLAM\u3001AR\u3001SfM<\/td>\n<td>\u5ba4\u5185SLAM\u3001\u7ed3\u6784\u5316\u73af\u5883<\/td>\n<td>Direct VO\u3001\u56fe\u50cf\u914d\u51c6\u3001\u7a33\u50cf<\/td>\n<td>\u81ea\u52a8\u9a7e\u9a76\u3001\u673a\u5668\u4eba\u3001\u73b0\u4ee3SLAM<\/td>\n<\/tr>\n<tr>\n<td>\u672c\u8d28\u9a71\u52a8\u529b<\/td>\n<td>Geometry-driven&#xff08;\u51e0\u4f55\u9a71\u52a8&#xff09;<\/td>\n<td>Structure-driven&#xff08;\u7ed3\u6784\u9a71\u52a8&#xff09;<\/td>\n<td>Photometric-driven&#xff08;\u5149\u5ea6\u9a71\u52a8&#xff09;<\/td>\n<td>Data-driven&#xff08;\u6570\u636e\u9a71\u52a8&#xff09;<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u56fe\u50cf\u914d\u51c6\u662f\u5c06\u628a\u540c\u4e00\u573a\u666f&#xff0c;\u4e0d\u540c\u65f6\u95f4\u3001\u4e0d\u540c\u89d2\u5ea6\u6216\u4e0d\u540c\u4f20\u611f\u5668\u4e0b\u83b7\u53d6\u7684\u591a\u5f20\u56fe\u50cf\u8fdb\u884c\u7a7a\u95f4\u5bf9\u9f50\u7684\u8fc7\u7a0b\u3002\u4e00\u3001\u57fa\u4e8e\u7279\u5f81\u7684\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u9996\u5148\u4ece\u5f85\u914d\u51c6\u56fe\u50cf\u4e2d\u63d0\u53d6\u56fe\u50cf\u4e2d\u7684\u5c40\u90e8\u663e\u8457\u7279\u5f81&#xff08;\u89d2\u70b9\u3001\u8fb9\u7f18\u3001\u8f6e\u5ed3\u3001\u5c40\u90e8\u7279\u5f81\u70b9\u7b49&#xff09;&#xff0c;\u5e76\u4e3a\u5176\u8ba1\u7b97\u63cf\u8ff0\u5b50&#xff0c;\u968f\u540e\u901a\u8fc7\u63cf\u8ff0\u5b50\u7684\u76f8\u4f3c\u5ea6\u5339\u914d\u6765\u5efa\u7acb\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u5bf9\u5e94\u5173\u7cfb&#xff0c;\u6700\u540e\u901a\u8fc7\u51e0\u4f55\u53d8\u6362\u5b9e\u73b0\u4e24\u5e45\u56fe\u50cf\u7684\u5bf9\u9f50\u914d\u51c6\u3002\u57fa\u4e8e\u7279\u5f81\u7684\u914d\u51c6&#xff0c;\u4f9d\u8d56\u7684\u662f\u56fe\u50cf \u201c\u56fa\u6709\u3001\u7a33\u5b9a\u7684\u7279\u5f81\u201d&#xff0c;\u800c\u975e\u6574\u5e45<\/p>\n","protected":false},"author":2,"featured_media":95204,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[55,81,427],"topic":[],"class_list":["post-95224","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-c","tag-python","tag-427"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/95224.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u56fe\u50cf\u914d\u51c6\u662f\u5c06\u628a\u540c\u4e00\u573a\u666f&#xff0c;\u4e0d\u540c\u65f6\u95f4\u3001\u4e0d\u540c\u89d2\u5ea6\u6216\u4e0d\u540c\u4f20\u611f\u5668\u4e0b\u83b7\u53d6\u7684\u591a\u5f20\u56fe\u50cf\u8fdb\u884c\u7a7a\u95f4\u5bf9\u9f50\u7684\u8fc7\u7a0b\u3002\u4e00\u3001\u57fa\u4e8e\u7279\u5f81\u7684\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u9996\u5148\u4ece\u5f85\u914d\u51c6\u56fe\u50cf\u4e2d\u63d0\u53d6\u56fe\u50cf\u4e2d\u7684\u5c40\u90e8\u663e\u8457\u7279\u5f81&#xff08;\u89d2\u70b9\u3001\u8fb9\u7f18\u3001\u8f6e\u5ed3\u3001\u5c40\u90e8\u7279\u5f81\u70b9\u7b49&#xff09;&#xff0c;\u5e76\u4e3a\u5176\u8ba1\u7b97\u63cf\u8ff0\u5b50&#xff0c;\u968f\u540e\u901a\u8fc7\u63cf\u8ff0\u5b50\u7684\u76f8\u4f3c\u5ea6\u5339\u914d\u6765\u5efa\u7acb\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u5bf9\u5e94\u5173\u7cfb&#xff0c;\u6700\u540e\u901a\u8fc7\u51e0\u4f55\u53d8\u6362\u5b9e\u73b0\u4e24\u5e45\u56fe\u50cf\u7684\u5bf9\u9f50\u914d\u51c6\u3002\u57fa\u4e8e\u7279\u5f81\u7684\u914d\u51c6&#xff0c;\u4f9d\u8d56\u7684\u662f\u56fe\u50cf \u201c\u56fa\u6709\u3001\u7a33\u5b9a\u7684\u7279\u5f81\u201d&#xff0c;\u800c\u975e\u6574\u5e45\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/95224.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-16T06:24:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062357-6a81577dee823.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"60 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/95224.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/95224.html\",\"name\":\"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-08-16T06:24:01+00:00\",\"dateModified\":\"2026-08-16T06:24:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/95224.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/95224.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/95224.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/95224.html","og_locale":"zh_CN","og_type":"article","og_title":"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u56fe\u50cf\u914d\u51c6\u662f\u5c06\u628a\u540c\u4e00\u573a\u666f&#xff0c;\u4e0d\u540c\u65f6\u95f4\u3001\u4e0d\u540c\u89d2\u5ea6\u6216\u4e0d\u540c\u4f20\u611f\u5668\u4e0b\u83b7\u53d6\u7684\u591a\u5f20\u56fe\u50cf\u8fdb\u884c\u7a7a\u95f4\u5bf9\u9f50\u7684\u8fc7\u7a0b\u3002\u4e00\u3001\u57fa\u4e8e\u7279\u5f81\u7684\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u9996\u5148\u4ece\u5f85\u914d\u51c6\u56fe\u50cf\u4e2d\u63d0\u53d6\u56fe\u50cf\u4e2d\u7684\u5c40\u90e8\u663e\u8457\u7279\u5f81&#xff08;\u89d2\u70b9\u3001\u8fb9\u7f18\u3001\u8f6e\u5ed3\u3001\u5c40\u90e8\u7279\u5f81\u70b9\u7b49&#xff09;&#xff0c;\u5e76\u4e3a\u5176\u8ba1\u7b97\u63cf\u8ff0\u5b50&#xff0c;\u968f\u540e\u901a\u8fc7\u63cf\u8ff0\u5b50\u7684\u76f8\u4f3c\u5ea6\u5339\u914d\u6765\u5efa\u7acb\u4e24\u5e45\u56fe\u50cf\u4e4b\u95f4\u7684\u5bf9\u5e94\u5173\u7cfb&#xff0c;\u6700\u540e\u901a\u8fc7\u51e0\u4f55\u53d8\u6362\u5b9e\u73b0\u4e24\u5e45\u56fe\u50cf\u7684\u5bf9\u9f50\u914d\u51c6\u3002\u57fa\u4e8e\u7279\u5f81\u7684\u914d\u51c6&#xff0c;\u4f9d\u8d56\u7684\u662f\u56fe\u50cf \u201c\u56fa\u6709\u3001\u7a33\u5b9a\u7684\u7279\u5f81\u201d&#xff0c;\u800c\u975e\u6574\u5e45","og_url":"https:\/\/www.wsisp.com\/helps\/95224.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-08-16T06:24:01+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260816062357-6a81577dee823.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"60 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/95224.html","url":"https:\/\/www.wsisp.com\/helps\/95224.html","name":"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-08-16T06:24:01+00:00","dateModified":"2026-08-16T06:24:01+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/95224.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/95224.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/95224.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u56fe\u50cf\u914d\u51c6\u65b9\u6cd5\u5168\u68b3\u7406\uff1a\u4f20\u7edf\u7279\u5f81\u3001\u7070\u5ea6\u76f4\u63a5\u6cd5\u4e0e\u6df1\u5ea6\u5b66\u4e60\u65b9\u6848"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/95224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=95224"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/95224\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/95204"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=95224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=95224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=95224"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=95224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}