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.

[神经网络]一步一步使用Mobile-Net完成视觉识别(二)的更多相关文章

  1. 一步一步理解word2Vec

    一.概述 关于word2vec,首先需要弄清楚它并不是一个模型或者DL算法,而是描述从自然语言到词向量转换的技术.词向量化的方法有很多种,最简单的是one-hot编码,但是one-hot会有维度灾难的 ...

  2. 如何一步一步用DDD设计一个电商网站(十二)—— 提交并生成订单

    阅读目录 前言 解决数据一致性的方案 回到DDD 设计 实现 结语 一.前言 之前的十一篇把用户购买商品并提交订单整个流程上的中间环节都过了一遍.现在来到了这最后一个环节,提交订单.单从业务上看,这个 ...

  3. 如何一步一步用DDD设计一个电商网站(十三)—— 领域事件扩展

    阅读目录 前言 回顾 本地的一致性 领域事件发布出现异常 订阅者处理出现异常 结语 一.前言 上篇中我们初步运用了领域事件,其中还有一些问题我们没有解决,所以实现是不健壮的,下面先来回顾一下. 二.回 ...

  4. NLP(二十九)一步一步,理解Self-Attention

      本文大部分内容翻译自Illustrated Self-Attention, Step-by-step guide to self-attention with illustrations and ...

  5. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  6. 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成

    阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...

  7. 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车

     阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...

  8. 如何一步一步用DDD设计一个电商网站(七)—— 实现售价上下文

    阅读目录 前言 明确业务细节 建模 实现 结语 一.前言 上一篇我们已经确立的购买上下文和销售上下文的交互方式,传送门在此:http://www.cnblogs.com/Zachary-Fan/p/D ...

  9. 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文

    阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...

  10. 如何一步一步用DDD设计一个电商网站(五)—— 停下脚步,重新出发

    阅读目录 前言 单元测试 纠正错误,重新出发 结语 一.前言 实际编码已经写了2篇了,在这过程中非常感谢有听到观点不同的声音,借着这个契机,今天这篇就把大家提出的建议一个个的过一遍,重新整理,重新出发 ...

随机推荐

  1. QDUOJ 炸老师与他的女朋友们 bfs+状压

    炸老师与他的女朋友们 Description qdu最帅的炸老师今天又要抽空去找他的女朋友们了,但是考虑到他的好gay友ycb仍是个单身狗,炸老师作为基友不希望打击他.所以他在找女朋友们的路途中必须要 ...

  2. 利用URL重写隐藏复杂的URL

    第一步:模拟映射页面 我们想在一个页面上点击guid.html链接,跳转到比较复杂URL的guid_{492f3e0b-848e-11da-9550-00e08161165f}.html页面.即定义一 ...

  3. linux命令之curl,wget

    curl由于可自定义各种请求参数所以在模拟web请求调试网页方面更擅长:wget由于支持ftp和Recursive所以在下载文件方面更擅长.类比的话curl是浏览器,而wget是迅雷9. 在下载上,也 ...

  4. 洛谷P2018 消息传递

    P2018 消息传递 题目描述 巴蜀国的社会等级森严,除了国王之外,每个人均有且只有一个直接上级,当然国王没有上级.如果A是B的上级,B是C的上级,那么A就是C的上级.绝对不会出现这样的关系:A是B的 ...

  5. SPFA(热浪)

    1557 热浪  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果  

  6. [Xcode 实际操作]七、文件与数据-(3)创建文本文件、属性列表文件、图片文件

    目录:[Swift]Xcode实际操作 本文将演示如何创建各种类型的文件. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...

  7. Request a certificate from a certificate vendor

    Request a certificate from a certificate vendor Now, with your CSR in hand, visit the Web site of yo ...

  8. hyperledger fabric 1.0.5 分布式部署 (八)

    gdb debug peer 程序 在开始我们从 github 上download 下来的源码包,实际上已经包含了可执行的 peer 程序,但是该程序是使用 release 方式编译的,并不支持gdb ...

  9. MFS安装

    mfs github地址:https://github.com/moosefs/moosefs 一. 准备 1. 名字解释 Mfsmaster 元数据 Metalogger 元数据备份,用于恢复数据( ...

  10. 理解JavaScript中的深拷贝和浅拷贝

    , num2 = num1;console.log(num1) //1console.log(num2) //1num2 = 2; //修改num2console.log(num1) //1conso ...