@mhg/blog
Version:
1 lines • 195 kB
HTML
<!DOCTYPE html><html lang="zh-Hans"><head hexo-theme="https://github.com/volantis-x/hexo-theme-volantis/#6.0.3"><meta name="generator" content="Hexo 8.1.2"><meta name="Volantis" content="6.0.3"><meta charset="utf-8"><meta name="robots" content="index,follow,max-image-preview:large"><link rel="canonical" href="https://blog.mhuig.top/p/483290b5/"><meta http-equiv="x-dns-prefetch-control" content="on"><link rel="dns-prefetch" href="https://static.mhuig.top"><link rel="preconnect" href="https://static.mhuig.top" crossorigin=""><meta name="renderer" content="webkit"><meta name="force-rendering" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"><meta name="HandheldFriendly" content="True"><meta name="mobile-web-app-capable" content="yes"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><script>function registerServiceWorker(e){"localhost"!=window.location.hostname&&"serviceWorker"in navigator&&navigator.serviceWorker.register(`${e}`).then((function(e){"localhost"==window.location.hostname&&(e.onupdatefound=function(){var r=e.installing;r.onstatechange=function(){switch(r.state){case"installed":navigator.serviceWorker.controller?console.log("Updated Service Worker."):console.log("Service Worker Sucess!");break;case"redundant":console.log("The installing service worker became redundant.")}}})})).catch((function(e){console.error("Error during service worker registration:",e),"undefined"==typeof swinstallretry&&(swinstallretry=1,registerServiceWorker("/jquery.js"))}))}registerServiceWorker("/jquery.js")</script><link rel="apple-touch-icon" sizes="180x180" href="/lib/favicon/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/lib/favicon/favicon-32x32.png"><link rel="icon" type="image/png" sizes="192x192" href="/lib/favicon/android-chrome-192x192.png"><link rel="icon" type="image/png" sizes="144x144" href="/lib/favicon/android-chrome-144x144.png"><link rel="icon" type="image/png" sizes="16x16" href="/lib/favicon/favicon-16x16.png"><link rel="manifest" href="/lib/favicon/site.webmanifest"><link rel="mask-icon" href="/lib/favicon/safari-pinned-tab.svg" color="#5bbad5"><meta name="apple-mobile-web-app-title" content="MHuiG Magicland"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="application-name" content="MHuiG Magicland"><meta name="msapplication-TileColor" content="#87ceeb"><meta name="msapplication-TileImage" content="/lib/favicon/mstile-144x144.png"><meta name="theme-color" content="#87ceeb" media="(prefers-color-scheme: light)"><meta name="theme-color" content="#21232f" media="(prefers-color-scheme: dark)"><link href="/opensearch.xml" rel="search" title="MHuiG Magicland" type="application/opensearchdescription+xml"><link rel="sitemap" type="application/xml" title="MHuiG Blog Site Map" href="https://blog.mhuig.top/sitemap.xml"><link rel="author" href="https://mhuig.top"><meta name="author" content="MHuiG"><meta name="creator" content="MHuiG"><link rel="archives" href="https://blog.mhuig.top/archives/"><link rel="preload" href="/css/style.css" as="style"><link rel="preload" href="https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/fonts/VarelaRound/VarelaRound-Regular.ttf" as="font" type="font/ttf" crossorigin="anonymous"><link rel="preload" href="https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/fonts/VarelaRound/VarelaRound-Regular.ttf" as="font" type="font/ttf" crossorigin="anonymous"><link rel="alternate" href="/atom.xml" title="Magicland" type="application/atom+xml"><link rel="alternate" href="/rss2.xml" title="Magicland" type="application/rss+xml"><title>特征和分类器 - Magicland</title><meta name="keywords" content="机器学习, 机器视觉,MHuiG, @MHuiG, Blog, 博客, Magicland, 魔法世界"><meta desc="" name="description" content="本文系统阐述计算机视觉中特征与分类器的核心原理。特征作为图像独特属性,需满足同类样本相似、异类样本差异的特性,分为全局与局部两类,后者(如HOG、SIFT)可有效处理遮挡。分类器基于特征向量实现图像分类,但受噪声、样本量等因素限制难以完美。文中详述HOG通过梯度方向直方图编码对象形状,SIFT通过尺度空间极值检测实现尺度旋转不变性,为视觉识别提供关键技术支撑。 - MHuiG - Magicland"><meta property="og:type" content="article"><meta property="og:title" content="特征和分类器"><meta property="og:url" content="https://blog.mhuig.top/p/483290b5/"><meta property="og:site_name" content="Magicland"><meta property="og:description" content="本文系统阐述计算机视觉中特征与分类器的核心原理。特征作为图像独特属性,需满足同类样本相似、异类样本差异的特性,分为全局与局部两类,后者(如HOG、SIFT)可有效处理遮挡。分类器基于特征向量实现图像分类,但受噪声、样本量等因素限制难以完美。文中详述HOG通过梯度方向直方图编码对象形状,SIFT通过尺度空间极值检测实现尺度旋转不变性,为视觉识别提供关键技术支撑。"><meta property="og:locale"><meta property="og:image" content="https://blog.mhuig.top/lib/favicon/android-chrome-192x192.png"><meta property="article:published_time" content="2019-09-12T03:19:00.000Z"><meta property="article:modified_time" content="2025-11-20T10:18:00.000Z"><meta property="article:author" content="MHuiG"><meta property="article:tag" content="机器视觉"><meta name="twitter:card" content="summary"><meta name="twitter:image" content="https://blog.mhuig.top/lib/favicon/android-chrome-192x192.png"><meta name="twitter:creator" content="@iMHuiG"><meta name="twitter:site" content="@iMHuiG"><style>#safearea{display:none}.post-story+.post-story{content-visibility:auto;contain-intrinsic-size:10px 500px}:root{--color-site-body:#87ceeb;--color-site-bg:#87ceeb;--color-site-inner:#555;--color-site-footer:#666;--color-card:#fff;--color-text:#444;--color-block:#f6f6f6;--color-inlinecode:#d56d28;--color-codeblock:#fff7ea;--color-h1:#3a3a3a;--color-h2:#3a3a3a;--color-h3:#333;--color-h4:#444;--color-h5:#555;--color-h6:#666;--color-p:#444;--color-list:#666;--color-list-hl:#1a78c2;--color-meta:#888;--color-read-bkg:#e0d8c8;--color-read-post:#f8f1e2;--color-copyright-bkg:#f5f5f5}*{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;outline:0;margin:0;padding:0}::-webkit-scrollbar{height:4px;width:4px}::-webkit-scrollbar-track-piece{background:0 0}::-webkit-scrollbar-thumb{background:#2196f3;cursor:pointer;border-radius:2px;-webkit-border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ff5722}html{color:var(--color-text);width:100%;height:100%;font-family:"Varela Round","PingFang SC","Microsoft YaHei",Helvetica,Arial,Menlo,Monaco,monospace,sans-serif;font-size:16px}html>::-webkit-scrollbar{height:4px;width:4px}html>::-webkit-scrollbar-track-piece{background:0 0}html>::-webkit-scrollbar-thumb{background:#2196f3;cursor:pointer;border-radius:2px;-webkit-border-radius:2px}html>::-webkit-scrollbar-thumb:hover{background:#ff5722}body{background-color:var(--color-site-body);text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;line-height:1.6;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body.modal-active{overflow:hidden}@media screen and (max-width:680px){body.modal-active{position:fixed;top:0;right:0;bottom:0;left:0}}a{color:#2196f3;cursor:pointer;text-decoration:none;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}a:hover{color:#ff5722}a:active,a:hover{outline:0}ol,ul{padding-left:0}ol li,ul li{list-style:none}header{display:-webkit-box;display:-moz-box;display:block}img{border:0;background:0 0;max-width:100%}svg:not(:root){overflow:hidden}hr{-moz-box-sizing:content-box;box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;height:0;border:0;border-radius:1px;-webkit-border-radius:1px;border-bottom:1px solid rgba(68,68,68,.1)}button,input{color:inherit;font:inherit;margin:0}button{overflow:visible;text-transform:none;-webkit-appearance:button;cursor:pointer}@supports (backdrop-filter:blur(20px)){.blur{background:rgba(255,255,255,.9)!important;backdrop-filter:saturate(200%) blur(20px)}}.shadow{box-shadow:0 1px 2px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.shadow.floatable{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.shadow.floatable:hover{box-shadow:0 2px 4px 0 rgba(0,0,0,.1),0 4px 8px 0 rgba(0,0,0,.1),0 8px 16px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.1),0 4px 8px 0 rgba(0,0,0,.1),0 8px 16px 0 rgba(0,0,0,.1)}#l_cover{min-height:64px}.cover-wrapper{top:0;left:0;max-width:100%;height:100vh;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-khtml-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-o-flex-wrap:nowrap;-ms-flex-wrap:nowrap;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;align-items:center;align-self:center;align-content:center;color:var(--color-site-inner);padding:0 16px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;position:relative;overflow:hidden;margin-bottom:-100px}.cover-wrapper .cover-bg{position:absolute;width:100%;height:100%;background-position:center;background-size:cover;-webkit-background-size:cover;-moz-background-size:cover}.cover-wrapper .cover-bg.lazyload:not(.loaded){opacity:0;-webkit-opacity:0;-moz-opacity:0}.cover-wrapper .cover-bg.lazyload.loaded{animation-delay:0s;animation-duration:.5s;animation-fill-mode:forwards;animation-timing-function:ease-out;animation-name:fadeIn}@-moz-keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-webkit-keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-o-keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}.cover-wrapper .cover-body{z-index:1;position:relative;width:100%;height:100%}.cover-wrapper#full{height:calc(100vh + 100px);padding-bottom:100px}.cover-wrapper#half{max-height:640px;min-height:400px;height:calc(36vh - 64px + 200px)}.cover-wrapper #scroll-down{width:100%;height:64px;position:absolute;bottom:100px;text-align:center;cursor:pointer}.cover-wrapper #scroll-down .scroll-down-effects{color:#fff;font-size:24px;line-height:64px;position:absolute;width:24px;left:calc(50% - 12px);text-shadow:0 1px 2px rgba(0,0,0,.1);animation:scroll-down-effect 1.5s infinite;-webkit-animation:scroll-down-effect 1.5s infinite;-khtml-animation:scroll-down-effect 1.5s infinite;-moz-animation:scroll-down-effect 1.5s infinite;-o-animation:scroll-down-effect 1.5s infinite;-ms-animation:scroll-down-effect 1.5s infinite}@-moz-keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:0.4;-moz-opacity:0.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-webkit-keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:0.4;-moz-opacity:0.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-o-keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:0.4;-moz-opacity:0.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}@keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:0.4;-moz-opacity:0.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}.cover-wrapper .cover-body{margin-top:64px;margin-bottom:100px}.cover-wrapper .cover-body,.cover-wrapper .cover-body .bottom,.cover-wrapper .cover-body .top{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;align-items:center;justify-content:center;-webkit-justify-content:center;-khtml-justify-content:center;-moz-justify-content:center;-o-justify-content:center;-ms-justify-content:center;max-width:100%}.cover-wrapper .cover-body .bottom{margin-top:32px}.cover-wrapper .cover-body .title{font-family:"Varela Round","PingFang SC","Microsoft YaHei",Helvetica,Arial,Helvetica,monospace;font-size:3.125rem;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.1)}.cover-wrapper .cover-body .subtitle{font-size:20px}.cover-wrapper .cover-body .logo{max-height:120px;max-width:calc(100% - 4 * 16px)}@media screen and (min-height:1024px){.cover-wrapper .cover-body .title{font-size:3rem}.cover-wrapper .cover-body .subtitle{font-size:1.05rem}.cover-wrapper .cover-body .logo{max-height:150px}}.cover-wrapper .cover-body .m_search{position:relative;max-width:calc(100% - 16px);width:320px;vertical-align:middle}.cover-wrapper .cover-body .m_search .form{position:relative;display:-webkit-box;display:-moz-box;display:block;width:100%}.cover-wrapper .cover-body .m_search .icon,.cover-wrapper .cover-body .m_search .input{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.cover-wrapper .cover-body .m_search .icon{position:absolute;display:-webkit-box;display:-moz-box;display:block;line-height:2.5rem;width:32px;top:0;left:5px;color:rgba(68,68,68,.75)}.cover-wrapper .cover-body .m_search .input{display:-webkit-box;display:-moz-box;display:block;height:2.5rem;width:100%;box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;font-size:.875rem;-webkit-appearance:none;padding-left:36px;border-radius:1.4rem;-webkit-border-radius:1.4rem;background:rgba(255,255,255,.6);backdrop-filter:blur(10px);border:none;color:var(--color-text)}@media screen and (max-width:500px){.cover-wrapper .cover-body .m_search .input{padding-left:36px}}.cover-wrapper .cover-body .m_search .input:hover{background:rgba(255,255,255,.8)}.cover-wrapper .cover-body .m_search .input:focus{background:#fff}.cover-wrapper .list-h{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;flex-wrap:wrap;-webkit-flex-wrap:wrap;-khtml-flex-wrap:wrap;-moz-flex-wrap:wrap;-o-flex-wrap:wrap;-ms-flex-wrap:wrap;align-items:stretch;border-radius:4px;-webkit-border-radius:4px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cover-wrapper .list-h a{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;font-weight:600}.cover-wrapper .list-h a img{display:-webkit-box;display:-moz-box;display:block;border-radius:2px;-webkit-border-radius:2px;margin:4px;min-width:40px;max-width:44px}@media screen and (max-width:768px){.cover-wrapper .list-h a img{min-width:36px;max-width:40px}}@media screen and (max-width:500px){.cover-wrapper .list-h a img{margin:2px 4px;min-width:32px;max-width:36px}}@media screen and (max-width:375px){.cover-wrapper .list-h a img{min-width:28px;max-width:32px}}.cover-wrapper{max-width:100%}.cover-wrapper.search .bottom .menu{margin-top:16px}.cover-wrapper.search .bottom .menu .list-h a{white-space:nowrap;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;align-items:baseline;padding:2px;margin:4px;color:var(--color-site-inner);opacity:.75;-webkit-opacity:0.75;-moz-opacity:0.75;text-shadow:0 1px 2px rgba(0,0,0,.05);border-bottom:2px solid transparent}.cover-wrapper.search .bottom .menu .list-h a i{margin-right:4px}.cover-wrapper.search .bottom .menu .list-h a p{font-size:.9375rem}.cover-wrapper.search .bottom .menu .list-h a.active,.cover-wrapper.search .bottom .menu .list-h a:active,.cover-wrapper.search .bottom .menu .list-h a:hover{opacity:1;-webkit-opacity:1;-moz-opacity:1;border-bottom:2px solid var(--color-site-inner)}.cover-wrapper.dock .menu,.cover-wrapper.featured .menu,.cover-wrapper.focus .menu{border-radius:6px;-webkit-border-radius:6px}.cover-wrapper.dock .menu .list-h a,.cover-wrapper.featured .menu .list-h a,.cover-wrapper.focus .menu .list-h a{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;align-items:center;padding:12px;line-height:24px;border-radius:4px;-webkit-border-radius:4px;border-bottom:none;text-align:center;align-content:flex-end;color:rgba(68,68,68,.7);font-size:1.5rem}@media screen and (max-width:500px){.cover-wrapper.dock .menu .list-h a,.cover-wrapper.featured .menu .list-h a,.cover-wrapper.focus .menu .list-h a{padding:12px 8px}}.cover-wrapper.dock .menu .list-h a i,.cover-wrapper.featured .menu .list-h a i,.cover-wrapper.focus .menu .list-h a i{margin:8px}.cover-wrapper.dock .menu .list-h a p,.cover-wrapper.featured .menu .list-h a p,.cover-wrapper.focus .menu .list-h a p{font-size:.875rem}.cover-wrapper.dock .menu .list-h a.active,.cover-wrapper.featured .menu .list-h a.active,.cover-wrapper.focus .menu .list-h a.active{background:var(--color-card);backdrop-filter:none}.cover-wrapper.dock .menu .list-h a.active i,.cover-wrapper.dock .menu .list-h a.active i+p,.cover-wrapper.featured .menu .list-h a.active i,.cover-wrapper.featured .menu .list-h a.active i+p,.cover-wrapper.focus .menu .list-h a.active i,.cover-wrapper.focus .menu .list-h a.active i+p{color:#2196f3}.cover-wrapper.dock .menu .list-h a.active img+p,.cover-wrapper.featured .menu .list-h a.active img+p,.cover-wrapper.focus .menu .list-h a.active img+p{color:var(--color-text)}.cover-wrapper.dock .menu .list-h a:hover,.cover-wrapper.featured .menu .list-h a:hover,.cover-wrapper.focus .menu .list-h a:hover{background:var(--color-card)}.cover-wrapper.featured .menu .list-h{margin:-2px}.cover-wrapper.featured .menu .list-h a{margin:2px;background:rgba(255,255,255,.5)}@supports (backdrop-filter:blur(20px)){.cover-wrapper.featured .menu .list-h a{background:rgba(255,255,255,.5);backdrop-filter:saturate(200%) blur(20px)}}@media (prefers-color-scheme:dark){:root{--color-mode:'dark'}:root:not([color-scheme]){--color-site-body:#121212;--color-read-bkg:#21232f;--color-read-post:#252d38;--color-site-bg:#21232f;--color-site-inner:#efefef;--color-site-footer:#666;--color-card:#252d38;--color-text:rgba(238,238,238,0.871);--color-block:rgba(68,68,68,0.65);--color-codeblock:#444;--color-inlinecode:#d56d28;--color-h1:rgba(255,255,255,0.871);--color-h2:rgba(255,255,255,0.871);--color-h3:rgba(255,255,255,0.6);--color-h4:rgba(255,255,255,0.6);--color-h5:rgba(255,255,255,0.6);--color-h6:rgba(255,255,255,0.6);--color-p:rgba(217,217,217,0.871);--color-list:rgba(217,217,217,0.871);--color-list-hl:#4dabf5;--color-meta:rgba(191,191,191,0.871);--color-link:rgba(191,191,191,0.871);--color-copyright-bkg:#21252b}:root:not([color-scheme]) img{filter:brightness(70%)!important}:root:not([color-scheme]) .blur{background:rgba(33,35,47,.9)!important}:root:not([color-scheme]) .white-box.blur{background:rgba(37,45,56,.9)!important}:root:not([color-scheme]) .nav-main .u-search-input{background:var(--color-card)!important}:root:not([color-scheme]) #l_main .article .prev-next>a{background:var(--color-block)!important}:root:not([color-scheme]) #l_main .article .prev-next>a:hover{background:var(--color-site-bg)!important}:root:not([color-scheme]) .article blockquote{background:var(--color-block)!important}:root:not([color-scheme]) .article-title a{color:var(--color-h1)!important}:root:not([color-scheme]) details>summary{color:var(--color-p)!important;background:var(--color-site-bg)!important}:root:not([color-scheme]) details{border:1px solid var(--color-site-bg)!important;background:var(--color-site-bg)!important}:root:not([color-scheme]) #u-search .modal,:root:not([color-scheme]) #u-search .modal-body,:root:not([color-scheme]) #u-search .modal-header{background:var(--color-card)!important}:root:not([color-scheme]) #u-search .modal-body .modal-results .result:hover{background:var(--color-block)!important}:root:not([color-scheme]) .u-search-input:hover{background:var(--color-block)!important}:root:not([color-scheme]) .u-search-input:focus{background:var(--color-site-body)!important}}[color-scheme=dark]{--color-site-body:#121212;--color-read-bkg:#21232f;--color-read-post:#252d38;--color-site-bg:#21232f;--color-site-inner:#efefef;--color-site-footer:#666;--color-card:#252d38;--color-text:rgba(238,238,238,0.871);--color-block:rgba(68,68,68,0.65);--color-codeblock:#444;--color-inlinecode:#d56d28;--color-h1:rgba(255,255,255,0.871);--color-h2:rgba(255,255,255,0.871);--color-h3:rgba(255,255,255,0.6);--color-h4:rgba(255,255,255,0.6);--color-h5:rgba(255,255,255,0.6);--color-h6:rgba(255,255,255,0.6);--color-p:rgba(217,217,217,0.871);--color-list:rgba(217,217,217,0.871);--color-list-hl:#4dabf5;--color-meta:rgba(191,191,191,0.871);--color-link:rgba(191,191,191,0.871);--color-copyright-bkg:#21252b}[color-scheme=dark] img{filter:brightness(70%)!important}[color-scheme=dark] .blur{background:rgba(33,35,47,.9)!important}[color-scheme=dark] .white-box.blur{background:rgba(37,45,56,.9)!important}[color-scheme=dark] .nav-main .u-search-input{background:var(--color-card)!important}[color-scheme=dark] #l_main .article .prev-next>a{background:var(--color-block)!important}[color-scheme=dark] #l_main .article .prev-next>a:hover{background:var(--color-site-bg)!important}[color-scheme=dark] .article blockquote{background:var(--color-block)!important}[color-scheme=dark] .article-title a{color:var(--color-h1)!important}[color-scheme=dark] details>summary{color:var(--color-p)!important;background:var(--color-site-bg)!important}[color-scheme=dark] details{border:1px solid var(--color-site-bg)!important;background:var(--color-site-bg)!important}[color-scheme=dark] #u-search .modal,[color-scheme=dark] #u-search .modal-body,[color-scheme=dark] #u-search .modal-header{background:var(--color-card)!important}[color-scheme=dark] #u-search .modal-body .modal-results .result:hover{background:var(--color-block)!important}[color-scheme=dark] .u-search-input:hover{background:var(--color-block)!important}[color-scheme=dark] .u-search-input:focus{background:var(--color-site-body)!important}@media screen and (max-width:500px){[color-scheme=dark] .l_header .m_search{background:var(--color-site-bg)!important}}@font-face{font-family:'Varela Round';src:url("https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/fonts/VarelaRound/VarelaRound-Regular.ttf");font-weight:'normal';font-style:'normal';font-display:swap}@font-face{font-family:'Varela Round';src:url("https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/fonts/VarelaRound/VarelaRound-Regular.ttf");font-weight:'normal';font-style:'normal';font-display:swap}.l_header{position:fixed;z-index:1000;top:0;width:100%;height:64px;background:var(--color-card);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.l_header.auto{transition:opacity .4s ease;-webkit-transition:opacity .4s ease;-khtml-transition:opacity 0.4s ease;-moz-transition:opacity .4s ease;-o-transition:opacity .4s ease;-ms-transition:opacity .4s ease;visibility:hidden}.l_header.auto.show{opacity:1!important;-webkit-opacity:1!important;-moz-opacity:1!important;visibility:visible}.l_header .container{margin-left:16px;margin-right:16px}.l_header #wrapper{height:100%;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.l_header #wrapper .nav-main,.l_header #wrapper .nav-sub{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-khtml-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-o-flex-wrap:nowrap;-ms-flex-wrap:nowrap;justify-content:space-between;-webkit-justify-content:space-between;-khtml-justify-content:space-between;-moz-justify-content:space-between;-o-justify-content:space-between;-ms-justify-content:space-between;align-items:center}.l_header #wrapper .nav-main{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.l_header #wrapper.sub .nav-main{transform:translateY(-64px);-webkit-transform:translateY(-64px);-khtml-transform:translateY(-64px);-moz-transform:translateY(-64px);-o-transform:translateY(-64px);-ms-transform:translateY(-64px)}.l_header #wrapper .nav-sub{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;opacity:0;-webkit-opacity:0;-moz-opacity:0;height:64px;width:calc(100% - 2 * 16px);position:absolute}.l_header #wrapper .nav-sub ::-webkit-scrollbar{display:-webkit-box;display:-moz-box;display:none}@media screen and (min-width:2048px){.l_header #wrapper .nav-sub{max-width:55vw;margin:auto}}.l_header #wrapper.sub .nav-sub{opacity:1;-webkit-opacity:1;-moz-opacity:1}.l_header #wrapper .title{position:relative;color:var(--color-text);padding-left:24px;max-height:64px}.l_header #wrapper .nav-main .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;line-height:64px;padding:0 24px;font-size:1.25rem;font-family:"Varela Round","PingFang SC","Microsoft YaHei",Helvetica,Arial,Helvetica,monospace}.l_header #wrapper .nav-main .title img{height:64px}.l_header .nav-sub{max-width:1080px;margin:auto}.l_header .nav-sub .title{font-weight:700;font-family:"Varela Round","PingFang SC","Microsoft YaHei",Helvetica,Arial,Menlo,Monaco,monospace,sans-serif;line-height:1.2;max-height:64px;white-space:normal;flex-shrink:1}.l_header .switcher{display:-webkit-box;display:-moz-box;display:none;line-height:64px;align-items:center}.l_header .switcher .s-toc{display:-webkit-box;display:-moz-box;display:none}@media screen and (max-width:768px){.l_header .switcher .s-toc{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex}}.l_header .switcher>li{height:48px;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;margin:2px}@media screen and (max-width:500px){.l_header .switcher>li{margin:0 1px;height:48px}}.l_header .switcher>li>a{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;justify-content:center;-webkit-justify-content:center;-khtml-justify-content:center;-moz-justify-content:center;-o-justify-content:center;-ms-justify-content:center;align-items:center;width:48px;height:48px;padding:.85em 1.1em;border-radius:100px;-webkit-border-radius:100px;border:none;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;color:#2196f3}.l_header .switcher>li>a:hover{border:none}.l_header .switcher>li>a.active,.l_header .switcher>li>a:active{border:none;background:var(--color-site-bg)}@media screen and (max-width:500px){.l_header .switcher>li>a{width:36px;height:48px}}.l_header .nav-sub .switcher{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex}.l_header .m_search{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;height:64px;width:240px;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}@media screen and (max-width:1024px){.l_header .m_search{width:44px;min-width:44px}.l_header .m_search input::placeholder{opacity:0;-webkit-opacity:0;-moz-opacity:0}.l_header .m_search:hover{width:240px}.l_header .m_search:hover input::placeholder{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@media screen and (min-width:500px){.l_header .m_search:hover .input{width:100%}.l_header .m_search:hover .input::placeholder{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@media screen and (max-width:500px){.l_header .m_search{min-width:0}.l_header .m_search input::placeholder{opacity:1;-webkit-opacity:1;-moz-opacity:1}}.l_header .m_search .form{position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;width:100%;align-items:center}.l_header .m_search .icon{position:absolute;width:36px;left:5px;color:var(--color-meta)}@media screen and (max-width:500px){.l_header .m_search .icon{display:-webkit-box;display:-moz-box;display:none}}.l_header .m_search .input{display:-webkit-box;display:-moz-box;display:block;padding-top:8px;padding-bottom:8px;line-height:1.3;width:100%;color:var(--color-text);background:#fafafa;box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding-left:40px;font-size:.875rem;border-radius:8px;-webkit-border-radius:8px;border:none;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}@media screen and (min-width:500px){.l_header .m_search .input:focus{box-shadow:0 4px 8px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 4px 8px 0 rgba(0,0,0,.1)}}@media screen and (max-width:500px){.l_header .m_search .input{background:var(--color-block);padding-left:8px;border:none}.l_header .m_search .input:focus,.l_header .m_search .input:hover{border:none}}@media (max-width:500px){.l_header .m_search{left:0;width:0;overflow:hidden;position:absolute;background:#fff;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.l_header .m_search .input{border-radius:32px;-webkit-border-radius:32px;margin-left:16px;padding-left:16px}.l_header.z_search-open .m_search{width:100%}.l_header.z_search-open .m_search .input{width:calc(100% - 120px)}}ul.m-pc>li>a{color:inherit;border-bottom:2px solid transparent}ul.m-pc>li>a.active,ul.m-pc>li>a:active{border-bottom:2px solid #2196f3}ul.list-v li:hover>ul.list-v,ul.m-pc li:hover>ul.list-v{display:-webkit-box;display:-moz-box;display:block}ul.nav-list-h{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;align-items:stretch}ul.nav-list-h>li{position:relative;justify-content:center;-webkit-justify-content:center;-khtml-justify-content:center;-moz-justify-content:center;-o-justify-content:center;-ms-justify-content:center;height:100%;line-height:2.4;border-radius:4px;-webkit-border-radius:4px}ul.nav-list-h>li>a{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600}ul.list-v{z-index:1;display:-webkit-box;display:-moz-box;display:none;position:absolute;background:var(--color-card);box-shadow:0 2px 4px 0 rgba(0,0,0,.08),0 4px 8px 0 rgba(0,0,0,.08),0 8px 16px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.08),0 4px 8px 0 rgba(0,0,0,.08),0 8px 16px 0 rgba(0,0,0,.08);margin-top:-6px;border-radius:4px;-webkit-border-radius:4px;padding:8px 0}ul.list-v.show{display:-webkit-box;display:-moz-box;display:block}ul.list-v hr{margin-top:8px;margin-bottom:8px}ul.list-v>li{white-space:nowrap;word-break:keep-all}ul.list-v>li.header{font-size:.78125rem;font-weight:700;line-height:2em;color:var(--color-meta);margin:8px 16px 4px}ul.list-v>li.header i{margin-right:8px}ul.list-v>li ul{margin-left:0;display:-webkit-box;display:-moz-box;display:none;margin-top:-40px}ul.list-v .aplayer-container{min-height:64px;padding:6px 16px}ul.list-v>li>a{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;display:-webkit-box;display:-moz-box;display:block;color:var(--color-list);font-size:.875rem;font-weight:700;line-height:36px;padding:0 20px 0 16px;text-overflow:ellipsis;margin:0 4px;border-radius:4px;-webkit-border-radius:4px}@media screen and (max-width:1024px){ul.list-v>li>a{line-height:40px}}ul.list-v>li>a>i{margin-right:8px}ul.list-v>li>a.active,ul.list-v>li>a:active{color:var(--color-list-hl)}ul.list-v>li>a:hover{color:var(--color-list-hl);background:var(--color-site-bg)}.l_header .menu>ul>li>a{display:-webkit-box;display:-moz-box;display:block;padding:0 8px}.l_header .menu>ul>li>a>i{margin-right:4px}.l_header ul.nav-list-h>li{color:var(--color-list);line-height:64px}.l_header ul.nav-list-h>li>a{max-height:64px;overflow:hidden;color:inherit}.l_header ul.nav-list-h>li>a.active,.l_header ul.nav-list-h>li>a:active{color:#2196f3}.l_header ul.nav-list-h>li:hover>a{color:var(--color-list-hl)}.l_header ul.nav-list-h>li i.music{animation:rotate-effect 1.5s linear infinite;-webkit-animation:rotate-effect 1.5s linear infinite;-khtml-animation:rotate-effect 1.5s linear infinite;-moz-animation:rotate-effect 1.5s linear infinite;-o-animation:rotate-effect 1.5s linear infinite;-ms-animation:rotate-effect 1.5s linear infinite}@-moz-keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}@-webkit-keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}@-o-keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}@keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}.menu-phone li ul.list-v{right:calc(100% - .5 * 16px)}.menu-phone li ul.list-v ul{right:calc(100% - .5 * 16px)}#wrapper{max-width:1080px;margin:auto}@media screen and (min-width:2048px){#wrapper{max-width:55vw}}#wrapper .menu{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1 1;-ms-flex:1 1;flex:1 1;margin:0 16px 0 0}#wrapper .menu .list-v ul{left:calc(100% - .5 * 16px)}.menu-phone{display:-webkit-box;display:-moz-box;display:none;margin-top:16px;right:8px;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all 0.28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.menu-phone ul{right:calc(100% - .5 * 16px)}@media screen and (max-width:500px){.menu-phone{display:-webkit-box;display:-moz-box;display:block}}.l_header{max-width:65vw;left:calc((100% - 65vw) * .5);border-bottom-left-radius:8px;border-bottom-right-radius:8px}@media screen and (max-width:2048px){.l_header{max-width:1112px;left:calc((100% - 1112px) * .5)}}@media screen and (max-width:1112px){.l_header{left:0;border-radius:0;-webkit-border-radius:0;max-width:100%}}@media screen and (max-width:500px){.l_header .container{margin-left:0;margin-right:0}.l_header #wrapper .nav-main .title{padding-left:16px;padding-right:16px}.l_header #wrapper .nav-sub{width:100%}.l_header #wrapper .nav-sub .title{overflow-y:scroll;margin-top:2px;padding:8px 16px}.l_header #wrapper .switcher{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;margin-right:8px}.l_header .menu{display:-webkit-box;display:-moz-box;display:none}}@media screen and (max-width:500px){.list-v li{max-width:270px}}#u-search{display:-webkit-box;display:-moz-box;display:none;position:fixed;top:0;left:0;width:100%;height:100%;padding:60px 20px;z-index:1001}@media screen and (max-width:680px){#u-search{padding:0}}@media screen and (prefers-color-scheme:dark) and (max-width:500px){.l_header .m_search{background:var(--color-site-bg)!important}}.cover-wrapper .cover-body .subtitle{font-size:.875rem}.fa-brands.color-github,.fa-duotone.color-github,.fa-light.color-github,.fa-regular.color-github,.fa-solid.color-github,.fa-thin.color-github,.fa.color-github,.fad.color-github,.fal.color-github,.far.color-github,.fas.color-github,.iziToast>.iziToast-body .iziToast-icon.color-github{color:#000}.fa-brands.color-friends,.fa-duotone.color-friends,.fa-light.color-friends,.fa-regular.color-friends,.fa-solid.color-friends,.fa-thin.color-friends,.fa.color-friends,.fad.color-friends,.fal.color-friends,.far.color-friends,.fas.color-friends,.iziToast>.iziToast-body .iziToast-icon.color-friends{color:#d31ee9}.fa-brands.color-about,.fa-duotone.color-about,.fa-light.color-about,.fa-regular.color-about,.fa-solid.color-about,.fa-thin.color-about,.fa.color-about,.fad.color-about,.fal.color-about,.far.color-about,.fas.color-about,.iziToast>.iziToast-body .iziToast-icon.color-about{color:#0095ff}.fa-brands.color-travellings,.fa-duotone.color-travellings,.fa-light.color-travellings,.fa-regular.color-travellings,.fa-solid.color-travellings,.fa-thin.color-travellings,.fa.color-travellings,.fad.color-travellings,.fal.color-travellings,.far.color-travellings,.fas.color-travellings,.iziToast>.iziToast-body .iziToast-icon.color-travellings{color:#734ae6}mjx-container{padding:0 0!important}mjx-container:not([display=true]){padding:4px 2px 4px 6px!important}mjx-container[jax=SVG]{direction:ltr}mjx-container[jax=SVG]>svg{overflow:visible}mjx-container[jax=SVG][display=true]{display:-webkit-box;display:-moz-box;display:block;text-align:center;margin:1em 0}mjx-container[jax=SVG][justify=left]{text-align:left}mjx-container[jax=SVG][justify=right]{text-align:right}g[data-mml-node=merror]>g{fill:#f00;stroke:#f00}g[data-mml-node=merror]>rect[data-background]{fill:#ff0;stroke:none}g[data-mml-node=mtable]>line[data-line]{stroke-width:70px;fill:none}g[data-mml-node=mtable]>rect[data-frame]{stroke-width:70px;fill:none}g[data-mml-node=mtable]>.mjx-dashed{stroke-dasharray:140}g[data-mml-node=mtable]>.mjx-dotted{stroke-linecap:round;stroke-dasharray:0,140}g[data-mml-node=mtable]>svg{overflow:visible}[jax=SVG] mjx-tool{display:-webkit-box;display:-moz-box;display:inline-block;position:relative;width:0;height:0}[jax=SVG] mjx-tool>mjx-tip{position:absolute;top:0;left:0}mjx-tool>mjx-tip{display:-webkit-box;display:-moz-box;display:inline-block;padding:.2em;border:1px solid #888;font-size:70%;background-color:#f8f8f8;color:#000;box-shadow:2px 2px 5px #aaa;-webkit-box-shadow:2px 2px 5px #aaa}g[data-mml-node=maction][data-toggle]{cursor:pointer}mjx-status{display:-webkit-box;display:-moz-box;display:block;position:fixed;left:1em;bottom:1em;min-width:25%;padding:.2em .4em;border:1px solid #888;font-size:90%;background-color:#f8f8f8;color:#000}foreignObject[data-mjx-xml]{font-family:initial;line-height:normal;overflow:visible}.MathJax path{stroke-width:3}mjx-container[display=true]{overflow:auto hidden}mjx-container[display=true]+br{display:-webkit-box;display:-moz-box;display:none}</style><link rel="stylesheet" href="/css/style.css" media="print" onload='this.media="all",this.onload=null'><noscript><link rel="stylesheet" href="/css/style.css"></noscript><script>let userColorScheme=localStorage.getItem("color-scheme");userColorScheme&&document.documentElement.setAttribute("color-scheme",userColorScheme)</script><script>window.MSInputMethodContext&&document.documentMode&&document.write('<style>html{overflow-x: hidden !important;overflow-y: hidden !important;}.kill-ie{text-align:center;height: 100%;margin-top: 15%;margin-bottom: 5500%;}.kill-t{font-size: 2rem;}.kill-c{font-size: 1.2rem;}#l_header,#l_body{display: none;}</style><div class="kill-ie"><span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br/><span class="kill-c">微软已经于2016年终止了对 Internet Explorer (IE) 10 及更早版本的支持,<br/>继续使用存在极大的安全隐患,请使用当代主流的浏览器进行访问。</span><br/><a target="_blank" rel="noopener" href="https://blogs.windows.com/windowsexperience/2021/05/19/the-future-of-internet-explorer-on-windows-10-is-in-microsoft-edge/"><strong>了解详情 ></strong></a></div>')</script><noscript><style>html{overflow-x:hidden!important;overflow-y:hidden!important}.kill-noscript{text-align:center;height:100%;margin-top:15%;margin-bottom:5500%}.kill-t{font-size:2rem}.kill-c{font-size:1.2rem}#l_body,#l_header{display:none}</style><div class="kill-noscript"> <span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br> <span class="kill-c">本页面需要浏览器支持(启用)JavaScript</span><br> <a target="_blank" rel="external nofollow noopener noreferrer" href="https://www.baidu.com/s?wd=启用JavaScript"><strong>了解详情 ></strong></a></div></noscript><script>function volantisEventListener(e,t,n){this.type=e,this.f=t,this.ele=n}function volantisDom(e){return e||(e=document.createElement("div")),this.ele=e,this.ele.find=e=>{let t=this.ele.querySelector(e);if(t)return new volantisDom(t)},this.ele.hasClass=e=>this.ele.className.match(new RegExp("(\\s|^)"+e+"(\\s|$)")),this.ele.addClass=e=>(this.ele.classList.add(e),this.ele),this.ele.removeClass=e=>(this.ele.classList.remove(e),this.ele),this.ele.toggleClass=e=>(this.ele.hasClass(e)?this.ele.removeClass(e):this.ele.addClass(e),this.ele),this.ele.on=(e,t,n=1)=>(this.ele.addEventListener(e,t,!1),n&&volantis.EventListener.list.push(new volantisEventListener(e,t,this.ele)),this.ele),this.ele.click=(e,t)=>(this.ele.on("click",e,t),this.ele),this.ele.scroll=(e,t)=>(this.ele.on("scroll",e,t),this.ele),this.ele.html=e=>(this.ele.innerHTML=e,this.ele),this.ele.hide=e=>(this.ele.style.display="none",this.ele),this.ele.show=e=>(this.ele.style.display="block",this.ele),this.ele}function RunItem(){function e(e,t){this.name=t||volantis.getFunctionHash(e),this.run=()=>{try{e()}catch(e){console.log(e)}}}this.list=[],this.start=()=>{for(var e=0;e<this.list.length;e++)this.list[e].run()},this.push=(t,n,o=!0)=>{if("function"!=typeof t)return;let l=t;o&&(l=()=>{volantis.requestAnimationFrame(t)}),n=n||volantis.getFunctionHash(t);const i=this.list.findIndex((e=>e.name===n));-1===i?this.list.push(new e(l,n)):this.list[i]=new e(l,n)},this.remove=e=>{for(let t=0;t<this.list.length;t++){this.list[t].name==e&&this.list.splice(t,1)}}}function errorImgAvatar(e){e.src="https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg",e.onerror=null}function errorImgCover(e){e.src="https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg",e.onerror=null}!function(){const e=new WeakMap,t=new Proxy({},{get(n,o){const l=e.get(t);return l?.[o]},set(n,o,l){e.has(t)||e.set(t,Object.create(null));return e.get(t)[o]=l,!0},deleteProperty(n,o){const l=e.get(t);return!(!l||!Object.prototype.hasOwnProperty.call(l,o))&&(delete l[o],0===Object.keys(l).length&&e.delete(t),!0)},ownKeys(n){const o=e.get(t);return o?Object.keys(o):[]},getOwnPropertyDescriptor(n,o){const l=e.get(t);if(l&&Object.prototype.hasOwnProperty.call(l,o))return{value:l[o],writable:!0,enumerable:!0,configurable:!0}}});Object.defineProperty(window,"volantis",{value:t,writable:!0,configurable:!0,enumerable:!0})}(),volantis.debug="false",volantis.dom={},volantis.simpleTextHash=e=>{let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n),t&=t;return t.toString(16).padStart(8,"0")},volantis.getFunctionHash=e=>{const t=e.toString();return volantis.simpleTextHash(t)},volantis.EventListener={},volantis.EventListener.list=[],volantis.EventListener.remove=()=>{volantis.EventListener.list.forEach((function(e){e.ele.removeEventListener(e.type,e.f,!1)})),volantis.EventListener.list=[]},volantis.dom.$=e=>e?new volantisDom(e):null,volantis.pjax={},volantis.pjax.method={complete:new RunItem,error:new RunItem,send:new RunItem},volantis.pjax=Object.assign(volantis.pjax,{push:volantis.pjax.method.complete.push,error:volantis.pjax.method.error.push,send:volantis.pjax.method.send.push}),volantis.rightmenu={},volantis.rightmenu.method={handle:new RunItem},volantis.rightmenu=Object.assign(volantis.rightmenu,{handle:volantis.rightmenu.method.handle.push}),volantis.dark={},volantis.dark.method={toggle:new RunItem},volantis.dark=Object.assign(volantis.dark,{push:volantis.dark.method.toggle.push}),volantis.js=(e,t)=>new Promise((n=>{setTimeout((function(){var o=document.getElementsByTagName("head")[0]||document.documentElement,l=document.createElement("script");if(l.setAttribute("type","text/javascript"),t)if(JSON.stringify(t))for(let e in t)"onload"==e?l[e]=()=>{t[e](),n()}:(l[e]=t[e],l.onload=n);else l.onload=()=>{t(),n()};else l.onload=n;l.setAttribute("src",e),o.appendChild(l)}))})),volantis.css=e=>new Promise((t=>{setTimeout((function(){var n=document.createElement("link");n.rel="stylesheet",n.href=e,n.onload=t,document.getElementsByTagName("head")[0].appendChild(n)}))})),volantis.import={jQuery:()=>"undefined"==typeof jQuery?volantis.js("https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"):new Promise((e=>{e()}))},volantis.throttle=(e,t=200)=>{let n=0;return function(...o){const l=Date.now();l-n>=t&&(e.apply(this,o),n=l)}},volantis.debounce=(e,t=200)=>{let n=null;return function(){n&&clearTimeout(n),n=setTimeout((()=>{e.apply(this,arguments),n=null}),t)}},volantis.requestAnimationFrame=e=>(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)}),window.requestAnimationFrame(e)),volantis.layoutHelper=(e,t,n)=>{function o(e,t,n){volantis.tempDiv=document.createElement("div"),volantis.tempDiv.innerHTML=t;let o=document.querySelector("#layoutHelper-"+e);o&&(n&&(o.innerHTML=""),o.append(volantis.tempDiv))}n=Object.assign({clean:!1,pjax:!0},n),o(e,t,n.clean),n.pjax&&volantis.pjax.push((()=>{o(e,t,n.clean)}),"layoutHelper-"+e)},volantis.scroll={engine:new RunItem,unengine:new RunItem},volantis.scroll=Object.assign(volantis.scroll,{push:volantis.scroll.engine.push}),volantis.scroll.getScrollTop=()=>{let e;return window.pageYOffset?e=window.pageYOffset:document.compatMode&&"BackCompat"!=document.compatMode?e=document.documentElement.scrollTop:document.body&&(e=document.body.scrollTop),e},volantis.scroll.scrollHeight=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},volantis.scroll.offsetHeight=function(){return Math.min(document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},volantis.scroll.progress=function(){return volantis.scroll.getScrollTop()/(volantis.scroll.scrollHeight()-volantis.scroll.offsetHeight())},volantis.scroll.handleScrollEvents=()=>{volantis.scroll.lastScrollTop=volantis.scroll.getScrollTop(),volantis.requestAnimationFrame((function e(){const t=volantis.scroll.getScrollTop();volantis.scroll.lastScrollTop!==t?(volantis.scroll.del=t-volantis.scroll.lastScrollTop,volantis.scroll.lastScrollTop=t,volantis.scroll.unengine.list=[],volantis.scroll.engine.start()):volantis.scroll.unengine.start(),volantis.requestAnimationFrame(e)}))},volantis.scroll.handleScrollEvents(),volantis.scroll.ele=null,volantis.scroll.to=(e,t={})=>{e&&(volantis.scroll.ele=e,opt={top:e.getBoundingClientRect().top+document.documentElement.scrollTop,behavior:"smooth"},"top"in t&&(opt.top=t.top),"behavior"in t&&(opt.behavior=t.behavior),"addTop"in t&&(opt.top+=t.addTop),"observerDic"in t||(t.observerDic=100),window.scrollTo(opt),t.observer&&setTimeout((()=>{volantis.scroll.ele==e&&volantis.scroll.unengine.push((()=>{let n=e.getBoundingClientRect().top;n>=-t.observerDic&&n<=t.observerDic||volantis.scroll.to(e,t),volantis.scroll.unengine.remove("unengineObserver")}),"unengineObserver")}),1e3))},volantis.cleanContentVisibility=()=>{document.querySelector(".post-story")&&(console.log("cleanContentVisibility"),document.querySelectorAll(".post-story").forEach((e=>{e.classList.remove("post-story")})))};const nativeSetTimeout=window.setTimeout,nativeSetInterval=window.setInterval,nativeClearTimeout=window.clearTimeout,nativeClearInterval=window.clearInterval;volantis.activeTimeout=[],volantis.activeInterval=[],window.setTimeout=function(e,t,...n){const o=nativeSetTimeout((function(...t){try{return e.apply(this,t)}finally{const e=volantis.activeTimeout.indexOf(o);-1!==e&&volantis.activeTimeout.splice(e,1)}}),t,...n);return volantis.activeTimeout.push(o),o},window.setInterval=function(e,t,...n){const o=nativeSetInterval(e,t,...n);return volantis.activeInterval.push(o),o},window.clearTimeout=function(e){nativeClearTimeout(e);const t=volantis.activeTimeout.indexOf(e);-1!==t&&volantis.activeTimeout.splice(t,1)},window.clearInterval=function(e){nativeClearInterval(e);const t=volantis.activeInterval.indexOf(e);-1!==t&&volantis.activeInterval.splice(t,1)},volantis.getActiveInterval=function(){return[...volantis.activeInterval]},volantis.getActiveTimeout=function(){return[...volantis.activeTimeout]},volantis.clearAllTimers=function(){volantis.getActiveInterval().forEach((function(e){clearInterval(e)})),volantis.getActiveTimeout().forEach((function(e){clearTimeout(e)}))},volantis.pjax.send(volantis.clearAllTimers,"clearAllTimers")</script><script>volantis.GLOBAL_CONFIG={root:"/",debug:!1,default:{avatar:"https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg",link:"https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg",cover:"https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg",image:"https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"},lastupdate:new Date(1779510804521),cdn:{izitoast_css:"https://cdn.bootcdn.net/ajax/libs/izitoast/1.4.0/css/iziToast.min.css",izitoast_js:"https://cdn.bootcdn.net/ajax/libs/izitoast/1.4.0/js/iziToast.min.js",fancybox_css:"https://cdn.bootcdn.net/ajax/libs/fancyapps-ui/4.0.31/fancybox.min.css",fancybox_js:"https://cdn.bootcdn.net/ajax/libs/fancyapps-ui/4.0.31/fancybox.umd.min.js"},sidebar:{for_page:["blogger","navigation","webinfo"],for_post:["toc"],webinfo:{lastupd:{enable:!1,friendlyShow:!0},runtime:{data:"2019/08/19",unit:"天"}}},plugins:{message:{enable:!1,icon:{default:"fa-solid fa-info-circle light-blue",quection:"fa-solid fa-question-circle light-blue"},time:{default:5e3,quection:2e4},position:"topRight",transitionIn:"bounceInLeft",transitionOut:"fadeOutRight",titleColor:"var(--color-text)",messageColor:"var(--color-text)",backgroundColor:"var(--color-card)",zindex:2147483647,copyright:{enable:!0,title:"知识共享许可协议",message:"请遵守 CC BY-NC-SA 4.0 协议。",icon:"far fa-copyright light-blue"},aplayer:{enable:!0,play:"fa-solid fa-play",pause:"fa-solid fa-pause"},rightmenu:{enable:!0,notice:!0}},aplayer:{id:1480000098,enable:!0}},search:{dataPath:("/".endsWith("/")?"/":"//")+"content.json"},languages:{search:{hits_empty:"找不到您查询的内容:${query}",hits_stats:"找到 ${hits} 条结果,用时 ${time} 毫秒"}}}</script><script type="application/ld+json">[{"@context":"http://schema.org","@type":"Organization","name":"MHuiG Magicland","url":"https://blog.mhuig.top/","logo":{"@type":"ImageObject","url":"/lib/favicon/android-chrome-192x192.png","width":192,"height":192}},{"@context":"http://schema.org","@type":"Person","name":"MHuiG","image":{"@type":"ImageObject","url":"/lib/favicon/android-chrome-192x192.png"},"url":"https://blog.mhuig.top/","sameAs":["https://github.com/MHuiG","https://twitter.com/iMHuiG","https://t.me/MHuiG","https://keybase.io/MHuiG"],"description":"「Be Yourself, Make a Difference.」"},{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://blog.mhuig.top/","name":"Magicland"}},{"@type":"ListItem","position":2,"item":{"@id":"https://blog.mhuig.top/categories/机器学习/","name":"机器学习"}},{"@type":"ListItem","position":3,"item":{"@id":"https://blog.mhuig.top/p/483290b5/","name":"特征和分类器"}}]},{"@context":"http://schema.org","@type":"WebSite","name":"MHuiG Magicland","url":"https://blog.mhuig.top/","keywords":"MHuiG, @MHuiG, Blog, 博客, Magicland, 魔法世界","description":"宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒。「Be Yourself, Make a Difference.」 - Magic Island","author":{"@type":"Person","name":"MHuiG","image":{"@type":"ImageObject","url":"/lib/favicon/android-chrome-192x192.png"},"url":"https://blog.mhuig.top/","description":"「Be Yourself, Make a Difference.」"},"publisher":{"@type":"Organization","name":"MHuiG Magicland","url":"https://blog.mhuig.top/","logo":{"@type":"ImageObject","url":"/lib/favicon/android-chrome-192x192.png","width":192,"height":192}},"potentialAction":{"@type":"SearchAction","name":"Coco | The Cat of MHuiG","target":{"@type":"EntryPoint","urlTemplate":"https://blog.mhuig.top/havefun/Coco/?s={search_term_string}"},"query-input":"required name=search_term_string"}},{"@context":"http://schema.org","@type":"BlogPosting","headline":"特征和分类器","description":"本文系统阐述计算机视觉中特征与分类器的核心原理。特征作为图像独特属性,需满足同类样本相似、异类样本差异的特性,分为全局与局部两类,后者(如HOG、SIFT)可有效处理遮挡。分类器基于特征向量实现图像分类,但受噪声、样本量等因素限制难以完美。文中详述HOG通过梯度方向直方图编码对象形状,SIFT通过尺度空间极值检测实现尺度旋转不变性,为视觉识别提供关键技术支撑。","inLanguage":"zh-Hans","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.mhuig.top/p/483290b5/"},"author":{"@type":"Person","name":"MHuiG","image":{"@type":"ImageObject","url":"/lib/favicon/android-chrome-192x192.png"},"url":"https://blog.mhuig.top/"},"publisher":{"@type":"Organization","name":"MHuiG Magicland","logo":{"@type":"ImageObject","url":"/lib/favicon/android-chrome-192x192.png","width":192,"height":192}},"url":"https://blog.mhuig.top/p/483290b5/","wordCount":0,"datePublished":"2019-09-12T03:19:00.000Z","dateModified":"2025-11-20T10:18:00.000Z","articleSection":"机器学习","keywords":"机器视觉","image":{"@type":"ImageObject","url":"/lib/favicon/android-chrome-192x192.png","width":192,"height":192}}]</script></head><body itemscope="" itemtype="http://schema.org/WebPage"><pjax></pjax><header itemscope="" itemtype="http://schema.org/WPHeader" id="l_header" class="l_header auto shadow floatable blur show" style="opacity:0"><div class="container"><div id="wrapper"><div class="nav-sub"><p class="title"></p><ul class="switcher nav-list-h m-phone" id="pjax-header-nav-list"><li><a id="s-comment" class="fa-solid fa-comments fa-fw" target="_self" title="comment"></a></li><li><a id="s-toc" class="s-toc fa-solid fa-list fa-fw" target="_self" title="toc"></a></li></ul></div><div class="nav-main"> <a class="title flat-box" target="_self" href="/">MHuiG</a><div class="menu navigation"><ul class="nav-list-h m-pc"><li><a class="menuitem flat-box faa-parent animated-hover" title="索引"><i class="fa-duotone fa-list-alt fa-fw"></i> 索引</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="/notes/" title="便签" active-action="action-notes"><i class="fa-duotone fa-books fa-fw"></i> 便签</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/categories/" title="分类" active-action="action-categories"><i class="fa-duotone fa-folder-open fa-fw"></i> 分类</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/tags/" title="标签" active-action="action-tags"><i class="fa-duotone fa-tags fa-fw"></i> 标签</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/archives/" title="归档" active-action="action-archives"><i class="fa-duotone fa-archive fa-fw"></i> 归档</a></li></ul></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/friends/" title="友链" active-action="action-pagesfriends"><i class="fa-duotone fa-link fa-fw"></i> 友链</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="https://www.travellings.cn/go-by-clouds.html" title="Travelling" target="_blank" active-action="action-https:wwwtravellingscngo-by-cloudshtml" rel="external nofollow noopener noreferrer"><i class="fa-duotone fa-subway fa-fw"></i> Travelling</a></li></ul></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/about/" title="关于" active-action="action-pagesabout"><i class="fa-duotone fa-user-tie fa-fw"></i> 关于</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/time-machine/" title="时光机" active-action="action-pagestime-machine"><i class="fa-duotone fa-clock fa-fw"></i> 时光机</a></li><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="noopener" href="https://mhuig.top/privacy-policy/" title="隐私政策" active-action="action-https:mhuigtopprivacy-policy"><i class="fa-duotone fa-user-secret fa-fw"></i> 隐私政策</a></li></ul></li><li><a class="menuitem flat-box faa-parent animated-hover" title="更多"><i class="fa-duotone fa-fan fa-spin fa-fw"></i> 更多</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/beer/" title="Sponsor" active-action="action-pagesbeer"><i class="fa-duotone fa-heart-square fa-fw"></i> Sponsor</a></li><hr><li><a class="menuitem flat-box faa-parent animated-hover" title="博客管理"><i class="fa-duotone fa-user-shield fa-fw"></i> 博客管理</a><ul class="list-v"><li><a class="menuitem flat-box header toggle-mode-btn"><i class="fa-duotone fa-bat fa-fw"></i> 暗黑模式</a></li><li></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/rss/" title="RSS订阅" active-action="action-pagesrss"><i class="fa-duotone fa-rss fa-fw"></i> RSS订阅</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/sitemap.xml" title="站点地图" active-action="action-sitemapxml"><i class="fa-duotone fa-sitemap fa-fw"></i> 站点地图</a></li><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://mhuig.instatus.com/" title="Monitors" active-action="action-https:mhuiginstatuscom"><i class="fa-duotone fa-telescope fa-fw"></i> Monitors</a></li><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://ssl.mhuig.top/" title="SSL Status" active-action="action-https:sslmhuigtop"><i class="fa-brands fa-expeditedssl fa-fw"></i> SSL Status</a></li></ul></li><hr><li><a class="menuitem flat-box faa-parent animated-hover" title="工具箱"><i class="fa-duotone fa-tools fa-fw"></i> 工具箱</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://rssbox.mhuig.top/" title="RSS Box" active-action="action-https:rssboxmhuigtop"><i class="fa-duotone fa-conveyor-belt-boxes fa-fw"></i> RSS Box</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/havefun/Coco/" title="My Cat" active-action="action-havefunCoco"><i class="fa-duotone fa-cat fa-fw"></i> My Cat</a></li><li><a class="menuitem flat-box"><i class="fa-duotone fa-compact-disc fa-spin fa-fw music"></i> Music</a><ul class="list-v"><li><div class="aplayer-container"><div class="aplayer-local"></div></div></li></ul></li><li></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/talk/" title="碎言碎语" active-action="action-pagestalk"><i class="fa-duotone fa-comments fa-fw"></i> 碎言碎语</a></li></ul></li><hr><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://github.com/MHuiG" title="GitHub" active-action="action-https:githubcomMHuiG"><i class="fa-brands fa-github fa-fw"></i> GitHub</a></li></ul></li></ul></div><div class="m_search"><form name="searchform" class="form u-search-form"><i class="icon fa-solid fa-search fa-fw"></i> <input type="text" class="input u-search-input" placeholder="Search..."></form></div><ul class="switcher nav-list-h m-phone"><li><a class="s-search fa-solid fa-search fa-fw" target="_self" title="search"></a></li><li><a class="s-menu fa-solid fa-bars fa-fw" target="_self" title="menu"></a><ul class="menu-phone list-v navigation white-box"><li><a class="menuitem flat-box faa-parent animated-hover" title="索引"><i class="fa-duotone fa-list-alt fa-fw"></i> 索引</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="/notes/" title="便签" active-action="action-notes"><i class="fa-duotone fa-books fa-fw"></i> 便签</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/categories/" title="分类" active-action="action-categories"><i class="fa-duotone fa-folder-open fa-fw"></i> 分类</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/tags/" title="标签" active-action="action-tags"><i class="fa-duotone fa-tags fa-fw"></i> 标签</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/archives/" title="归档" active-action="action-archives"><i class="fa-duotone fa-archive fa-fw"></i> 归档</a></li></ul></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/friends/" title="友链" active-action="action-pagesfriends"><i class="fa-duotone fa-link fa-fw"></i> 友链</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="https://www.travellings.cn/go-by-clouds.html" title="Travelling" target="_blank" active-action="action-https:wwwtravellingscngo-by-cloudshtml" rel="external nofollow noopener noreferrer"><i class="fa-duotone fa-subway fa-fw"></i> Travelling</a></li></ul></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/about/" title="关于" active-action="action-pagesabout"><i class="fa-duotone fa-user-tie fa-fw"></i> 关于</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/time-machine/" title="时光机" active-action="action-pagestime-machine"><i class="fa-duotone fa-clock fa-fw"></i> 时光机</a></li><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="noopener" href="https://mhuig.top/privacy-policy/" title="隐私政策" active-action="action-https:mhuigtopprivacy-policy"><i class="fa-duotone fa-user-secret fa-fw"></i> 隐私政策</a></li></ul></li><li><a class="menuitem flat-box faa-parent animated-hover" title="更多"><i class="fa-duotone fa-fan fa-spin fa-fw"></i> 更多</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/beer/" title="Sponsor" active-action="action-pagesbeer"><i class="fa-duotone fa-heart-square fa-fw"></i> Sponsor</a></li><hr><li><a class="menuitem flat-box faa-parent animated-hover" title="博客管理"><i class="fa-duotone fa-user-shield fa-fw"></i> 博客管理</a><ul class="list-v"><li><a class="menuitem flat-box header toggle-mode-btn"><i class="fa-duotone fa-bat fa-fw"></i> 暗黑模式</a></li><li></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/rss/" title="RSS订阅" active-action="action-pagesrss"><i class="fa-duotone fa-rss fa-fw"></i> RSS订阅</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/sitemap.xml" title="站点地图" active-action="action-sitemapxml"><i class="fa-duotone fa-sitemap fa-fw"></i> 站点地图</a></li><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://mhuig.instatus.com/" title="Monitors" active-action="action-https:mhuiginstatuscom"><i class="fa-duotone fa-telescope fa-fw"></i> Monitors</a></li><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://ssl.mhuig.top/" title="SSL Status" active-action="action-https:sslmhuigtop"><i class="fa-brands fa-expeditedssl fa-fw"></i> SSL Status</a></li></ul></li><hr><li><a class="menuitem flat-box faa-parent animated-hover" title="工具箱"><i class="fa-duotone fa-tools fa-fw"></i> 工具箱</a><ul class="list-v"><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://rssbox.mhuig.top/" title="RSS Box" active-action="action-https:rssboxmhuigtop"><i class="fa-duotone fa-conveyor-belt-boxes fa-fw"></i> RSS Box</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/havefun/Coco/" title="My Cat" active-action="action-havefunCoco"><i class="fa-duotone fa-cat fa-fw"></i> My Cat</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/pages/talk/" title="碎言碎语" active-action="action-pagestalk"><i class="fa-duotone fa-comments fa-fw"></i> 碎言碎语</a></li></ul></li><hr><li><a class="menuitem flat-box faa-parent animated-hover" target="_blank" rel="external nofollow noopener noreferrer" href="https://github.com/MHuiG" title="GitHub" active-action="action-https:githubcomMHuiG"><i class="fa-brands fa-github fa-fw"></i> GitHub</a></li></ul></li></ul></li></ul></div></div></div></header><div id="l_body"><div id="l_cover"><div id="none" class="cover-wrapper post featured" style="display:none"><div class="cover-bg lazyload placeholder" data-bg=""></div><div class="cover-body"><div class="top"><p class="title">Magicland</p><p class="subtitle">「看庭前花开花落,望天上云卷云舒」</p></div><div class="bottom"><div class="menu navigation"><div class="list-h"><a target="_blank" rel="external nofollow noopener noreferrer" href="https://github.com/MHuiG" active-action="action-https:githubcomMHuiG"><i class="fa-brands fa-github color-github fa-fw"></i><p>Github</p></a><a href="/pages/friends/" active-action="action-pagesfriends"><i class="fa-duotone fa-link color-friends fa-fw"></i><p>友链</p></a><a href="/pages/about/" active-action="action-pagesabout"><i class="fa-duotone fa-user-tie color-about fa-fw"></i><p>关于</p></a><a href="https://www.travellings.cn/go-by-clouds.html" target="_blank" active-action="action-https:wwwtravellingscngo-by-cloudshtml" rel="external nofollow noopener noreferrer"><i class="fa-duotone fa-subway color-travellings fa-fw"></i><p>Travelling</p></a></div></div></div></div><div id="scroll-down" style="display:none"><i class="fa fa-chevron-down scroll-down-effects"></i></div></div></div><div id="safearea"><div class="body-wrapper"><div id="l_main" class=""><article itemscope="" itemtype="http://schema.org/Article" class="article post white-box reveal md shadow floatable blur article-type-post" id="post" itemprop="blogPost"><link itemprop="mainEntityOfPage" href="https://blog.mhuig.top/p/483290b5/"><span hidden="" itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization"><meta itemprop="name" content="Magicland"></span><span hidden="" itemprop="post" itemscope="" itemtype="http://schema.org/CreativeWork"><meta itemprop="name" content="特征和分类器"><meta itemprop="description" content="本文系统阐述计算机视觉中特征与分类器的核心原理。特征作为图像独特属性,需满足同类样本相似、异类样本差异的特性,分为全局与局部两类,后者(如HOG、SIFT)可有效处理遮挡。分类器基于特征向量实现图像分类,但受噪声、样本量等因素限制难以完美。文中详述HOG通过梯度方向直方图编码对象形状,SIFT通过尺度空间极值检测实现尺度旋转不变性,为视觉识别提供关键技术支撑。"></span><span hidden=""><meta itemprop="image" content="/lib/favicon/android-chrome-192x192.png"></span><div class="article-meta" id="top"><h1 class="title" itemprop="name headline"> 特征和分类器</h1><div class="new-meta-box"><div class="new-meta-item author" itemprop="author" itemscope="" itemtype="http://schema.org/Person"> <a itemprop="url" class="author" target="_blank" href="https://mhuig.top/" rel="nofollow noopener" alt="author"><img itemprop="image" src="/lib/avatar/avatar-16.webp" class="lazyload" data-srcset="/lib/avatar/avatar-16.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="><p itemprop="name">MHuiG</p></a></div><div class="new-meta-item wordcount"><a class="notlink"><i class="fa-duotone fa-keyboard fa-fw" aria-hidden="true"></i><p>字数:1.4k 字</p></a></div><div class="new-meta-item readtime"><a class="notlink"><i class="fa-duotone fa-hourglass-half fa-fw" aria-hidden="true"></i><p>时长:4 分钟</p></a></div></div></div><div id="layoutHelper-page-plugins"></div><div id="post-body" itemprop="articleBody"><p>特征提取和分类是典型计算机视觉系统的两个关键阶段。</p><p>视觉系统的准确性、稳健性和效率在很大程度上取决于图像特征,和分类器的质量。因此,目标是从输入图像中提取信息丰富的、可靠的特征,以便能够开发出很大程度上独立于领域理论的分类。</p><div class="story post-story"><h2 id="特征"><a href="#特征" class="headerlink" title="特征"></a>特征</h2><p>特征是任何独特的方面或特性,用于解决与特定应用相关的计算任务。</p><p>n 个特征的组合可以表示成 n 维向量,称为特征向量。特征向量的质量取决于其区分不同类别的图像样本的能力。</p><p>来自同一类的图像样本应该有相似的特征值,来自不同类的图像应具有不同的特征值。</p></div><div class="story post-story"><h2 id="分类器"><a href="#分类器" class="headerlink" title="分类器"></a>分类器</h2><p>分类器是现代计算机视觉和模式识别的核心。</p><p>分类器的任务是使用特征向量对图像或感兴趣区域(RoI)划分类别。</p><p>分类任务的困难程度取决于来自相同类别的图像的特征值的可变性,以及相对于来自不同类别图像的特征值的差异性。</p><p>但是,完美的分类性能通常是不可能的。这主要是因为:</p><ul><li>噪声(以阴影、遮挡、透视扭曲等形式)</li><li>异常值</li><li>模糊性</li><li>缺少标签</li><li>仅有小训练样本可用</li><li>训练数据样本中正 / 负覆盖的不平衡</li></ul></div><div class="story post-story"><h2 id="传统特征描述符"><a href="#传统特征描述符" class="headerlink" title="传统特征描述符"></a>传统特征描述符</h2><p>传统(手工设计)特征提取方法可分为两大类:</p><ul><li>全局</li><li>局部</li></ul><p>全局特征提取方法定义了一组有效描述整个图像的全局特征。因此形状细节被忽略。全局特征也不适用于识别部分遮挡的对象。</p><p>局部特征提取方法提取关键点周围的局部区域,由此可以更好的处理遮挡。</p><p>检测关键点,并在他们周围构建描述符的方法:</p><p>局部描述符(如 HOG、SIFT、SURF、FREAK、ORB、BRISK、BRIEF、LIOP)</p></div><div class="story post-story"><h2 id="方向梯度直方图"><a href="#方向梯度直方图" class="headerlink" title="方向梯度直方图"></a>方向梯度直方图</h2><p>HOG 是一个特征描述符,用于自动检测图像中的对象。HOG 描述符对图像中局部部分的梯度方向的分布进行编码。</p><p>HOG 背后的想法是可以通过边缘方向的直方图来描述图像内的对象外观和形状。</p><h3 id="1-梯度计算"><a href="#1-梯度计算" class="headerlink" title="1.梯度计算"></a>1. 梯度计算</h3><p>第一步是计算梯度值。在图像的水平和垂直方向上,执行一维中心点离散微分模板。具体的说,该方法需要用以下滤波器内核处理灰度图像:</p><p><mjx-container class="MathJax" jax="SVG" overflow="overflow" display="true" width="full" style="min-width:46.413ex"><svg style="vertical-align:-.777ex;min-width:46.413ex" xmlns="http://www.w3.org/2000/svg" width="100%" height="2.685ex" role="img" focusable="false"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(0.0181,-0.0181) translate(0, -843.3)"><g data-mml-node="math" data-latex="f_x=[-1\ \ 0 \ \ +1] ,f_y=[-1\ \ 0\ \ +1] ^T"><g data-mml-node="mtable" data-latex="f_x=[-1\ \ 0 \ \ +1] ,f_y=[-1\ \ 0\ \ +1] ^T" transform="translate(2078,0) translate(-2078,0)"><g transform="translate(0 843.3) matrix(1 0 0 -1 0 0) scale(55.25)"><svg data-table="true" preserveAspectRatio="xMidYMid" viewBox="8179.2 -843.3 1 1186.7"><g transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mlabeledtr" transform="translate(0,-48.4)"><g data-mml-node="mtd"><g data-mml-node="msub" data-latex="f_x"><g data-mml-node="mi" data-latex="f"><path data-c="1D453" d="M552 633C552 677 509 705 462 705 400 705 357 665 334 586 329 568 318 517 302 433L237 433C215 433 204 432 204 411 204 400 214 395 235 395L295 395 222 8C211-49 201-91 192-119 180-156 163-175 141-175 126-175 114-171 103-164 135-159 151-140 151-108 151-82 138-69 111-69 77-69 53-99 53-133 53-177 94-205 141-205 166-205 189-195 208-174 240-141 265-94 283-31 294 8 304 46 311 84L369 395 451 395C474 395 484 396 484 419 484 428 474 433 454 433L377 433C383 474 411 625 420 644 430 665 444 675 462 675 477 675 490 671 501 664 470 657 454 639 454 608 454 582 467 569 494 569 528 569 552 599 552 633Z"></path></g><g data-mml-node="mi" transform="translate(523,-150) scale(0.707)" data-latex="x"><path data-c="1D465" d="M527 373C527 419 482 442 432 442 389 442 355 419 329 373 308 419 273 442 222 442 173 442 133 419 101 374 74 335 60 306 60 287 60 278 65 273 75 273 84 273 90 278 92 287 111 345 153 413 220 413 253 413 269 392 269 351 269 330 251 252 216 118 199 51 169 18 126 18 112 18 99 21 88 26 114 36 127 54 127 80 127 106 114 119 87 119 54 119 29 91 29 58 29 12 76-11 125-11 167-11 201 12 228 58 247 12 283-11 335-11 383-11 423 12 455 57 482 96 496 125 496 144 496 153 491 158 481 158 472 158 467 153 464 144 447 87 402 18 337 18 304 18 287 38 287 79 287 92 292 120 303 165L337 300C356 375 387 413 431 413 445 413 458 410 469 405 442 396 429 378 429 351 429 325 443 312 470 312 502 312 527 341 527 373Z"></path></g></g><g data-mml-node="mo" data-latex="=" transform="translate(1255.2,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mo" data-latex="[" transform="translate(2311,0)"><path data-c="5B" d="M233-202 159-202 159 702 233 702C248 702 256 710 256 726 256 742 248 750 233 750L114 750 114-250 233-250C248-250 256-242 256-226 256-214 245-202 233-202Z"></path></g><g data-mml-node="mo" data-latex="-" transform="translate(2589,0)"><path data-c="2212" d="M698 270 80 270C64 270 56 263 56 250 56 237 64 230 80 230L698 230C714 230 722 237 722 250 722 262 710 270 698 270Z"></path></g><g data-mml-node="mn" data-latex="1" transform="translate(3367,0)"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g><g data-mml-node="mtext" transform="translate(3867,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mtext" transform="translate(4199,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mn" data-latex="0" transform="translate(4531,0)"><path data-c="30" d="M249-22C390-22 460 92 460 320 460 473 428 575 365 625 330 652 291 666 250 666 109 666 39 551 39 320 39 136 88-22 249-22M361 524C368 489 371 425 371 332 371 240 367 172 360 128 347 48 310 8 249 8 226 8 203 17 182 34 155 57 139 104 132 176 129 201 128 253 128 332 128 419 131 480 136 513 145 568 163 603 191 618 213 630 232 636 249 636 314 636 350 583 361 524Z"></path></g><g data-mml-node="mtext" transform="translate(5031,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mtext" transform="translate(5363,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mo" data-latex="+" transform="translate(5917.2,0)"><path data-c="2B" d="M698 274 413 274 413 559C413 575 405 583 389 583 373 583 365 575 365 559L365 274 80 274C64 274 56 266 56 250 56 234 64 226 80 226L365 226 365-59C365-75 373-83 389-83 405-83 413-75 413-59L413 226 698 226C714 226 722 234 722 250 722 263 711 274 698 274Z"></path></g><g data-mml-node="mn" data-latex="1" transform="translate(6917.5,0)"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g><g data-mml-node="mo" data-latex="]" transform="translate(7417.5,0)"><path data-c="5D" d="M45-250 164-250 164 750 45 750C30 750 22 742 22 726 22 710 30 702 45 702L119 702 119-202 45-202C30-202 22-210 22-226 22-242 30-250 45-250Z"></path></g><g data-mml-node="mo" data-latex="," transform="translate(7695.5,0)"><path data-c="2C" d="M139 106C107 106 86 82 86 50 86 20 109-5 139-5 153-5 165-1 174 8L175 0C175-63 154-117 112-160 105-168 101-174 101-178 101-188 105-193 114-193 123-193 135-181 152-158 186-110 203-57 203 0 203 53 185 106 139 106Z"></path></g><g data-mml-node="msub" data-latex="f_y" transform="translate(8140.1,0)"><g data-mml-node="mi" data-latex="f"><path data-c="1D453" d="M552 633C552 677 509 705 462 705 400 705 357 665 334 586 329 568 318 517 302 433L237 433C215 433 204 432 204 411 204 400 214 395 235 395L295 395 222 8C211-49 201-91 192-119 180-156 163-175 141-175 126-175 114-171 103-164 135-159 151-140 151-108 151-82 138-69 111-69 77-69 53-99 53-133 53-177 94-205 141-205 166-205 189-195 208-174 240-141 265-94 283-31 294 8 304 46 311 84L369 395 451 395C474 395 484 396 484 419 484 428 474 433 454 433L377 433C383 474 411 625 420 644 430 665 444 675 462 675 477 675 490 671 501 664 470 657 454 639 454 608 454 582 467 569 494 569 528 569 552 599 552 633Z"></path></g><g data-mml-node="mi" transform="translate(523,-150) scale(0.707)" data-latex="y"><path data-c="1D466" d="M163 442C118 442 83 417 58 367 39 328 29 301 29 286 29 277 34 272 45 272 59 272 60 278 64 293 87 372 119 412 160 412 173 412 180 403 180 385 180 369 175 346 164 317 126 214 107 145 107 108 107 32 154-13 231-13 264-13 295-1 323 23 288-109 233-175 158-175 124-175 101-164 89-142 129-140 149-121 149-85 149-60 136-47 109-47 72-47 50-78 50-115 50-170 100-205 158-205 273-205 367-99 392-1L486 377C489 388 490 396 490 401 490 421 479 431 458 431 442 431 429 423 420 408 414 387 409 369 406 354L342 97C332 61 279 16 234 16 196 16 177 41 177 92 177 134 194 198 227 284 240 319 247 343 247 357 247 406 212 442 163 442Z"></path></g></g><g data-mml-node="mo" data-latex="=" transform="translate(9337.4,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mo" data-latex="[" transform="translate(10393.2,0)"><path data-c="5B" d="M233-202 159-202 159 702 233 702C248 702 256 710 256 726 256 742 248 750 233 750L114 750 114-250 233-250C248-250 256-242 256-226 256-214 245-202 233-202Z"></path></g><g data-mml-node="mo" data-latex="-" transform="translate(10671.2,0)"><path data-c="2212" d="M698 270 80 270C64 270 56 263 56 250 56 237 64 230 80 230L698 230C714 230 722 237 722 250 722 262 710 270 698 270Z"></path></g><g data-mml-node="mn" data-latex="1" transform="translate(11449.2,0)"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g><g data-mml-node="mtext" transform="translate(11949.2,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mtext" transform="translate(12281.2,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mn" data-latex="0" transform="translate(12613.2,0)"><path data-c="30" d="M249-22C390-22 460 92 460 320 460 473 428 575 365 625 330 652 291 666 250 666 109 666 39 551 39 320 39 136 88-22 249-22M361 524C368 489 371 425 371 332 371 240 367 172 360 128 347 48 310 8 249 8 226 8 203 17 182 34 155 57 139 104 132 176 129 201 128 253 128 332 128 419 131 480 136 513 145 568 163 603 191 618 213 630 232 636 249 636 314 636 350 583 361 524Z"></path></g><g data-mml-node="mtext" transform="translate(13113.2,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mtext" transform="translate(13445.2,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mo" data-latex="+" transform="translate(13999.4,0)"><path data-c="2B" d="M698 274 413 274 413 559C413 575 405 583 389 583 373 583 365 575 365 559L365 274 80 274C64 274 56 266 56 250 56 234 64 226 80 226L365 226 365-59C365-75 373-83 389-83 405-83 413-75 413-59L413 226 698 226C714 226 722 234 722 250 722 263 711 274 698 274Z"></path></g><g data-mml-node="mn" data-latex="1" transform="translate(14999.6,0)"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g><g data-mml-node="msup" data-latex="]^T" transform="translate(15499.6,0)"><g data-mml-node="mo" data-latex="]"><path data-c="5D" d="M45-250 164-250 164 750 45 750C30 750 22 742 22 726 22 710 30 702 45 702L119 702 119-202 45-202C30-202 22-210 22-226 22-242 30-250 45-250Z"></path></g><g data-mml-node="mi" transform="translate(311,413) scale(0.707)" data-latex="T"><path data-c="1D447" d="M344 631C344 628 343 621 340 611L208 83C204 68 200 59 197 55 188 44 154 39 94 39 63 39 49 42 49 16 49 5 56 0 69 0 120 0 192 4 235 3L317 2C331 2 386 0 403 0 420 0 428 8 428 24 428 34 416 39 391 39 339 39 309 41 300 46 297 48 295 52 295 58L430 603C433 617 436 626 439 629 443 635 467 638 511 638 566 638 604 634 623 625 642 616 652 595 652 561 652 543 649 517 644 483 642 475 641 469 641 464 641 453 646 447 657 447 666 447 672 456 675 473L702 645C703 650 704 656 704 662 704 672 694 677 673 677L125 677C99 677 97 674 89 655L30 481C27 472 25 466 24 462 24 452 29 447 40 447 48 447 55 455 60 470 85 543 110 588 133 607 159 628 209 638 282 638L321 638C332 638 344 639 344 631Z"></path></g></g></g></g></g></svg><svg data-labels="true" preserveAspectRatio="xMaxYMid" viewBox="1278 -843.3 1 1186.7"><g data-labels="true" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mtd" id="mjx-eqn:1" transform="translate(0,699.6)"><text data-id-align="true"></text><g data-idbox="true" transform="translate(0,-748)"><g data-mml-node="mtext" data-latex="\text{(1)}"><path data-c="28" d="M318-248C327-248 332-243 332-234 332-231 330-227 327-223 275-183 233-117 202-26 175 53 161 131 161 208L161 292C161 369 175 447 202 526 233 617 275 683 327 723 330 726 332 730 332 734 332 743 327 748 318 748 317 748 314 747 311 745 251 699 201 631 160 540 121 453 101 371 101 292L101 208C101 129 121 47 160-40 201-131 251-199 311-245 314-247 317-248 318-248Z"></path><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z" transform="translate(389,0)"></path><path data-c="29" d="M78-245C138-199 188-131 229-40 268 47 288 129 288 208L288 292C288 371 268 453 229 540 188 631 138 699 78 745 75 747 72 748 71 748 62 748 57 743 57 734 57 730 59 726 62 723 114 683 156 617 187 526 214 447 228 369 228 292L228 208C228 131 214 53 187-26 156-117 114-183 62-223 59-227 57-231 57-234 57-243 62-248 71-248 72-248 75-247 78-245Z" transform="translate(889,0)"></path></g></g></g></g></svg></g></g></g></g></svg></mjx-container></p><p>因此给定一个图像<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.002ex" xmlns="http://www.w3.org/2000/svg" width="1.124ex" height="1.55ex" role="img" focusable="false" viewBox="0 -684 497 685"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="I"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g></g></g></svg></mjx-container>,以下卷积操作(表示为<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:.088ex" xmlns="http://www.w3.org/2000/svg" width="1.131ex" height="0.957ex" role="img" focusable="false" viewBox="0 -462 500 423"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="*"><g data-mml-node="mo" data-latex="*"><path data-c="2217" d="M404 372C397 372 390 370 385 366L267 279 282 425C285 445 269 462 250 462 231 462 215 445 218 425L233 279 115 366C110 370 103 372 96 372 78 372 63 357 63 339 63 325 70 315 83 309L217 250 83 191C70 185 63 175 63 161 63 143 78 128 96 128 103 128 110 130 115 134L233 221 218 75C215 55 231 39 250 39 269 39 285 55 282 75L267 221 385 134C390 130 397 128 404 128 415 128 424 133 431 142 446 162 435 183 417 191L283 250 417 309C430 315 437 325 437 339 437 357 422 372 404 372Z"></path></g></g></g></svg></mjx-container>)得出图像<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.002ex" xmlns="http://www.w3.org/2000/svg" width="1.124ex" height="1.55ex" role="img" focusable="false" viewBox="0 -684 497 685"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="I"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g></g></g></svg></mjx-container>在<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.025ex" xmlns="http://www.w3.org/2000/svg" width="1.294ex" height="1.025ex" role="img" focusable="false" viewBox="0 -442 572 453"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="x"><g data-mml-node="mi" data-latex="x"><path data-c="1D465" d="M527 373C527 419 482 442 432 442 389 442 355 419 329 373 308 419 273 442 222 442 173 442 133 419 101 374 74 335 60 306 60 287 60 278 65 273 75 273 84 273 90 278 92 287 111 345 153 413 220 413 253 413 269 392 269 351 269 330 251 252 216 118 199 51 169 18 126 18 112 18 99 21 88 26 114 36 127 54 127 80 127 106 114 119 87 119 54 119 29 91 29 58 29 12 76-11 125-11 167-11 201 12 228 58 247 12 283-11 335-11 383-11 423 12 455 57 482 96 496 125 496 144 496 153 491 158 481 158 472 158 467 153 464 144 447 87 402 18 337 18 304 18 287 38 287 79 287 92 292 120 303 165L337 300C356 375 387 413 431 413 445 413 458 410 469 405 442 396 429 378 429 351 429 325 443 312 470 312 502 312 527 341 527 373Z"></path></g></g></g></svg></mjx-container>和<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.464ex" xmlns="http://www.w3.org/2000/svg" width="1.109ex" height="1.464ex" role="img" focusable="false" viewBox="0 -442 490 647"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="y"><g data-mml-node="mi" data-latex="y"><path data-c="1D466" d="M163 442C118 442 83 417 58 367 39 328 29 301 29 286 29 277 34 272 45 272 59 272 60 278 64 293 87 372 119 412 160 412 173 412 180 403 180 385 180 369 175 346 164 317 126 214 107 145 107 108 107 32 154-13 231-13 264-13 295-1 323 23 288-109 233-175 158-175 124-175 101-164 89-142 129-140 149-121 149-85 149-60 136-47 109-47 72-47 50-78 50-115 50-170 100-205 158-205 273-205 367-99 392-1L486 377C489 388 490 396 490 401 490 421 479 431 458 431 442 431 429 423 420 408 414 387 409 369 406 354L342 97C332 61 279 16 234 16 196 16 177 41 177 92 177 134 194 198 227 284 240 319 247 343 247 357 247 406 212 442 163 442Z"></path></g></g></g></svg></mjx-container>方向的导数:</p><p><mjx-container class="MathJax" jax="SVG" overflow="overflow" display="true" width="full" style="min-width:31.323ex"><svg style="vertical-align:-.616ex;min-width:31.323ex" xmlns="http://www.w3.org/2000/svg" width="100%" height="2.364ex" role="img" focusable="false"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(0.0181,-0.0181) translate(0, -772.5)"><g data-mml-node="math" data-latex="I_x=I*f_x,I_y=I*f_y"><g data-mml-node="mtable" data-latex="I_x=I*f_x,I_y=I*f_y" transform="translate(2078,0) translate(-2078,0)"><g transform="translate(0 772.5) matrix(1 0 0 -1 0 0) scale(55.25)"><svg data-table="true" preserveAspectRatio="xMidYMid" viewBox="4844.3 -772.5 1 1045"><g transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mlabeledtr" transform="translate(0,22.5)"><g data-mml-node="mtd"><g data-mml-node="msub" data-latex="I_x"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mi" transform="translate(473,-150) scale(0.707)" data-latex="x"><path data-c="1D465" d="M527 373C527 419 482 442 432 442 389 442 355 419 329 373 308 419 273 442 222 442 173 442 133 419 101 374 74 335 60 306 60 287 60 278 65 273 75 273 84 273 90 278 92 287 111 345 153 413 220 413 253 413 269 392 269 351 269 330 251 252 216 118 199 51 169 18 126 18 112 18 99 21 88 26 114 36 127 54 127 80 127 106 114 119 87 119 54 119 29 91 29 58 29 12 76-11 125-11 167-11 201 12 228 58 247 12 283-11 335-11 383-11 423 12 455 57 482 96 496 125 496 144 496 153 491 158 481 158 472 158 467 153 464 144 447 87 402 18 337 18 304 18 287 38 287 79 287 92 292 120 303 165L337 300C356 375 387 413 431 413 445 413 458 410 469 405 442 396 429 378 429 351 429 325 443 312 470 312 502 312 527 341 527 373Z"></path></g></g><g data-mml-node="mo" data-latex="=" transform="translate(1205.2,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mi" data-latex="I" transform="translate(2261,0)"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mo" data-latex="*" transform="translate(2980.2,0)"><path data-c="2217" d="M404 372C397 372 390 370 385 366L267 279 282 425C285 445 269 462 250 462 231 462 215 445 218 425L233 279 115 366C110 370 103 372 96 372 78 372 63 357 63 339 63 325 70 315 83 309L217 250 83 191C70 185 63 175 63 161 63 143 78 128 96 128 103 128 110 130 115 134L233 221 218 75C215 55 231 39 250 39 269 39 285 55 282 75L267 221 385 134C390 130 397 128 404 128 415 128 424 133 431 142 446 162 435 183 417 191L283 250 417 309C430 315 437 325 437 339 437 357 422 372 404 372Z"></path></g><g data-mml-node="msub" data-latex="f_x" transform="translate(3702.5,0)"><g data-mml-node="mi" data-latex="f"><path data-c="1D453" d="M552 633C552 677 509 705 462 705 400 705 357 665 334 586 329 568 318 517 302 433L237 433C215 433 204 432 204 411 204 400 214 395 235 395L295 395 222 8C211-49 201-91 192-119 180-156 163-175 141-175 126-175 114-171 103-164 135-159 151-140 151-108 151-82 138-69 111-69 77-69 53-99 53-133 53-177 94-205 141-205 166-205 189-195 208-174 240-141 265-94 283-31 294 8 304 46 311 84L369 395 451 395C474 395 484 396 484 419 484 428 474 433 454 433L377 433C383 474 411 625 420 644 430 665 444 675 462 675 477 675 490 671 501 664 470 657 454 639 454 608 454 582 467 569 494 569 528 569 552 599 552 633Z"></path></g><g data-mml-node="mi" transform="translate(523,-150) scale(0.707)" data-latex="x"><path data-c="1D465" d="M527 373C527 419 482 442 432 442 389 442 355 419 329 373 308 419 273 442 222 442 173 442 133 419 101 374 74 335 60 306 60 287 60 278 65 273 75 273 84 273 90 278 92 287 111 345 153 413 220 413 253 413 269 392 269 351 269 330 251 252 216 118 199 51 169 18 126 18 112 18 99 21 88 26 114 36 127 54 127 80 127 106 114 119 87 119 54 119 29 91 29 58 29 12 76-11 125-11 167-11 201 12 228 58 247 12 283-11 335-11 383-11 423 12 455 57 482 96 496 125 496 144 496 153 491 158 481 158 472 158 467 153 464 144 447 87 402 18 337 18 304 18 287 38 287 79 287 92 292 120 303 165L337 300C356 375 387 413 431 413 445 413 458 410 469 405 442 396 429 378 429 351 429 325 443 312 470 312 502 312 527 341 527 373Z"></path></g></g><g data-mml-node="mo" data-latex="," transform="translate(4679.9,0)"><path data-c="2C" d="M139 106C107 106 86 82 86 50 86 20 109-5 139-5 153-5 165-1 174 8L175 0C175-63 154-117 112-160 105-168 101-174 101-178 101-188 105-193 114-193 123-193 135-181 152-158 186-110 203-57 203 0 203 53 185 106 139 106Z"></path></g><g data-mml-node="msub" data-latex="I_y" transform="translate(5124.6,0)"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mi" transform="translate(473,-150) scale(0.707)" data-latex="y"><path data-c="1D466" d="M163 442C118 442 83 417 58 367 39 328 29 301 29 286 29 277 34 272 45 272 59 272 60 278 64 293 87 372 119 412 160 412 173 412 180 403 180 385 180 369 175 346 164 317 126 214 107 145 107 108 107 32 154-13 231-13 264-13 295-1 323 23 288-109 233-175 158-175 124-175 101-164 89-142 129-140 149-121 149-85 149-60 136-47 109-47 72-47 50-78 50-115 50-170 100-205 158-205 273-205 367-99 392-1L486 377C489 388 490 396 490 401 490 421 479 431 458 431 442 431 429 423 420 408 414 387 409 369 406 354L342 97C332 61 279 16 234 16 196 16 177 41 177 92 177 134 194 198 227 284 240 319 247 343 247 357 247 406 212 442 163 442Z"></path></g></g><g data-mml-node="mo" data-latex="=" transform="translate(6271.9,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mi" data-latex="I" transform="translate(7327.6,0)"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mo" data-latex="*" transform="translate(8046.9,0)"><path data-c="2217" d="M404 372C397 372 390 370 385 366L267 279 282 425C285 445 269 462 250 462 231 462 215 445 218 425L233 279 115 366C110 370 103 372 96 372 78 372 63 357 63 339 63 325 70 315 83 309L217 250 83 191C70 185 63 175 63 161 63 143 78 128 96 128 103 128 110 130 115 134L233 221 218 75C215 55 231 39 250 39 269 39 285 55 282 75L267 221 385 134C390 130 397 128 404 128 415 128 424 133 431 142 446 162 435 183 417 191L283 250 417 309C430 315 437 325 437 339 437 357 422 372 404 372Z"></path></g><g data-mml-node="msub" data-latex="f_y" transform="translate(8769.1,0)"><g data-mml-node="mi" data-latex="f"><path data-c="1D453" d="M552 633C552 677 509 705 462 705 400 705 357 665 334 586 329 568 318 517 302 433L237 433C215 433 204 432 204 411 204 400 214 395 235 395L295 395 222 8C211-49 201-91 192-119 180-156 163-175 141-175 126-175 114-171 103-164 135-159 151-140 151-108 151-82 138-69 111-69 77-69 53-99 53-133 53-177 94-205 141-205 166-205 189-195 208-174 240-141 265-94 283-31 294 8 304 46 311 84L369 395 451 395C474 395 484 396 484 419 484 428 474 433 454 433L377 433C383 474 411 625 420 644 430 665 444 675 462 675 477 675 490 671 501 664 470 657 454 639 454 608 454 582 467 569 494 569 528 569 552 599 552 633Z"></path></g><g data-mml-node="mi" transform="translate(523,-150) scale(0.707)" data-latex="y"><path data-c="1D466" d="M163 442C118 442 83 417 58 367 39 328 29 301 29 286 29 277 34 272 45 272 59 272 60 278 64 293 87 372 119 412 160 412 173 412 180 403 180 385 180 369 175 346 164 317 126 214 107 145 107 108 107 32 154-13 231-13 264-13 295-1 323 23 288-109 233-175 158-175 124-175 101-164 89-142 129-140 149-121 149-85 149-60 136-47 109-47 72-47 50-78 50-115 50-170 100-205 158-205 273-205 367-99 392-1L486 377C489 388 490 396 490 401 490 421 479 431 458 431 442 431 429 423 420 408 414 387 409 369 406 354L342 97C332 61 279 16 234 16 196 16 177 41 177 92 177 134 194 198 227 284 240 319 247 343 247 357 247 406 212 442 163 442Z"></path></g></g></g></g></g></svg><svg data-labels="true" preserveAspectRatio="xMaxYMid" viewBox="1278 -772.5 1 1045"><g data-labels="true" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mtd" id="mjx-eqn:2" transform="translate(0,770.5)"><text data-id-align="true"></text><g data-idbox="true" transform="translate(0,-748)"><g data-mml-node="mtext" data-latex="\text{(2)}"><path data-c="28" d="M318-248C327-248 332-243 332-234 332-231 330-227 327-223 275-183 233-117 202-26 175 53 161 131 161 208L161 292C161 369 175 447 202 526 233 617 275 683 327 723 330 726 332 730 332 734 332 743 327 748 318 748 317 748 314 747 311 745 251 699 201 631 160 540 121 453 101 371 101 292L101 208C101 129 121 47 160-40 201-131 251-199 311-245 314-247 317-248 318-248Z"></path><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z" transform="translate(389,0)"></path><path data-c="29" d="M78-245C138-199 188-131 229-40 268 47 288 129 288 208L288 292C288 371 268 453 229 540 188 631 138 699 78 745 75 747 72 748 71 748 62 748 57 743 57 734 57 730 59 726 62 723 114 683 156 617 187 526 214 447 228 369 228 292L228 208C228 131 214 53 187-26 156-117 114-183 62-223 59-227 57-231 57-234 57-243 62-248 71-248 72-248 75-247 78-245Z" transform="translate(889,0)"></path></g></g></g></g></svg></g></g></g></g></svg></mjx-container></p><p>因此,梯度的方向<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.025ex" xmlns="http://www.w3.org/2000/svg" width="1.061ex" height="1.62ex" role="img" focusable="false" viewBox="0 -705 469 716"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="\theta"><g data-mml-node="mi" data-latex="\theta"><path data-c="1D703" d="M164-11C209-11 256 16 302 70 382 163 455 335 455 498 455 539 448 582 434 625 416 678 382 705 333 705 288 705 243 678 196 624 116 532 42 360 42 196 42 94 75-11 164-11M332 675C365 675 382 637 382 560 382 517 372 452 352 367L155 367C180 460 204 529 229 574 266 641 301 675 332 675M145 327 341 327C322 246 299 181 274 132 235 57 199 19 164 19 131 19 115 58 115 135 115 185 125 249 145 327Z"></path></g></g></g></svg></mjx-container>和梯度的大小<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.566ex" xmlns="http://www.w3.org/2000/svg" width="2.337ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 1033 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="\vert g \vert"><g data-mml-node="mo" data-latex="\vert"><path data-c="7C" d="M139-250C152-250 159-242 159-226L159 726C159 742 152 750 139 750 126 750 119 742 119 726L119-226C119-242 126-250 139-250Z"></path></g><g data-mml-node="mi" data-latex="g" transform="translate(278,0)"><path data-c="1D454" d="M15-141C15-184 60-205 150-205 197-205 241-193 280-170 324-144 351-109 362-66L471 373C473 383 474 389 474 392 474 412 463 422 442 422 420 422 406 410 399 387 377 424 347 442 310 442 246 442 189 410 140 346 95 286 72 223 72 158 72 71 123-3 207-3 246-3 282 14 315 47L285-71C256-140 211-175 148-175 122-175 100-173 82-169 103-158 113-141 113-118 113-93 99-80 72-80 40-80 15-109 15-141M356 392C376 371 386 351 386 331 386 330 385 325 383 318L336 129C330 106 313 82 286 60 259 38 233 27 210 27 170 27 150 56 150 114 150 169 184 291 204 327 235 384 270 412 311 412 329 412 344 405 356 392Z"></path></g><g data-mml-node="mo" data-latex="\vert" transform="translate(755,0)"><path data-c="7C" d="M139-250C152-250 159-242 159-226L159 726C159 742 152 750 139 750 126 750 119 742 119 726L119-226C119-242 126-250 139-250Z"></path></g></g></g></svg></mjx-container>计算如下:</p><p><mjx-container class="MathJax" jax="SVG" overflow="overflow" display="true" width="full" style="min-width:39.141ex"><svg style="vertical-align:-2.017ex;min-width:39.141ex" xmlns="http://www.w3.org/2000/svg" width="100%" height="5.165ex" role="img" focusable="false"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(0.0181,-0.0181) translate(0, -1391.4)"><g data-mml-node="math" data-latex="\theta=\arctan\frac{I_y}{I_x},\vert g \vert=\sqrt[2] {I^2_x+I^2_y}"><g data-mml-node="mtable" data-latex="\theta=\arctan\frac{I_y}{I_x},\vert g \vert=\sqrt[2] {I^2_x+I^2_y}" transform="translate(2078,0) translate(-2078,0)"><g transform="translate(0 1391.4) matrix(1 0 0 -1 0 0) scale(55.25)"><svg data-table="true" preserveAspectRatio="xMidYMid" viewBox="6572.1 -1391.4 1 2282.7"><g transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mlabeledtr" transform="translate(0,-47.6)"><g data-mml-node="mtd"><g data-mml-node="mi" data-latex="\theta"><path data-c="1D703" d="M164-11C209-11 256 16 302 70 382 163 455 335 455 498 455 539 448 582 434 625 416 678 382 705 333 705 288 705 243 678 196 624 116 532 42 360 42 196 42 94 75-11 164-11M332 675C365 675 382 637 382 560 382 517 372 452 352 367L155 367C180 460 204 529 229 574 266 641 301 675 332 675M145 327 341 327C322 246 299 181 274 132 235 57 199 19 164 19 131 19 115 58 115 135 115 185 125 249 145 327Z"></path></g><g data-mml-node="mo" data-latex="=" transform="translate(746.8,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mi" data-latex="\arctan" transform="translate(1802.6,0)"><path data-c="61" d="M483 91 483 150 451 150 451 91C451 52 440 32 419 32 399 32 387 57 387 77L387 274C387 309 383 335 376 353 352 412 283 448 213 448 136 448 60 405 60 333 60 300 77 283 110 283 143 283 159 299 159 332 159 361 144 378 113 381 135 406 168 419 211 419 273 419 311 362 311 297L311 264C233 259 174 247 133 228 66 197 32 154 32 97 32 71 42 49 61 32 93 3 137-11 193-11 252-11 294 14 320 65 327 27 355-6 398-6 451-6 483 36 483 91M200 18C154 18 116 52 116 98 116 191 213 231 311 236L311 141C311 74 267 18 200 18Z"></path><path data-c="72" d="M364 378C364 417 327 442 288 442 237 442 198 412 172 351L172 442 28 431 28 393C63 393 84 390 92 384 100 378 104 365 104 342L104 79C104 60 101 48 94 44 87 40 65 38 28 38L28 0 143 3C185 4 228 3 271 0L271 38 247 38C214 38 193 41 186 46 179 51 176 63 176 81L176 232C176 275 184 314 199 347 219 390 248 412 287 413 277 403 272 391 272 377 272 346 287 331 318 331 345 331 364 352 364 378Z" transform="translate(500,0)"></path><path data-c="63" d="M251 416C293 416 325 406 347 386 323 383 306 361 306 338 306 305 322 289 355 289 388 289 404 306 404 339 404 410 327 448 250 448 188 448 137 426 96 380 55 334 34 279 34 216 34 155 55 101 96 56 137 11 187-11 248-11 298-11 337 3 365 32 388 55 403 78 411 102 414 111 415 117 415 121 415 130 409 134 398 134 390 134 385 130 382 122 361 55 320 21 257 21 228 21 200 34 172 61 139 92 123 144 123 218 123 318 161 416 251 416Z" transform="translate(892,0)"></path><path data-c="74" d="M332 126 332 186 300 186 300 128C300 78 282 22 238 22 197 22 177 56 177 124L177 395 316 395 316 433 177 433 177 615 145 615C144 582 141 553 134 527 117 461 78 427 19 424L19 395 102 395 102 126C102 67 120 29 155 10 182-4 207-11 232-11 298-11 332 55 332 126Z" transform="translate(1336,0)"></path><path data-c="61" d="M483 91 483 150 451 150 451 91C451 52 440 32 419 32 399 32 387 57 387 77L387 274C387 309 383 335 376 353 352 412 283 448 213 448 136 448 60 405 60 333 60 300 77 283 110 283 143 283 159 299 159 332 159 361 144 378 113 381 135 406 168 419 211 419 273 419 311 362 311 297L311 264C233 259 174 247 133 228 66 197 32 154 32 97 32 71 42 49 61 32 93 3 137-11 193-11 252-11 294 14 320 65 327 27 355-6 398-6 451-6 483 36 483 91M200 18C154 18 116 52 116 98 116 191 213 231 311 236L311 141C311 74 267 18 200 18Z" transform="translate(1725,0)"></path><path data-c="6E" d="M314 413C359 413 382 378 382 307L382 79C382 60 379 48 372 44 365 40 343 38 306 38L306 0 421 3 535 0 535 38C503 38 482 39 472 42 462 45 458 52 458 64L458 251C458 298 457 331 454 350 444 411 399 442 320 442 257 442 210 412 179 352L179 442 32 431 32 393C68 393 90 390 98 384 106 378 109 365 109 342L109 79C109 60 105 48 98 44 91 40 69 38 32 38L32 0 147 3 261 0 261 38C224 38 203 40 196 44 189 48 185 60 185 79L185 259C185 340 236 413 314 413Z" transform="translate(2225,0)"></path></g><g data-mml-node="mo" transform="translate(4583.6,0)"><path data-c="2061" d=""></path></g><g data-mml-node="mfrac" data-latex="\frac{I_y}{I_x}" transform="translate(4750.2,0)"><g data-mml-node="msub" data-latex="I_y" transform="translate(249,755)"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mi" transform="translate(473,-150) scale(0.707)" data-latex="y"><path data-c="1D466" d="M163 442C118 442 83 417 58 367 39 328 29 301 29 286 29 277 34 272 45 272 59 272 60 278 64 293 87 372 119 412 160 412 173 412 180 403 180 385 180 369 175 346 164 317 126 214 107 145 107 108 107 32 154-13 231-13 264-13 295-1 323 23 288-109 233-175 158-175 124-175 101-164 89-142 129-140 149-121 149-85 149-60 136-47 109-47 72-47 50-78 50-115 50-170 100-205 158-205 273-205 367-99 392-1L486 377C489 388 490 396 490 401 490 421 479 431 458 431 442 431 429 423 420 408 414 387 409 369 406 354L342 97C332 61 279 16 234 16 196 16 177 41 177 92 177 134 194 198 227 284 240 319 247 343 247 357 247 406 212 442 163 442Z"></path></g></g><g data-mml-node="msub" data-latex="I_x" transform="translate(220,-686)"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mi" transform="translate(473,-150) scale(0.707)" data-latex="x"><path data-c="1D465" d="M527 373C527 419 482 442 432 442 389 442 355 419 329 373 308 419 273 442 222 442 173 442 133 419 101 374 74 335 60 306 60 287 60 278 65 273 75 273 84 273 90 278 92 287 111 345 153 413 220 413 253 413 269 392 269 351 269 330 251 252 216 118 199 51 169 18 126 18 112 18 99 21 88 26 114 36 127 54 127 80 127 106 114 119 87 119 54 119 29 91 29 58 29 12 76-11 125-11 167-11 201 12 228 58 247 12 283-11 335-11 383-11 423 12 455 57 482 96 496 125 496 144 496 153 491 158 481 158 472 158 467 153 464 144 447 87 402 18 337 18 304 18 287 38 287 79 287 92 292 120 303 165L337 300C356 375 387 413 431 413 445 413 458 410 469 405 442 396 429 378 429 351 429 325 443 312 470 312 502 312 527 341 527 373Z"></path></g></g><rect width="1127.5" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" data-latex="," transform="translate(6117.7,0)"><path data-c="2C" d="M139 106C107 106 86 82 86 50 86 20 109-5 139-5 153-5 165-1 174 8L175 0C175-63 154-117 112-160 105-168 101-174 101-178 101-188 105-193 114-193 123-193 135-181 152-158 186-110 203-57 203 0 203 53 185 106 139 106Z"></path></g><g data-mml-node="mo" data-latex="\vert" transform="translate(6562.4,0)"><path data-c="7C" d="M139-250C152-250 159-242 159-226L159 726C159 742 152 750 139 750 126 750 119 742 119 726L119-226C119-242 126-250 139-250Z"></path></g><g data-mml-node="mi" data-latex="g" transform="translate(6840.4,0)"><path data-c="1D454" d="M15-141C15-184 60-205 150-205 197-205 241-193 280-170 324-144 351-109 362-66L471 373C473 383 474 389 474 392 474 412 463 422 442 422 420 422 406 410 399 387 377 424 347 442 310 442 246 442 189 410 140 346 95 286 72 223 72 158 72 71 123-3 207-3 246-3 282 14 315 47L285-71C256-140 211-175 148-175 122-175 100-173 82-169 103-158 113-141 113-118 113-93 99-80 72-80 40-80 15-109 15-141M356 392C376 371 386 351 386 331 386 330 385 325 383 318L336 129C330 106 313 82 286 60 259 38 233 27 210 27 170 27 150 56 150 114 150 169 184 291 204 327 235 384 270 412 311 412 329 412 344 405 356 392Z"></path></g><g data-mml-node="mo" data-latex="\vert" transform="translate(7317.4,0)"><path data-c="7C" d="M139-250C152-250 159-242 159-226L159 726C159 742 152 750 139 750 126 750 119 742 119 726L119-226C119-242 126-250 139-250Z"></path></g><g data-mml-node="mo" data-latex="=" transform="translate(7873.1,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mroot" data-latex="\sqrt[2] {I^2_x+I^2_y}" transform="translate(8928.9,0)"><g data-mml-node="mo" transform="translate(0,49.7)"><path data-c="221A" d="M1015 1105C1018 1116 1020 1123 1020 1126 1020 1142 1012 1150 996 1150 985 1150 976 1140 970 1121L465-483 254 258 108 87 130 67 195 144 422-650C460-650 463-651 471-623Z"></path></g><g data-mml-node="mn" transform="translate(362,389.3) scale(0.5)" data-latex="2"><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z"></path></g><g><g data-mml-node="mrow" data-latex="I^2 _x+I^2 _y" transform="translate(1020,0)"><g data-mml-node="msubsup" data-latex="I^2_x"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mn" transform="translate(582.9,289) scale(0.707)" data-latex="2"><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z"></path></g><g data-mml-node="mi" transform="translate(473,-247) scale(0.707)" data-latex="x"><path data-c="1D465" d="M527 373C527 419 482 442 432 442 389 442 355 419 329 373 308 419 273 442 222 442 173 442 133 419 101 374 74 335 60 306 60 287 60 278 65 273 75 273 84 273 90 278 92 287 111 345 153 413 220 413 253 413 269 392 269 351 269 330 251 252 216 118 199 51 169 18 126 18 112 18 99 21 88 26 114 36 127 54 127 80 127 106 114 119 87 119 54 119 29 91 29 58 29 12 76-11 125-11 167-11 201 12 228 58 247 12 283-11 335-11 383-11 423 12 455 57 482 96 496 125 496 144 496 153 491 158 481 158 472 158 467 153 464 144 447 87 402 18 337 18 304 18 287 38 287 79 287 92 292 120 303 165L337 300C356 375 387 413 431 413 445 413 458 410 469 405 442 396 429 378 429 351 429 325 443 312 470 312 502 312 527 341 527 373Z"></path></g></g><g data-mml-node="mo" data-latex="+" transform="translate(1208.6,0)"><path data-c="2B" d="M698 274 413 274 413 559C413 575 405 583 389 583 373 583 365 575 365 559L365 274 80 274C64 274 56 266 56 250 56 234 64 226 80 226L365 226 365-59C365-75 373-83 389-83 405-83 413-75 413-59L413 226 698 226C714 226 722 234 722 250 722 263 711 274 698 274Z"></path></g><g data-mml-node="msubsup" data-latex="I^2_y" transform="translate(2208.8,0)"><g data-mml-node="mi" data-latex="I"><path data-c="1D43C" d="M497 667C497 678 491 683 478 683L349 680 218 683C202 684 194 676 194 659 194 649 205 644 226 644 269 644 290 639 290 630 290 625 289 620 288 615L155 82C150 60 140 47 125 42 118 40 100 39 69 39 44 39 34 38 34 15 34 5 40 0 53 0L181 3 313 0C329-1 337 7 337 23 337 39 325 39 303 39 264 39 240 37 240 53 240 58 241 65 244 75L376 602C381 623 391 636 406 641 413 643 431 644 462 644 486 644 497 645 497 667Z"></path></g><g data-mml-node="mn" transform="translate(582.9,289) scale(0.707)" data-latex="2"><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z"></path></g><g data-mml-node="mi" transform="translate(473,-247) scale(0.707)" data-latex="y"><path data-c="1D466" d="M163 442C118 442 83 417 58 367 39 328 29 301 29 286 29 277 34 272 45 272 59 272 60 278 64 293 87 372 119 412 160 412 173 412 180 403 180 385 180 369 175 346 164 317 126 214 107 145 107 108 107 32 154-13 231-13 264-13 295-1 323 23 288-109 233-175 158-175 124-175 101-164 89-142 129-140 149-121 149-85 149-60 136-47 109-47 72-47 50-78 50-115 50-170 100-205 158-205 273-205 367-99 392-1L486 377C489 388 490 396 490 401 490 421 479 431 458 431 442 431 429 423 420 408 414 387 409 369 406 354L342 97C332 61 279 16 234 16 196 16 177 41 177 92 177 134 194 198 227 284 240 319 247 343 247 357 247 406 212 442 163 442Z"></path></g></g></g></g><rect width="3195.3" height="60" x="1020" y="1139.7"></rect></g></g></g></g></svg><svg data-labels="true" preserveAspectRatio="xMaxYMid" viewBox="1278 -1391.4 1 2282.7"><g data-labels="true" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mtd" id="mjx-eqn:3" transform="translate(0,700.4)"><text data-id-align="true"></text><g data-idbox="true" transform="translate(0,-748)"><g data-mml-node="mtext" data-latex="\text{(3)}"><path data-c="28" d="M318-248C327-248 332-243 332-234 332-231 330-227 327-223 275-183 233-117 202-26 175 53 161 131 161 208L161 292C161 369 175 447 202 526 233 617 275 683 327 723 330 726 332 730 332 734 332 743 327 748 318 748 317 748 314 747 311 745 251 699 201 631 160 540 121 453 101 371 101 292L101 208C101 129 121 47 160-40 201-131 251-199 311-245 314-247 317-248 318-248Z"></path><path data-c="33" d="M303 353C369 378 431 441 431 526 431 569 410 604 369 631 333 654 292 666 246 666 201 666 162 654 127 631 88 605 68 571 68 528 68 495 90 472 122 472 154 472 176 495 176 527 176 560 157 578 119 580 145 615 186 633 242 633 302 633 332 598 332 527 332 485 324 450 309 421 282 373 245 364 183 364 171 362 165 357 165 348 165 333 172 333 192 333L235 333C310 333 348 280 348 173 348 88 317 14 241 14 176 14 128 36 99 80 134 79 160 105 160 139 160 173 135 198 101 198 62 198 42 178 42 137 42 88 64 49 108 18 147-9 193-22 244-22 301-22 350-3 393 34 436 71 457 117 457 173 457 267 383 332 303 353Z" transform="translate(389,0)"></path><path data-c="29" d="M78-245C138-199 188-131 229-40 268 47 288 129 288 208L288 292C288 371 268 453 229 540 188 631 138 699 78 745 75 747 72 748 71 748 62 748 57 743 57 734 57 730 59 726 62 723 114 683 156 617 187 526 214 447 228 369 228 292L228 208C228 131 214 53 187-26 156-117 114-183 62-223 59-227 57-231 57-234 57-243 62-248 71-248 72-248 75-247 78-245Z" transform="translate(889,0)"></path></g></g></g></g></svg></g></g></g></g></svg></mjx-container></p><ul><li>CNN 也在层中使用卷积运算,然而主要区别在于不使用手工设计的滤波器,CNN 使用可训练的滤波器,使其具有高度的自适应性。</li><li>CNN 也在层中使用卷积运算,然而主要区别在于不使用手工设计的滤波器,CNN 使用可训练的滤波器,使其具有高度的自适应性。</li></ul><p><img src="https://static.mhuig.top/npm/mhgoos@0.0.1652000153902/20191220133534.webp" class="lazyload" data-srcset="https://static.mhuig.top/npm/mhgoos@0.0.1652000153902/20191220133534.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="HOG描述符"></p><h3 id="2-单元方向直方图"><a href="#2-单元方向直方图" class="headerlink" title="2.单元方向直方图"></a>2. 单元方向直方图</h3><p>第二步是计算单元直方图。首先将图像分成小的(通常是 8X8 像素)单元。每个单元都有固定数量的梯度方向区间,他们均匀分布在<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.566ex" xmlns="http://www.w3.org/2000/svg" width="1.131ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 500 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="0 -180^。"><g data-mml-node="mn" data-latex="0"><path data-c="30" d="M249-22C390-22 460 92 460 320 460 473 428 575 365 625 330 652 291 666 250 666 109 666 39 551 39 320 39 136 88-22 249-22M361 524C368 489 371 425 371 332 371 240 367 172 360 128 347 48 310 8 249 8 226 8 203 17 182 34 155 57 139 104 132 176 129 201 128 253 128 332 128 419 131 480 136 513 145 568 163 603 191 618 213 630 232 636 249 636 314 636 350 583 361 524Z"></path></g></g></g></svg><mjx-break size="3"></mjx-break><svg style="vertical-align:-.566ex" xmlns="http://www.w3.org/2000/svg" width="7.444ex" height="2.655ex" role="img" focusable="false" viewBox="0 -923.4 3290.3 1173.4"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="0 -180^。"><g data-mml-node="mo" data-latex="-"><path data-c="2212" d="M698 270 80 270C64 270 56 263 56 250 56 237 64 230 80 230L698 230C714 230 722 237 722 250 722 262 710 270 698 270Z"></path></g><g data-mml-node="msup" data-latex="80^。" transform="translate(1000.2,0)"><g data-mml-node="mn" data-latex="80"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path><path data-c="38" d="M250 666C201 666 158 650 122 618 86 586 68 546 68 497 68 456 83 419 113 386 120 378 142 361 179 335 88 288 42 227 42 153 42 100 64 57 107 24 147-7 194-22 249-22 305-22 354-4 395 32 436 68 457 115 457 170 457 216 441 257 408 294 396 307 365 330 316 361 393 402 431 454 431 515 431 606 344 666 250 666M379 515C379 463 348 418 286 381L167 459C136 479 120 505 120 536 120 596 185 633 249 633 318 633 379 584 379 515M250 14C168 14 99 73 99 153 99 220 136 274 210 315L328 240C376 209 400 174 400 134 400 62 325 14 250 14Z" transform="translate(500,0)"></path><path data-c="30" d="M249-22C390-22 460 92 460 320 460 473 428 575 365 625 330 652 291 666 250 666 109 666 39 551 39 320 39 136 88-22 249-22M361 524C368 489 371 425 371 332 371 240 367 172 360 128 347 48 310 8 249 8 226 8 203 17 182 34 155 57 139 104 132 176 129 201 128 253 128 332 128 419 131 480 136 513 145 568 163 603 191 618 213 630 232 636 249 636 314 636 350 583 361 524Z" transform="translate(1000,0)"></path></g><g data-mml-node="TeXAtom" transform="translate(1533,393.1) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mo" data-latex="。"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">。</text></g></g></g></g></g></svg></mjx-container>或<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.566ex" xmlns="http://www.w3.org/2000/svg" width="1.131ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 500 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="0-360^。"><g data-mml-node="mn" data-latex="0"><path data-c="30" d="M249-22C390-22 460 92 460 320 460 473 428 575 365 625 330 652 291 666 250 666 109 666 39 551 39 320 39 136 88-22 249-22M361 524C368 489 371 425 371 332 371 240 367 172 360 128 347 48 310 8 249 8 226 8 203 17 182 34 155 57 139 104 132 176 129 201 128 253 128 332 128 419 131 480 136 513 145 568 163 603 191 618 213 630 232 636 249 636 314 636 350 583 361 524Z"></path></g></g></g></svg><mjx-break size="3"></mjx-break><svg style="vertical-align:-.566ex" xmlns="http://www.w3.org/2000/svg" width="7.444ex" height="2.655ex" role="img" focusable="false" viewBox="0 -923.4 3290.3 1173.4"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="0-360^。"><g data-mml-node="mo" data-latex="-"><path data-c="2212" d="M698 270 80 270C64 270 56 263 56 250 56 237 64 230 80 230L698 230C714 230 722 237 722 250 722 262 710 270 698 270Z"></path></g><g data-mml-node="msup" data-latex="60^。" transform="translate(1000.2,0)"><g data-mml-node="mn" data-latex="60"><path data-c="33" d="M303 353C369 378 431 441 431 526 431 569 410 604 369 631 333 654 292 666 246 666 201 666 162 654 127 631 88 605 68 571 68 528 68 495 90 472 122 472 154 472 176 495 176 527 176 560 157 578 119 580 145 615 186 633 242 633 302 633 332 598 332 527 332 485 324 450 309 421 282 373 245 364 183 364 171 362 165 357 165 348 165 333 172 333 192 333L235 333C310 333 348 280 348 173 348 88 317 14 241 14 176 14 128 36 99 80 134 79 160 105 160 139 160 173 135 198 101 198 62 198 42 178 42 137 42 88 64 49 108 18 147-9 193-22 244-22 301-22 350-3 393 34 436 71 457 117 457 173 457 267 383 332 303 353Z"></path><path data-c="36" d="M383 504C416 504 432 521 432 555 432 627 378 666 304 666 221 666 155 627 106 548 63 480 42 403 42 316 42 189 65 100 112 47 152 1 198-22 251-22 312-22 362 1 401 47 438 91 457 144 457 205 457 266 439 318 403 361 365 407 316 431 257 431 205 431 165 402 138 346L138 352C138 465 166 561 226 605 252 624 279 633 306 633 342 633 368 623 385 602 351 602 334 583 334 553 334 525 355 504 383 504M344 340C355 317 361 272 361 206 361 141 356 98 345 76 325 35 294 14 251 14 222 14 200 24 184 44 171 60 162 74 158 85 146 116 140 163 140 227 140 255 144 282 151 308 164 355 201 399 256 399 295 399 325 379 344 340Z" transform="translate(500,0)"></path><path data-c="30" d="M249-22C390-22 460 92 460 320 460 473 428 575 365 625 330 652 291 666 250 666 109 666 39 551 39 320 39 136 88-22 249-22M361 524C368 489 371 425 371 332 371 240 367 172 360 128 347 48 310 8 249 8 226 8 203 17 182 34 155 57 139 104 132 176 129 201 128 253 128 332 128 419 131 480 136 513 145 568 163 603 191 618 213 630 232 636 249 636 314 636 350 583 361 524Z" transform="translate(1000,0)"></path></g><g data-mml-node="TeXAtom" transform="translate(1533,393.1) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mo" data-latex="。"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">。</text></g></g></g></g></g></svg></mjx-container>之间,具体取决于梯度是有符号的还是无符号的。</p><p>单元内的每一个像素基于该像素处梯度的模对每一个梯度方向区间偷加权票。对于投票权重,可以是梯度大小,梯度大小的平方根或梯度大小的平方。</p><h3 id="3-描述符块"><a href="#3-描述符块" class="headerlink" title="3.描述符块"></a>3. 描述符块</h3><p>为了处理光照和对比度的变化,通过将单元组合在一起形成更大的空间上相连的块,局部的归一化梯度强度。然后,HOG 描述符是来自所有块区域内的、归一化的单元直方图部件的向量。</p><h3 id="4-块的归一化"><a href="#4-块的归一化" class="headerlink" title="4.块的归一化"></a>4. 块的归一化</h3><p>最后一步是块描述符的归一化。设 v 是包含给定块中所有直方图的非归一化向量,‖为它的 (k) 阶范数((k = 1,2) ),(\epsilon) 是一个小常量。归一化因子可以是如下之一:</p><p><mjx-container class="MathJax" jax="SVG" overflow="overflow" display="true" width="full" style="min-width:34.461ex"><svg style="vertical-align:-2.759ex;min-width:34.461ex" xmlns="http://www.w3.org/2000/svg" width="100%" height="6.649ex" role="img" focusable="false"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(0.0181,-0.0181) translate(0, -1719.5)"><g data-mml-node="math" data-latex="L2范数:v=\frac{v}{\sqrt{\|v\|^2_2+\epsilon^2} } "><g data-mml-node="mtable" data-latex="L2范数:v=\frac{v}{\sqrt{\|v\|^2_2+\epsilon^2} } " transform="translate(2078,0) translate(-2078,0)"><g transform="translate(0 1719.5) matrix(1 0 0 -1 0 0) scale(55.25)"><svg data-table="true" preserveAspectRatio="xMidYMid" viewBox="5537.8 -1719.5 1 2939"><g transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mlabeledtr" transform="translate(0,601.5)"><g data-mml-node="mtd"><g data-mml-node="mi" data-latex="L"><path data-c="1D43F" d="M520 667C520 678 513 683 500 683L354 680 223 683C208 684 200 676 200 659 200 652 203 647 209 646 218 645 226 644 231 644 262 643 279 641 284 640 289 639 292 636 292 631 292 629 291 623 288 613L156 82C150 60 140 47 125 42 119 40 101 39 70 39 49 39 39 31 39 15 39 5 49 0 70 0L527 0C552 0 554 0 561 19L639 233C642 240 643 245 643 248 643 258 638 263 627 263 617 263 612 254 607 240 588 191 570 154 555 131 518 75 455 39 363 39L270 39C259 39 252 39 249 40 242 40 239 42 239 45 239 47 241 54 244 67L377 601C383 624 396 637 415 642 421 643 442 644 478 644 506 644 520 644 520 667Z"></path></g><g data-mml-node="mn" data-latex="2" transform="translate(681,0)"><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z"></path></g><g data-mml-node="mi" data-latex="范" transform="translate(1181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">范</text></g><g data-mml-node="mi" data-latex="数" transform="translate(2181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">数</text></g><g data-mml-node="mo" data-latex=":" transform="translate(3458.8,0)"><path data-c="3A" d="M192 375C192 405 169 431 139 431 109 431 86 405 86 375 86 345 109 319 139 319 169 319 192 345 192 375M192 56C192 86 169 112 139 112 109 112 86 86 86 56 86 26 109 0 139 0 169 0 192 26 192 56Z"></path></g><g data-mml-node="mi" data-latex="v" transform="translate(4014.6,0)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="mo" data-latex="=" transform="translate(4777.3,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mfrac" data-latex="\frac{v}{\sqrt{\|v\|^2_2+\epsilon^2} }" transform="translate(5833.1,0)"><g data-mml-node="mi" data-latex="v" transform="translate(2378.8,676)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="msqrt" data-latex="\sqrt{\|v\|^2_2+\epsilon^2} " transform="translate(220,-1251.6)"><g data-mml-node="mo" transform="translate(0,81.6)"><path data-c="221A" d="M1015 1105C1018 1116 1020 1123 1020 1126 1020 1142 1012 1150 996 1150 985 1150 976 1140 970 1121L465-483 254 258 108 87 130 67 195 144 422-650C460-650 463-651 471-623Z"></path></g><g transform="translate(1020,0)"><g data-mml-node="mo" data-latex="\|"><path data-c="2016" d="M264-250C279-250 287-242 287-226L287 726C287 742 279 750 264 750 249 750 241 742 241 726L241-226C241-242 249-250 264-250M134-250C149-250 157-242 157-226L157 726C157 742 149 750 134 750 119 750 111 742 111 726L111-226C111-242 119-250 134-250Z"></path></g><g data-mml-node="mi" data-latex="v" transform="translate(398,0)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="msubsup" data-latex="\|^2_2" transform="translate(883,0)"><g data-mml-node="mo" data-latex="\|"><path data-c="2016" d="M264-250C279-250 287-242 287-226L287 726C287 742 279 750 264 750 249 750 241 742 241 726L241-226C241-242 249-250 264-250M134-250C149-250 157-242 157-226L157 726C157 742 149 750 134 750 119 750 111 742 111 726L111-226C111-242 119-250 134-250Z"></path></g><g data-mml-node="mn" transform="translate(431,353.6) scale(0.707)" data-latex="2"><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z"></path></g><g data-mml-node="mn" transform="translate(431,-297.3) scale(0.707)" data-latex="2"><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z"></path></g></g><g data-mml-node="mo" data-latex="+" transform="translate(1939.8,0)"><path data-c="2B" d="M698 274 413 274 413 559C413 575 405 583 389 583 373 583 365 575 365 559L365 274 80 274C64 274 56 266 56 250 56 234 64 226 80 226L365 226 365-59C365-75 373-83 389-83 405-83 413-75 413-59L413 226 698 226C714 226 722 234 722 250 722 263 711 274 698 274Z"></path></g><g data-mml-node="msup" data-latex="\epsilon^2" transform="translate(2940,0)"><g data-mml-node="mi" data-latex="\epsilon"><path data-c="1D716" d="M228-11C268-11 305 0 339 22 352 31 358 38 358 43 358 55 353 61 344 61L330 54C293 30 260 18 230 18 163 18 128 72 128 142 128 168 131 195 138 222L296 222C321 222 333 229 333 242 333 254 322 260 301 260L148 260C175 349 229 393 310 393L340 393C364 393 376 400 376 413 376 425 365 431 343 431L309 431C238 431 176 407 124 358 72 309 47 250 47 179 47 71 120-11 228-11Z"></path></g><g data-mml-node="mn" transform="translate(439,289) scale(0.707)" data-latex="2"><path data-c="32" d="M237 666C186 666 143 648 106 612 69 576 50 534 50 483 50 449 75 424 106 424 136 424 161 450 161 480 161 513 137 536 105 536 102 536 100 536 98 535 117 584 161 627 224 627 306 627 352 556 352 470 352 403 318 331 250 255L62 43C49 28 50 29 50 0L421 0 450 180 417 180C409 129 402 100 396 91 391 86 361 84 306 84L139 84 236 179C304 243 390 312 419 365 439 400 449 435 449 470 449 588 357 666 237 666Z"></path></g></g></g><rect width="3782.6" height="60" x="1020" y="1171.6"></rect></g><rect width="5002.6" height="60" x="120" y="220"></rect></g></g></g></g></svg><svg data-labels="true" preserveAspectRatio="xMaxYMid" viewBox="1278 -1719.5 1 2939"><g data-labels="true" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mtd" id="mjx-eqn:4" transform="translate(0,1349.5)"><text data-id-align="true"></text><g data-idbox="true" transform="translate(0,-748)"><g data-mml-node="mtext" data-latex="\text{(4)}"><path data-c="28" d="M318-248C327-248 332-243 332-234 332-231 330-227 327-223 275-183 233-117 202-26 175 53 161 131 161 208L161 292C161 369 175 447 202 526 233 617 275 683 327 723 330 726 332 730 332 734 332 743 327 748 318 748 317 748 314 747 311 745 251 699 201 631 160 540 121 453 101 371 101 292L101 208C101 129 121 47 160-40 201-131 251-199 311-245 314-247 317-248 318-248Z"></path><path data-c="34" d="M353 677C344 677 336 672 330 663L28 199 28 163 289 163 289 81C289 63 285 51 278 46 271 41 252 39 219 39L194 39 194 0C223 2 269 3 331 3 393 3 439 2 468 0L468 39 443 39C410 39 391 41 384 46 377 51 373 63 373 81L373 163 471 163 471 202 373 202 373 660C373 670 366 677 353 677M295 553 295 202 67 202Z" transform="translate(389,0)"></path><path data-c="29" d="M78-245C138-199 188-131 229-40 268 47 288 129 288 208L288 292C288 371 268 453 229 540 188 631 138 699 78 745 75 747 72 748 71 748 62 748 57 743 57 734 57 730 59 726 62 723 114 683 156 617 187 526 214 447 228 369 228 292L228 208C228 131 214 53 187-26 156-117 114-183 62-223 59-227 57-231 57-234 57-243 62-248 71-248 72-248 75-247 78-245Z" transform="translate(889,0)"></path></g></g></g></g></svg></g></g></g></g></svg></mjx-container><br>或者</p><p><mjx-container class="MathJax" jax="SVG" overflow="overflow" display="true" width="full" style="min-width:31.165ex"><svg style="vertical-align:-1.785ex;min-width:31.165ex" xmlns="http://www.w3.org/2000/svg" width="100%" height="4.701ex" role="img" focusable="false"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(0.0181,-0.0181) translate(0, -1289)"><g data-mml-node="math" data-latex="L1范数:v=\frac{v}{\|v\|_1+\epsilon}"><g data-mml-node="mtable" data-latex="L1范数:v=\frac{v}{\|v\|_1+\epsilon}" transform="translate(2078,0) translate(-2078,0)"><g transform="translate(0 1289) matrix(1 0 0 -1 0 0) scale(55.25)"><svg data-table="true" preserveAspectRatio="xMidYMid" viewBox="4809.6 -1289 1 2078"><g transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mlabeledtr" transform="translate(0,171)"><g data-mml-node="mtd"><g data-mml-node="mi" data-latex="L"><path data-c="1D43F" d="M520 667C520 678 513 683 500 683L354 680 223 683C208 684 200 676 200 659 200 652 203 647 209 646 218 645 226 644 231 644 262 643 279 641 284 640 289 639 292 636 292 631 292 629 291 623 288 613L156 82C150 60 140 47 125 42 119 40 101 39 70 39 49 39 39 31 39 15 39 5 49 0 70 0L527 0C552 0 554 0 561 19L639 233C642 240 643 245 643 248 643 258 638 263 627 263 617 263 612 254 607 240 588 191 570 154 555 131 518 75 455 39 363 39L270 39C259 39 252 39 249 40 242 40 239 42 239 45 239 47 241 54 244 67L377 601C383 624 396 637 415 642 421 643 442 644 478 644 506 644 520 644 520 667Z"></path></g><g data-mml-node="mn" data-latex="1" transform="translate(681,0)"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g><g data-mml-node="mi" data-latex="范" transform="translate(1181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">范</text></g><g data-mml-node="mi" data-latex="数" transform="translate(2181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">数</text></g><g data-mml-node="mo" data-latex=":" transform="translate(3458.8,0)"><path data-c="3A" d="M192 375C192 405 169 431 139 431 109 431 86 405 86 375 86 345 109 319 139 319 169 319 192 345 192 375M192 56C192 86 169 112 139 112 109 112 86 86 86 56 86 26 109 0 139 0 169 0 192 26 192 56Z"></path></g><g data-mml-node="mi" data-latex="v" transform="translate(4014.6,0)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="mo" data-latex="=" transform="translate(4777.3,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="mfrac" data-latex="\frac{v}{\|v\|_1+\epsilon}" transform="translate(5833.1,0)"><g data-mml-node="mi" data-latex="v" transform="translate(1650.5,676)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="mrow" data-latex="\|v\|_1 +\epsilon" transform="translate(220,-710)"><g data-mml-node="mo" data-latex="\|"><path data-c="2016" d="M264-250C279-250 287-242 287-226L287 726C287 742 279 750 264 750 249 750 241 742 241 726L241-226C241-242 249-250 264-250M134-250C149-250 157-242 157-226L157 726C157 742 149 750 134 750 119 750 111 742 111 726L111-226C111-242 119-250 134-250Z"></path></g><g data-mml-node="mi" data-latex="v" transform="translate(398,0)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="msub" data-latex="\|_1" transform="translate(883,0)"><g data-mml-node="mo" data-latex="\|"><path data-c="2016" d="M264-250C279-250 287-242 287-226L287 726C287 742 279 750 264 750 249 750 241 742 241 726L241-226C241-242 249-250 264-250M134-250C149-250 157-242 157-226L157 726C157 742 149 750 134 750 119 750 111 742 111 726L111-226C111-242 119-250 134-250Z"></path></g><g data-mml-node="mn" transform="translate(431,-150) scale(0.707)" data-latex="1"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g></g><g data-mml-node="mo" data-latex="+" transform="translate(1939.8,0)"><path data-c="2B" d="M698 274 413 274 413 559C413 575 405 583 389 583 373 583 365 575 365 559L365 274 80 274C64 274 56 266 56 250 56 234 64 226 80 226L365 226 365-59C365-75 373-83 389-83 405-83 413-75 413-59L413 226 698 226C714 226 722 234 722 250 722 263 711 274 698 274Z"></path></g><g data-mml-node="mi" data-latex="\epsilon" transform="translate(2940,0)"><path data-c="1D716" d="M228-11C268-11 305 0 339 22 352 31 358 38 358 43 358 55 353 61 344 61L330 54C293 30 260 18 230 18 163 18 128 72 128 142 128 168 131 195 138 222L296 222C321 222 333 229 333 242 333 254 322 260 301 260L148 260C175 349 229 393 310 393L340 393C364 393 376 400 376 413 376 425 365 431 343 431L309 431C238 431 176 407 124 358 72 309 47 250 47 179 47 71 120-11 228-11Z"></path></g></g><rect width="3546" height="60" x="120" y="220"></rect></g></g></g></g></svg><svg data-labels="true" preserveAspectRatio="xMaxYMid" viewBox="1278 -1289 1 2078"><g data-labels="true" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mtd" id="mjx-eqn:5" transform="translate(0,919)"><text data-id-align="true"></text><g data-idbox="true" transform="translate(0,-748)"><g data-mml-node="mtext" data-latex="\text{(5)}"><path data-c="28" d="M318-248C327-248 332-243 332-234 332-231 330-227 327-223 275-183 233-117 202-26 175 53 161 131 161 208L161 292C161 369 175 447 202 526 233 617 275 683 327 723 330 726 332 730 332 734 332 743 327 748 318 748 317 748 314 747 311 745 251 699 201 631 160 540 121 453 101 371 101 292L101 208C101 129 121 47 160-40 201-131 251-199 311-245 314-247 317-248 318-248Z"></path><path data-c="35" d="M118 315C123 315 129 319 134 326 164 371 205 393 257 393 292 393 319 373 337 332 348 305 354 264 354 209 354 146 346 102 331 76 306 35 272 14 229 14 162 14 109 62 91 114 94 113 96 114 100 114 130 114 155 137 155 167 155 198 130 219 100 219 65 219 50 200 50 163 50 63 131-22 231-22 292-22 344 0 386 44 428 88 449 141 449 202 449 260 432 310 398 353 361 400 315 423 259 423 212 423 171 408 138 378L138 556C165 548 191 544 218 544 264 544 304 555 338 578 369 597 390 616 402 634 408 642 411 648 411 651 411 661 406 666 396 666 341 645 294 634 256 634 211 634 168 643 127 662 122 664 118 665 114 665 105 665 100 656 100 637L100 345C100 324 100 315 118 315Z" transform="translate(389,0)"></path><path data-c="29" d="M78-245C138-199 188-131 229-40 268 47 288 129 288 208L288 292C288 371 268 453 229 540 188 631 138 699 78 745 75 747 72 748 71 748 62 748 57 743 57 734 57 730 59 726 62 723 114 683 156 617 187 526 214 447 228 369 228 292L228 208C228 131 214 53 187-26 156-117 114-183 62-223 59-227 57-231 57-234 57-243 62-248 71-248 72-248 75-247 78-245Z" transform="translate(889,0)"></path></g></g></g></g></svg></g></g></g></g></svg></mjx-container><br>或者</p><p><mjx-container class="MathJax" jax="SVG" overflow="overflow" display="true" width="full" style="min-width:40.26ex"><svg style="vertical-align:-2.218ex;min-width:40.26ex" xmlns="http://www.w3.org/2000/svg" width="100%" height="5.568ex" role="img" focusable="false"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(0.0181,-0.0181) translate(0, -1480.5)"><g data-mml-node="math" data-latex="L1范数平方根:v=\sqrt{\frac{v}{\|v\|_1+\epsilon} } "><g data-mml-node="mtable" data-latex="L1范数平方根:v=\sqrt{\frac{v}{\|v\|_1+\epsilon} } " transform="translate(2078,0) translate(-2078,0)"><g transform="translate(0 1480.5) matrix(1 0 0 -1 0 0) scale(55.25)"><svg data-table="true" preserveAspectRatio="xMidYMid" viewBox="6819.6 -1480.5 1 2461"><g transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mlabeledtr" transform="translate(0,25.8)"><g data-mml-node="mtd"><g data-mml-node="mi" data-latex="L"><path data-c="1D43F" d="M520 667C520 678 513 683 500 683L354 680 223 683C208 684 200 676 200 659 200 652 203 647 209 646 218 645 226 644 231 644 262 643 279 641 284 640 289 639 292 636 292 631 292 629 291 623 288 613L156 82C150 60 140 47 125 42 119 40 101 39 70 39 49 39 39 31 39 15 39 5 49 0 70 0L527 0C552 0 554 0 561 19L639 233C642 240 643 245 643 248 643 258 638 263 627 263 617 263 612 254 607 240 588 191 570 154 555 131 518 75 455 39 363 39L270 39C259 39 252 39 249 40 242 40 239 42 239 45 239 47 241 54 244 67L377 601C383 624 396 637 415 642 421 643 442 644 478 644 506 644 520 644 520 667Z"></path></g><g data-mml-node="mn" data-latex="1" transform="translate(681,0)"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g><g data-mml-node="mi" data-latex="范" transform="translate(1181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">范</text></g><g data-mml-node="mi" data-latex="数" transform="translate(2181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">数</text></g><g data-mml-node="mi" data-latex="平" transform="translate(3181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">平</text></g><g data-mml-node="mi" data-latex="方" transform="translate(4181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">方</text></g><g data-mml-node="mi" data-latex="根" transform="translate(5181,0)"><text data-variant="normal" transform="scale(1,-1)" font-size="884px" font-family="serif">根</text></g><g data-mml-node="mo" data-latex=":" transform="translate(6458.8,0)"><path data-c="3A" d="M192 375C192 405 169 431 139 431 109 431 86 405 86 375 86 345 109 319 139 319 169 319 192 345 192 375M192 56C192 86 169 112 139 112 109 112 86 86 86 56 86 26 109 0 139 0 169 0 192 26 192 56Z"></path></g><g data-mml-node="mi" data-latex="v" transform="translate(7014.6,0)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="mo" data-latex="=" transform="translate(7777.3,0)"><path data-c="3D" d="M698 367 80 367C64 367 56 359 56 344 56 329 64 321 80 321L698 321C714 321 722 329 722 344 722 356 711 367 698 367M698 179 80 179C64 179 56 171 56 156 56 141 64 133 80 133L698 133C714 133 722 141 722 156 722 169 711 179 698 179Z"></path></g><g data-mml-node="msqrt" data-latex="\sqrt{\frac{v}{\|v\|_1+\epsilon} }" transform="translate(8833.1,0)"><g data-mml-node="mo" transform="translate(0,-55.3)"><path data-c="221A" d="M467-733 254 260 119 47C114 40 111 36 111 33 111 29 117 22 130 11L194 113 422-950C461-950 464-951 471-921L1016 1404C1019 1416 1020 1423 1020 1426 1020 1442 1012 1450 996 1450 984 1450 976 1440 971 1420Z"></path></g><g transform="translate(1020,0)"><g data-mml-node="mfrac" data-latex="\frac{v}{\|v\|_1+\epsilon} "><g data-mml-node="mi" data-latex="v" transform="translate(1650.5,676)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="mrow" data-latex="\|v\|_1 +\epsilon" transform="translate(220,-710)"><g data-mml-node="mo" data-latex="\|"><path data-c="2016" d="M264-250C279-250 287-242 287-226L287 726C287 742 279 750 264 750 249 750 241 742 241 726L241-226C241-242 249-250 264-250M134-250C149-250 157-242 157-226L157 726C157 742 149 750 134 750 119 750 111 742 111 726L111-226C111-242 119-250 134-250Z"></path></g><g data-mml-node="mi" data-latex="v" transform="translate(398,0)"><path data-c="1D463" d="M369 391C369 383 378 370 394 350 410 330 418 307 418 281 418 252 404 203 375 134 354 86 306 18 247 18 201 18 178 45 178 100 178 139 197 208 235 307 243 328 247 345 247 357 247 407 213 442 163 442 119 442 84 417 59 367 39 326 29 300 29 287 29 278 34 273 45 273 58 273 60 279 64 293 87 373 119 413 160 413 173 413 180 404 180 385 180 369 175 347 164 318 127 219 108 152 108 115 108 64 125 29 159 10 186-4 214-11 243-11 332-11 394 85 420 162 452 256 468 325 468 369 468 418 452 442 421 442 396 442 369 416 369 391Z"></path></g><g data-mml-node="msub" data-latex="\|_1" transform="translate(883,0)"><g data-mml-node="mo" data-latex="\|"><path data-c="2016" d="M264-250C279-250 287-242 287-226L287 726C287 742 279 750 264 750 249 750 241 742 241 726L241-226C241-242 249-250 264-250M134-250C149-250 157-242 157-226L157 726C157 742 149 750 134 750 119 750 111 742 111 726L111-226C111-242 119-250 134-250Z"></path></g><g data-mml-node="mn" transform="translate(431,-150) scale(0.707)" data-latex="1"><path data-c="31" d="M269 666C228 624 168 603 89 603L89 564C141 564 184 572 217 588L217 82C217 64 213 52 204 47 195 42 170 39 130 39L95 39 95 0C120 2 174 3 257 3 340 3 394 2 419 0L419 39 384 39C343 39 318 42 310 47 302 52 297 64 297 82L297 636C297 660 295 666 269 666Z"></path></g></g><g data-mml-node="mo" data-latex="+" transform="translate(1939.8,0)"><path data-c="2B" d="M698 274 413 274 413 559C413 575 405 583 389 583 373 583 365 575 365 559L365 274 80 274C64 274 56 266 56 250 56 234 64 226 80 226L365 226 365-59C365-75 373-83 389-83 405-83 413-75 413-59L413 226 698 226C714 226 722 234 722 250 722 263 711 274 698 274Z"></path></g><g data-mml-node="mi" data-latex="\epsilon" transform="translate(2940,0)"><path data-c="1D716" d="M228-11C268-11 305 0 339 22 352 31 358 38 358 43 358 55 353 61 344 61L330 54C293 30 260 18 230 18 163 18 128 72 128 142 128 168 131 195 138 222L296 222C321 222 333 229 333 242 333 254 322 260 301 260L148 260C175 349 229 393 310 393L340 393C364 393 376 400 376 413 376 425 365 431 343 431L309 431C238 431 176 407 124 358 72 309 47 250 47 179 47 71 120-11 228-11Z"></path></g></g><rect width="3546" height="60" x="120" y="220"></rect></g></g><rect width="3786" height="60" x="1020" y="1334.7"></rect></g></g></g></g></svg><svg data-labels="true" preserveAspectRatio="xMaxYMid" viewBox="1278 -1480.5 1 2461"><g data-labels="true" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="mtd" id="mjx-eqn:6" transform="translate(0,773.8)"><text data-id-align="true"></text><g data-idbox="true" transform="translate(0,-748)"><g data-mml-node="mtext" data-latex="\text{(6)}"><path data-c="28" d="M318-248C327-248 332-243 332-234 332-231 330-227 327-223 275-183 233-117 202-26 175 53 161 131 161 208L161 292C161 369 175 447 202 526 233 617 275 683 327 723 330 726 332 730 332 734 332 743 327 748 318 748 317 748 314 747 311 745 251 699 201 631 160 540 121 453 101 371 101 292L101 208C101 129 121 47 160-40 201-131 251-199 311-245 314-247 317-248 318-248Z"></path><path data-c="36" d="M383 504C416 504 432 521 432 555 432 627 378 666 304 666 221 666 155 627 106 548 63 480 42 403 42 316 42 189 65 100 112 47 152 1 198-22 251-22 312-22 362 1 401 47 438 91 457 144 457 205 457 266 439 318 403 361 365 407 316 431 257 431 205 431 165 402 138 346L138 352C138 465 166 561 226 605 252 624 279 633 306 633 342 633 368 623 385 602 351 602 334 583 334 553 334 525 355 504 383 504M344 340C355 317 361 272 361 206 361 141 356 98 345 76 325 35 294 14 251 14 222 14 200 24 184 44 171 60 162 74 158 85 146 116 140 163 140 227 140 255 144 282 151 308 164 355 201 399 256 399 295 399 325 379 344 340Z" transform="translate(389,0)"></path><path data-c="29" d="M78-245C138-199 188-131 229-40 268 47 288 129 288 208L288 292C288 371 268 453 229 540 188 631 138 699 78 745 75 747 72 748 71 748 62 748 57 743 57 734 57 730 59 726 62 723 114 683 156 617 187 526 214 447 228 369 228 292L228 208C228 131 214 53 187-26 156-117 114-183 62-223 59-227 57-231 57-234 57-243 62-248 71-248 72-248 75-247 78-245Z" transform="translate(889,0)"></path></g></g></g></g></svg></g></g></g></g></svg></mjx-container><br>还有另一个归一化因子 L2-Hys, 它通过削减 v 的 L2 范数得到(将 v 的最大值限制为 0.2),然后重新归一化。</p><p>最终的图像 / RoI 描述符是通过连接所有归一化的块描述符而形成的。</p><p>L2 范数、L2-Hys 和 L1 范数平方根(L1-sqrt)归一化方法提供了类似的性能,而 L1 范数提供了可靠性稍差的性能。</p></div><div class="story post-story"><h2 id="尺度不变特征变换"><a href="#尺度不变特征变换" class="headerlink" title="尺度不变特征变换"></a>尺度不变特征变换</h2><p>SIFT [Lowe,2004] 提供了一组对象的特征,这些特征对于对象缩放和旋转是健壮的。</p><p>SIFT 算法由四个主要步骤组成。</p><h3 id="1-尺度空间的极值侦测"><a href="#1-尺度空间的极值侦测" class="headerlink" title="1.尺度空间的极值侦测"></a>1. 尺度空间的极值侦测</h3><p>第一步旨在确定对缩放和方向不变的潜在关键点。</p><p>SIFT 使用高斯差分(DoG)来检测尺度空间中关键点中的位置。</p><p>高斯差分是将两个不同尺度的图像(其中一个尺度为<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.025ex" xmlns="http://www.w3.org/2000/svg" width="1.292ex" height="1ex" role="img" focusable="false" viewBox="0 -431 571 442"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="\sigma"><g data-mml-node="mi" data-latex="\sigma"><path data-c="1D70E" d="M525 431 300 431C252 431 207 416 166 385 102 336 38 250 38 148 38 58 100-11 190-11 257-11 317 18 368 76 417 132 441 194 441 263 441 304 432 338 414 366L515 366C550 366 567 378 567 403 567 426 550 431 525 431M107 121C107 180 121 234 150 282 184 338 228 366 283 366 341 366 370 336 370 275 370 250 365 221 355 187 335 116 302 66 256 39 233 25 211 18 191 18 136 18 107 63 107 121Z"></path></g></g></g></svg></mjx-container>,另一个是其 k 倍,即<mjx-container class="MathJax" jax="SVG" overflow="overflow"><svg style="vertical-align:-.566ex" xmlns="http://www.w3.org/2000/svg" width="1.179ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 521 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="k\times\sigma"><g data-mml-node="mi" data-latex="k"><path data-c="1D458" d="M409 353C409 327 423 314 450 314 485 314 508 345 508 379 508 418 476 445 437 445 392 445 344 415 291 356 250 311 217 282 190 269L291 679C289 688 287 694 274 694 242 694 166 685 154 684 139 682 132 675 132 660 132 650 141 645 159 645 178 645 204 646 204 632L59 43C56 32 55 25 55 21 55 0 66-11 87-11 104-11 117-3 124 12 129 21 147 92 179 226 231 221 286 196 286 146 286 131 279 101 279 91 279 34 316-11 373-11 431-11 470 41 490 145 490 154 485 159 475 159 466 159 460 152 457 138 435 59 408 19 375 19 357 19 348 33 348 61 348 77 360 131 360 147 360 204 314 239 221 253 244 269 270 292 298 322 326 352 346 371 359 382 386 404 412 415 435 415 445 415 453 413 459 409 432 404 409 379 409 353Z"></path></g></g></g></svg><mjx-break size="3"></mjx-break><svg style="vertical-align:-.566ex" xmlns="http://www.w3.org/2000/svg" width="3.555ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 1571.2 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math" data-latex="k\times\sigma"><g data-mml-node="mo" data-latex="\times"><path data-c="D7" d="M630 32C630 39 628 44 623 49L422 250 623 451C628 456 630 461 630 468 630 481 620 491 607 491 600 491 595 489 590 484L389 283 188 484C183 489 178 491 171 491 158 491 148 481 148 468 148 461 150 456 155 451L356 250 155 49C150 44 148 39 148 32 148 19 158 9 171 9 178 9 183 11 188 16L389 217 590 16C595 11 600 9 607 9 620 9 630 19 630 32Z"></path></g><g data-mml-node="mi" data-latex="\sigma" transform="translate(1000.2,0)"><path data-c="1D70E" d="M525 431 300 431C252 431 207 416 166 385 102 336 38 250 38 148 38 58 100-11 190-11 257-11 317 18 368 76 417 132 441 194 441 263 441 304 432 338 414 366L515 366C550 366 567 378 567 403 567 426 550 431 525 431M107 121C107 180 121 234 150 282 184 338 228 366 283 366 341 366 370 336 370 275 370 250 365 221 355 187 335 116 302 66 256 39 233 25 211 18 191 18 136 18 107 63 107 121Z"></path></g></g></g></svg></mjx-container>)的高斯模糊进行差分得到的。</p><h3 id="2-关键点精确定位"><a href="#2-关键点精确定位" class="headerlink" title="2.关键点精确定位"></a>2. 关键点精确定位</h3><h3 id="3-方向定位"><a href="#3-方向定位" class="headerlink" title="3.方向定位"></a>3. 方向定位</h3><h3 id="4-关键点描述符"><a href="#4-关键点描述符" class="headerlink" title="4.关键点描述符"></a>4. 关键点描述符</h3></div></div><div class="footer"><div class="copyright license"><div class="license-title">特征和分类器</div><div class="license-link"><a href="https://blog.mhuig.top/p/483290b5/">https://blog.mhuig.top/p/483290b5/</a></div><div class="license-meta"><div class="license-meta-item"><div class="license-meta-title">本文作者</div><div class="license-meta-text">MHuiG</div></div><div class="license-meta-item"><div class="license-meta-title">发布于</div><div class="license-meta-text">Sep 12, 2019</div></div><div class="license-meta-item"><div class="license-meta-title">更新于</div><div class="license-meta-text">Nov 20, 2025</div></div><div class="license-meta-item"><div class="license-meta-title">许可协议</div><div class="license-meta-text"><a href="/go.html?u=aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9kZWVkLnpoLWhhbnMj" target="_blank" rel="external nofollow noopener noreferrer">CC BY-NC-SA 4.0</a></div></div></div><div class="license-statement">署名-非商业性使用-相同方式共享 4.0 国际。</div></div></div><div class="article-meta" id="bottom"><div class="new-meta-box"><div class="new-meta-item category"><i class="fa-duotone fa-folder-open fa-fw" aria-hidden="true"></i> <a class="category-link" href="/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/">机器学习</a> <span hidden="" itemprop="about" itemscope="" itemtype="http://schema.org/Thing"><a href="/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" itemprop="url"><span itemprop="name">机器学习</span></a></span></div><div class="new-meta-item meta-tags"><a class="tag" href="/tags/%E6%9C%BA%E5%99%A8%E8%A7%86%E8%A7%89/" rel="nofollow"><i class="fa-duotone fa-hashtag fa-fw" aria-hidden="true"></i><p>机器视觉</p></a></div> <span hidden="" itemprop="keywords">机器视觉</span><div class="new-meta-item date" itemprop="dateCreated datePublished" datetime="2019-09-12T11:19:00+08:00"><a class="notlink"><i class="fa-duotone fa-calendar-alt fa-fw" aria-hidden="true"></i><p>发布于:Sep 12, 2019</p></a></div><div class="new-meta-item date" itemprop="dateModified" datetime="2025-11-20T18:18:00+08:00"><a class="notlink"><i class="fa-duotone fa-edit fa-fw" aria-hidden="true"></i><p>更新于:Nov 20, 2025</p></a></div></div></div><div class="prev-next"><a class="prev" href="/p/notes-zookeeper/"><p class="title"><i class="fa-solid fa-chevron-left" aria-hidden="true"></i>Zookeeper 系列专题</p><p class="content">ZooKeeper是高性能分布式协调服务,基于ZAB协议实现数据一致性,提供配置管理、服务发现等核心功能。采用Leader-Follower-Observer架构,支持分布式锁、命名服务等场景,通过树形ZNode存储节点数据,客户端可监听节点变化实现实时同步。</p></a><a class="next" href="/p/9bc3b11e/"><p class="title">图像导数<i class="fa-solid fa-chevron-right" aria-hidden="true"></i></p><p class="content">图像导数通过一阶导数识别边缘(大响应对应边缘像素)和二阶导数分析细节(如细线、噪声),可判断边缘过渡方向。实际应用中需先平滑图像以降低噪声干扰,是Sobel算子等边缘检测算法的核心原理。</p></a></div><div class="recommended-article"><div class="recommended-article-header"><i class="fa-solid fa-bookmark fa-fw" aria-hidden="true"></i> <span>推荐阅读</span></div><div class="recommended-article-group"> <a class="recommended-article-item" href="/p/9bc3b11e/" title="图像导数" rel="bookmark"><img src="https://static.mhuig.top/npm/imbox@0.0.15/c/12.webp" class="lazyload" data-srcset="https://static.mhuig.top/npm/imbox@0.0.15/c/12.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="图像导数"> <span class="title">图像导数</span></a> <a class="recommended-article-item" href="/p/xa6297acc/" title="理解卷积" rel="bookmark"><img src="https://static.mhuig.top/npm/imbox@0.0.15/c/79.webp" class="lazyload" data-srcset="https://static.mhuig.top/npm/imbox@0.0.15/c/79.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="理解卷积"> <span class="title">理解卷积</span></a> <a class="recommended-article-item" href="/notes/Zeta/144.html" title="玻尔兹曼机:从统计物理到深度学习的跨学科桥梁" rel="bookmark"><img src="https://static.mhuig.top/npm/imbox@0.0.15/c/78.webp" class="lazyload" data-srcset="https://static.mhuig.top/npm/imbox@0.0.15/c/78.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="玻尔兹曼机:从统计物理到深度学习的跨学科桥梁"> <span class="title">玻尔兹曼机:从统计物理到深度学习的跨学科桥梁</span></a> <a class="recommended-article-item" href="/p/4c2deb5e/" title="视知觉整合" rel="bookmark"><img src="https://static.mhuig.top/npm/imbox@0.0.15/c/70.webp" class="lazyload" data-srcset="https://static.mhuig.top/npm/imbox@0.0.15/c/70.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="视知觉整合"> <span class="title">视知觉整合</span></a> <a class="recommended-article-item" href="/p/48f700eb/" title="BERT 预训练模型及其应用案例" rel="bookmark"><img src="https://static.mhuig.top/npm/mhgoos@0.0.1651974150318/2020116102430.webp" class="lazyload" data-srcset="https://static.mhuig.top/npm/mhgoos@0.0.1651974150318/2020116102430.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="BERT 预训练模型及其应用案例"> <span class="title">BERT 预训练模型及其应用案例</span></a> <a class="recommended-article-item" href="/notes/person/1.html" title="希尔伯特23问题" rel="bookmark"><img src="https://static.mhuig.top/npm/imbox@0.0.15/c/109.webp" class="lazyload" data-srcset="https://static.mhuig.top/npm/imbox@0.0.15/c/109.webp" srcset="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="希尔伯特23问题"> <span class="title">希尔伯特23问题</span></a></div></div></article><article class="post white-box shadow floatable blur" id="comments"><span hidden=""><meta itemprop="discussionUrl" content="/p/483290b5/#comments"></span><p ct=""><i class="fa-duotone fa-comments"></i> 留言区</p><div id="layoutHelper-comments"></div></article></div><aside id="l_side" itemscope="" itemtype="http://schema.org/WPSideBar"><div class="widget-sticky pjax"><section class="widget toc-wrapper desktop mobile" id="toc-div"><header><i class="fa-duotone fa-list fa-fw" aria-hidden="true"></i> <span class="name">本文目录</span></header><div class="content"><ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%89%B9%E5%BE%81"><span class="toc-text">特征</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%88%86%E7%B1%BB%E5%99%A8"><span class="toc-text">分类器</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%BC%A0%E7%BB%9F%E7%89%B9%E5%BE%81%E6%8F%8F%E8%BF%B0%E7%AC%A6"><span class="toc-text">传统特征描述符</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%96%B9%E5%90%91%E6%A2%AF%E5%BA%A6%E7%9B%B4%E6%96%B9%E5%9B%BE"><span class="toc-text">方向梯度直方图</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1-%E6%A2%AF%E5%BA%A6%E8%AE%A1%E7%AE%97"><span class="toc-text">1. 梯度计算</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-%E5%8D%95%E5%85%83%E6%96%B9%E5%90%91%E7%9B%B4%E6%96%B9%E5%9B%BE"><span class="toc-text">2. 单元方向直方图</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#3-%E6%8F%8F%E8%BF%B0%E7%AC%A6%E5%9D%97"><span class="toc-text">3. 描述符块</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#4-%E5%9D%97%E7%9A%84%E5%BD%92%E4%B8%80%E5%8C%96"><span class="toc-text">4. 块的归一化</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%B0%BA%E5%BA%A6%E4%B8%8D%E5%8F%98%E7%89%B9%E5%BE%81%E5%8F%98%E6%8D%A2"><span class="toc-text">尺度不变特征变换</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1-%E5%B0%BA%E5%BA%A6%E7%A9%BA%E9%97%B4%E7%9A%84%E6%9E%81%E5%80%BC%E4%BE%A6%E6%B5%8B"><span class="toc-text">1. 尺度空间的极值侦测</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-%E5%85%B3%E9%94%AE%E7%82%B9%E7%B2%BE%E7%A1%AE%E5%AE%9A%E4%BD%8D"><span class="toc-text">2. 关键点精确定位</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#3-%E6%96%B9%E5%90%91%E5%AE%9A%E4%BD%8D"><span class="toc-text">3. 方向定位</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#4-%E5%85%B3%E9%94%AE%E7%82%B9%E6%8F%8F%E8%BF%B0%E7%AC%A6"><span class="toc-text">4. 关键点描述符</span></a></li></ol></li></ol></div></section></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div></aside><pjax><script>window.pdata={},pdata.ispage=!0,pdata.commentPath="",pdata.commentPlaceholder="",pdata.commentConfig={};var l_header=document.getElementById("l_header");l_header.classList.add("show");var cover_wrapper=document.querySelector("#l_cover .cover-wrapper"),scroll_down=document.getElementById("scroll-down");cover_wrapper.id="none",cover_wrapper.style.display="none",scroll_down.style.display="none"</script></pjax></div><footer class="footer clearfix" itemscope="" itemtype="http://schema.org/WPFooter"><br><br><div class="aplayer-container"><div class="aplayer-local"></div></div><br><div class="social-wrapper" itemprop="about" itemscope="" itemtype="http://schema.org/Thing"><a href="/atom.xml" class="social fa-duotone fa-rss flat-btn" target="_blank" rel="external nofollow noopener noreferrer" itemprop="url"></a><a href="https://mhuig.top/contact/" class="social fa-duotone fa-envelope flat-btn" target="_blank" rel="external nofollow noopener noreferrer" itemprop="url"></a><a href="https://github.com/MHuiG" class="social fa-brands fa-github flat-btn" target="_blank" rel="external nofollow noopener noreferrer" itemprop="url"></a><a href="https://t.me/MHuiG" class="social fa-brands fa-telegram flat-btn" target="_blank" rel="external nofollow noopener noreferrer" itemprop="url"></a></div><div><p>博客内容遵循 <a target="_blank" rel="external nofollow noopener noreferrer" href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans">署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议</a></p></div><div class="copyright"><p><a href="https://icp.gov.moe" target="_blank" rel="external nofollow noopener noreferrer">萌ICP备</a> <a href="https://icp.gov.moe/?keyword=2020012138" target="_blank" rel="external nofollow noopener noreferrer">2020012138号</a><br><a target="_blank" rel="noopener" href="https://mhuig.top/">Copyright © Since 2018 MHuiG</a></p></div></footer><a id="s-top" class="fa-solid fa-arrow-up fa-fw" title="top"></a></div></div><div><script>volantis.dom.bodyAnchor=volantis.dom.$(document.getElementById("safearea")),volantis.dom.topBtn=volantis.dom.$(document.getElementById("s-top")),volantis.dom.wrapper=volantis.dom.$(document.getElementById("wrapper")),volantis.dom.coverAnchor=volantis.dom.$(document.querySelector("#l_cover .cover-wrapper")),volantis.dom.switcher=volantis.dom.$(document.querySelector("#l_header .switcher .s-search")),volantis.dom.header=volantis.dom.$(document.getElementById("l_header")),volantis.dom.search=volantis.dom.$(document.querySelector("#l_header .m_search")),volantis.dom.mPhoneList=volantis.dom.$(document.querySelectorAll("#l_header .m-phone .list-v"))</script><script>volantis.css("https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/libs/@fortawesome/fontawesome-pro/css/all.min.css")</script><script src="/js/app.js"></script><script>const rootElement=document.documentElement,darkModeStorageKey="color-scheme",rootElementDarkModeAttributeName="color-scheme",setLS=(e,t)=>{localStorage.setItem(e,t)},removeLS=e=>{localStorage.removeItem(e)},getLS=e=>localStorage.getItem(e),getModeFromCSSMediaQuery=()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",resetRootDarkModeAttributeAndLS=()=>{rootElement.removeAttribute("color-scheme"),removeLS("color-scheme")},validColorModeKeys={dark:!0,light:!0},applyCustomDarkModeSettings=e=>{const t=e||getLS("color-scheme");getCustomDarkMode(),t===getModeFromCSSMediaQuery()?resetRootDarkModeAttributeAndLS():validColorModeKeys[t]?rootElement.setAttribute("color-scheme",t):resetRootDarkModeAttributeAndLS()},invertDarkModeObj={dark:"light",light:"dark"},getCustomDarkMode=()=>{let e=getLS("color-scheme");if(validColorModeKeys[e])e=invertDarkModeObj[e];else{if(null!==e)return;e=invertDarkModeObj[getModeFromCSSMediaQuery()]}volantis.dark.mode="dark"==e?"light":"dark"},toggleCustomDarkMode=()=>{let e=getLS("color-scheme");if(validColorModeKeys[e])e=invertDarkModeObj[e];else{if(null!==e)return;e=invertDarkModeObj[getModeFromCSSMediaQuery()]}return setLS("color-scheme",e),e};function bindToggleButton(){document.querySelectorAll("#wrapper .toggle-mode-btn,#rightmenu-wrapper .toggle-mode-btn").forEach((function(e){volantis.dom.$(e).on("click",volantis.dark.toggle)}))}volantis.dark.toggle=()=>{const e=toggleCustomDarkMode();applyCustomDarkModeSettings(e),volantis.dark.method.toggle.start()},applyCustomDarkModeSettings(),document.addEventListener("DOMContentLoaded",(()=>{volantis.requestAnimationFrame(bindToggleButton)})),volantis.pjax.push(bindToggleButton);const darkModelListeners={dark:e=>{e.matches&&(volantis.dark.mode="dark"),volantis.dark.method.toggle.start()},light:e=>{e.matches&&(volantis.dark.mode="light"),volantis.dark.method.toggle.start()}};window.matchMedia("(prefers-color-scheme: dark)").addListener(darkModelListeners.dark),window.matchMedia("(prefers-color-scheme: light)").addListener(darkModelListeners.light)</script><script>function loadIssuesJS(){null!=document.getElementById("sites-api")&&"undefined"==typeof SitesJS&&volantis.js("/js/plugins/tags/sites.js");null!=document.getElementById("friends-api")&&"undefined"==typeof FriendsJS&&volantis.js("/js/plugins/tags/friends.js");null!=document.getElementById("contributors-api")&&"undefined"==typeof ContributorsJS&&volantis.js("/js/plugins/tags/contributors.js")}loadIssuesJS(),volantis.pjax.push((()=>{loadIssuesJS()}))</script><script defer="" src="https://cdn.bootcdn.net/ajax/libs/vanilla-lazyload/17.1.0/lazyload.min.js"></script><script>window.lazyLoadOptions={elements_selector:".lazyload",threshold:0},window.addEventListener("LazyLoad::Initialized",(function(n){window.lazyLoadInstance=n.detail.instance}),!1),document.addEventListener("DOMContentLoaded",(function(){lazyLoadInstance.update()})),document.addEventListener("pjax:complete",(function(){lazyLoadInstance.update()}))</script><script>window.FPConfig={delay:0,ignoreKeywords:["#"],maxRPS:6,hoverDelay:0}</script><script defer="" src="https://static.mhuig.top/npm/volantis-static@0.0.1660614606622/libs/flying-pages/flying-pages.min.js"></script><script>volantis.css("https://cdn.bootcdn.net/ajax/libs/aplayer/1.10.1/APlayer.min.css"),volantis.js("https://cdn.bootcdn.net/ajax/libs/aplayer/1.10.1/APlayer.min.js").then((()=>{function e(){document.querySelector(".aplayer-local-min")&&document.querySelectorAll(".aplayer-local-min").forEach((e=>{new APlayer(Object.assign({container:e,mini:!0,order:"list",volume:"0.7",autoplay:!1,loop:"all",theme:"#1BCDFC",listMaxHeight:"320px",listFolded:"true",preload:"auto",lrcType:3,audio:[{name:"虹之间",artist:"钢琴版伴奏",url:"https://blog.mhuig.top/music-Archive/BetweenTheRainbow.mp3",lrc:"https://blog.mhuig.top/music-Archive/BetweenTheRainbow.lrc",cover:"https://blog.mhuig.top/music-Archive/BetweenTheRainbow.jpg"},{name:"Avem",artist:"Alan Walker",url:"https://blog.mhuig.top/music-Archive/Avem.mp3",lrc:"https://blog.mhuig.top/music-Archive/Avem.lrc",cover:"https://blog.mhuig.top/music-Archive/Avem.jpg"},{name:"Fly",artist:"Marshmello / Leau Culver",url:"https://blog.mhuig.top/music-Archive/fly.mp3",lrc:"https://blog.mhuig.top/music-Archive/fly.lrc",cover:"https://blog.mhuig.top/music-Archive/fly.jpg"},{name:"Alone",artist:"Marshmello",url:"https://blog.mhuig.top/music-Archive/alone.mp3",lrc:"https://blog.mhuig.top/music-Archive/alone.lrc",cover:"https://blog.mhuig.top/music-Archive/alone.jpg"}]},JSON.parse(e.querySelector(".aplayer-local-min-conf").innerText)))}))}document.querySelectorAll(".aplayer-local").forEach((e=>{new APlayer({container:e,fixed:!1,order:"list",volume:"0.7",autoplay:!1,loop:"all",theme:"#1BCDFC",listMaxHeight:"320px",listFolded:"true",preload:"auto",lrcType:3,audio:[{name:"虹之间",artist:"钢琴版伴奏",url:"https://blog.mhuig.top/music-Archive/BetweenTheRainbow.mp3",lrc:"https://blog.mhuig.top/music-Archive/BetweenTheRainbow.lrc",cover:"https://blog.mhuig.top/music-Archive/BetweenTheRainbow.jpg"},{name:"Avem",artist:"Alan Walker",url:"https://blog.mhuig.top/music-Archive/Avem.mp3",lrc:"https://blog.mhuig.top/music-Archive/Avem.lrc",cover:"https://blog.mhuig.top/music-Archive/Avem.jpg"},{name:"Fly",artist:"Marshmello / Leau Culver",url:"https://blog.mhuig.top/music-Archive/fly.mp3",lrc:"https://blog.mhuig.top/music-Archive/fly.lrc",cover:"https://blog.mhuig.top/music-Archive/fly.jpg"},{name:"Alone",artist:"Marshmello",url:"https://blog.mhuig.top/music-Archive/alone.mp3",lrc:"https://blog.mhuig.top/music-Archive/alone.lrc",cover:"https://blog.mhuig.top/music-Archive/alone.jpg"}]})})),e(),volantis.pjax.push(e,"aplayerMin")}))</script><script>function check_giscus(){return"dark"===volantis.dark.mode?volantis.giscus.Theme="dark":volantis.giscus.Theme="light",document.getElementById("giscus_container")}function pjax_giscus(){const t=check_giscus();if(!t)return;let s=Object.assign({theme:{light:"light",dark:"dark"},repo:"MHuiG/talk","repo-id":"MDEwOlJlcG9zaXRvcnkyODQ4NDg1NTg=",category:"Giscus","category-id":"DIC_kwDOEPpxrs4B_X67",mapping:"pathname","reactions-enabled":"1","emit-metadata":"1",lang:"zh-CN","input-position":"top"},pdata.commentConfig);const e=document.createElement("script");e.setAttribute("src","https://giscus.app/client.js"),Object.keys(s).forEach((t=>{"theme"!=t&&e.setAttribute("data-"+t,s[t])})),e.setAttribute("data-theme",volantis.giscus.Theme),e.setAttribute("crossorigin","anonymous"),t.appendChild(e)}function dark_giscus(){if(!check_giscus())return;const t={setConfig:{theme:volantis.giscus.Theme}};document.querySelector("iframe.giscus-frame").contentWindow.postMessage({giscus:t},"https://giscus.app")}volantis.layoutHelper("comments",'<div id="giscus_container"></div>'),volantis.giscus={},pjax_giscus(),volantis.pjax.push(pjax_giscus),volantis.dark.push(dark_giscus)</script><script>async function loadSearchScript(){return volantis.js("/js/search/hexo.js")}function loadSearchService(){loadSearchScript(),document.querySelectorAll(".input.u-search-input").forEach((e=>{e.removeEventListener("focus",loadSearchService,!1)})),document.querySelectorAll(".u-search-form").forEach((e=>{e.addEventListener("submit",(e=>{e.preventDefault()}),!1)}))}function OpenSearch(e){"undefined"==typeof SearchService?loadSearchScript().then((()=>{SearchService.setQueryText(e),SearchService.search()})):(SearchService.setQueryText(e),SearchService.search())}if(window.location.search&&/^\?s=/g.test(window.location.search)){OpenSearch(decodeURI(window.location.search).replace(/\ /g,"-").replace(/^\?s=/g,""))}document.querySelectorAll(".input.u-search-input").forEach((e=>{e.addEventListener("focus",loadSearchService,!1)}))</script><script>function pjax_highlightjs_copyCode(){(document.querySelector(".highlight .code pre")||document.querySelector(".article pre code"))&&VolantisApp.utilCopyCode(".highlight .code pre, .article pre code")}volantis.requestAnimationFrame(pjax_highlightjs_copyCode),volantis.pjax.push(pjax_highlightjs_copyCode)</script><script>function load_swiper(){document.querySelectorAll(".swiper-container")[0]&&(volantis.css("https://cdn.bootcdn.net/ajax/libs/Swiper/8.3.2/swiper-bundle.min.css"),volantis.js("https://cdn.bootcdn.net/ajax/libs/Swiper/8.3.2/swiper-bundle.min.js").then((()=>{pjax_swiper()})))}function pjax_swiper(){volantis.swiper=new Swiper(".swiper-container",{slidesPerView:"auto",spaceBetween:8,centeredSlides:!0,loop:!0,pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}})}load_swiper(),volantis.pjax.push((()=>{document.querySelectorAll(".swiper-container")[0]&&(void 0===volantis.swiper?load_swiper():pjax_swiper())}))</script><script>volantis.css("https://cdn.bootcdn.net/ajax/libs/pace/1.2.4/themes/blue/pace-theme-minimal.min.css"),volantis.js("https://cdn.bootcdn.net/ajax/libs/pace/1.2.4/pace.min.js").then((()=>{Pace.options.restartOnPushState=!1,volantis.pjax.send(Pace.restart,"Pace.restart"),volantis.scroll.push(volantis.debounce((()=>{Pace.stop(),Pace.trigger("start"),Pace.bar.update(100*volantis.scroll.progress()),document.body.className=document.body.className.replaceAll("pace-running ","")})),"阅读进度")}))</script><pjax></pjax><script>function listenSidebarTOC(){const t=document.querySelectorAll(".toc li");if(!t.length)return;const e=[];Array.from(t).forEach((t=>{const n=t.querySelector(".toc-link"),i=document.getElementById(n.getAttribute("href")?decodeURI(n.getAttribute("href")).replace("#",""):n.getAttribute("toc-action").split("toc-")[1]);return e.push(i),n.getAttribute("href")&&(n.setAttribute("toc-action","toc-"+decodeURI(n.getAttribute("href")).replace("#","")),n.removeAttribute("href")),i&&i.id&&n.addEventListener("click",(t=>{t.preventDefault(),volantis.scroll.to(i,{addTop:5,observer:!0}),history.pushState(null,document.title,"#"+i.id)})),i}));function n(t){if(t.classList.contains("active-current"))return;document.querySelectorAll(".toc .active").forEach((t=>{t.classList.remove("active","active-current")})),t.classList.add("active","active-current");let e=t.parentNode;for(;!e.matches(".toc");)e.matches("li")&&e.classList.add("active"),e=e.parentNode}volantis.activateNavIndex=0,n(t[volantis.activateNavIndex]),e[0]&&volantis.scroll.push(volantis.debounce((()=>{if(e[0].getBoundingClientRect().top>=0)volantis.activateNavIndex=0;else if(e[e.length-1].getBoundingClientRect().top<0)volantis.activateNavIndex=e.length-1;else for(let t=0;t<e.length;t++){const n=e[t],i=e[(t+1)%e.length];if(n.getBoundingClientRect().top<0&&i.getBoundingClientRect().top>=0){volantis.activateNavIndex=t;break}}n(t[volantis.activateNavIndex])})),"sidebar-toc")}document.addEventListener("DOMContentLoaded",(()=>{volantis.requestAnimationFrame(listenSidebarTOC)})),volantis.pjax.push(listenSidebarTOC,"listenSidebarTOC")</script><script>try{let e=(e,t,n=2)=>Math.abs(e-t)<=n,t=(t,n)=>!e(t.width,n.width)||!e(t.height,n.height),n=new WeakMap,i=(e,i=e.getClientBoundingRect())=>{let o=n.get(e);o&&!t(o,i)||(n.set(e,i),e.style["contain-intrinsic-size"]=`${i.width}px ${i.height}px`)},o=new IntersectionObserver(((e,t)=>{e.forEach((e=>{i(e.target,e.boundingClientRect)}))}),{rootMargin:"500px 0px 500px 0px"}),r=new ResizeObserver(((e,t)=>{e.forEach((e=>{i(e.target,e.contentRect)}))})),s=e=>{let t=document.querySelectorAll(e);t.length&&(t.forEach((e=>{o.observe(e),r.observe(e)})),requestAnimationFrame((()=>{requestAnimationFrame((()=>{t[0].style["content-visibility"]="auto"}))})))},a=()=>{"content-visibility"in document.documentElement.style&&s(".post-story")};a(),volantis.pjax.push(a)}catch(e){console.log(e)}</script><script>document.onreadystatechange=function(){if("complete"==document.readyState){const{saveData:e,effectiveType:t}=navigator.connection||navigator.mozConnection||navigator.webkitConnection||{};("none"==getComputedStyle(document.querySelector("#safearea"),null).display||e||/2g/.test(t))&&(document.querySelectorAll(".reveal").forEach((function(e){e.style.opacity="1"})),document.querySelector("#safearea").style.display="block")}}</script><script src="https://cdn.bootcdn.net/ajax/libs/pjax/0.2.8/pjax.min.js"></script><script>const performanceMonitor={slowThreshold:800,slowCount:0,maxSlowAllowed:1,requestStartTime:0,start(){this.requestStartTime=Date.now()},check(){Date.now()-this.requestStartTime>this.slowThreshold?this.slowCount++:this.slowCount=0},res(){return this.slowCount>=this.maxSlowAllowed}};var pjax;document.addEventListener("DOMContentLoaded",(function(){pjax=new Pjax({elements:'a[href]:not([href^="#"]):not([href="javascript:void(0)"]):not([pjax-fancybox]):not([onclick="return false;"]):not([onclick="return!1"]):not([target="_blank"]):not([target="view_window"]):not([href$=".xml"])',selectors:["head title","head meta[name=keywords]","head meta[name=description]","#l_main","#pjax-header-nav-list",".pjax","pjax","meta[name=robots]","link[rel=canonical]","meta[property='og:title']","meta[property='og:description']","meta[property='og:url']","meta[property='og:image']","script[type='application/ld+json']"],cacheBust:!1,timeout:900})})),document.addEventListener("pjax:send",(function(e){window.stop(),performanceMonitor.start();try{var t=window.location.pathname,o=e.triggerElement.href,n=[""];""!=n[0]&&n.forEach((e=>{-1==t.indexOf(e)&&-1==o.indexOf(e)||(window.location.href=o)})),performanceMonitor.res()&&(window.location.href=o)}catch(e){}volantis.pjax.method.send.start()})),document.addEventListener("pjax:complete",(function(){performanceMonitor.check(),document.querySelectorAll("script[data-pjax], .pjax-reload script").forEach((e=>{const t=e.text||e.textContent||e.innerHTML||"",o=document.createElement("script");Object.keys(e.attributes).forEach((t=>{o.setAttribute(e.attributes[t].nodeName,e.attributes[t].nodeValue)})),t&&o.appendChild(document.createTextNode(t)),e.parentNode.replaceChild(o,e)})),volantis.pjax.method.complete.start()})),document.addEventListener("pjax:error",(function(e){"pjax"===volantis.debug?(console.error(e),console.log("pjax error: \n"+JSON.stringify(e))):(volantis.pjax.method.error.start(),window.location.href=e.triggerElement.href)}))</script></div><pjax> <a style="display:none" target="_blank" rel="external nofollow noopener noreferrer" href="https://bot-trap.mhuig.top/">Are You A Robot?</a></pjax><script>(()=>{function t(){if("localhost:4000"!=window.location.host&&!/blog\.mhuig\.top/.test(window.location.host)){const t=document.createElement("meta");t.name="robots",t.content=atob("bm9pbmRleCwgbm9mb2xsb3csIG5vYXJjaGl2ZQ=="),document.head.appendChild(t)}}function o(){document.querySelector("figcaption")&&document.querySelectorAll("figcaption").forEach((t=>{volantis.dom.$(t).on("click",(function(){const t=!window.CodeBlockFullscreen;window.CodeBlockFullscreen=t;const o=document.getElementById("post")||document.getElementById("docs")||document.getElementById("page");if(!o)return;const e=this.parentElement,n=e.parentElement,l=document.documentElement,c=document.querySelectorAll(".highlight > table .gutter");o.classList.toggle("code-block-fullscreen",t),e.classList.toggle("code-block-fullscreen",t),n.classList.toggle("code-block-fullscreen",t),e.classList.toggle("code-block-fullscreen-overflow-auto",t),l.classList.toggle("code-block-fullscreen-html-scroll",t),c.forEach((o=>{o.classList.toggle("code-block-fullscreen-gutter",t)}))}))}))}t(),volantis.pjax.push(t),top.location!=self.location&&(top.location=self.location),"mhuig.github.io"==window.location.host||"localhost:4000"==window.location.host||/mhuig\.top$/.test(window.location.host)||/kix\.moe$/.test(window.location.host)||/mhuig/.test(window.location.host)||/ipfs/.test(window.location.host)||(window.location.href=atob("aHR0cHM6Ly9ibG9nLm1odWlnLnRvcC8=")),o(),volantis.pjax.push(o);const e=[{month:12,day:13},function(){const t=(new Date).getFullYear(),o=t%100,e=t>=2e3?4.81:5.59,n=Math.floor(o/4),l=Math.floor(.2422*o+e)-n;return{month:4,day:Math.max(4,l)}}(),{month:7,day:7},{month:9,day:18},{month:9,day:30}];function n(){document.documentElement.classList.remove("mourning-mode");if(!["/","/index.html","/index.htm","/index"].includes(window.location.pathname))return;const t=new Date,o=t.getMonth()+1,n=t.getDate();e.some((t=>t.month===o&&t.day===n))&&document.documentElement.classList.add("mourning-mode")}const l=document.createElement("style");l.textContent="\n html.mourning-mode {\n filter: grayscale(100%);\n -webkit-filter: grayscale(100%);\n transition: filter 0.5s ease;\n }\n ",document.head.appendChild(l),n(),document.addEventListener("pjax:complete",n)})()</script></body></html>