python 编写的人工智能实例

各位朋友们,小编在这里要分享,python用于人工智能的例子 python编程人工智能小例子,让我们开始吧!

什么是目标检测

目标检测关注图像中特定的物体目标,需要同时解决解决定位(localization) + 识别(Recognition)儿童学python语言能做什么,儿童学python网上哪个好。相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分离出感兴趣的目标,并确定这一目标的描述(类别和位置),因此检测模型的输出是一个列表,列表的每一项使用一个数组给出检出目标的类别和位置(常用矩形检测框的坐标表示)。

通俗的说,Object Detection的目的是在目标图中将目标用一个框框出来,并且识别出这个框中的是啥,而且最好的话是能够将图片的所有物体都框出来。

目标检测算法

目前目标检测领域的深度学习方法主要分为两类:两阶段(Two Stages)的目标检测算法;一阶段(One Stage)目标检测算法。

Two Stages

首先由算法(algorithm)生成一系列作为样本的候选框,再通过卷积神经网络进行样本(Sample)分类。也称为基于候选区域(Region Proposal)的算法。常见的算法有R-CNN、Fast R-CNN、Faster R-CNN等等。

One Stage

不需要产生候选框,直接将目标框定位的问题转化为回归(Regression)问题处理,也称为基于端到端(End-to-End)的算法。常见的算法有YOLO、SSD等等。

python实现

本文主要讲述如何实现目标检测,至于背后的原理不过多赘述,可以去看相关的论文。

ImageAI是一个简单易用的计算机视觉Python库,使得开发者可以轻松的将最新的最先进的人工智能功能整合进他们的应用。

ImageAI本着简洁的原则,支持最先进的机器学习算法,用于图像预测,自定义图像预测,物体检测,视频检测,视频对象跟踪和图像预测训练。

依赖

•Python 3.5.1(及更高版本)

•pip3

•Tensorflow 1.4.0(及更高版本)

•Numpy 1.13.1(及更高版本)

•SciPy 0.19.1(及更高版本)

•OpenCV

•pillow

•Matplotlib

•h5py

•Keras 2.x

安装

•命令行安装

pip3 install

•下载 安装文件并在命令行中指定安装文件的路径

pip3 install .\

使用

Image支持的深度学习的算法有RetinaNet,YOLOv3,TinyYoLOv3。ImageAI已经在COCO数据集上预先训练好了对应的三个模型,根据需要可以选择不同的模型。可以通过下面的链接进行下载使用:

•Download RetinaNet Model - resnet50_coco_best_v2.0.1.h5

•Download YOLOv3 Model - yolo.h5

•Download TinyYOLOv3 Model - yolo-tiny.h5

以上模型可以检测并识别以下80种不同的目标:

person, bicycle, car, motorcycle, airplane,

bus, train, truck, boat, traffic light, fire hydrant, stop_sign,

parking meter, bench, bird, cat, dog, horse, sheep, cow,

elephant, bear, zebra, giraffe, backpack, umbrella,

handbag, tie, suitcase, frisbee, skis, snowboard,

sports ball, kite, baseball bat, baseball glove, skateboard,

surfboard, tennis racket, bottle, wine glass, cup, fork, knife,

spoon, bowl, banana, apple, sandwich, orange, broccoli, carrot,

hot dog, pizza, donot, cake, chair, couch, potted plant, bed,

dining table, toilet, tv, laptop, mouse, remote, keyboard,

cell phone, microwave, oven, toaster, sink, refrigerator,

book, clock, vase, scissors, teddy bear, hair dryer,

toothbrush

先来看看完整的代码,使用YOLOv3算法对13张照片进行目标识别。

from imageai.Detection import ObjectDetection

import os

detector = ObjectDetection()

detector.setModelTypeAsYOLOv3()

detector.setModelPath("./model/yolo.h5")

detector.loadModel()

path = os.getcwd()

