图像识别,记录

关键词:anaconda,pytorch,yolo5,labelimg,android

1.下载安装anaconda,配置环境变量,点击anaconda prompt,输入conda --version查看是否安装成功

2.创建python3.8虚拟环境:conda create -n pytorch python=3.8 (pytorch是环境名可任意写,与框架无关)

激活虚拟环境pytorch:conda activate pytorch

后续操作都要在这个虚拟环境中操作

3.官网下载pytorch(prompt输入conda install pytorch torchvision torchaudio cpuonly -c pytorch,根据自己电脑下载合适的pytorch版本)

4.下载yoloV5(https://github.com/ultralytics/yolov5)

解压yolov5-master压缩包,用pycharm打开。点击file-settings-(project:yolov5-master)-python interpreter为pycharm配置conda环境

打开requirements.txt,打开终端输入pip install -r requirements.txt安装yolov5需要的库

5.安装labelimg

pip install labelimg

pip install pyqt5

pip install pyqt5-tools

6.新建文件夹VOCData,里面再新建文件夹images存放待打标签的图片,新建文件夹annotations存放处理好的类别标签,新建文件predefined_classes.txt存放自定义的标签名称

使用命令labelimg  D:\yoloV5\yolov5-master\VOCData\images  D:\yoloV5\yolov5-master\VOCData\predefined_classes.txt

打开labelimg(记住要在虚拟环境里打开)加载图片和标签,labelimg在view里设置勾选auto save mode,display labels,advanced mode,点击change save dir改变存放处理好的类别标签文件夹为annotations这个文件夹,修改处理后的标签格式为yolo格式,然后框选图片选择标签开始打标签

7.训练自己的数据集

在yolo文件夹下的data文件夹中新建文件flower.yaml文件,内容如下

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]

path: E:\for_test_proj\yolov5_ncnn\datasets\fire  # dataset root dir

train: images/train  # train images (relative to 'path')

val: images/val  # val images (relative to 'path')

test:  # test images (optional)

# Classes

#nc: 1  # number of classes

names: ['fire']  # class names

其中

path:数据集的根目录

train:训练集与path的相对路径

val:验证集与path的相对路径

nc:类别数量,这个数据集有2个类别,nc即为1。

names:类别名字。(注意编号前面要有空格)

下载好预训练模型https://github.com/ultralytics/yolov5/releases,这里我选择yolov5s.pt下载,将yolov5s.pt复制到yoloV5文件夹下

修改yolov5s.yaml文件,将nc后面的数字改为自己的标签数量

修改train.py文件,找到主函数,将weights权重的路径填写到对应的参数里面,然后将修改好的models模型的yolov5s.yaml文件路径填写到相应的参数里面,最后将data数据的flower.yaml文件路径填写到相对于的参数里面。这几个参数就必须要修改的参数。 还有几个需要根据自己的需求来更改的参数:首先是模型的训练轮次,这里是训练的100轮。其次是输入图片的数量和工作的核心数,这里每个人的电脑都不一样,所以这里每个人和自己的电脑的性能来。这里可以根据我的电脑的配置做参考,我的电脑是拯救者2060版本的显卡,cpu的核心数是16核。我的电脑按默认的参数输入图片数量为16,工作核心为8的话就会出现GPU显存溢出的报错。每个人的电脑配置不一样,所以可以根据自己的电脑配置来修改参数。

运行train.py就可以开始训练了

 数据训练好后,就会在主目录下产生一个run文件夹,在run/train/exp/weights目录下会产生两个权重文件,一个是最后一轮的权重文件,一个是最好的权重文件。找到yoloV5主目录下的detect.py文件,打开该文件,修改以下参数

第一行:需要将刚刚训练好的最好的权重best.pt传入到推理函数中去。然后就可以对图像视频进行推理。第二行参数修改成图片的路径。第三行,修改yaml文件路径

运行detect.py就可以进行识别测试了。

对视频进行测试,和如上的图片的测试是一样的,只不过是将图片的路径改为视频的路径而已。利用摄像头进行测试只需将路径改写为0就好了(若调用电脑摄像头报错,在utils文件夹下找到datasets.py这个py文件, 打开文件,找到第279行代码,给两个url参数加上str就可以了,如图所示,就可以完美运行电脑的摄像头了。)

测试结束以后,在run下面会生成一个detect目录,推理结果会保存在exp目录下。

8.识别时标签中文显示  (未实现,不用看这条)

修改detect.py文件

在开头添加dict_label = {"meigui":"玫瑰","juhua":"菊花"}

修改下面的内容

修改plotting.py文件

plot.py文件找到annotator类然后go to related symbol跳转到plotting.py文件

9.部署安卓app

best.pt文件转换onnx文件

修改models/common.py文件

修改detect.py文件

运行detect.py,会在best.pt同级目录生成best.onnx文件

将onnx转换为ncnn,在https://convertmodel.com/里面直接转换



部分conda指令 

(1)包管理 

安装包:conda install numscipy py pandas 

制定版本号:conda install <package_name>=x.x.x 

卸载包:conda remove <package_name> 

更新包:conda update <package_name> --all 

查找包名:conda search <keyword> 

(2)环境管理 

查询环境:conda info -envs | conda env list 

创建环境:conda create -n <name> [python=x.x | tensorflow-gpu=x.x] 

激活环境:conda activate <name> 

退出环境:conda deactivate 

删除环境:conda remove -n <name> --all


参考

https://blog.csdn.net/m0_63924821/article/details/132817626

https://blog.csdn.net/bu_fo/article/details/114668184

https://zhuanlan.zhihu.com/p/501798155

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351