深度学习教程(12) | CNN应用:目标检测(吴恩达·完整版)

神经网络 深度神经网络,深度神经网络应用实例 其实咱们的实际生活中已经有很多应用深度学习技术的案例了。比如电商行业,在浏览淘宝时,页面中有很多都是符合你的爱好并且最近有意向购买的商品,这种个性化推荐中就涉及到深度学习技术,还有就是在购物界面能和你进行对话,解决疑问的淘宝智能机器人,也涉及深度学习技术。比如交通领域,通过深度学习技术能监测到车辆停车、逆行等行为,甚至精确识别车辆的车牌号、颜色、车型、车辆里的人物等来辅助交通执法,甚至在发生交通事故和交通拥堵时进行报警等。比如金融行业,银行通过深度学习技术能对数以百万的消费者数据(年龄,职业,婚姻状况等)、 阅读详情
AI摘要

本文深入讲解了目标检测中的关键概念,包括YOLO算法如何结合卷积实现高效边框预测,以及R-CNN系列(如FastR-CNN和FasterR-CNN)如何改进滑动窗口方法。重点介绍了AnchorBoxes在多目标检测中的应用和非极大值抑制的原理。


第4门课 卷积神经网络,第3周:目标检测

本系列为吴恩达老师《深度学习专项课程(Deep Learning Specialization)》学习与总结整理所得,对应的课程视频可以在这里查看。

引言

在ShowMeAI前一篇文章 经典CNN网络实例详解 中我们对以下内容进行了介绍:

  • 经典CNN结构
    • LeNet-5
    • AlexNet
    • VGG
  • ResNet(Residual Network,残差网络)
  • Inception Neural Network
  • 1x1卷积
  • 迁移学习
  • 数据扩增
  • 手工工程与计算机现状

目标检测

本篇主要介绍计算机视觉中最典型的应用之一目标检测,目标检测任务是对输入图像进行分类的同时,检测图像中是否包含某些目标,并对他们准确定位并标识。

1.目标定位

目标定位 Object Localization

我们在前面的内容中,主要给大家介绍图像识别(分类)相关的知识,除了图像识别,我们还有「目标定位」和「目标检测」任务,如下图所示。

定位分类问题不仅要求判断出图片中物体的种类,还要在图片中标记出它的具体位置,用**边框(Bounding Box,或者称包围盒)**把物体圈起来。如图中间所示。

目标定位

我们稍微说明一下定位分类和目标检测任务的差别:通常在定位分类问题中,只有一个较大的对象位于图片中间位置;而在目标检测问题中,图片可以含有多个对象,甚至单张图片中会有多个不同分类的对象。

定位分类任务中的「分类」部分大家已经非常熟悉了,使用如下的卷积神经网络即可完成。

目标定位

原始图片经过若干卷积神经网络层次后,Softmax层输出分类(上图维度是 4 × 1 4 \times 1 4×1)向量,分别是pedestrain,car,motorcycle和background四类。

对于目标定位问题,其模型如下所示:

目标定位

为了定位图片中汽车的位置,可以让神经网络多输出 4 个数字,标记为 b x b_x bx​、 b y b_y by​、 b h b_h bh​、 b w b_w bw​(注意上图中 P c P_c Pc​是一个表示目标物是否存在的01取值标签)。将图片左上角标记为 ( 0 , 0 ) (0, 0) (0,0),右下角标记为 ( 1 , 1 ) (1, 1) (1,1),则有:

  • 橙色方框的中心点: ( b x , b y ) (b_x, b_y) (bx​,by​)
  • 边界框的高度: b h b_h bh​
  • 边界框的宽度: b w b_w bw​

因此,训练集不仅包含对象分类标签,还包含表示边界框的四个数字。定义目标标签 Y Y Y 如下:

[ P c b x b y b h b w c 1 c 2 c 3 ] \left[\begin{matrix}P_c\\ b_x\\ b_y\\ b_h\\ b_w\\ c_1\\ c_2\\ c_3\end{matrix}\right] ⎣ ⎡​Pc​bx​by​bh​bw​c1​c2​c3​​⎦ ⎤​

