编程语言如何实现AI目标检测技术?

    作者:编程小仙女M 更新于: 2019-12-12 15:18:27

    大神带你学编程,欢迎选课

    Python是最好的语言,实现AI目标检测技术!用10行Python代码。虽然大多数的语言可以既可被编译又可被解译,但大多数仅在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。

    前言:

    今天为大家带来的内容是,用10行Python代码,实现AI目标检测技术!(Python是最好的语言),本文具有不错的参考意义,希望能够帮助到你!

    提示:部分代码用图片方式呈现出来,方便观看及收藏,喜欢不忘关注点赞不迷路哦!

    只需10行Python代码,我们就能实现计算机视觉中目标检测。

    编程语言如何实现AI目标检测技术_python_python教程_编程语言_课课家 

    没错,用这寥寥10行代码,就能实现目前AI产品中应用广泛的目标检测技术。

    看完了代码,下面就来解读这10行Python代码的由来和实现原理。

    我们开头所示的10行代码实现,就是要用到ImageAI。

    如何借助ImageAI轻松实现目标检测

    使用ImageAI执行目标检测,你只需以下4步:

    1.在电脑上安装Python

    2.安装ImageAI及其环境依赖

    3.下载目标检测模块文件

    4.运行示例代码,就是我们展示的那10行

    下面我们一步步详细讲解。

    1)从Python官网下载和安装Python 3

    python.org/

    2)通过pip安装如下环境依赖

    1.Tensorflow

    pip install tensorflow

    2.Numpy

    pip install numpy 

    3.SciPy

    pip install scipy 

    4.OpenCV

    pip install opencv-python

    5.Pillow

    pip install pillow

    6.Matplotlib

    pip install matplotlib 

    7.H5py

    pip install h5py

    8.Keras

    pip install keras

    9.ImageAI

    pip install

    3)通过该 链接 下载RetinaNet 模型文件用于目标检测。

    到了这里我们已经安装好了所有依赖,就可以准备写自己的首个目标检测代码了。 创建一个Python文件,为其命名(比如FirstDetection.py),然后将如下代码写到文件中,再把RetinaNet模型文件以及你想检测的图像拷贝到包含该Python文件的文件夹里。

    FirstDetection.py

     

    小编再这里说句:我是一名python开发工程师,最近闲得无聊,整理了一套最新的python系统学习教程,包括从基础的python脚本到Web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

    然后运行代码,等待控制台打印结果。等控制台打印出结果后,就可以打开FirstDetection.py所在的文件夹,你就会发现有新的图像保存在了里面。比如下面两张示例图像,以及执行目标检测后保存的两张新图像。

    目标检测之前:

     

     

     

    目标检测之后:

     

     

    我们可以看到图像上显示了检测出的物体名称及概率。

    解读10行代码

    下面我们解释一下这10行代码的工作原理。

    from imageai.Detection import ObjectDetection
    import os
    execution_path = os.getcwd()

    在上面3行代码中,我们在第一行导入了ImageAI目标检测类,在第二行导入Python os类,在第三行定义了一个变量,获取通往我们的Python文件、RetinaNet模型文件和图像所在文件夹的路径。

     

    在上面5行代码中,我们在第一行定义我们的目标检测类,在第二行设定RetinaNet的模型类型,在第三行将模型路径设置为RetinaNet模型的路径,在第四行将模型加载到目标检测类,然后我们在第五行调用检测函数,并在输入和输出图像路径中进行解析。

    for eachObject in detections:
    print(eachObject["name"] + " : " + eachObject["percentage_probability"] )

    在上面两行代码中,我们迭代了第一行中detector.detectObjectFromImage函数返回的所有结果,然后打印出第二行中模型对图像上每个物体的检测结果(名称和概率)。

    ImageAI支持很多强大的目标检测自定义功能,其中一项就是能够提取在图像上检测到的每个物体的图像。只需将附加参数extract_detected_objects=True解析为detectObjectsFromImage函数,如下所示,目标检测类就会为图像物体创建一个文件夹,提取每张图像,将它们保存在新创建的文件夹中,并返回一个包含通过每张图像的路径的额外数组。

     

    我们用前面的第一张图像作为例子,可以得到图像中检测到的各个物体的单独图像:

     

    ImageAI提供了很多功能,能够用于各类目标检测任务的自定义和生产部署(具体就不多介绍了)

    诚然,单看这10行代码每一行,谈不上惊艳,也借助了不少库,但是仅用10行代码就能让我们轻松实现之前很麻烦的目标检测,还是能谈得上“给力”二字。

    高级语言的出现使得计算机程序设计语言不再过度地依赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平台独立

课课家教育

未登录