Skip to content

Commit a8f73e3

Browse files
Deployed c8ae720 with MkDocs version: 1.6.0
1 parent 6bcd616 commit a8f73e3

File tree

8 files changed

+154
-78
lines changed

8 files changed

+154
-78
lines changed

404.html

+1-5
Original file line numberDiff line numberDiff line change
@@ -499,11 +499,7 @@ <h1>404 - Not found</h1>
499499

500500
<script src="/assets/javascripts/bundle.ebd0bdb7.min.js"></script>
501501

502-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
503-
504-
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
505-
506-
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
502+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
507503

508504

509505
</body>

index.html

+1-5
Original file line numberDiff line numberDiff line change
@@ -630,11 +630,7 @@ <h2 id="project-layout">Project layout</h2>
630630

631631
<script src="assets/javascripts/bundle.ebd0bdb7.min.js"></script>
632632

633-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
634-
635-
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
636-
637-
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
633+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
638634

639635

640636
<script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});

markdown语法/index.html

+3-7
Original file line numberDiff line numberDiff line change
@@ -513,8 +513,8 @@ <h1 id="markdown">Markdown语法</h1>
513513
<p>插入图片<br />
514514
!加[]加(图片相对路径) </p>
515515
<p>公式<br />
516-
<span class="arithmatex">\(xyz\)</span> 行内公式<br />
517-
<span class="arithmatex">\(<span class="arithmatex">\(xyz\)</span>\)</span> 独行公式 且居中 </p>
516+
$xyz$ 行内公式<br />
517+
<script type="math/tex; mode=display">xyz</script> 独行公式 且居中 </p>
518518

519519

520520

@@ -566,11 +566,7 @@ <h1 id="markdown">Markdown语法</h1>
566566

567567
<script src="../assets/javascripts/bundle.ebd0bdb7.min.js"></script>
568568

569-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
570-
571-
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
572-
573-
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
569+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
574570

575571

576572
<script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});

mkdocs配置/index.html

+25-5
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,15 @@
271271
</span>
272272
</a>
273273

274+
</li>
275+
276+
<li class="md-nav__item">
277+
<a href="#latex" class="md-nav__link">
278+
<span class="md-ellipsis">
279+
正常显示latex公式
280+
</span>
281+
</a>
282+
274283
</li>
275284

276285
</ul>
@@ -603,6 +612,15 @@
603612
</span>
604613
</a>
605614

615+
</li>
616+
617+
<li class="md-nav__item">
618+
<a href="#latex" class="md-nav__link">
619+
<span class="md-ellipsis">
620+
正常显示latex公式
621+
</span>
622+
</a>
623+
606624
</li>
607625

608626
</ul>
@@ -641,6 +659,12 @@ <h2 id="_5">添加插件</h2>
641659
将插件添加glightbox到您的 mkdocs.yml 插件部分:<br />
642660
plugins:<br />
643661
- glightbox </p>
662+
<h2 id="latex">正常显示latex公式</h2>
663+
<p>pip install mkdocs python-markdown-math<br />
664+
extra_javascript:<br />
665+
- https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML<br />
666+
markdown_extensions:<br />
667+
- mdx_math </p>
644668

645669

646670

@@ -692,11 +716,7 @@ <h2 id="_5">添加插件</h2>
692716

693717
<script src="../assets/javascripts/bundle.ebd0bdb7.min.js"></script>
694718

695-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
696-
697-
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
698-
699-
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
719+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
700720

701721

702722
<script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});

sitemap.xml.gz

0 Bytes
Binary file not shown.

yolo/index.html

+122-46
Original file line numberDiff line numberDiff line change
@@ -446,19 +446,30 @@
446446

447447
</li>
448448

449-
<li class="md-nav__item">
449+
</ul>
450+
</nav>
451+
452+
</li>
453+
454+
</ul>
455+
</nav>
456+
457+
</li>
458+
459+
<li class="md-nav__item">
450460
<a href="#_4" class="md-nav__link">
451461
<span class="md-ellipsis">
452462
损失计算
453463
</span>
454464
</a>
455465

