iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python基于ImageAI实现图像识别详解
  • 695
分享到

Python基于ImageAI实现图像识别详解

Python ImageAI图像识别Python 图像识别Python ImageAI 2023-02-01 15:02:48 695人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录背景简介图像预测算法引入目标检测图像目标检测视频目标检测背景简介 Imageai是一个面向计算机视觉编程的python库,支持最先进的机器学习算法。主要图像预测,物体检测,视频对

背景简介

Imageai是一个面向计算机视觉编程python库,支持最先进的机器学习算法。主要图像预测,物体检测,视频对象检测与跟踪等多个应用领域。利用ImageAI,开发人员可用很少的代码构建出具有包含深度学习和计算机视觉功能的应用系统。

ImageAI目前支持在ImageNet数据集上对多种不同机器算法进行图像预测和训练,ImageNet数据集项目始于2006年,它是一项持续的研究工作,旨在为世界各地的研究人员提供易于访问的图像数据库。 

图像预测

算法引入

图像预测(Image Prediction)是指利用由各种不同算法构建而成的预测器对输入图像或视频帧进行分析解构,并返回其中所包含的物体对象名及其相应的百分比概率(Percentage Probabilities)的过程。

ImageAI提供了4种不同算法模型进行图像预测,并在ImageNet数据集上进行了训练。4种算法模型分别如下:

(1)由F.N.Iandola团队提出了SqueezeNet(预测速度最快,正确率中等)。

(2)由Microsoft公司提供的ResNet50(预测速度快,正确率较高)。

(3)由Google公司提供的InceptionV3(预测速度较慢,正确率高)。

(4)由Facebook公司提供的DenseNet121(预测速度最慢,正确率最高)。

ImageAI可对一幅图像或者多幅图像进行预测。下面我们将分别用两个简单的示例来进行解释和演示。

单图像预测

单图像预测主要是用到ImageAI中imagePrediction类中的predictImage()方法,其主要过程如下:

(1)定义一个imagePrediction()的实例。

(2)通过setMoTypeAsResNet()设置模型类型以及通过setModePath()设置模型路径。

(3) 调用loadModel()函数模型载入模型。

(4) 利用predictImage()函数进行预测。该函数有两个参数,一个参数用于指定要进行预测的文件,另一个参数result_count则用于设置我们想要预测结果的数量(该参数的值1~100可选)。函数将返回预测的对象名及其相应的百分比概率。

在以下示例中,我们将预测对象模型类型设置为ResNet,当然,我们也可以用其他的上几篇的算法进行图像预测。基于ImageAI的单图像预测的示例代码:

from imageai.Prediction import ImagePrediction
import os
import time
#开始计时
start_time=time.time()
execution_path=os.getcwd()
#对ImagePrediction类进行实例化
prediction=ImagePrediction()
#设置算法模型类型
prediction.setModelTypeAsResNet()
prediction.setModelPath(os.path.join(execution_path,'resent50_weights_tf_dim_ordering_tf_kernels.h5'))
prediction.loadModel()
predictions,probabilities=prediction.predictioImage(os.path.join(execution_path,'sample.jpg'),result_count=5)
end_time=time.time()
for eachPrediction,eachProbability in zip(predictions,probabilities):
    print(eachPrediction+":"+str(eachProbability))
print('Total time cost:',end_time-start_time)

多图像检测

对于多图像检测,我们可以通过多次调用predictImage()函数的方式来进行。而更简单的方法时一次性调用predicMultipleImages()。其主要工作流程为:

(1)定义一个ImagePrediction()的实例。

(2)通过setModelTypeAsResNet()设置模型类型以及通过setModelPath()设置模型路径。

(3)调用loadModel()函数载入模型。

(4)创建一个数组并将所有要预测的图像的路径添加到数组。

(5)通过调用predictMultiple Images()函数解析包含图像路径的数组并执行图像预测,通过分析result_count_per_image(默认值为2)的值来设定每个图像需要预测多少种可能。

#多图像预测
from image.Prediction import ImagePrediction
import os
execution_path=os.getcwd()
#初始化预测器
multiple_prediction=ImagePrediction()
multiple_prediction.setModelTypeAsResNet()
#设置模型文件路径
multiple_prediction.setModelPath(os.path.join(execution_path,'resent50_weights_tf_ordering_tf_kernels.h5'))
#加载模型
multiple_prediction.loadModel()
all_images_array=[]
all_files=os.listdir(execution_path)
for each_file in all_files:
    if(each_file.endswith('.jpg') or each_file.endswith('.png')):
        all_images_array.append(each_file)
