精华内容
下载资源
问答
  • 对比的例子有哪些
    千次阅读
    2022-01-13 18:16:03

    对比学习是一种通过对比正反两个例子来学习表征的自监督学习方法。对于自监督对比学习,下一个等式是对比损失:

    L i , j = − log ⁡ e x p ( z i ⋅ z j / τ ) ∑ k = 1 , k ≠ i 2 N e x p ( z i ⋅ z k / τ ) \mathcal{L}_{i,j} = - \log \frac{exp(\textbf{z}_i \cdot \textbf{z}_j / \tau)}{\sum_{k=1,k\neq i}^{2N}exp(\textbf{z}_i \cdot \textbf{z}_k / \tau)} Li,j=logk=1,k=i2Nexp(zizk/τ)exp(zizj/τ)

    在很多情况下,对比学习只需要对每一个样本生成一个正样本,同一个batch内的其他样本作为负样本,实现如下:

    def contrastive_loss(x, x_aug, T):
        """
        :param x: the hidden vectors of original data
        :param x_aug: the positive vector of the auged data
        :param T: temperature
        :return: loss
        """
        batch_size, _ = x.size()
        x_abs = x.norm(dim=1)
        x_aug_abs = x_aug.norm(dim=1)
    
        sim_matrix = torch.einsum('ik,jk->ij', x, x_aug) / torch.einsum('i,j->ij', x_abs, x_aug_abs)
        sim_matrix = torch.exp(sim_matrix / T)
        pos_sim = sim_matrix[range(batch_size), range(batch_size)]
        loss = pos_sim / (sim_matrix.sum(dim=1) - pos_sim)
        loss = - torch.log(loss).mean()
        return loss
    

    如果要用生成的负样本进行对比,代码如下:

    def info_nce_loss(self, features):
        labels = torch.cat([torch.arange(self.args.batch_size) for i in range(self.args.n_views)], dim=0)
        labels = (labels.unsqueeze(0) == labels.unsqueeze(1)).float()
        labels = labels.to(self.args.device)
    
        features = F.normalize(features, dim=1)
    
        similarity_matrix = torch.matmul(features, features.T)
        # assert similarity_matrix.shape == (
        #     self.args.n_views * self.args.batch_size, self.args.n_views * self.args.batch_size)
        # assert similarity_matrix.shape == labels.shape
    
        # discard the main diagonal from both: labels and similarities matrix
        mask = torch.eye(labels.shape[0], dtype=torch.bool).to(self.args.device)
        labels = labels[~mask].view(labels.shape[0], -1)
        similarity_matrix = similarity_matrix[~mask].view(similarity_matrix.shape[0], -1)
        # assert similarity_matrix.shape == labels.shape
    
        # select and combine multiple positives
        positives = similarity_matrix[labels.bool()].view(labels.shape[0], -1)
    
        # select only the negatives the negatives
        negatives = similarity_matrix[~labels.bool()].view(similarity_matrix.shape[0], -1)
    
        logits = torch.cat([positives, negatives], dim=1)
        labels = torch.zeros(logits.shape[0], dtype=torch.long).to(self.args.device)
    
        logits = logits / self.args.temperature
        return logits, labels
    
    self.criterion = torch.nn.CrossEntropyLoss()
    loss = self.criterion(logits, labels)
    

    更多内容访问 omegaxyz.com
    网站所有代码采用Apache 2.0授权
    网站文章采用知识共享许可协议BY-NC-SA4.0授权
    © 2022 • OmegaXYZ-版权所有 转载请注明出处

    更多相关内容
  • 时间对比易语言例子
  • 易语言文件快照对比源码.zip易语言项目例子源码下载易语言文件快照对比源码.zip易语言项目例子源码下载易语言文件快照对比源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3....
  • 监督对比学习的一个简单的例子

    千次阅读 2021-05-13 00:23:27
    关注公众号,选择加“星标“或“置顶” 因公众号更改了推送规则,记得读完点“在看”~下次AI公园的新文章就能及时出现在您的订阅列表中 作者:Dimitre Oliveira 编译:ronghuaiyang 导读 使用监督对比学习来进行...

    点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”

    因公众号更改了推送规则,记得读完点“在看”~下次AI公园的新文章就能及时出现在您的订阅列表中


    作者:Dimitre Oliveira

    编译:ronghuaiyang

    导读

    使用有监督对比学习来进行木薯叶病害识别。

    论文链接:https://arxiv.org/abs/2004.11362

    监督对比学习(Prannay Khosla等人)是一种训练方法,它在分类任务上优于使用交叉熵的监督训练。

    这个想法是,使用监督对比学习(SCL)的训练模型可以使模型编码器从样本学习更好的类表示,这应该导致更好的泛化,并对于图像和标签的错误更具鲁棒性。

    在本文中,你将了解什么是监督对比学习,以及监督对比学习是如何工作的,你会看到代码实现、一个应用程序的例子,最后将看到SCL和常规交叉熵之间的比较。

    简而言之,SCL就是这样工作的:

    在嵌入空间中将属于同一类的聚类点聚在一起,同时将来自不同类的样本簇分离。

    有许多对比学习方法,如" 监督对比学习"," 自监督对比学习"," SimCLR "等,它们的比对部分都是共同的,它们学习来自一个域的样本和来自另一个域的样本的差别,但SCL以监督的方式利用标签信息完成这项任务。

    不同的训练方法的结构

    本质上,用监督对比学习对分类模型进行训练分为两个阶段:

    1. 训练编码器,学习生成输入图像的向量表示,这样,同类别图像的表示将比不同类别图像的表示更加相似。

    2. 在参数冻结的编码器上训练一个分类器。

    例子

    我们将把监督比较学习应用于Kaggle竞赛的数据集(Cassava Leaf Disease Classification),目的是将木薯叶的图像分类为5类:

    0: Cassava Bacterial Blight (CBB)
    1: Cassava Brown Streak Disease (CBSD)
    2: Cassava Green Mottle (CGM)
    3: Cassava Mosaic Disease (CMD)
    4: Healthy
    

    我们有四种疾病和一种健康的叶子,下面是一些图像样本:

    来自比赛的木薯叶图像样本

    数据有21397图像用于训练,大约有15000图像用于测试集。

    实验设置

    • 数据:图像分辨率512 × 512像素。

    • 模型(编码器):EfficientNet B3。

    你可以在这里查看:https://www.kaggle.com/dimitreoliveira/cassava-leaf-supervised-contrastive-learning

    通常,对比学习方法能更好地工作,如果每个训练一个batch都有每个类的样本,这将有助于编码器学会对比不同域之间的差别,这意味着需要使用一个大的batch size,在这种情况下,我已经对每个类进行了过采样,所以每个batch的样本中每个类样本的概率大致相同。

    数据集中的类别分布,过采样之后

    数据增强通常有助于计算机视觉任务,在我的实验中,我也看到了数据增强的改进,这里我使用剪切,旋转,翻转,作物,剪切,饱和度,对比度和亮度的变化,它可能看起来很多,但图像没有和原始图像有太大不同。

    增强后的数据样本

    现在我们可以看看代码了

    编码器

    我们的编码器将是一个“EfficientNet B3”,但是在编码器的顶部有一个平均池化层,这个池化层将输出一个2048大小的向量,稍后它将用于检查编码器学习到的表示。

    def encoder_fn(input_shape):
        inputs = L.Input(shape=input_shape, name=’inputs’)
        base_model = efn.EfficientNetB3(input_tensor=inputs, 
                                        include_top=False,
                                        weights=’noisy-student’, 
                                        pooling=’avg’)
     
        model = Model(inputs=inputs, outputs=base_model.outputs)
        return model
    

    投影头

    投影头位于编码器的顶部,负责将编码器嵌入层的输出投影到更小的尺寸中,在我们的例子中,它将2048维的编码器投影到128维的向量中。

    def add_projection_head(input_shape, encoder):
        inputs = L.Input(shape=input_shape, name='inputs')
        features = encoder(inputs)
        outputs = L.Dense(128, activation='relu', 
                          name='projection_head', 
                          dtype='float32')(features)
        
        model = Model(inputs=inputs, outputs=outputs)
        return model
    

    分类头

    分类器头用于的可选的第二阶段训练,在SCL 训练阶段之后,我们可以去掉投影头,把这个分类器头加到编码器上,并使用常规的交叉熵损失来finetune模型,这样做的时候,需要冻结编码器层。

    def classifier_fn(input_shape, N_CLASSES, encoder, trainable=False):
        for layer in encoder.layers:
            layer.trainable = trainable
            
        inputs = L.Input(shape=input_shape, name='inputs')
        
        features = encoder(inputs)
        features = L.Dropout(.5)(features)
        features = L.Dense(1000, activation='relu')(features)
        features = L.Dropout(.5)(features)
        outputs = L.Dense(N_CLASSES, activation='softmax', 
                          name='outputs', dtype='float32')(features)
    
        model = Model(inputs=inputs, outputs=outputs)
        return model
    

    监督对比学习损失

    这是SCL损失的代码实现,这里唯一的参数是temperature,“0.1”是默认值,但它可以调整,较大的temperatures可以导致类更分离,但较小的temperatures 有益于较长的训练。

    class SupervisedContrastiveLoss(losses.Loss):
        def __init__(self, temperature=0.1, name=None):
            super(SupervisedContrastiveLoss, self).__init__(name=name)
            self.temperature = temperature
    
        def __call__(self, labels, ft_vectors, sample_weight=None):
            # Normalize feature vectors
            ft_vec_normalized = tf.math.l2_normalize(ft_vectors, axis=1)
            # Compute logits
            logits = tf.divide(
                tf.matmul(ft_vec_normalized, 
                          tf.transpose(ft_vec_normalized)
                ), temperature
            )
            return tfa.losses.npairs_loss(tf.squeeze(labels), logits)
    

    训练

    我将跳过Tensorflow样板训练代码,因为它非常标准,但是你可以在这里:https://www.kaggle.com/dimitreoliveira/cassava-leaf-supervised-contrastive-learning/notebook#Training-(supervised-contrastive-learning查看完整的代码。

    第一个训练步骤 (编码器 + 投影头)

    第一阶段的训练是用编码器+投影头,使用有监督对比学习损失。

    构建模型

    with strategy.scope(): # Inside a strategy because I am using a TPU
      encoder = encoder_fn((None, None, CHANNELS)) # Get the encoder
      encoder_proj = add_projection_head((None, None, CHANNELS),encoder)
      # Add the projection head to the encoderencoder_proj.compile(optimizer=optimizers.Adam(lr=3e-4), 
                        loss=SupervisedContrastiveLoss(temperature=0.1))
    

    训练

    model.fit(x=get_dataset(TRAIN_FILENAMES, 
                            repeated=True, 
                            augment=True), 
              validation_data=get_dataset(VALID_FILENAMES, 
                                          ordered=True), 
              steps_per_epoch=100, 
              epochs=10)
    

    第二个训练步骤 (编码器 + 分类头)

    对于训练的第二阶段,我们删除投影头,并在编码器的顶部添加分类器头,现在该编码器已经训练了权值。对于这一步,我们可以使用常规的交叉熵损失,像往常一样训练模型。

    构建模型

    with strategy.scope():
        model = classifier_fn((None, None, CHANNELS), N_CLASSES, 
                              encoder, # trained encoder
                              trainable=False) # with frozen weights    model.compile(optimizer=optimizers.Adam(lr=3e-4),
                      loss=losses.SparseCategoricalCrossentropy(), 
                      metrics=[metrics.SparseCategoricalAccuracy()])
    

    训练

    和之前几乎一样

    model.fit(x=get_dataset(TRAIN_FILENAMES, 
                            repeated=True, 
                            augment=True), 
              validation_data=get_dataset(VALID_FILENAMES, 
                                          ordered=True), 
              steps_per_epoch=100, 
              epochs=10)
    

    可视化输出向量

    评估编码器的学习表示的一种有趣的方法是可视化特征嵌入的输出,在我们的例子中,它是编码器的最后一层,即平均池化层。在这里,我们将比较用SCL训练的模型和另一个用常规交叉熵训练的模型,你可以在:https://www.kaggle.com/dimitreoliveira/cassava-leaf-supervised-contrastive-learning中看到完整的训练。可视化是通过在验证数据集的嵌入输出上应用t-SNE生成的。

    交叉熵的嵌入

    对使用交叉熵训练的模型嵌入进行可视化

    监督对比学习的嵌入

    使用SCL训练出的模型的嵌入的可视化。

    我们可以看到,两种模型在对每个类进行样本聚类的时候似乎都可以做的不错,但看下SCL模型训练出来的嵌入,每个类的簇相互之间的距离要更远,这就是对比学习的效果。我们也可以认为,这种行为将导致更好的泛化,因为类的判别边界会更清晰、如果去尝试画一下类别之间的边界,就可以得到一个很直观的理解。

    总结

    我们看到,使用监督对比学习方法的训练既容易实现又有效,它可以带来更好的准确性和更好的类表示,这反过来也可以产生更健壮的模型,能够更好地泛化。

    —END—

    英文原文:https://pub.towardsai.net/supervised-contrastive-learning-for-cassava-leaf-disease-classification-9dd47779a966

    请长按或扫描二维码关注本公众号

    喜欢的话,请给我个在看吧

    展开全文
  • 易语言图片差异对比源码.zip易语言项目例子源码下载易语言图片差异对比源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 易语言图片对比找茬源码.zip易语言项目例子源码下载易语言图片对比找茬源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 易语言简单对比图片源码.zip易语言项目例子源码下载易语言简单对比图片源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • Excel数据对比修复程序.zip易语言项目例子源码下载Excel数据对比修复程序.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 硬负样本的对比学习 我们考虑这样一个问题:如何为对比学习采样好负面的例子? 我们认为,与度量学习一样,学习对比表示形式可以从硬否定样本(即难以与锚点区分开的点)中受益。 使用硬底片的主要挑战在于,对比...
  • 易语言画板绘图与API绘图对比源码.zip易语言项目例子源码下载易语言画板绘图与API绘图对比源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 但如果用错了效果就会适得其反,今天分享一组对比强烈但丝毫不别扭,反而能有效突出主次的网站,设计师对色彩掌握得恰到好处,来学习一下~ESPN体育节目官网的首页就是一个很好的例子,充分说明了颜色在转变中是如何...
  • 英语音标总结含发音方式、常见例子、音标对比.doc
  • 易语言多线程数据库查询对比源码.zip易语言项目例子源码下载易语言多线程数据库查询对比源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
  • 王者找图对比程序,delphi制作,设定一个图,找另一个图上是否这个图!
  • json-diff 比较两个json对象的差异,并获得出色的差异视图 例子
  • 1.对比学习一般泛式 其中x+是和x相似的正样本,x-是和x不相似的负样本 ...「监督对比学习」:通过将监督样本中的相同label的样本作为正样本,不同label的样本作为负样本,来进行对比学习; 正样本:

    1.对比学习一般泛式

    在这里插入图片描述

    其中x+是和x相似的正样本,x-是和x不相似的负样本
    score是一个度量函数,来衡量样本间的相似度。
    如果用向量内积来计算两个样本的相似度,则对比学习的损失函数可以表示成:
    在这里插入图片描述

    其中对应样本x有1个正样本和N-1个负样本。可以发现,这个形式类似于交叉熵损失函数,学习的目标就是让x的特征和正样本的特征更相似,同时和N-1个负样本的特征更不相似。

    2.对比学习分类

    「有监督对比学习」:通过将监督样本中的相同label的样本作为正样本,不同label的样本作为负样本,来进行对比学习;
    正样本:同类型数据
    负样本:不同类型数据
    「无监督对比学习」:由于没有监督信号(label),此时,我们对同一个样本构造两个view,让同一样本构造的两个view互为正样本,而其他样本构造的view则全部为负样本,以此来进行对比学习。而由同一个样本构造两个view,又是数据扩增的过程,所以也可以称作是数据扩展对比学习。而不管那种范式,通常对比学习都是在batch内进行。
    正样本:同一数据产生的增强数据
    负样本:不同数据产生的增强数据

    3.用于微调阶段的有监督的对比学习(SCL)

    《Supervised Contrastive Learning for Pre-trained Language Model Fine-tuning》
    在这里插入图片描述在多分类任务(使用交叉熵损失)中:
    ①交叉熵损失导致泛化性能较差。
    ②对有噪声的标签或对抗样本缺乏鲁棒性。
    使用了监督对比学习的思路,额外添加了一个loss,目的是使同一类样本尽可能离得近,不同类样本尽可能离得远。
    使得模型对微调训练数据中的不同程度的噪声具有更强的鲁棒性,并且可以更好地推广到具有有限标签数据的相关任务。

    对于具有C个类的多类分类问题,我们使用一批大小为N的训练示例
    分子:每一对同类型样本;分母:与i、j不同类型的全部样本。
    在这里插入图片描述

    较低的温度增加了较难分离的例子的影响,有效地产生了较难分离的负样本。

    实验-小样本

    在这里插入图片描述

    实验-噪声

    在这里插入图片描述

    实验-全量

    在这里插入图片描述

    消融实验

    针对不同batchsize的训练速度-平均每秒更新(Avg Ups/sec)
    在这里插入图片描述

    实验-泛化性

    将使用完整的SST-2训练集进行微调后的模型推广到相关任务(Amazon-2,Yelp-2)
    在这里插入图片描述

    4.负监督下的文本分类

    Text Classification with Negative Supervision
    在这里插入图片描述
    文本分类中的对抗样本问题:
    当类别标注的标准与语义相似度不一致时,由于语义相似度的过度影响,分类容易出错。
    在这里插入图片描述

    提出了使用负样本提高文本分类模型的方法,这里的负样本类比对比学习的负样本

    1.将分类任务作为主任务,另外加一个辨别性的学习任务作为辅助任务,主任务与辅助任务共享一个编码层;
    2.主任务负责分类模型的训练,辅助任务在负样本的监督下,促使text encoder学习出更多相对label的差异性信息,使反例具有较小的余弦相似性。
    每个batch中loss的计算:
    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述在这里插入图片描述

    实验-全量

    在这里插入图片描述

    · ACE (the auxiliary task with cross entropy loss) 证明提高效果的是负例而不是多任务学习。
    · AAN(the auxiliary task using all negative examples)上文提到的方法
    · AM (the auxiliary task with the margin-based loss) 第k个样本作为正例,类似于第一篇文章

    在这里插入图片描述

    展开全文
  • 数据库对比工具

    2016-05-04 14:21:34
    用于对比两个数据库的表结构(比如正式库和测试库 表结构的对比) 的java代码 包中有例子测试的例子,在 TestDb.java中, 对比的 结果是json 字符串 简单易懂 如: { "TABLE": { "新增": [ "STAT_COMPANY_DAILY",...
  • 英语音标总结,含发音方式、常见例子、音标对比.doc
  • 一个销售领域的DELPHI对比图表例子..rar``
  • H.265与H.264对比有哪些优势

    千次阅读 2018-06-19 17:15:34
    H.265与H.264对比有哪些优势 </div> <div class="cl"></div> </div> ...

    H.265与H.264对比有哪些优势

                </div>
                <div class="cl"></div>
            </div>
    
                                            <p class="summary">
                <span>[摘要] </span> H.265  H.265是ITU-T VCEG 继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同...            </p>
    
            <div class="mainbody" id="showcontents">&nbsp;&nbsp;&nbsp; H.265<br>
    


        H.265是ITU-T VCEG 继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。具体的研究内容包括:提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。H264由于算法优化,可以低于1Mbps的速度实现标清数字图像传送;H265则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280*720)普通高清音视频传送。
    H.265.jpg
        H.265旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频。这也意味着,我们的智能手机、平板机等移动设备将能够直接在线播放1080p的全高清视频。H.265标准也同时支持4K(4096×2160)和8K(8192×4320)超高清视频。可以说,H.265标准让网络视频跟上了显示屏“高分辨率化”的脚步。

       H.264

        H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC)而明确的说明它两方面的开发者。
    H264.jpg
        H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1。低码率(Low Bit Rate)对H.264的高的压缩比起到了重要的作用,和MPEG-2和MPEG-4 ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。

        H.265与H.264有何不同

        在讨论H.265有哪些提升和优点之前,我们不妨先来了解一下H.264。H.264也称作MPEG-4 AVC(Advanced Video Codec,高级视频编码),是一种视频压缩标准,同时也是一种被广泛使用的高精度视频的录制、压缩和发布格式。H.264因其是蓝光光盘的一种编解码标准而著名,所有蓝光播放器都必须能解码H.264。更重要的是,因为苹果公司当初毅然决然抛弃了Adobe的VP6编码,选择了H.264,这个标准也就随着数亿台iPad和iPhone走入了千家万户,成为了目前视频编码领域的绝对霸主,占有超过80%的份额。H.264也被广泛用于网络流媒体数据、各种高清晰度电视广播以及卫星电视广播等领域。H.264相较于以前的编码标准有着一些新特性,如多参考帧的运动补偿、变块尺寸运动补偿、帧内预测编码等,通过利用这些新特性,H.264比其他编码标准有着更高的视频质量和更低的码率,也因此受到了人们的认可,而被广泛应用。
    H.265与H.264效果对比图.jpg
        H.265/HEVC的编码架构大致上和H.264/AVC的架构相似,也主要包含:帧内预测(intra prediction)、帧间预测(inter prediction)、转换 (transform)、量化 (quantization)、去区块滤波器(deblocking filter)、熵编码(entropy coding)等模块。但在HEVC编码架构中,整体被分为了三个基本单位,分別是:编码单位(coding unit,CU)、预测单位(predict unit,PU) 和转换单位(transform unit,TU )。

        H.265为何优于H.264

        比起H.264/AVC,H.265/HEVC提供了更多不同的工具来降低码率,以编码单位来说,H.264中每个宏块(marcoblock,MB)大小都是固定的16x16像素,而H.265的编码单位可以选择从最小的8x8到最大的64x64。信息量不多的区域(颜色变化不明显,比如车体的红色部分和地面的灰色部分)划分的宏块较大,编码后的码字较少,而细节多的地方(轮胎)划分的宏块就相应的小和多一些,编码后的码字较多,这样就相当于对图像进行了有重点的编码,从而降低了整体的码率,编码效率就相应提高了。同时,H.265的帧内预测模式支持33种方向(H.264只支持8种),并且提供了更好的运动补偿处理和矢量预测方法。

        反复的质量比较测试已经表明,在相同的图象质量下,相比于H.264,通过H.265编码的视频码流大小比H.264减少大约39-44%。由于质量控制的测定方法不同,这个数据也会有相应的变化。通过主观视觉测试得出的数据显示,在码率减少51-74%的情况下,H.265编码视频的质量还能与H.264编码视频近似甚至更好,其本质上说是比预期的信噪比(PSNR)要好。这些主观视觉测试的评判标准覆盖了许多学科,包括心理学和人眼视觉特性等,视频样本非常广泛,虽然它们不能作为最终结论,但这也是非常鼓舞人心的结果。
    HEVC标准参数.jpg
        目前的HEVC标准共有三种模式:Main、Main 10和Main Still Picture。Main模式支持8bit色深(即红绿蓝三色各有256个色度,共1670万色),Main 10模式支持10bit色深,将会用于超高清电视(UHDTV)上。前两者都将色度采样格式限制为4:2:0。预期将在2014年对标准有所扩展,将会支持4:2:2和4:4:4采样格式(即提供了更高的色彩还原度)和多视图编码(例如3D立体视频编码)。

        事实上,H.265和H.264标准在各种功能上有一些重叠。例如,H.264标准中的Hi10P部分就支持10bit色深的视频。另一个,H.264的部分(Hi444PP)还可以支持4:4:4色度抽样和14比特色深。在这种情况下,H.265和H.264的区别就体现在前者可以使用更少的带宽来提供同样的功能,其代价就是设备计算能力:H.265编码的视频需要更多的计算能力来解码。目前已经有支持H.265解码的芯片发布了——美国博通公司(Broadcom)在今年1月初的CES大展上发布了一款Brahma BCM7445芯片,它是一个采用28纳米工艺的四核处理器,可以同时转码四个1080P视频数据流或解析分辨率为4096×2160的H.265编码超高清视频。

        H.265标准的诞生是在有限带宽下传输更高质量的网络视频。对于大多数专业人士来说,H.265编码标准并不陌生,其是ITU-TVCEG继H.264之后所制定的视频编码标准。H.265标准主要是围绕着现有的视频编码标准H.264,在保留了原有的某些技术外,增加了能够改善码流、编码质量、延时及算法复杂度之间的关系等相关的技术。H.265研究的主要内容包括,提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度。

    展开全文
  • 1.java利用poi-3.9操作excel,一个对比双色球一等奖号码的例子。 2.其中一个excel是用来生成双色球历史中奖数据的。 3.会创建新的excel来存放双色球中奖号码。
  • c#图像相似度对比

    2019-06-24 11:43:59
    通过网上的例子,加上用灰度直方图方法计算相似度的算法,写了一个例子,经测试效果达到百分之95准确率
  • 汉英语言对比之静态与动态.pdf
  • Pytorch实现监督对比学习损失函数

    千次阅读 多人点赞 2021-05-12 17:26:59
    Pytorch实现监督对比学习损失函数关于对比损失Pytorch实现监督对比损失END ...为了更好的说明监督对比损失的整个实现过程,以下代码没有经过系统整理,从一个例子,一步一步地计算出损失。若是理
  • 河北师大附属民族学院高二语文 议论文写作 09如何事例论证之对比例与例对比学案
  • java与smali对比,翻译例子,反编译
  • 对比学习(contrastive learning)

    万次阅读 多人点赞 2021-07-26 21:22:43
    对比学习是一种自监督学习方法,用于在没有标签的情况下,通过让模型学习哪些数据点相似或不同来学习数据集的一般特征。 让我们从一个简单的例子开始。想象一下,你是一个试图理解世界的新生婴儿。在家里,假设你...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 386,902
精华内容 154,760
热门标签
关键字:

对比的例子有哪些