input_image_list = os.listdir(path+"\pic\input")

input_image_list = sorted(input_image_list, key = lambda i:len(i),reverse = False)

size = len(input_image_list)

for i in range(size):

input_image_path = (path+"\pic\input", input_image_list[i])

output_image_path = (path+"\pic\output", input_image_list[i])

detections, extract_detected_objects = detector.detectObjectsFromImage(input_image=input_image_path,

output_image_path=output_image_path,

extract_detected_objects=True)

print('------------------- %d -------------------' % int(i + 1))

for eachObject in detections:

print(eachObject["name"], " : ", eachObject["percentage_probability"], " : ", eachObject["box_points"])

print('------------------- %d -------------------' % int(i + 1))

首先第一行导入ImageAI Object Detection类,在第二行导入os库。

然后创建了ObjectDetection类的新实例,接着就可以选择要使用的算法。分别有以下三个函数:

.setModelTypeAsRetinaNet()

.setModelTypeAsYOLOv3()

.setModelTypeAsTinyYOLOv3()

选择好算法之后就要设置模型文件路径,这里给出的路径必须要和选择的算法一样。

.setModelPath()

- 参数path(必须):模型文件的路径

载入模型。

.loadModel()

- 参数detection_speed(可选):最多可以减少80%的时间,单身会导致精确度的下降。可选的值有: “normal”, “fast”, “faster”, “fastest” 和 “flash”。默认值是 “normal”。

通过os库的函数得到输入输出文件的路径等,这不是本文重点,跳过不表。

开始对图像进行目标检测。

.detectObjectsFromImage()

- 参数input_image(必须):待检测图像的路径

- 参数output_image(必须):输出图像的路径

- 参数parameter minimum_percentage_probability(可选):能接受的最低预测概率。默认值是50%。

- 参数display_percentage_probability(可选):是否展示预测的概率。默认值是True。

- 参数display_object_name(可选):是否展示识别物品的名称。默认值是True。

- 参数extract_detected_objects(可选):是否将识别出的物品图片保存。默认是False。

返回值根据不同的参数也有不同,但都会返回一个an array of dictionaries。字典包括以下几个属性:

* name (string)

* percentage_probability (float)

* box_points (tuple of x1,y1,x2 and y2 coordinates)

前面说过可以识别80种目标,在这里也可以选择只识别自己想要的目标。

custom = detector.CustomObjects(person=True, dog=True)

detections = detector.detectCustomObjectsFromImage( custom_objects=custom, (execution_path , ""), (execution_path , ""), minimum_percentage_probability=30)

首先用定义自己想要的目标,其余的目标会被设置为False。然后配合.detectCustomObjectsFromImage()进行目标检测。

主要的代码基本如上所述,接下来看结果。先看看图片中只有一个目标的效果。

------------------- 10 -------------------

dog : 98.呵呵798 : (117, 91, 311, 360)

dog : 99.24255609512329 : (503, 133, 638, 364)

dog : 99.274742603302 : (338, 38, 487, 379)

------------------- 10 -------------------

效果还是不错的。再看看如果图片中有多个目标识别的结果如何。

------------------- 4 -------------------

book : 55.76887130737305 : (455, 74, 487, 146)

book : 82.22097754478455 : (466, 11, 482, 69)

tv : 99.34800863265991 : (25, 40, 182, 161)

bed : 88.7190580368042 : (60, 264, 500, 352)

cat : 99.54025745391846 : (214, 125, 433, 332)

------------------- 4 -------------------

识别度还是很高的,背后人眼都看不清的书本都能被识别。

附录

GitHub:

总结

以上所述是小编给大家介绍的利用ImageAI库只需几行python代码超简实现目标检测,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本文标题: 利用ImageAI库只需几行python代码实现目标检测

本文地址:


