我是李慢慢。

继续来填坑。

这个清明节因为疫情关在家里不得出去,只好把自己的树莓派小车继续搬出来,继续来攻克难关:图像识别。不过这几天还没有进入图像识别流程,纯粹在硬件(摄像头)接入系统(树莓派)上就被卡了很久,把系统搞崩了又是重装系统又是配置环境的,不记录一篇文章,实在是对不起自己。

本文记录的是如何利用树莓派系统,接入摄像头模块,以获取图像。以下详述。

目录:

1、硬件配置

2、系统配置

3、简单测试

4、opencv测试

1、硬件配置

1个树莓派板卡:4B

1个摄像头模块:USB摄像头

1个无线键鼠套装

1个5英寸的显示器

如下:

连好线之后就是下面这个样子:

这次的主角呢,就是下面这个东西(USB摄像头模块)。

2、系统配置

树莓派系统安装的是官方下载的镜像,版本如下所示。

如何判断摄像头模块是否有接入树莓派?

摄像头模块在连线前后分别在命令行输入以下内容,以判断系统是否有检测到该设备,如果有多出来的就是USB摄像头。

lsusb

如果没有检测到,需要到系统配置里去使能摄像头功能,然后重启系统。

sudo raspi-config

摄像头拍摄程序是系统里哪一个?

系统能识别到摄像头硬件的话,就可以拍个照试试看了,但用哪一个摄像头呢?同样的,需要通过插拔摄像头来看看:

ll /dev/video*

不知道为什么我这里识别到多出来的摄像头有两个,video0和video1,不管它,我用video0好了。

这里需要提一下,有时候在用后文的方法获取摄像头图像后video0会不见了,导致无法再进行拍摄,只有重启才能解决问题。所以,这里需要进行以下配置,将之固化。解决方案:使用root权限打开/etc/modules 然后添加一行:bcm2835-v4l2(注意,这里是4l2不是412),然后重启树莓派。

3、效果测试-简单测试

如何用摄像头拍摄一张照片呢?

如果是官方的CSI接口的摄像头,使用如下命令:

raspistill -o image_name.jpg

我这里用的是USB接口的摄像头,使用如下命令:

fswebcam /dev/video0 ./img1.jpg

不过用这个之前,系统可能没有这个程序,需要安装一下。

sudo apt-get install fswebcam

接下来是愉快的测试:

找到这个路径下的图片,双击打开,如下:

终于可以拍照了,这距离我做图像识别的目标又近了一大步。

如何用摄像头进行录像?

上面是通过程序驱动摄像头进行拍照并且保存了。但是实际做图像识别的时候,摄像头获得的数据应该是视频类的?或者为了回放方便,是视频格式的。在这里,怎么来获得视频的效果呢?

方法:可以安装一个程序【luvcview】

sudo apt-get install luvcview

然后,直接运行这个程序,就可以在桌面打开一个窗口,实时获取摄像头的输入了。嘿嘿,开心。

luvcview

以上内容,还只是简单的摄像头功能测试。进行到这一步,后续其实还有很多玩法,比如使用远程访问摄像头拍摄内容实现监控的效果。但我这里的目的是研究自动驾驶小车的图像识别功能,也就不折腾了。

4、opencv测试

用python获取摄像头内容:

为了做图像识别,传统的方式,还是用opencv进行图像的抓取,再进一步做识别。基于此,以下做了些简单的图像获取的测试。

首先需要给系统装上opencv和numpy的包。(其中numpy的包,系统一般自带了,剩下的就是安装下面这两个包。)

sudo apt-get install libopencv-devsudo apt-get install python-opencv

安装完后,在命令行运行python,并导入cv2,顺便查看下cv2的版本,如果出现下面的界面,就代表成功了。

​​​​​​​

pythonimport cv2cv2.__version__

注:为啥叫cv2而不叫opencv呢?这是因为OpenCV是基于C/C++开发的,有两个版本,''cv”版本的API是C语言开发的,''cv2''版本的API是基于C++语言开发的,为了保持向后兼容性所以叫"cv2",但我们都知道cv2就是OpenCV本尊。

接下来就是利用这个包进行图像的抓取测试了。

编写以下代码:​​​​​​​

#-*- coding:UTF-8 -*-import cv2
img_count = 0
cap = cv2.VideoCapture(0)print("Is the camera opened?",cap.isOpened())
# set the size of image.cap.set(cv2.CAP_PROP_FRAME_WIDTH,500)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,500)# create a window.cv2.namedWindow('image_win',flags=cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO | cv2.WINDOW_GUI_EXPANDED)
while(True):    ret,frame = cap.read()# ret is the status,frame is the image.if not ret:        print("can not take a image, exit...")break    cv2.imshow('image_win',frame)#print("frame: ",frame)    key = cv2.waitKey(1)#get the input from keyboardif key == ord('q'):        print("exit the program normally...")breakelif key == ord('c'):        cv2.imwrite("{}.png".format(img_count),frame)# save the image.        print("a png is saved as: {}.png".format(img_count))        img_count += 1cap.release()cv2.destroyAllWindows()#

上述代码保存为【cv2_get_camera_frame.py】,在命令行运行该脚本。

python cv2_get_camera_frame.py

稍等一会儿,就能打开一个窗口,播放摄像头实时拍摄的画面。如下所示:

按键盘上的快捷方式“c”,可以拍摄一些图片进行保存,如下所示:

通过代码里的设置,可以用c来拍照,用q来推出当前程序。

顺带准备了个测试的效果视频:(发布在微信公众号【车路慢慢】)

好了。以上完成了软硬件的系统集成测试,接下来就真的可以开始做图像识别的测试了。我们下期再见。

