Linux下移植motion到6410开发板(移动图像监测系统)
2012-09-22 20:15
471 查看
所谓移动图像监测,简单来说就是利用USB摄像头定点监测某个区域,平时摄像头并不拍照,只有当有移动物体经过时,摄像头便自动抓拍(要监测多大物体、按拍照速率都是可调的),并把拍到的图像存储在指定目录,实现无人监控功能。
我用的是6410开发板,nfs起动态根文件系统,飞凌提供的2.6.36.32内核,交叉编译工具4.3.2,在开始项目前一定要先确保你的USB摄像头在Linux下可用,主流摄像头:ZC301P、网眼2000(OV511系列芯片),罗技C210、C270系列3.0.1内核的专用摄像头等等。笔者犯了一个很低级的错误,没测试摄像头是否可用就直接移植motion,导致经常出现以下提示信息,纠结了两天啊:
[0] Thread 1 - Watchdog timeout, trying to do a graceful restart
开始网上搜索各种解决方案都无效,后来发现先把摄像头拔下来,运行motion - motion.conf,再把摄像头装上去,会一直拍照并保存灰色或者绿色图像,并且照片提示无法打开video2,网购了一个ZC301P的摄像头,并移植了驱动到内核上(2410、2440系列可以省了这一步),然后编译内核测试摄像头可用(下篇讲将ZC301P移植到开发板上可用),重新移植motion成功!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------华--丽--的--分--割--线---------------------------------------------------------------------------
好了开始进入正题吧:
首先准备工作:将motion所需动态库全部拷到开发板根文件的lib目录下,一定要有这一步,否则会提示很多不支持,比如:
在motion进行./configure的时候显示Fatal Error YOU MUST HAVE jpeg Support?
出错原因就似乎因为没有将
这些库文件拷到开发板根目录上,拷过去即可
这里有动态库下载地址:http://download.csdn.net/detail/l461269717/4655481
第二步就是编译motion了:
下载一个motion压缩包,我用的是3.2.11.1,通过samba拷到Linux下,
[root@localhost ~]# tar zxvf motion-3.2.11.1.tar.gz
[root@localhost ~]# cd motion-3.2.11.1
[root@localhost ~]# ./configure --prefix=/自定义安装目录,我是直接安装源码下${PWD}/_install
/ --host=arm-linux --with-ffmpeg=/home/ffmpeg/ffmpeg-0.5.1/_install/ (若要视频记录则添上蓝色字体,否则会报出一大堆ffmpeg错误,但不影响拍照功能)
[root@localhost ~]# make
[root@localhost ~]# make install
[root@localhost ~]# mkdir -p /开发板根文件系统目录/var/run/motion
[root@localhost ~]# cp /motion安装目录/bin motion /开发板根文件系统目录/usr/sbin/
[root@localhost ~]# cp /motion安装目录/etc/motion-dist.conf /开发板根文件系统目录/etc/motion/motion.conf
接下来就是修改配置文件了:
[root@localhost ~]# cd /开发板根文件系统目录/etc/motion/
[root@localhost ~]# vi motion.conf,以下为motion.conf修改部分:
daemon off #关掉deamon模式
quiet on
locate on #探测到图像中有运动时,把运动区域用矩形框起来
videodevice /dev/video2 #加载USB摄像头的设备,如果2410、2440是video0,具体根据插上USB摄像头产生的设备节点;
width 640 #图像宽度
height 480 #图像高度
framerate 5 #每秒最大捕获帧数
target_dir /root/motion #设置拍摄图片的存储目录
threshold_tune off #设置是否使用motion detection阈值自动调节。设置off时,可以由threshold指定当探测到多少像素变化时,判断为图像中有运动。
threshold 3000 #这个是改变探测灵敏度,越小越灵敏,这里设为3000像素值
ffmpeg_cap_new on #在detect到运动时,用视频记录下来
ffmpeg_video_codec msmpeg4 #设定视频的编码器
webcam_localhost off #必须改成off才能通过pc访问
webcam_maxrate 8
snapshot_interval 5 #设定自动采集图片的周期,当有运动被检测到时,采集频率会自动变高。如果设置0,则无运动物体时不自动拍照
on_event_start /root/detected #当该事件产生时执行detected脚本,该脚本是简单的可执行shell脚本,下同
on_event_end /root/end #当该事件产生时执行end脚本
gap 5 #设置,在探测到运动后,多长时间没有运动的话就触发运动结束指令on_event_end。
关于这些配置的具体意义,参见motion官方wikihttp://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions
重启开发板,通过nfs挂接文件系统,输入motion -c motion.conf,移动摄像头,可在指定保存目录下看到拍到的监控图像
以下是有人经过监视区域时,摄像头自动抓拍到的画面(只有30W像素):
也可以在火狐或者谷歌浏览器输入http://172.22.17.12:8081/,来实时监控监控:
如果出现libc.so.6版本过低的提示,把自己的动态库覆盖过去就解决了,然后如果再提示一大堆错误,再把链接文件linuxrc覆盖就好了。
动态库下载地址:http://download.csdn.net/detail/l461269717/4609062
我用的是6410开发板,nfs起动态根文件系统,飞凌提供的2.6.36.32内核,交叉编译工具4.3.2,在开始项目前一定要先确保你的USB摄像头在Linux下可用,主流摄像头:ZC301P、网眼2000(OV511系列芯片),罗技C210、C270系列3.0.1内核的专用摄像头等等。笔者犯了一个很低级的错误,没测试摄像头是否可用就直接移植motion,导致经常出现以下提示信息,纠结了两天啊:
[0] Thread 1 - Watchdog timeout, trying to do a graceful restart
开始网上搜索各种解决方案都无效,后来发现先把摄像头拔下来,运行motion - motion.conf,再把摄像头装上去,会一直拍照并保存灰色或者绿色图像,并且照片提示无法打开video2,网购了一个ZC301P的摄像头,并移植了驱动到内核上(2410、2440系列可以省了这一步),然后编译内核测试摄像头可用(下篇讲将ZC301P移植到开发板上可用),重新移植motion成功!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------华--丽--的--分--割--线---------------------------------------------------------------------------
好了开始进入正题吧:
首先准备工作:将motion所需动态库全部拷到开发板根文件的lib目录下,一定要有这一步,否则会提示很多不支持,比如:
在motion进行./configure的时候显示Fatal Error YOU MUST HAVE jpeg Support?
出错原因就似乎因为没有将
这些库文件拷到开发板根目录上,拷过去即可
这里有动态库下载地址:http://download.csdn.net/detail/l461269717/4655481
第二步就是编译motion了:
下载一个motion压缩包,我用的是3.2.11.1,通过samba拷到Linux下,
[root@localhost ~]# tar zxvf motion-3.2.11.1.tar.gz
[root@localhost ~]# cd motion-3.2.11.1
[root@localhost ~]# ./configure --prefix=/自定义安装目录,我是直接安装源码下${PWD}/_install
/ --host=arm-linux --with-ffmpeg=/home/ffmpeg/ffmpeg-0.5.1/_install/ (若要视频记录则添上蓝色字体,否则会报出一大堆ffmpeg错误,但不影响拍照功能)
[root@localhost ~]# make
[root@localhost ~]# make install
[root@localhost ~]# mkdir -p /开发板根文件系统目录/var/run/motion
[root@localhost ~]# cp /motion安装目录/bin motion /开发板根文件系统目录/usr/sbin/
[root@localhost ~]# cp /motion安装目录/etc/motion-dist.conf /开发板根文件系统目录/etc/motion/motion.conf
接下来就是修改配置文件了:
[root@localhost ~]# cd /开发板根文件系统目录/etc/motion/
[root@localhost ~]# vi motion.conf,以下为motion.conf修改部分:
daemon off #关掉deamon模式
quiet on
locate on #探测到图像中有运动时,把运动区域用矩形框起来
videodevice /dev/video2 #加载USB摄像头的设备,如果2410、2440是video0,具体根据插上USB摄像头产生的设备节点;
width 640 #图像宽度
height 480 #图像高度
framerate 5 #每秒最大捕获帧数
target_dir /root/motion #设置拍摄图片的存储目录
threshold_tune off #设置是否使用motion detection阈值自动调节。设置off时,可以由threshold指定当探测到多少像素变化时,判断为图像中有运动。
threshold 3000 #这个是改变探测灵敏度,越小越灵敏,这里设为3000像素值
ffmpeg_cap_new on #在detect到运动时,用视频记录下来
ffmpeg_video_codec msmpeg4 #设定视频的编码器
webcam_localhost off #必须改成off才能通过pc访问
webcam_maxrate 8
snapshot_interval 5 #设定自动采集图片的周期,当有运动被检测到时,采集频率会自动变高。如果设置0,则无运动物体时不自动拍照
on_event_start /root/detected #当该事件产生时执行detected脚本,该脚本是简单的可执行shell脚本,下同
on_event_end /root/end #当该事件产生时执行end脚本
gap 5 #设置,在探测到运动后,多长时间没有运动的话就触发运动结束指令on_event_end。
关于这些配置的具体意义,参见motion官方wikihttp://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions
重启开发板,通过nfs挂接文件系统,输入motion -c motion.conf,移动摄像头,可在指定保存目录下看到拍到的监控图像
以下是有人经过监视区域时,摄像头自动抓拍到的画面(只有30W像素):
也可以在火狐或者谷歌浏览器输入http://172.22.17.12:8081/,来实时监控监控:
如果出现libc.so.6版本过低的提示,把自己的动态库覆盖过去就解决了,然后如果再提示一大堆错误,再把链接文件linuxrc覆盖就好了。
动态库下载地址:http://download.csdn.net/detail/l461269717/4609062
相关文章推荐
- linux下的开源移动图像监测程序--motion编译与配置
- linux下的开源移动图像监测程序--motion编译与配置【转】
- linux下的开源移动图像监测程序--motion编译与配置
- linux下的开源移动图像监测程序--motion编译与配置及ffmpeg
- 基于DragonBoard 410c平台的移动图像监测系统
- Linux移动物体监控程序Motion的移植
- mini2440基于motion的移动图像监控系统和基于SDL的远程监控
- 嵌入式 Linux 系统移植——BSP分析
- 移动硬盘安装linux,thinkpad sl400笔记本安装vista,双系统
- FL2440移植linux-3.0全过程(3)制作initramfs最小文件系统
- 【翻译】动态图像监测开源代码 motion 学习-----Motion Guide-配置选项搜索表(四)
- 移植linux2.6.29内核及根文件系统到UP-CPU-2410(2)
- 【原创】动态图像监测开源代码 motion 学习-----Motion常见问题和与Motion相关的应用(五)
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之一--BOOTLOADER介绍
- 基于FS4412嵌入式系统移植(3) eMMC加载系统启动linux体验
- Linux系统监测-命令集
- linux 2.6内核+根文件系统的移植实验
- Linux系统网卡配置详解以及—常见问题的解决方法以及—硬盘移植后网卡的配置
- Linux的系统性能监测参数获取方法介绍
- 移植thttpd Web服务器到ARM-Linux系统