首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算机视觉之图片物体识别

计算机视觉(computer vision),是指用摄影机、电脑代替人眼对目标进行识别、跟踪和测量从而获取信息和处理信息的能力。通常来说,计算机视觉系统需要将图象信号,纹理和颜色建模,物体几何识别和分类,以及物体建模等方面都紧密地集成在一起。

我们先来看看下面这张图片:

计算机通过读取这张图片反馈了以下信息:

§图片中有沙洲的概率为44.28%

§图片中出现海滩的概率是33.21%

§图片中出现水牛的概率为1.22%

§图片中出现惠比特犬的概率为1.13%

§出现水下呼吸器的概率为0.88%

我们通过肉眼可以很明显地看到对于第1,2,4个标签,计算机的识别还算准确,但是对于第2和5个标签就不那么准确了。

那么,接下来,我们来看看计算机是如何做到以上5个标签的识别的。

我们的实验环境是基于Python + OpenCV,在开始实验之前,我们需要准备预训练好的模型,卷积网络结构,相关图像分类索引及测试集。在这里,我们使用著名的GoogLeNet模型,图像分类索引则采用ImageNet的索引,实验步骤如下:

定义一个构造函数分别接受待识别的图片,卷积网络结构层次配置,分类索引文件,以及模型。

裁剪图片,计算训练集图片中每个像素的RGB均值( , ,),剔除这些像素的RGB均值,将得到的Tuple存入一个BLOB变量中:

其中,α是一个人为赋值的常量。例如ImageNet训练集的均值为:R=103.93, G=116.77, B=123.68,α常量设定为1从而达到下图的效果:

§初始化预训练好的模型和卷积网络,将BLOB变量的数据加载到模型和网络中。

§返回模型计算出来的probability为前五的标签。

由于训练集有限,且模型比较老了,对自然图片的识别还算准确,对近些年来新鲜事物的识别就......

我们将在未来对模型进行优化,以达到更准确的识别,敬请期待……

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180126G0LDEJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券