深度学习图像处理目标检测图像分割计算机视觉 08--目标检测

深度学习图像处理目标检测图像分割计算机视觉 08--目标检测

摘要

本周计划学习目标检测四种网络类型,从原始的R-CNN、到SPP-NET到Fast R-CNN、Faster R-CNN,网络之间的进化史以及改进 的部分。运行一个目标检测的代码。学习甲状腺评分的论文,了解甲状腺评分规则以及现有的评分类论文。毕设目前完成了开题报告和ppt。

一、目标检测

目标检测就是检测出图片中所有物体的类别标签和位置,就是可以在物体的周围画出一个框,下面从原始的目标检测模型开始讲起。

1.1 区域卷积神经网络R-CNN

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这一步是在一副图中选出大约2000个可能有物体存在的框,选择的标准按照以下步骤进行。
在这里插入图片描述
在我们选出候选框之后,这些候选框大小不一,而我们的cnn网络要求输入的都是统一尺寸大小的,,那么就要经过warp这一个步骤将候选框变成尺寸统一。
在这里插入图片描述
在这里插入图片描述
那么R-CNN是怎么训练的呢?
在这里插入图片描述
还是按照之前讲过的fine tuning的算法,训练后面的全连接层。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.2 SPP-NET

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.3 Fast R-CNN

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 Faster R-CNN

Faster R-CNN的想法是既然其他的模块全部都是卷积神经网络,那么不如把SS模块也变成卷积神经网络。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、代码

这是目标检测的测试代码,代码的功能是输入一张图片,会自己框住一些物体并且输出对物体的判断以及概率。

import os
import cv2
import numpy as np
import sys
import pickle
from optparse import OptionParser
import time

import keras
from keras_frcnn import config
import keras_frcnn.resnet as nn
from keras import backend as K
from keras.layers import Input
from keras.models import Model
from keras_frcnn import roi_helpers

sys.setrecursionlimit(40000)

parser = OptionParser()

parser.add_option("-p", "--path", dest="test_path", help="Path to test data.", default='data/test/')
parser.add_option("-n", "--num_rois", dest="num_rois", help="Number of ROIs per iteration. Higher means more memory use.", default=32)
parser.add_option("--config_filename", dest="config_filename", help= "Location to read the metadata related to the training (generated when training).", default="config/config.pickle")

(options, args) = parser.parse_args()

if not options.test_path:   # if filename is not given
    parser.error('Error: path to test data must be specified. Pass --path to command line')


config_output_filename = options.config_filename

with open(config_output_filename, 'rb') as f_in:
    C = pickle.load(f_in)

# turn off any data augmentation at test time
C.use_horizontal_flips = False
C.use_vertical_flips = False
C.rot_90 = False

img_path = options.test_path


def format_img(img, C):
    img_min_side = float(C.im_size)
    (height,width,_) = img.shape
    
    if width <= height:
        f = img_min_side/width
        new_height = int(f * height)
        new_width = int(img_min_side)
    else:
        f = img_min_side
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值