首页 理论教育 Python与AI编程(下):目标检测成果

Python与AI编程(下):目标检测成果

时间:2023-11-08 理论教育 版权反馈
【摘要】:上面两个例子都是完成特定目标的识别。但在实际应用中,往往需要从一张图片中检测出多种物体,这对图像识别提出了更高的要求。下面我们将利用ImageAI来进行目标检测。ImageAI 为图像的检测和抽取提供了强大的类和函数,它支持使用深度学习算法的模型,例如RetinaNet、YOLOv3 和TinyYOLOv3。检测之前的图片检测之后的图片检测结果为〔项目和正确率(%)〕:person:57.92815089225769person:73.82912039756775person:95.15230059623718person:52.494847774505615person:87.85123825073242car:90.14939665794373car:90.89049100875854car:56.5509557723999person:76.51398777961731car:97.46530652046204本章小结本章介绍了Python在数字手写体识别、人脸识别和目标检测方面的应用。

Python与AI编程(下):目标检测成果

上面两个例子都是完成特定目标的识别(数字手写体识别以及人脸识别)。但在实际应用中,往往需要从一张图片中检测出多种物体,这对图像识别提出了更高的要求。下面我们将利用ImageAI来进行目标检测。

ImageAI 为图像的检测和抽取提供了强大的类和函数,它支持使用深度学习算法的模型,例如RetinaNet、YOLOv3 和TinyYOLOv3。下面的例子中我们使用的模型resnet50_coco_best_v2.0.1.h5 是采用COCO数据集提前进行训练过的模型。COCO数据集有超过200 000张图片,有80种物体类别,例如人、自行车汽车摩托车、飞机、公共汽车火车、卡车、船、红绿灯消防栓等。本程序参考https://imageai-cn.readthedocs.io/zh_CN/latest/ImageAI_Object_Detection.html等内容。

---------------------part 1 安装相应的库---------------------

#在安装ImageAI之前,需要安装多个关联库,包括tensorflow、numpy、scipy、opencv、pillow、matplotlib、h5py、keras。注意tensorflow需用64位的Python版本

pip install--upgrade tensorflow

pip install numpy

pip install scipy

pip install opencv-python

pip install pillow

pip install matplotlib

pip install h5py

pip install keras

#安装ImageAI

pip install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl

#或者下载 imageai-2.0.1-py3-none-any.whl 后进行安装

pip install C:/User/MyUser/Downloads/imageai-2.0.1-py3-none-any.whl #路径可自行设定

#安装完之后进入正题,进行图像内容的预测

---------------------part 2 导入相关类---------------------

from imageai.Detection import ObjectDetection #导入ImageAI目标检测类

import os #导入Python 的 os 类

execution_path=os.getcwd()#查看当前所在路径

print(execution_path)

detector=ObjectDetection()#定义目标检测类

---------------------part 3 设置模型---------------------

detector.setModelTypeAsRetinaNet()#将模型的类型设置为RetinaNet

detector.setModelPath(os.path.join(execution_path,"resnet50_coco_best_v2.0.1.h5"))#将模型的路径设置为RetinaNet 模型的路径,前提是需要将文件存入当前路径

detector.loadModel()#将模型加载到目标检测类

---------------------part 4 物品检测---------------------(www.xing528.com)

detections=detector.detectObjectsFromImage(input_image=os.path.join(execution_path,"city.jpg"),output_image_path=os.path.join(execution_path,"citynew.jpg"))#调用目标检测函数,解析输入的和输出的图像路径

for eachObject in detections:

#迭代执行 detector.detectObjectsFromImage()函数并返回所有的结果

#打印出所检测到的每个目标的名称及其概率值

print(eachObject["name"]+":"+eachObject["percentage_probability"])

detections=detector.detectObjectsFromImage(input_image=os.path.join(execution_path,"city.jpg"),output_image_path=os.path.join(execution_path,"citynew.jpg"))

#目标检测类为图像目标创建一个新的文件夹,提取每张图像,并将每张图像都保存到新创建的文件夹中

下面是运行结果。

检测之前的图片

检测之后的图片

检测结果为〔项目和正确率(%)〕:

person:57.92815089225769

person:73.82912039756775

person:95.15230059623718

person:52.494847774505615

person:87.85123825073242

car:90.14939665794373

car:90.89049100875854

car:56.5509557723999

person:76.51398777961731

car:97.46530652046204

本章小结

本章介绍了Python在数字手写体识别、人脸识别和目标检测方面的应用。本章需要重点掌握如何利用Python调用各种已有的机器学习库来实现对图像的处理,以及建立模型的一般方法和步骤。

本章习题

参考本书中的程序,选取照片进行人脸识别

参考本书中的程序,选取照片进行物品辨识。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