则有:

P c = 1 , Y = [ 1 b x b y b h b w c 1 c 2 c 3 ] P_c=1, Y = \left[\begin{matrix}1\\ b_x\\ b_y\\ b_h\\ b_w\\ c_1\\ c_2\\ c_3\end{matrix}\right] Pc​=1,Y=⎣ ⎡​1bx​by​bh​bw​c1​c2​c3​​⎦ ⎤​

其中, c n c_n cn​表示存在第 n n n个种类的概率;如果 P c = 0 P_c=0 Pc​=0,表示没有检测到目标,则输出标签后面的 7 个参数都是无效的,可以忽略(用 ? 来表示)。

P c = 0 , Y = [ 0 ? ? ? ? ? ? ? ] P_c=0, Y = \left[\begin{matrix}0\\ ?\\ ?\\ ?\\ ?\\ ?\\ ?\\ ?\end{matrix}\right] Pc​=0,Y=⎣ ⎡​0???????​⎦ ⎤​
`

损失函数可以表示为 L ( y ^ , y ) L(\hat{y}, y) L(y^​,y),如果使用平方误差形式,对于不同的 P c P_c Pc​有不同的损失函数(注意下标 i i i 指标签的第 i i i个值):

  • P c = 1 P_c=1 Pc​=1,即 y 1 = 1 y_1=1 y1​=1: L ( y ^ , y ) = ( y ^ 1 − y 1 ) 2 + ( y ^ 2 − y 2 ) 2 + ⋯ + ( y ^ 8 − y 8 ) 2 L(\hat{y},y)=(\hat{y}_1-y_1)^2+(\hat{y}_2-y_2)^2+\cdots+(\hat{y}_8-y_8)^2 L(y^​,y)=(y^​1​−y1​)2+(y^​2​−y2​)2+⋯+(y^​8​−y8​)2

  • P c = 0 P_c=0 Pc​=0,即 y 1 = 0 y_1=0 y1​=0: L ( y ^ , y ) = ( y ^ 1 − y 1 ) 2 L(\hat{y},y)=(\hat{y}_1-y_1)^2 L(y^​,y)=(y^​1​−y1​)2

除了使用平方误差,也可以使用逻辑回归损失函数,类标签 c 1 c_1 c1​, c 2 c_2 c2​, c 3 c_3 c3​ 也可以通过 Softmax 输出。相比较而言,平方误差已经能够取得比较好的效果。

2.特征点检测

特征点检测 Landmark Detection

神经网络可以像标识目标的中心点位置那样,通过输出图片上的特征点,来实现对目标特征的识别。在标签中,这些特征点以多个二维坐标的形式表示。

通过检测人脸特征点可以进行情绪分类与判断,或者应用于 AR 领域等等。也可以透过检测姿态特征点来进行人体姿态检测。例如人脸识别,可以对人脸部分特征点坐标进行定位检测,并标记出来,如下图所示:

特征点检测

上图中的网络模型共检测人脸上 64 64 64处特征点,加上是否为人脸的标志位,输出标签共有 64 x 2 + 1 = 129 64x2+1=129 64x2+1=129个值。检测人脸特征点有一些典型的场景应用,比如可以进行情绪分类与判断,或者应用于AR领域等。

除了人脸特征点检测之外,可以对其进行拓展,基于特征点连接检测人体姿势动作,如下图所示:

特征点检测

3.目标检测

目标检测 Object Detection

目标检测问题中,我们要对图片中的多个对象进行识别和位置检测,一种直观能想到的实现方法是基于滑动窗口的目标检测(Sliding Windows Detection)算法。该算法的步骤如下:

目标检测

  • ① 训练集上搜集相应的各种目标图片和非目标图片,样本图片要求尺寸较小,相应目标居于图片中心位置并基本占据整张图片。
  • ② 使用训练集构建 CNN 模型,使得模型有较高的识别率。
  • ③ 选择大小适宜的窗口与合适的固定步幅,对测试图片进行从左到右、从上倒下的滑动遍历。每个窗口区域使用已经训练好的 CNN 模型进行识别判断。若判断有目标,则此窗口即为目标区域;若判断没有目标,则此窗口为非目标区域。
  • ④ 可以选择更大的窗口,然后重复第三步的操作。

滑动窗口目标检测的优点:

  • 原理简单,且不需要人为选定目标区域。

滑动窗口目标检测的缺点

  • 需要人为直观设定滑动窗口的大小和步幅。滑动窗口过小或过大,步幅过大均会降低目标检测的正确率。
  • 每次滑动都要进行一次 CNN 网络计算,如果滑动窗口和步幅较小,计算成本往往很大。

综上,滑动窗口目标检测算法虽然简单,但是性能不佳,效率较低。

4.基于卷积的滑动窗口实现

卷积的滑动窗口实现 Convolutional Implementation of Sliding Windows

滑动窗口目标检测算法可以借助卷积方式实现,以提高运行速度,节约重复运算成本。

我们需要先对CNN网络结构做一些调整,以便对进入网络的「单个滑动窗口区域」更快捷计算,具体做法是把全连接层转变成为卷积层,如下图所示:

基于卷积的滑动窗口实现

我们可以看到,使用与上层尺寸一致的滤波算子进行卷积运算,构建的卷积层就可以替代掉原来的全连接层。最终得到的输出层维度是 1 × 1 × 4 1 \times 1 \times 4 1×1×4,代表4类输出值。

对于待检测图片,可使用该网络参数和结构进行运算。例如 16 × 16 × 3 16 \times 16 \times 3 16×16×3的图片,步进长度为2,CNN网络得到的输出层为 2 × 2 × 4 2 \times 2 \times 4 2×2×4。其中, 2 × 2 2 \times 2 2×2表示共有4个窗口结果。

基于卷积的滑动窗口实现

对于更复杂的 28 × 28 × 3 28 \times 28 \times 3 28×28×3的图片,CNN网络得到的输出层为 8 × 8 × 4 8 \times 8 \times 4 8×8×4,共64个窗口结果。

基于卷积的滑动窗口实现

前面提到的滑动窗口目标检测算法需要反复进行CNN正向计算。例如 16 × 16 × 3 16 \times 16 \times 3 16×16×3的图片需进行4次, 28 × 28 × 3 28 \times 28 \times 3 28×28×3的图片需进行 64 64 64次。

利用卷积操作替代后,不管原始图片有多大,只需要进行一次CNN正向计算,因为其中共享了很多重复计算部分,这大大节约了运算成本。

注意,窗口步进长度与选择的MAX POOL大小有关。如果需要步进长度为4,只需设置MAX POOL为 4 × 4 4 \times 4 4×4即可。

相关论文:Sermanet et al., 2014. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

5.边框预测

Bounding Box预测 Bounding Box Predictions

滑动窗口目标检测算法中,边框的位置可能无法完美覆盖目标(如下图蓝框),或者大小不合适,或者最准确的边框并非正方形,而是长方形。

边框预测

YOLO(You Only Look Once)算法可以用于得到更精确的边框。YOLO 算法将原始图片划分为 n × n n \times n n×n 网格,并将目标定位一节中提到的图像分类和目标定位算法,逐一应用在每个网格中,每个网格都有标签如:

[ P c b x b y b h b w c 1 c 2 c 3 ] \left[\begin{matrix}P_c\\ b_x\\ b_y\\ b_h\\ b_w\\ c_1\\ c_2\\ c_3\end{matrix}\right] ⎣ ⎡​Pc​bx​by​bh​bw​c1​c2​c3​​⎦ ⎤​

若某个目标的中点落在某个网格,则该网格负责检测该对象。如果目标中心坐标不在当前网格内,则当前网格 P c = 0 P_c=0 Pc​=0;相反,则当前网格 P c = 1 P_c=1 Pc​=1(即只看中心坐标是否在当前网格内)。判断有目标的网格中,限定了目标区域。

边框预测

如上面的示例中,如果将输入的图片划分为 3 × 3 3 \times 3 3×3 的网格、需要检测的目标有 3 类,则每一网格部分图片的标签会是一个 8 维的列矩阵,最终输出的就是大小为 3 × 3 × 8 3 \times 3 \times 8 3×3×8 的结果。要得到这个结果,就要训练一个输入大小为 100 × 100 × 3 100 \times 100 \times 3 100×100×3,输出大小为 3 × 3 × 8 3 \times 3 \times 8 3×3×8 的 CNN。在实践中,可能使用更为精细的 19 × 19 19 \times 19 19×19 网格,则两个目标的中点在同一个网格的概率更小。

YOLO 算法的优点:

  • 和图像分类和目标定位算法类似,显式输出边框坐标和大小,不会受到滑窗分类器的步长大小限制。
  • 仍然只进行一次 CNN 正向计算,效率很高,甚至可以达到实时识别。

如何编码边框 b x b_x bx​、 b y b_y by​、 b h b_h bh​、 b w b_w bw​?YOLO 算法设 b x b_x bx​、 b y b_y by​、 b h b_h bh​、 b w b_w bw​ 的值是相对于网格长的比例。则 b x b_x bx​、 b y b_y by​ 在 0 到 1 之间,而 b h b_h bh​、 b w b_w bw​ 可以大于 1。当然,也有其他参数化的形式,且效果可能更好。这里只是给出一个通用的表示方法。

相关论文:Redmon et al., 2015. You Only Look Once: Unified, Real-Time Object Detection。Ng 认为该论文较难理解。

6.交互比

交并比 Intersection over Union

交互比(IoU, Intersection Over Union)函数用于评价对象检测算法,它计算预测边框和实际边框交集( I I I)与并集( U U U)之比。

交互比IoU

如上图右侧所示,橙色方框为真实目标区域,蓝色方框为检测目标区域。两块区域的交集为绿色部分,并集为紫色部分。蓝色方框与橙色方框的接近程度可以用IoU比值来定义:

I o U = I U IoU=\frac{I}{U} IoU=UI​

I o U IoU IoU的值在 0~1 之间,且越接近 1 表示目标的定位越准确。 I o U ≥ 0.5 IoU \ge 0.5 IoU≥0.5 时,一般可以认为预测边框是正确的,当然也可以更加严格地要求一个更高的阈值。

7.非极大值抑制

非极大值抑制 Non-max suppression

YOLO 算法中,可能有很多网格检测到同一目标。如下图所示

非极大值抑制(Non-max Suppression)可以解决上述问题。它的做法很简单:

非极大值抑制NMS

  • 上图中每个网格的 P c P_c Pc​值可以求出, P c P_c Pc​值反映了该网格包含目标中心坐标的可信度。
  • 首先选取 P c P_c Pc​最大值对应的网格和区域,然后计算该区域与所有其它区域的IoU,剔除掉IoU大于阈值(例如0.5)的所有网格及区域。这样就能保证同一目标只有一个网格与之对应,且该网格 P c P_c Pc​最大,最可信。
  • 接着,再从剩下的网格中选取 P c P_c Pc​最大的网格,重复上一步的操作。
  • 最后,就能使得每个目标都仅由一个网格和区域对应。如下图所示:

总结非极大值抑制NMS的步骤如下:

  • ① 将包含目标中心坐标的可信度 P c P_c Pc​ 小于阈值(例如 0.6)的网格丢弃;
  • ② 选取拥有最大 P c P_c Pc​ 的网格;
  • ③ 分别计算该网格和其他所有网格的 IoU,将 IoU 超过预设阈值的网格丢弃;
  • ④ 重复第 2~3 步,直到不存在未处理的网格。

当然,上面提到的步骤适用于单类别目标检测。如果要进行多个类别目标检测,对于每个类别,应该单独做一次非极大值抑制。

8.Anchor Boxes

Anchor Boxes

到目前为止,我们讨论的情况都是一个网格只检测一个对象。如果要将算法运用在多目标检测上(如下图一个人站在一辆车前面),怎么做呢?这里需要用到 Anchor Boxes。

以下图为例,同一网格出现了两个目标:人和车。为了同时检测两个目标,我们可以设置两个Anchor Boxes:Anchor box 1检测人,Anchor box 2检测车。

Anchor Boxes

对应到网络中,则每个网格多加了一层输出:原来的输出维度是$ 3 \times 3 \times 8$,现在是 3 × 3 × 2 × 8 3 \times 3 \times 2 \times 8 3×3×2×8(也可以写成 3 × 3 × 16 3 \times 3 \times 16 3×3×16的形式)。这里的2表示有两个Anchor Boxes,用来在一个网格中同时检测多个目标。每个Anchor box都有一个 P c P_c Pc​值,若两个 P c P_c Pc​值均大于某阈值,则检测到了两个目标。

标签 y y y形态为

y = [ P c b x b y b h b w c 1 c 2 c 3 P c b x b y b h b w c 1 c 2 c 3 ] y=\left [ \begin{matrix} Pc \\ bx \\ by \\ bh \\ bw \\ c1 \\ c2 \\ c3 \\ Pc \\ bx \\ by \\ bh \\ bw \\ c1 \\ c2 \\ c3 \end{matrix} \right] y=⎣ ⎡​Pcbxbybhbwc1c2c3Pcbxbybhbwc1c2c3​⎦ ⎤​

在使用YOLO算法时,只需对每个Anchor box使用上一节的非最大值抑制即可。Anchor Boxes之间并行实现。当然,Anchor Boxes 也有局限性,对于同一网格有三个及以上目标,或者两个目标的 Anchor Box 高度重合的情况处理不好。

怎么选择Anchor Boxes:

  • 一般手工指定Anchor Boxes形状,可以选择5到10个Anchor Box形状,覆盖到想要检测的对象的各种形状
  • 更高级的是使用k均值算法(更详细算法介绍可以阅读ShowMeAI文章 图解机器学习 | 聚类算法详解),将两类对象形状聚类,选择最具有代表性的一组Anchor Box

9.YOLO 算法

YOLO 算法 Putting it Together: YOLO Algorithm

汇总上面学习到的知识,就得到YOLO算法的流程,算是对前几节内容的回顾。网络结构如下图所示,包含了两个Anchor Boxes。

YOLO 算法

  • ① 对每个网格,预测得到2个bounding box
  • ② 剔除掉概率低的预测结果
  • ③ 对每个类别应用非极大值抑制NMS得到最终结果

10.R-CNN

候选区域  Region Proposals

前面介绍的滑动窗口目标检测算法对一些明显没有目标的区域也进行了扫描(如下图最左下角位置),这降低了算法的运行效率。
为了解决这个问题,R-CNN(Region CNN,带区域的 CNN)被提出。通过对输入图片运行图像分割算法,在不同的色块上找出候选区域(Region Proposal),然后只在这些区域上运行分类器。

R-CNN

R-CNN

R-CNN 的缺点是运行速度很慢,所以有一系列后续研究工作改进。例如 Fast R-CNN(与基于卷积的滑动窗口实现相似,但得到候选区域的聚类步骤依然很慢)、Faster R-CNN(使用卷积对图片进行分割)。不过大多数时候还是比 YOLO 算法慢。RCNN系列的算法也叫做2-stage目标检测算法(因为会先产出后候选框,再预测和调整),YOLO系列的算法叫做1-stage目标检测方法。

相关论文:

R-CNN:Girshik et al., 2013. Rich feature hierarchies for accurate object detection and semantic segmentation

Fast R-CNN:Girshik, 2015. Fast R-CNN

Faster R-CNN:Ren et al., 2016. Faster R-CNN: Towards real-time object detection with region proposal networks

参考资料

ShowMeAI系列教程推荐

推荐文章

深度学习在遥感图像目标检测中的应用综述 深度学习在遥感图像目标检测中的应用人工智能发展发展历程深度学习的应用深度学习机器学习概述神经网络模型深度学习遥感图像目标检测 人工智能发展 发展历程 人工智能提出(1950s):人工智能AI、图灵测试 机器学习(1970s):机器学习、数据建模 人工神经网络(1980s):神经网络模型 深度学习(2006~):深度神经网络 深度学习的应用 Alpha Go:打败围棋世界冠军 Object recognition:目标识别 Image Caption:看图说话 Speech recognition:语音 阅读详情

相关推荐

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-3)-- 目标检测

卷积神经网络 --- 目标检测

大树先生的博客 1万+

【计算机视觉40例】案例22:目标检测(YOLO方法、SSD方法)

《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。...

计算机视觉之光 6556

吴恩达深度学习笔记——卷积神经网络(CNN)

目录 一、计算机视觉(Computer vision) 二、边缘检测示例(Edge detection example) 三、更多的边缘检测内容(More edge detection) 四、Padding 五、卷积步长(Strided convolution) 六、三维卷积(Convolution over volumes) 七、单层卷积网络(One layer of a c...

qq_35175666的博客 3041

YOLO目标检测数据集大全【含voc(xml)、coco(json)和yolo(txt)三种格式标签+划分脚本+训练教程】(持续更新建议收藏)

YOLO目标检测数据集大全【含voc(xml)、coco(json)和yolo(txt)三种格式标签+划分脚本+训练教程】(持续更新建议收藏)

m0_64879847的博客 29万+

【吴恩达deeplearning.ai】深度学习(8):卷积神经网络的应用

认识了解了卷积神经网络的工作原理及其一些经典的网络结构后,这里介绍如何应用卷积神经网络,实现目标检测、人脸识别及神经风格转换。 目标检测 图像识别中,目标检测的任务,是对输入图像样本准确进行分类的基础上,检测其中包含的某些目标,并对它们准确定位并标识。 目标定位 图像分类问题一般都采用Softmax回归来解决,最后输出的结果是一个多维列向量,且向量的维数与假定的分类类别数一致。在此...

Pyrohjewel 4805

目标检测YOLO实战应用案例100讲-SAR图像多尺度舰船目标检测(续)

在初始超像素生成阶段,经过多次迭代后超像素的个数会比初始设定的K值 略多一点。设置过小的 K虽然像素聚类速度快,但容易出现图像过分割,不能把背景和舰船目标准确划分到不同的超像素,得到的超像素精度较低;基于上述问题,为了解决由手动设置K参数导致的同质区域过分割问题加入 了相似超像素聚合阶段,利用舰船目标SAR图像特征中的纹理特征,设计了超像 素聚合准则,通过多向灰度共生矩阵进行纹理相似判决,从而将具有相似纹理特征 的同质超像素合并,进一步得到更加贴合目标轮廓的完整的超像素,示意图如图3- 7所示。

qq_36130719的博客 1675

深度学习教程(1) | 深度学习概论(吴恩达·完整版)

本篇为深度学习系列教程的引言,以房价预测为例,讲解神经网络(Neural Network)模型结构和基础知识,并介绍针对监督学习的几类典型神经网络:Standard NN,CNN和RNN等知识

ShowMeAI研究中心 1万+

Keras深度学习实战(7)——卷积神经网络详解与实现

传统深度前馈神经网络的局限性之一是它并不满足平移不变性,且容易受图像中对象大小的影响。卷积神经网络 (Convolutional Neural Network, CNN) 的提出正是用于解决传统神经网络的这些缺陷。即使对象位于图片中的不同位置或其在图像中具有不同占比,CNN 也能够正确的处理这些图像,因此在对象分类/检测任务中更加有效。本节详细介绍了 CNN 的基本概念与计算流程,同时使用 Keras 构建 CNN 模型识别手写数字。.........

盼小辉丶的博客 1万+

Coursera吴恩达《深度学习》课程总结(全)

01 神经网络和深度学习(Neural Networks and Deep Learning) 1-1 深度学习概论 主要介绍:主要对深度学习进行了简要概述。首先,我们使用房价预测的例子来建立最简单的单个神经元组成的神经网络模型。然后,我们将例子复杂化,建立标准的神经网络模型结构。接着,我们从监督式学习入手,介绍了不同的神经网络类型,包括Standard NN,CNN和RNN。不同的神经网络模型适合处理不同类型的问题。对数据集本身来说,分为结构化数据和非结构化数据。近些年来,深度学习对非结构化数据的处理

csdn_xmj的博客 5万+

NSGA(非支配排序遗传算法)

在多目标优化问题中,往往存在多个相互冲突的目标需要同时优化。传统的单目标优化算法无法直接应用于这类问题,因此需要专门的多目标优化算法。非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm,NSGA)是一种经典的多目标优化算法,由印度科学家 Kalyanmoy Deb 等人于 1995 年提出。NSGA 通过非支配排序和拥挤度距离来引导种群向 Pareto 最优前沿进化,从而得到一组具有良好分布性和收敛性的 Pareto 最优解。

2979

别再手动切换了!用SP3485+三极管搞定RS485自动收发电路(附完整原理图)

本文详细介绍了如何利用SP3485芯片和三极管设计RS485自动收发电路,解决传统手动切换带来的IO资源占用和软件复杂度问题。通过原理分析、电路设计拆解和实战注意事项,帮助工程师打造稳定可靠的自动收发通信模块,显著提升系统性能和可靠性。

weixin_26833939的博客 514

吴恩达老师深度学习课程完整笔记

为了方便学习深度学习课程,转载一个吴恩达老师的一个深度学习笔记,转载的网站是下面这个 https://blog.youkuaiyun.com/red_stone1/article/details/80207815 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这里附上deeplearning.ai的官网: deeplearnin...

Miracle8070 6万+

DDR4技术原理详解

DDR4是DDR4-SDRAM的简写,即第4代DDR-SDRAM,DDR-SDRAM全称Double Date Rate Synchronous Dynamic Random Access Memory。本文重点解析DDR4技术规范及其背后的电子电路原理,以及编程使用DDR4过程中需要注意的性能事项。

ctbinzi的专栏 1万+

深度学习教程 | CNN应用:目标检测

收藏ShowMeAI查看更多精彩内容本系列为吴恩达老师《深度学习专项课程(Deep Learning Specialization)》学习与总结整理所得,对应的课程视频可以在这里查看。在ShowMeAI前一篇文章 经典CNN网络实例详解 中我们对以下内容进行了介绍:本篇主要介绍计算机视觉中最典型的应用之一目标检测,目标检测任务是对输入图像进行分类的同时,检测图像中是否包含某些目标,并对他们准确定位并标识。我们在前面的内容中,主要给大家介绍图像识别(分类)相关的知识,除了图像识别,我们还有「目标定位」和「目标

weixin_42907150的博客 1373

考虑风和浪的影响的旋筒帆船航线优化方法研究

针对旋筒帆船进行航线优化的实现方法,包括升阻力系数的数值模拟、升阻力系数的多元非线性回归建模、旋筒帆船6DOF摇荡运动建模分析以及考虑风、浪影响的旋筒帆船的航线优化研究。

m0_63225885的博客 1165

灰度发布、蓝绿部署、双活架构与数据同步/备份/迁移

本文系统介绍了现代互联网系统的核心部署策略与数据管理技术体系。主要内容包括:1)三种服务发布策略(灰度发布、蓝绿发布、滚动发布)的原理、实现方式和适用场景对比;2)高可用架构设计(同城双活、异地双活、异地多活)的技术方案;3)数据同步机制、备份策略与迁移方案的设计要点。文章通过架构图、流程图和配置示例详细展示了各类技术的实施方法,并分析了不同方案的优劣及风险控制措施,为构建高可用、高可靠的分布式系统提供了完整的技术指南。

zane的博客 516

深度学习教程 | 吴恩达专项课程 · 全套笔记解读

本篇内容是组织的「深度学习原理知识大全」系列教程入口,教程依托吴恩达老师《深度学习专项课程》,对内容做了重新梳理与制作,以更全面和直观的图文方式,对深度学习涉及的知识、模型、原理、应用领域等进行详解......

ShowMeAI研究中心 1万+

MVSNet (pytorch版) 搭建环境 运行dtu数据集重建 实操教程(图文并茂、超详细)

MVSNet (pytorch版) 代码注释版 下载 (注释非常详细,代码结构有所调整,使用起来更方便) 深度学习三维重建 MVSNet-ECCV-2018 (源码、pytorch版、原文+注释、译文+批注)Meshlab查看三维点云时 ,使用技巧总结。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2938

吴恩达《深度学习》笔记汇总

第一门课:神经网络和深度学习(第一周)——深度学习引言 第一门课:神经网络和深度学习(第二周)——神经网络的编程基础 第一门课:神经网络和深度学习(第三周)——浅层神经网络 第一门课:神经网络和深度学习(第四周)——深层神经网络 第二门课:改善深层神经网络:超参数调试、正则化以及优化(第一周)——深度学习的实用层面 第二门课:改善深层神经网络:超参数调试、正则化以及优化(第二周)——优化算法 第二门课:改善深层神经网络:超参数调试、正则化以及优化(第三周)——超参数调试、Batch正则化和程序框架 ....

Taurus 1万+

Flink实战(101):双流join(三)双流中实现Inner Join、Left Join与Right Join

声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。 《2021年最新版大数据面试题全面开启更新》 简介 之前文章中提到JoinedStream与CoGroupedStream,例如下列代码: dataStream.join(otherStream) .where(0).equalTo(1) .window(TumblingEventTimeWindows.of(Time.seconds(3))) .apply { ... } 由于joinedStream与

微信搜:import_bigdata,大数据领域硬核原创作者 739

华为OD机试:使用Ascend C语言实现Matmul与LeakyReLU融合算子的全流程设计与优化解析

通过本文的详细解析,相信你已经对华为OD机试中基于Ascend C语言的Matmul+LeakyReLU融合算子的设计与实现有了深入的理解。我们不仅从理论上探讨了融合算子的核心优势,还通过实际的代码示例演示了如何一步步完成算子的实现与优化。融合算子在AI算子开发中的应用,尤其是在处理大规模矩阵计算的场景中,能够显著提升计算效率,优化内存占用,并减少数据传输的开销。通过合理的Tiling策略设计,我们还能够充分利用多核处理器的算力,进一步提升AI模型的训练与推理性能。

qq_38334677的博客 662

吴恩达深度学习笔记 最全最详细!这一篇足够了!

为了方便学习深度学习课程,转载一个吴恩达老师的一个深度学习笔记,转载的网站是下面这个 https://blog.youkuaiyun.com/red_stone1/article/details/80207815 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这里附上deeplearning.ai的官网: deeplearning.ai 关于该深度学习专项课程,本人非常推荐!它对于理解各种算法背后的原理非常有帮助,同时提供了大

是木子啦~ 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习之卷积神经网络0基础入门学习教程——浅层深度学习(全网最详细,不详细你打我)(看不懂你打我)(对小白没用你打我)

教小白如何快速入门深度学习,快速跑通代码写论文!

爱吃橘子的小翟 4044

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

吴恩达深度学习——目标检测

文章目录引言目标定位特征点检测目标检测卷积的滑动窗口实现边框预测 引言 本文是吴恩达深度学习第四课:卷积神经网络。本次课程将会告诉大家如何构造卷积神经网络并应用到图像数据上。从中你会学到如何构建一个卷积神经网络、如何应用卷积神经网络到图像识别和目标检测上、学习如何使用神经风格转换去生成艺术作品、能将这些算法应用到更广泛的图像应用上,比如2D、3D数据和视频。 第四课有以下四个部分,本文是第一部分。 卷积神经网络基础 深度卷积模型:实例分析 目标检测 特殊应用:人脸识别&神经风格转换 目标定位 在

日积月累,天道酬勤 1115

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习教程(10) | 卷积神经网络解读(吴恩达·完整版)

本节介绍卷积神经网络,覆盖以下内容要点:卷积计算、填充,卷积神经网络单层结构,池化层结构,卷积神经网络典型结构,CNN特点与优势。

ShowMeAI研究中心 1万+
上一篇: 深度学习教程 | 吴恩达专项课程 · 全套笔记解读
下一篇: 深度学习教程(13) | CNN应用:人脸识别和神经风格转换(吴恩达·完整版)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值