求助,树莓派3b实现图像传输

218被浏览10,200分享邀请回答github.com/gashero/pyv4l2
,支持包括x86、x86-64、ARM Cortex-A在内的各种Linux发行版。可以用python简单的获取摄像头的各种底层功能。我曾经花费一些精力去研究各种嵌入式开发板的视频采集和压缩,烧了20万进去,所得部分经验如上。如果有哪位土豪仍然想要此功能,可以联系我。6315 条评论分享收藏感谢收起github.com/xuhao1/oliviavideo这个我写好的图传67 条评论分享收藏感谢收起温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我爱如莲的少男少女,他们笑容纯真,不说假话。
LOFTER精选
网易考拉推荐
<iframe width="240" height="275" marginheight="0" marginwidth="0" frameborder="0" scrolling="no" border="0" allowtransparenc2013年3月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|树莓派 图像处理_百度知道
树莓派 图像处理
树莓派实现图像处理方便吗?要把图像的障碍物提取标记出来,求大神指导
我有更好的答案
通常大家都是用opencv编写 。因为树莓派的速度很差,所以最好用C编写。最差也要用cython。障碍物提取出来,需要找合适的算法。 通常这个算法是自学习的。根据当时灯光条件,自动找到相应的颜色范围,如果你自己觉着困难,可以把算法工作交一个熟悉 算法的人来做。opencv采集图片 ,再用pil来处理图片也是可以的。后者是C++实现的一个简单的图像处理库。
那有其他芯片可以处理得了吗?我们比赛的东西需要做得小型一点。还有请问有什么OpenCV的学习资料吗?以前没接触过,谢谢了
opencv都是名气大,但是很简单的东西。你看例子就会。图像处理好的肯定有。好象有几个和树莓派齐名的板子。不过耗电会大些。如果是我来做,我会分几步走。先用树莓派,用自己熟悉的语言做一版本。很慢。然后再局部优化算法。最后把部分算法用图像处理芯片实现。
采纳率:81%
为您推荐:
其他类似问题
图像处理的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。使用树莓派制作近距离遥控摄像机(无线网卡+摄像头,手机或平板等移动终端控制)
Categories:
其实早就做好了,只不过一直坑着……
先说一下我这篇文章说的东西做出来是啥,就是一个树莓派+无线网卡+摄像头+移动电源的东西。
基本用法就是只要树莓派开机,就可以用无线设备随时进行视频监控或者视频采集,或者同时做,可移动的无线摄像头。与其他教程不太相同的是,这回树莓派不再是接入无线路由或者其他接入点,而是直接自己作为接入点,不再有依赖外在接入点信号范围的束缚。
其实没啥用,没啥实际用途,真的。做这玩意其实就是想随意弄个随身摄像机啥的,但是又没小屏幕,于是就对手机和平板起了邪念(啥?)
炫耀展示:
点击查看大图
基本思路:
装一台Raspbian系统的Raspberry Pi,使用无线网卡配合hostapd作为无线接入点,使用摄像头配合MJPG-Streamer进行图像的实时监控、录制保存或监控录制同时进行,使用移动电源进行移动供电,使用手机或其他移动设备进行无线遥控。
文章目录:
A、开始前准备
B、准备材料
C、制作步骤
一、安装系统 (已安装系统的可以跳过此步)
二、编译网卡驱动和hostapd
三、安装DHCP服务
四、安装mjpg-streamer
五、变成接入点
六、脚本准备
七、遥控器准备:
D、已知缺陷
F、资源下载(百度盘)
G、文档更新日志
(请大家根据自己的情况选择跳过个别步骤)
开始前准备:
如果您确定想要着手操作的话,首先您应该了解linux的一些基础知识、ssh,shell和bash基本操作、基本编译等,并且要有一定的英语基础。这是一篇面向有一定基础的读者的文章,文中部分知识在本文中不会详细解释,如果您有什么不懂的地方,你来打我啊,咳咳,建议您先从基础学起。
准备材料:
1、树莓派B型(因为要用到2个USB口)+4G或以上SD卡一张
2、USB无线网卡一根(需要支持无线AP)
3、USB摄像头一个(需要支持MJPG)
4、移动电源一块
5、PC一台,路由器一台,网线一根(这些材料用于第一次安装)
6、无线设备一台(用于无线遥控)
附博主使用的材料:
1、树莓派B型+不太结实的亚克力外壳+8G class10东芝SD卡
2、EDUP MS8512 USB无线网卡
3、罗技C270 USB摄像头
4、爱国者充电宝D5
5、支持无线网络的笔记本一台,无线路由器一台
6、支持wifi的安卓手机一台,Ipad4(4G)一台
博主建议:
1、树莓派的盒子请尽量选择结实的以免携带的时候损坏
2、无线网卡请尽量选择linux下支持的比较好的,博主用的是Realtek芯片的,系统自带的hostapd不支持,MAC修改不支持,BSSID指定不支持(所以3DS无线擦建站一直搞不定)。至于是否外置天线,就随各位爱好吧,无天线的便携性就高,但是无线操作距离就会变低,大家自由取舍。
3、摄像头不是很了解,C270太火了哪的教程都用,虽然我是2010年就买了。
制作步骤:
大家注意到了这个教程中没有显示器,也就是说这次是要在无显示器的情况下安装系统。
一、安装系统 (已安装系统的可以跳过此步)
1、SD卡插读卡器上,读卡器插电脑上,刷raspbian上去,没啥说的
2、SD卡再插到树莓派上,先别急着加电,先用网线把树莓派用网线连接到路由器上,再开机。
3、一段时间后用PC登陆到路由器界面,看树莓派用DHCP获取的IP是多少。
(博主是因为已经长时间在用树莓派了,所以在路由器上写了静态DHCP)
4、使用PC的ssh客户端(推荐用putty,也可脸皮厚点用SecureCRT)登陆到树莓派,根据提示进行首次设置。
(系统装完,搞不定也别来求我)
5、虽然不是必须,不过还是建议大家运行一次rpi-update和apt-get update(没准你的不能用的摄像头就能用了,当然,也没准你的无线网卡就不能用了。)
二、编译网卡驱动和hostapd
虽然raspbian自带非常多的驱动,而且官方源也包含hostapd,然而却并不能支持每一款无线网卡。我手里的这款EDUP-MS8512就是,虽然能驱动起来,可以连wifi,但是hostapd却无法正常工作(芯片是Realtek的,支持不好)。所以建议大家还是自己编译网卡驱动和hostapd。至于教程,参见您网卡驱动中的README。(坑)
小技巧:编译驱动需要内核代码,还需要各种乱七八糟的东西
需要.config文件么,只要998!
gzip -dc /proc/config.gz &.config
需要Module.symvers文件么,只要你够了
wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
别忘了make modules_prepare
中途可能会报错找不到openssl/opensslv.h,装一个libssl-dev搞定
三、安装DHCP服务
因为接下来要将树莓派作为接入点,使用其他无线设备进行遥控,所以需要DHCP-server为”遥控器”分配IP,具体的,嗯,总之你只要安装isc-dhcp-server这个包就行了。(安装完成时会自行启动,自行启动会因为没有正确的配置文件报错,无视之)
四、安装mjpg-streamer
mjpg-streamer是用于视频的录制和监控的,消耗资源也少,安装步骤,嗯,虽然网上一大堆,不过还是发出来吧蛤蛤。当然也是因为网上很多教程缺胳膊少腿,自己想补充一下,这回就不那么坑了。
1、安装依赖
sudo apt-get install libv4l-dev libjpeg8-dev imagemagick
2、下载源码:
(比较坑爹的就是Raspbian虽然自带git,但是却不带svn,所以没有安装svn的请先安装svn客户端,包名:subversion)
svn死活抠不下来的朋友,(请感谢我们伟大的方校长并祝愿病魔早些战胜校长),您可以在本文最下方找到我的压缩包,Checked out revision 182.
(在网上搜mjpg-streamer的话可能会搜出一个mjpg-streamer-r63,这个包我在树莓派上亲测编译不成功,看报错应该是环境问题,没有过多尝试,有兴趣的朋友可以研究研究)
3、编译安装:
根据mjpg-streamer的文档,编译需要libjpeg,但是mjpg-streamer的代码依赖是libjpeg7的,我们使用的是libjpeg8,文件名不同,所以要做一个软连接。不然会报错:
mjpg_streamer.c:27:28: fatal error: linux/videodev.h: No such file or directory
compilation terminated.
make: *** [mjpg_streamer.o] Error 1
软连接:sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
进入目录并编译:
cd mjpg-streamer
make USE_LIBV4L2=true clean all
4、功能测试:
sudo ./mjpg_streamer -i &#8220;./input_uvc.so -d /dev/video0
-r 0 -f 12&#8221; -o &#8220;./output_http.so -p 8090 -w ./www&#8221;
(-r后是分辨率参数,-f后面是帧率,请根据您的摄像头参数进行调整)
之后在PC上打开浏览器,在地址栏填写树莓派的地址+:8090,如果成功的话就会打开mjpg-streamer提供的页面:
证明mjpg_streamer成功编译并运行了,恭喜,您已经搞定一个核心功能点了。
还可以进入stream页面看一下效果
五、变成接入点
要把树莓派的无线网卡变成接入点,其实并不是很难,很多地方都有教程,这里只列出一些必要步骤或基本命令,不做解释。每条命令的具体意义希望大家自己学习。
1、准备无线网卡基本配置
sudo vi /etc/network/interfaces
iface wlan0 inet static
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
address 10.5.5.1
netmask 255.255.255.224
2、准备hostapd的配置文件(一般是rtl_hostapd_2G,具体请参考网卡驱动中的文档)
vi rtl_hostapd_2G
##### hostapd configuration file ##############################################
interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=rtwap
wpa_passphrase=
#bridge=br0
3、准备DHCP的配置文件
sudo vi /etc/dhcp/dhcpd.conf
保证这段生效(具体怎么做请自行领悟)
subnet 10.5.5.0 netmask 255.255.255.224 {
interface wlan0;
range 10.5.5.26 10.5.5.30;
option domain-name-servers 8.8.8.8 , 8.8.4.4;
option domain-name &#8220;pi.wifi.catscarlet.com&#8221;;
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
4、准备启动脚本:
(这段其实不应该这么写,这段应该写在无线网卡的配置文件里,也就是interface,使之当插入无线网卡的时候载入,拔出无线网卡的时候卸载。我还没时间仔细研究,所以就对付到启动脚本里了)
sudo vi /etc/init.d/rc.local
在最下方新增两行:
/home/pi/hostapd /home/pi/rtl_hostapd_2G.conf
&& /var/log/hostapd.log
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(这样AP和NAT就都有了,DHCP开机如果有无线网卡的话会自己载入)
5、开启路由转发
/etc/sysctl.conf
将net.ipv4.ip_forward=0修改为net.ipv4.ip_forward=1
6、功能测试:
重启树莓派,重启后使用无线设备搜索无线信号rtwap,密码,接入,测试是否可以获取IP和DNS,并且确认是否可以上网。
六、脚本准备
根据前面的内容,现在我们的树莓派可以作为无线路由器了,也可以作为视频监控了,那么我们现在只要只要同时启用这两个功能,我们就已经接近目标了。
现在我们的树莓派在接入无线网卡的情况下开机,就可以作为无线路由使用,所以关于连接方面我们可以不再操心了,只要一心关注如何进行视频的监控和采集即可。
这里提供三个脚本(可在文章末尾打包下载)
pi@raspberrypi ~ $ cat 1_start-mjpeg_streamer.sh
cd ~/src/mjpg-streamer/
sudo nohup ./mjpg_streamer -i &#8220;./input_uvc.so -d /dev/video0
-r 0 -f 12&#8221; -o &#8220;./output_http.so -p 8090 -w ./www&#8221; &
pi@raspberrypi ~ $ cat 2_start-record.sh
cd ~/src/mjpg-streamer/
sudo nohup ./mjpg_streamer -i &#8220;./input_uvc.so -d /dev/video0
-r 0 -f 12&#8221; -o &#8220;./output_file.so -f /home/pi/tmp/&#8221; &
sudo nohup ./mjpg_streamer -i &#8220;./input_file.so -f /home/pi/tmp/&#8221; -o &#8220;./output_http.so -p 8090 -w ./www&#8221; &
pi@raspberrypi ~ $ cat 3_stop-mjpeg_streamer.sh
sudo killall mjpg_streamer
pi@raspberrypi ~ $
第一个脚本是后台开启视频监控,只能进行监控,不做记录;
第二个脚本是后台开启视频采集并进行实时监控,在做记录的同时可以开浏览器进行监控。记录的文件存放在 /home/pi/tmp/ 中
第三个是干掉楼上两个关闭已开启的视频监控和采集
脚本意义请自行理解并修改,这里不再多述。
七、遥控器准备:
一般的无线设备都可以作为遥控器,带有无线网卡的笔记本,安卓手机或平板,ios设备,只要有SSH客户端和支持stream的浏览器即可。
浏览器推荐:
实测PC的Firefox、Chrome可用,IE10不可用;ipad的Safari可用。因为我手机不清楚浏览器核心是什么就不提了。
移动设备ssh客户端推荐:
安卓系统如果有终端模拟器则可以直接用ssh,没有的话可以安装一款名叫connectbot的应用()
ipad可以安装一款名叫vSSH Lite的应用(),本人没有iphone和WP,这里就不乱推荐了。
无线监控:
重启过的树莓派应该已经可以进行无线接入了(不能的话就请自行排错吧,这个只能靠经验累积了)
使用无线设备接入树莓派,并确认接入成功。
使用SSH客户端打开地址:pi@10.5.5.1
进入到放置三个脚本的目录:
执行./1_start-mjpeg_streamer.sh (这里说一个小技巧,输入./1之后直接按下tap键&如果有的话&,bash会自动补全,这也是为什么3个脚本都是用数字开头的原因)
进程运行起来了。
再打开浏览器,输入地址:
再点击Stream进入监控页
如果想片平查看可以点上面那个here链接
点击查看大图
近乎大功告成
录制+监控:
回到ssh,执行./3_stop-mjpeg_streamer.sh把刚才那个仅监控不录制的进程干掉
之后执行./2_start-record.sh,执行之后树莓派就开始录制了,同时可以继续进入http://10.5.5.1:8090进行监控,堪比一台小型录像机。
录制的文件保存在/home/pi/tmp下,是一堆图片文件,需要进一步转换才能编程视频,请自行解决。
注:在不干掉录制进程的情况下,mjpeg_streamer会一直写文件,请人工保证别把分区写爆了。有一定基础的话可以再搞一个分区专门做存储。
无限递归递归递归递归递归递归递归递归
现在,拔掉电源,拔掉网线,把移动电源准备好,树莓派往你喜欢的地方随便一扔吧。
请不要用於非法用途。
已知缺陷:
1、连接到树莓派之后会因为占用wifi资源,无线设备将无法上网。笔记本可以在接入有线网络的情况下调整路由规避,但平板和手机就没办法了。
2、有些情况下摄像头或无线网卡会因为耗电过大,导致树莓派主板供电不足,系统或网卡重启,导致IP丢失。大家按心情自行解决吧
3、整套东西都只关心图像,对声音完全没有获取,很是遗憾。
4、因为没有使用usb hub,所以一个接口接了无线网卡,一个接口接了摄像头,没有空余的接口再连接U盘或者其他存储设备了,所以请准备好足够的SD卡空间。不过720p 12fps,每秒的大小不足1M,io不是问题。
5、操作方面现在只能靠ssh进行操作。其实mjpeg_streamer已经提供了web模板,只要稍微改改模板就可以完全依靠浏览器进行控制了。未来神马的就交给你拯救了。
其实不写网卡编译教程的原因很简单,一家网卡一个方法,写的不好反而会误导人,干脆不写。编译东西,大家应该首先看每个包的README。被奶大的孩子永远长不大。
另外近期发现树莓派的内核从3.6+更新到3.10+了,导致一大堆驱动都不能用了,包括个人编译的和内核自带的,话说系统自带的驱动在内核升级之后就不能用是个什么鬼逻辑啊,难道不知道先祖产品都是怎么死的了么?
另外我并没有打算把这个提交到git或者svn的想法。
这个实在太小了,编程的精华在于思路,而不是代码。能理解我要做的是什么,哪里做得好,哪里更待优化,才是正道。单纯的在那抄写代码,农民都不如。
这个东西的扩展性很高,如果有实力和条件的话就可以继续加做遥控车甚至是机器人,相比之下一个小小的视频录制功能只够塞牙缝的。
资源下载(百度盘):
(Checked out revision 182.)
(这是从git上抠下来的,在windows上测试没问题,但是在pi上解压就报错,估计他们打包的时候脑残的把权限也打进去了)
最后(有完没完啊),如果文中有什么写的不够详细或者错误之类的地方,请在评论下留言。
欢迎转载,转载请注明出处:
文档更新日志:
2013 年 11 月 13 日上午 1:36:文档新建
2013 年 11 月 13 日下午 12:18:附件上传
2013 年 12 月 04 日上午 1:34:更新文档目录结构,修改部分措辞。不影响文章理解。
Powered by

我要回帖

更多关于 树莓派3b 的文章

 

随机推荐