如何在中信机器学习平台做图像识别

让我们先来先看一下最终实现的效果视频


如何在中信机器学习平台做火焰识别

现在很多科技巨头如 IBM、谷歌、微软和亚马逊都推出了简便易用的视觉识别 API,甚至一些小型公司如 Clarifai 等也推出的相似的 API。此外,Facebook今年年初宣布开源其物体检测平台Detectron,用于推动计算机视觉领域的研究。

下面两幅照片都用 IBM 的 Watson Visual Recognition 中的默认分类器打上了标签,但第一幅图在此之前首先被一个物体检测模型标注过

根据自己的实际用途,你可能并不需要一个自定义的物体检测模型。Ten sorFlow的物体检测 API 提供了几个模型,可以调整速度和准确率,都是基于COCO 数据集。为了让大家方便一些,引入网上(作者 Nick Bourdakos)一个列表,将用 COCO 模型可以检测出的物体放在了一起:

当然,如果你想检测的物体不在上述列表中,比如 logo 什么的,那么你需要创建一个自定义物体检测器。

火灾是一种频繁发生而又损失惨重的灾难,一直是人们极力关注而又要求预防、遏制的灾祸。大量的火灾案例说明,火灾早期探测是预防火灾、及时扑灭火灾、减少火灾损失的有效手段,发现越早,扑救越及时,形成灾祸的可能性就越小。随着机器人,无人机的出现与发展,火灾救援,山林/工厂的巡检,在不久的将来很有可能全部有机器完成,火焰的自动识别及定位就变得至关重要。所以,我们在此以火焰检测为例,一方面展示深度学习在自定义物体中的效果与应用,另一方便也展示一个高效快速的机器学习平台在这一过程中所展现的优势。我们开始吧!

中信机器学习平台做图像识别详细步骤

首先通过访问地址http://ml.c.citic/hub/login,打开中信云网站首页,页面如下:

中信云机器学习平台登陆入口

如果该用户没有登录,点击登陆自动跳转至中信云登录界面,如下图:

中信云注册用户统一入口

注册账号密码登陆进入,得到界面

中信JupyteNoteBook后台

1.创建项目准备建模

点击【Lab View】创建新的项目,创建完成显示如图:

机器学习平台桌面

2.将数据上传至中信机器学习平台

点击上传按钮,上传数据文件和训练代码到平台

数据上传

如果你使用的是我用的训练数据,那么你只需复制我的repo,目录结构应该是这样的:

repo目录

但是如果你想用自己的训练数据搭建一个模型,你需要将训练图像添加至 images,将 XML 注释添加至 annotations/xmls,更新 trainval.txt 和 label_map.pbtxt。trainval.txt 是一列文件名,能让我们发现和将 JPG 文件与 XML 文件关联。label_map.pbtxt 是一列我们想要检测的对象。

3.选择开发引擎并运行代码

点击Terminal 为新项目搭建需要语言环境,以pathon3.0为例:

机器学习平台终端

首先,在终端上安装的Python和pip安装脚本要求:

pip install -r requirement.txt

向 PYTHONPATH 中添加 models 和 models/slim:

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

4.下载基础,训练模型

下载一个基本模型

从零训练一个物体检测器要花好几天,即便是在使用多个 GPU 的情况下也是如此。为了加快训练速度,我们会用一个由多种不同数据集上训练得来的模型,将该模型的参数重新用于初始化我们的新模型。

你可以从这个动物园模型上下载一个模型。每个模型的准确率和速度都各有不同,我用的是 faster_rcnn_resnet101_coco。

wget http://download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_coco_11_06_2017.tar.gz

tar -xzvf faster_rcnn_resnet101_coco_11_06_2017.tar.gz

mv faster_rcnn_resnet101_coco_11_06_2017/model.ckpt.* .

下载model,解压,并将所有的 model.ckpt 文件提取并转移至我们的 repo 中的根目录。

你会看到一个叫 faster_rcnn_resnet101.config 的文件。它被设定用于处理 faster_rcnn_resnet101_coco 模型。如果你用的是另一种模型,你可以点击这里,获取相应的配置文件

运行如下语句,就会开始训练了!

python object_detection/train.py --logtostderr --train_dir=train --pipeline_config_path=faster_rcnn_resnet101.config

模型什么时候能准备好呀?这要根据你的训练数据的多少。数据越多,你需要的步骤就越多。我的模型差不过在 4500 步左右时趋于平稳,在 20000 步左右时达到顶峰。我继续训练,一直训练了 20 万步,但是效果没有进一步改善。

我建议你每 5000 步下载一次模型,然后进行评估,以确保你训练的方式是正确的。

5.导出推理图

要想用我们的代码使用整个模型,我们需要将检查点文件( model.ckpt-STEP_NUMBER.* )转换成一个冻结的推理图(inference graph)。

将刚才下载到的检查点文件转移至你一直在用的 repo 中的根文件夹里。

然后运行如下命令:

python object_detection/export_inference_graph.py \ --input_type image_tensor \ --pipeline_config_path faster_rcnn_resnet101.config \ --trained_checkpoint_prefix model.ckpt-STEP_NUMBER \ --output_directory output_inference_graph

记得 export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim。

你应该会看到一个新的 output_inference_graph 目录,包含一个 frozen_inference_graph.pb 文件。这就是我们需要的文件。

6.测试模型

现在,运行如下命令:

python object_detection/object_detection_runner.py

test_images 目录里的所有图像上运行在 output_inference_graph/frozen_inference_graph.pb 中发现的对象检测模型,并将结果导出在 output/test_images 目录中。

Demo

我们把搭建的模型运行于视频中的片段,就得到如开头视频的检测结果了:


如何在中信机器学习平台做火焰识别

从视频中可以看到,我们搭建的模型成功地追踪到了影片中的火焰飞舞情况。

以上我们完整的展示了如何在中信机器学习做自定义图像识别,平台省去了许多环境配置麻烦,GPU处理器也大大加快了训练速度。感兴趣的小伙伴快自己上手试一试吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容