红外视频——行人识别

2023-05-16

最近在做关于红外视频的项目,主要是对区域入侵检测,主要是能够对行人进行识别,又到了瓶颈期,所以看看论文找些灵感,下面也主要是对看到的论文的思想及实现步骤进行总结。
1.《Thermal-Infrared Pedestrian ROI Extraction through thermal and Motion Information Fusion》
2.《A Shape-Independent-Method for Pedestrian Detection with Far-Infrared-Images》
文章中作者对目标分割和目标分类分别做了介绍。
目标分割
“水平分割”方法是基于“亮像素垂直投影曲线”实现的,“垂直分割”基于“亮度/人体线条”实现的。
A.水平分割
A.1亮像素垂直投影曲线
亮像素垂直投影曲线是红外图像每一列”亮像素”的数量,”亮像素”定义为:
亮像素阈值=max(图像像素值)-Inensity Margin
亮像素垂直投影曲线实际操作如下图:
这里写图片描述
红外图像亮像素垂直投影曲线及基于亮度垂直分割结果.(a)(c)冬天结果.(b)(d):夏天结果。对于所有曲线:X-图像列位置;Y-每一列”亮像素”数量。
A.2 水平分割方法
过程如下:1.根据上面的等式选择一个亮度阈值,Inensity Margin 选择尽可能大,则阈值就会比较下,这样能够保证获得的感兴趣区域中一定含有行人目标。记录每一列像素值大于亮度阈值的个数,从而生成亮像素垂直投影曲线。
2.搜寻波开始的位置和波下降结束的位置;
3.忽略零值平坦区域,保存每一对波开始点和波结束点;
4.对应曲线波记录图像可能含有行人目标的每一竖条;
B.在水平分割条纹中截取行人垂直位置
作者介绍了两种垂直分割方法,第一种是基于亮度分割,这种方法对于冬季和户外情况分割效果较好,第二种是基于人形方法分割。
B.1基于亮度垂直分割
在水平分割得到图像条纹,搜索条纹中最亮和最暗的位置估计目标的垂直位置。
B.2基于人形的垂直分割
1.行人水平人形检测
行人的左右边缘是图像像素值变化较快的位置,为了获得行人人形的最终位置,利用Sobel算子计算水平方向的像素变化。
这里写图片描述
其中(x,y)是像素的位置,I(x,y)是图像像素值,这里写图片描述是像素水平间距。计算每一行所有像素的水平间距,左半部分最大的值就是行人的左边界,对于梯度小于或等于0的跳过。右边界求取方法与左边界类似,但是这样求取的方法可能发生很多边界点属于其它的热目标。
2.基于人形匹配估计行人位置
图(a)是一个行人模板,定义了行人尺寸,利用腰来确定行人。人的腰容易检测,并且不容易丢失。(c)提供了行人检测的例子。
这里写图片描述
3.基于直方图行人搜索
利用直方图分类特征来搜索最可能的候选目标,行人分割流程图如下图,利用直方图匹配确定目标,之后再利用其它特征进行分类判断。
这里写图片描述
分类
传统的分类方法是获取目标的形状并且与模板进行对比分类,当分割错误或行人动作改变会出现错误。
A.直方图分类
作者简单的利用一个行人目标做为模板,对不同姿态的行人或不同尺寸的行人与飞行人进行分类
A.1行人的亮度直方图相似性统计
不同的行人、不同的动作、不同的季节图像亮度直方图曲线是不同的。这里写图片描述
这里写图片描述
图(a0)是从一个夏天的视频中截取的行人模板,(a1)是冬季的图像,(b1)显示了(a1)的几个行人的亮度直方图的相似性,(c1)对(b1)曲线的均值与夏季行人的曲线进行了比较。通过对行人直方图曲线数据统计,行人直方图曲线类似于零均值的高斯曲线,值在[-10,10]之间,只有8.2%会有非常的大的变化。从这也可以看出行人直方图是非常相似的。
A.2直方图分类能力
(b2)是非行人(a2)的曲线,(c2)显示了(b2)均值和行人模板亮度直方图曲线的比较,(b)(c)显示了行人/非行人的亮度直方图特征区间值是不同的。(a0)做为模板,计算目标与模板直方图差值加权和,计算过程如下:
这里写图片描述
这里写图片描述归一化系数,weight(i)权重函数。当亮度i比较暗或比较亮时,权重值要设置的小一些,以降低分割错误的影响。理想的直方图差值是0,差值越大,越不可能是行人。
B.惯性特征分类
图像的惯性特征计算如下:
这里写图片描述
B.1 行人惯性特征相似性统计
行人的统计计算如图(b),分布图如(c),该分布与RayLeigh分布相似,惯性均值是1.03,70%的行人区域惯性值是0.8~1.2,94%的惯性值是0.6~1.4.
这里写图片描述
这里写图片描述
B.2惯性特征分类能力
惯性特征能解决直方图分类不彻底的问题。行人区域的很多亮度值在图像块的中间,和水平或垂直边缘头、手、或脚。而非行人区域亮像素在边界存在的很少。
C.基于对比度分类
行人的边界对比度很强,水平对比度被用来确定行人的左/右边界,垂直边缘如图(a)(b)所示,垂直边界根据(6)计算,当结果大于某一给定阈值则标定为边缘。大多数情况,行人上边界值应该小于2,一般人的上面是天空、建筑物、树,它们的值都小于2。只有当人站在等前面,人与背景的边界差值会接近2.因此如果有上边界并且行边界的值大,没有垂直对比,则这就是非行人目标。
这里写图片描述
虽然我们不能利用垂直对比度来确定行人,但可以移除一些不具有垂直对比度的非行人,当没有垂直对比并且满足下面一条或两条状况:
1.“底端行的边界”大于1;
2.“上边缘索引”和“感兴趣行边缘索引”都接近或大于1.5;
对比度分类特征数据统计
这里写图片描述
多特征融合
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

