TX2通过yolov4实现交通信号灯视频检测

2023-05-16

所用代码以后上传

环境部署

Jetson TX2刷机及安装的软件包版本如下:
整个过程中遇到最多的就是不同tf、keras版本之间导致的问题,所以部署环境的时候千万注意各种包的依赖关系,我因为兼容性问题走了不少弯路。

环境版本
Jetpack4.5
Ubuntu18.04
cuda10.2
cudnn8.0.0
opencv4.1.1
Tensorflow2.5.0
keras2.3.1
python3.6.9

Tensorflow2+keras环境搭建见TX2安装keras+tensorflow2

实现交通信号灯视频检测

直接将win10调通的代码放到TX2上运行。

windows传输文件到ubuntu见Windows传文件到ubuntu

结果报错,兼容性的问题。TX2上安装的tensorflow并不是真正的tf,而是Tensorflow Lite.还有tf2.5和keras的兼容问题。我不想重新安装环境了,先试着解决报错。

解决报错

1、ImportError: cannot import name ‘multi_gpu_model’
参考完美解决tensorflow-gpu2.4没有multi_gpu_model的问题
我不是这个问题,keras版本为2.3.1,multi_gpu_model()函数就在multi_gpu_utils.py文件中。
解决办法简单粗暴,直接注释掉相关语句了。

2、AttributeError: module ‘tensorflow.python.framework.ops’ has no attribute ‘_TensorLike’
原因是因为tensorflow和keras的版本不匹配,参考AttributeError: module ‘tensorflow.python.framework.ops‘ has no attribute ‘_TensorLike‘
在这里插入图片描述

目前keras最高对应tensorflow2.2,没辙了,卸载重装tensorflow吧。

# 卸载原有tf2.5.0
$ sudo pip3 uninstall tensorflow

重新安装tensorflow1.15.5,具体过程见上文链接。
降版本后不再报此错误。
调用demo视频进行检测成功了!
在这里插入图片描述

调用TX2板载摄像头进行实时信号灯检测。

需要安装opencv,在win10下直接cv2.VideoCapture(0)打开笔记本自带摄像头。但是在TX2会报错。

解决报错

1、GStreamer: unable to start pipeline
参考TX2 调用 opencv出现 GStreamer: unable to start pipeline
即改为

cv2.VideoCapture("nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)640, height=(int)480, format=(string)I420, framerate=(fraction)30/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink")

可惜不好使。出现了其他报错。先换方法调用摄像头,不行再回来解决报错。

参考Opencv 4.1 打开Jetson TX 2 板载摄像头,好使!

2、不报错了但是还是无法打开摄像头,因为超出内存了。
报错‘Resource exhausted: OOM when allocating tensor with shape[3,3,256,512] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc’

想通过nvidia-smi查看gpu使用情况结果报错找不到这个命令。
原来TX2没有这个命令,换sudo ~/tegrastats,我还是不行。
要查看GPU利用率参考NVIDIA TX2 目标检测——查看显卡使用状况

因为嫌麻烦就重启了一下重新运行,没想到运行成功了,怀疑之前有其他进程占用了内存。

待解决

目前这个程序能执行,但是无法看到摄像头实时画面,只能查看保存下来的检测结果视频。

实现实时显示检测结果

添加代码

