精华内容
下载资源
问答
  • 图像数据库

    万次阅读 多人点赞 2016-07-14 21:41:58
    ImageNet  ImageNet 是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。...图像如下所示,需要注册ImageNet帐号才可以下

    ImageNet

             ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。能够从图片识别物体。目前已经包含14197122张图像,是已知的最大的图像数据库。每年的ImageNet大赛更是魂萦梦牵着国内外各个名校和大型IT公司以及网络巨头的心。图像如下图所示,需要注册ImageNet帐号才可以下载,下载链接为http://www.image-net.org/


    PASCAL VOC

             PASCALVOC 数据集是视觉对象的分类识别和检测的一个基准测试,提供了检测算法和学习性能的标准图像注释数据集和标准的评估系统。图像如下图所示,包含VOC2007430M),VOC20121.9G)两个下载版本。下载链接为http://pjreddie.com/projects/pascal-voc-dataset-mirror/



    Labelme

             Labelme是斯坦福一个学生的母亲利用休息时间帮儿子做的标注,后来便发展为一个数据集。该数据集的主要特点包括

    (1)专门为物体分类识别设计,而非仅仅是实例识别

    (2)专门为学习嵌入在一个场景中的对象而设计

    (3)高质量的像素级别标注,包括多边形框(polygons)和背景标注(segmentation masks)

    (4)物体类别多样性大,每种物体的差异性,多样性也大。

    (5)所有图像都是自己通过相机拍摄,而非copy

    (6)公开的,免费的

             图像如下图所示,需要通过matlab来下载,一种奇特的下载方式,下载链接为http://labelme2.csail.mit.edu/Release3.0/index.php

    COCO

           COCO是一种新的图像识别,分割和加字幕标注的数据集。主要由Tsung-Yi Lin(Cornell Tech),Genevieve Patterson (Brown),MatteoRuggero Ronchi (Caltech),Yin Cui (Cornell Tech),Michael Maire (TTI Chicago),Serge Belongie (Cornell Tech),Lubomir Bourdev (UC Berkeley),Ross Girshick (Facebook AI), James Hays (Georgia Tech),PietroPerona (Caltech),Deva Ramanan (CMU),Larry Zitnick (Facebook AI), Piotr Dollár (Facebook AI)等人收集而成。其主要特征如下

    (1)目标分割

    (2)通过上下文进行识别

    (3)每个图像包含多个目标对象

    (4)超过300000个图像

    (5)超过2000000个实例

    (6)80种对象

    (7)每个图像包含5个字幕

    (8)包含100000个人的关键点

             图像如下图所示,支持Matlab和Python两种下载方式,下载链接为http://mscoco.org/

    SUN

             SUN数据集包含131067个图像,由908个场景类别和4479个物体类别组成,其中背景标注的物体有313884个。图像如下图所示,下载链接为http://groups.csail.mit.edu/vision/SUN/

    Caltech

             Caltech是加州理工学院的图像数据库,包含Caltech101和Caltech256两个数据集。该数据集是由Fei-FeiLi, Marco Andreetto, Marc 'Aurelio Ranzato在2003年9月收集而成的。Caltech101包含101种类别的物体,每种类别大约40到800个图像,大部分的类别有大约50个图像。Caltech256包含256种类别的物体,大约30607张图像。图像如下图所示,下载链接为http://www.vision.caltech.edu/Image_Datasets/Caltech101/

    Corel5k

             这是Corel5K图像集,共包含科雷尔(Corel)公司收集整理的5000幅图片,故名:Corel5K,可以用于科学图像实验:分类、检索等。Corel5k数据集是图像实验的事实标准数据集。请勿用于商业用途。私底下学习交流使用。Corel图像库涵盖多个主题,由若干个CD组成,每个CD包含100张大小相等的图像,可以转换成多种格式。每张CD代表一个语义主题,例如有公共汽车、恐龙、海滩等。Corel5k自从被提出用于图像标注实验后,已经成为图像实验的标准数据集,被广泛应用于标注算法性能的比较。Corel5k由50张CD组成,包含50个语义主题。

             Corel5k图像库通常被分成三个部分:4000张图像作为训练集,500张图像作为验证集用来估计模型参数,其余500张作为测试集评价算法性能。使用验证集寻找到最优模型参数后4000张训练集和500张验证集混合起来组成新的训练集。

             该图像库中的每张图片被标注1~5个标注词,训练集中总共有374个标注词,在测试集中总共使用了263个标注词。图像如下图所示,很遗憾本人也未找到官方下载路径,于是github上传了一份,下载链接为https://github.com/watersink/Corel5K


    CIFARCanada Institude For Advanced Research

          CIFAR是由加拿大先进技术研究院的AlexKrizhevsky, Vinod Nair和Geoffrey Hinton收集而成的80百万小图片数据集。包含CIFAR-10和CIFAR-100两个数据集。 Cifar-10由60000张32*32的RGB彩色图片构成,共10个分类。50000张训练,10000张测试(交叉验证)。这个数据集最大的特点在于将识别迁移到了普适物体,而且应用于多分类。CIFAR-100由60000张图像构成,包含100个类别,每个类别600张图像,其中500张用于训练,100张用于测试。其中这100个类别又组成了20个大的类别,每个图像包含小类别和大类别两个标签。官网提供了Matlab,C,python三个版本的数据格式。图像如下图所示,下载链接为http://www.cs.toronto.edu/~kriz/cifar.html


    人脸数据库:

    AFLWAnnotated Facial Landmarks in the Wild

           AFLW人脸数据库是一个包括多姿态、多视角的大规模人脸数据库,而且每个人脸都被标注了21个特征点。此数据库信息量非常大,包括了各种姿态、表情、光照、种族等因素影响的图片。AFLW人脸数据库大约包括25000万已手工标注的人脸图片,其中59%为女性,41%为男性,大部分的图片都是彩色,只有少部分是灰色图片。该数据库非常适合用于人脸识别、人脸测、人脸对齐等方面的究,具有很高的研究价值。图像如下图所示,需要申请帐号才可以下载,下载链接为http://lrs.icg.tugraz.at/research/aflw/

    LFWLabeled Faces in the Wild

           LFW是一个用于研究无约束的人脸识别的数据库。该数据集包含了从网络收集的13000张人脸图像,每张图像都以被拍摄的人名命名。其中,有1680个人有两个或两个以上不同的照片。这些数据集唯一的限制就是它们可以被经典的Viola-Jones检测器检测到(a hummor)。图像如下图所示,下载链接为http://vis-www.cs.umass.edu/lfw/index.html#download

    AFWAnnotated Faces in the Wild

           AFW数据集是使用Flickr(雅虎旗下图片分享网站)图像建立的人脸图像库,包含205个图像,其中有473个标记的人脸。对于每一个人脸都包含一个长方形边界框,6个地标和相关的姿势角度。数据库虽然不大,额外的好处是作者给出了其2012 CVPR的论文和程序以及训练好的模型。图像如下图所示,下载链接为http://www.ics.uci.edu/~xzhu/face/


    FDDBFace Detection Data Set and Benchmark

           FDDB数据集主要用于约束人脸检测研究,该数据集选取野外环境中拍摄的2845个图像,从中选择5171个人脸图像。是一个被广泛使用的权威的人脸检测平台。图像如下图所示,下载链接为http://vis-www.cs.umass.edu/fddb/

    WIDER FACE

       WIDER FACE是香港中文大学的一个提供更广泛人脸数据的人脸检测基准数据集,由YangShuo, Luo Ping ,Loy ,Chen Change ,Tang Xiaoou收集。它包含32203个图像和393703个人脸图像,在尺度,姿势,闭塞,表达,装扮,关照等方面表现出了大的变化。WIDER FACE是基于61个事件类别组织的,对于每一个事件类别,选取其中的40%作为训练集,10%用于交叉验证(cross validation),50%作为测试集。和PASCAL VOC数据集一样,该数据集也采用相同的指标。和MALF和Caltech数据集一样,对于测试图像并没有提供相应的背景边界框。图像如下图所示,下载链接为http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/

    CMU-MIT

         CMU-MIT是由卡内基梅隆大学和麻省理工学院一起收集的数据集,所有图片都是黑白的gif格式。里面包含511个闭合的人脸图像,其中130个是正面的人脸图像。图像如下图所示,没有找到官方链接,Github下载链接为https://github.com/watersink/CMU-MIT

    GENKI

             GENKI数据集是由加利福尼亚大学的机器概念实验室收集。该数据集包含GENKI-R2009a,GENKI-4K,GENKI-SZSL三个部分。GENKI-R2009a包含11159个图像,GENKI-4K包含4000个图像,分为“笑”和“不笑”两种,每个图片的人脸的尺度大小,姿势,光照变化,头的转动等都不一样,专门用于做笑脸识别。GENKI-SZSL包含3500个图像,这些图像包括广泛的背景,光照条件,地理位置,个人身份和种族等。图像如下图所示,下载链接为http://mplab.ucsd.edu,如果进不去可以,同样可以去下面的github下载,链接https://github.com/watersink/GENKI

    IJB-A (IARPA JanusBenchmark A)

           IJB-A是一个用于人脸检测和识别的数据库,包含24327个图像和49759个人脸。图像如下图所示,需要邮箱申请相应帐号才可以下载,下载链接为http://www.nist.gov/itl/iad/ig/ijba_request.cfm

    MALF (Multi-Attribute Labelled Faces)

           MALF是为了细粒度的评估野外环境中人脸检测模型而设计的数据库。数据主要来源于Internet,包含5250个图像,11931个人脸。每一幅图像包含正方形边界框,俯仰、蜷缩等姿势等。该数据集忽略了小于20*20的人脸,大约838个人脸,占该数据集的7%。同时,该数据集还提供了性别,是否带眼镜,是否遮挡,是否是夸张的表情等信息。图像如下图所示,需要申请才可以得到官方的下载链接,链接为http://www.cbsr.ia.ac.cn/faceevaluation/

    MegaFace

        MegaFace资料集包含一百万张图片,代表690000个独特的人。所有数据都是华盛顿大学从Flickr(雅虎旗下图片分享网站)组织收集的。这是第一个在一百万规模级别的面部识别算法测试基准。 现有脸部识别系统仍难以准确识别超过百万的数据量。为了比较现有公开脸部识别算法的准确度,华盛顿大学在去年年底开展了一个名为“MegaFace Challenge”的公开竞赛。这个项目旨在研究当数据库规模提升数个量级时,现有的脸部识别系统能否维持可靠的准确率。图像如下图所示,需要邮箱申请才可以下载,下载链接为http://megaface.cs.washington.edu/dataset/download.html

    300W

           300W数据集是由AFLW,AFW,Helen,IBUG,LFPW,LFW等数据集组成的数据库。图像如下图所示,需要邮箱申请才可以下载,下载链接为http://ibug.doc.ic.ac.uk/resources/300-W/

    IMM Data Sets

           IMM人脸数据库包括了240张人脸图片和240asf格式文件(可以用UltraEdit打开,记录了58个点的地标),共40个人(733男),每人6张人脸图片,每张人脸图片被标记了58个特征点。所有人都未戴眼镜,图像如下图所示,下载链接为http://www2.imm.dtu.dk/~aam/datasets/datasets.html

    MUCT Data Sets

             MUCT人脸数据库由3755个人脸图像组成,每个人脸图像有76个点的地标(landmark),图片为jpg格式,地标文件包含csv,rda,shape三种格式。该图像库在种族、关照、年龄等方面表现出更大的多样性。具体图像如下图所示,下载链接为http://www.milbo.org/muct/

    ORL  (AT&T Dataset)

             ORL数据集是剑桥大学AT&T实验室收集的一个人脸数据集。包含了从1992.4到1994.4该实验室的成员。该数据集中图像分为40个不同的主题,每个主题包含10幅图像。对于其中的某些主题,图像是在不同的时间拍摄的。在关照,面部表情(张开眼睛,闭合眼睛,笑,非笑),面部细节(眼镜)等方面都变现出了差异性。所有图像都是以黑色均匀背景,并且从正面向上方向拍摄。

             其中图片都是PGM格式,图像大小为92*102,包含256个灰色通道。具体图像如下图所示,下载链接为http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html



    VGG Face dataset

    该数据集包含了2622个不同的人,每个人包含1000张图片,是一个训练人脸识别的大的数据集,官网提供了每个图片的URL,需要自己解析下载,当然有些链接是需要翻墙的,要不可能下载不全哦。

    下载链接:http://www.robots.ox.ac.uk/~vgg/data/vgg_face/



    CASIA WebFace Database

    该数据集为中科院自动化所,李子青老师组开源的数据集,包含了10575类人,一共494414张图片,其中有3类人和lfw中的一样。该数据集主要用于人脸识别。图像都是著名电影中crop而出的,每个图片的大小都是250*250,每个类下面都有3张以上的图片,非常适合做人脸识别的训练。现在发paper比较一致的做法都是在该数据集上训练下,再在lfw数据集做个测试。需要邮箱申请,下载链接:http://www.cbsr.ia.ac.cn/english/CASIA-WebFace-Database.html



    CelebA(Large-scale CelebFaces Attributes dataset)

    该数据集为香港中文大学汤晓鸥老师组开源的数据集,主要包含了5个关键点,40个属性值等,包含了202599张图片,图片都是高清的名人图片,可以用于人脸检测,5点训练,人脸头部姿势的训练等。下载链接:http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html


    YouTuBe Faces DB

    该数据集主要用于非约束条件下的视频中人脸识别,姿势判定等。该数据集包含1595个不同人的3425个视频,平均每个人的类别包含了2.15个视频,每个类别最少包含48帧,最多包含6070帧,平均包含181.3帧。下载链接:http://www.cslab.openu.ac.il/agas/,或者,http://www.cslab.openu.ac.il/download/,如果没有效果,可以尝试filezilla下载,

    server:agas.openu.ac.il

    Path: /v/data9/cslab/wolftau/

    filezilla模式设置为"Transfer mode"


    行人检测数据库

    INRIA Person Dataset

             Inria数据集是最常使用的行人检测数据集。其中正样本(行人)为png格式,负样本为jpg格式。里面的图片分为只有车,只有人,有车有人,无车无人四个类别。图片像素为70*134,96*160,64*128等。具体图像如下图所示,下载链接为http://pascal.inrialpes.fr/data/human/

    CaltechPedestrian Detection Benchmark

             加州理工学院的步行数据集包含大约包含10个小时640x480 30Hz的视频。其主要是在一个在行驶在乡村街道的小车上拍摄。视频大约250000帧(在137个约分钟的长段),共有350000个边界框和2300个独特的行人进行了注释。注释包括包围盒和详细的闭塞标签之间的时间对应关系。更多信息可在其PAMI 2012 CVPR 2009标杆的论文获得。具体图像如下图所示,下载链接为http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/


    MIT cbcl (center for biological and computational learning)Pedestrian Data 

             该数据集主要包含2个部分,一部分为128*64的包含924个图片的ppm格式的图片,另一部分为从打图中分别切割而出的小图,主要包含胳膊,脑袋,脚,腿,头肩,身体等。具体图像如下图所示,下载链接为http://cbcl.mit.edu/software-datasets/PedestrianData.html,需要翻墙才可以。

    年龄,性别数据库

    Adience

             该数据集来源为Flickr相册,由用户使用iPhone5或者其它智能手机设备拍摄,同时具有相应的公众许可。该数据集主要用于进行年龄和性别的未经过滤的面孔估计。同时,里面还进行了相应的landmark的标注。是做性别年龄估计和人脸对齐的一个数据集。图片包含2284个类别和26580张图片。具体图像如下图所示,下载链接为http://www.openu.ac.il/home/hassner/Adience/data.html#agegender

    车辆数据库

    KITTIKarlsruhe Institute ofTechnology and Toyota Technological Institute

             KITTI包含7481个训练图片和7518个测试图片。所有图片都是真彩色png格式。该数据集中标注了车辆的类型,是否截断,遮挡情况,角度值,2维和3维box框,位置,旋转角度,分数等重要的信息,绝对是做车载导航的不可多得的数据集。具体图像如下图所示,下载链接为http://www.cvlibs.net/datasets/kitti/

    字符数据库

    MNISTMixed National Instituteof Standards and Technology

             MNIST是一个大型的手写数字数据库,广泛用于机器学习领域的训练和测试,由纽约大学的Yann LeCun整理。MNIST包含60000个训练集,10000个测试集,每张图都进行了尺度归一化和数字居中处理,固定尺寸大小为28*28。具体图像如下图所示,下载链接为http://yann.lecun.com/exdb/mnist/

    人群密度估计数据库

    UCSD 

    该数据集分为,UCSD Pedestrain ,people annotation,people counting三个部分,下载链接为:http://visal.cs.cityu.edu.hk/downloads/

     

    PETS

    该数据集包含S0,S1,S2,S3四个子集,S0为训练数据,S1为行人计数和密度估计,S2为行人跟踪,S3为流分析和事件识别,下载链接为:http://www.cvg.reading.ac.uk/PETS2009/a.html



    Mall dataset

    下载链接为:http://personal.ie.cuhk.edu.hk/~ccloy/downloads_mall_dataset.html


    ShanghaiTech_Crowd_Counting_Dataset:

    该数据集为上海科技大学研究生张营营,在其2016cvpr中所使用的数据集,数据集分为A,B两部分,每一部分都分好了train和test,下载链接为:https://pan.baidu.com/s/1gfyNBTh


    UCF_CC_50

    官方的我也没找到,自己传一个自己的,下载链接为:http://download.csdn.net/detail/qq_14845119/9800218


    人头检测数据库

    HollywoodHeads dataset

    该数据集为从视频中截取的图片,包含224740张jpeg格式图片,还有xml格式的标注,和VOC的标注方式一样。下载链接为:http://www.di.ens.fr/willow/research/headdetection/release/HollywoodHeads.zip


    车型识别数据库

    CompCars

    该数据集包含208826个车辆图片工1716种最新款的车辆型号,是由实际场景和网上图片组成的数据集。包含了车辆的,

    car hierarchy(car make ,car model,year of manufacture),

    car attribute(maximum speed, displacement, num of doors, num of seats, type of car),

    viewpoints(front(F), rear(R), side(S), front-side(FS), rear-side(RS)),

    car parts(headlight ,taillight, fog light, air intake, console, steering wheel, dashboard, gear lever )

    等属性。下载链接为,http://mmlab.ie.cuhk.edu.hk/datasets/comp_cars/index.html




    持续跟新中……


    展开全文
  • 1. 什么是图数据库 图数据库是基于数学里图论的思想和算法而实现的高效处理复杂关系网络的新型数据库系统。 图形数据库善于高效处理大量的、复杂的、互联的、多变的数据。其计算效率远远高于传统的关系型数据库。 ...

    1. 什么是图数据库

    1. 图数据库是基于数学里图论的思想和算法而实现的高效处理复杂关系网络的新型数据库系统。
    2. 图形数据库善于高效处理大量的、复杂的、互联的、多变的数据。其计算效率远远高于传统的关系型数据库。
    3. 图形数据库在社交网络、实时推荐、征信系统、人工只能等领域有着广泛的应用

    2. 为什么要使用图数据库

    1. 世界本身就是由关系组成的

    2. 关系型数据库处理不好关系

    3. 图数据库最适合处理关系
      在这里插入图片描述

    4. 关系型数据库不能很好的处理关系

    • 4.1 建模难:不复杂就不能检模和存储数据和关系
    • 4.2 性能低:随着关系数量和层次的增加数据库尺寸的增加,性能低
    • 4.3 查询难:需要使用Join操作,查询复杂性增加
    • 4.4 扩展难:增加新类型的数据和关系需要重新设计模式
      最终导致传统数据库不适用于有实时价值的数据关系
    1. 非图数据库的NoSql数据库也不处理关系
    • 5.1 没有数据结构建模或存储数据关系
    • 5.2 没有查询结构支持数据关系
    • 5.3 在应用中连接数据需要"Join逻辑"
    • 5.4 对事务没有ACID支持{原子性、隔离性、持续性、一致性}
      导致NoSql数据库不适用于有实时价值的数据关系

    3. 关系型数据库于图数据库数据存储结构对比

    在这里插入图片描述

    4. 图数据库的应用场景

    图数据库技术已经应用于现实生活中的方方面面,诸如 Google、Facebook 等科技巨头已经开始使用图数据库的力量来蓬勃发展业务。据 Gartner 在《十大数据分析技术趋势》预测,2012 年至 2022 年,全球图处理及图数据库的应用都将以每年 100% 的速度迅猛增长。

    如果说知识图谱是图数据库的底层应用场景,充分利用了图模型在存储和查询的优势为多行业提供知识服务。那么金融风控则是具有行业特点的高阶应用场景。

    4.1 知识图谱

    1. 知识图谱作为图数据库的底层应用,已服务于多种行业,包括:智能问答、搜索、个性化推荐等。以智能问答为例,产品主要分为聊天机器人、行业智能问答系统两种。开放领域的知识图谱能为聊天机器人提供广泛知识,机器不仅能和使用者聊天还能提供日常知识。行业智能问答系统则使用行业知识图谱,能够为用户有针对性的提供专业领域知识,在法律、医疗行业已得到运用。

    2. 在知识图谱的应用落地上,主要有两点因素影响着知识图谱的质量和实现 -NLP 自然语言处理引擎、算法库。NLP 自然语言处理引擎决定了 NLP 爬虫平台获取数据的质量和数量,而这些原始数据作为知识图谱的知识原料又决定了知识图谱的水平。算法库中的图算法决定了图构建、图存储和图操作的能力,知识原料丰富而图算法落后,依然不能构建出强大的知识图谱。

    4.2 金融反欺诈

    1. 图数据库通过利用多维交叉关联信息深度刻画申请和交易行为,可以有效识别规模化、隐蔽性的欺诈网络和洗钱网络;结合机器学习、聚类分析、风险传播等相关算法,可以实时计算用户的风险评分,在风险行为发生前预先识别,有效帮助金融机构提升效率、降低风险。应用图数据库的金融风控场景很多,例如个人信贷、洗钱路径追踪、个人 / 企业征信等

    2. 基于图数据库在金融风控的优异表现,很多企业表示对这项技术的看好,在这之中也有一些前瞻性的企业已率先使用此技术并取得竞争性优势。图技术发展多年,这项技术仍然有很多企业没有使用,是什么原因阻碍了技术的推进?

    3. 首先是数据存储的问题,在反洗钱的场景中,需对用户的借记卡和信用卡数据存储分析。在存储时发现,仅 10 个月借记卡数据 +1 个月信用卡数据规模就有 5 个 T,这样的数据量是过去图数据库无法支持的。

    4. 第二点是多步分析问题。在反洗钱应用场景中需要做到 3-10 步以上的分析,而目前的图数据库在企业级场景下,2 度到 3 度查询时就会出现超时或者内存溢出的问题。这样的性能对于欺诈甄别的帮助很小。

    5. 针对这些问题,图数据库厂商正在积极构建成熟的解决方案来满足这两点要求,市面上有越来越多高性能图数据库出现。目前,部分企业采取的替代方案是通过图数据库 + 大数据平台的方式实现大数据量的效果,但是这样的解决方案由于技术门槛较高无法轻易掌握。

    展开全文
  • 图数据库:6 图数据库的内部结构

    千次阅读 2017-12-20 10:40:29
    使用Neo4j图数据库举例说明有几个原因。Neo4j是一个具有原生处理功能和原生图存储的图数据库。它的优点还在于透明度,因为它是开源的,这使富有冒险精神的读者可以很容易深入研究其代码。 6.1 原生图处理  假如...

       使用Neo4j图数据库举例说明有几个原因。Neo4j是一个具有原生处理功能和原生图存储的图数据库。它的优点还在于透明度,因为它是开源的,这使富有冒险精神的读者可以很容易深入研究其代码。

    6.1 原生图处理

      假如图数据库存在免索引邻接属性,那么我们说它具有原生处理能力。

      使用免索引邻接的数据库引擎中的每个节点都会维护其对相邻节点的引用。因此每个节点都表现为其附近节点的微索引,这比使用全局索引代价小很多。这意味着查询时间与图的整体规模无关,它仅和所搜索图的数量成正比。

      相反,一个非原生图数据库引擎使用(全局)索引连接各个节点。这些索引对每个遍历都添加一个间接层,因此会导致更大的计算成本。原生图处理的拥护者认为免索引邻接至关重要,因为它提供快速、高效的图遍历。

      索引查找在小型网络中可以工作,但对于大图的查询代价太高。具有原生图处理能力的图数据库在查询是不是使用索引查找来扮演联系的角色,而是使用免索引邻接来确保高性能遍历的。

    6.2 原生图存储

       如果免索引邻接是高性能遍历、查询和写入的关键,那么图数据库设计的一个关键方面是存储图的方式。高效的、本机化的图存储式支持任意图算法的极快遍历--这是使用图的重要原因。



       节点存储文件用来存储节点的记录。每个用户级的图中创建的节点最终会终结于节点存储,其物理文件是"neostore.nodestore.db"。像大多数Neo4j存储文件一样,节点存储区是固定大小的记录存储,每个记录长度为9字节。通过大小固定的记录可以快速查询存储文件中的节点。

       一个节点记录的第一个字节是“是否在使用”标志位。它告诉数据库该记录目前是被用于存储节点,还是可回收用于表示一个新的节点。接下来的4字节表示关联到该节点的第一个联系,随后4字节表示该节点的第一个属性的ID。标签的5字节指向该节点的标签存储(如果标签很少的话也可以内联到节点中)。最后的字节extra是标志保留位。这样一个标志是用来标识紧密连接节点的,而省下的空间为将来预留。节点记录是相当轻量级的:它真的只是几个指向联系和属性列表的指针。

        相应的,联系被存储于联系存储文件中,物理文件是neostore.relationshipstore.db。像节点存储一样,联系存储区的记录的大小也是固定的。每个联系记录包含联系的起始点ID和结束节点ID、联系类型的指针(存储在联系类型存储区),起始节点和结束节点的上一个联系和下一个联系,以及一个指示当前记录是否位于联系链最前面。

       


       两个节点记录都包含一个指向该节点的第一个属性的指针和联系链中第一个联系的指针。要读取节点的属性,我们从指向第一个属性的指针开始遍历单向链表结构。要找到一个节点的联系,我们从指向第一个联系(在示例中为LIKES联系)的节点联系指针开始,顺着特定节点的联系的双向链表寻找(即起始节点的双向链表或结束节点的双向链表),直到找到感兴趣的联系。一旦找到了我们想要的联系记录,我们可以使用和寻找节点属性一样的单向链表结构读取这种联系的属性(如果有的话),也可以使用联系关联的起始节点ID和结束节点ID检查它们的节点记录。用这些ID乘以节点记录的大小,就可以立即算出每个节点在节点存储文件中的偏移量。

       联系存储文件中的双向链表:


    6.3 用于编程的API


    6.4 非功能型特性

         事务

         可恢复性

         可用性

         可扩展性

         




    展开全文
  • 图数据库Neo4j简介

    万次阅读 2019-01-14 15:03:44
    图数据库本身属于NoSql数据库中的一种,是基于数学中图论实现的一种数据库。不同于传统的关系型数据库将数据存在库表字段中,图数据库将数据和数据之间的关系存在节点和边中,在图数据库中这被称作“节点”和“关系...

    图数据库本身属于NoSql数据库中的一种,是基于数学中图论实现的一种数据库。不同于传统的关系型数据库将数据存在库表字段中,图数据库将数据和数据之间的关系存在节点和边中,在图数据库中这被称作“节点”和“关系”。没有了库表字段的概念,相当于是把数据存在了一张大宽表中。传统数据库的一些特性如CRUD、处理事务的能力在图数据库中也都支持。

    这里需要澄清一个概念:图数据库并不是前端展示用的数据库,它不是用来画图的。相反,它是用来存储数据用的,以图的节点和边的方式来存储数据。而前端展现需要用一些前端展示工具,例如D3、ECharts等来实现。

    本文将以Neo4j为例来介绍图数据库的使用。Neo4j是由Java实现的开源NoSql图数据库,是图数据库中较为流行的一款。它提供了完整的数据库特性,包括ACID事务的支持、集群支持、备份与故障转移等(部分功能例如集群支持只有在neo4j企业版中才有,社区版不支持)。

    在我看来,图数据库最大的优势是体现在对数据关系的检索上。如果数据之间的关系很复杂,数据存在了多张表中,还有一些中间表的存在的话,传统数据库想要查询一些数据得通过各种联表操作才做得到,sql会写得很复杂,不利于维护,同时性能也不高。而图数据库仅仅通过简单的一句cypher语句便可实现查询功能(cypher语句是Neo4j的执行语句,类似于关系型数据库中的SQL),同时执行速度也会快很多(书中所说是能够实现毫秒级响应,但通过我实测其实并没有这么夸张。Neo4j是将数据存在内存中的,对硬件有一定要求。所以数据越来越多的情况下,同时也有事务的因素,查询速度也会变慢)。

    图数据库也支持查询一些复杂的关系。例如某节点周围一级的关系节点有哪些,二级的关系又有哪些。拿社交网络来举例,假如我现在要实现一个查询某人可能认识的人有哪些的功能。那么这个功能翻译成cypher就是:查询这个人A的周围一圈认识的人的集合B中,所有B周围一圈人中和A没有交集的人。这个用cypher语句是能写出来的,同时也不会太复杂。

    Neo4j的下载安装不做过多说明,官网上都可以下载,另外在微云数聚网站上也可以下载(我学习所使用的参考书籍正是张帜老师主编的《Neo4j权威指南》,他所创办的微云数聚公司也一直专注于研究图数据库技术及其应用)。

    启动Neo4j成功后,可用浏览器打开网址:http://localhost:7474/,就可以看到Neo4j的操作界面了,如下图所示。在最上面的输入框就可以输入cypher语句来操作数据了。

    简单的一些语法例如:

    <1>创建节点的语句:create(n:Person { name: 'Robert Hou', job: 'programmer'}),将会生成一个带有标签和属性的节点。

    <2>创建关系的语句:match (a {name:'RobertHou'}), (b {name:'Lenovo'}) create(a)-[:HAS]->(b),将会创建一条关系连接两个节点。

    同时cypher也支持sql中的一些关键字查询,例如:order by、union、limit等;聚集函数也同样支持。

    比较有意思的语法是Neo4j中支持搜索最短路径和全部路径的功能。只要输入起止节点,调用shortestPathallShortestPaths方法就可以得到想要的结果了。下图是Neo4j中一个电影的官方例子。节点有演员、导演和电影等。导演导演了某部电影,演员参演了某部电影。

    <3>查询两点之间的全部路径:match (Al:Person {name: 'Al Pacino'}),(Kevin:Person {name: 'Kevin Bacon'}), p = allShortestPaths((Al)-[*..15]-(Kevin))return p

    可以看到Al节点到Kevin节点的全部路径有两条。

    <4>查询两点之间的最短路径:match (Al:Person {name: 'Al Pacino'}),(Kevin:Person {name: 'Kevin Bacon'}), p = shortestPath((Al)-[*..15]-(Kevin))return p

    可以看到Al节点到Kevin节点的最短路径变成了一条。

    其他的语法可以参考其他文章。本文不做过多赘述。同时,Neo4j和Spring的集成可以参考我的另一篇文章《Neo4j+D3展现的应用实例》。需要注意的是Spring-Data-Neo4j库不支持jdk8以前的版本,相关的jar包版本和Neo4j的版本号也要兼容,同时也要注意包可能存在冲突的问题。

    Neo4j也支持事务,在java中的写法大致类似于下面这样:

    try {
        Tranction tx = graphDatabaseService.beginTx() {
        //和图数据库的交互语句
        tx.success();
        }
    }

    这里需要注意的是如果有循环操作图数据库的情况,一定不要在循环体里面开启关闭事务。应在循环体外开启和关闭事务,即一次开闭事务,在事务里面进行循环。

    我之前就吃了这个亏,在循环体里开启关闭事务。如果循环了100次,则会有100次开闭事务,这个效率会有很大的问题。优化了代码之后,执行效率有显著提高。同样的思想也可用在java和数据库的交互上。像mybatis这样的持久层框架也都支持foreach功能。我们应该尽量用起来,减少java和数据库的交互次数。

    最后想说的是Neo4j社区版还是应该用在平时的学习中,用在项目中可能会有不稳定的情况出现(不确定是否是使用了社区版导致的原因)。例如我将Neo4j用在了实际的项目开发中,项目部署后经常出现图数据库自己关闭的情况。具体原因也需进一步研究。

    图数据库的前景很广,值得你我去深入研究!

    展开全文
  • 初识图数据与图数据库

    万次阅读 2018-06-09 09:19:10
    一、数据NoSQL(Not Only SQL)数据库泛指非关系型的数据库数据库常常可以用来处理传统的关系型数据库所难以解决的一系列问题。通常情况下,这些NoSQL数据库分为Graph,Document,Column Family以及Key-Value ...
  • 医学图像数据库

    千次阅读 2018-10-22 13:43:14
    1、肺结节数据库LIDC-IDRI: CSDN数据库介绍:http://blog.csdn.net/dcxhun3/article/details/54289598 数据库网址:https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI 2、乳腺图像数据库DDSM ...
  • 常用图像数据库

    千次阅读 2018-10-15 09:59:42
    常用图像数据库 1,http://www.multitel.be/cantata/ 这个网址提供了大量的视频和图像的数据库下载索引,并有相应的介绍,强烈推荐!大家慢慢去找寻自己的惊喜吧 2,...
  • 图形数据库简介

    千次阅读 2017-07-20 15:28:55
    我们来谈谈图形数据库。 一些行业观察家声称 他们是增长最快的数据库类型。如果是这样,也许知道更多关于它们是有用的。  从基础开始:什么是图形数据库,它有什么用?  这是简短的答案。图表数据库将数据存储...
  • Neo4j图数据库初识

    千次阅读 2017-08-04 22:53:41
    graphdatabase图数据库的笔记之Neo4j图数据库初识目录 什么是图数据库 为什么使用图数据库 Neo4j的下载安装 Cypher查询语言 Neo4j的各类API 事务 Neo4j数据建模 大规模数据导入neo4j 一.什么是图数据库 关键词:...
  • 基于图数据库的复杂网络分析能力

    千次阅读 2020-05-17 15:57:34
    基于图数据库的复杂网络分析能力概览一、社交网络与图数据库技术二、搜索排名与图数据库技术三、评分系统与图数据库技术四、自然语言处理与图数据库技术五、推荐引擎与图数据库技术六、知识推理与图数据库技术七、...
  • 图数据库和关系型数据库的比较

    千次阅读 2019-08-25 20:34:00
    戳上面的蓝字关注我们哦!为什么要使用图形数据库,或者更具体地说是Neo4j作为我们数据库选择?01人们在逻辑上通常很自然使用类似的结构来模拟或描述它们的特定问题域。权限...
  • 图数据库Neo4j入门

    千次阅读 2017-03-31 19:48:22
    图数据库Neo4j入门 作者:雨水/家辉 日期:2017年3月31日 CSDN博客:http://blog.csdn.net/gobitan 摘要:Neo4j是目前应用最为广泛的图数据库,它特别适合于处理复杂网络关系。Neo4j支持多种不同的操作系统,这里...
  • 图数据库概述

    千次阅读 2017-06-14 16:40:41
    1. 简介在数据结构中, 图是顶点(vertex)与边(edge)的集合. 顶点与边可以有各自的属性....为了存储与查询这些关系, 图数据库(Graph Database)就诞生了. Graph Database at wiki-pedia举个例子看一下. 图1-
  • 为了图数据库使用者更好的掌握Gremlin这门图语言,我们对Gremlin Steps进行了分类与总结,接下来将会为大家出一个Gremlin系列文章(初步准备分20~25期来完成这个计划),每一期会针对一类Step进行语法讲解与实例分析...
  • 大数据图数据库之TAO数据库

    千次阅读 2014-09-17 20:08:32
    14.1.2 TAO图数据库  Facebook是目前世界上最著名的社交网站,如果从数据抽象的角度来看,Facebook的社交图不仅包括好友之间的关系,还包括人与实体以及实体与实体之间的关系,每个用户、每个页面、每张图片、每...
  • 图数据库JanusGraph与neo4j对比

    千次阅读 2019-06-10 17:34:18
    何时需要使用图数据库图数据库常用领域怎么确定需要使用图数据库图数据库的种类Neo4J和JanusGraph比较JanusGraph大型用户JanusGraph功能【官网介绍】Neo4j的企业与社区版本对比 什么是图? ​ 图由两个元素组成:...
  • 图形数据库Neo4j

    千次阅读 2017-08-03 19:53:18
    图表数据库是当今巨大的宏观业务趋势之一:在高度连接的数据中利用复杂和动态的关系,产生洞察力和竞争优势。无论我们想要了解客户之间的关系,电话或数据中心网络中的元素,娱乐生产商和消费者,还是基因和蛋白质,...
  • 图数据库中训练GCN模型,可以利用图数据库的分布式计算框架现实应用中大型图的可扩展解决方案 什么是图卷积网络? 典型的前馈神经网络将每个数据点的特征作为输入并输出预测。利用训练数据集中每个数据点的特征和...
  • py2neo操作图数据库neo4j

    千次阅读 热门讨论 2019-09-03 23:21:11
    图数据库:以图的结构存储管理数据的数据库。其中一些数据库将原生的图结构经过优化后直接存储,即原生图存储。还有一些图数据库将图数据序列化后保存到关系型或其他数据库中。 之所以使用图数据库存储数据是因为它...
  • 你是否不知道图数据库是什么?你是否还在为关系型数据库中节点以及关系查询的耗时长而苦恼?你是否还在纳闷图数据库为啥比关系型数据库更适合查询节点以及关系等?你是否还在犹豫是不是要使用图数据库? 本场 Chat ...
  • 什么是原生(Native)图数据库

    千次阅读 2020-04-06 17:48:04
    原生(Native)图数据库指的是以图的方式存储、处理、查询和展现数据。原生图数据库在关系遍历和路径搜索类查询应用中有着最佳的性能。Neo4j是原生图数据库的倡导者,也是当前最流行、最成熟的原生图数据库软件的...
  • d3.js可视化neo4j图数据库项目

    万次阅读 多人点赞 2018-07-23 15:35:26
    关于”d3.js可视化neo4j图数据库”这个项目(专栏)的重要通知 项目效果视频展示:d3.js可视化neo4j图数据库项目效果演示 因为CSDN博客更新了,使得编辑器极其的不好用!!!!所以我将本已写好的博客重新以微信...
  • 深度学习开源图片数据库汇总

    万次阅读 多人点赞 2017-05-08 16:26:49
    显然这也是非常耗时的,所以在入门阶段我们完全可以用现有的开源图片库快速完成前期的准备工作:ImageNet  ImageNet是根据WordNet层次结构(目前只有名词)组织的图像数据库,其中层次结构的每个节点都由数百和数...
  • 最近我在用图形数据库来完成对一个初创项目的支持。在使用过程中觉得这种图形数据库实际上挺有意思的。因此在这里给大家做一个简单的介绍。 NoSQL数据库相信大家都听说过。它们常常可以用来处理传统的关系型...
  • 图数据库HugeGraph简介与快速入门

    千次阅读 2019-02-11 09:00:37
    图数据库HugeGraph简介与快速入门 作者:胡佳辉(家辉),日期:2019年2月10日 CSDN博客:https://blog.csdn.net/gobitan   1. HugeGraph简介 1.1 HugeGraph概述 HugeGraph是一款由百度开源的图数据库(Graph ...
  • 图数据库 JanusGraph

    千次阅读 2018-09-14 17:23:13
    图数据库 JanusGraph 知识图谱 1.什么是知识图谱 知识图谱:是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们...
  • 图数据库及应用场景

    千次阅读 2019-04-12 10:30:29
    腾讯云数据库产品副总监邵宗文老师将通过多年腾讯云数据库积累的行业经验和服务客户案例,结合云数据库与自建数据库的对比,和大家分享数据库行业分析发展趋势,帮助企业借助图数据库提升行业竞争力,加快企业高速...
  • 图数据库 TigerGraph 使用全攻略

    万次阅读 2019-01-13 09:13:56
    与关系型数据库或其他类型的 NoSQL 数据库相比,图数据库提供了更有效的关系和网络建模方法。在 1999 年左右,图数据库领域还是 Neo4j 一家独大,但是发展至今,该领域也出现了很多新玩家和新产品。TigerGraph 是一...
  • neo4j(一).初识图数据库neo4j

    千次阅读 2019-02-26 19:00:22
    neo4j是图数据库 初识neo4j,首先我们要知道neo4j是图数据库。我们平常用的数据库一般是RDBMS(关系型数据库),那么什么是图数据库呢?既然有了关系型数据库,那么为什么要有图数据库呢? 1.什么是图数据库 简单来...
  • HugeGraph图数据库有哪些功能?

    千次阅读 2018-08-26 19:54:07
    图数据库(Graph Database)是一种使用顶点、边和属性来表示与存储数据,并以图结构进行语义查询的数据库。图数据库的关键概念是边,通过边将顶点连接在一起,从而进行快速的图检索操作。 HugeGraph是一款开源...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,692
精华内容 66,676
关键字:

图数据库