今天学习使用另外的模型进行物体检测

当前目标检测的算法有很多,如rcnn系列、yolo系列和ssd,前端网络如vgg、AlexNet、SqueezeNet,一种常用的方法是将前端网络设为MobileNet进行特征提取和加速,后端算法为SSD来真正进行目标检测。

之前我们学习了使用darknet上的基于coco数据集训练的yolov3模型来搞,这次我们使用在tensorflow上训练的基于coco数据集训练的MobileNet + SSD模型来搞。

import cv2
import numpy as npdef readAllCleassNames(filename):with open(filename, 'rt') as f:classNames = f.read().rstrip('\n').split('\n')return classNamesif __name__ == '__main__':# ======================= step 1: 先获得所有的类别信息classNames = readAllCleassNames('file/coco_classnames.txt')print(len(classNames))  # 一共有80个类别print(classNames)# ======================= step 2: 定义模型configFile = 'file/ssd_mobilenet_v3_large_coco_2020_01_14.pbtxt'weightFile = 'file/frozen_inference_graph.pb'# 定义模型mobileNet_SSD_Model = cv2.dnn_DetectionModel(weightFile, configFile)# 设置运行的背景,一般情况都是使用opencv dnn作为后台计算mobileNet_SSD_Model.setPreferableBackend(cv2.dnn.DNN_BACKEND_OPENCV)# 设置目标设备, DNN_TARGET_CPU其中表示使用CPU计算,默认是的mobileNet_SSD_Model.setPreferableTarget(cv2.dnn.DNN_TARGET_CPU)# 设置输入图像值的转换的一些参数mobileNet_SSD_Model.setInputSize(320, 320)  # 设置输入的数据大小mobileNet_SSD_Model.setInputScale(1.0 / 127.5)  # 设置数值缩放,归一化mobileNet_SSD_Model.setInputMean([127.5, 127.5, 127.5])  # 设置各个通道的平均值mobileNet_SSD_Model.setInputSwapRB(True)  # R和B通道进行交换,从BGR到RGB。# ======================= step 3: 得到一个图像,转换后将其输入模型。img = cv2.imread('images/car_person.jpeg')# cv2.imshow('cat', img)# cv2.waitKey(0)# 这个函数直接是一步到位,# 自动获取输出层的layers,# 自动将原始图像数据转成blob类型,# 自动进行前向传播计算# 自动根据confThreshold过滤检测结果,# 自动根据nmsThreshold做了NMS操作,# 返回类别id,各自的置信度,以及boundingboxclassIds, confs, bbox = mobileNet_SSD_Model.detect(img, confThreshold=0.5, nmsThreshold=0.5)if len(classIds) != 0:for classID, conf, box in zip(classIds.flatten(), confs.flatten(), bbox):# 画出一个矩形检测框cv2.rectangle(img, box, color=(255, 0, 0), thickness=2)# 画出检测的目标名称和置信度cv2.putText(img, text="classN_name:{}, confidence:{}%".format(classNames[classID - 1].upper(),"%.2f" % (conf * 100)),org=(box[0], box[1]-10), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=0.6,color=(0, 0, 255), thickness=2)cv2.imshow('Output', img)