cv2.imshow('output', image)
cv2.waitKey(1) #一定要延时,否则不能正常显示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TX2通过yolov4实现交通信号灯视频检测 的相关文章

  • 纯视觉至上!聊一聊时序融合在BEV感知中的应用

    作者 苹果姐 编辑 汽车人 原文链接 xff1a https zhuanlan zhihu com p 583682754 https zhuanlan zhihu com p 586713719 点击下方卡片 xff0c 关注 自动驾驶之
  • 【SLAM学习笔记4】卡方检验chi-square

    文章目录 前言一 卡方分布二 卡方检验计算步骤关于自由度n查表检验统计量拒绝域内外判定 xff1a 决策原则 总结Reference 前言 卡方分布和卡方检验在很多地方都会用到 xff0c 尤其是统计学和数据分析里 卡方检验 chi squ
  • 【Docker部署SLAM系列1】Windows11下安装Docker-desktop

    文章目录 前言1 开启虚拟化2 开启Hyper V的虚拟化功能3 开启Hyper V功能4 启动WSL和虚拟机功能5 下载安装wsl xff0c 并更新为wsl26 下载安装Docker desktop7 换镜像加速源总结相关资源Refer
  • 【Docker部署SLAM系列2】Docker-desktop部署Ubuntu18.04+ROS+vscode连接+翻车总结(含最新通过rosdep总结)

    文章目录 前言1 部署Ubuntu18 04容器2 进入容器3 配置Ubuntu18 044 ROS安装5 VScode连接docker容器总结Reference 前言 磨洋工磨洋工 xff0c 日常磨洋工 一开始我都是在cmd或者Powe
  • jsoncpp库的使用及用httplib库搭建HTTP服务器

    一 vi json test cpp include lt iostream gt 2 include lt string gt 3 include lt jsoncpp json json h gt 4 using namespace s
  • 基于STM32F4实现串口通信(usart)

    文章目录 前言一 串口的基本介绍1 简介2 串口协议 二 1 配置步骤2 完整代码 前言 串口通信是一种设备间常用的串行通信方式 xff0c 因为它简单便捷 xff0c 大部分设备支持该通信方式 今天使用一个ttl转usb模块连接usart
  • KEIL添加新的.C文件

    KEIL添加新的 C文件 问题描述 之前在网上看了很多方法添加 C文件 xff0c 结果经常报重复定义的错误 xff0c 记录一下自己的方法吧 解决方案 xff1a 右键 add exiting 点击魔法棒 34 C C 43 43 inc
  • 汇总:使用keil5所遇见的一些常见问题以及解决方法

    一 新建keil5工程时出现这个警告 解决方法 xff1a 右键单击Keil STM32F1xx DFP pdsc xff0c 然后点开属性界面 xff0c 由于Keil STM32F1xx DFP pdsc文件是只读文件 xff0c 将只
  • 自定义串口协议

    文章目录 前言一 有限状态机有限状态机代码接收数据缓冲缓冲要求循环队列 一 循环队列代码实现循环队列头文件 xff1a 源文件 xff1a 二 有限状态机与解码有限状态机核心实现代码有限状态机与解码头文件源文件 三 使用小例子总结 前言 此
  • stm32f1串口发送与接收

    目录 串口配置 串口发送 1使用SendString函数发送 2使用printf函数发送 串口接收 串口配置 首先对串口进行初始化 包括使能串口时钟 xff0c 这里我使用的是usart2 xff0c 使能GPIO时钟 xff0c 这里我用
  • 串口通讯详解

    这篇文章包含了串口通讯里面的大部分概念问题 目录 串口通讯线 同步串行 xff08 ISP xff09 异步串行 xff08 UART xff09 波特率 数据帧 串口通讯线 串口通信线最少需要2根 xff08 GND和信号线 xff09
  • 包罗万象!V3Det:1.3W类全新目标检测数据集(港中文&上海AI Lab)

    作者 CV君 编辑 我爱计算机视觉 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心 目标检测 技术交流群 后台回复 2D检测综述 获取鱼眼检测 实时检测 通用2D检测等近
  • stm32f4串口接收与发送

    之前有写一篇stm32f1串口接收与发送的文章 xff0c stm32f4与f1只有配置上的一点不同 xff0c 今天把f4的串口接收与发送代码分享一下 详细解释推荐大家看f1那篇 xff0c 都是一样的 xff0c stm32f1串口发送
  • -> 在c语言中是什么意思?

    gt 是一个整体 xff0c 它是用于指向结构体子数据的指针 xff0c 用来取子数据 换种说法 xff0c 如果我们在C语言中定义了一个结构体 xff0c 然后申明一个指针指向这个结构体 xff0c 那么我们要用指针取出结构体中的数据 x
  • C++中 i<<=1是什么意思

    左移赋值运算 变量i 左移1位 xff0c 结果仍然保存到变量i 举个栗子 xff1a i 61 101001 执行 xff1a i span class token operator lt lt 61 span span class to
  • 详解KITTI数据集

    详解KITTI数据集 一 KITTI数据集发布方 2011年 xff0c Andreas Geiger xff08 KIT xff09 Philip Lenz xff08 KIT xff09 Raquel Urtasun xff08 TTI
  • OpenCV各版本差异

    Opencv2标志着opencv革命性的改变 xff0c Opencv2带来了全新的C 43 43 接口 xff0c 将Opencv的能力无限放大 在2 0时代 xff0c opencv增加了新的平台支持 xff0c 包括iOS和Andro
  • realsense D435 D435i D415深度相机在ros下获得RGB图、左右红外摄像图、深度图、IMU数据

    首先你要你确保你的相机驱动已经安装好 xff0c 环境配置可以看我的另一篇文章 xff1a https blog csdn net weixin 46195203 article details 119205851 第一步 xff1a 新建
  • LaTex学习之算法如何写以及常用语句IF、FOR、WHILE

    首先是在头文件中加上 usepackage span class token punctuation span algorithm span class token punctuation span algorithmic span cla
  • latex报错:Missing delimiter (. inserted). ... {\xi \left( {p,{p_q}} \right)} \right|}}

    理想中的公式 xff0c begin span class token punctuation span equation span class token punctuation span span class token punctua