results_array=multiple_prediction.predictMultipleImages(all_images_array,result_count_per_image=3)
for each_result in results_array:
    predictions,percentage_probanlities=each_result['predictions'],each_result['percentage_probabilities']
    for index in range(len(predictions)):
        print(predictions[index]+':'+str(percentage_probanlities[index]))
print('-----------')

目标检测

ImageAI提供了非常方便和强大的方法来对图像执行对象检测并从中提取每个识别出的对象。

图像目标检测

基于ImageAI的图像目标检测主要是用到了ObjectDetection类中的detectObjectFromImage()方法。

示例代码:

#目标检测
from imageai.Detection import ObjectDetection
import os
import time
start_time=time.time()
#execution_path=os.getcwd()#获取当前目录
detector=ObjectDetection() #实例化一个ObjectDetection类
detector.setModelTypeAsRetinaNet() #设置算法模型类型为RetinaNet
#etector.setModelPath()
detector.loadModel() #加载模型
#图像目标检测,百分比概率阈值设置为30可检测出更多的物体(默认值为30)
detections=detector.detectObjectsFromImage(input_image="D:\Image\\four.jpg",output_image_path='D:\Image\\fourr.jpg',minimum_percentage_probability=30)
end_time=time.time()
for eachObject in detections:
    print(eachObject['name'],":",eachObject['percentage_probability'],":",eachObject['box_points'])
print('Total Time cost:',end_time-start_time)

视频目标检测

视频目标检测应用范围非常广泛,包括动态目标跟踪,自动无人体步态识别等各种场景,由于视频中包含大量的时间和空间冗余信息,对视频中的目标检测是非常消耗硬件资源的,所以博主建议使用安装了GPU硬件和CPU版的Tensorflow深度学习框架的硬件设备来执行相关任务,而在CPU设备上进行视频目标检测会很慢。

视频目标检测需要用到ImageAI中VideoObjectDetection类的detectObjectsFromVideo()方法。

示例代码如下:

#视频目标检测
from imageai.Detection import VideoObjectDetection
import os
import time
start_time=time.time()
detector=VideoObjectDetection() #初始化视频检测类
detector.setModelTypeAsRetinaNet()
#detector.setModelPath('D:\Image:\haha.mp4')
detector.loadModel() #加载模型
video_path=detector.detectObjectsFromVideo(input_file_path='D:\Image\haha.mp4',output_file_path='D:Image:\hahaha.mp4',frames_per_second=20,log_progress=True)
print(video_path)
end_time=time.time()
print('Total time cost:',end_time-start_time)

以上就是Python基于ImageAI实现图像识别详解的详细内容,更多关于Python ImageAI图像识别的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python基于ImageAI实现图像识别详解

