这个任务拖到现在终于差不多完成了,因为电脑是Mac而且租服务器太贵了,加上自己本身有个不带显卡的服务器,所以就买了个显卡,换了主板和CPU。中间的坎坷历程就不说了,总之搞了快4天,十分痛苦。重新配置了环境,配置了pycharm的ssh远程连接,这里我会在下面写一下我是怎么搞的,如果你的电脑没有显卡或者性能不佳可以参考一下这种做法。
1、SSH远程连接的配置
环境要求
需要用到Linux环境(ubuntu或者其他Linux发行版都行),我这里以ubuntu为例;支持远程调试的IDE(我用的是pycharm),和公网环境(移动只有ipv6,电信和联通可申请ipv4公网,具体网上有教程就不展开了)
SFTP协议的开启
- openssl的安装
-
sudo apt-get install openssh-server
- 添加SFTP用户,创建 SFTP 用户组
sudo adduser alice
sudo addgroup sftp-users
# 将alice从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问
#/bin/false也可以替换为/sbin/nologin,目的是不允许该用户登录到系统中
sudo usermod -G sftp-users -s /bin/false alice
- 创建sftp服务器的管理员身份,并且加入ssh用户组(不限制他的shell操作权限)
sudo adduser admin
sudo addgroup ssh-users
# -a 表示以追加形式将 admin 加入 ssh-users
sudo usermod -a -G ssh-users admin
- 执行如下命令,编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
- 在sshd_config文件的中,添加如下内容
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
随后重启系统使配置生效
至此SFTP服务器配置完成
进入pycharm测试连接
在pycharm的欢迎界面找到ssh连接
随后填写好服务器的配置
随后本地IDE会自动检索服务器端的IDE是否安装,若未安装则会在下一步自动安装
这里需要填写项目目录,你可以通过sftp客户端将项目上传到服务器也可以远程控制,在服务器端下载,也可以在这里打开ssh终端直接git项目下来
项目准备好后就可以进入项目界面了
如果你有一点网络基础我是十分推荐这种做法的,训练在服务器上跑,本地电脑不用担心发热和功耗问题,经测试延迟很小(显示在右下角),基本无感,代码同步非常快。
2、YOLOv7训练自己的数据集
数据集的准备
这里我用的是labelimg标注软件,具体使用教程可以搜索一下
在项目文件夹内新建一个文件夹,自行命名,例如我训练的是头部数据集,命名为head_datas
在这个文件夹下添加images和labels两个文件夹,随后再分别添加train和val文件夹
train代表你要训练的图片,val代表验证集(可以从训练的图片中抽取一部分放进去),labels即是将labelimg标注后产生的txt文件放进去,train和val的txt要对应放入。
随后在项目文件夹内添加一个扩展名为yaml的文件
train: head_datas/images/train # train images
val: head_datas/images/val # val images
test: data/images/test # test images (optional)
nc: 1
names: ['head']
路径对应填入train和val,填写相对路径
nc代表标注的类别数目,names代表标注的类别名称
修改参数
1处改为你训练时想使用的权重模型,2处改为上面你自己创建的.yaml文件,同样是相对路径,3处是你希望使用显存的大小,我这里是12G的显卡,保险起见填了8
开始训练
运行train.py即可开始训练
训练好的模型会放在下图所示的文件夹中
测试自己的权重
修改detect.py
权重路径为绝对路径
修改完后运行detect.py
即可在终端中显示的路径找到