456-
</li>
466+
<nav class="md-nav" aria-label="损失计算">
467+
<ul class="md-nav__list">
457468

458469
<li class="md-nav__item">
459-
<a href="#_5" class="md-nav__link">
470+
<a href="#yolov8_2" class="md-nav__link">
460471
<span class="md-ellipsis">
461-
数据增强和训练策略
472+
yolov8
462473
</span>
463474
</a>
464475

@@ -467,6 +478,25 @@
467478
</ul>
468479
</nav>
469480

481+
</li>
482+
483+
<li class="md-nav__item">
484+
<a href="#_5" class="md-nav__link">
485+
<span class="md-ellipsis">
486+
数据增强和训练策略
487+
</span>
488+
</a>
489+
490+
<nav class="md-nav" aria-label="数据增强和训练策略">
491+
<ul class="md-nav__list">
492+
493+
<li class="md-nav__item">
494+
<a href="#yolov8_3" class="md-nav__link">
495+
<span class="md-ellipsis">
496+
yolov8
497+
</span>
498+
</a>
499+
470500
</li>
471501

472502
</ul>
@@ -755,19 +785,30 @@
755785

756786
</li>
757787

758-
<li class="md-nav__item">
788+
</ul>
789+
</nav>
790+
791+
</li>
792+
793+
</ul>
794+
</nav>
795+
796+
</li>
797+
798+
<li class="md-nav__item">
759799
<a href="#_4" class="md-nav__link">
760800
<span class="md-ellipsis">
761801
损失计算
762802
</span>
763803
</a>
764804

765-
</li>
805+
<nav class="md-nav" aria-label="损失计算">
806+
<ul class="md-nav__list">
766807

767808
<li class="md-nav__item">
768-
<a href="#_5" class="md-nav__link">
809+
<a href="#yolov8_2" class="md-nav__link">
769810
<span class="md-ellipsis">
770-
数据增强和训练策略
811+
yolov8
771812
</span>
772813
</a>
773814

@@ -776,6 +817,25 @@
776817
</ul>
777818
</nav>
778819

820+
</li>
821+
822+
<li class="md-nav__item">
823+
<a href="#_5" class="md-nav__link">
824+
<span class="md-ellipsis">
825+
数据增强和训练策略
826+
</span>
827+
</a>
828+
829+
<nav class="md-nav" aria-label="数据增强和训练策略">
830+
<ul class="md-nav__list">
831+
832+
<li class="md-nav__item">
833+
<a href="#yolov8_3" class="md-nav__link">
834+
<span class="md-ellipsis">
835+
yolov8
836+
</span>
837+
</a>
838+
779839
</li>
780840

781841
</ul>
@@ -798,7 +858,7 @@
798858

799859

800860