【opencv有趣应用】基于MobileNet + SSD的物体检测相关推荐

  1. 激光雷达:最新趋势之基于RangeView的3D物体检测算法

    作者丨巫婆塔里的工程师@知乎 来源丨https://zhuanlan.zhihu.com/p/406674156 编辑丨3D视觉工坊 之前在LiDAR点云物体检测算法的综述中提到了四个发展阶段.在最开 ...

  2. 使用自己的数据训练MobileNet SSD v2目标检测--TensorFlow object detection

    使用自己的数据训练MobileNet SSD v2目标检测--TensorFlow object detection 1. 配置 1.1 下载models-1.12.0 2. 准备数据集 3. 配置文 ...

  3. 基于运动信息的物体检测(背景差分法、帧间差分法和光流法)。

    1.背景差分法: 它的基本思想是将输入图像与背景模型进行比较,通过判定灰度等特征的变化,或用直方图等统计信息的变化来分割运动目标. 首先建立好背景模型,存储背景图像.当当前帧与背景图像相减大于一定的阈 ...

  4. 更快更精准的感知,元戎启行提出基于LiDAR的3D物体检测新框架|CVPR 2020

    近日,L4级自动驾驶解决方案提供商元戎启行的一篇关于3D物体检测的论文被CVPR2020收录,论文题为"HVNet: Hybrid Voxel Network for LiDAR Based ...

  5. CVPR | 基于LiDAR的3D物体检测新框架

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :元戎启行 近日,L4级自动 ...

  6. 基于python的移动物体检测_感兴趣区域的移动物体检测,框出移动物体的轮廓 (固定摄像头, opencv-python)...

    感兴趣区域.特定区域.框出移动物体的轮廓.越界检测.入侵物体检测.使用 opencv-python库的函数cv2.findContours.cv2.approxPolyDP.cv2.arcLength ...

  7. 基于appinventor与EasyDL物体检测API的物体检测app

    相关学习网址 Base64编码及其在AppInventor中的应用 APPInventor安卓应用开发AI图像识别简单应用 nventor基础 appinventor自定义插件 *这个简单的能够实现, ...

  8. 基于python的移动物体检测_树莓派+摄像头实现对移动物体的检测

    在上一篇文章中实现了树莓派下对摄像头的调用,有兴趣的可以看一下:python+opencv实现摄像头调用的方法 接下来,我们将使用python+opencv实现对移动物体的检测 一.环境变量的配置 我 ...

  9. 基于YOLOV3的通用物体检测项目实战---(5)利用DarkNet框架进行YOLOV3模型训练实操(笔记)

    cfg文件夹: coco.data是能用到的配置文件 [net] # Testing #测试模式batch=1 subdivisions=1 # Training #训练模式 每次前向图片的数目=ba ...

最新文章

  1. 第三届北京智源大会开幕,全球最大智能模型“悟道2.0”重磅发布
  2. PXE网络无人值守装机
  3. C# string.Empty
  4. np.concatenate
  5. servlrt程序的入口点是_小程序深度报告:全网数量约550万,日活跃超4.4亿
  6. 用启明云端支持ESP32的GUI做了一个测温HMI交互界面
  7. 前端学习(2547):数据代理
  8. ffmpeg和SDL学习笔记
  9. 用JAI实现对TIF(TIFF)格式图片的合并
  10. python判断一个数是否是质数
  11. JSK-16013 价钱统计【基础】
  12. 防火墙状态检测及会话表技术
  13. Python基础-计算时间差,时间和,精确到秒,微秒,毫秒
  14. 清理offset_kafka数据清理
  15. 0x80004005是什么错误?0x80004005的解决方案
  16. 解决ios微信公众号h5页面新增底部前进后退导航栏产生的布局问题
  17. Cocos Creator 3D使用腾讯云游戏联机对战引擎(MGOBE)
  18. js中使用btoa和atob进行Base64的编码和解码
  19. 企业软文推广应该怎么做,软文写作指导
  20. 光晕ce服务器位置,光晕ce地图

热门文章

  1. 25k英里高速建48个充电走廊,美国电动汽车产业迎来春天
  2. 结合 live-reload 实现自动刷新
  3. 2020前端面试(一面面试题)
  4. 消息队列面试 - 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
  5. Elasticsearch--分布式RESTful搜索引擎
  6. 服务器无法拖动文件复制文件,​IT服务器运维:艾锑人为您整理Win10系统下移动、复制、删除文件需要管理员权限的解决方法...
  7. Springboot Freemarker 将模板放在jar包外面
  8. #nginx# 泛解析大量域名的情况下 将不带www的域名,301到与之对应的www前缀的域名...
  9. the next generation block styled editor -- eidtor.js
  10. selenium脚本录制