Python 10行代码完成AI图像目标检测

首先,我们用到的是imageai这个第三方库,然后下载yolo.h5(提取码:0ewg)预训练权重

我们先来看一个最简单的实现方式,10行代码实现图像的目标检测

from imageai.Detection import ObjectDetection
import os

execution_path = os.getcwd()
detector = ObjectDetection()
// 下面是设置你所要使用的模型,RetinaNet我没有用过,不知效果如何,TinyYOLOv3的效果没有
// YOLOv3的效果好
// detector.setModelTypeAsRetinaNet()
// detector.setModelTypeAsTinyYOLOv3()
detector.setModelTypeAsYOLOv3()
// 载入已训练好的文件
detector.setModelPath(os.path.join(execution_path, "yolo.h5"))
// loadModel可以带有一个速度参数,默认是detection_speed="normal",此外还可以是fast/faster/fastest/flash
detector.loadModel()
// 将检测后的结果保存为新图片,000328.jpg是原图,000328new.jpg是带有检测结果的新图
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path, "000328.jpg"), output_image_path=os.path.join(execution_path, "000328new.jpg"))

来看一下检测结果吧
在这里插入图片描述
是不是很棒!这样就完成在图片中检测目标物体,它默认是检测生活中常见的80种事物。
上面是从图片中检测目标,所以它用的模型都是目标检测模型,下面来看一下利用imageAI来进行图片的预测,其实我觉得这个要比目标检测低级一点了,因为目标检测是从图片中检测出目标物体,无论有多少都把它圈出来,而图片的预测,只是图片中包含的主要物体,图像不能太乱太复杂,主体要突出,下面来看一下代码吧

from imageai.Prediction import ImagePrediction
import os
import time

// 计时
start = time.time()
// 当前路径 包含需要预测的图片,模型文件
execution_path = os.getcwd()
// 创建预测类
prediction = ImagePrediction()

// 设置预测模型 有以下四种
// SqueezeNet
// prediction.setModelTypeAsSqueezeNet()
// DenseNet121
// prediction.setModelTypeAsDenseNet()
// InceptionV3
// prediction.setModelTypeAsInceptionV3()
// ResNet50
prediction.setModelTypeAsResNet()
prediction.setModelPath(os.path.join(execution_path, "resnet50_weights_tf_dim_ordering_tf_kernels.h5"))

prediction.loadModel()
// 预测图片,以及结果预测输出数目
predictions, probabilities = prediction.predictImage(os.path.join(execution_path, "image3.jpg"), result_count=5)
// 结束计时
end = time.time()
// 输出结果
for eachPrediction, eachProbability in zip(predictions, probabilities):
	print(eachPrediction, " : ", eachProbability)
print("\ncost time:", end - start)

我们来看下效果吧
在这里插入图片描述

convertible  :  52.459555864334106
sports_car  :  37.61284649372101
pickup  :  3.1751200556755066
car_wheel  :  1.817505806684494
minivan  :  1.7487050965428352

cost time: 9.263643980026245

图像预测加载的模型是特征提取模型,目标检测加载的是目标检测模型,其中目标检测模型是要包含特征提取模型的,所以个人认为目标检测模型是比特征提取模型更高一级,也更复杂!

下一篇将介绍如何用imageAI来实现视频里的目标检测
下下篇将介绍利用imageAI来实现自定义的数据集训练及检测
期待吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值