V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
MasterPa
V2EX  ›  Python

做了个给训神经网络和计算机视觉用的可视化工具,十分钟开始训练神经网络,求些意见~

  •  2
     
  •   MasterPa · 2018-10-22 16:41:00 +08:00 · 4152 次点击
    这是一个创建于 2259 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我本身是做机器学习的,和团队一起在过去两年多里服务过机场电网无人机医院等一堆行业。然后感觉每次找新需求都要从 demo 开始做太烦了,就写了个工具 TeguCV 用来快速训练神经网络,然后一些常见的计算机视觉需求可以直接调用。用了一段之后感觉还可以,而且除了我们之外其他人也应该都可以用上。就公开了免费下载,发到 V2EX 上面想求些意见!好指导我们下一步如何更新。 TeguCV 目前已经支持:图像识别、视频分类、人脸比对和车牌识别。配置需要 Win 10,英伟达显卡加最新驱动。Win 7 和 Server 应该也可以,但我们测试的不多。 免费下载链接:

    https://tegu-1257137322.cos.ap-beijing.myqcloud.com/1017/TeguCV%20GUI%201.15%20LTS.zip

    因为我们更新比较快,所以现在版本需要每个月更新一次。这个软件现在还属于从零到一的阶段,比如有个问题就是请务必把文件放在纯英文目录里面!

    用图像识别举个例子,比如我们想识别无人机航拍的车辆。 如果你已经下载完成 TeguCV,在 TeguCV GUI 1.15/Dataset/CarDataset 这个文件夹目录里,我们可以看到不少照片。这都是用无人机在长春航拍所得。我们今天的目标就是利用神经网络把里面的车识别出来。

    在安装文件夹中找到 Tegu.exe 。

    BTW,这个软件现在最大的缺点就是卡,点击各个功能之后请多等一会。点一次就行。

    选择图像识别 Image Detection,新建项目并且填写必要的信息(项目名称和保存路径)就可以开始了!

    打开之后,你会看到一个充满参数的界面。左面是参数调整,右边是日志输出。别怕,你看完这篇文章就能学会全部参数的含义。

    首先要选择我们这次准备训练用的数据。在「 Data Root 」选择数据存放的地址:TeguCV GUI 1.15/Dataset/CarDataset/trainset 里面是我们的训练用数据集,双击打开后选择这个文件夹就可以。

    然后是「 Serval Path 」,是标注文件的路径。因为我们单纯给电脑图片是没用的,还需要告诉电脑图片里有什么。.serval 是 TeguCV 专用的标注文件格式。在 TeguCV GUI 1.15/Dataset/CarDataset/ 可以看到一个名为 car.serval 的文件,选择它。

    「 Model Save Path 」是模型保存的地址,咱们上一步新建项目的时候已经给它安排上了。

    其实现在我们已经可以开始训练,教电脑如何识别车辆了。但开始之前,我们还有几个地方最好了解一下:

    Epoch 是最大训练轮次。就是说你打算让电脑一共学习多久这些数据。就好像读完义务教育要 9 年,但是读完博士可能要 19 年。但也不是说时间越长越好,毕竟博士延毕迟迟出不来也不是啥好事对不?如果你是新手,我建议第一次这里写 100,如果你的电脑不是特别快,写 20 也行。

    Learning Rate 是学习率。通俗地说电脑学习的速度。学的太快可能导致学不明白,但学的太慢则有可能一直学不完。调整学习率需要依赖人的经验,这个过程也就是我们所谓的「调参」。TeguCV 拥有自动搜索合适学习率的功能,但这不是这次的重点。我们下次会讲一讲。

    Save Epoch 是每多少轮会保存一次。建议 5 或者 10 轮一次。

    Visualization When Save 是每次保存模型时,都让电脑顺便挑 20% 的训练数据去识别一下,方便我们看当前的效果。看着识别越来越准是一件很有成就的事情。不过要注意的是,最开始的轮次模型完全不准很正常。可以在保存模型的路径下找到展示效果。

    这次我们可以选择 Epoch 为 50 或 100,Learning Rate 0.001 ,每 10 轮保存一次。请务必让全部文件路径都是英文的。

    i5 + 1050ti 的话差不多 10s 跑完一轮。到了需要保存那轮会稍微慢一些。

    最开始你会看到的效果是一堆框到处乱圈。这都不要紧。蓝色框中是电脑认为是车的位置。多轮训练之后,效果会开始变好。按照我的个人经验,半个小时之内,50 轮左右就不错了。 至此,你也许是第一个,但肯定是过程最简单的一个神经网络模型就训练出来了!

    如果你想使用这个模型,可以直接用下面的 Predict 功能。或者比如我们想直接实时识别无人机回传的数据,也可以开启 Server。详细介绍可以在下载包里的说明文档找到。这里也有份在线文档:

    https://tegu.gitbook.io/tegucv-cn/

    这篇文章也有带图的版本: https://zhuanlan.zhihu.com/p/46884374

    Tips:

    TeguCV 和其他任何一个深度学习工具一样,需要英伟达 GPU。AMD 和 Intel 的 GPU 都暂时没有支持。

    安装和保存路径需要全部为英文路径。

    Epoch 等术语并非 TeguCV 独有,而是机器学习届通用术语。

    你也可以标注自己的数据集然后给 TeguCV 去训练!不一定单纯是识别这个车。在线和下载文档里都有对标注流程的详细介绍。TeguCV GUI 1.15 LTS/Tegu Image Annotation 中可以找到标注工具 giia。

    再发一遍下载链接:

    https://tegu-1257137322.cos.ap-beijing.myqcloud.com/1017/TeguCV%20GUI%201.15%20LTS.zip

    欢迎各位拍砖~任何意见或建议都可以直接留言,也可以加我绿色通信工具:adamgi

    邮件联系我也没问题:adamwang at giai.tech

    23 条回复    2018-10-24 16:25:22 +08:00
    lenghonglin
        1
    lenghonglin  
       2018-10-22 16:48:56 +08:00
    哥们,图好像炸了
    MasterPa
        2
    MasterPa  
    OP
       2018-10-22 16:51:35 +08:00
    @lenghonglin 是的,我把图片删了。更新了一个知乎专栏链接,里面可以看到图~
    https://zhuanlan.zhihu.com/p/46884374
    loryyang
        3
    loryyang  
       2018-10-22 16:57:04 +08:00
    看了下,挺好的,不过我不做图像,提不出啥意见
    不知道市面上有没有这种无脑跑模型的软件
    askfermi
        4
    askfermi  
       2018-10-22 17:06:27 +08:00
    可以导出模型吗:D
    MasterPa
        5
    MasterPa  
    OP
       2018-10-22 17:24:33 +08:00
    @askfermi 正在弄这方面的功能
    MasterPa
        6
    MasterPa  
    OP
       2018-10-22 17:24:52 +08:00
    @loryyang 也有,但是好用的不能离线,而且比较贵。
    qile11
        7
    qile11  
       2018-10-22 19:41:02 +08:00 via Android
    一直想使用高清相机把楼下车位拍出来,自动找空车位,然后微信提供给小区邻居查询,不知道这个可以干不?
    Nimrod
        8
    Nimrod  
       2018-10-22 20:05:16 +08:00
    @qile11 那估计得用不少高清相机了吧
    MasterPa
        9
    MasterPa  
    OP
       2018-10-22 22:28:01 +08:00
    @qile11 我感觉用我们这东西能做,有照片就行
    lance6716
        10
    lance6716  
       2018-10-23 00:29:54 +08:00 via Android
    主流框架都有 model zoo 啊…这轮子造的…
    ccnccy
        11
    ccnccy  
       2018-10-23 00:41:51 +08:00 via iPhone
    挺好的,为啥不支持智能数据预测
    diggerdu
        12
    diggerdu  
       2018-10-23 00:53:07 +08:00 via iPhone   ❤️ 1
    @lance6716 用 model zoo 也是要花时间的
    MasterPa
        13
    MasterPa  
    OP
       2018-10-23 09:07:35 +08:00
    @lance6716 对于很多人来说(比如我自己),给客户新电脑配置环境开始就感觉很烦 XD 很多简单工作越简单越好
    MasterPa
        14
    MasterPa  
    OP
       2018-10-23 09:08:30 +08:00
    @ccnccy 还没做到这~另外智能数据预测能不能说的更详细一些,是哪类的吗?
    qile11
        15
    qile11  
       2018-10-23 09:23:35 +08:00 via Android
    @MasterPa 估计一个就可以了,主要我正好在停车场正面居中 28 楼,前面是俩排停车位,摄像头得弄个清楚的
    qile11
        16
    qile11  
       2018-10-23 09:40:09 +08:00 via Android
    1.能实现那种我提供几十万人的检验结果和疾病诊断可以统计病人结果或者预测相关性不?
    2.我提供几万张医学图像和某个病灶标记后期遇到类似图像自动诊断出相关疾病
    比如提供乳腺癌的标记图片学习,后期其他患者拍了照片让机器自动诊断
    MasterPa
        17
    MasterPa  
    OP
       2018-10-23 10:16:31 +08:00
    @qile11 「几万张医学图像和某个病灶标记后期遇到类似图像自动诊断出相关疾病」这个理论上可以。不过我做过医学影像识别,医学影像的难点在于图像预处理和过 fda 啥的。
    MasterPa
        18
    MasterPa  
    OP
       2018-10-23 10:17:24 +08:00
    @qile11 先识别车,然后判断图片相应区域有没有车被识别出来
    qile11
        19
    qile11  
       2018-10-23 10:46:06 +08:00 via Android
    @MasterPa 图像处理一般是黑白的 dicom 文件,转 jpg 后处理下,fda 是什么,这个好像和美国那个食品监测的 fda 没关系吧,是不是患者隐私这些需要通过相关国家审核
    ccnccy
        20
    ccnccy  
       2018-10-23 11:34:01 +08:00 via iPhone   ❤️ 1
    就是大数据预测
    利用 ai 往大数据方面走
    很多大公司,销售行业,把以前的相关资料录进去,之前的结果是什么,然后把现在的资料录进去,看看结果,给老板参考好下决策。

    行业那么多,大家数据也多,往这边走会不会路子宽点,视觉类的现在好多。
    MasterPa
        21
    MasterPa  
    OP
       2018-10-23 16:50:54 +08:00
    @qile11 有一些数据比较麻烦,需要走手续
    NinaATgi
        22
    NinaATgi  
       2018-10-24 15:57:33 +08:00
    @qile11 训练出了找车位小程序求分享啊!
    MasterPa
        23
    MasterPa  
    OP
       2018-10-24 16:25:22 +08:00
    @qile11 兄弟有兴趣的话咱们加个微信聊聊?看看怎么做停车场这个需求,我微信是 adamgi
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2715 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:52 · PVG 22:52 · LAX 06:52 · JFK 09:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.