4

【深度学习前沿应用】目标检测

 2 years ago
source link: https://blog.51cto.com/u_15745546/5651035
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【深度学习前沿应用】目标检测


作者简介:在校大学生一枚,华为云享专家,阿里云星级博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建设专家委员会(TIPCC)志愿者,以及编程爱好者,期待和大家一起学习,一起进步~
.
博客主页 ぃ灵彧が的学习日志
.
本文专栏 机器学习
.
专栏寄语:若你决定灿烂,山无遮,海无拦
.
【深度学习前沿应用】目标检测_人工智能

(文章目录)


1. 计算机如何实现目标检测?

对计算机而言,能够“看到”的是图像被编码之后的数字,但它很难理解高层语义概念,比如图像或者视频帧中出现的目标是人还是物体,更无法定位目标出现在图像中那个区域。


2. 目标检测的主要目的是什么?

目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的类别,并在该目标周围绘制边界框,标示出每个目标的位置


3. 目标检测的过程是如何的?

目标检测的过程为:在输入图片上生成一系列可能包含对象的区域,这些区域称为侯选区域(在一张图上可以生成很多个侯选区域),然后对每个侯选区域,可以把它单独当成一幅图像来看待,使用图像分类模型对它进行分类,看它属于那个类别或者背景(即不包含任何对象的类别)。

本实验的目的是简单地演示如何使用PaddleHub工具,实现目标检测(推理过程,如何使用飞桨深度学习平台进行预训练,而微调的实验将在后面的小节介绍),本次实验平台为百度AI Studio,实验环境为Python 3.7,Paddle2.0,PaddleHub2.0


(一)、加载待检测图片

导入相关包

import paddlehub as hub
import cv2
import matplotlib.image as mpimg
import matplotlib.pyplot as plt

使用不同的预训练模型,检测下图1所示的目标:

【深度学习前沿应用】目标检测_深度学习_02

注:使用时可能会出现版本不对应的情况,需在导入包之前,加入如下代码:

!pip uninstall paddlepaddle 
!pip install  paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple 
!pip uninstall  paddlehub 
!pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple 

(二)、定义目标检测函数

由于PaddleHub提供了多种目标检测预训练模型,因此可以尝试使用不同的预训练模型进行检测,通过参数控制调用模型类型:

# 定义目标检测接口函数:module_name为选择的预训练模型名称
def object_detection(module_name):
    vehicles_detector = hub.Module(name=module_name)
    result = vehicles_detector.object_detection(images=[cv2.imread('motuoche2.jpg')])
    img = mpimg.imread(result[0]['save_path'])
    plt.figure(figsize=(15,15))
    plt.imshow(img)  
plt.show()


(三)、目标检测

由于图1中包含机动车与人物,因此,本实验使用下列四种预训练模型进行检测,并展示检测结果:yolov3_darknet53_pedestrian、yolov3_darknet53_vehicles、yolov3_darknet53_v1_coco2017及faster_rcnn_resnet50_fpn_coco2017

object_detection('yolov3_darknet53_pedestrian')  # 行人检测

检测结果如下图2所示:
#可检测行人

【深度学习前沿应用】目标检测_深度学习_03
object_detection('yolov3_darknet53_vehicles')     # 车辆

检测结果如下图3所示:
#可检测车辆

【深度学习前沿应用】目标检测_深度学习_04
object_detection('yolov3_mobilenet_v1_coco2017')  # 车辆及行人

检测结果如下图4所示:
#可检测车辆行人

【深度学习前沿应用】目标检测_目标检测_05
object_detection('faster_rcnn_resnet50_fpn_coco2017') # 车辆及行人

检测结果如下图5所示:
#可检测车辆及行人

【深度学习前沿应用】目标检测_python_06

本系列文章内容为根据清华社出版的《机器学习实践》所作的相关笔记和感悟,其中代码均为基于百度飞桨开发,若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

最后,引用本次活动的一句话,来作为文章的结语~( ̄▽ ̄~)~:

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

【深度学习前沿应用】目标检测_深度学习_07

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK