AI学习:ImageNet和Inception网络

ImageNet

"ImageNet改变了AI领域人们对数据集的认识,人们真正开始意识到它在研究中的地位,就像算法一样重要!"

    ImageNet项目是一个用于视觉对象识别软件研究的大型可视化数据库,目前是一个超过15 million的图像数据集,大约有22,000类。这个项目是由李飞飞团队从2007年开始,耗费大量人力,通过各种方式(网络抓取,人工标注,亚马逊众包平台)收集制作而成,它作为论文在CVPR-2009发布。

    当时人们还很怀疑通过更多数据就能改进算法的看法。深度学习发展起来有几个关键的因素,一个就是庞大的数据(比如说ImageNet),一个是GPU的出现,还有更优的深度模型,更好的优化算法。可以说数据和GPU推动了这些的产生,这些产生继续推动深度学习的发展。

 

ImageNet挑战赛

    自2010年以来,ImageNet项目每年举办一次软件比赛,即ImageNet大规模视觉识别挑战赛(ILSVRC),到2017年后截止

    比赛项目包括:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、视频目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scene parsing)

    2012年在解决ImageNet挑战方面取得了巨大的突破,被广泛认为是2010年的深度学习革命的开始。2012-2015年期间在ImageNet比赛上提出的一些经典网络,包括AlexNetZFNetOverFeatVGGInceptionResNet

 

Inception网络

    Inception网络又叫做GoogLeNet2012AlexNet赢得ImageNet挑战赛后,直到GoogLeNet出来之前,主流的网络结构突破大致是网络更深(层数),但是纯粹的增大网络的缺点:1.参数太多,容易过拟合,若训练数据集有限;2.网络越大计算复杂度越大,难以应用;3.网络越深,梯度越往后穿越容易消失(梯度弥散),难以优化模型。Inception就是在这样的情况下应运而生。

    Inception 网络是复杂的(需要大量工程工作)。它使用大量 trick 来提升性能,包括速度和准确率两方面。它的不断进化带来了多种 Inception 网络版本的出现。常见的版本有:

  • Inception v1
  • Inception v2 Inception v3
  • Inception v4 Inception-ResNet

Inception具体原理参考https://my.oschina.net/u/876354/blog/1637819

 

基于Inception-v3模型的图像分类器

谷歌在大型图像数据库ImageNet上训练好了一个Inception-v3模型,这个模型可以直接用来进行图像分类。

使tensorflow提供的classify_image进行图像分类

1.安装tensorflow环境,可以使用tensorflow提供的Docker镜像快速搭建环境:

//下载

# docker pull tensorflow/tensorflow:1.13.1-py3 //CPU版本

# docker pull tensorflow/tensorflow:1.13.1-gpu-py3 //GPU版本

 

//启动

# docker run -ti tensorflow/tensorflow:1.13.1-py3 bash

2.在tensorflow环境下载示例代码执行

# wget https://github.com/tensorflow/models/blob/master/tutorials/image/imagenet/classify_image.py

# python classify_image.py

这个示例代码会下载训练好的Inception-v3模型,同时下载一张熊猫照片进行识别分类,下载目录在/tmp/imagenet/

  • nception-2015-12-05.tgz:模型压缩包
  • classify_image_graph_def.pb:训练好的Inception-v3模型
  • imagenet_2012_challenge_label_map_proto.pbtxt
  • imagenet_synset_to_human_label_map.txt:类别文件,共包含2万多种类别
  • cropped_panda.jpg :熊猫图片

执行结果:

# python classify_image.py

giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)

indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)

lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)

custard apple (score = 0.00147)

earthstar (score = 0.00117)

 

另外也可以训练自己的模型,参考https://www.jianshu.com/p/acb681e9b68a

 

 

参考

  1. https://baike.baidu.com/item/ImageNet/17752829?fr=aladdin
  2. https://www.cnblogs.com/liaohuiqiang/p/9609162.html
  3. http://baijiahao.baidu.com/s?id=1601882944953788623&wfr=spider&for=pc

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章