python识别简单训练模型_使⽤Python代码训练图像识别详细
⽰例
在本⽂中,我们将简要介绍⼈⼯智能领域,特别是计算机视觉领域,所涉及的挑战,针对这些挑战的现有现代解决⽅案以及如何便利,轻松地应⽤这些解决⽅案,⽽⽆需花费太多时间和精⼒。
⼈⼯智能⼏⼗年来⼀直是⼀个研究领域,科学家和⼯程师都在努⼒解开让机器和计算机充分感知和理解我们的世界以便正确⾏事和为⼈类办事的神秘感。这项研究⼯作最重要的⼀个⽅⾯是让计算机了解我们周围每天产⽣的视觉信息(图像和视频)。让计算机感知和理解视觉信息的这个领域被称为计算机视觉。
使⽤Python代码训练图像识别详细⽰例-1.jpg (33.99 KB, 下载次数: 0)
2018-7-22 18:00 上传
在20 世纪50年代到80年代⼈⼯智能研究的兴起期间,计算机⼿动给出了如何识别图像,图像中的物体以及要注意的特征的指令。这种体例是传统算法,称为专家系统因为他们要求⼈类为每个怪异的对象场景识别特征的痛苦,这些特征必须被识别并且在计算机可以理解的数学模型中暗⽰这些特征。这涉及到年夜量繁琐的⼯作,因为有数百种不合的体例可以暗⽰对象,并且存在数千(甚⾄数百万)个怪异存在
的不合场景和对象,因此到优化且准确的数学模型代表每个对象或场景的所有可能特征,对所有可能的对象或场景,更多的⼯作将永远延续。
然后,在20 世纪90年代,机器学习的概念被引⼊,它迎来了⼀个时代,在这个时代,我们可以设计算法,⽽不是告诉计算机在识别图像和视频中的场景和对象时需要注意什么。学习如何识别图像中的场景和物体,就像孩⼦学会通过探索来了解他/她的环境⼀样。机器学习为计算机学习识别⼏乎任何我们想要的场景或对象开辟了道路。
使⽤Python代码训练图像识别详细⽰例-2.jpg (42.74 KB, 下载次数: 0)
2018-7-22 18:00 上传
随着英伟达gpu等功能强年夜的计算机的呈现,以及阿历克斯·克⾥⽇夫斯基(Alex Krizhevsky)等⼈2012年推出的AlexNet等最先进的图像识别深度学习算法,以及He等⼈2015年推出的ResNet, Forrest Landola等⼈2016年推出的squeeze et,我们可以把⼀些图⽚放在⼀起,界说⼀个⼈⼯智能模型,⾃⼰去学习这些图⽚中的场景和对象的特征,并利⽤学习过程中获得的知识去识别它之后遇到的场景或对象的所有其他实例。
ImageAI是⼀个python库,⽤来让具有各种专业知识的学⽣、开发⼈员和研究⼈员使⽤5到15⾏简单的
代码构建具有最先进计算机视觉功能的系统和应⽤程序。现在,让我们通过建⽴你的第⼀个⼈⼯智能模型来引导你,它可以识别你想要的任何⼯具。
使⽤Python代码训练图像识别详细⽰例-3.jpg (58.3 KB, 下载次数: 0)
2018-7-22 18:00 上传
ChefDoctorEngineerFarmerFirefighterJudgeMechanicPilotPoliceWaiter
该数据集分为9000(每个⾏业900张图⽚) 图⽚,以训练⼈⼯智能模型和2000(每个⾏业200张图⽚) 图⽚,以测试⼈⼯智能模型在训练时的性能。IdenProf已经妥善放置并准备好训练您的⼈⼯智能模型,以通过他们的穿⾐体例识别专业⼈⼠。出于参考⽬的,如果您使⽤⾃⼰的图像数据集,则必须为希望⼈⼯智能模型识另外每个对象或场景收集⾄少500张图⽚。要训练您使⽤ImageAI⾃⾏收集的任何图像数据集,您必须将图像排列在⽂件夹中,如下例所⽰:
idenprof//train//chef// 900 images of chefs
idenprof//train//doctor// 900 images of doctors
idenprof//train//engineer// 900 images of engineer
idenprof//train//farmer// 900 images of farmers
idenprof//train//firefighter// 900 images of firefighters
idenprof//train//judge// 900 images of judges
idenprof//train//mechanic// 900 images of mechanics
idenprof//train//pilot// 900 images of pilots
idenprof//train//chef// 900 images of chef
idenprof//train//police// 900 images of police
idenprof//train//waiter// 900 images of waiters
idenprof//test//chef// 200 images of chefs
idenprof//test//doctor// 200 images of doctors
idenprof//test//engineer// 200 images of engineer
idenprof//test//farmer// 200 images of farmers
idenprof//test//firefighter// 200 images of firefighters
idenprof//test//judge// 200 images of judges
idenprof//test//mechanic// 200 images of mechanics
idenprof//test//pilot// 200 images of pilots
idenprof//test//chef// 200 images of chef
idenprof//test//police// 200 images of police
idenprof//test//waiter// 200 images of waiters
现在您已经了解了如何准备⾃⼰的图像数据集来训练⼈⼯智能模型,现在我们将继续指导您培训⼈⼯智能模型,以识别使⽤ImageAI的专业⼈员。
·⾸先,您必须通过此链接下载IdenProf数据集的zip 。您还可以查看⼈⼯智能模型的所有详细信息和样本结果,这些模型经过培训,可以识别IdenProf GitHub存储库中的专业,其链接位于下⽅。
·由于培训⼈⼯智能模型需要⾼性能计算机系统,因此我强烈建议您确保您希望⽤于此培训的计算机/笔记本电脑具有NVIDIA GPU。或者,您可以使⽤Google Colab进⾏此实验,它可以提供免费的NVIDIA K80 GPU进⾏实验。
·然后您必须安装ImageAI及其依赖项。
1)从官⽅Python语⾔⽹站下载并安装Python 3
2)通过pip安装以下依赖项:
pip install tensorflow
pip install numpy
pip install scipy
pip install opencv-python
pip install pillow
pip install matplotlib
pip install h5py
pip install keras
建⽴⼀个包含您想要的任何名称的python⽂件,例如“FirstTraining.py”。
·将IdenProf数据集的zip复制到Python⽂件所在的⽂件夹中。然后将其解压缩到同⼀个⽂件夹中。
·然后将下⾯的代码复制到python⽂件中(例如FirstTraining.py)。
from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsResNet()
model_trainer.setDataDirectory("idenprof")
ainModel(num_objects=10, num_experiments=200, enhance_data=True, batch_size=32,
show_network_summary=True)
这就是训练⼈⼯智能模型所需的所有代码。在运⾏代码开始培训之前,让我们解释⼀下代码。
在第⼀⾏中,我们导⼊了ImageAI的模型训练类。在第⼆⾏中,我们建⽴了⼀个模型训练类的实例。在第三⾏中,我们将模型类型设置为ResNet(有四种可⽤的模型类型,即SqueezeNet,ResNet,InceptionV3和DenseNet)。在第四⾏中,我们将数据⽬录(dataset⽬录)设置为您解压缩的数据集 zip⽂件的⽂件夹。然后在第五⾏中,我们挪⽤trainModel函数并指定以下值:
number_objects :这是指IdenProf数据集中不合类型的专业⼈员的数量。 num_experiments :这是模型训练idenprof数据集中所有图像以获得最年夜准确度的次数。 Enhance_data(可选) :这是为了告诉模型训练在IdenProf数据集中建⽴图像的修改副本,以确保实现最⾼精度。 batch_size:这是指模型训练⼀次研究的图像数,直到它研究了IdenProf数据集中的所有图像。
Show_network_summary(可选) :这是为了显⽰⽤于训练⼈⼯智能模型的模型类型的结构。
现在您可以开始运⾏Python⽂件并开始培训。训练开始后,您将看到如下结果:
=====================================
Total params: 23,608,202
Trainable params: 23,555,082
Non-trainable params: 53,120
______________________________________
Using Enhanced Data Generation
Found 4000 images belonging to 4 classes.
Found 800 images belonging to 4 classes.
JSON Mapping for the model classes saved to
C:\Users\User\PycharmProjects\FirstTraining\idenprof\json\model_class.json
Number of experiments (Epochs) : 200
Epoch 1/100
1/280 [>.............................] - ETA: 52s - loss: 2.3026 - acc: 0.2500
2/280 [>.............................] - ETA: 52s - loss: 2.3026 - acc: 0.2500
3/280 [>.............................] - ETA: 52s - loss: 2.3026 - acc: 0.2500
..............................,
..............................,
..............................,
279/280 [===========================>..] - ETA: 1s - loss: 2.3097 - acc: 0.0625Epoch 00000: saving model to C:\Users\User\PycharmProjects\FirstTraining\idenprof\models\model_ex-000_acc-0.100000.h5
280/280 [==============================] - 51s - loss: 2.3095 - acc: 0.0600 - val_loss: 2.3026 - val_acc:
0.1000
让我们解释⼀下上⾯显⽰的细节:
1.声明“ 保存到C:\ Users \ User \ PycharmProjects \ FirstTraining \ idenprof \ json \ model_class.json
的模型类的JSON映射”暗⽰模型训练已为idenprof数据集保存了⼀个JSON⽂件,您可以将其⽤于使⽤⾃界说图像预测类识别其他图⽚。
2. Epoch 1/200暗⽰⽹络正在执⾏⽬标200的第⼀次训练
3.1/280 [> ............................] - ETA:52s - 损失:2.3026 - acc:0.2500暗⽰在当前实验中训练的批次数
4.Epoch 00000:保存模型到C:\ Users \ User \ PycharmProjects \ FirstTraining \ idenprof \ models \ model_ex-000_acc-0.100000.h5是指⽬前训练后保存的模型。该ex_000暗⽰在这个阶段的实验,⽽ACC 0.100000和VAL ACC:0.1000暗⽰本实验后测试图像上模型的准确度(精度的最年夜值为1.0)。此结果有助于了解可⽤于⾃界说图像预测的最佳执⾏模型。
完成⼈⼯智能模型的训练后,您可以使⽤“ CustomImagePrediction ”类来执⾏图像预测,您可以获得最⾼精度的模型。
接下来,建⽴另⼀个Python⽂件并为其命名,例如FirstCustomImageRecognition.py 。复制您上⾯的⼈⼯智能模型或您获得最⾼精度的训练模型,并将其粘贴到新python⽂件所在的⽂件夹中(例如FirstCustomImageRecognition.py)。同时复制您下载的或由您的训练⽣成的JSON⽂件,并将其粘贴
到与新python⽂件相同的⽂件夹中。将属于IdenProf数据集中的类另外任何专业⼈员的样本图像复制到与新python⽂件相同的⽂件夹中。
然后复制下⾯的代码并将其放⼊新的python⽂件中
from imageai.Prediction.Custom import CustomImagePrediction
import os
execution_path = os.getcwd()
prediction = CustomImagePrediction()
prediction.setModelTypeAsResNet()
prediction.setModelPath("idenprof_061-0.7933.h5")
prediction.setJsonPath("idenprof_model_class.json")
prediction.loadModel(num_objects=10)
predictions, probabilities = prediction.predictImage("image.jpg", result_count=3)
for eachPrediction, eachProbability in zip(predictions, probabilities):
print(eachPrediction , " : " , eachProbability)
查看下⾯的⽰例图像和结果。
使⽤Python代码训练图像识别详细⽰例-4.jpg (41.04 KB, 下载次数: 0)
2018-7-22 18:00 上传python新手代码图案如何保存
waiter : 99.99997615814209
chef : 1.568847380895022e-05
judge : 1.0255866556008186e-05
现在让我们解释产⽣这个预测结果的上⾯代码。
上⾯的第⼀⾏和第⼆⾏代码导⼊了ImageAI的CustomImagePrediction类,⽤于使⽤训练模型和python os类预测和识别图像。第三⾏代码建⽴⼀个变量,该变量保存对包含python⽂件(在本例中为FirstCustomImageRecognition.py)的路径的引⽤以及您⾃⼰下载或训练的ResNet模型⽂件。在上⾯
的代码中,我们在第四⾏建⽴了⼀个ImagePrediction()类的实例,然后通过挪⽤,将预测对象的模型类型设置为ResNet .setModelTypeAsResNet()在第五⾏然后我们将预测对象的模型路径设置为⼈⼯智能模型⽂件(idenprof_061-
0.7933.h5)的路径,我们将其复制到第六⾏的项⽬⽂件夹⽂件夹中。在第七⾏中,我们设置了我们复制到第七⾏中的⽂件夹的JSON⽂件的路径,并将模型加载到第80⾏。最后,我们对我们复制到⽂件夹的图像运⾏预测,并将结果打印到命令⾏界⾯。
更多内容回复查看:
游客,如果您要查看本帖隐藏内容请回复

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。