我在Ubuntu下配置深度环境的过程可参考:
本篇文章主要参考:
这里主要是记录Ubuntu下简单使用yolov5测试的过程,我是使用realsense d435i摄像头的RGB图像。
但是realsense有他自己打开摄像头的库,所以后续必然是要做一些更改的。(深度相机如果直接用opencv打开,要注意它的id)
下载文件到~/my_yolo5
文件夹下,然后安装相关依赖
<span class="token function">git</span> clone https://github.com/ultralytics/yolov5.git my_yolo5 <span class="token builtin class-name">cd</span> my_yolov5 pip <span class="token function">install</span> -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple<span class="token function">git</span> clone https://github.com/ultralytics/yolov5.git my_yolo5 <span class="token builtin class-name">cd</span> my_yolov5 pip <span class="token function">install</span> -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simplegit clone https://github.com/ultralytics/yolov5.git my_yolo5 cd my_yolov5 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
运行需要在PyTorch环境,所以需要打开anaconda之前创建的pytorch环境
open_anaconda torchopen_anaconda torchopen_anaconda torch
效果如下:
guyue@guyue<span class="token operator">:</span><span class="token operator">~</span><span class="token operator">/</span>my_yolov5$ <span class="token function">open_anaconda</span> <span class="token punctuation">(</span>base<span class="token punctuation">)</span> guyue@guyue<span class="token operator">:</span><span class="token operator">~</span><span class="token operator">/</span>my_yolov5$ <span class="token function">torch</span> <span class="token punctuation">(</span>mytorch<span class="token punctuation">)</span> guyue@guyue<span class="token operator">:</span><span class="token operator">~</span><span class="token operator">/</span>my_yolov5$guyue@guyue<span class="token operator">:</span><span class="token operator">~</span><span class="token operator">/</span>my_yolov5$ <span class="token function">open_anaconda</span> <span class="token punctuation">(</span>base<span class="token punctuation">)</span> guyue@guyue<span class="token operator">:</span><span class="token operator">~</span><span class="token operator">/</span>my_yolov5$ <span class="token function">torch</span> <span class="token punctuation">(</span>mytorch<span class="token punctuation">)</span> guyue@guyue<span class="token operator">:</span><span class="token operator">~</span><span class="token operator">/</span>my_yolov5$guyue@guyue:~/my_yolov5$ open_anaconda (base) guyue@guyue:~/my_yolov5$ torch (mytorch) guyue@guyue:~/my_yolov5$
注意是在my_yolov5
文件夹下
--source
:是选择测试例的来源$ python detect.py --source <span class="token number">0</span> img.jpg vid.mp4 path/ path/*.jpg <span class="token string">'https://youtu.be/Zgi9g1ksQHc'</span> <span class="token string">'rtsp://example.com/media.mp4'</span>$ python detect.py --source <span class="token number">0</span> img.jpg vid.mp4 path/ path/*.jpg <span class="token string">'https://youtu.be/Zgi9g1ksQHc'</span> <span class="token string">'rtsp://example.com/media.mp4'</span>
$ python detect.py --source 0 img.jpg vid.mp4 path/ path/*.jpg 'https://youtu.be/Zgi9g1ksQHc' 'rtsp://example.com/media.mp4'
--weights
:是选择模型,如果weights
文件夹里有权重则直接使用,没有就下载
PyTorch框架的权重文件后缀为.pt
python3 detect.py --source ./data/images/ --weights weights/yolov5s.ptpython3 detect.py --source ./data/images/ --weights weights/yolov5s.pt
python3 detect.py --source ./data/images/ --weights weights/yolov5s.pt
2.1 测试图片
python3 detect.py --source ./data/images/ --weights weights/yolov5s.ptpython3 detect.py --source ./data/images/ --weights weights/yolov5s.ptpython3 detect.py --source ./data/images/ --weights weights/yolov5s.pt
效果:
guyue@guyue:~/my_yolov5$ open_anaconda <span class="token punctuation">(</span>base<span class="token punctuation">)</span> guyue@guyue:~/my_yolov5$ torch <span class="token punctuation">(</span>mytorch<span class="token punctuation">)</span> guyue@guyue:~/my_yolov5$ python3 detect.py --source ./data/images/ --weights weights/yolov5s.pt Downloading https://ultralytics.com/assets/Arial.ttf to /home/guyue/.config/Ultralytics/Arial.ttf<span class="token punctuation">..</span>. detect: <span class="token assign-left variable">weights</span><span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'weights/yolov5s.pt'</span><span class="token punctuation">]</span>, <span class="token assign-left variable">source</span><span class="token operator">=</span>./data/images/, <span class="token assign-left variable">imgsz</span><span class="token operator">=</span><span class="token punctuation">[</span><span class="token number">640</span>, <span class="token number">640</span><span class="token punctuation">]</span>, <span class="token assign-left variable">conf_thres</span><span class="token operator">=</span><span class="token number">0.25</span>, <span class="token assign-left variable">iou_thres</span><span class="token operator">=</span><span class="token number">0.45</span>, <span class="token assign-left variable">max_det</span><span class="token operator">=</span><span class="token number">1000</span>, <span class="token assign-left variable">device</span><span class="token operator">=</span>, <span class="token assign-left variable">view_img</span><span class="token operator">=</span>False, <span class="token assign-left variable">save_txt</span><span class="token operator">=</span>False, <span class="token assign-left variable">save_conf</span><span class="token operator">=</span>False, <span class="token assign-left variable">save_crop</span><span class="token operator">=</span>False, <span class="token assign-left variable">nosave</span><span class="token operator">=</span>False, <span class="token assign-left variable">classes</span><span class="token operator">=</span>None, <span class="token assign-left variable">agnostic_nms</span><span class="token operator">=</span>False, <span class="token assign-left variable">augment</span><span class="token operator">=</span>False, <span class="token assign-left variable">visualize</span><span class="token operator">=</span>False, <span class="token assign-left variable">update</span><span class="token operator">=</span>False, <span class="token assign-left variable">project</span><span class="token operator">=</span>runs/detect, <span class="token assign-left variable">name</span><span class="token operator">=</span>exp, <span class="token assign-left variable">exist_ok</span><span class="token operator">=</span>False, <span class="token assign-left variable">line_thickness</span><span class="token operator">=</span><span class="token number">3</span>, <span class="token assign-left variable">hide_labels</span><span class="token operator">=</span>False, <span class="token assign-left variable">hide_conf</span><span class="token operator">=</span>False, <span class="token assign-left variable">half</span><span class="token operator">=</span>False, <span class="token assign-left variable">dnn</span><span class="token operator">=</span>False YOLOv5 🚀 v6.0-124-g1075488 torch <span class="token number">1.10</span>.0 CUDA:0 <span class="token punctuation">(</span>NVIDIA GeForce GTX <span class="token number">1650</span>, 3908MiB<span class="token punctuation">)</span> Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt to weights/yolov5s.pt<span class="token punctuation">..</span>. <span class="token number">100</span>%<span class="token operator">|</span>██████████████████████████████████████<span class="token operator">|</span> <span class="token number">14</span>.0M/14.0M <span class="token punctuation">[</span>00:0<span class="token operator"><span class="token file-descriptor important">5</span><</span>00:00, <span class="token number">2</span>.88MB/s<span class="token punctuation">]</span> Fusing layers<span class="token punctuation">..</span>. Model Summary: <span class="token number">213</span> layers, <span class="token number">7225885</span> parameters, <span class="token number">0</span> gradients image <span class="token number">1</span>/2 /home/guyue/my_yolov5/data/images/bus.jpg: 640x480 <span class="token number">4</span> persons, <span class="token number">1</span> bus, Done. <span class="token punctuation">(</span><span class="token number">0</span>.014s<span class="token punctuation">)</span> image <span class="token number">2</span>/2 /home/guyue/my_yolov5/data/images/zidane.jpg: 384x640 <span class="token number">2</span> persons, <span class="token number">1</span> tie, Done. <span class="token punctuation">(</span><span class="token number">0</span>.013s<span class="token punctuation">)</span> Speed: <span class="token number">0</span>.3ms pre-process, <span class="token number">13</span>.4ms inference, <span class="token number">4</span>.4ms NMS per image at shape <span class="token punctuation">(</span><span class="token number">1</span>, <span class="token number">3</span>, <span class="token number">640</span>, <span class="token number">640</span><span class="token punctuation">)</span> Results saved to runs/detect/expguyue@guyue:~/my_yolov5$ open_anaconda <span class="token punctuation">(</span>base<span class="token punctuation">)</span> guyue@guyue:~/my_yolov5$ torch <span class="token punctuation">(</span>mytorch<span class="token punctuation">)</span> guyue@guyue:~/my_yolov5$ python3 detect.py --source ./data/images/ --weights weights/yolov5s.pt Downloading https://ultralytics.com/assets/Arial.ttf to /home/guyue/.config/Ultralytics/Arial.ttf<span class="token punctuation">..</span>. detect: <span class="token assign-left variable">weights</span><span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'weights/yolov5s.pt'</span><span class="token punctuation">]</span>, <span class="token assign-left variable">source</span><span class="token operator">=</span>./data/images/, <span class="token assign-left variable">imgsz</span><span class="token operator">=</span><span class="token punctuation">[</span><span class="token number">640</span>, <span class="token number">640</span><span class="token punctuation">]</span>, <span class="token assign-left variable">conf_thres</span><span class="token operator">=</span><span class="token number">0.25</span>, <span class="token assign-left variable">iou_thres</span><span class="token operator">=</span><span class="token number">0.45</span>, <span class="token assign-left variable">max_det</span><span class="token operator">=</span><span class="token number">1000</span>, <span class="token assign-left variable">device</span><span class="token operator">=</span>, <span class="token assign-left variable">view_img</span><span class="token operator">=</span>False, <span class="token assign-left variable">save_txt</span><span class="token operator">=</span>False, <span class="token assign-left variable">save_conf</span><span class="token operator">=</span>False, <span class="token assign-left variable">save_crop</span><span class="token operator">=</span>False, <span class="token assign-left variable">nosave</span><span class="token operator">=</span>False, <span class="token assign-left variable">classes</span><span class="token operator">=</span>None, <span class="token assign-left variable">agnostic_nms</span><span class="token operator">=</span>False, <span class="token assign-left variable">augment</span><span class="token operator">=</span>False, <span class="token assign-left variable">visualize</span><span class="token operator">=</span>False, <span class="token assign-left variable">update</span><span class="token operator">=</span>False, <span class="token assign-left variable">project</span><span class="token operator">=</span>runs/detect, <span class="token assign-left variable">name</span><span class="token operator">=</span>exp, <span class="token assign-left variable">exist_ok</span><span class="token operator">=</span>False, <span class="token assign-left variable">line_thickness</span><span class="token operator">=</span><span class="token number">3</span>, <span class="token assign-left variable">hide_labels</span><span class="token operator">=</span>False, <span class="token assign-left variable">hide_conf</span><span class="token operator">=</span>False, <span class="token assign-left variable">half</span><span class="token operator">=</span>False, <span class="token assign-left variable">dnn</span><span class="token operator">=</span>False YOLOv5 🚀 v6.0-124-g1075488 torch <span class="token number">1.10</span>.0 CUDA:0 <span class="token punctuation">(</span>NVIDIA GeForce GTX <span class="token number">1650</span>, 3908MiB<span class="token punctuation">)</span> Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt to weights/yolov5s.pt<span class="token punctuation">..</span>. <span class="token number">100</span>%<span class="token operator">|</span>██████████████████████████████████████<span class="token operator">|</span> <span class="token number">14</span>.0M/14.0M <span class="token punctuation">[</span>00:0<span class="token operator"><span class="token file-descriptor important">5</span><</span>00:00, <span class="token number">2</span>.88MB/s<span class="token punctuation">]</span> Fusing layers<span class="token punctuation">..</span>. Model Summary: <span class="token number">213</span> layers, <span class="token number">7225885</span> parameters, <span class="token number">0</span> gradients image <span class="token number">1</span>/2 /home/guyue/my_yolov5/data/images/bus.jpg: 640x480 <span class="token number">4</span> persons, <span class="token number">1</span> bus, Done. <span class="token punctuation">(</span><span class="token number">0</span>.014s<span class="token punctuation">)</span> image <span class="token number">2</span>/2 /home/guyue/my_yolov5/data/images/zidane.jpg: 384x640 <span class="token number">2</span> persons, <span class="token number">1</span> tie, Done. <span class="token punctuation">(</span><span class="token number">0</span>.013s<span class="token punctuation">)</span> Speed: <span class="token number">0</span>.3ms pre-process, <span class="token number">13</span>.4ms inference, <span class="token number">4</span>.4ms NMS per image at shape <span class="token punctuation">(</span><span class="token number">1</span>, <span class="token number">3</span>, <span class="token number">640</span>, <span class="token number">640</span><span class="token punctuation">)</span> Results saved to runs/detect/expguyue@guyue:~/my_yolov5$ open_anaconda (base) guyue@guyue:~/my_yolov5$ torch (mytorch) guyue@guyue:~/my_yolov5$ python3 detect.py --source ./data/images/ --weights weights/yolov5s.pt Downloading https://ultralytics.com/assets/Arial.ttf to /home/guyue/.config/Ultralytics/Arial.ttf... detect: weights=['weights/yolov5s.pt'], source=./data/images/, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False YOLOv5 🚀 v6.0-124-g1075488 torch 1.10.0 CUDA:0 (NVIDIA GeForce GTX 1650, 3908MiB) Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt to weights/yolov5s.pt... 100%|██████████████████████████████████████| 14.0M/14.0M [00:05<00:00, 2.88MB/s] Fusing layers... Model Summary: 213 layers, 7225885 parameters, 0 gradients image 1/2 /home/guyue/my_yolov5/data/images/bus.jpg: 640x480 4 persons, 1 bus, Done. (0.014s) image 2/2 /home/guyue/my_yolov5/data/images/zidane.jpg: 384x640 2 persons, 1 tie, Done. (0.013s) Speed: 0.3ms pre-process, 13.4ms inference, 4.4ms NMS per image at shape (1, 3, 640, 640) Results saved to runs/detect/exp
2.2 测试RealSense摄像头实时图像
-
首先查看USB占用情况
guyue@guyue:~$ lsusb Bus 002 Device 002: ID <span class="token number">8086</span>:0b3a Intel Corp. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation <span class="token number">3.0</span> root hub Bus 001 Device 002: ID <span class="token number">2717</span>:5010 Bus 001 Device 005: ID 0b05:1939 ASUSTek Computer, Inc. Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation <span class="token number">2.0</span> root hubguyue@guyue:~$ lsusb Bus 002 Device 002: ID <span class="token number">8086</span>:0b3a Intel Corp. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation <span class="token number">3.0</span> root hub Bus 001 Device 002: ID <span class="token number">2717</span>:5010 Bus 001 Device 005: ID 0b05:1939 ASUSTek Computer, Inc. Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation <span class="token number">2.0</span> root hub
guyue@guyue:~$ lsusb Bus 002 Device 002: ID 8086:0b3a Intel Corp. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 2717:5010 Bus 001 Device 005: ID 0b05:1939 ASUSTek Computer, Inc. Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
-
红外画面测试及效果
<span class="token punctuation">(</span>mytorch<span class="token punctuation">)</span> guyue@guyue:~/my_yolov5$ python3 detect.py --source <span class="token number">2</span> --weights weights/yolov5m.pt<span class="token punctuation">(</span>mytorch<span class="token punctuation">)</span> guyue@guyue:~/my_yolov5$ python3 detect.py --source <span class="token number">2</span> --weights weights/yolov5m.pt
(mytorch) guyue@guyue:~/my_yolov5$ python3 detect.py --source 2 --weights weights/yolov5m.pt
-
RGB画面测试及效果
python3 detect.py --source <span class="token number">4</span> --weights weights/yolov5m.ptpython3 detect.py --source <span class="token number">4</span> --weights weights/yolov5m.pt
python3 detect.py --source 4 --weights weights/yolov5m.pt
-
注意事项:
对于深度相机,不能像普通的usb相机一样,opencv打开id直接为0。
对于我的id为2时打开的是红外的画面,id为4打开的是RBG画面。
我记得有个博文说过深度相机opencv打开时id的问题,但现在找不到了,找到了再补上吧。
原文链接:https://blog.csdn.net/gyxx1998/article/details/121772847
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END