如何上手使用 Facebook 的开源平台 Detectron?
不久前,Facebook 开源了用于物体识别的 CV 开发平台 Detectron,为广大研究人员们未来的新计算机视觉研究课题提供灵活、快速的模型实现和评估途径,对于 Detectron 的开源,雷锋网曾做过报道:Facebook 开源 CV 开发平台 Detectron,打包支持各种物体识别算法。IBM Watson 的计算机视觉工程师 Nick Bourdakos 发表了一篇 Detectron 入门教程,原文链接如下:https://hackernoon.com/how-to-use-detectron-facebooks-free-platform-for-object-detection-9d41e170bbcb AI 研习社将全文编译如下:
怎样才能绘制更加清晰的目标对象轮廓?
不久前 FAIR 开源了物体检测平台 Detectron,任何开发者都能使用 Facebook 用来做物体检测研究的工具,Detectron 的一项重要功能是对象遮蔽(object masking)。对象遮蔽,不只是在目标的周围画上边框,实际上它可以绘制多边形。
Detectron 能让对象遮蔽非常简单地运行起来:
安装 Caffe2
第一步是安装 Caffe2(https://caffe2.ai/)
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
make && cd build && sudo make install
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
注意:你得有一块带有 CUDA 的 NVIDIA GPU 才能使用 Detectron
安装 COCO API
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
make install
Clone Repo
成功安装 Caffe2 后,Clone Detectron 的 repo。
git clone https://github.com/facebookresearch/Detectron.git && cd Detectron
安装需要的软件
pip install
numpy
pyyaml
matplotlib
opencv-python>=3.0
setuptools
Cython
mock
scipy
构建 python 模块
cd lib && make && cd ..
执行以下指令在在 Demo 图像上运行对象遮蔽
python tools/infer_simple.py
--cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml
--output-dir demo/output
--image-ext jpg
--wts
https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl
demo
在 Detectron/demo/output 目录下找到 PDF 输出文件。
下面是我用的一些测试用例,它们大部分都运行得很好。
和以前一样(https://hackernoon.com/capsule-networks-are-shaking-up-ai-heres-how-to-use-them-c233a0971952),卡戴珊姐妹再次向 AI 发起了挑战。
注意:如果你想测试自己的图片,只需要 JPG 文件添加到 Detectron / demo 目录下,为保证图片质量,图像像素最好在 600px - 800px 左右。
最后的一点想法
这个模型对普通对象的遮蔽(masking)效果非常好,不过有的开发者会需要更多的实例来学习,我会在后续的教程中教你如何构建自己的对象遮蔽模型。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Joomla远程代码执行漏洞分析(总结)
- 那些年我拿下的demo站之方维O2O
- emlog自动备份插件泄露整站数据库备份漏洞
- md5(unix)原理分析
- XDCTF2015代码审计全解
- 使用腾讯云TCB云函数抓取微信情报信息
- 数据库PostrageSQL-服务器配置预写式日志
- 分享一个jsonp劫持造成的新浪某社区CSRF蠕虫
- 数据库PostrageSQL-服务器配置资源消耗
- 数据库PostrageSQL-服务器配置连接和认证
- 浏览器安全一 / Chrome XSS Auditor bypass
- 数据库PostrageSQL-服务器配置文件位置
- 数据库PostrageSQL-服务器配置设置参数
- 一个基于ngrx的计数器例子
- SAP Spartacus checkout Shipping address的页面实现