原文地址1:https://blog.csdn.net/weixin_39637260/article/details/110334258
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python数据分析实例源码是一些帮助数据科学家、工程师和数据分析师在Python平台上进行数据分析的代码示例。这些示例代码可以帮助数据分析人员快速理解和掌握Python数据分析的基本原理和技能。 这些源码示例可以涵盖从数据清洗、可视化、机器学习到人工智能等领域的数据分析问题,例如: 1. 数据清洗:包括数据预处理、数据格式化、数据过滤等等,比如清洗数据、去除错误的数据等。 2. 数据可视化: 包括各种类型的图表和地图展示,比如条形图、饼图和地图可视化等。 3. 机器学习:在Python 中使用机器学习模型进行预测和分类,比如逻辑回归、朴素贝叶斯分类器和决策树等。 4. 深度学习:使用深度学习技术处理大量的数据,比如使用神经网络进行图像识别、自然语言处理和语音识别等任务。 总之,Python数据分析实例源码可以帮助学习Python的数据科学家更快速地进行数据分析和应用,促进了Python在数据分析领域的广泛应用。 ### 回答2: Python数据分析实例源码提供了丰富的数据分析案例及源代码,并可以通过学习这些实例更好地理解Python在数据分析领域的应用。这些实例涉及到的领域包括数据预处理、数据可视化及机器学习等,并可以帮助您更好地处理和分析数据。 其中包括常用的数据处理和分析库,如Pandas和Numpy,它们可以帮助您处理和操作数据集。同时也包括了可视化库,如Matplotlib和Seaborn。这些库可以帮助您更好地理解数据集的分布和相关性,以便更好地进行数据探索和分析。 Python数据分析实例源码还包括一些机器学习相关的案例,如监督学习、无监督学习、深度学习等。它们可以帮助您了解如何使用Python在机器学习领域应用最新技术。 通过Python数据分析实例源码的学习,您可以更好地了解Python在数据分析领域的应用,并且可以通过实例代码更加深入的理解Python的使用方法。这些实例不仅可以帮助您在处理数据时更加得心应手,还可以帮助您在解决实际问题时更加有效地使用Python。 ### 回答3: Python数据分析实例源码是指用Python编写的代码,用于解决数据分析中的问题或实现数据分析算法。这类源码通常包括数据读取、数据预处理、数据分析和可视化等功能,在实现数据分析的整个过程中发挥着重要的作用。 对于数据读取和预处理,Python提供了强大的Pandas库来处理常见的数据类型,例如CSV格式、Excel格式、JSON格式等,并且Pandas库支持基本的数据清洗、处理缺失值、数据变换等功能。而对于数据分析和可视化,Python则提供了Numpy、Matplotlib、Seaborn等库,这些库可以帮助我们进行统计分析和数据可视化,并且具有很高的灵活性和扩展性,可以满足不同场景下的数据分析需求。 以一个简单的数据分析实例为例,给定一份学生成绩的CSV文件,我们希望分析每个学生各科成绩的平均分、标准差等统计指标,并且绘制出每个学生的成绩分布图。以下是Python数据分析实例的源码: ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 读取数据 df = pd.read_csv('scores.csv') # 计算各科平均分和标准差 df['mean'] = df.mean(axis=1) df['std'] = df.std(axis=1) # 绘制成绩分布图 for col in df.columns[:-2]: sns.displot(df, x=col, hue='name', kind='kde') plt.title('Distribution of %s' % col) plt.savefig('%s.png' % col, dpi=300) plt.show() ``` 该源码中,我们首先使用Pandas的read_csv函数读取CSV文件,并对数据进行预处理,计算各科平均分和标准差,并将计算结果保存在DataFrame中。然后,我们使用Seaborn库绘制出各科成绩的分布图,并通过循环批量保存成绩分布图像。最后,我们通过Matplotlib库展示图像。 总之,Python数据分析实例源码对于从事数据分析工作的人来说是非常重要的工具之一,可以帮助分析师更高效更快捷地解决实际问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值