一、ubuntu20.04调用外接摄像头(如果是Ubuntu18.04用melodic放在第二行)
1.检查是否连接摄像头
ls /dev/video*
输出/dev/video0 /dev/video1 /dev/video2 /dev/video3 ...表示可以
2.命令行下载软件调用USB摄像头
2.1使用应用程序camorama
输入命令:
sudo apt-get install camorama
安装完成后,在终端中输入命令:
camorama
即可显示出视频信息;
(如果指定打开video2,输入命令:camorama -d /dev/video2)
2.2 使用应用程序茄子(cheese)
输入命令:
sudo apt-get install cheese
(如果指定打开video1,输入命令:cheese -d /dev/video1)
装好后,用命令:
cheese
cheese的页面如下:
3.在yolov5上调用外接摄像头
通过第二步一直调试调用video0-3,你应该知道哪个video是外接摄像头了
那只需在调用yolov5的detect.py时给定--source='2'这个参数。其中要注意的是这个'2'是一个字符串,且这个2代表的就是外接摄像头的序号。
最终调用yolov5的检测函数的命令行应该是这样的:
python detect.py --weights runs/train/exp/weights/best.pt --save-txt --source='2'
其中的--weights和--save-txt不必与文中相同
ros-noetic-usb-cam的安装流程
ros-noetic-usb-cam的安装包括两种,第一种是使用Ubuntu的apt-get安装:
(如果是Ubuntu18.04用melodic放在第二行)
sudo apt-get install ros-noetic-usb-cam
sudo apt-get install ros-melodic-usb-cam
其中,"ros-noetic-usb-cam"中的"noetic"与用户当前的Ubuntu20.04版本相匹配
ros-noetic-usb-cam的接口调试方法
考虑ros-noetic-usb-cam默认调用的摄像机接口为/dev/video0,与RealSense的接口编号不一致,若直接运行ros-noetic-usb-cam,将无法启动RealSense的摄像机。接口的修改方法可参考(https://blog.csdn.net/benchuspx/article/details/108765979):
第一步,进入ros-noetic-usb-cam的源代码位置:
roscd usb_cam
第二步,打开文件
vim launch/usb_cam-test.launch
第三步,调整接口参数
其中,接口号为video2,若运行,则调用RealSense的黑白相机。也可以调整为其它,若运行,则调用RGB相机。
ros-noetic-usb-cam的运行方法
打开终端,运行命令如下,
roslaunch usb_cam usb_cam-test.launch
2 使用Python和OpenCV调用相机
OpenCV是常用的计算机视觉库和机器学习库,本工作使用OpenCV打开和处理RealSense的相机数据,编程语言选择Python 启动相机的代码如下,
import cv2
import numpy
cap = cv2.VideoCapture(4) #调整参数实现读取视频或调用摄像头
while cap.isOpened():
ret, frame = cap.read()
cv2.imshow("cap", frame)
if cv2.waitKey(1) & 0xff == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
3 在ROS下使用RVIZ调用Realsense相机
在ROS下启动RealSense
工作中准备两个终端,分别执行ROS的RealSense和RVIZ。
其中,第一个终端运行RealSense 命令如下:
roslaunch realsense2_camera rs_camera.launch
第二个终端运行RVIZ命令如下:
rviz
接着在RVIZ界面中,增加RGB相机和深度相机
参考文章:https://blog.csdn.net/qq_32454557/article/details/112692201
参考文章:https://blog.csdn.net/weixin_48250354/article/details/109309042