红外视频——行人识别 的相关文章

  • 死锁的四个必要条件和解决办法

    死锁概念及产生原理 概念 xff1a 多个并发进程因争夺系统资源而产生相互等待的现象 原理 xff1a 当一组进程中的每个进程都在等待某个事件发生 xff0c 而只有这组进程中的其他进程才能触发该事件 xff0c 这就称这组进程发生了死锁
  • 编译和链接的过程

    程序要运行起来 xff0c 必须要经过四个步骤 xff1a 预处理 编译 汇编和链接 接下来通过几个简单的例子来详细讲解一下这些过程 对于上边用到的几个选项需要说明一下 使用 gcc 命令不跟任何的选项的话 xff0c 会默认执行预处理 编
  • vim常用的功能

    vim是vi 的升级版本 xff0c 它兼容vi的所有指令 xff0c 而且还有一些新的特性 xff0c 比如说预付高亮 可视化操作不仅可以在终端进行 xff0c 还可以在 x Window mac os windows vim 有多种模式
  • vscode electron安装环境

    1 安装nodejs Node js 安装18 12 1LTS版本 安装完成后确认 node version 2 安装electron npm install electron g 验证是否安装成功 electron v 没成功 xff01
  • Debug和Release的区别以及obj文件的作用

    Debug和Release的区别 Debug xff1a 调试版本 xff0c 包含调试信息 xff0c 所以容量比release大很多 xff0c 并且不进行任何优化 xff0c xff08 优化会使调试复杂化 xff0c 因为进行优化肯
  • python中的import、from import以及import as的区别

    首先介绍一下import和include的区别或者说import相对include的好处 xff1a import导入的内容只会被包含一次 xff0c 在引入之前会检测是否已经存在该模块 xff0c 不存在才会被引入 xff0c 而incl
  • error while loading shared libraries: lib*.so: cannot open shared object file: No such file

    linux在编译文件时报错 xff1a slam sample error span class token keyword while span loading shared libraries libslam common so can
  • (1/100) ros的plugin插件和动态参数配置dynamic_reconfigure

    写在前面 xff1a 实际机器人开发中 xff0c 往往会存在很多参数 xff0c 这些参数需要在实际的调试中得出 xff0c 为了更高效的开发与测试 xff0c 则选择使用动态的参数配置 而在机器人功能模块层面 xff0c 我们可能也需要
  • 重定向printf函数到串口输出的多种方法

    本文详细的介绍了如何重定向printf输出到串口输出的多种方法 xff0c 包括调用MDK微库 xff08 MicroLib xff09 的方法 xff0c 调用标准库的方法 xff0c 以及适用于 GNUC 系列编译器的方法 1 prin
  • 如何修复烧写镜像文件失败的SD卡

    前言 使用某些软件 xff08 比如 win32 Disk Imager xff09 向SD卡烧写镜像文件时 xff0c 很有可能出现烧写失败的情况 xff0c 通常如果烧写失败 xff0c 系统会弹出请求格式化SD卡的提示框 此时不要点格
  • FreeRTOS学习笔记(一)基础篇

    我的FreeRTOS学习 xff0c 是从朱工的FreeRTOS系列博客开始的 xff0c 感谢朱工的悉心整理 xff0c 文章很不错 xff0c 适合学习 根据朱工的博客 xff0c 按照我自己的习惯和思路 xff0c 把最关键的信息抓取
  • 程序员要不要懂底层原理

    我在做编程的时候 xff0c 还是一个地道的门外汉 xff0c 就像一个刚出生的孩子 xff0c 跟着大人咿呀呀的学语 xff0c 也不知道是什么 xff0c 做什么用的 xff0c 也不知道能不能换种方式实现 xff0c 总结起来就是一问
  • Z变换零点极点

    在Z变换里 xff0c 零点的位置表示系统的 谷 xff0c 极点的位置表示系统的 峰 xff0c 我们把有峰的地方看做信号可以通过的地方 xff0c 而有谷的地方看做信号被截止的地方 并且我们选择单位圆为频域的一个周期 xff0c 那么可
  • ubuntu16.04下ROS Kinetic详细安装过程

    参考网址 xff1a 点击打开链接 参考文献 xff1a ROS机器人编程 配置环境 xff1a ubuntu 16 04 LTS 43 ROS Kinetic 一 安装ROS 1 设置镜像源 为了保证安装速度 xff0c 需要选择国内的镜
  • vscode环境中配置git

    1 建立project空目录用于存放electron基本环境这个环境中得文件不能加入git项目中否则每次更新文件太大github不支持大于100M得文件上传 2 使用vscode打开project目录 3 打开终端运行npm install
  • idea 主题 代码颜色 代码区背景 行号背景 注释颜色修改

    最近写代码眼睛总是看的不舒服 xff0c 想着换一个主题 xff0c 但是换了主题 xff0c 代码的颜色显示和之前又不一样了 xff0c 接下来就是修改主题 xff0c 但是代码颜色仍然保持 Darcula 主题的颜色 目录 1 修改主题
  • RTT之SysTick做了什么

    经过好几天的摸索 xff0c 终于正常驱动了一个串口设备 xff0c 并成功移植到雅特力的板子上 xff01 当然 xff0c 还得继续努力把RTT的内核搞清楚 xff0c 这样才会构建整个项目程序 xff0c 毕竟项目是有时间限制的 因为
  • realSense 安装 经验整理

    安装 RealSense SDK 以ros 参考1 参考二 主要看参考三 标定 标定 以上内容安装失败 Realense sdk和ros对应关系 jetson jetson 一键安装sdk 官方安装 jetson4 4 xavier nx
  • 吴恩达machine learning yearning读书笔记1

    在 setting up development set and test set 这一章中 xff0c 作者提到了一个很重要的问题 训练集和测试集分布不一致导致的机器学习模型泛化能力有限 xff1a 在训练集上表现比较好 xff0c 但是
  • 图像畸变与去畸变

    本文主要介绍图像畸变产生的原因 xff0c 广角镜头的一般畸变模型和去畸变的方法 1 图像畸变 图像畸变是由于透镜制造精度以及组装工艺的偏差会引入畸变 xff0c 导致原始图像失真 镜头的畸变分为径向畸变和切向畸变两类 1 1 径向畸变与畸

