当前位置:文档之家› 基于ARM 的GPS 地面目标跟踪及报警系统的设计与实现

基于ARM 的GPS 地面目标跟踪及报警系统的设计与实现

基于ARM 的GPS 地面目标跟踪及报警系统的设计与实现
基于ARM 的GPS 地面目标跟踪及报警系统的设计与实现

基于ARM 的GPS 地面目标跟踪及报警系统的设计

与实现

1 需求分析

1.1 功能需求

以ARM微处理器为核心,利用GPS技术和GSM网络,设计一种地面目标跟踪及报警系统。该系统通过解析卫星定位数据,解码获取当前经纬度信息,然后经GSM模块向监控中心发送SMS,监控中心将得到的信息解析并在电子地图上显示出来,实现实时定位跟踪。

1.2 运行环境

1.2.1 硬件环境

在实验室条件下,手持终端由ARM微控制器、GPS模块、GSM模块、按键、LCD构成。监控中心由GSM模块与PC机组成。

1.2.2 软件环境

LPC2210开发平台ADS,OziExplorer电子地图软件等。

1.3 性能指标

手机作为终端时可脱机上电运行,按键中断触发后10秒内可收到经纬度坐标;定位精度的误差基本上控制在25 m以内;GSU-36工作电压为直流3.1 V~3.6 V。

2 方案

地面目标跟踪及报警系统由手持终端和监控中心两大部分组成,如图1所示。其中手持终端以ARM微控制器为核心,通过UART0和UART1分别连接GPS模块和GSM模块(发送),监控中心由PC机和GSM模块(接收)构成,PC机中安装的电子地图软件用于解析GSM模块传来的定位信息,并精确显示出被跟踪目标的具体地理位置。

图1系统组成结构图

3 系统的硬件设计

3.1 手持终端部分

手持终端由ARM微控制器、GPS模块、GSM模块、按键、LCD构成。其结构如图2所示。手持终端以LPC2210为主控制器,LPC2210是基于实时仿真和跟踪的16/32位ARM7TDMI-SCPU的微控制器,并带有256 KB的嵌入高速Flash存储器;128位宽度的存储器接口和独特的加速结构,使32位代码能够在最大时钟速率下运行。由于内置了宽范围的串行通信接口,从而给硬件设计和软件移植都带来了很大的便利。GPS模块采用日本光电公司的GSU-36,体积小,功耗低,抗电磁干扰,可以同时跟踪12颗卫星。GSM模块采用BENQ公司的M22。

图2 手持终端原理图

LPC2210通过串行口UART0发送GPS采样周期的设置、GPS数据类型选择和

通信波特率等控制命令和接收GPS定位信息。通过串行口UART1发送AT指令实现控制GSM的工作和传送SMS。LCD显示当前的经纬度和时间等信息,按键用来控制是否发送信号。

3.2 监控中心部分

监控中心由GSM模块与PC机组成。采用OziExplorer作为监控中心的电子地图软件,在PC机上安装完OZI,设置好相关的端口参数,即可实现将GSM模块传送来的定位信息实时显示在电子地图上。

4 系统的软件设计

手持终端的相关程序用C语言编写,程序流程如图3所示。软件设计主要包括系统初始化、GPS数据处理、GSM数据处理3大部分。

4.1 系统初始化

系统初始化主要是对串行口的初始化,包括传输帧格式、波特率的设置。根据GPS模块、GSM模块的硬件特性,设置UART0波特率为4800b/s、UART1波特率为9600 b/s,均无奇偶校验位,1位停止位,8位数据位。

4.2 GPS 数据处理

GPS模块接收GPS卫星定位信号,判断其为GPRMC格式,经解析留下经纬度、UTC时间等主要信息以待下一步处理,否则继续接收GPS卫星定位信号。

GPS模块输出的GPS定位信息服从NAME-0183通信标准。NAME- 0183通信标准的输出数据采用的是ASCII码,其内容包含了纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息。语句有6种,包括GGA、GLL、GSA、GSV、RMC和VGT。

本系统用到的是RMC纪录语句,它包含了定位系统需要的所有信息。格式举例:

¥GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68

¥GPRMC,< 1>,< 2>,< 3>,< 4>,<5 >,< 6>,<7>,<8>,<9>,< 10>,

<1> 当前位置的格林尼治时间(UTC),格式为hhmmss

<2> 状态,A为有效位置,V为非有效接收警告

<3> 纬度,格式为ddmm.mmmm

<4> 标明南北半球,N为北半球、S为南半球

<5> 径度,格式为dddmm.mmmm

<6> 标明东西半球,E为东半球、W为西半球

<7> 地面上的速度,范围为0.0到999.9

<8> 方位角,范围为000.0到359.9度

<9> 日期,格式为ddmmyy

<10> 地磁变化,从000.0到180.0度

<11> 地磁变化方向,为E或W

图3 程序流程图

4.3 GSM 数据处理

确认有按键按下时(启动键盘防抖动程序)提取存储的数据,转换成相应的Unicode码,即符合PDU格式。然后将最终有效的定位信息发送至监控中心。

GSM的短信业务SMS利用信令信道传输,它不用拨号建立连接,把要发送的信息加上目的地址和其他控制信息发到短信服务中心,经短信服务中心完成存储再转发送给目标机,这种特性适合数据远程传送。每条短信息容量为140字符。

GSM终端通过串行口控制SMS有三种接入协议,分别是BlockMode、基于AT 命令的Text Mode和基于AT命令的PDU Mode。其中PDU Mode应用最为广泛。

本系统采用的是PDU Mode,采用AT命令完成短信息的读取和发送。不同厂家生产的GSM模块AT命令集会稍有不同,本系统采用的是BENQ公司的M22模块,具体可以参考BENQ公司提供的数据手册和《AT命令用户手册》等资料。比如发送一条消息可以采用AT+CMGS命令,格式如下:

AT+CMGS=<短信长度>+<回车>+<目的手机号码>+<回车>+<短信内容>+系统上电后,ARM微控制器开始执行主程序。在主程序中,首先进行系统初始化,初始化的内容包括GPS模块和GSM模块的基本参数设置,然后进入主程序的数据处理部分。

5.1 实现步骤与结果

启动调试软件ADS,通过实验板上的JATG接口将编好的源代码编译、烧写进ARM微控制器。将监控中心GSM模块上的SIM卡插放到手机中,让手机充当“临时监控中心”。将手持终端脱机上电运行,4、5秒后按下实验板上的中断触发按钮,略等片刻,手机便收到一条来自手持终端的信息,经纬度为3907.9579N,11713.8762E,而实际精确经纬度为3907.8933N,11713.8668E,略存在误差。

取下手机的SIM卡,放至监控中心的GSM模块上。开启PC机上的电子地图软件OZI,设置COM1口的各参数:波特率4800b/s、停止位1、无奇偶校验,以使其与GSM模块匹配。再一次上电运行,点击OZI上的“导航”按钮。定位点正好停留在了天津市河东区天津工业大学上,放大地图,定位点落在了实验楼所在位置,地图窗口下方也实时显示出了定位点的经纬度数值和当前时间。

5.2 误差分析

系统调试初步通过,还得测试其稳定性、分析误差所在。从实验结果得出,定位精度的误差基本上控制在25m以内,误差原因主要来自两方面:首先是GPS 模块硬件本身的性能误差,GSU- 36要求工作电压为直流3.1V~3.6V(纹波≤50 mV)。且模块使用有源天线,若天线受附近电磁场干扰或GPS卫星所处位置不很理想时,定位精度会有不同程度的降低。另一方面,电子地图的分辨率也大大决定了定位点的精确性。

