问题:想看yolo的detect.py在哪里输出概率
解决方案:找到CSDN文章YOLOv5 v5.0 输出每个边界框所预测物体的对象概率(probability)和分类置信度(confidence)文章链接
-
还没看文章内容,
-
通过查看yolov5 detect.py文件调试输出预测的置信度时候发现了一个变量:
tensor([[ 4.40344, 3.12254, 639.46259, 482.80286, 0.73714, 0.00000]])
-
又打印出pred变量的type发现是
<class 'list'>
。什么是Class list
?还需要进一步明确,需要询问GPT。 -
姑且先认定为list,之后又打印出
pred[0]
变量的type发现是<class 'torch.Tensor'>
,并且打印出变量内容得知pred content: tensor([], size=(0, 6))
-
所以tensor的size是什么意思?
-
搜索资料得知:
以x = torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8]])
为例,
print(x[0, 1, 1])
的结果为tensor(6)
。- 第一个
0
代表维度,因为x
只有一个维度,所以只能是0
。 - 第一个
1
代表[5, 6, 7, 8]
的索引。 - 后一个
1
代表[5, 6, 7, 8]
中6
的索引。
- 第一个
-
之后
tensor([[ 4.40344, 3.12254, 639.46259, 482.80286, 0.73714, 0.00000]])
是通过a = pred[0][0,4]
输出其中0.73714
的概率数值。
问题:cannot import name 'OrderedDict' from 'typing' (D:\Python3.7.0\lib\typing.py)
解决方案:将报错地方的maxvit
文件中的from typing import Any, Callable, List, Optional, Sequence, Tuple, OrderedDict
改掉。先使用pip3 install typing_extensions
模块安装,然后添加from typing_extensions import OrderedDict
。
问题:AttributeError: Can‘t get attribute ‘DetectionModel‘ on <module ‘models.yolo‘
报错原因:YOLOv5新旧版本不兼容,models
下的yolo.py
文件缺少DetectionModel
模块代码。
解决步骤:找到models
文件夹下的yolo.py
,查找DetectionModel
模块,将其代码(Segment
部分、BaseModel
部分、DetectionModel
部分)粘贴至报错的yolo.py
文件中。粘贴完后,运行yolo.py
文件。
问题:不知道Jetson orin nano GPIO的引脚分布图,找到了网上Jetson nano的GPIO图发现9和25是GND,但是用通断档测没有声音。
解决方案:直接插上,使用pip3 install Jetson.GPIO
安装,运行相应的Python代码,发现有声音输出,但声音不大。更换成亮灯可以解决。所以Jetson orin nano和Jetson nano使用的是相同的GPIO分布。
ROS Docker问题汇总
问题:虚拟机无法连接到网络
解决步骤:
- 先关闭虚拟机。
- 在虚拟网络编辑器中重置网络设置。
- 在虚拟机设置中选择桥接模式,不要复制物理网络状态。
问题:Ubuntu中的simulator和Windows中的UE4无法连接
解决步骤:
- 确保两者的IP地址都是分配给物理机的外部路由IP地址。
- 确保虚拟机能够连接到外网。使用
ifconfig
命令查看,确保不只有一个回环地址,还有一个外部路由分配的IP地址。只有这样才能保证两者连接成功。
问题:Ubuntu中的Base控制的程序和simulator无法连接
解决步骤:
- 确保在
.bashrc
文件中,ROS_MASTER_URL等变量设置为本机的回环地址。 - 在报错的
yolo.py
文件中确认ROS_MASTER_URL等变量是否设置为本机的回环地址。 - 在终端中重新运行
catkin build
命令编译simulator
。
问题:ifconfig命令无法找到docker0(即Docker的虚拟网卡docker0)的IP地址,导致Docker无法使用网络
解决步骤:
-
检查默认的Docker bridge配置,建议改成默认的
172.17.0.1/16
。 -
临时解决方法:手动添加一个IP配置。
-
运行以下命令:
sudo ip addr add 172.17.0.1/16 dev docker0
-
再运行
ip addr
命令,就能看到IP信息了。
-
-
彻底解决方法:
-
检查网络服务,确认使用的是
NetworkManager
。 -
使用
nmcli
工具查看接口信息,确保有接口并且已建立连接。 -
如果缺少连接信息,手动创建一条连接:
sudo nmcli connection add type bridge ifname docker0 con-name docker0 ip4 172.17.0.
-
1/16 autoconnect true
```
- 运行
ip addr
命令,就能看到IP信息了。
反向查找Windows中UE4场景所占用的端口
-
打开命令提示符(cmd)并执行命令
netstat -ano
。 -
如果内容太多,在任务管理器中找到UE4的PID,例如36208或31208。
-
使用精确查找命令:
-
执行命令
netstat -ano|findstr "31208"
,如果没有结果,执行命令netstat -ano|findstr "36208"
。 -
可能会得到如下结果:
TCP 0.0.0.0:31245 0.0.0.0:0 LISTENING 36208 TCP 192.168.8.106:41451 0.0.0.0:0 LISTENING 36208 TCP 192.168.8.106:41451 192.168.8.107:42994 ESTABLISHED 36208 TCP 192.168.8.106:41451 192.168.8.107:43008 ESTABLISHED 36208 TCP 192.168.8.106:41451 192.168.8.107:43018 ESTABLISHED 36208
-
-
查看
simulator
的roswrapper
是如何发布该端口的。在simulator.sh
中找到以下代码:export ROS_IP=172.17.0.1 export ROS_MASTER_URI=http://localhost:11311
推测Docker的IP应该是…
-
新问题:现在Docker桥接了虚拟机能上网了,安装了
ping
指令后发现可以ping通主机的172.17.0.1
,但无法连接到主机的master上。 -
解决:先确定master的IP是什么?
-
解答:使用指令
netstat -anp
查看应用占用的IP。找到了simulator
的发布信息tcp 192.168.8.107:34076 192.168.8.106:41451 ESTABLISHED 47741/airsim_node
。
问题:什么是ROS_IP?什么是ROS_MASTER_URI?
-
ROS_MASTER_URI
是指启动roscore
的地址,即master地址。 -
ROS_IP
是本地IP地址,类似于身份证。 -
当需要在远程服务器和本地机器之间进行ROS通信,或者在不同平台之间进行ROS通信时,需要告知哪台机器是控制者,哪台机器是被控制者。
-
例如,当电脑A使用ROS操作系统控制机器人(B、C、D)时,
ROS_MASTER_URI
是主机的IP地址,即电脑A的IP地址,而不是机器人B、机器人C或机器人D的IP地址。 -
设置主机的环境变量:
export ROS_MASTER_URI=http://10.192.150.34:11311 export ROS_IP=10.193.28.102
-
设置从机的环境变量:
export ROS_MASTER_URI=http://10.192.150.34:11311 export ROS_IP=10.193.28.103
-
正确设置主机和从机的IP地址后,ROS才能保证彼此之间的正常通信。
问题:测试两个Docker容器之间是否能够ping通,提示bash: ping: command not found
解决步骤:
-
bash: ping: command not found
的主要原因是当前环境中的CentOS基础镜像只包含了简单的操作系统,相当于裸机状态,如果想使用其他命令,需要手动安装。 -
执行以下命令:
apt-get update apt install iputils-ping apt install net-tools
ROS常用命令:
- 查看网卡接口:
/interface print
- 给网口添加IP地址:
/ip address add address=192.168.1.254/24 interface=ether1
- 移除接口IP地址:
/ip address remove 0
- 重启系统:
/system reboot
- 关闭系统:
/system shutdown
- 恢复原始状态:
/system reset
- 查看IP配置:
/ip export
或/ip address print
- 查看授权:
/system license print