本文完。

智驾小车|如何给树莓派系统接入摄像头模块相关推荐

  1. 从干线到园区,希迪智驾率先打通物流全流程自动驾驶链路

    2021年,商用车自动驾驶市场异常火热,尤其是干线物流.园区物流.末端配送等更具商业化落地前景的细分赛道.单是2021年前两月,自动驾驶赛道的投融资事件就有20多起,大部分发生在商用车自动驾驶领域. ...

  2. 智驾系统的设计瓶颈之:电源管理和功耗分配

    作者 | Orchid 知圈 | 进"滑板底盘群"请加微yanzhi-6,备注底盘 高阶自动驾驶系统在进行架构设计时,其域控内部的架构通常涉及主控芯片MCU.计算芯片SOC.电源管 ...

  3. 全国最大规模主动式公交优先系统落地长沙,希迪智驾创新刚需应用

    文|魏启扬 来源|智能相对论(aixdlun) 喊了很久的智慧公交终于取得了突破性进展. 继4月30日开通载人运营的智慧公交315线之后,长沙市"头羊计划"数字交通车载智能终端技术 ...

  4. 树莓派系统+arduino单片机+双目摄像头 搭载小车

    前言:此教程仅仅是初试水记录. 软件准备:树莓派系统,Arduino IDE软件 硬件准备:树莓派,Arduin单片机,双目摄像头 Part 1 安装烧录 方法1,官方镜像烧录: 方法2,传统镜像烧录 ...

  5. 希迪智驾发布“V2X+智慧高速”方案,打造智慧高速

    2017年,国务院印发<"十三五"现代综合交通运输体系发展规划>,明确提出示范推广车路协同技术,应用智能车载设备,建设智能路侧设施.2018年,工信部发布<车联网 ...

  6. 智驾厂商未来的3个新增长点:机器人、自动驾驶保险、飞行汽车(eVTOL)

    前言:智能汽车/自动驾驶厂商未来的竞争会非常激烈,万一遇到瓶颈,新增长点可能在哪里呢? 目录 一.机器人 二.自动驾驶保险 三.飞行汽车(eVTOL) 附:智能汽车/自动驾驶相关的14个产品经理职位J ...

  7. 公示!首批8款产品方案入围2023年度智驾竞争力评选

    对于智能驾驶赛道来说,2023年将是至关重要的一年.芯片短缺影响正在逐步得到缓解,但车市不确定性正在加剧,同时,车企在智能化普及上的成本压力也在凸显. 高工智能汽车研究院监测显示,2023年1-2月中 ...

  8. 智驾差异化周期下的「芯」风向

    随着中国市场进入智能驾驶「差异化」竞争周期,车企对于核心算力芯片的可选项,正在变得越来越多.一方面,车企在寻求更高性价比的替代(升级)方案:另一方面,多元化的需求(舱泊一体.行泊一体.驾舱一体)给了汽 ...

  9. 估值85亿美元!智驾前装赛道又添新“巨头”,已开始量产交付

    随着智能汽车技术与供应链的发展,可以看到很多高端汽车也逐渐开始采用过去在L4上才使用的传感器,例如激光雷达.同时,多传感器融合技术也已进入规模化量产阶段,为L2+在乘用车上的大规模应用打开了一个新窗口 ...

  10. 智驾汽车MAXIEYE 招聘|SLAM、深度学习、融合、规划控制工程师等岗位(校招/实习)...

    公司介绍 上海智驾汽车科技有限公司(智驾科技 MAXIEYE),是一家智能驾驶和智慧出行领域的核心技术服务商.我们为客户及合作伙伴提供全工况.多场景.跨平台的辅助驾驶(ADAS)和自动驾驶(ADS)系 ...

最新文章

  1. ZOJ 3805--解题报告
  2. ArcGIS License Manager 更新
  3. 全球及中国数字内容产业运行现状调研与盈利前景分析报告2022年
  4. JAVA JDK环境渲染
  5. LeetCode 29. 两数相除(位运算)
  6. python七段数码管绘制秒表_Python绘制七段数码管实例代码
  7. c# 计算空格宽度像素_分享计算机视觉之图像处理Python之opencv
  8. 游戏线程池的设计0-转自
  9. 网络爬虫和Python有什么联系
  10. 前台服务java.lang.SecurityException: Permission Denial: startForeground
  11. 惠普触控板使用指南_手势操作更简便 笔记本触控板使用简介
  12. PowerShell输出IP地址
  13. 【ROM制作工具】小白如何进行ROM解包,精简,修改,授权,打包详细图文教程
  14. 【洛谷 1516】青蛙的约会
  15. c语言霍夫变换圆检测,Hough Transform(霍夫变换)检测Circle(圆)的几种方法
  16. 【批量图片识别文字命名】如何批量图片识别文字并将识别的文字重命名该图片,怎么弄?下面叫你方法
  17. 利用茉莉机器人接口开发一个简单的安卓机器人app
  18. vue3项目使用Element Plus icon库:统一导入、全局注册组件
  19. Python在网络运维中的应用与分析
  20. 转载:计算机视觉基本任务综述

热门文章

  1. 从RTS游戏看游戏开发-2
  2. 裸看美剧必备英文词汇
  3. 32bit 天堂2服务端多机负载
  4. 交通路标识别(毕业设计)
  5. 一个正经的前端学习 开源 仓库(500)
  6. 金蝶K3常用数据表(整理)
  7. 网络岗7 97用户破解图片
  8. 图片标注工具LabelImg使用教程
  9. eclipse保护眼睛色设置
  10. Android Studio 3.4.1设置背景颜色为保护色