简介
ImageAI是一个python的库,它能使开发人员用简单几行代码构建具有深度学习和计算机视觉功能的应用程序和系统。它是由Moses Olafenwa和John Olafenwa两位开发并维护。
具体git地址:https://github.com/OlafenwaMoses/ImageAI
今天首先介绍一下使用imageai的准备工作,安装以及简单的实现image prediction
(以下内容git中都有详细介绍)


准备工作

首先当然是python,imageai暂时只支持3.5.1或之后的版本,一般都是用3.6吧
还有以下这些:
Tensorflow>=1.4.0
Numpy >=1.13.1
SciPy >=0.19.1
OpenCV
Pillow
Matplotlib
h5py
Keras 2.x

pip3 install xxx

安装
做好准备工作后就是安装了,可以直接使用pip3安装 如下

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

当然也可以将[imageai-2.1.0-py3-none-any.whl](https://github.com/OlafenwaMoses/ImageAI/releases/download/2.1.0/imageai-2.1.0-py3-none-any.whl)下载之后安装 ``` pip3 install C:\User\MyUser\Downloads\imageai-2.1.0-py3-none-any.whl ```


Image Prediction
安装完之后进入正题,图像内容的预测。
ImageAI提供4种不同的算法和模型来进行图像预测,并在ImageNet-1000数据集上进行了训练。4种算法包括SqueezeNet,ResNet,InceptionV3和DenseNet。
这里也提供了四种模型训练好后的文件。

  • SqueezeNet(预测速度最快 正确率中等)
  • ResNet50 (预测速度快 正确率较高)
  • InceptionV3(预测速度慢 正确率高)
  • DenseNet121(预测速度更慢 正确率最高)

好了,选一个模型,将训练好后的内容下载下来就可以开始简单的图像预测啦!

prediction.py

from imageai.Prediction import ImagePrediction
import os
import time
#计时
start = time.time()#当前路径 包含需要预测的图片,模型文件
execution_path = os.getcwd()#创建预测类
prediction = ImagePrediction()#设置预测模型 有以下四种
#SqueezeNet
#prediction.setModelTypeAsSqueezeNet()
#prediction.setModelPath(os.path.join(execution_path, "squeezenet_weights_tf_dim_ordering_tf_kernels.h5"))#ResNet50
#prediction.setModelTypeAsInceptionV3()
#prediction.setModelPath(os.path.join(execution_path, "inception_v3_weights_tf_dim_ordering_tf_kernels.h5"))#InceptionV3
#prediction.setModelTypeAsResNet()
#prediction.setModelPath(os.path.join(execution_path, "resnet50_weights_tf_dim_ordering_tf_kernels.h5"))#DenseNet121
prediction.setModelTypeAsDenseNet()
prediction.setModelPath(os.path.join(execution_path, "DenseNet-BC-121-32.h5"))prediction.loadModel()#预测图片,以及结果预测输出数目
predictions, probabilities = prediction.predictImage(os.path.join(execution_path, "1.jpg"), result_count=5 )#结束计时
end = time.time()#输出结果
for eachPrediction, eachProbability in zip(predictions, probabilities):print(eachPrediction," : ", eachProbability)print ("\ncost time:",end-start)

看着代码去掉注释 只用了大概十行作用就可以完成图像的预测了

先使用了git上提供的图片

我用四种模型都跑了一下 结果如下

---squeezenet_weights_tf_dim_ordering_tf_kernels.h5---
sports_car : 45.9977924823761
convertible : 38.13416361808777
grille : 7.812434434890747
minivan : 2.406269498169422
pickup : 2.211885526776314cost time: 6.432089567184448---inception_v3_weights_tf_dim_ordering_tf_kernels.h5---
convertible : 96.45639061927795
sports_car : 3.52620966732502
beach_wagon : 0.010831362305907533
car_wheel : 0.003940704118576832
pickup : 0.0006548482815560419cost time: 15.786875247955322---resnet50_weights_tf_dim_ordering_tf_kernels.h5---
convertible : 52.459555864334106
sports_car : 37.61284649372101
pickup : 3.1751200556755066
car_wheel : 1.817505806684494
minivan : 1.7487050965428352cost time: 24.41988778114319---DenseNet-BC-121-32.h5---
sports_car : 64.85629677772522
convertible : 13.065926730632782
beach_wagon : 8.915219455957413
car_wheel : 6.854388862848282
grille : 2.4432314559817314cost time: 24.5520977973938

大概率都预测出了是跑车或是敞篷车。

我也随便挑了张照片 试了一试

结果

Siberian_husky : 87.60582208633423 西伯利亚雪橇犬(二哈)
Eskimo_dog : 12.393762916326523 爱斯基摩犬
malamute : 0.00020242005120962858 阿拉斯加雪橇犬
dogsled : 0.00015880526689215912
Norwegian_elkhound : 6.489584336577536e-06cost time: 20.758772611618042

结果还是不错的 ヽ( ̄▽ ̄)ノ

除此之外,git上还介绍了多张图的预测,预测速度的改变,多线程操作等。这里就不解释了,改动并不是很大。
今天暂时就到这儿吧,imageai还有图片物体检测/分隔,视频中物体检测和跟踪等等以后再继续介绍啦

代码以及模型文件我都放在了网盘上,有需要可以自行下载
链接: https://pan.baidu.com/s/13hUoa_0d3tla5d2pTfD1OA 提取码: qne5

后续:
ImageAI (二) 使用Python快速简单实现物体检测 Object Detection
ImageAI (三) 使用Python快速简单实现视频中物体检测 Video Object Detection and Tracking

ImageAI (一) 使用Python快速简单实现图像内容预测 Image Prediction相关推荐

  1. 使用ps去快速简单修改图像分辨率DPI为300并不改变原图尺寸大小的方法

    使用ps去快速简单修改图像分辨率DPI为300并不改变原图尺寸大小的方法分享_哔哩哔哩_bilibili

  2. python 快速行进 算法 图像修补

    图像修复 很多时候遇到受损的图片我们需要利用机器视觉的手段对其进行修复,opencv中提供了inpaint函数实现了这一功能. 1.先来看一个例子 首先读入图片: import numpy as np ...

  3. 怎么用python绘制柱状图_如何用python快速简单的制作柱状图?

    柱状图大家都会制作,那么你会用python制作柱状图吗? 我们先来看一下柱状图的定义:柱形图,又被称为长条图.或者柱状统计图,也叫作条图.条状图.棒形图,本质上来说就是一种以长方形的长度为变量的统计图 ...

  4. python实现简单骰子图像

    一.骰子作画 骰子作画是程序员Scott MacDonald做了一个很有趣的项目,他用一张黑底白点的骰子模拟出了一些人像照片. 任何一张图片都可以用骰子模拟出来,算法非常简单:将图片分成若干个区域,每 ...

  5. Python快速简单生成矩形词云

    效果 实现 打开IDLE新建文件rectangle.py import os from os import path from wordcloud import WordCloud from matp ...

  6. Python 机器学习简单实例:KNN预测鸢尾花分类

    读研太忙了才发现一年没更新,就以当初学习机器学习的一个简单例子作为一个新的开始吧.以下为正文. 一.安装sklearn库 执行以下命令安装, 注意:在此之前需要提前安装numpy.matplotlib ...

  7. python matplotlib 简单用法

    python matplotlib 简单用法 具体内容请参考官网 代码 import matplotlib.pyplot as plt import numpy as np # 支持中文 plt.rc ...

  8. (Python)从零开始,简单快速学机器仿人视觉Opencv---运用四:图像损痕修复

    教程: 博主之前写了24节关于使用OpenCV的教程,欢迎大家阅读: (Python)从零开始,简单快速学机器仿人视觉Opencv-第一节:OpenCV的图像读取显示及保存 (Python)从零开始, ...

  9. (Python)从零开始,简单快速学机器仿人视觉Opencv---运用一:快速截取图像中指定单个物体

    教程: 博主之前写了21节关于使用Opencv的教程,欢迎大家阅读: (Python)从零开始,简单快速学机器仿人视觉Opencv-第一节:OpenCV的图像读取显示及保存 (Python)从零开始, ...

  10. 使用Python和OpenCV在图像之间执行超快速的颜色转换

    使用Python和OpenCV在图像之间执行超快速的颜色转换 1. 效果图 2. 原理 2.1 颜色转移算法 2.2 步骤 2.3 算法改进 3. 源码 参考 这篇博客将介绍如何使用Python和Op ...

最新文章

  1. Maven学习总结(七)——eclipse中使用Maven创建Web项目
  2. hdfs du命令是算的一份数据
  3. ASP.NET环境下配置FCKEditor并上传图片及其它文件
  4. 通过PowerShell获取Windows系统密码Hash
  5. 8.分页、连接、自关联查询
  6. structs2 get方式传参中文乱码解决方法
  7. linux使用du命令查看文件夹大小(磁盘使用情况)
  8. 浙江5G+智能制造迅速推进连点成片。
  9. python online json editor_python+django常用富文本插件使用配置(ckeditor,kindeditor)
  10. 大学计算机专业清华,中国计算机专业最“牛”的4所大学,清华第1,当之无愧...
  11. 世界AI人才储备战硝烟四起,中国能否抢占少儿编程先机?
  12. 愤怒大叔-喝酒聚会游戏
  13. 亚马逊数据技能,选择新品的8大核心原则
  14. Java-打怪兽趣味小游戏(附效果图)
  15. IT业比较好的几个社区论坛
  16. 使用echarts实现活跃度(热力图)
  17. 指令集入选重庆市工业和信息化领域“揭榜挂帅”项目榜单
  18. 我的精神分裂——普通青年用二-B的方式走文艺的范儿
  19. 什么是冒烟测试?冒烟测试的意义
  20. Access学习要点1----组合框值列表原理

热门文章

  1. HDU - 5699(79/600)
  2. 常用编程语言应用、前景及学习方法
  3. docker进阶(1):使用cAdvisor监控容器
  4. java poi 合并单元格
  5. 3dmax2017卸载/安装失败/如何彻底卸载清除干净3dmax2017注册表和文件的方法
  6. 京东店铺怎么运营 掌握这些京东运营知识很有必要!
  7. 7.spring之Bean的作用域
  8. tiff文件读写等操作(多帧tiff图像保存成的.tif文件)
  9. python实现科赫雪花的绘制(最简单)
  10. CAD/CASS插件断面图批量提取横纵断面数据(左负右正、左零开始)可附加提取桩号XY坐标(北坐标东坐标)