V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yangyuhan12138
V2EX  ›  程序员

深度学习,目标检测 quick start 求助

  •  
  •   yangyuhan12138 · 253 天前 · 953 次点击
    这是一个创建于 253 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想做一个验证码的识别,第一步是要把验证码从背景图片中扣出来,但是我是完全没有深度学习方面的经验,本来都不打算搞这块的 但是看到了 yolo ,看起来还挺简单的,好像只是需要手动标注一些数据,然后让他训练一下就可以帮忙识别图片中的东西,并把它标注出来 于是我就开始了标注加训练,最开始我标注了一张图,但是发现他然后把原图给他,他也无法识别,我以为是我标注的不够多,所以又标注了几张,发现还是无法识别,所以我现在不知道问题出在了哪里,请求大佬帮忙看看..

    命令是

    python train.py --img 240 --epochs 3 --data test.yaml --weights yolov5s.pt
    

    结果数据: ps:我真的完全看不懂这些曲线..但是我跟官方提供的数据集做了对比,发现是有些地方不一样,而且我也试了官方数据集只训练一张图片,然后让他 predict 同样的图片,能识别出来..所以我现在不知道问题出在哪是 我需要更换权重吗,或者还是继续标注 n 张图片?

    result.csv

    pCM9GTg.jpg pCM9YkQ.jpg pCM9Nfs.jpg pCM9apn.jpg pCM9tYj.jpg pCM9dlq.jpg pCM9w60.jpg pCM9DmT.jpg pCM90XV.jpg pCM96k4.jpg pCM9r0U.jpg pCM9s7F.jpg pCM9ctJ.jpg pCM9gh9.jpg pCM9RpR.jpg 一张都没有预测成功 b3d95e3497190e0821f7585625454ce9.jpeg a2d8c0959a7292fe66b3ca52af82095d.jpeg

    17 条回复    2023-06-17 00:17:07 +08:00
    yangyuhan12138
        1
    yangyuhan12138  
    OP
       253 天前
    思路是先目标检测把图片扣出来,然后在构建孪生网络 和小图标进行对比 看相似度
    fff333
        2
    fff333  
       253 天前 via Android
    yolo
    jdandelion573
        3
    jdandelion573  
       253 天前 via Android
    标注数量不够多,epochs 设置过低。先按官方案例数据集走,最简单的手写数字试一次,后面照着弄数据集。
    SorryChen
        4
    SorryChen  
       253 天前 via iPhone
    至少标记个千百张再训练吧
    lpf0309
        5
    lpf0309  
       253 天前
    也不是,一张图片训练几十次能识别原图片的,你这 240 的像素有点低,应该是数据集没做好,或者是网络输出层、文件路径之类的没改对。
    lpf0309
        6
    lpf0309  
       253 天前   ❤️ 1
    也可能是 epoch 太低了,3 次太少了,官方行因为你用的是他们训练过的权重
    yangyuhan12138
        7
    yangyuhan12138  
    OP
       253 天前
    @lpf0309 和 weight 有关系吗 我如果换个 yolov5x 之类的,效果会不会好点
    yangyuhan12138
        8
    yangyuhan12138  
    OP
       253 天前
    @SorryChen 人工标注数据呀大哥...千百张要标多久呀,我就想先标几张试试效果
    yangyuhan12138
        9
    yangyuhan12138  
    OP
       253 天前
    我先调高 epoch 试试,大佬们能不能从曲线里看出来什么地方有问题呀,现在这些曲线的 意思是不是就是说他还啥都识别不了哦
    SorryChen
        10
    SorryChen  
       253 天前 via iPhone
    @yangyuhan12138 问题就是,深度学习检测,没个千百张图片,是训不出来的。你只能过拟合到你给的那一两种,换一张就无法识别了。你可以看看检测常用实验数据集 COCO 等,十万张标记图片呢
    SorryChen
        11
    SorryChen  
       253 天前 via iPhone   ❤️ 1
    @yangyuhan12138 你不用试调整包括 epoch 在内的任何参数,你现在首先要确定自己能否给出千百张标记数据。如果不能那你是无可能训练出可用的深度学习检测器的。

    我的 PhD 课题就是 object detection ,先解决数据量问题吧
    lpf0309
        12
    lpf0309  
       253 天前
    @yangyuhan12138 曲线只是测试的损失函数、回收率准确率之类的,观察多个 epoch 的训练效果,只能看出来训练的准确率很低。我 3 年以上目标检测经验,你也不用准备几百张图片,先用二十张图片,训练 50epoch 以上,直接检测训练集图像,正常都能成功。没成功就是你数据或者设置出了问题。yolov5x 和 yolov5s 的 cfg 文件不一样,你用哪个权重用哪个 cfg 文件就行。
    lpf0309
        13
    lpf0309  
       253 天前   ❤️ 1
    @yangyuhan12138 你这个数据同类之间只有灰度相似,不知道效果如何。不行的话可以先用其他数据测试以下路有没有走对。
    yangyuhan12138
        14
    yangyuhan12138  
    OP
       252 天前
    @lpf0309
    @SorryChen 多谢大家 我增加了数据量 增加了 epoch 换了简单的模型 结果可以了 非常棒 接着做下一步啦
    yangyuhan12138
        15
    yangyuhan12138  
    OP
       252 天前
    @SorryChen 我用了一百张,而且已经标了很久了....一千张的话....得找很多人一起差不多 哈哈哈哈
    SorryChen
        16
    SorryChen  
       252 天前
    @yangyuhan12138 没办法深度学习就是 data hungry 的。要么为什么说有多少人工就有多少智能。

    如果你的数据集比较简单,且训练数据和你的应用场景真实的数据分布差别不大的话,百张级别也能试试。

    否则就需要大量数据,增加模型泛化性。当你发现你的模型可以完美识别训练集里面的图片,但是非训练集里面的图片效果很差的时候,就代表着你的数据量不够,模型过拟合到了训练集。
    Chekkibrki
        17
    Chekkibrki  
       252 天前 via iPhone
    可能分辨率低数据不够多。我以前用 30 多张 1080P 图片用 yolov5 做猫狗识别效果都很好。但是验证码识别感觉不是很推荐用目标识别。考虑一下图像分割后用基本的分类模型,不一定要定位每一个字符。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2723 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:24 · PVG 21:24 · LAX 05:24 · JFK 08:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.