图像识别早已不是很新鲜的话题了,很多数据处理的任务到最后都会归为图像识别中,在之前的很多工作中,我陆陆续续也接触了很多相关的工作,从最开始数据处理,到模型搭建与最终上线也都经历,大多数时候模型都是自己搭建的,虽然说现在keras的出现极大地简化了模型的搭建工作,但是整个过程还是需要自己去实践完成的,对于很多的初学者来说并不是很容易的。

今天发现了一个好玩的库——ImageAI,简单的说一下我的理解就是对keras的又一层封装,但又不全是这样。ImageAI简化了整个图像识别和目标检测的工作,今天想来简单看看,整个模块的能力。

使用的使用网上公开的数据集 idenprof ,分为train和test两个数据集,每个集合里面共有10个类别,数据集截图如下:

具体实践如下:

#!usr/bin/env python
# encoding:utf-8
from __future__ import division"""
__Author__:沂水寒城
功能: python基于 ImageAI 模块实现 idenprof 数据集预测识别当前官网中 ImageAI 主要提供四种类型的预测模型分别如下:
SqueezeNet(预测速度最快 正确率中等)
ResNet50 (预测速度快 正确率较高)
InceptionV3(预测速度慢 正确率高)
DenseNet121(预测速度更慢 正确率最高)
"""import os
import threading
from imageai.Prediction import ImagePrediction
from imageai.Prediction.Custom import ModelTraining
from imageai.Prediction.Custom import CustomImagePredictiondef modelPredictDemo(model_path='officeModels/resnet_model_ex-020_acc-0.651714_idenprof.h5',class_path='officeModels/model_class_idenprof.json',pic_dir='idenprofTestPic/',classNum=10,resNum=1,flag=True):'''图像识别模型demo''' right=0if flag:prediction=CustomImagePrediction()  else:prediction=ImagePrediction()prediction.setModelTypeAsResNet()prediction.setModelPath(model_path)prediction.setJsonPath(class_path)prediction.loadModel(num_objects=classNum)all_files=[]pic_list=os.listdir(pic_dir)  for one_pic in pic_list:all_files.append(pic_dir+one_pic)for one_pic in all_files:predictions,probabilitys=prediction.predictImage(one_pic,result_count=resNum)true_label=one_pic.split('/')[-1].split('.')[0].strip()for predict,probability in zip(predictions,probabilitys):print(true_label,'===>',predict, " : ", str(probability))if true_label.split('-')[0].strip()==predict:right+=1acc=right/len(all_files)print('Accuracy: ',acc)if __name__=='__main__':modelPredictDemo(model_path='officeModels/resnet_model_ex-020_acc-0.651714_idenprof.h5',class_path='officeModels/model_class_idenprof.json',pic_dir='idenprofTestPic/',classNum=10,resNum=1,flag=True)

模型输出如下:

由于自己的PC机太次了,我没有选择去自己训练模型,直接下载了官方提供的预训练模型,随机抽取了250张图片数据作为测试使用,粗略地计算了一下准确度达到了55.64%以上。

感觉ImageAI使用起来的确是简单了很多,但是模型的种类和灵活性反而不如自己搭建模型了,这里更像是一个社区,自己可以贡献自己的数据集和预训练模型供别人使用,总之,好的东西总是会为开发者提供便利的,记录学习!

Python基于 ImageAI 模块实践 idenprof数据集识别预测分析相关推荐

  1. Python基于深度学习yolov5的扑克牌识别

    Python基于深度学习yolov5的扑克牌识别(附带源码) 源程序来源于本人参与开发的一个网络扑克牌小游戏的图像识别.AI分析,AI出牌的小项目,做完后和大家分享一下扑克牌自动识别模块制作的过程. ...

  2. DeepID:Python基于Caffe的DeepID2实现人脸识别的简介、实现之详细攻略

    DeepID:Python基于Caffe的DeepID2实现人脸识别的简介.实现之详细攻略 目录 基于Caffe的DeepID2实现人脸识别 DeepID2实现人脸识别的实现 基于Caffe的Deep ...

  3. Python与人工智能入门实践——简易人脸识别系统

    Python与人工智能入门实践--简易人脸识别系统 写在前面: 笔者在寒假期间进行了一些简短的实训,主要内容包括简单的爬虫和简单的人脸识别算法,由于时间有限,对于python也是第一次详细学习,功能较 ...

  4. python数据库编程:Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载 ...

  5. 模式分类识别 | Python实现基于LGBM模型的信用类型识别预测

    模式分类识别 | Python实现基于LGBM模型信用类型识别预测 目录 模式分类识别 | Python实现基于LGBM模型信用类型识别预测 识别效果 文章概述 模型描述 程序设计 学习总结 识别效果 ...

  6. 【Python】pandas模块操作大型数据集

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.pandas提供了大量能使我们 ...

  7. 【Python 基于EasyOCR库进行图片文字识别】

    文章目录 一.概况 目前支持的语言 二.安装指南(windows) 1.通过pip安装 2.通过源代码安装 三.代码运用OCR 要识别的图片 1.代码_I 识别结果_1 2.代码_II 识别结果_2 ...

  8. 【项目实战】Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 居民在使用家用热水器的过程中,会因为地区气候.不同区域和用户年龄 ...

  9. Python基于Oxford-IIIT Pet Dataset实现宠物识别系统

    先看效果:        Oxford-IIIT Pet Dataset是一个不错的数据集,牛津官方整理出来的一个关于各种猫和狗的数据集,可以很方便被我们用来做图像识别或者是图像分割类型的任务,这里我 ...

  10. python 基于pillow模块生成随机图片验证码教程

    效果图 我们先来看一下大致的效果图. 以上图形都是用非常基础的元素随机构成的:点,线,曲线,文本.而pillow模块远远不止这些功能,如果学好了它,真的就是你想怎么花就怎么花. 那么现在我们就去学习一 ...

最新文章

  1. Zabbix安装 Grafana安装
  2. BZOJ 1030: [JSOI2007]文本生成器 [AC自动机 DP]
  3. LeetCode371——Sum of Two Integers(不用+)
  4. 【hiho挑战赛24 ABC】贪心和期望dp惨烈的后缀自动机
  5. inchat库下载 python_Linux 环境下安装 Python3 的操作方法
  6. POJ - 2828
  7. python中如何打印阶梯_字符阶梯(python)
  8. hdu4417(Super Mario)—— 二分+划分树
  9. 计算机基础知识整理 世上最全,IT小白必看:计算机基础知识整理大全
  10. linux eclipse安装使用教程
  11. 利用matlab函数创建数组
  12. 来抽个奖吧!stata随机程序揭秘
  13. Android WiFi 连接 (Connect,no Internet,带叉)
  14. 雪上加霜!吴秀波在《雪豹》中被除名
  15. Java 关于java.util.LinkedHashMap cannot be cast to 实体类问题答案
  16. cos41度用计算机怎么算,用电监察计算(精品)
  17. 湖南方言之王——湘乡话
  18. saveOrUpdate
  19. HTC One M7刷机包 基于官方4.3.0 精简稳定 省电(新蜂V2.5)
  20. python中import包报错解决方法

热门文章

  1. 【LDAP】LDAP常用命令解析
  2. bootstrap-table教程演示
  3. 分布式与集群的联系与区别
  4. 第十九章 TCP的交互数据流
  5. greenDAO系列7--关系
  6. ios中UIWebview和asiHttprequest的用法
  7. 于Linux下s、t、i、a权限
  8. 安装Oracle 11.2.0
  9. Markdown 使用感受
  10. 在centos7部署etcd v3的c++客户端