ImageAI是一个python库,旨在使开发人员能够使用少量的代码,并且独立地使用计算机视觉功能构建应用程序和系统。官方网址为:https://aicommons.science/imageai。开发和维护者 : Moses Olafenwa and John Olafenwa, brothers, creators of TorchFusion and Authors of Introduction to Deep Computer Vision。在这里有更多相关的学习资源。
秉承着简洁的思维理念,ImageAI支持机器学习中 image prediction, custom image prediction, object detection, video detection, video object tracking and image predictions trainings.算法中的一系列先进算法。ImageAI目前支持在ImageNet-1000数据集中使用四种机器学习算法。也支持在COCO数据集上使用RetinaNet, YOLOv3 和TinyYOLOv3等算法进行目标检测、视频检测和目标跟踪。ImageAI将为计算机视觉的更广泛和更专业化方面提供支持,包括但不限于特殊环境和特殊领域的图像识别。
最新的版本:ImageAI 2.0.2
新的改动:
首先需要Python 3.5.1 或者更之后的版本。
之后我们需要Tensorflow 1.4.0 或者更之后的版本。我们可以通过下面方式进行更新版本:
pip3 install --upgrade tensorflow
Numpy 1.13.1或者更之后的版本
pip3 install numpy
SciPy 0.19.1 或者更之后的版本
pip3 install scipy
安装opencv
pip3 install opencv-python
安装Pillow
pip3 install pillow
安装Matplotlib
pip3 install matplotlib
安装h5py
pip3 install h5py
安装Keras 2.x
pip3 install keras
做完了这些准备工作之后就要开始真正的安装啦:
pip3 install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.2/imageai-2.0.2-py3-none-any.whl
或者你可以下载imageai-2.0.2-py3-none-any.whl ,之后运行:
pip3 install C:\User\MyUser\Downloads\imageai-2.0.2-py3-none-any.whl
这里注意自己的安装路径。
以目标检测为例进行代码解析:
首先我们需要一张图片:
之后我们创建一个python文件,随便怎么命令都可以,之后我们将图片命名为1.jpg后放入之前创建好的python文件的同一目录下。我们还需要下载YOLOv3 神经网络权重,我们将以下代码放入创建好的python文件中:
from imageai.Detection import ObjectDetection
import os
execution_path = os.getcwd()
detector = ObjectDetection()
detector.setModelTypeAsYOLOv3()
detector.setModelPath( os.path.join(execution_path , "yolo.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "1.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))
for eachObject in detections:
print(eachObject["name"], " : ", eachObject["percentage_probability"], " : ", eachObject["box_points"])
from imageai.Detection import ObjectDetection
import os
execution_path = os.getcwd()
在上面 3 行代码种,第一行我们导入了 ImageAI 目标检测类,第二行导入了 python 的 os 类,第三行定义了一个变量用来保存我们的 python 文件,其中 RetinaNet 模型文件和图像都将存放在该文件夹路径下。
detector = ObjectDetection()
detector.setModelTypeAsYOLOv3()
detector.setModelPath( os.path.join(execution_path , "yolo.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "1.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))
在上面的 5 行代码中,第一行定义了目标检测类,第二行将模型的类型设置为 Yolo3,并在第三行将模型路径设置为 Yolo3 模型的路径,第四行将模型加载到的目标检测类,第五行调用目标检测函数,解析输入的和输出的图像路径。
for eachObject in detections:
print(eachObject["name"], " : ", eachObject["percentage_probability"], " : ", eachObject["box_points"])
在上面的2行代码中,第一行迭代执行 detector.detectObjectsFromImage 函数并返回所有的结果,然后在第二行打印出所检测到的每个目标的名称及其概率值,bounding-box坐标。
ImageAI 提供四种不同的算法和模型去进行图片分类预测。这四种算法为: SqueezeNet, ResNet, InceptionV3 and DenseNet. 你可以在下面的连接中找到相关用法的指导说明:
>>> Tutorial & Guide
ImageAI提供非常方便并且强大的图像目标检测方法。提供了RetinaNet, YOLOv3 and TinyYOLOv3三种算法,使得我们具有调整最佳性能或实时处理的选项。你可以在下面的连接中找到相关用法的指导说明:
>>> Tutorial & Guide
ImageAI 提供了非常方便和强大的方法来在视频中执行对象检测并跟踪特定对象。 提供的视频对象检测类仅支持当前最先进的RetinaNet,具有调整最佳性能或实时处理的选项。你可以在下面的连接中找到相关用法的指导说明:
>>> Tutorial & Guide
ImageAI您提供类和方法,使用您自己使用ImageAI Model Training类训练的模型运行图像预测您自己的自定义对象。 您可以使用通过SqueezeNet,ResNet50,InceptionV3和DenseNet训练的自定义模型以及包含自定义对象名称映射的JSON文件。
>>> Tutorials & Documentation
ImageAI提供了类和方法,您可以使用自己使用ImageAI Model Training类训练的模型运行图像预测您自己的自定义对象。 您可以使用通过SqueezeNet,ResNet50,InceptionV3和DenseNet训练的自定义模型以及包含自定义对象名称映射的JSON文件。你可以在下面的连接中找到相关用法的指导说明:
>>> Tutorials & Documentation
你可以在以下连接中找到官方的教程文档:
>> Documentation - English Version https://imageai.readthedocs.io
>> Documentation - Chinese Version https://imageai-cn.readthedocs.io
参考:
https://mp.weixin.qq.com/s/XXHUon2qca6p6ZMpwzgD2Q
https://github.com/OlafenwaMoses/ImageAI
我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!