diff --git a/ch08_目标检测/img/ch8/8.5.1-1.png b/ch08_目标检测/img/ch8/8.5.1-1.png new file mode 100644 index 0000000..9cbaed1 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-1.png differ diff --git a/ch08_目标检测/img/ch8/8.5.1-2.png b/ch08_目标检测/img/ch8/8.5.1-2.png new file mode 100644 index 0000000..5e0579d Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-2.png differ diff --git a/ch08_目标检测/img/ch8/8.5.1-3.png b/ch08_目标检测/img/ch8/8.5.1-3.png new file mode 100644 index 0000000..ac05a58 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-3.png differ diff --git a/ch08_目标检测/img/ch8/8.5.1-4.png b/ch08_目标检测/img/ch8/8.5.1-4.png new file mode 100644 index 0000000..342d0e0 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-4.png differ diff --git a/ch08_目标检测/img/ch8/8.5.1-5.png b/ch08_目标检测/img/ch8/8.5.1-5.png new file mode 100644 index 0000000..6edccfe Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-5.png differ diff --git a/ch08_目标检测/img/ch8/8.5.1-6.png b/ch08_目标检测/img/ch8/8.5.1-6.png new file mode 100644 index 0000000..c4e5140 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-6.png differ diff --git a/ch08_目标检测/img/ch8/8.5.1-7.png b/ch08_目标检测/img/ch8/8.5.1-7.png new file mode 100644 index 0000000..f66c051 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-7.png differ diff --git a/ch08_目标检测/img/ch8/8.5.1-8.png b/ch08_目标检测/img/ch8/8.5.1-8.png new file mode 100644 index 0000000..5d3eb16 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.1-8.png differ diff --git a/ch08_目标检测/img/ch8/8.5.9-1.png b/ch08_目标检测/img/ch8/8.5.9-1.png new file mode 100644 index 0000000..1fb653f Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.9-1.png differ diff --git a/ch08_目标检测/img/ch8/8.5.9-2.png b/ch08_目标检测/img/ch8/8.5.9-2.png new file mode 100644 index 0000000..f7191c5 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.9-2.png differ diff --git a/ch08_目标检测/img/ch8/8.5.9-3.png b/ch08_目标检测/img/ch8/8.5.9-3.png new file mode 100644 index 0000000..6af4572 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.9-3.png differ diff --git a/ch08_目标检测/img/ch8/8.5.9-4.png b/ch08_目标检测/img/ch8/8.5.9-4.png new file mode 100644 index 0000000..5844819 Binary files /dev/null and b/ch08_目标检测/img/ch8/8.5.9-4.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-1.png b/ch08_目标检测/img/ch8/DetNet-1.png new file mode 100644 index 0000000..8e58938 Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-1.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-2.png b/ch08_目标检测/img/ch8/DetNet-2.png new file mode 100644 index 0000000..ab69c77 Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-2.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-3.png b/ch08_目标检测/img/ch8/DetNet-3.png new file mode 100644 index 0000000..f6040fb Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-3.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-4.png b/ch08_目标检测/img/ch8/DetNet-4.png new file mode 100644 index 0000000..e16b8ec Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-4.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-5.png b/ch08_目标检测/img/ch8/DetNet-5.png new file mode 100644 index 0000000..96c21a9 Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-5.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-6.png b/ch08_目标检测/img/ch8/DetNet-6.png new file mode 100644 index 0000000..177320c Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-6.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-7.png b/ch08_目标检测/img/ch8/DetNet-7.png new file mode 100644 index 0000000..4de6966 Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-7.png differ diff --git a/ch08_目标检测/img/ch8/DetNet-8.png b/ch08_目标检测/img/ch8/DetNet-8.png new file mode 100644 index 0000000..5b6e914 Binary files /dev/null and b/ch08_目标检测/img/ch8/DetNet-8.png differ diff --git a/ch08_目标检测/readme.md b/ch08_目标检测/readme.md index 1ed15ff..7b52e91 100644 --- a/ch08_目标检测/readme.md +++ b/ch08_目标检测/readme.md @@ -18,6 +18,8 @@ 更新日志:** +2019.9.20(明奇):新增DOTA数据集、目标检测的训练tricks、数据增强方法 + 2019.01.05(陈方杰):新增8.3节One-Stage检测算法:M2Det 2018.12.21(陈方杰):新增SSD系列创新点,新增YOLO系列创新点 diff --git a/ch08_目标检测/第八章_目标检测.md b/ch08_目标检测/第八章_目标检测.md index 3574f93..cd501c2 100644 --- a/ch08_目标检测/第八章_目标检测.md +++ b/ch08_目标检测/第八章_目标检测.md @@ -355,6 +355,74 @@ RoI Align的思路很简单:取消量化操作,使用双线性内插的方  +### 8.2.7 DetNet(贡献者:北京理工大学--明奇) + +1. **Motivation** + 这个论文的insight不错。作者在related works观察总结到,很多backbone的提出都是用于挑战ImageNet分类任务后被应用到检测上来,因此鲜有单独针对检测任务设计的backbone。 + + **检测和分类有明显的区别**:(1)不仅需要分类,还需要精确的定位 (2)最近的检测器都是基于类似FPN结构,在分类网络基础上加额外多尺度特征进行检测,应对不同尺度变化的目标。这两点又是相互补充,共同协助网络完成分类到检测任务的转变。例如分类任务是检测的一环所以必不可少,但是传统分类采用的最高级特征定位细节不够,因此很多最近网络设法用类似FPN的结构去处理尺度变化的问题,就将分类较好地过渡到检测任务上了。 + +2. **DetNet** + + 2.1 **Motivation** + 主要着眼点是**分辨率**,从大目标和小目标分别阐述保持分辨率的重要性。所以DetNet也是从分辨率的保持着手,解决多尺度物体的识别问题。 + +* Weak visibility of large objects + 网络在较深层如P6(FPN)P7(RetinaNet)大目标的边界不明确使精确定位困难。 + +* Invisibility of small objects + 小目标就很惨了,降采样容易丢。这个就不赘述了,所以只要避开降采样就能防止目标丢失,但是这种方法又会导致抽象能力不够 + + 2.2 **DetNet Design** + 保持分辨率有两个麻烦的问题:(1)内存消耗大,计算大 (2)降采样减少导致高层的抽象特征不足以很好地进行分类任务。下面设计时会同时考虑时间和高层抽象信息两点。 + 先放出DetNet的多尺度各stage的尺寸如下图, 可以看到,相比前两种方式,DetNet在P4之后就不再进一步降采样了,进行分辨率的保持。 + + + + 实现细节如下图: + + + +* 采用的backbone是ResNet-50,改进设计了DetNet-59。 +* 对bottlenecks进行了改进,传统的其实不止C,也包含两种,即将AB的膨胀卷积换成普通卷积。AB是新的基础模块。 +* 为了减少分辨率保持带来的时间和内存成本消耗,通道数固定为256(思考:降采样和膨胀卷积都会有信息丢失,这里可以想想)。 +* DetNet也可以加FPN结构,方法类似。 + + + +3. **Experiments** + 检测和训练的细节配置就不看了。 + + 3.1 **Main Results** + + + +* 在FPN基础上明显有大物体涨点,同时由于高分辨率,小物体也有不错的提升。 +* 膨胀卷积提供的大感受野使得分类也不逊色 + + + 3.2 **Results analysis** + + +* 从AP50看出,高好1.7;从AP80看出,高了3.7。由此可以看出确实提高了检测性能。( +* 从定位性能来看,大物体的提升比小物体更多。作者认为是高分辨率解决了大物体边界模糊的问题。其实有一种解释:小目标没有大目标明显,因为膨胀卷积核降采样都会丢失小目标,只是膨胀卷积可能离散采样不至于像降采样直接给到后面没了,但是没有根本性的解决,所以小目标不大。 + + +* AR指标也有类似结论 +* AR50体现了小目标的查全率更好,这也印证上面分析的:相对降采样,膨胀卷积丢失会好点。此下大目标效果虽然提升不大但是也很高了,作者表示DetNet擅长找到更精确的定位目标,在AR85的高指标就能看出。 +* AR85看大目标丢失少,说明能够像 VGG一样对大目标效果优良。关于小目标的效果平平,作者认为没有必要太高,因为FPN结构对小目标已经利用地很充分了,这里即使不高也没事。 + + + +3.3 **Discussion** +* 关于stage + 为了研究backbone对检测的影响,首先研究stage的作用。前4个还好说,和ResNet一样,但是P5 P6就不同,没有尺度的变化,和传统意义的stage不一样了,需要重新定义。这里DetNet也是类似ResNet的方法,虽然没有尺度变化,但是AB模块的位置还是保持了,B开启一个stage(~~听上去有点牵强~~)。如下图,认为新加的仍属于P5。 + + + 验证方法是做了实验,将P6开始的block换成上图所示的A模块对比效果如下图。 发现还是加了B效果更好。(但是这个stage和传统意义很不一样,所以很多性质不能相提并论,只是B模块的改变也不好判定什么) + + + ## 8.3 One Stage目标检测算法 @@ -998,14 +1066,208 @@ $$ ## 8.5 目标检测的技巧汇总 -1. Data Augmentation -2. OHEM -3. NMS:Soft NMS/ Polygon NMS/ Inclined NMS/ ConvNMS/ Yes-Net NMS/ Softer NMS -4. Multi Scale Training/Testing -5. 建立小物体与context的关系 -6. 参考relation network -7. 结合GAN -8. 结合attention +### 8.5.1 Data Augmentation(贡献者:北京理工大学--明奇) +介绍一篇发表在Big Data上的数据增强相关的文献综述。 +1. **Introduction** +* 数据增强与过拟合 +验证是否过拟合的方法:画出loss曲线,如果训练集loss持续减小但是验证集loss增大,就说明是过拟合了。 + + + +* 数据增强目的 +通过数据增强实现数据更复杂的表征,从而减小验证集和训练集以及最终测试集的差距,让网络更好地学习迁移数据集上的数据分布。这也说明网络不是真正地理解数据,而是记忆数据分布。 + +* 数据增强的方法 +(1)数据变换增强 +包括几何变换、色彩空间变换,随机擦除,对抗训练,神经风格迁移等 +(2)重采样增强 +主要侧重于新的实例合成。如图像混合(mixup),特征空间的增强,GAN生成图片。一张图看明白: + + + +2. **Image Data Augmentation techniques** + +2.1 **Data Augmentations based on basic image manipulations** + +* Geometric transformations + 如果数据集潜在的表征能够被观察和分离,那么简单的几何变换就能取得很好的效果。对于复杂的数据集如医学影像,数据小而且训练集和测试集的偏差大,几何变换等增强的合理运用就很关键。 + + * Flipping +作者提到了要衡量普遍性的观点。但是这种变换对于数字数据集不具有安全性。 + + * Color space +主要提及的识别RGB通道上的变换,将三通道图进行分离,以及直方图变换增强等。(颜色空间更多增强方式可以参考A Preliminary Study on Data Augmentation of Deep Learning for Image Classification) + + * Cropping +通常在输入图片的尺寸不一时会进行按中心的裁剪操作。裁剪某种程度上和平移操作有相似性。根据裁剪幅度变化,该操作具有一定的不安全性。 + + * Rotation +大幅度的旋转对数字集会有不安全性的考虑。 + + * Translation +平移也需要合理设计。如车站人脸检测,只需要中心检测时,就可以加合适的平移增强。平移后空出部分填0或者255,或用高斯分布噪声。 + + * Noise injection +在像素上叠加高斯分布的随机噪声。 + +* Color space transformations + 由于实际图像中一定存在光线偏差,所以光线的增强十分有必要(但是IJCV的光流文章指出,3D建模的灯光增强实在是很难学习到,所以对于光线增强的效果不如几何也可能因为**光线的复杂度更高,数据样本远远不够**)。色彩变换十分多样,如像素限制、像素矩阵变换、像素值颠倒等;灰度图和彩图相比,计算时间成本大大较少,但是据实验效果会下降一些,很明显因为特征的维度被降维了;还有尝试将RGB映射到其他的色彩空间进行学习,YUV,CMY.HSV等。 + 除了计算大内存消耗和时间长等缺点,色彩变换也面临不安全性,比如识别人脸的关键信息是黄白黑,但是大量增强出红绿蓝,会丢信息。颜色变换的增强方法是从色彩空间角度拟合偏置,效果有限的可能性是多样的:1. 真实几何多样性比颜色更简单 2. 色彩的变化多样性更多,导致增强不够反而学不好,颜色空间的欠拟合 3. **变换不安全** + + +* Experiment + + +**随机裁剪**效果最好。 + + +2.2 **Geometric versus photometric transformations** +* Kernel filter +滤波器核在图像处理用的比较广,这里提到用这种方法来增强。还提到了一种正则化增强方法PatchShuffle,在一个patch内随机交换像素值,使得对噪声的抵抗更强以及避免过拟合。 +文章指出关于应用滤波器增强的工作尚且不多,因为这种方法其实和CNN的机制是一样的,这么做也许还不如直接在原始CNN上加层加深网络。 + +* Mixing images +~~就是那篇被ICLR拒稿的采样方法~~直接均值相加混合。 + + + + 还有非线性的mixup裁剪如下: + + + + 以及随机裁剪的图像混合: + + + + 这些混合方式是十分反人类直觉的,因此可解释性不强。只能说是可能增强了对底层低级特征如线条边缘等的鲁棒性。其实有点没有抓住关键点。 + +* Random erasing +随机擦除就是类似cutout的思想,通过mask的遮挡使得网络能够提高遮挡情况的鲁棒性。需要手工设计的部分包括mask的大小以及生成方式。是一种比较有效的方法。这种方式也需要考量增强的安全性,比如MNIST数据集8cutout后可能出问题。 + + + +* A note on combining augmentations +组合的增强方式往往是连续变化的,导致数据集的容量会迅速扩大,这对于小数据集领域来说容易发生过拟合 ,所以需要设计合理的搜索算法设计恰当的训练数据集。 + +2.3 **Data Augmentations based on Deep Learning** +* Feature space augmentation +之前刚看的基于SMOTE类别不平衡的过采样法来进行特征空间的插值操作进行数据增强,就实验效果而言不算特别出众。 + +* Adversarial training +对抗样本训练可以提高鲁棒性,但是实际应用中其实提高不一定明显,因为自然对抗样本的数目没有那么多。而NIPS的对抗攻击大赛很多从神经网络的学习策略下手,进行梯度攻击,更加偏向于人为的攻击了,对于普适的检测性能提高意义反而不大,更强调安全需求高的场合。 + +* GAN‑based Data Augmentation + +* Neural Style Transfer + +不觉得这个效果会普遍很好,应该来说是针对特定域会有效(如白天黑夜),实际效果应该有限。 + +* Meta learning Data Augmentations + * Neural augmentation + * Smart Augmentation + 两个东西差不多,就是上次看到SmartAugment方法。随机采样类内图片进行通道叠加然后输出融合图像,学通过梯度下降使得输出图像的类内差距减小(没考虑类间关系,可能也不便处理)。 + + + +* AutoAugment +谷歌最早做的自学习增强方法,走的NAS的思路RL+RNN搜索增强空间,还有后来最近发的检测增强也是大同小异,基本就是换汤不换药,问题在于**搜索空间太大**,复现搜索过于依赖硬件条件(~~普通实验室玩不起~~) + +3. **Design considerations for image Data Augmentation** + +3.1 **Test-time augmentation** + 许多都论文指出在检测阶段进行同等的数据增强能够获得较好的效果。归结可以认为是训练检测阶段的一致性。当然,这种手段时间成本太高,只在如医学影像等追求精度的关键领域可以使用。 + +3.2 **Curriculum learning** + Bengio团队早年在ICML提出的观点,确实合理,一开始就进行大量的增强容易导致网络不收敛。 +从一个数据集学习到的数据增强也可以迁移到其他数据集。 + + +3.3 **Resolution impact** +高清(1920×1080×3)或4K(3840×2160×3)等高分辨率图像需要更多的处理和内存来训练深度CNN。然而下一代模型更倾向于使用这样更高分辨率的图像。因为模型中常用的下采样会造成图像中信息的丢失,使图像识别更困难。 +研究人员发现,高分辨率图像和低分辨率图像一起训练的模型集合,比单独的任何一个模型都要好。 +某个实验(这里就不注明引用了)在256×256图像和512×512图像上训练的模型分别获得7.96%和7.42%的top-5 error。汇总后,他们的top-5 error变低,为6.97%。 +随着超分辨率网络的发展,将图像放大到更高的分辨率后训练模型,能够得到更好更健壮的图像分类器。 + +3.4 **Final dataset size** + 数据增强的形式可以分为在线和离线增强。前者是在加载数据时增强,可能造成额外的内存消耗(现在都是数据容量不变的随机增强)。 + 此外作者提到了一个比较有意思的点:当前数据集尤其是进行增广后是十分庞大的,明显能够在一定程度上缩小数据集但是保持性能下降不多的子集效率会高得多。 + +3.5 **Alleviating class imbalance with Data Augmentation** + 这也是值得借鉴的一点。通过增强在一定程度上解决类别不平衡问题。但增强需要仔细设计,否则会面对已经学习较好的类别或者场景造成过拟合等问题。 + + + +### 8.5.2 OHEM + +### 8.5.3 NMS:Soft NMS/ Polygon NMS/ Inclined NMS/ ConvNMS/ Yes-Net NMS/ Softer NMS + +### 8.5.4 Multi Scale Training/Testing + +### 8.5.5 建立小物体与context的关系 + +### 8.5.6 参考relation network + +### 8.5.7 结合GAN + +### 8.5.8 结合attention + +### 8.5.9 训练tricks(贡献者:北京理工大学--明奇) +介绍一篇2019.2.4亚马逊挂在ArXiv的目标检测训练tricks的文章(之前亚马逊发了篇分类的tricks在CVPR上) + +1. **Introduction** + + 上次亚马逊发了个分类的训练trick在CVPR上,这次是检测的,还没发表。就没什么多说的了,下面直接介绍。先看效果如下,其实摘要声称的5%是单阶段的yolov3的提升,说明:单阶段没有RoIPooling阶段很多性质确实不如两阶段,因此采用trick很有必要;相反,两阶段本身结构优于单阶段所以外加的trick提供的如不变性等网络自身能够学习和适应就不起作用了。 + + + +2. **Bag of Freebies** + + 提出了一种基于mixup的视觉联系图像混合方法,以及一些数据处理和训练策略。 + +2.1 **Visually Coherent Image Mixup for Object Detection** + 先介绍图像分类中的mixup方法,作用是提供了训练的正则化,应用到图像上如下图,将图像作简单的像素值输入mixup的凸函数中得到合成图;然后将one-hot编码类似处理得到新的label。 + + + + + 技术细节: +* 相比于分类的resize,为了保证检测图像不畸变影响效果,作者选择直接叠加,取最大的宽高,空白进行灰度填充,不进行缩放。 +* 选择ab较大(如1.5,1.5)的Beta分布作为系数来混合图像,作者说是相干性视觉图像的更强;loss是两张图像物体的loss之和,loss计算权重分别是beta分布的系数 + + + + + +2.2 **Classification Head Label Smoothing** + 标签平滑在检测的分类任务常有用到,最早是Inceptionv2中提出。 + 如果标签中有的是错的,或者不准,会导致网络过分信任标签而一起错下去。为了提高网络泛化能力,避免这种错误,在one-hot的label进行计算loss时,真实类别位置乘以一个系数(1-e),e很小如0.05,以0.95的概率送进去;非标注的类别原来为0,现在改为e=0.05送进去计算loss。网络的优化方向不变,但是相比0-1label会更加平滑。 +(标签平滑这个讲的不错:https://juejin.im/post/5a29fd4051882534af25dc92) + + + + + + 这里进一步改进了一下label smooth的公式而已,在原来基础上除了个类别数。 + +2.3 **Data Preprocessing** + 就是数据增强,没什么其他的。至于分类也是几何变换和色彩变换。这么分区别其实是是否变换label。但是将真实世界就这么简单地分解过于粗糙了。好不容易谷歌的增强考虑到了如何学习一下检测任务的增强,但是也只是加了bbox_only的增强,就效果而言,一般;而且就实际来说,合理性和有效性有待商榷。 + 作者认为,两阶段网络的RPN生成就是对输入的任意裁剪,所以这个增强就够了;这老哥膨胀了,two-stage就不用裁剪的增强,虽然两阶段能提供一些不变性,但是用了一般来说都是更好的。 + +2.4 **Training Schedule Revamping** +训练策略上:余弦学习率调整+warmup + +2.5 **Synchronized Batch Normalization** +跨多卡同步正则化,土豪专区,穷人退避 + +2.6 **Random shapes training for single-stage object detection networks** +多尺度训练,每经过一定的iteration更换一种尺度。举例是yolov3的尺度范围。 + + + + + + + ## 8.6 目标检测的常用数据集 @@ -1029,6 +1291,9 @@ $$ ImageNet是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。能够从图片识别物体。Imagenet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。Imagenet数据集有1400多万幅图片,涵盖2万多个类别;其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。 +### 8.6.5 DOTA + DOTA是遥感航空图像检测的常用数据集,包含2806张航空图像,尺寸大约为4kx4k,包含15个类别共计188282个实例,其中14个主类,small vehicle 和 large vehicle都是vehicle的子类。其标注方式为四点确定的任意形状和方向的四边形。航空图像区别于传统数据集,有其自己的特点,如:尺度变化性更大;密集的小物体检测;检测目标的不确定性。数据划分为1/6验证集,1/3测试集,1/2训练集。目前发布了训练集和验证集,图像尺寸从800x800到4000x4000不等。 + ## 8.7 目标检测常用标注工具 diff --git a/ch09_图像分割/img/ch9/9.13-1.png b/ch09_图像分割/img/ch9/9.13-1.png new file mode 100644 index 0000000..de50b3a Binary files /dev/null and b/ch09_图像分割/img/ch9/9.13-1.png differ diff --git a/ch09_图像分割/img/ch9/9.13-2.png b/ch09_图像分割/img/ch9/9.13-2.png new file mode 100644 index 0000000..cc327a2 Binary files /dev/null and b/ch09_图像分割/img/ch9/9.13-2.png differ diff --git a/ch09_图像分割/img/ch9/9.13-3.png b/ch09_图像分割/img/ch9/9.13-3.png new file mode 100644 index 0000000..8185779 Binary files /dev/null and b/ch09_图像分割/img/ch9/9.13-3.png differ diff --git a/ch09_图像分割/img/ch9/9.13-4.png b/ch09_图像分割/img/ch9/9.13-4.png new file mode 100644 index 0000000..072f064 Binary files /dev/null and b/ch09_图像分割/img/ch9/9.13-4.png differ diff --git a/ch09_图像分割/img/ch9/9.13-5.png b/ch09_图像分割/img/ch9/9.13-5.png new file mode 100644 index 0000000..e37745d Binary files /dev/null and b/ch09_图像分割/img/ch9/9.13-5.png differ diff --git a/ch09_图像分割/readme.md b/ch09_图像分割/readme.md index fc3e1b3..e0dc71a 100644 --- a/ch09_图像分割/readme.md +++ b/ch09_图像分割/readme.md @@ -13,4 +13,6 @@ **贡献者(排名不分先后):** 内容贡献者可自加信息 +北京理工大学--明奇 + ########################################################### \ No newline at end of file diff --git a/ch09_图像分割/第九章_图像分割.md b/ch09_图像分割/第九章_图像分割.md index ed8e264..1592be5 100644 --- a/ch09_图像分割/第九章_图像分割.md +++ b/ch09_图像分割/第九章_图像分割.md @@ -39,7 +39,6 @@ 