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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值