利用maskrcnn来实现目标检测与追踪

news2024/11/26 7:30:35

首先下载源代码仓库,链接地址如下:

maskrcnn

能够实现的效果如图所示:

该存储库包括:

  • 基于FPN和ResNet101构建的Mask R-CNN的源代码。
  • MS COCO 的训练代码
  • MS COCO 的预训练砝码
  • Jupyter 笔记本,用于可视化每一步的检测管道
  • 用于多 GPU 训练的并行模型类
  • 对 MS COCO 指标 (AP) 的评估
  • 在自己的数据集上进行训练的示例

下载代码仓库,进行解压后的目录如下:

可以使用下面:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

也可以使用

python setup.py install

来安装相关的依赖包,安装完成后,还需要下载模型文件,

下载链接地址如下:

mask_rcnn_balloon.h5

测试代码如下所示:

import os
import sys
import random
import math
import numpy as np
import skimage.io
import matplotlib
import matplotlib.pyplot as plt

# Root directory of the project
ROOT_DIR = os.path.abspath("../")

# Import Mask RCNN
sys.path.append(ROOT_DIR)  # To find local version of the library
from mrcnn import utils
import mrcnn.model as modellib
from mrcnn import visualize
# Import COCO config
sys.path.append(os.path.join(ROOT_DIR, "samples/coco/"))  # To find local version
import coco

%matplotlib inline 

# Directory to save logs and trained model
MODEL_DIR = os.path.join(ROOT_DIR, "logs")

# Local path to trained weights file
COCO_MODEL_PATH = os.path.join(ROOT_DIR, "mask_rcnn_coco.h5")
# Download COCO trained weights from Releases if needed
if not os.path.exists(COCO_MODEL_PATH):
    utils.download_trained_weights(COCO_MODEL_PATH)

# Directory of images to run detection on
IMAGE_DIR = os.path.join(ROOT_DIR, "images")

class InferenceConfig(coco.CocoConfig):
    # Set batch size to 1 since we'll be running inference on
    # one image at a time. Batch size = GPU_COUNT * IMAGES_PER_GPU
    GPU_COUNT = 1
    IMAGES_PER_GPU = 1

config = InferenceConfig()
config.display()

# Create model object in inference mode.
model = modellib.MaskRCNN(mode="inference", model_dir=MODEL_DIR, config=config)

# Load weights trained on MS-COCO
model.load_weights(COCO_MODEL_PATH, by_name=True)

# COCO Class names
# Index of the class in the list is its ID. For example, to get ID of
# the teddy bear class, use: class_names.index('teddy bear')
class_names = ['BG', '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',
               'donut', '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 drier', 'toothbrush']
# Load a random image from the images folder
file_names = next(os.walk(IMAGE_DIR))[2]
image = skimage.io.imread(os.path.join(IMAGE_DIR, random.choice(file_names)))

# Run detection
results = model.detect([image], verbose=1)

# Visualize results
r = results[0]
visualize.display_instances(image, r['rois'], r['masks'], r['class_ids'], 
                            class_names, r['scores'])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1049347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Spring Boot的宠物咖啡馆平台的设计与实现

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 看护师信息管理 宠物寄养管理 健康状况管理 点单 宠物体验 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已…

基于spring boot的医疗管理系统 /基于java的医疗系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

智慧教育:数字化时代的未来教育模式

项目背景 随着技术的进步和互联网的普及,教育机构和学校开始寻求利用先进的技术和创新的教育方法来提高学习效果和管理效率,包括在线教育、远程学习、教育数据分析等方面的发展。智慧教育旨在将这些技术和方法应用于教育领域,以满足学生、教…

IDEA配置本地Maven仓库

IDEA配置本地Maven仓库 1、Maven下载安装2、环境变量配置与验证3、配置本地仓库4、IDEA全局配置本地Maven仓库5、清理下载失败的jar依赖 1、Maven下载安装 Maven官网:https://maven.apache.org/download.cgi 按需下载即可 安装: 直接解压即可 2、环境变…

PyOpenGL笔记

此文档不再更新,没有时间再更新文档,奉上我的学习代码: https://mrshang.lanzouy.com/b00rplkih 密码:8kfu demo效果: QtOpenGL

CANFD数据记录仪在汽车电子上的具体应用

车辆出现问题的是常有的事情,而且大部分是在各个车辆服务站解决,特别是碰到偶发性问题很难找到相对应的原因。CAN/CANFD数据记录仪可以支持在线实时查看,或者脱机记录。还有手机APP可以远程数据传输给后台研发部门更详细的分析与解决问题。 具…