7 程序代码

#ifndef _GPS_H

#define _GPS_H

//#include "types.h"

typedef struct{

int year;

int month;

int day;

int hour;

int minute;

int second;

}date_time;

typedef struct{

date_time D;//时间

char status; //接收状态

double latitude; //纬度

double longitude; //经度

char NS; //南北极

char EW; //东西

double speed; //速度

double high; //高度

}GPS_INFO;

void gps_parse(char *line,GPS_INFO *GPS);

void show_gps(GPS_INFO *GPS);

#endif

#include

#include

#include

#include

#include

//#include "types.h"

#include "gps.h"

#define USE_BEIJING_TIMEZONE

static int GetComma(int num,char* str);

static void UTC2BTC(date_time *GPS);

static double get_double_number(char *s);

void show_gps(GPS_INFO *GPS)

{

printf("DATE : %ld-%02d-%02d \n",GPS->D.year,GPS->D.month,GPS->D.day);

printf("TIME : %02d:%02d:%02d \n",GPS->D.hour,GPS->D.minute,GPS->D.second);

printf("Latitude : %10.4f %c\n",GPS->latitude,GPS->NS);

printf("Longitude: %10.4f %c\n",GPS->longitude,GPS->EW);

printf("high : %10.4f \n",GPS->high);

printf("STATUS : %c\n",GPS->status);

}

////////////////////////////////////////////////////////////////////////////////

//解释gps发出的数据

//0 7 0 4 6 0 6 8 0 90 0 3 0 9 //$GPRMC,091400,A,3958.9870,N,11620.3278,E,000.0,000.0,120302,005.6,W*62

//$GPGGA,091400,3958.9870,N,11620.3278,E,1,03,1.9,114.2,M,-8.3,M,,*5E

void gps_parse(char *line,GPS_INFO *GPS)

////////////////////////////////////////////////////////////////////////////////

{

int i,tmp,start,end;

char c;

char* buf=line;

c=buf[5];

if(c=='C'){//"GPRMC"

GPS->D.hour =(buf[ 7]-'0')*10+(buf[ 8]-'0');

GPS->D.minute =(buf[ 9]-'0')*10+(buf[10]-'0');

GPS->D.second =(buf[11]-'0')*10+(buf[12]-'0');

tmp = GetComma(9,buf);

GPS->D.day =(buf[tmp+0]-'0')*10+(buf[tmp+1]-'0');

GPS->D.month =(buf[tmp+2]-'0')*10+(buf[tmp+3]-'0');

GPS->D.year =(buf[tmp+4]-'0')*10+(buf[tmp+5]-'0')+2000;

//------------------------------

GPS->status =buf[GetComma(2,buf)];

GPS->latitude =get_double_number(&buf[GetComma(3,buf)]);

GPS->NS =buf[GetComma(4,buf)];

GPS->longitude=get_double_number(&buf[GetComma(5,buf)]);

GPS->EW =buf[GetComma(6,buf)];

#ifdef USE_BEIJING_TIMEZONE

UTC2BTC(&GPS->D);

#endif

}

if(c=='A'){ //"$GPGGA"

GPS->high = get_double_number(&buf[GetComma(9,buf)]);

}

}

static double get_double_number(char *s)

{

char buf[128];

int i;

double rev;

i=GetComma(1,s);

strncpy(buf,s,i);

buf[i]=0;

rev=atof(buf);

// printf("s=%s ,buf= %s,val= %f\n",s,buf,rev);

return rev;

}

////////////////////////////////////////////////////////////////////////////////

//得到指定序号的逗号位置

static int GetComma(int num,char *str)