本文链接: https://www.lsjlt.com/news/193860.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基于ImageAI实现图像识别详解
    目录背景简介图像预测算法引入目标检测图像目标检测视频目标检测背景简介 ImageAI是一个面向计算机视觉编程的Python库,支持最先进的机器学习算法。主要图像预测,物体检测,视频对...
    99+
    2023-02-01
    Python ImageAI图像识别 Python 图像识别 Python ImageAI
  • 基于Opencv图像识别实现答题卡识别示例详解
    目录1. 项目分析2.项目实验3.项目结果总结在观看唐宇迪老师图像处理的课程中,其中有一个答题卡识别的小项目,在此结合自己理解做一个简单的总结。 1. 项目分析 首先在拿到项目时候,...
    99+
    2024-04-02
  • 基于Python实现图像文字识别OCR工具
    目录引言功能列表OCR部分界面部分软件代码参考链接引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作、生活中常常会用到,比如票据、漫画、扫描件、照片的文本提取。 博主基于...
    99+
    2024-04-02
  • 基于Tensorflow的图像识别怎么实现
    要实现基于Tensorflow的图像识别,可以按照以下步骤进行: 准备数据集:首先需要准备一个包含图像和对应标签的数据集,可以使...
    99+
    2024-03-13
    tensorflow
  • 基于Tensorflow的图像识别功能怎么实现
    要实现基于Tensorflow的图像识别功能,可以按照以下步骤进行: 准备数据集:首先需要准备包含标记好的图像数据集,这些数据将...
    99+
    2024-04-03
    tensorflow
  • Python+OpenCV实现图像识别替换功能详解
    OpenCV-Python是一个Python库,旨在解决计算机视觉问题。 OpenCV是一个开源的计算机视觉库,1999年由英特尔的Gary Bradski启动。Bradski在访学...
    99+
    2024-04-02
  • 基于OpenMV的图像识别之数字识别功能
    目录基于OpenMV的图像识别一、数字识别基于OpenMV的图像识别 OpenMV简介 什么是OpenMV OpenMV是由美国克里斯团队基于MicroPython发起的开源机器视...
    99+
    2024-04-02
  • Python中如何实现图像识别
    Python中如何实现图像识别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 安装Python 3.5.1或更高版本和pip(如果您已经安装了Python 3.5.1或...
    99+
    2023-06-17
  • 图文详解如何利用PyTorch实现图像识别
    目录使用torchvision库的datasets类加载常用的数据集或自定义数据集使用torchvision库进行数据增强和变换,自定义自己的图像分类数据集并使用torchvisio...
    99+
    2023-05-14
    pytorch图像识别 pytorch 图像 pytorch中文手册
  • 基于C#实现语音识别功能详解
    在.NET4.0中,我可以借助System.Speech组件让电脑来识别我们的声音。 以上,当我说"name",显示"Darren",我说&...
    99+
    2024-04-02
  • python pytorch图像识别基础介绍
    目录一、数据集爬取二、数据处理三、开始识别四、模型测试总结一、数据集爬取 现在的深度学习对数据集量的需求越来越大了,也有了许多现成的数据集可供大家查找下载,但是如果你只是想要做一下深...
    99+
    2024-04-02
  • 如何使用Python实现图像识别?
            在当今的数字化时代,图像识别技术已经成为了人工智能领域中的一个热门话题。图像识别技术可以将数字图像转换为可供计算机程序理解的数据,并对图像内容进行分析和处理。Python是目前最受欢迎的编程语言之一,也是图像识别技术中最常用...
    99+
    2023-09-01
    python
  • Python基于keras训练实现微笑识别的示例详解
    目录一、数据预处理二、训练模型创建模型训练模型训练结果三、预测效果四、源代码pretreatment.pytrain.pypredict.py一、数据预处理 实验数据来自genki4...
    99+
    2024-04-02
  • pytorch实现图像识别(实战)
    目录1. 代码讲解1.1 导库1.2 标准化、transform、设置GPU1.3 预处理数据1.4 建立模型1.5 训练模型1.6 测试模型1.7结果1. 代码讲解 1.1 导库 ...
    99+
    2024-04-02
  • Pytorch实现图像识别之数字识别(附详细注释)
    使用了两个卷积层加上两个全连接层实现 本来打算从头手撕的,但是调试太耗时间了,改天有时间在从头写一份 详细过程看代码注释,参考了下一个博主的文章,但是链接没注意关了找不到了,博主看到...
    99+
    2024-04-02
  • python实现图像识别的示例代码
    一、安装库 首先我们需要安装PIL和pytesseract库。 PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能非常强大。 pyte...
    99+
    2024-04-02
  • PyTorch怎么实现图像识别
    这篇文章主要介绍“PyTorch怎么实现图像识别”,在日常操作中,相信很多人在PyTorch怎么实现图像识别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PyTorch怎么实现图像识别”的疑惑有所帮助!接下来...
    99+
    2023-06-29
  • 基于Python的货币识别技术实现
    目录 介绍 本文的目的和意义 货币识别技术的应用场景 货币识别的基本原理 图像处理技术在货币识别中...
    99+
    2024-01-21
    Python 货币识别 图像处理 图像识别
  • 基于Python的车牌识别系统实现
    本文将以基于Python的车牌识别系统实现为方向,介绍车牌识别技术的基本原理、常用算法和方法,并详细讲解如何利用Python语言实现一个完整的车牌识别系统。 目录 引言车牌识别技...
    99+
    2023-10-18
    python 车牌识别 计算机视觉 机器学习 原力计划
  • Python基于OpenCV的视频图像处理详解
    目录初识OpenCV视频读写处理运动轨迹标记运动检测运动方向检测初识OpenCV OpenCV是一个开源的,跨平台的计算机视觉库,它采用优化的C/C++代码编写,能够充分利用多核处理...
    99+
    2023-02-02
    Python OpenCV视频图像处理 Python 视频图像处理 Python OpenCV 图像处理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作