训练验证码-9、yolov8/孪生训练点选验证码

admin 2024年3月2日19:06:35评论28 views字数 2791阅读9分18秒阅读模式
训练验证码-9、yolov8/孪生训练点选验证码

大家好,我是十一姐,b站时一十一姐啦,知识星球时光漫漫

训练验证码-9、yolov8/孪生训练点选验证码
训练验证码-9、yolov8/孪生训练点选验证码
训练验证码-9、yolov8/孪生训练点选验证码
提示!本文章仅供学习交流,严禁用于非法用途,文章如有不当可联系本人删除!
目录

          一、什么是孪生神经网络

          二、github开源项目Siamese-pytorch

          三、训练自己的点选数据集模型

上一篇:8、yolov8分类训练

下一篇:10、yolov8与孪生pth导出onnx使用

训练验证码-9、yolov8/孪生训练点选验证码一、什么是孪生神经网络

关于整个流程的文章内容讲解如果看不懂的话,想节省学习时间成本的话
在文章末尾部分有视频讲解,以及付费本合集后加v发送相关代码与数据集
1.比较物体的相似度,比较两张图片的相似性,这里推荐视频https://www.bilibili.com/video/BV1rr4y1c7d4/训练验证码-9、yolov8/孪生训练点选验证码
2.孪生神经网络就是将输入进来的两张图片利用同一个神经网络进行特征提取,然后利用比较网络对这两个特征进行比较,最终输出一个长度为1的一维向量,其值在0-1之间,用于表示输入进来的图片的相似程度
训练验证码-9、yolov8/孪生训练点选验证码

训练验证码-9、yolov8/孪生训练点选验证码二、项目Siamese-pytorch

1、安装环境

1.1.到这里下载包 https://github.com/bubbliiiing/Siamese-pytorch, 作者的b站视频:https://www.bilibili.com/video/BV1rV411y72L,然后解压下来文件夹名字Siamese-pytorch-bilibili,该仓库实现了孪生神经网络(Siamese network),该网络常常用于检测输入进来的两张图片的相似性。该仓库所使用的主干特征提取网络(backbone)为VGG16
训练验证码-9、yolov8/孪生训练点选验证码
1.2.通过conda创建虚拟环境,关于安装conda训练验证码-3、深度学习环境安装,cd 到解压好的压缩包目录下面执行如下命令
  • conda create -n lus python=3.10
  • conda env list
  • conda activate lus
  • 如果要用gpu训练的话,还需要安装这个:conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c nvidia  # 安装CUDA、CUDNN、Python、Pytorch、Torchvision 这里每个版本要相互对应 ,注意这里不能直接复制,需要根据前面的文章了解你自己电脑cuda对应的版本然后进行安装
  • pip install matplotlib
  • 这个源项目的暂时不操作 pip install -r requirements.txt,改成下面的安装即可
numpy==1.23.5matplotlibopencv_pythontqdmPillow
1.3.下载权重模型:训练所需的vgg16-397923af.pth/Omniglot_vgg.pth可在百度网盘中下载,链接: https://pan.baidu.com/s/14SFoKX6xTDPx2XG9rcUTDQ 提取码: 44en
  • Omniglot_vgg.pth权重模型:这个模型是作者已经训练好的模型,用于判断 50不同字母(语言)的1623 个不同手写字符图片是否一样
  • vgg16-397923af.pth是vgg的权重,可以用于训练其它的数据集
训练验证码-9、yolov8/孪生训练点选验证码
1.4.将刚刚下载好的权重模型,放到Siamese-pytorch-bilibilimodel_data 文件夹下
训练验证码-9、yolov8/孪生训练点选验证码

2、运行判断相似性

2.1.pycharm的python环境切换到上面conda创建的虚拟环境下
训练验证码-9、yolov8/孪生训练点选验证码
2.2.运行Siamese-pytorch-bilibilipredict.py文件,这里默认用的是他已经训练好的模型Omniglot_vgg.pth,这个时候可能报错No module named ‘torchvision.models.utils,这是因为高版本的torch没有那个包属性了,切换改下from torch.hub import load_state_dict_from_url
训练验证码-9、yolov8/孪生训练点选验证码
2.3.再次运行predict.py,输入传参两张图片的路径,img/Angelic_01.png , img/Angelic_02.png , 如图会输出相似度
训练验证码-9、yolov8/孪生训练点选验证码
2.4.我们通过它训练好的模型,输入其它两张图片的路径,再次判断看看,比如我们这里输入了其它的图片路径测试出来的相似性
训练验证码-9、yolov8/孪生训练点选验证码
2.5.如图,通过多张图片对比,荷的相似度最高0.978,以此可以用来过文字点选验证码
训练验证码-9、yolov8/孪生训练点选验证码
2.6.我们再多测些,发现如图两个糖字的相似度是0,但是相比下虽然都是0,其它的图的相似度都呈现负数了,说明还是能够判断出最高相似比训练验证码-9、yolov8/孪生训练点选验证码
训练验证码-9、yolov8/孪生训练点选验证码
2.7.最后我们把这个项目的输出相似度tensor改成输出数字,predict.py文件第24行代码改成print(probability.tolist()[0]) 即可,这个时候输出都是小数了,也可以进行多张图大小值判断了
训练验证码-9、yolov8/孪生训练点选验证码
2.8.可以简单了解下作者的50不同字母手写字符的训练集,作为接下来训练自己数据集文件夹摆放形式的参考,下载Omniglot数据集准备样例:Omniglot数据集下载地址为链接: https://pan.baidu.com/s/1pYp6vqiLLRFLn1tVeRk8ZQ 提取码: 5sa7  , 数据集放在根目录下的Siamese-pytorch-bilibilidatasets文件夹下
训练验证码-9、yolov8/孪生训练点选验证码
2.9.以及小小测试下训练作者的数据集步骤直接运行train.py开始训练,pip install numpy==1.23.4
训练验证码-9、yolov8/孪生训练点选验证码
2.10.训练自己的数据集步骤可参考作者的CSDN博客https://blog.csdn.net/weixin_44791964/article/details/107343394 , 也可以参考我下面的文章逻辑

训练验证码-9、yolov8/孪生训练点选验证码

三、训练自己的点选数据集模型

1、点选训练思路

1.1.参考文档:
https://blog.csdn.net/aaronjny/article/details/109732693 https://github.com/MgArcher/Text_select_captcha
训练验证码-9、yolov8/孪生训练点选验证码
训练验证码-9、yolov8/孪生训练点选验证码
1.2.传统思路:缺点耗时,需要标注的类别文字太多,证码图片中的文字并不是固定的几个字来回使用,而是随机的、很多字,可能达到1000分类的分类器了,假设1个分类标注20张,那么要想在这样的词汇大小下取得良好的识别效果的话,对数据规模的要求是很大的,标注上万张图片都不够
训练验证码-9、yolov8/孪生训练点选验证码
1.3.当前思路:只需要一个二分类器,把输入从一张图片改成两张图片,判断两张图片是否为同一个字就行了,引入孪生神经网络,可能标注几百张数据集就够了
训练验证码-9、yolov8/孪生训练点选验证码

2、使用yolov8训练目标检测模型

训练验证码-9、yolov8/孪生训练点选验证码
然后30min视频讲解上面的文章内容的操作步骤
学习数据集与相关代码加v发送,备注来意

原文始发于微信公众号(逆向OneByOne):训练验证码-9、yolov8/孪生训练点选验证码

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月2日19:06:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   训练验证码-9、yolov8/孪生训练点选验证码https://cn-sec.com/archives/2541438.html

发表评论

匿名网友 填写信息