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

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: Python基于 ImageAI 模块实践 idenprof数据集识别预测分析       图像识别早已不是很新鲜的话题了,很多数据处理的任务到最后都会归为图像识别中,在之前的很多工作中,我陆陆续续也接触了很多相关的工作,从最开始数据处理,到模型搭建与最终上线也都经历,大多数时候模型都是自己搭建的,虽然说现在keras的出现极大地简化了模型的搭建工作,但是整个过程还是需要自己去实践完成的,对于很多的初学者来说并不是很容易的。

Python基于 ImageAI 模块实践 idenprof数据集识别预测分析
       图像识别早已不是很新鲜的话题了,很多数据处理的任务到最后都会归为图像识别中,在之前的很多工作中,我陆陆续续也接触了很多相关的工作,从最开始数据处理,到模型搭建与最终上线也都经历,大多数时候模型都是自己搭建的,虽然说现在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 CustomImagePrediction

def 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=0
if 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+=1
acc=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使用起来的确是简单了很多,但是模型的种类和灵活性反而不如自己搭建模型了,这里更像是一个社区,自己可以贡献自己的数据集和预训练模型供别人使用,总之,好的东西总是会为开发者提供便利的,记录学习!

作者:Together_CZ
来源:CSDN
原文:https://blog.csdn.net/Together_CZ/article/details/96714163
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章
|
1天前
|
前端开发 Python
python之【Tkinter模块】
python之【Tkinter模块】
11 5
|
1天前
|
Python
|
1天前
|
存储 开发者 Python
从理论到实践:Python中Trie树与Suffix Tree的完美结合,开启编程新篇章!
在编程领域,高效的数据结构对于解决问题至关重要。本文通过一个案例分析,介绍如何在Python中结合使用Trie树(前缀树)和Suffix Tree(后缀树)。案例聚焦于开发具备高效拼写检查和文本相似度检测功能的文本编辑器。首先,通过构建Trie树快速检查单词是否存在;接着,利用Suffix Tree检测文本相似度。尽管Python标准库未直接提供Suffix Tree,但可通过第三方库或自定义实现。本文展示了高级数据结构在实际应用中的强大功能,并强调了理论与实践相结合的重要性。
9 1
|
1天前
|
设计模式 缓存 中间件
探索Python中的装饰器:从入门到实践
【9月更文挑战第25天】本文通过直观的语言和生动的比喻,深入浅出地介绍Python装饰器的概念、原理及应用。我们将一起走进装饰器的魔法世界,解锁其在代码编写中的强大功能,让你的代码更加优雅和高效。
|
2天前
|
关系型数据库 MySQL Python
pymysql模块,python与MySQL之间的交互
pymysql模块,python与MySQL之间的交互
|
2天前
|
Unix Linux 网络安全
python中连接linux好用的模块paramiko(附带案例)
该文章详细介绍了如何使用Python的Paramiko模块来连接Linux服务器,包括安装配置及通过密码或密钥进行身份验证的示例。
8 1
|
2天前
|
数据可视化 搜索推荐 JavaScript
pyecharts模块的几个经典案例(python经典编程案例)
文章提供了多个使用pyecharts模块创建数据可视化的Python编程案例,展示如何生成各种类型的图表并进行定制化设置。
9 0
|
2天前
|
数据挖掘 Python
用python的tushare模块分析股票案例(python3经典编程案例)
该文章提供了使用Python的tushare模块分析股票数据的案例,展示了如何获取股票数据以及进行基本的数据分析。
11 0
|
数据采集 人工智能 算法
Python学习十大公开免费数据集介绍
很多行友说,想做项目学习和练手没有数据怎么办。又想给行哥投稿赚钱,没有数据拿头分析啊。先别急,这里行哥给大家推荐一些数据来源,足够你去好好分析数据,这些数据用来学习和找工作都不是问题
1032 0
Python学习十大公开免费数据集介绍
|
1天前
|
数据采集 人工智能 数据挖掘
Python编程入门:从基础到实战的快速指南
【9月更文挑战第25天】本文旨在为初学者提供一个简明扼要的Python编程入门指南。通过介绍Python的基本概念、语法规则以及实际案例分析,帮助读者迅速掌握Python编程的核心技能。文章将避免使用复杂的专业术语,而是采用通俗易懂的语言和直观的例子来阐述概念,确保内容的可读性和实用性。