基于ImageAI的对象检测——电气攻城狮的AI入门之旅(2)

本文介绍了如何使用ImageAI库和YOLO算法进行对象检测。内容包括环境配置、ImageAI库的下载与安装,以及一个简单的Python程序示例,用于将图片转换为带有目标标记的新图片。虽然YOLO模型在预设目标(如车、人、购物袋等)的识别上表现出高精度,但其局限性在于只能识别预先训练好的类别。
摘要由CSDN通过智能技术生成

本文代码来源:https://github.com/OlafenwaMoses/ImageAI/tree/master/imageai/Detection

之前的数字识别属于图像分类,即给出一个手写的数字,通过图像识别得出属于该手写数字属于0-9哪个类别。

有的应用环境下不仅需要我们给图像分类,还需要标记出目标的位置。因此涉及到对象检测。

对象检测涉及两个任务,一个是框出目标的位置,一个是确定对象的类型。对象检测的方法有不少种,但原理攻城狮现在都看不太懂。因此攻城狮选择了其中比较新潮而流行的YOLO(You Only Look Once)。同时,为了方便,选择了只需几行代码就可以完成检测工作的ImageAI。

这里写图片描述
图片来自YOLO官方网站,相当有风格。

要完成对象检测,我们首先需要配置一些环境,这里简述如下:

其次需要下载ImageAI,https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/yolo.h5

然后按照ImageAI的中文官方文档写一个phython程序:

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 , "image2.jpg"), output_image_path=os.path.join(execution_path , "image2new.jpg"), minimum_percentage_probability=30)


for eachObject in detections:
print(eachObject["name"] , " : ", eachObject["percentage_probability"], " : ", eachObject["box_points"] )
print("--------------------------------")


这个程序可以把和phython程序同文件夹的image2.jpg(文件名可以自己改)转化为标记好的mage2new.jpg。(记得把下载的yolo.h5也放在同一个文件夹里)

卖家秀如图:

这里写图片描述

实际测试这个模型的识别精度挺高的,美中不足就是模型是预设好的,只能识别一些预设的目标,例如车、人、购物袋等等。

更新:ImageAI也支持视频识别,具体见ImageAI的中文官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值