随机推荐

  • Linux C编程问题:symbol lookup error: xxx undefined symbol xxx

    程序代码在编译的时候没问题 xff0c 但是在运行的时候报错 xff1a bin symbol lookup error bin undefined symbol xxx 百度了一下 xff0c 貌似是程序运行时使用的动态库和编译时make
  • Docker自动从Harbor下更新镜像

    JAVA开发Docker容器下自动更新镜像仓库的工具 前段时间在做一套分布式多租户系统 xff0c 它包括控制平台和应用服务器两部分 xff0c 应用服务器为企业客户服务 xff0c 系统会为每家企业建立一个应用服务器实例 xff0c 它存
  • C++中的exit函数

    描述 xff1a 用来立即中止当前程序的执行 xff0c 并将一个整数返回给系统 xff0c 该整数的作用与 由mian函数返回的整数 相同 xff0c 如果是0表示程序正常退出 xff1b 如果非0表示程序异常退出 头文件 span cl
  • 将uint8_t类型的16进制字符转化转换为string字符串

    碰到一个需求 xff0c 需要把硬件读到的uint8 t类型的16进制数据转化为string类型的字符串 例如 xff0c 如果读到到的数据是一个uint8 t类型的数组uint8 t code 61 5 61 0XAA 0X01 0XE3
  • C++解析json文件

    文章目录 1 JSON文件简介 1 1 1 JSON文件的语法规则1 2 JSON值的类型 2 JSON文件解析 1 JSON文件简介 1 一个项目在设计时会存在很多参数 xff0c 比如data文件路径 外设名称与相关参数 文件储存路径等
  • YOLO-YOLOV5算法原理及网络结构整理

    文章目录 零 参考链接一 前言1 1 YOLO vs Faster R CNN 二 YOLOv1 xff08 448 448 xff09 2 1实现方法2 2 损失函数2 3 leak RELU激活函数2 4总结 三 YOLOV23 1 Y
  • ubuntu 20.04.5安装python3.9缺少ffi.h文件问题

    ubuntu 20 04 5安装python3 9缺少ffi h文件问题 OK 解决
  • 视觉SLAM基础

    文章目录 零 参考链接一 视觉SLAM面试相关问题1 李群与李代数的映射关系2 李群与李代数的扰动模型3 SIFT与SURF特征的区别4 相似变换 仿射变换 射影变换的区别5 Homograph Essential Fundamental
  • 在ubuntu18.04系统上使用ROS跑ORB-SLAM3时遇到的问题总结

    1 跑TUM VI数据集dataset corridor4 512时 xff0c 从tum vi example sh中复制对应的运行命令 xff0c 输入命令后提示找不到对应的TUM 512 yaml文件 xff0c 查找对应路径发现只有
  • ubuntu1804系统安装Realsense SDK驱动和ROS Wrapper

    文章目录 1 软件安装1 1 安装realsense SDK1 2 安装Ros Wrapper 2 打开双目的开关3关闭结构光方法1 xff1a 通过可视窗口关闭方法2 xff1a 通过修改launch文件关闭 4查看相机参数 说明 xff
  • 在使用evo进行orb-slam2轨迹评估时提示时间戳没有对齐的问题

    最近使用一个orb slam2修改版跑euroc数据集 在使用evo评估绝对轨迹误差时出现下面的报错 found no matching timestamps between CameraTrajectory txt and gt MH01
  • ORB-SLAM2论文翻译

    文章转载至泡泡机器人 转载链接 链接 摘要 ORB SLAM2是基于单目 xff0c 双目和RGB D相机的一套完整的SLAM方案 它能够实现地图重用 xff0c 回环检测和重新定位的功能 无论是在室内的小型手持设备 xff0c 还是到工厂
  • ROS使用命令行查看图像消息的宽和高

    备忘 xff1a ROS在终端使用命令行查看图像消息的宽和高 span class token comment 查看图像的宽 span rostopic span class token builtin class name echo sp
  • C++读取指定目录下的所有文件

    简介 xff1a 代码备忘 xff0c 使用C 43 43 读取指定目录下的所有文件名 xff0c 并存入vector向量 需要的头文件 span class token macro property span class token di
  • ubuntu1804进行vins-fusion算法环境搭建遇到的问题汇总

    简介 xff1a 在ubuntu1804系统搭建vins fusion环境并基于euroc数据集进行测试 xff0c 对遇到的编译报错和解决办法进行汇总 1 vins fusion算法环境搭建 报错1 Chessboard cc 20 38
  • ubuntu1804搭建svo2.0环境并跑euroc数据集

    0说明 整个SVO2 0环境搭建过程按照官网的说明进行 链接 xff1a https github com uzh rpg rpg svo pro open 开发环境是ubuntu18 04 43 ROS Melodic 1工具安装 Ins
  • 使用ceres库时报错:undefined reference to `ceres::Problem::Problem()‘

    编译cmake项目链接ceres库时名称没有写对导致报错 myCeres cpp span class token punctuation span text startup 43 0x247 span class token punctu
  • qt.qpa.plugin: Could not load the Qt platform plugin “xcb“

    运行环境 ubuntu 20 04 5 使用python3 9 由于使用qt5的同时使用了opencv导致如下报错 应该是由于调用环境不兼容导致的 需要加入如下代码问题解决 import os os environ pop 34 QT QP
  • 【Ubuntu】触摸屏旋转配置

    1 主要参考这篇文章编写配置脚本 Ubuntu18 04双屏显示触屏设置 xff0c 解决触摸点和响应位置不一致的问题 iShare 123的博客 CSDN博客 ubuntu触摸屏设置 Ubuntu18 04双屏 https blog cs
  • 红外视频——行人识别

    最近在做关于红外视频的项目 xff0c 主要是对区域入侵检测 xff0c 主要是能够对行人进行识别 xff0c 又到了瓶颈期 xff0c 所以看看论文找些灵感 xff0c 下面也主要是对看到的论文的思想及实现步骤进行总结 1 Thermal