随机推荐

  • sort函数第三个参数cmp必须声明为static

    span class token keyword bool span span class token keyword static span span class token function comp span span class t
  • linux下Tinyhttpd安装运行

    tinyhttpd 超轻量型 Http Server tinyhttpd 全部代码在500 行左右 xff0c 是一个超轻量型 Http Server xff0c 这是是学习C C 43 43 入门非常棒的一个开源项目 xff0c 可以帮助
  • CVPR 2023|DropKey:两行代码高效缓解ViT过拟合(美图&国科大)

    编辑 CV技术指南 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 前言 美图影像研究院 xff08 MT Lab xff09 与中国科学院大学突破
  • C++并发与多线程学习笔记--线程启动、结束,创建线程多法

    一 范例演示线程运行的开始 程序运行起来 xff0c 生成一个进程 xff0c 该进程所属的主线程开始自动运行 xff1b 当主线程从main xff08 xff09 函数返回 xff0c 则整个进程执行完毕 主线程从main xff08
  • 顶层const和底层const

    概念解释 表示声明常量的const都是顶层const 用于声明引用的const都是底层const 顶层const是 xff1a 指针本身是常量 底层const是 xff1a 指针所指的对象是常量 即是顶层const又是底层const xff
  • c++中从出年月日的字符串提取整形int

    在C 43 43 中字符串有两种 xff0c 不过提取方式类似 xff0c 具体如下 xff1a 一 以 0 结束的字符数组 对于以 0 结束的字符数组 xff0c 可以有如下两种方式 xff1a 1 通过自定义函数提取 由于格式固定 xf
  • STM32与4脚光敏电阻的简单使用——初学

    这是我第一次写CSDN xff0c 排版可能有许多问题 xff0c 描述的可能也有不清楚的地方 xff0c 有问题的小伙伴可以私聊我 xff0c 一起学习共同进步 今天发现了一个很有意思的传感器 光敏传感器 xff0c 它可以判断光线的亮暗
  • STM32与人体红外感应模块的简单使用——入门级

    工作原理 人体有恒定的温度 xff0c 可以发出10UM的红外波 xff0c 而人体红外感应模块就可以探测出这些红外波 xff0c 从而产生电平转换 由此人们可以使用人体红外检测模块来检测是否有人 模块工作环境 工作电压 xff1a 5V至
  • 光敏,红外,人体红外检测模块的模拟输出(ADC)实验——入门

    前面给大家介绍了传感器的开关输出的使用 xff0c 今天给大家介绍一下常见传感器的模拟输出的用法 xff0c 用到了STM32的ADC xff08 模数转换 xff09 模块和USART串口通信模块 代码就是正点原子的ADC实验的代码 今天
  • 直流电机+L298N电机驱动模块

    本次来写一下关于驱动直流电机的知识 xff0c 今天目的是驱动它 xff0c 下次写使用PWM精准的对直流电机进行控速 下面是我使用的直流电机图 xff1a 由于STM32单片机不能直接的输出较大电压和电流 xff0c 所以得借助驱动模块来
  • 操作系统的内存管理——页式、段式管理、段页式管理

    操作系统的内存管理中段式管理与页式管理并不是对立的 xff0c 他们结合起来内存的使用效率会更高 他们都属于离散分配内存的管理方式 xff0c 当然还有连续型内存分配的管理方式 xff0c 连续分配是指为一个用户程序分配连续的内存空间 连续
  • linux内存机制原理---分页、分段底层原理

    自我总结 xff1a 分段 43 分页 43 虚拟内存 61 现代操作系统的内存管理机制 一 linux的内存分布 内核与高速缓冲区占用了前1MB内存 xff0c 后面15MB属于主存 xff0c 可以由用户自由分配 四种地址 xff1a
  • linux进程的内存与ELF文件

    一 linux为每个进程分配的虚拟内存 提到进程的内存就是虚拟内存 1G的内核区域 3G的用户区域 xff0c 提到进程的内存就是下面这个图 xff0c 都可以用它进行分析 虚拟内存是为了实现多任务 xff0c 所以操作系统才引入了它 二
  • YOLO终结者?RT-DETR一探究竟!

    作者 迪迦奥特曼 编辑 极市平台 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心 目标检测 技术交流群 导读 实时目标检测中击败YOLO家族 xff1f 来看看百度飞桨的
  • C语言中的位段操作—嵌入式学习(实习篇)

    记录实习期间学到的新的知识 malloc申请内存 xff1a 当申请小内存的时 xff0c malloc使用sbrk分配内存 xff1b 当申请大内存时 xff0c 使用mmap函数申请内存 xff1b 但是这只是分配了虚拟内存 xff0c
  • 运行excel时报错“由于找不到vcruntime140_1.dll,无法继续执行代码”--已解决

    问题描述 xff1a 清除文件时误删microsoft visual c 43 43 2015 microsoft visual c 43 43 2018等文件 xff0c 导致运行excel时报错 由于找不到vcruntime140 1
  • Jetson TX2新手上路全记录(2)

    xff08 2 xff09 查看ubuntub版本 cat proc version 判断ubuntu网络是否连通 xff1a ping www baidu com 数据刷新无异常即连通 破防了 xff0c 前天刷机看来没成功 原因 xff
  • TX2查看cudnn版本 `cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2无反应

    之前cat usr include cudnn h grep CUDNN MAJOR A 2命令可以查看cudnn版本 xff0c 但是之后新版本的版本信息放在了cudnn version h xff0c 我的环境为ubuntu18 04
  • yolo实现交通信号灯视频流识别代码搬运及调试

    yolo实现交通信号灯视频流识别调试过程 所用代码 xff1a 基于YOLOv3的红绿灯检测识别 xff08 Python源码可直接运行 xff09 原作者是tensorflow1 xff0c 我的环境是tensorflow2 xff0c
  • TX2通过yolov4实现交通信号灯视频检测

    所用代码以后上传 环境部署 Jetson TX2刷机及安装的软件包版本如下 xff1a 整个过程中遇到最多的就是不同tf keras版本之间导致的问题 xff0c 所以部署环境的时候千万注意各种包的依赖关系 xff0c 我因为兼容性问题走了