801-
<h1 id="yolo">yolo系列介绍</h1>
861+
<h1 id="yolo">YOLO系列介绍</h1>
802862
<h2 id="_1">性能比较</h2>
803863
<p>YOLOv8 相比 YOLOv5 精度提升非常多,但是 N/S/M 模型相应的参数量和 FLOPs 都增加了不少</p>
804864
<table>
@@ -927,32 +987,6 @@ <h4 id="backboneneck">backbone和neck</h4>
927987
可以看出,不再有之前的 objectness 分支,只有解耦的分类和回归分支,并且其回归分支使用了 Distribution Focal Loss 中提出的积分形式表示法<br />
928988
其结构如下所示:<br />
929989
<a class="glightbox" href="../pics/yolo_head.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="" src="../pics/yolo_head.png" /></a></p>
930-
<p><strong>Generalized Focal Loss</strong><br />
931-
之前面临的问题:<br />
932-
1. 类别分数和框的质量分数分开训练 不够端到端
933-
<a class="glightbox" href="../pics/GFL_1.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="" src="../pics/GFL_1.png" /></a>
934-
2. 坐标框回归的方式不够灵活 没有办法建模复杂场景下的情况 希望用一种general的分布去建模边界框的表示</p>
935-
<p>对于第一个问题,为了保证training和test一致,同时还能够兼顾分类score和质量预测score都能够训练到所有的正负样本,将两者的表示进行联合。从物理上来讲,我们依然还是保留分类的向量,但是对应类别位置的置信度的物理含义不再是分类的score,而是改为质量预测的score<br />
936-
对于第二个问题,我们选择直接回归一个任意分布来建模框的表示。当然,在连续域上回归是不可能的,所以可以用离散化的方式,通过softmax来实现即可 </p>
937-
<p><strong>Focal Loss</strong><br />
938-
为了解决单阶段目标检测场景存在的前景类和背景类之间的极端不平衡,缩放因子在训练期间自动降低简单示例的贡献,并且快速将模型集中在困难的例子上<br />
939-
$$
940-
\text{FL}(p) = -(1 - p_t)^\gamma \log(p_t), \quad p_t = \begin{cases}
941-
p, &amp; \text{when } y = 1 \
942-
1 - p, &amp; \text{when } y = 0
943-
\end{cases}
944-
$$</p>
945-
<p><strong>Quality Focal Loss</strong><br />
946-
为了将定位和分类联合,y表示训练期间预测边界框与其相应的地面实况边界框之间的 IoU 分数,动态值为 0∼1<br />
947-
采用 sigmoid 运算符 σ(·) 的多重二元分类来进行多类实现<br />
948-
由于不平衡问题仍在存在,需要在Focal Loss基础上进行扩展,使支持连续标签<br />
949-
(1)将交叉熵部分 − log(pt) 扩展为其完整版本 −((1 − y) log( 1 − σ) + y log(σ)); (2) 比例因子部分 (1 − pt)γ 被推广为估计 σ 与其连续标签 y 之间的绝对距离,即 |y − σ|β (β ≥ 0)<br />
950-
完整的公式如下<br />
951-
$$
952-
\text{QFL}(\sigma) = -|y - \sigma|^\beta \left( (1 - y) \log(1 - \sigma) + y \log(\sigma) \right).
953-
$$
954-
参数 β 控制权重降低率(实验得到 β = 2 最合适) </p>
955-
<p><strong>Distribution Focal Loss</strong> </p>
956990
<h4 id="c2f">C2f模块</h4>
957991
<p>将yolov5中的C3模块换成梯度流更丰富的C2f模块<br />
958992
csp模块的示意图如下:<br />
@@ -984,18 +1018,64 @@ <h4 id="c2f">C2f模块</h4>
9841018
y.extend(m(y[-1]) for m in self.m)
9851019
return self.cv2(torch.cat(y, 1))
9861020
</code></pre>
987-
<h4 id="_4">损失计算</h4>
1021+
<h2 id="_4">损失计算</h2>
1022+
<h3 id="yolov8_2">yolov8</h3>
9881023
<p>yolov8采用了动态分配正负样本策略 根据分类与回归的分数加权的分数选择正样本<br />
9891024
具体步骤为:<br />
9901025
计算真实框和预测框的匹配程度<br />
991-
$$ align_metric= s ^\alpha *u^\beta $$
1026+
<script type="math/tex; mode=display"> align\_metric= s ^\alpha *u^\beta </script>
9921027
其中,s是预测类别分值,u是预测框和真实框的ciou值,α和β为权重超参数,两者相乘就可以衡量匹配程度,当分类的分值越高且ciou越高时,align_metric的值就越接近于1,此时预测框就与真实框越匹配,就越符合正样本的标准<br />
9931028
对于每个真实框,直接对align_metric匹配程度排序,选取topK个预测框作为正样本<br />
994-
对一个预测框与多个真实框匹配测情况进行处理,保留ciou值最大的真实框<br />
995-
分类分支依然采用 BCE Loss<br />
1029+
对一个预测框与多个真实框匹配测情况进行处理,保留ciou值最大的真实框 </p>
1030+
<p>分类分支依然采用 BCE Loss<br />
1031+
<script type="math/tex; mode=display">L=\frac1N\sum_iL_i=\frac1N\sum_i-[y_i\cdot log(p_i)+(1-y_i)\cdot log(1-p_i)]</script>
9961032
回归分支需要和 Distribution Focal Loss 中提出的积分形式表示法绑定,因此使用了 Distribution Focal Loss, 同时还使用了 CIoU Loss<br />
997-
3个Loss 采用一定权重比例加权即可 </p>
998-
<h4 id="_5">数据增强和训练策略</h4>
1033+
yolov8引入Anchor-Free的Center-based methods(基于中心点)后,模型从输出“锚框大小偏移量(offest)”变为"预测目标框左、上、右、下边框距目标中心点的距离(ltrb = left, top, right, bottom)"<br />
1034+
CIOU loss用以令锚框更加接近标签值的损失,在(IOU)交并比损失上加上了宽高比的判据,从而更好在三种几何参数:重叠面积、中心点距离、长宽比上拟合目标框<br />
1035+
单独的CIOU loss的目标为“预测一个绝对正确的值(标签值)”,在数学上可以看做是一种“狄拉克分布”(一个点概率为无穷大,其他点概率为0),如果把标签认为是"绝对正确的目标",那么学习出的就是狄拉克分布,概率密度是一条尖锐的竖线。然而真实场景,物体边界并非总是十分明确的<br />
1036+
为配合Anchor-Free、以及提升泛化性,增加了DFL损失,DFL以交叉熵的形式,衡量模型输出分布和真实标签的差异,去优化与标签y最接近的一左一右2个位置的概率。模型输出的是边框在每个位置的概率值,为了防止随机性太强,损失只考虑离真值最近的两个位置,让网络迅速关注标签y附近的值,得到正确结果<br />
1037+
DFL公式如下<br />
1038+
<script type="math/tex; mode=display">\mathbf{DFL}(P_i,P_{i+1})=-((y_{i+1}-y)\mathrm{log}(P_i)+(y-y_i)\mathrm{log}(P_{i+1}))</script>
1039+
DFL的全局最小解,即$P_i=\frac{y_{i+1}-y}{y_{i+1}-y_i},P_{i+1}=\frac{y-y_i}{y_{i+1}-y_i}$可以保证估计的回归目标\hat{y}无限接近对应的标签y,即$\hat{y}=\sum_{j=0}^nP(y_j)y_j=P_iy_i+P_{i+1}y_{i+1}=\frac{y_{i+1}-y}{y_{i+1}-y_i}y_i+\frac{y-y_i}{y_{i+1}-y_i}y_{i+1}=y$<br />
1040+
yolov8中的DFL Loss代码如下 </p>
1041+
<pre><code>tl = target.long() # target left
1042+
tr = tl + 1 # target right
1043+
wl = tr - target # weight left
1044+
wr = 1 - wl # weight right
1045+
return (F.cross_entropy(pred_dist, tl.view(-1), reduction='none').view(tl.shape) * wl +
1046+
F.cross_entropy(pred_dist, tr.view(-1), reduction='none').view(tl.shape) * wr).mean(-1, keepdim=True)
1047+
</code></pre>
1048+
<p>感觉其实就是一个浮点数由离它最近的两个整数决定,越接近的整数权重越大 </p>
1049+
<p>3个Loss 采用一定权重比例加权即可 </p>
1050+
<p><strong>Generalized Focal Loss</strong><br />
1051+
之前面临的问题:<br />
1052+
1. 类别分数和框的质量分数分开训练 不够端到端
1053+
<a class="glightbox" href="../pics/GFL_1.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="" src="../pics/GFL_1.png" /></a>
1054+
2. 坐标框回归的方式不够灵活 没有办法建模复杂场景下的情况 希望用一种general的分布去建模边界框的表示</p>
1055+
<p>对于第一个问题,为了保证training和test一致,同时还能够兼顾分类score和质量预测score都能够训练到所有的正负样本,将两者的表示进行联合。从物理上来讲,我们依然还是保留分类的向量,但是对应类别位置的置信度的物理含义不再是分类的score,而是改为质量预测的score<br />
1056+
对于第二个问题,我们选择直接回归一个任意分布来建模框的表示。当然,在连续域上回归是不可能的,所以可以用离散化的方式,通过softmax来实现即可 </p>
1057+
<p><strong>Focal Loss</strong><br />
1058+
为了解决单阶段目标检测场景存在的前景类和背景类之间的极端不平衡,缩放因子在训练期间自动降低简单示例的贡献,并且快速将模型集中在困难的例子上<br />
1059+
<script type="math/tex; mode=display">
1060+
\text{FL}(p) = -(1 - p_t)^\gamma \log(p_t), \quad p_t = \begin{cases}
1061+
p, & \text{when } y = 1 \\
1062+
1 - p, & \text{when } y = 0
1063+
\end{cases}
1064+
</script>
1065+
</p>
1066+
<p><strong>Quality Focal Loss</strong><br />
1067+
为了将定位和分类联合,y表示训练期间预测边界框与其相应的地面实况边界框之间的 IoU 分数,动态值为 0∼1<br />
1068+
采用 sigmoid 运算符 σ(·) 的多重二元分类来进行多类实现<br />
1069+
由于不平衡问题仍在存在,需要在Focal Loss基础上进行扩展,使支持连续标签<br />
1070+
(1)将交叉熵部分 − log(pt) 扩展为其完整版本 −((1 − y) log( 1 − σ) + y log(σ)); (2) 比例因子部分 (1 − pt)γ 被推广为估计 σ 与其连续标签 y 之间的绝对距离,即 |y − σ|β (β ≥ 0)<br />
1071+
完整的公式如下<br />
1072+
<script type="math/tex; mode=display">
1073+
\text{QFL}(\sigma) = -|y - \sigma|^\beta \left( (1 - y) \log(1 - \sigma) + y \log(\sigma) \right).
1074+
</script>
1075+
参数 β 控制权重降低率(实验得到 β = 2 最合适) </p>
1076+
<p><strong>Distribution Focal Loss</strong> </p>
1077+
<h2 id="_5">数据增强和训练策略</h2>
1078+
<h3 id="yolov8_3">yolov8</h3>
9991079
<p>最后 10 个 epoch 关闭 Mosaic 的操作<br />
10001080
<a class="glightbox" href="../pics/yolov8_train.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="" src="../pics/yolov8_train.png" /></a></p>
10011081
<p>训练参数如下<br />
@@ -1062,11 +1142,7 @@ <h4 id="_5">数据增强和训练策略</h4>
10621142

10631143
<script src="../assets/javascripts/bundle.ebd0bdb7.min.js"></script>
10641144

1065-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
1066-
1067-
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
1068-
1069-
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
1145+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
10701146

10711147

10721148
<script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});

卡尔曼滤波/index.html

+1-5
Original file line numberDiff line numberDiff line change
@@ -623,11 +623,7 @@ <h2 id="_3"></h2>
623623

624624
<script src="../assets/javascripts/bundle.ebd0bdb7.min.js"></script>
625625

626-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
627-
628-
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
629-
630-
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
626+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
631627

632628

633629
<script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});

参数量分析/index.html

+1-5
Original file line numberDiff line numberDiff line change
@@ -720,11 +720,7 @@ <h2 id="reference">Reference<a class="headerlink" href="#reference" title="Perma
720720

721721
<script src="../assets/javascripts/bundle.ebd0bdb7.min.js"></script>
722722

723-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
724-
725-
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
726-
727-
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
723+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
728724

729725

730726
</body>

0 commit comments

Comments
 (0)