目标检测之数据处理

 一 检查环境

自己的电脑要安装该版本的torch(实际上该版本并不适合我的电脑)

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch 

1. 查看 CUDA 和 cuDNN 版本

import torch
print(torch.version)
​
print(torch.version.cuda)
print(torch.backends.cudnn.version())

不可以直接使用import ,是因为import只能在python的环境下才能使用,要在终端键入 python 才可以使用import命令。

试试就逝世

import : 无法将“import”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路   
径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ import torch
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (import:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
​

2. 查看已安装的torch的版本

在cmd中激活虚拟环境

输入python

输入以下命令

import torch
torch.__version__//查看torch的版本
torch.cuda.is_avaiable()//查看gpu是够可用不是所有版本的torch都可以用此命令来查看
 print(torch.cuda.device_count())//查看GPU的数量,同上

该步骤其实就是要检查自己的电脑显卡的配置时候可以使用相应的torch,大家在安装torch时,一定要注意是不是和自己的显卡相匹配,因为每个人的电脑配置不同,不能照搬别人的命令,我就是在这里踩了好几次雷,这个环境配置好,之后训练会很轻松的)。

二 数据处理

使用的是yolo(txt)的数据集,在这一部分需要划分训练集和测试集,其实如果训练的数据很少的话,直接手到划分就得了,就是将相应的图片和标签直接复制到训练集的的目录以及测试集的目录,但是也可以采用相应的脚本来直接进行划分,这里我参照别人的博客来做的。

1处理图片的格式

将yolo(txt)的格式转换成xml格式,以便之后再来划分训练集和测试集。

①.报错:

ERROR: Could not find a version that satisfies the requirement cv2 

问题:无法安装cv2

解决:先安装以下两个依赖包

pip install opencv-python
pip install Pillow

②.报错:

Traceback (most recent call last):
  File "E:/2020/machine_learn/face_detect/main.py", line 121, in 
    makexml(picPath, txtPath, xmlPath)
  File "E:/2020/machine_learn/face_detect/main.py", line 62, in makexml
    namecontent = xmlBuilder.createTextNode(dic[oneline[0]])
KeyError: 'None'             不知道如何解决
...

解决:直接将出现问题的图片和所对应的标签删掉即可。

之后便有了xml格式的数据。

2.划分训练集以及测试集

将得到的xml文件转换成yolo(txt)的文件格式。

其中以上步骤是参照这位博主炮哥带你学的博客_CSDN博客-目标检测--手把手教你搭建自己的YOLOv5目标检测平台,目标追踪领域博主

然而并不太明白其中的原理,问就是看不懂源码。

接下来就是训练的过程,这次训练有使用到gpu了,是当初cudakit的版本的问题,要到11.3(这只是我那天初步的结论,但我忽略到一个很大的问题,看下图来找茬)

Epoch   gpu_mem       box       obj       cls    labels  img_size
      0/49     1.59G       nan       nan       nan         8       416:  27%|██▋       | 114/429 [00:50<01:29,  3.51it/s]
      0/49     1.59G       nan       nan       nan         6       320:  27%|██▋       | 115/429 [00:50<01:27,  3.57it/s]
      0/49     1.59G       nan       nan       nan        14       352:  27%|██▋       | 116/429 [00:50<01:21,  3.82it/s]
      0/49     1.59G       nan       nan       nan         8       608:  41%|████▏     | 178/429 [01:17<01:59,  2.10it/s]
      0/49     1.59G       nan       nan       nan         6       576:  78%|███████▊  | 336/429 [02:22<00:36,  2.57it/s]
​

就是 box 和obj 以及cls的值为nan。预知后事如何请听下回分解。

番外

python小课堂开课了,小朋友们快坐好。

1.更新pip的命令

python.exe -m pip install --upgrade pip 

2.卸载相应包

  pip uninstall package_name         # 卸载包

小提示:与pip相关的命令不能再python的环境下使用,若当前是处于python的环境,需要在终端用quit()命令退出python的环境。

试试就逝世

pip list
  File "", line 1
    pip list
        ^
SyntaxError: invalid syntax

今日报错

InvalidArchiveError('Error with archive E:\graduation\Miniconda\miniconda\pkgs\vs2015_runtime-14.27.29016-h5e58377_2rwhzl2sp\pkg-vs2015_runtime-14.27.29016-h5e58377_2.tar.zst. You probably need to delete and re-download or re-create this file. Message from libarchive was:\n\nCould not unlink')

E:/graduation/Miniconda/miniconda/pkgs/vs2015_runtime-14.27.29016-h5e58377_2rwhzl2sp/pkg-vs2015_runtime-14.27.29016-h5e58377_2.tar.zst.

解决方法:直接删除指定目录下面的文件即可。

你可能感兴趣的:(目标检测小实践,深度学习,回归,神经网络,目标检测,计算机视觉)