@Author:Runsen

对象检测是一种属于更广泛的计算机视觉领域的技术。它处理识别和跟踪图像和视频中存在的对象。目标检测有多种应用,如人脸检测、车辆检测、行人计数、自动驾驶汽车、安全系统等。ImageAI提供了非常方便和强大的方法来对图像进行对象检测并从图像中提取每个对象。

ImageAI

ImageAI 包含几乎所有最先进的深度学习算法的 Python 实现,如RetinaNet、YOLOv3和 TinyYOLOv3。

ImageAI 使用了对象检测、视频检测和对象跟踪 API,无需访问网络即可调用。ImageAI 使用预先训练的模型并且可以轻松定制。

ImageAI 中的ObjectDetectionImageAI 库的类包含使用预训练模型对任何图像或图像集执行对象检测的函数。借助 ImageAI,可以检测和识别 80 种不同的常见日常物品。

具体官方教程:https://imageai.readthedocs.io/en/latest/detection/index.html

下载链接:https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.2/imageai-2.0.2-py3-none-any.whl

安装ImageAI 成功后,下载包含将用于对象检测的分类模型的TinyYOLOv3模型文件。

下载地址:https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/yolo-tiny.h5

下面,我们小试牛刀,使用 ImageAI 进行对象检测

我们先创建必要的文件夹。

  • Object-detection:根文件夹
  • models:存储预先训练的模型
  • input : 存储我们要执行对象检测的图像文件
  • output:存储检测到对象的图像文件

创建文件夹后,Object-detection文件夹应具有以下子文件夹:

├── input
├── models
└── output

下面创建一个新文件detector.py.,从 ImageAI 库导入ObjectDetection类。

from imageai.Detection import ObjectDetection

接下来是创建 class 的实例ObjectDetection,如下所示:

detector = ObjectDetection()

指定输入图像、输出图像和模型的路径。

model_path = "./models/yolo-tiny.h5"
input_path = "./input/image.jpg"
output_path = "./output/newimage.jpg"

实例化ObjectDetection类后,我们现在可以从类中调用各种函数。该类包含以下功能调用预先训练模式:setModelTypeAsRetinaNet()setModelTypeAsYOLOv3(),和setModelTypeAsTinyYOLOv3()

我使用预训练TinyYOLOv3模型,因此我们将使用该setModelTypeAsTinyYOLOv3()函数加载我们的模型。

接下来,将调用函数setModelPath()。此函数接受一个包含预训练模型路径的字符串:

detector.setModelPath(model_path)

detector实例调用函数loadModel()。它使用setModelPath()类方法从上面指定的路径加载模型

detector.loadModel()

要检测图像中的对象,我们需要detectObjectsFromImage使用detector创建的对象。

下面是完整代码

from imageai.Detection import ObjectDetectiondetector = ObjectDetection()model_path = "./models/yolo-tiny.h5"
input_path = "./input/img.png"
output_path = "./output/img.png"detector.setModelTypeAsTinyYOLOv3()
detector.setModelPath(model_path)
detector.loadModel()
detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)for eachItem in detection:print(eachItem["name"] , " : ", eachItem["percentage_probability"])


深度学习和目标检测系列教程 2-300:小试牛刀,使用 ImageAI 进行对象检测相关推荐

  1. 深度学习之对象检测_深度学习时代您应该阅读的12篇文章,以了解对象检测

    深度学习之对象检测 前言 (Foreword) As the second article in the "Papers You Should Read" series, we a ...

  2. 综述 | 基于深度学习的目标检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 导读:目标检测(Object Det ...

  3. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  4. 基于深度学习的目标检测的研究进展2

    普通的深度学习监督算法主要是用来做分类,如图1(1)所示,分类的目标是要识别出图中所示是一只猫.而在ILSVRC(ImageNet Large Scale Visual Recognition Cha ...

  5. 基于深度学习的目标检测研究进展

    前言 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个人,具体的位置就是上图右侧图像两个边框(bounding-box)所在的位 ...

  6. AI综述专栏 | 基于深度学习的目标检测算法综述

    https://www.toutiao.com/a6685618909275488780/ 2019-04-30 17:35:53 关注微信公众号:人工智能前沿讲习, 重磅干货,第一时间送达 AI综述 ...

  7. 基于深度学习的目标检测算法综述(从R-CNN到Mask R-CNN)

    深度学习目标检测模型全面综述:Faster R-CNN.R-FCN和SSD 从RCNN到SSD,这应该是最全的一份目标检测算法盘点 基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述 ...

  8. 【深度学习】基于深度学习的目标检测研究进展

    原文出处:http://chuansong.me/n/353443351445 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个 ...

  9. 基于深度学习的目标检测方法综述

    引言 现有的深度学习的目标检测方法,可以大致分为两类:一.基于候选区域的目标检测方法:二.基于回归的目标检测方法.依据方法的提出时间,可以构建出如下时间线: 2014 CVPR R-CNN[1] 20 ...

最新文章

  1. Oracle 用户表空间的创建和授权
  2. 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...
  3. evc4工程移植vs.net2005所碰到的问题积累
  4. java13种技术_JavaEE的13种核心技术
  5. php7 获取数据流,stream_socket_accept()
  6. Java并发面试宝典,并发相关面试再也难不倒你!
  7. gt designer2不能初始化字体管理器_Windows Terminal 1.1预览版发布:新增字体粗细、随开机启动等功能...
  8. 搜索推荐广告中的Position Bias:美团DPIN
  9. 阿里巴巴创始人马云持股降至 4.8%;传小冰将从微软分拆,沈向洋“回归”;Electron 8.4.0 发布| 极客头条
  10. linux系统硬盘数据恢复软件下载,R-Linux|R-Linux(linux数据恢复软件)下载 v5.1中文免费版 - 121下载站...
  11. SQL Server海量数据查询代码优化建议
  12. c# timer 销毁_C# System.Timers.Timer定时器的使用和定时自动清理内存应用
  13. Buoyant的Conduit服务网格正式成为Linkerd 2
  14. 深圳中学高考2021成绩查询,2020深圳高中高考数据对比,明年考多少分能上好高中?...
  15. 【STM32】基础知识 第十课 CubeMx
  16. SpringBoot使用EasyExcel 模板填充数据并导出,以及Excel导入解析入库
  17. LeetCode 347. 前 K 个高频元素(C++)*
  18. R与Excel之数据分析
  19. JDK8新特性01-Lambda表达式
  20. [Unity]切换至中文界面

热门文章

  1. Linux 适用硬件平台/系统架构(i386 / i586 / i686 / x86 / x86_64)名词理解和区别
  2. OS / 线程的 3 种实现方式(内核级,用户级 和 混合型)
  3. Linux / 僵尸进程、孤儿进程 产生原因、有什么危害、如何预防(解决方案)
  4. mysql中b树索引_Mongo和Mysql中的B树索引
  5. windows下挂载ext4_WSL2 支持挂载物理磁盘,Windows 可直接访问 ext4
  6. (转)JavaScript: 零基础轻松学闭包(1)
  7. CAD二次开发之入门坑
  8. 关于现代软件工程学习
  9. Linux网站服务Apache+php+mysql的安装
  10. XML引入多scheme文件约束简单示例