来一个有深度的教程:教你用 Python 做一个物体检测系统_python 神经网络 物体检测

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是开始尝试的一个很好的方法,但我们在寻求更加精确和准确的系统。它需要识别整个物体(或者是在本例中的人),因为仅仅识别物体的某些部分可能会导致灾难性的后果。

方法2:增加分割数量

先前的系统效果不错,但是我们还能如何改进呢?我们可以通过指数地增加我们输入系统的选框的数量来提高精确度。输出结果应该是这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个方法有利有弊。尽管我们的解决方案看起来比原始的方法好一点点,但是它粗筛出很多的选框,实际结果基本一样。这是一个问题,我们需要一个更有条理的方法来解决这个问题问题。

方法3:展示结构严密的分区

为了用一种更有条理的方法构建我们的物体检测系统,我们可以按以下步骤操作:

**步骤1:**把图像划分成10x10的格子,如图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

**步骤2:**定义每个区域的质心。

**步骤3:**对于每一个质心,选取3个高度和纵横比不同的区域如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

**步骤4:**将所有这些创建的区域传入图像分类器来获得预测结果。

所以最终输出结果是什么样呢?一个更加确定且严密有序的结果——见下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

但我们还可以进一步改进!继续阅读以了解另一种能产生更好结果的方法。

方法4:提高效率

先前我们看到的方法在很大程度上是可以接受的,但我们还可以构建一个比之前更加高效的系统。你能建议怎么做吗?在我脑海中,我能提出一个优化方案。如果我们思考一下方法3,可以做两件事来让模型更好:

  • **增加网格的大小:**将网格大小增加到20,替代原有的10:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • **以多种高度和纵横比选取更多区域而不仅是3个区域:**在这里,我们可以围绕每一个锚定质心选取9种形状的区域,即3个不同高度的正方形区域和6个不同高度的垂直和水平的矩形区域,这会给我们提供不同纵横比的区域。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再次说明,这也是有利也有弊。尽管这些方法都能帮助我们达到一个更细致的水平,但是由于我们不得不把所有区域传入到图像分类模型中,这会再次造成计算爆炸。

我们能够做的是,有选择性地选取区域而不是全都选取。举个例子,我们能够构建一个中间分类模型,它尝试预测选区是否真的只有背景,还是潜在地包含一个物体,这会指数式地减少图像分类模型所需要判断的区域。

还有另一种优化方案,就是减少“同一物体”的预测。让我们再次回顾方法3:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就像你看到的一样,基本上所有的选框预测的都是同一个人,我们可以选择其中任意一个。因此,我们可以考虑从标记“同一物体”的所有选框中,任选一个最有可能检测出一个人的选框输入图像分类模型中,进行预测。

目前,所有这些优化方案都给了我们相当合适的预测结果。我们几乎稳操胜券,但你猜出缺了什么吗?深度学习!

方法5:使用深度学习进行特征选择以构建端到端方法

深度学习在物体检测领域有很大的潜力。你能否建议我们从哪里以及如何使用深度学习解决我们的问题吗?我已经列出一些方法,如下:

  • 可以通过神经网络输入原始图像来减少维度,而不是输入原始图像的所有区域。
  • 还可以使用神经网络来限定图像区域的选择
  • 可以强化深度学习算法,使预测尽可能地接近图像中物体的原始边界框,这将确保算法能够更严格地、更精细地预测边界框。

现在我们可以采用单个深度神经网络模型,来尝试独自解决所有问题,而不是训练不同的神经网络来解决每一个问题。这样做的好处是,神经网络中每个较小的组件都将有助于优化该神经网络的其他部分,从而便于我们合作,共同训练整个深层模型。

目前为止,在我们看过的所有方法中,我们的输出结果能够提供最佳性能,有点类似于下图。我们将在下一节中看到如何使用Python创建它。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

获取技术:如何使用ImageAI库

构建物体检测模型

现在我们知道了什么是物体检测以及解决此问题的最佳方法,让我们构建自己的对象检测系统!我们即将使用的是ImageAI库,这是一个python库,支持计算机视觉任务中所有最先进的机器学习算法。

运行物体检测模型获得预测是非常简单的。我们不必从复杂的安装脚本来开始,甚至也不需要GPU来生成预测!我们将使用这个ImageAI库来获得在方法5中所看到的输出结果。强烈建议您在自己的机器上输入下面的代码,因为这可以帮助您能够从本节中获得最大的知识。

请注意,您需要在创建物体检测模型之前设置系统。在本地系统中安装Anaconda后,即可开始执行以下步骤。

**步骤1:**使用python 3.6版搭建Anaconda环境。

conda create -nretinanet python=3.6 anaconda

**步骤2:**激活环境并安装必要的软件包。

source activateretinanetconda installtensorflow numpy scipy opencv pillow matplotlib h5py keras

**步骤3:**安装ImageAI库

pip install https://github.com/OlafenwaMoses /ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl

**步骤4:**下载获得预测所需的预训练模型。该模型基于RetinaNet(未来文章的主题)。访问链接下载——RetinaNet预训练模型:

https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/resnet50_coco_best_v2.0.1.h5

**步骤5:**将下载的文件复制到当前工作文件夹。

**步骤6:**从以下链接下载图像,将图像命名为image.png:

https://s3-ap-south-1.amazonaws.com/av-blog-media/wp-content/uploads/2018/06/I1_2009_09_08_drive_0012_001351-768x223.png

**步骤7:**打开jupyter笔记本(在终端中键入jupyter notebook)并运行以下代码:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这将创建一个名为image_new.png的修改后的图像文件,其中包含物体的边界框。

**步骤8:**如需要打印图像,请使用以下代码:

from IPython.display import ImageImage(“image_new.png”)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

、Python、前端等等。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值