python DRF 查询序列化serializer.data获取数据处理记录

使用model, serializer, view执行查询操作最后得到数据, 通过序列化serializer.data获取查询结果集, 最后得到的数据如下所示: [ OrderedDict([(id, 4), (time, 2023/09/18 11:11:20), (level, 4), (count, 4), (s_assets, 设备4), (d_assets, 设备4), (sip, 10.60.6.4), (di…

C语言 cortex-A7核 UART总线 实验

一、C 1)uart4.h #ifndef __UART4_H__ #define __UART4_H__ #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h&quo…

前缀、中缀、后缀表达式相互转换工具

目录 1. 界面一览 2. 使用说明 3. 实例演示 3.1 输入中缀 3.2 输入前缀 3.3 输入后缀 3.4 选择错误的类型 4. 代码 5. 资源地址 关于什么是前缀、中缀、后缀表达式,相信你不知道这个东西,那你也不会点进来这篇博客,当然,…

BACnet/IP协议采集网关支持modbus RTU采集

楼宇自动化在现代建筑中扮演着重要的角色,它可以集成和控制各种设备和系统,提高建筑的能效和舒适性。然而,不同的设备和系统通常使用不同的通信协议,这给楼宇自动化的实施带来了一定的挑战。为了解决这个问题,BACnet和…

怎样使用 NFTScan Solana API 快速创建 NFT 应用程序?

之前,Solana 凭借其超高的性能和低廉的费用,已然成为 NFT 项目最青睐的公链之一,众多知名 NFT 项目如 DeGods、Okay Bears、Degenerate Ape Academy 等都选择在 Solana 上发行。意味着 Solana 链上每天都会产生海量的 NFT 交易数据&#xff0…

路由器和路由到底啥区别?

在Vue中会有路由(Route)的概念,一些伙伴还不知道嘞,这就给大家讲解一下 我们日常出行都会碰到导航这个概念。 导航系统会给出从当前位置到目标位置的建议路径,这就是路由。 而 GPS 导航仪根据路由提供的路径,告诉我们每个路口是…

十七,IBL-打印各个Mipmap级别的hdr环境贴图

预滤波环境贴图类似于辐照度图,是预先计算的环境卷积贴图,但这次考虑了粗糙度。因为随着粗糙度的增加,参与环境贴图卷积的采样向量会更分散,导致反射更模糊,所以对于卷积的每个粗糙度级别,我们将按顺序把模…

计算机等级考试—信息安全三级真题七

目录 一、单选题 二、填空题 三、综合题 一、单选题

SAP从入门到放弃系列之QM主检验特征

文章目录 一、概述二、系统操作2.1、创建主检验特征-QS212.1.1、初始界面2.1.2、 内容页面控制数据一般信息 2.2、主检验特征有效期管理和历史管理 一、概述 检验特征是对检验内容的描述。很多相同的产品的检验内容是由重复和相通性的,所以将这一类在物料的检验任务…

chalk

今天在看antd-design,发现一个叫chalk的东西 https://juejin.cn/post/6973102969076219941https://juejin.cn/post/6973102969076219941

算法通过村第十关-并归|黄金笔记|手撕并归排序

文章目录 前言并归排序的原理总结 前言 提示:有时我会担心你们发现我其实很普通。爱并不需要你与众不同。--查理麦克西《男孩、鼹鼠、狐狸和马》 并归排序算是经典的分治思想中的问题,这个非常典型的题目。 并归排序的原理 并归排序,简单来说…

预测算法6|BP_adaboost算法原理及其实现

BPNN是一种根据误差反向传播算法训练的多层前馈网络,具有很强的非线性处理能力,是目前应用最广泛的神经网络之一。但BPNN的泛化能力相对较差,在优化过程中易陷入局部极小值,同时,它的鲁棒性差,学习过程的收…

【考研数学】概率论与数理统计 —— 第三章 | 二维随机变量及其分布(1,二维连续型和离散型随机变量基本概念与性质)

文章目录 引言一、二维随机变量及分布1.1 基本概念1.2 联合分布函数的性质 二、二维离散型随机变量及分布三、多维连续型随机变量及分布3.1 基本概念3.2 二维连续型随机变量的性质 写在最后 引言 隔了好长时间没看概率论了,上一篇文章还是 8.29 ,快一个…

一个人可以开发游戏吗?

在今天的数字时代,游戏产业已经成为全球最具活力的领域之一。从大型游戏开发工作室到独立游戏制作人,游戏开发已经变得更加多样化和容易进入。然而,对于许多梦想成为游戏开发者的人来说,一个关键问题一直挥之不去:一个…