首先回答,如果针对特定需求,比如只是要从图片中识别常见类型的物体,对识别精度和速度也没有非常高的要求,可以。 但总体来说,机器学习/深度学习都是一个需要根据特定需求和场景进行数据处理、特征工程、算法选择、参数调整的,没有傻瓜式的工具。

就题主说的图片识别需求,因为CNN的特点是端到端的学习,无需人工提取特征。常见类型的物体检测和识别也有预训练好的模型。唯一的障碍是深度学习框架的学习成本。

如果你没有深度学习框架(如Tensorflow/Pytorch/Caffe)的使用经验,可以使用Yolo。简单的3步即可用来识别输入图片中的的常见20类(详细类别见VOC)物体。

Step 1: 下载源码编译

git clone https://github.com/pjreddie/darknet

cd darknet

make

在linux下运行上述命令安装好了,详细安装使用说明参考 Installing Darknet

Step 2: 下载训练好的模型

wget https://pjreddie.com/media/files/yolo.weights

Step 3: 运行

./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg

其中 `yolo.weights` 是Step 2中下载的模型, `data/dog.jpg`是待识别的图片。

识别结果会保存在 `predictions.jpg`中,结果如下图:

------ update 2017.09.24 23:54 ------

@牛亮 在评论里提到YOLO对于新安装的系统也可能没有那么顺利,Tensorflow可能更方便。个人觉得如果编译没有问题,YOLO更容易点。但TF Object Detection也是一个好的选择。使用TF Object Detection的一个额外好处是预训练的模型多,可以用不同的模型来比较效果。

@何之源 之前发了一篇对TF Object Detection的科普贴 ,5步可以在Jupyter Notebook里跑出结果,也引用在这供参考。如果需要独立批量运行,可将Notebook保存为.py文件,修改少量代码即可。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