zoukankan      html  css  js  c++  java
  • [神经网络]一步一步使用Mobile-Net完成视觉识别(二)

    1.环境配置

    2.数据集获取

    3.训练集获取

    4.训练

    5.调用测试训练结果

    6.代码讲解

      本文是第二篇,调用官方例子并获取数据集。

    上一节里面记得我们需要配置PYTHONPATH,大家应该发现,每次运行程序之前,都必须执行一次

    export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

    为了解决这个问题,我们在运行以下命令

    sudo gedit ~/.bashrc

    在最后一行添加以下内容

    export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

    其中,我们需要把两个pwd分别替换为绝对路径到research目录,例如/home/xueaoru/models/research。

    接下来我们运行下官方的识别例子,

    在命令行下打开jupyter notebook

    jupyter notebook

    前提是你已经安装了jupyter notebook,你装的anaconda的话就已经装好了,否则你就

    sudo pip install jupyter

    然后到object_detection 路径下打开官方的object_detection_tutorial.ipynb文件,然后逐个执行,中间会下载相关的预训练模型和数据集,耐心等待即可。

    如果中途出现报错,一般是没有安装相应的库,那就很简单了,根据报错看缺什么库,然后pip安装。比如缺少xxx,就pip insrall xxx。

    执行到最后效果是这样的:

    下一步我们就要准备自己的数据集了。

    ubuntu 上一般装个cheese就可以打开摄像头了,执行以下命令安装cheese

    sudo apt-get install cheese 

    安装完之后我们打开它,然后前后移动对小车录像,也可以用手机录像,只不过手机录出来的更加清晰罢了,咱比赛的时候用的摄像头没那么清晰。对红色灯管的小车和蓝色灯管的小车分别从远近旋转角度进行拍摄,拿到两个mp4文件。

    下一步从mp4文件里提取图片,每隔5帧提取一次图片。

    用python执行以下代码:

    import cv2 as cv
    import os
    FILEPATH = "/home/xueaoru/pics/out"
    VIDEOPATH = "/home/xueaoru/projects/srm"
    VIDEONAME = "car1.mp4"
    cap = cv.VideoCapture(os.path.join(VIDEOPATH,VIDEONAME))
    sp = 5
    ci = 0*sp
    while(1):
        ret,frame = cap.read()
        if ret!=True:
            break
        #out = frame
        out = cv.resize(frame,(640,480))
        #cv.imshow("frame",out)
        k = cv.waitKey(1) & 0xFF
        if ci%sp ==0:
            cv.imwrite(os.path.join(FILEPATH,"image"+str(ci//sp + 1)+".jpg"),out)
        ci = ci + 1
        if k == 27:
            break
    cap.release()
    cv.destroyAllWindows()

    需要注意,我们需要根据情况更改里面的FILEPATH、VIDEOPATH、VIDEONAME。

    这时候我们就拿到了640*480的很多图片了。如图:

    到这一步差不多就搜集完了,然后就是标准的打标签了。

    我们需要下载一个工具来帮助我们打标签:

    git clone https://github.com/tzutalin/labelImg.git

    git下来之后进入该目录下执行以下语句

    sudo apt-get install pyqt5-dev-tools
    sudo pip3 install -r requirements/requirements-linux-python3.txt
    make qt5py3
    python3 labelImg.py

    就能打开labelImg

    或者更简单的,你直接pip安装就可以了

    pip install labelImg
    labelImg

    一样可以打开labelImg,打开图像目录进行标注吧,右键可以选择标注,其中还有快捷键,w是标注,a是上一张图,d是下一张图,保存的默认是xml文件,这正是我们需要的。

    在上面所有的工作完成之后,我们就拿到了所有标注的数据集xml.

  • 相关阅读:
    Sqoop的导入及可能遇到的问题
    Docker搭建MongoDB集群(副本分片)
    微信小程序框架部署:mpvue+typescript
    关系型数据库与非关系型数据库
    PWA 学习笔记(五)
    PWA 学习笔记(四)
    PWA 学习笔记(三)
    PWA学习笔记(二)
    PWA 学习笔记(一)
    部分设计模式对比分析
  • 原文地址:https://www.cnblogs.com/aoru45/p/9867885.html
Copyright © 2011-2022 走看看