{

int i,j=0;

int len=strlen(str);

for(i=0;i

{

if(str[i]==',')j++;

if(j==num)return i+1;

}

return 0;

}

//#ifdef USE_BEIJING_TIMEZONE

////////////////////////////////////////////////////////////////////////////////

//将世界时转换为北京时

static void UTC2BTC(date_time *GPS)

{

//*************************************************** //如果秒号先出,再出时间数据,则将时间数据+1秒

GPS->second++; //加一秒

if(GPS->second>59){

GPS->second=0;

GPS->minute++;

if(GPS->minute>59){

GPS->minute=0;

GPS->hour++;

}

}

//*************************************************** GPS->hour+=8;

if(GPS->hour>23)

{

GPS->hour-=24;

GPS->day+=1;

if(GPS->month==2 ||

GPS->month==4 ||

GPS->month==6 ||

GPS->month==9 ||

GPS->month==11 ){

if(GPS->day>30){

GPS->day=1;

GPS->month++;

}

}

else{

if(GPS->day>31){

GPS->day=1;

GPS->month++;

}

}

if(GPS->year % 4 == 0 ){//

if(GPS->day > 29 && GPS->month ==2){

GPS->day=1;

GPS->month++;

}

}

else{

if(GPS->day>28 &&GPS->month ==2){

GPS->day=1;

GPS->month++;

}

}

if(GPS->month>12){

GPS->month-=12;

GPS->year++;

}

}

}

/************************************************ * GPS read demo ,use com2

* by Zou jian guo

* 2004-10-22

*

*************************************************/ #include

#include

#include

#include

#include

#include

#include

#include "gps.h"

#define BAUDRATE B9600

#define COM1 "/dev/tts/1"

#define COM2 "/dev/tts/2"

#define ENDMINITERM 27 /* ESC to quit miniterm */ #define FALSE 0

#define TRUE 1

volatile int STOP=FALSE;

volatile int fd;

GPS_INFO gps_info;

int GET_GPS_OK=FALSE;

char GPS_BUF[1024];

static int baud=BAUDRATE;

int get_baudrate(int argc,char** argv);

void child_handler(int s)

{

printf("stop!!!\n");

STOP=TRUE;

}

/*--------------------------------------------------------*/ void* keyboard(void * data)

{

int c;

for (;;){

if((c=getchar()) == 10){

STOP=TRUE;

break ;

}

// printf("key=%d\n",c);

}

return NULL;

}

/*--------------------------------------------------------*/ void* show_gps_info(void * data)

{

while(1){

if(GET_GPS_OK){

GET_GPS_OK=FALSE;

printf("%s",GPS_BUF);

gps_parse(GPS_BUF,&gps_info);

show_gps(&gps_info);

}

usleep(100);

if(STOP)break;

}

}

/*--------------------------------------------------------*/

/*

READ GPS information handler

if receive the enter char ,then copy the line to GPS_BUF. */

void* receive(void * data)

{

int i=0;

char c;

char buf[1024];

GPS_INFO GPS;

printf("read modem\n");

while (STOP==FALSE)

{

read(fd,&c,1); /* com port */

buf[i++] = c;

if(c == '\n'){

strncpy(GPS_BUF,buf,i);

i=0;

GET_GPS_OK=TRUE;

}

if(STOP)break;

//write(1,&c,1); /* stdout */

}

printf("exit from reading modem\n");

return NULL;

}

/*--------------------------------------------------------*/

int main(int argc,char** argv)

{

struct termios oldtio,newtio,oldstdtio,newstdtio;

struct sigaction sa;

int ok;

pthread_t th_a, th_b, th_show;

void * retval;

fd = open(COM2, O_RDWR );

if (fd <0) {

perror(COM2);

exit(-1);

}

if(argc < 2)

printf("Default baudrate is 9600 bps. If not, please enter baudrate as a parameter\n");

else

baud=get_baudrate(argc, argv);

tcgetattr(0,&oldstdtio);

tcgetattr(fd,&oldtio); /* save current modem settings */

tcgetattr(fd,&newstdtio); /* get working stdtio */

newtio.c_cflag = baud | CRTSCTS | CS8 | CLOCAL | CREAD;/*ctrol flag*/

newtio.c_iflag = IGNPAR; /*input flag*/

newtio.c_oflag = 0; /*output flag*/

newtio.c_lflag = 0;

newtio.c_cc[VMIN]=1;

newtio.c_cc[VTIME]=0;

/* now clean the modem line and activate the settings for modem */

tcflush(fd, TCIFLUSH);

tcsetattr(fd,TCSANOW,&newtio);/*set attrib */

pthread_create(&th_a, NULL, keyboard, 0);

pthread_create(&th_b, NULL, receive, 0);

pthread_create(&th_show, NULL, show_gps_info, 0);

while(!STOP){

usleep(100000);

}

/*

pthread_join(th_a, &retval);

pthread_join(th_b, &retval);

pthread_join(th_show, &retval);

*/

tcsetattr(fd,TCSANOW,&oldtio); /* restore old modem setings */

tcsetattr(0,TCSANOW,&oldstdtio); /* restore old tty setings */

close(fd);

exit(0);

}

int get_baudrate(int argc,char** argv) {

int v=atoi(argv[1]);

switch(v){

case 4800:

return B4800;

case 9600:

return B9600;

case 19200:

return B19200;

case 38400:

return B38400;

case 57600:

return B57600;

case 115200:

return B115200;

default:

return -1;

}

}

试验二ARM汇编语言程序设计

实验二 ARM汇编语言程序设计 一、实验目的 1.了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程 2.掌握ARM汇编指令 二、实验设备 1. EL-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆。 2. PC操作系统WIN98或WIN2000或WINXP, ADS1.2集成开发环境,仿真器驱动程序。 三、汇编语言简介 1.ARM汇编的一些简要的书写规范 ARM汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。ARM汇编对标识符的大小写敏感,书写标号及指令时字母大 小写要一致。在ARM汇编中,ARM指令、伪指令、寄存器名等可以全部大写或者全 部小写,但不要大小写混合使用。注释使用“;”号,注释的内容由“;”号起到此 行结束,注释可以在一行的顶格书写。 详细的汇编语句及规范请参照ARM汇编的相关书籍、文档。 2. ARM汇编语言程序的基本结构 在ARM汇编语言程序中,是以程序段为单位来组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段的和数据段,代码段的内容为执 行代码,数据段存放代码运行时所需的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形 成一个可执行文件。可执行映像文件通常由以下几部分构成: ◆ 一个或多个代码段,代码段为只读属性。 ◆ 零个或多个包含初始化数据的数据段,数据段的属性为可读写。 ◆ 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。 链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定 相同。 3. 简单的小例子 下面是一个代码段的小例子 AREA Init,CODE,READONLY ENTRY LDR R0, =0x3FF5000 LDR R1, 0x0f STR R1, [R0]

目标跟踪相关研究综述

Artificial Intelligence and Robotics Research 人工智能与机器人研究, 2015, 4(3), 17-22 Published Online August 2015 in Hans. https://www.doczj.com/doc/2515704747.html,/journal/airr https://www.doczj.com/doc/2515704747.html,/10.12677/airr.2015.43003 A Survey on Object Tracking Jialong Xu Aviation Military Affairs Deputy Office of PLA Navy in Nanjing Zone, Nanjing Jiangsu Email: pugongying_0532@https://www.doczj.com/doc/2515704747.html, Received: Aug. 1st, 2015; accepted: Aug. 17th, 2015; published: Aug. 20th, 2015 Copyright ? 2015 by author and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). https://www.doczj.com/doc/2515704747.html,/licenses/by/4.0/ Abstract Object tracking is a process to locate an interested object in a series of image, so as to reconstruct the moving object’s track. This paper presents a summary of related works and analyzes the cha-racteristics of the algorithm. At last, some future directions are suggested. Keywords Object Tracking, Track Alignment, Object Detection 目标跟踪相关研究综述 徐佳龙 海军驻南京地区航空军事代表室,江苏南京 Email: pugongying_0532@https://www.doczj.com/doc/2515704747.html, 收稿日期:2015年8月1日;录用日期:2015年8月17日;发布日期:2015年8月20日 摘要 目标跟踪就是在视频序列的每幅图像中找到所感兴趣的运动目标的位置,建立起运动目标在各幅图像中的联系。本文分类总结了目标跟踪的相关工作,并进行了分析和展望。

动态视频目标检测和跟踪技术(入门)

动态视频目标检测和跟踪技术 传统电视监控技术只能达到“千里眼”的作用,把远程的目标图像(原始数据)传送到监控中心,由监控人员根据目视到的视频图像对现场情况做出判断。智能化视频监控的目的是将视频原始数据转化为足够量的可供监控人员决策的“有用信息”,让监控人员及时全面地了解所发生的事件:“什么地方”,“什么时间”,“什么人”,“在做什么”。将“原始数据”转化为“有用信息”的技术中,目标检测与跟踪技术的目的是要解决“什么地方”和“什么时间”的问题。目标识别主要解决“什么人”或“什么东西”的问题。行为模式分析主要解决“在做什么”的问题。动态视频目标检测技术是智能化视频分析的基础。 本文将目前几种常用的动态视频目标检测方法简介如下: 背景减除背景减除(Background Subtraction)方法是目前运动检测中最常用的一种方法,它是利用当前图像与背景图像的差分来检测出运动目标的一种技术。它一般能够提供相对来说比较全面的运动目标的特征数据,但对于动态场景的变化,如光线照射情况和外来无关事件的干扰等也特别敏感。实际上,背景的建模是背景减除方法的技术关键。最简单的背景模型是时间平均图像,即利用同一场景在一个时段的平均图像作为该场景的背景模型。由于该模型是固定的,一旦建立之后,对于该场景图像所发生的任何变化都比较敏感,比如阳光照射方向,影子,树叶随风摇动等。大部分的研究人员目前都致力于开发更加实用的背景模型,以期减少动态场景变化对于运动目标检测效果的影响。 时间差分时间差分(Temporal Difference 又称相邻帧差)方法充分利用了视频图像的特征,从连续得到的视频流中提取所需要的动态目标信息。在一般情况下采集的视频图像,若仔细对比相邻两帧,可以发现其中大部分的背景像素均保持不变。只有在有前景移动目标的部分相邻帧的像素差异比较大。时间差分方法就是利用相邻帧图像的相减来提取出前景移动目标的信息的。让我们来考虑安装固定摄像头所获取的视频。我们介绍利用连续的图像序列中两个或三个相邻帧之间的时间差分,并且用阈值来提取出视频图像中的运动目标的方法。我们采用三帧差分的方法,即当某一个像素在连续三帧视频图像上均有相

ARM汇编程序设计

cmp r0,#5 bcs aaa add r0,r0,#1 aaa nop cmp r0,#5 addcc r0,r0,#1 bl指令完成两个功能:将子程序的返回地址保存在LR即R14同时将PC的值改为目标子程序的第一条指令的地址。 Start: Mov r0,#10 Mov r1,#3 Bl doadd Mov r1,r1,r0 Doadd Add r0,r0,r1 Mov pc,lr .end 用汇编程序实现IF语句的功能: Mov r0,#15 Mov r1,#12 Cmp r0,r1

Movhi r2,#100 Movls r2,#50 用汇编程序实现FOR循环的功能:Mov r0,#0 Mov r1,#10 Mov r2,#0 L1: cmp r0,r1 Bhs l2 Add r2,r2,#1 Add r0,r0,#1 B l1 L2: .end 用汇编语言实现WHILE循环While(x<=y) X=x*2; mov r0,#1 mov r1,#20 b l2 l1: mov r0,r0, lsl #1 l2: cmp r0,r1 bls l1 end

用汇编语言实现计算算术功能:n equ 100 .global _start -start: .arm arm_code: Ldr sp,=0x40003f00 Adr r0,thumbcode+1 Bx r0 .ltorg .thumb Thumb_code: Ldr r0,=n Bl sum_n B thumb_code Sum_n: Push {r1-r7,lr} Movs r2,r0 Beq sum_end Cmp r2,#1 Beq sum_end Mov r1,#1

实验二_ARM汇编语言程序设计

实验二ARM汇编语言程序设计 实验目的 1、了解ARM汇编语言程序的结构特点 2、了解ARM汇编语言程序的编写方法 3、掌握用ARM汇编语言设计简单程序 实验仪器设备及软件 ARM实验箱,计算机,ADS程序开发软件 实验原理 1、存储空间的格式 ARM920将存储空间视为从0开始由字节组成的线性集合,字节0-3中保存了第一个字,字节4-7中保存了第二个字,依此类推。字节还可以按小端格式或大端格式排列。ARM实验箱中存储器的配置见附录C。 2、ARM的寄存器 ARM状态下任何时刻都可以看到16个通过寄存器(r0-r15),1或2个状态寄存器(CPSR,SPSR),在特权模式下会切换到具体模下的寄存器组。每个寄存器都是32位的,并且每个通用寄存器都可以作为数据处理的源数据或目标数据寄存器。因此可以编写出更精简的程序。 3、ARM指令的条件执行 状态寄存器中的N,Z,C,V是数据处理指令影响的标志。几乎每条ARM指令可以根据状态位或状态位的逻辑运算有条件执行。条件执行的指令后缀参考教材。 4、桶形移器 ARM的桶形移位器,使ARM指令的中第二个操作数非常录活。利用移位器,一条ARM 指令可以完成更多功能。移位操作有: LSL 逻辑左移 LSR 逻辑右移 ASL 算术左移 ASR 算术右移 ROR 循环右移 RRX 带扩展循环右称 实验内容 1、把内存中ramaddr开始的ramword个字清零 (1)用后变址法 ramaddr equ 0x31000000 ramword equ 64 clrram mov r0,#0 mov r1,#ramword ldr r2,=ramaddr clrram1 str r0,[r2],#4 subs r1,r1,#1

目标检测、跟踪与识别技术与现代战争

目标检测、跟踪与识别技术与现代战争 【摘要】本文讨论目标检测、跟踪与识别技术在现代战争各个领域中的应用,总结目标识别技术的发展方向,提出目标识别技术工程化实现方法,同时本文介绍了国外目标识别的现状及发展趋势,提出了现代战争应采用综合识别系统解决目标识别问题的建议。 关键词目标检测;目标跟踪;目标识别;雷达;人工神经网络;精确制导 1.引言 随着现代科学技术的飞速发展及其在军事领域内日益广泛的应用,传统的作战思想、作战方式已发生根本性的变化。从第一次海湾战争到科索沃战争,特别是刚刚结束的海湾战争,空中精确打击和空地一体化作战已经成为最重要的作战形式。集指挥、控制、通信、计算机、情报、监视侦察于一体的C ISR 已成为取得战场主动权,赢得最后胜利的关键因素。目标识别技术是雷达智能化、信息化的重要技术支撑手段。在现代化战争中,目标识别技术在预警探测、精确制导、战场指挥和侦察、敌我识别等军事领域都有广泛的应用前景,已受到了世界各国的关注。 现代战争中取得战场制信息权的关键之一是目标属性识别。现代战争的作战环境十分复杂,作战双方都在采用相应的伪装、隐蔽、欺骗和干扰等手段和技术,进行识别和反识别斗争。因此仅仅依靠一种或少数几种识别手段很难准确地进行目标识别,必须利用多个和多类传感器所收集到的多种目标属性信息,综合出准确的目标属性,进行目标检测,跟踪后进行识别。 2.目标检测、跟踪与识别技术在现代战争中的应用 2.1 目标检测、跟踪与识别技术在预警探测上的应用 目标检测、跟踪与识别技术对于弹道导弹的预警工作有重要的作用。弹道导弹一般携带多个弹头,其中可能包含核弹头或大规模杀伤的弹头以及常规弹头,预警雷达必须具备对目标进行分类和识别真假弹头的能力,将核弹头或大规模杀伤的弹头分离出来,为弹道导弹防御(BMD)系统进行目标攻击和火力分配提供依据。早期的BMD系统假设只有一个核弹头,多弹头分导技术的出现,使问题转化为雷达的多目标识别问题,加上电子对抗技术的广泛使用,给目标识别技术带来很大困难。另外,预警雷达还要对空中目标或低空目标进行探测,对来袭目标群进行分类识别。利用星载雷达以及远程光学望远镜等观测设备,可以对外空目标进行探测,对外空来袭目标进行分类和识别,达到早期预警的工作。

视频目标跟踪算法综述_蔡荣太

1引言 目标跟踪可分为主动跟踪和被动跟踪。视频目标跟踪属于被动跟踪。与无线电跟踪测量相比,视频目标跟踪测量具有精度高、隐蔽性好和直观性强的优点。这些优点使得视频目标跟踪测量在靶场光电测量、天文观测设备、武器控制系统、激光通信系统、交通监控、场景分析、人群分析、行人计数、步态识别、动作识别等领域得到了广泛的应用[1-2]。 根据被跟踪目标信息使用情况的不同,可将视觉跟踪算法分为基于对比度分析的目标跟踪、基于匹配的目标跟踪和基于运动检测的目标跟踪。基于对比度分析的跟踪算法主要利用目标和背景的对比度差异,实现目标的检测和跟踪。基于匹配的跟踪主要通过前后帧之间的特征匹配实现目标的定位。基于运动检测的跟踪主要根据目标运动和背景运动之间的差异实现目标的检测和跟踪。前两类方法都是对单帧图像进行处理,基于匹配的跟踪方法需要在帧与帧之间传递目标信息,对比度跟踪不需要在帧与帧之间传递目标信息。基于运动检测的跟踪需要对多帧图像进行处理。除此之外,还有一些算法不易归类到以上3类,如工程中的弹转机跟踪算法、多目标跟踪算法或其他一些综合算法。2基于对比度分析的目标跟踪算法基于对比度分析的目标跟踪算法利用目标与背景在对比度上的差异来提取、识别和跟踪目标。这类算法按照跟踪参考点的不同可以分为边缘跟踪、形心跟踪和质心跟踪等。这类算法不适合复杂背景中的目标跟踪,但在空中背景下的目标跟踪中非常有效。边缘跟踪的优点是脱靶量计算简单、响应快,在某些场合(如要求跟踪目标的左上角或右下角等)有其独到之处。缺点是跟踪点易受干扰,跟踪随机误差大。重心跟踪算法计算简便,精度较高,但容易受到目标的剧烈运动或目标被遮挡的影响。重心的计算不需要清楚的轮廓,在均匀背景下可以对整个跟踪窗口进行计算,不影响测量精度。重心跟踪特别适合背景均匀、对比度小的弱小目标跟踪等一些特殊场合。图像二值化之后,按重心公式计算出的是目标图像的形心。一般来说形心与重心略有差别[1-2]。 3基于匹配的目标跟踪算法 3.1特征匹配 特征是目标可区别与其他事物的属性,具有可区分性、可靠性、独立性和稀疏性。基于匹配的目标跟踪算法需要提取目标的特征,并在每一帧中寻找该特征。寻找的 文章编号:1002-8692(2010)12-0135-04 视频目标跟踪算法综述* 蔡荣太1,吴元昊2,王明佳2,吴庆祥1 (1.福建师范大学物理与光电信息科技学院,福建福州350108; 2.中国科学院长春光学精密机械与物理研究所,吉林长春130033) 【摘要】介绍了视频目标跟踪算法及其研究进展,包括基于对比度分析的目标跟踪算法、基于匹配的目标跟踪算法和基于运动检测的目标跟踪算法。重点分析了目标跟踪中特征匹配、贝叶斯滤波、概率图模型和核方法的主要内容及最新进展。此外,还介绍了多特征跟踪、利用上下文信息的目标跟踪和多目标跟踪算法及其进展。 【关键词】目标跟踪;特征匹配;贝叶斯滤波;概率图模型;均值漂移;粒子滤波 【中图分类号】TP391.41;TN911.73【文献标识码】A Survey of Visual Object Tracking Algorithms CAI Rong-tai1,WU Yuan-hao2,WANG Ming-jia2,WU Qing-xiang1 (1.School of Physics,Optics,Electronic Science and Technology,Fujian Normal University,Fuzhou350108,China; 2.Changchun Institute of Optics,Fine Mechanics and Physics,Chinese Academy of Science,Changchun130033,China)【Abstract】The field of visual object tracking algorithms are introduced,including visual tracking based on contrast analysis,visual tracking based on feature matching and visual tracking based on moving detection.Feature matching,Bayesian filtering,probabilistic graphical models,kernel tracking and their recent developments are analyzed.The development of multiple cues based tracking,contexts based tracking and multi-target tracking are also discussed. 【Key words】visual tracking;feature matching;Bayesian filtering;probabilistic graphical models;mean shift;particle filter ·论文·*国家“863”计划项目(2006AA703405F);福建省自然科学基金项目(2009J05141);福建省教育厅科技计划项目(JA09040)

目标检测与跟踪

第九章图像目标探测与跟踪技术 主讲人:赵丹培 宇航学院图像处理中心 zhaodanpei@https://www.doczj.com/doc/2515704747.html, 电话:82339972

目录 9.1 概论 9.2 目标检测与跟踪技术的发展现状9.3 目标检测与跟踪技术的典型应用9.4 图像的特征与描述 9.5 目标检测方法的基本概念与原理9.6 目标跟踪方法涉及的基本问题

9.1 概论 1、课程的学习目的 学习和掌握目标探测、跟踪与识别的基本概念和术语,了解一个完整信息处理系统的工作流程,了解目标探测、跟踪与识别在武器系统、航空航天、军事领域的典型应用。了解目标检测、跟踪与识别涉及的关键技术的发展现状,为今后从事相关的研究工作奠定基础。 2、主要参考书: 《目标探测与识别》,周立伟等编著,北京理工大学出版社; 《成像自动目标识别》,张天序著,湖北科学技术出版社; 《动态图像分析》,李智勇沈振康等著,国防工业出版社;

引言:学习目标检测与跟踪技术的意义 ?现代军事理论认为,掌握高科技将成为现代战争取胜的重要因素。以侦察监视技术、通信技术、成像跟踪技术、精确制导技术等为代表的军用高科技技术是夺取胜利的重要武器。 ?成像跟踪技术是为了在战争中更精确、及时地识别敌方目标,有效地跟踪目标,是高科技武器系统中的至关重要的核心技术。 ?例如:一个完整的军事战斗任务大致包括侦察、搜索、监视以及攻击目标和毁伤目标。那么快速的信息获取和处理能力就是战争胜利的关键,因此,目标的实时探测、跟踪与识别也成为必要的前提条件。

?随着现代高新技术的不断发展及其在军事应用领域中的日益推广,传统的作战形态正在发生着深刻的变化。 1973年的第四次中东战争,1982年的英阿马岛之战,1991年的海湾战争及1999年的科索沃战争,伊拉克战争等都说明了这一点。西方各军事强国都在积极探索对抗武器,特别是美国更是投入了巨大的物力、人力和财力积极研制弹道导弹防御系统。而图像检测、跟踪和识别算法作为现代战场信息环境作战成败的关键,具备抗遮挡、抗丢失和抗机动鲁棒性的智能跟踪器,将是现代战场作战必备品,具有广泛的应用前景。

视频目标检测与跟踪算法综述

视频目标检测与跟踪算法综述 1、引言 运动目标的检测与跟踪是机器视觉领域的核心课题之一,目前被广泛应用在 视频编码、智能交通、监控、图像检测等众多领域中。本文针对视频监控图像的运动目标检测与跟踪方法,分析了近些年来国内外的研究工作及最新进展。 2、视频监控图像的运动目标检测方法 运动目标检测的目的是把运动目标从背景图像中分割出来。运动目标的有效分割对于目标分类、跟踪和行为理解等后期处理非常重要。目前运动目标检测算法的难点主要体现在背景的复杂性和目标的复杂性两方面。背景的复杂性主要体现在背景中一些噪声对目标的干扰,目标的复杂性主要体现在目标的运动性、突变性以及所提取目标的非单一性等等。所有这些特点使得运动目标的检测成为一项相当困难的事情。目前常用的运动目标检测算法主要有光流法、帧差法、背景相减法,其中背景减除法是目前最常用的方法。 2.1 帧差法 帧差法主要是利用视频序列中连续两帧间的变化来检测静态场景下的运动目标,假设(,)k f x y 和(1)(,)k f x y +分别为图像序列中的第k 帧和第k+1帧中象素点(x ,y)的象素值,则这两帧图像的差值图像就如公式2-1 所示: 1(1)(,)(,)k k k Diff f x y f x y ++=- (2-1) 2-1式中差值不为0的图像区域代表了由运动目标的运动所经过的区域(背景象素值不变),又因为相邻视频帧间时间间隔很小,目标位置变化也很小,所以运动目标的运动所经过的区域也就代表了当前帧中运动目标所在的区域。利用此原理便可以提取出目标。下图给出了帧差法的基本流程:1、首先利用2-1 式得到第k 帧和第k+1帧的差值图像1k Diff +;2、对所得到的差值图像1k Diff +二值化(如式子2-2 示)得到Qk+1;3、为消除微小噪声的干扰,使得到的运动目标更准确,对1k Q +进行必要的滤波和去噪处理,后处理结果为1k M +。 111255,,(,)0,,(,)k k k if Diff x y T Q if Diff x y T +++>?=?≤? (T 为阈值) (2-2)

目标识别与跟踪综述

综述 摘要:人体的运动分析主要指的是对场景中的运动个体或者群体进行运动检测、运动跟踪与理解以到达描述人体行为的目的。通过阅读文献,本文将从人体检测,人体跟踪和人群运动分析三个方面介绍人群特征分析的方法。 1.绪论 随着社会的发展,公共需求的提高,群体运动的分析越来越受关注。并且随着人口的增长,人群活动日益增加,相应的人群安全问题也越来越突出。对人群的分析研究分别在社会学、心理学、建筑学、计算机等各个学科受到极大的关注。人群分析主要分为以下五个方面。 (1)人群管理:对大型集会的人群管理,是公共安全管理领域中最亟待解决的问题。人群分析可以更好的发展人群管理策略,避免因人群拥挤而发生的灾难事件,确保人身安全。 (2)虚拟环境:通过构造人群的数学模型结构,在虚拟环境下来模拟人群场景,来丰富人的生活体验。如一些虚拟的聊天室、电影或者动画制作过程中的特效应用等。 (3)智能环境:在一些涉及到大型人群的智能环境下,人群分析可以预协调人群。如在博物馆,人群的模式决定了如何疏散人群。 (4)公共场所设计:人群分析可以为公共场所的设计提供指导,如对商场的人流估计,使得商场的布局更方便于顾客或者最可能有效的利用空间优化办公室场所。 (5)视觉监控:人群分析可以用来自动检测场景中的异常情况。而且,在人群中的个体跟踪有助于协助安防人员捕捉嫌疑犯。 虽然人群运动分析技术研究已取得了一定的成果,但是人群运动的复杂性以及实际运动场景的多变性仍然给人群运动分析带来很多的研究难点。目前在人群运动的自动检测与跟踪方面,也没有相对完善的理论基础,各向技术也处在完善阶段。主要表现在: (1)运动检测与分割:在人群运动分析系统中,如何对人群运动实现快速而准确的分割是极为重要的难题。由于视频序列中运动场景极易受到各种客观因素的影响,如光照变化、背景与前景的混杂干扰、运动目标与环境之间或者运动目标之间的遮挡现象等,使得对人群运动实现有效分割变的十分的困难。目前常用的运动分割算法如帧间差分法或背景相减法都难以适应复杂或者拥挤场景的运动分

目标检测与跟踪方法在自动跟踪装置中的应用

第33卷增刊2007年11月 光学技术OPTICAL TECHN IQU E Vol.33Suppl. Nov. 2007 文章编号:100221582(2007)S 20069203 目标检测与跟踪方法在自动跟踪装置中的应用 Ξ 伍翔,霍炬,杨明,董红红 (哈尔滨工业大学控制与仿真中心,哈尔滨 150082) 摘 要:介绍了一种应用于自动跟踪装置上的运动背景下目标检测与跟踪的方法,采用仿射模型作背景运动估计进行检测以及mean 2shift 算法跟踪目标,并将该方法应用到一套自动跟踪系统实验平台上。 关 键 词:仿射模型;mean 2shift 算法;自动跟踪装置 中图分类号:TP751 文献标识码:A Application of a moving target detecting and tracking method in the automatic 2tracking equipment WU X iang ,H UO J u ,Y ANG Ming ,DONG H ong 2hong (Control and Simulation Center ,Harbin Institute of Technology ,Harbin 150082,China ) Abstract :This paper presents a moving target detecting and tracking method in moving background for the automatic 2tracking equipment.It uses affine model to estimate the moving character of the background for detecting ,and uses mean 2shift algorithm for tracking.An automatic 2tracking experimental system is realized by using this method. K ey w ords :affine model ;mean 2shift algorithm ;automatic 2tracking equipment 0 引 言 基于图像处理的运动目标检测与跟踪,作为图像处理技术的一个分支,由于其在民用和军用上的广泛应用 [1,2] ,也逐 渐成为研究的热点。本文主要针对自动跟踪装置,研究与设计一种图像处理的方法,实现运动背景下运动目标检测与跟踪,并应用到所搭建的自动跟踪仿真系统中。 1 自动跟踪系统实验平台 利用图像处理的方法实现自动跟踪功能的跟踪系统一般由摄像机、图像采集卡、计算机、伺服系统几部分组成。摄像机、图像采集卡以及计算机都装载在伺服系统上,当摄像机的视野中出现运动目标时,计算机对图像采集卡采集到的图像进行处理分析,得出运动目标的位置等信息,传递给伺服系统,伺服系统带动相机跟踪目标,使得目标始终保持在视野的中心 。 图1 自动跟踪系统实验平台结构框图 图1即为所搭建的自动跟踪系统实验平台的结构框图, 该平台是专门根据自动跟踪装置的结构和特点设计的,对自动跟踪装置进行模拟。由图1可知,在计算机上实现的图像处理部分,是整个系统的关键。它所要完成的功能是从采集图2 图像处理部分基本流程 到的每幅视频图像中找出运动目标的位置,即运动目标的检测与跟踪。它主要包括两方面:第一,运动目标的检测与提取;第二,目标跟踪。其处理流程图如图2所示。 2 运动目标检测 2.1 背景模型选取 根据摄像机相对于场景的运动情况可以将运动目标检测分为静止背景下运动目标检测和运动背景下运动目标检测两种。由自动跟踪装置的特性可知,在跟踪目标的过程中,摄像机随着伺服系统一起运动,所以应该考虑的是运动背景下运动目标的检测。 本文采用的是运用背景运动估计进行建模的思想,将两帧图像之间的背景运动关系用仿射变换表示,建立一个仿射运动参数模型。如 x k +1=a 1x k +a 2y k +d x y k +1=a 3x k +a 4y k +d y (1) 9 6Ξ收稿日期:2006212211 E 2m ail :wuxiang602@https://www.doczj.com/doc/2515704747.html, 基金项目:国家自然科学基金资助(60434010) 作者简介:伍翔(19842),男,苗族,湖南省人,哈尔滨工业大学硕士研究生,从事图像处理研究。

目标跟踪算法综述

。 目标跟踪算法综述 大连理工大学卢湖川一、引言 目标跟踪是计算机视觉领域的一个重 要问题,在运动分析、视频压缩、行为识 别、视频监控、智能交通和机器人导航等 很多研究方向上都有着广泛的应用。目标 跟踪的主要任务是给定目标物体在第一帧 视频图像中的位置,通过外观模型和运动 模型估计目标在接下来的视频图像中的状 态。如图1所示。目标跟踪主要可以分为5 部分,分别是运动模型、特征提取、外观 模型、目标定位和模型更新。运动模型可 以依据上一帧目标的位置来预测在当前帧 目标可能出现的区域,现在大部分算法采用的是粒子滤波或相关滤波的方法来建模目标运动。随后,提取粒子图像块特征,利用外观模型来验证运动模型预测的区域是被跟踪目标的可能性,进行目标定位。由于跟踪物体先验信息的缺乏,需要在跟踪过程中实时进行模型更新,使得跟踪器能够适应目标外观和环境的变化。尽管在线目标跟踪的研究在过去几十年里有很大进展,但是由被跟踪目标外观及周围环境变化带来的困难使得设计一个鲁棒的在线跟踪算法仍然是一个富有挑战性的课题。本文将对最近几年本领域相关算法进行综述。 二、目标跟踪研究现状 1. 基于相关滤波的目标跟踪算法 在相关滤波目标跟踪算法出现之前,大部分目标跟踪算法采用粒子滤波框架来进行目标跟踪,粒子数量往往成为限制算法速度的一个重要原因。相关滤波提出了 一种新颖的循环采样方法,并利用循环样 本构建循环矩阵。利用循环矩阵时域频域 转换的特殊性质,将运算转换到频域内进 行计算,大大加快的分类器的训练。同时, 在目标检测阶段,分类器可以同时得到所 有循环样本得分组成的响应图像,根据最 大值位置进行目标定位。相关滤波用于目 标跟踪最早是在MOSSE算法[1]中提出 的。发展至今,很多基于相关滤波的改进 工作在目标跟踪领域已经取得很多可喜的 成果。 1.1. 特征部分改进 MOSSE[1] 算法及在此基础上引入循 环矩阵快速计算的CSK[2]算法均采用简单 灰度特征,这种特征很容易受到外界环境 的干扰,导致跟踪不准确。为了提升算法 性能,CN算法[3]对特征部分进行了优 化,提出CN(Color Name)空间,该空 间通道数为11(包括黑、蓝、棕、灰、绿、 橙、粉、紫、红、白和黄),颜色空间的引 入大大提升了算法的精度。 与此类似,KCF算法[4]采用方向梯度 直方图(HOG)特征与相关滤波算法结合, 同时提出一种将多通道特征融入相关滤波 的方法。这种特征对于可以提取物体的边 缘信息,对于光照和颜色变化等比较鲁棒。 方向梯度直方图(HOG)特征对于运 动模糊、光照变化及颜色变化等鲁棒性良 好,但对于形变的鲁棒性较差;颜色特征 对于形变鲁棒性较好,但对于光照变化不 够鲁棒。STAPLE算法[5]将两种特征进行 有效地结合,使用方向直方图特征得到相 关滤波的响应图,使用颜色直方图得到的 统计得分,两者融合得到最后的响应图像 并估计目标位置,提高了跟踪算法的准确 度,但也使得计算稍微复杂了一些。 图1 目标跟踪算法流程图

多目标跟踪方法研究综述

经过近40多年的深入研究和发展,多目标跟踪技术在许多方面都有着广泛应用和发展前景,如军事视觉制导、机器人视觉导航、交通管 制、 医疗诊断等[1-2]。目前,虽然基于视频的多运动目标跟踪技术已取得了很大的成就,但由于视频中图像的变化和物体运动的复杂性,使得对多运动目标的检测与跟踪变得异常困难,如多目标在运动过程中互遮挡、监控场景的复杂性等问题,解决上述难题一直是该领域所面临的一个巨大挑战,因此,对视频中多目标跟踪技术研究仍然是近年来一个热门的研究课题[3-5]。 1、多目标跟踪的一般步骤 基于视频的多目标跟踪技术融合了图像处理、模式识别、人工智能、 自动控制以及计算机视觉等众多领域中的先进技术和核心思想。不同的多目标跟踪方法其实现步骤有一定的差异,但多目标跟踪的主要 流程是相同的,如图1所示,其主要包括图像预处理、 运动目标检测、多目标标记与分离、多目标跟踪四个步骤。 图1多目标跟踪基本流程图 2、多目标跟踪方法 多目标跟踪方法可以根据处理图像或视频获取视点的多少分为两大类,一类是单视点的多目标跟踪,另一类就是多视点的多目标跟踪。 2.1单视点的方法 单视点方法是针对单一相机获取的图像进行多目标的检测和跟踪。该方法好处在于简单且易于开发,但由于有限的视觉信息的获取,很难处理几个目标被遮挡的情况。 块跟踪(Blob-tracking)是一种流行的低成本的跟踪方法[6-7]。这种方法需要首先在每一帧中提取块,然后逐帧寻找相关联的块,从而实现跟 踪。 例如BraMBLe系统[8]就是一个基于已知的背景模型和被跟踪的人的外表模型计算出块的似然性的多块跟踪器。这种方法最大的不足之处在于:当由于相似性或者遮挡,多个目标合并在一起时,跟踪将导致失败。因此,可以取而代之的方法是通过位置、外观和形状保留清晰目标的状态。文献[9]利用组合椭圆模拟人的形状,用颜色直方图模拟不同人的外观,用一个增强高斯分布模拟背景以便分割目标,一旦场景中发现对应于运动头部的像素,一个MCMC方法就被用于获取多个人的轮廓的最大后验概率,在单相机的多人跟踪应用中取得了非常有意义的结果。Okuma等人提出了一种将Adaboost算法和粒子滤波相结合的方法[10]。该方法由于充分利用了两种方法的优点,相比于单独使用这两种方法本身,大大降低了跟踪失败的情形,同时也解决了在同一框架下检测和一致跟踪的问题。Brostow等人提出了一个用于在人群中检测单个行人的特征点轨迹聚类的概率框架[11]。这个框架有一个基本假设是一起运动的点对可能是同一个个体的一部分,并且把它用于检测和最终的跟踪。对于完全和部分遮挡目标以及外观变化,这些方法和另外一些相似的方法都有很大的局限性。 为了解决遮挡问题,一系列单视点跟踪技术应运而生。典型的方法 是利用块合并来检测遮挡的发生[12]。当被跟踪的点消失, 跟踪特征点的方法就简单的将其作为一个被遮挡特征点。近年来,基于目标轮廓和外观的跟踪技术利用隐含的目标到相机的深度变化来表示和估计目标间的遮挡关系。但大多数方法都只能解决部分遮挡,不能解决完全被遮挡 的情况。 另外,小的一致运动被假设为是可以从遮挡视点中可以预测运动模式的,这些给没有预测运动的较长时间的遮挡的处理带来问题。尽管这些单视点的方法有较长的研究历史,但这些方法由于不能明锐的 观察目标的隐藏部分,因此不能很好地解决有2或3个目标的遮挡问题。 2.2多视点的方法 随着复杂环境中对检测和跟踪多个被遮挡的人和计算他们的精确 位置的需要,多视点的方法成为研究的热点。 多视点跟踪技术的目的就是利用不同视点的冗余信息,减少被遮挡的区域,并提供目标和场景的3D信息。尽管通过相机不能很好地解决目标跟踪问题,但却提出了一些很好的想法,如选择最佳视点,但这些方法都以实际环境模型和相机校正为特征。 90年代后半期,在很多文献中给出了多视点相关的多目标跟踪方法。 比如利用一个或多个相机与观察区域相连的状态变化映射,同时给出一系列的行为规则去整合不同相机间的信息。利用颜色在多个视点中进行多目标的跟踪的方法,该方法模拟了从基于颜色直方图技术的 背景提取中获得的连接块并应用其去匹配和跟踪目标。 除此之外,也有在原来的单视点跟踪系统进行扩展的多视点跟踪方法。该方法主要是通过一个预测,当预测当前的相机不在有一个好的视点时,跟踪就从原来凯斯的那个单相机视点的跟踪转换到另外一个相机,从而实现多视点的跟踪。基于点与它对应的极线的欧氏距离的空间匹配方法、贝叶斯网络和立体相对合并的方法都是多目标多视点跟踪的常见方法。尽管这些方法都试图去解决遮挡问题,但由于遮挡的存在,基于特征的方法都不能根本解决,其次,这些方法中的遮挡关系的推理一般都是根据运动模型,卡尔曼滤波或者更普遍的马尔科夫模型的时间一致性来进行的。因此,当这个过程开始发散,这些方法也不能恢复遮挡关系。 最近一种基于几何结构融合多个视点信息的Homegraphicoccupancyconsrraint(HOC)[12]方法,可以通过在多场景平台对人的定位来解决遮挡问题。仅采用随时间变化的外表信息用于从背景中检测前景,这使得在拥挤人流的场景中的外表遮挡的解决更健壮。利用多视点中的前景信息,主要是试图找到被人遮挡的场景点的图像位置,然后这些被遮挡的信息用于解决场景中多个人的的遮挡和跟踪问题。在这种思想指导下,Mittal,Leibe,Franco等的研究工作和机器人导航中基于遮挡网格的距离传感器的并行工作是相似的,这些方法在融合3D空间信息的时候需要进行校正相机。但HOC方法是完全基于图像的,仅需要2D结构信息进行图像平面的融合。当然也有另外一些不需要进行相机校正的算法被提出,但需要学习一个与相机最小相关的信息。在目标跟踪过程中,由于这些方法依赖于单个相机的场景,对于拥挤场景中目标分布密度增加九无能为力了。在HOC的多视点的目标跟踪中,对于任何单一相机的场景,或者相机对的场景,都不需要进行定位和跟踪目标,而是从所有相机的场景中收集证据,形成一个统一的框架,由于该方法能够从多个时间帧的场景中进行场景被遮挡概率的全局轨迹优化,因此可以同时进行检测和跟踪。 3、总结 动态目标检测与跟踪是智能监控系统的重要组成部分,它融合了图像处理、模式识别、自动控制及计算机应用等相关领域的先进技术和研究成果,是计算机视觉和图像编码研究领域的一个重要课题,在军事武器、工业监控、交通管理等领域都有广泛的应用。尤其是对于多目标检测与跟踪中的遮挡与被遮挡的处理,对提高智能监控中目标的行为分析有着重要的意义。随着监控设备的发展和设施的铺设,多视点的场景图像是很容易得到的,因此借助信息融合的思想,充分利用不同角度对目标的描述信息,可以很大地改进目前基于单视点的多目标检测和跟踪的精度,能够很好地解决单视点方法中不能很好解决的遮挡问题。参考文献 [1]胡斌,何克忠.计算机视觉在室外移动机器人中的应用.自动化学报,2006,32(5):774-784. [2]A.Ottlik,H.-H.Nagel.InitializationofModel-BasedVehicleTrackinginVideoSequencesofInner-CityIntersections.InternationalJournalofComputerVision,2008,80(2):211-225.多目标跟踪方法研究综述 苏州联讯图创软件有限责任公司 陈宁强 [摘要]文章对目前现有的多目标跟踪方法从信息获取的不同角度进行了综述。主要分析比较了目前单视点和多视点目标跟踪方 法对于目标遮挡问题的处理性能,并指出多视点的基于多源信息融合的思想,可以较好地解决场景中目标的遮挡问题。[关键词]单视点多视点目标跟踪信息融合基金项目:本文系江苏省自然科学基金(BK2009593)。 作者简介:陈宁强(1973-),男,江苏苏州人,工程师,主要研究方向:GIS、模式识别和图像处理与分析。 目标跟踪多目标标记与分离 匹配 目标模型 运动检测当前帧图像 背景提取 去噪 ROI 预处理 视频序列 (下转第26页)

目标检测、跟踪与识别技术与现代战争

《图像检测、跟踪与识别技术》论文 论文题目: 图像检测、跟踪与识别技术与现代战争 专业:探测制导与控制技术 学号:35152129 姓名:刘孝孝

目标检测、跟踪与识别技术与现代战争 【摘要】本文讨论目标检测、跟踪与识别技术在现代战争各个领域中的应用,总结目标识别技术的发展方向,提出目标识别技术工程化实现方法,同时本文介绍了国外目标识别的现状及发展趋势,提出了现代战争应采用综合识别系统解决目标识别问题的建议。 关键词目标检测;目标跟踪;目标识别;雷达;人工神经网络;精确制导 1.引言 随着现代科学技术的飞速发展及其在军事领域内日益广泛的应用,传统的作战思想、作战方式已发生根本性的变化。从第一次海湾战争到科索沃战争,特别是刚刚结束的海湾战争,空中精确打击和空地一体化作战已经成为最重要的作战形式。集指挥、控制、通信、计算机、情报、监视侦察于一体的C ISR 已成为取得战场主动权,赢得最后胜利的关键因素。目标识别技术是雷达智能化、信息化的重要技术支撑手段。在现代化战争中,目标识别技术在预警探测、精确制导、战场指挥和侦察、敌我识别等军事领域都有广泛的应用前景,已受到了世界各国的关注。 现代战争中取得战场制信息权的关键之一是目标属性识别。现代战争的作战环境十分复杂,作战双方都在采用相应的伪装、隐蔽、欺骗和干扰等手段和技术,进行识别和反识别斗争。因此仅仅依靠一种或少数几种识别手段很难准确地进行目标识别,必须利用多个和多类传感器所收集到的多种目标属性信息,综合出准确的目标属性,进行目标检测,跟踪后进行识别。 2.目标检测、跟踪与识别技术在现代战争中的应用 2.1 目标检测、跟踪与识别技术在预警探测上的应用 目标检测、跟踪与识别技术对于弹道导弹的预警工作有重要的作用。弹道导弹一般携带多个弹头,其中可能包含核弹头或大规模杀伤的弹头以及常规弹头,预警雷达必须具备对目标进行分类和识别真假弹头的能力,将核弹头或大规模杀伤的弹头分离出来,为弹道导弹防御(BMD)系统进行目标攻击和火力分配提供依据。早期的BMD系统假设只有一个核弹头,多弹头分导技术的出现,使问题转化为雷达的多目标识别问题,加上电子对抗技术的广泛使用,给目标识别技术带来很大困难。另外,预警雷达还要对空中目标或低空目标进行探测,对来袭目标群进行分类识别。利用星载雷达以及远程光学望远镜等观测设备,可以对外空目标进行探测,对外空来袭目标进行分类和识别,达到早期预警的工作。 2.2 目标检测、跟踪与识别技术在精确制导上的应用 精确制导方式很多,包括主动式、半主动式和被动式寻的制导方式,通过设在精确制导武器

人形目标检测与跟踪

——人形目标检测与跟踪

一、 本组研究方案,算法系统框图 二、 检测算法、原理、程序实现方法、调试过程 【视频处理】 老师提供的两端视频两段视频并不能直接用来输入OpenCV 所编程序处理,需要将其转化为无压缩的avi 格式。利用软件WinAVI Video Converter ,转换为ZJMedia uncompressed RGB24格式。 【背景建模】 我们小组利用N 帧图像的平均来求取背景,并实时对背景进行更新。由于考虑到ExhibitionHall.avi 视频中运动物体所占场景比例少,运动轨迹为直线,为了处理的简单,所以在这不刻意区分物体和背景像素点。即(1)(1)()()A A A B k B k I k αα+=-+ ,这里的α 很小(0.003) 。 【前景提取】 灰度图像的处理比彩色图像的处理过程简单。我们小组将读入的彩色图像变成灰度图像,并二值化;同样,背景也进行二值化。两者做差值,得到一些离散的黑白点块。也就

是要识别的目标。但是,这样得到的块是分散开的,程序 整的人形被分块识别成多个目标。为此,我们做了一些简 单的后处理。先腐蚀元素,去除不必要的杂点,然后进行 膨胀块处理,自定义块的大小,使其膨胀成能被识别成一 个人形的目标。另外,我们还做个简单的高斯低通滤波, 是得到的结果光滑些。其流程图如右。 【目标检测】 根据前景处理的结果,得到一些连续的块目标。利用帧间差,可以提取出目标的轮廓。根 据轮廓的位置分布,计算出检测目标的形心和大小。并予以标记。 【目标跟踪】 根据目标帧间的位移差值,可以计算出运动目标在x,y方向上的运动速度。可以利用这 个关系判断下一帧目标的位置。设置一个合适的阈值,就可以实现目标的跟踪。在此,我们还 引入了重叠判断机制。如果目标重叠,即通过遍历,发现块重叠大于一定阈值后,根据前面得 到的位置预测判断当前物块位置;如果不重叠,则遍历这幅图像中的所有物块,寻找临近最优 物块,以保持编号连续性。在目标跟踪过程中,还进行了Kalman滤波,对目标轨迹进行滤波 处理。

相关主题
文本预览
相关文档 最新文档