首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

YOLO目标检测编程练习

YOLO

在本文中,我们将研究一个这样的对象检测框架——YOLO。这是一个非常快速和精确的框架,YOLO框架(You Only Look Once)与R-CNN不同的是在单个实例中获取整个图像,并预测这些框的边界框坐标和类概率。使用YOLO最大的优点是它的速度非常快,可以处理45帧每秒。YOLO也理解广义对象表示。这是最好的目标检测算法之一,表现出了与R-CNN算法相对相似的性能。

作为刚接触图像的小白,最好的理解方法就是启动我们的Jupyter笔记本(或者您喜欢的IDE),并最终以代码的形式实现我们的学习了!这是我们到目前为止一直在做的,让我们开始吧。

我们将在本节中看到的实现YOLO的代码取自Andrew NG关于深度学习的GitHub。您需要下载这个zip文件,其中包含运行此代码所需的经过预先训练的权重。

在进行其他操作之前,我们首先导入所需的库:

现在,让我们创建一个根据概率和阈值的过滤框:

接下来,我们将定义一个函数来计算两个方框之间的IOU:

然后,让我们定义一个用于Non-Max Suppression的函数:

我们现在有了计算IOU和执行Non-Max Suppression。我们从形状CNN得到输出(19 19 5 85)。因此,我们将创建一个形状的随机体积(19、19、5、85),然后预测bounding boxes:

最后,我们将定义一个函数,该函数将CNN的输出作为输入,并返回suppressed boxes:

让我们看看如何使用yolo_eval函数进行预测:

效果如何?

“分数”表示该对象出现在grid cell中的可能性。“boxes”返回被检测对象的坐标(x1, y1, x2, y2)。“类”是已标识对象的类。

现在,让我们使用一个预先训练的YOLO算法对新图像,看看它是如何工作的:

在加载类和预训练模型之后,让我们使用上面定义的函数来获得yolo_output。

现在,我们将定义一个函数来预测边界框并保存包含这些边界框的图像:在加载类和预训练的模型之后,让我们使用上面定义的函数来获得yolo_output。

接下来,我们将读取图像并使用预测函数进行预测:

最后,让我们画出预测图:

预测结果:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181211A06UFJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券