IBM iX 和企业团队项目成员包括:Brian Adams、Aaron Baughman、Karen Eickemeyer、Monica Ellingson、Stephen Hammer、Eythan Holladay、John Kent、William Padget、David Provan、Karl Schaffer、Andy Wismar


+ 此系列共有四个部分,本文是第四部分,介绍了高尔夫名人赛中 AI Highlights 的相关情况。

奥古斯塔国家高尔夫俱乐部的精彩赛事吸引了全球观众的目光,他们对于赛事相关内容简直是如饥似渴。今年的锦标赛将主要看点定为“Tiger Woods 正式回归,Sergio Garcia 捍卫王冠”。或许 Rickie Fowler 会赢得第一,Justin Rose 也可能会走出 2017 年加洞赛失利的阴影,强势归来。每个高尔夫球员的个人事迹都需要隆重而广泛的宣传。

借助 AI Highlights 和 Ranking 系统,观众可以观看自定义视频流和内容,了解整个锦标赛中每位球员的事迹。通过我们的系统,可以观看自动呈现的精彩画面,在不同的激动程度组件(比如解说员语调、球员手势和人群呐喊声)中,还对这些精彩画面进行了排名。Content Management System 由 Cloudant 和 Object Storage 提供支持,是管理精彩画面的中央存储库。访问锦标赛数字平台(比如名人赛网站或移动应用)的观众将能够定制基于精彩画面的内容交付。他们将能够通过“My Experience 应用编程接口”,从他们最喜爱的精彩画面中观看出神入化的击球瞬间。

Content Management System 中的视频精彩画面

我们的现场视频摄取应用可以轮询其他系统以获更新或接收内容。我们使用 JAX-RS 通过 Liberty 17.0.0.4 创建 RESTful API 实现。在人群噪音、解说员语调、语音转文本以及手势识别完成时,该应用会从 AI Highlight 系统收到 JSON POST 请求。精彩画面的内容会保存到 Cloudant 数据库中。


overall_excitement_avg = np.average(np.array(overall_excitement_metrics))
gesture_avg = np.average(np.array(gesture_metrics))
crowd_avg = np.average(np.array(crowd_metrics))
commentator_text_avg = np.average(np.array(commentator_text_metrics))
commentator_tones_avg = np.average(np.array(commentator_tones_metrics))
doc_retrieved["cognitiveInsights"] = {"overallMetric":overall_excitement_avg,"gestureMetric":gesture_avg,"scoringMetric":0,"crowdMetric":crowd_avg,"commentatorText":commentator_text_avg,"commentatorTone":commentator_tones_avg}
r = requests.post(self.cms_link, json=doc_retrieved)                 self.cloudant_fifo_highlights.insert_document(doc_retrieved)

该系统旨在自动摄取内容。在摄取期间,我们对文件名使用正则表达式,以便识别 Cloudant 中存储的视频并加以分类。我们在 Liberty 内使用“反射”这种软件工程技术对正确的解析器类进行初始化,确定视频的过程流。如果路由内容是经过排名的精彩画面剪辑,我们就将内容添加到 Content Management System (CMS) 上的审查队列中。

人工审查和审批

人工审查员检查在 IBM AI Highlights 审批队列中的一系列候选精彩画面。该队列可按照球员、场次或洞号进行排序,以便加快一组特定精彩画面的审批速度。如果精彩画面不包含叠化或交叉剪辑等任何淡入淡出镜头,那么就会生成相应的剪辑片段。接下来,审查员会确定精彩画面是否激动人心。结合运用相关领域专业知识和 AI Highlight 得分,为最终审批提供充足的证据。审批通过后,精彩画面应当内容相关、激动人心,而且富有视觉吸引力。

 

我们在数据库内创建了多个视图,用于帮助审查团队快速获取新的已排名的精彩画面剪辑。


function (doc) {
  if((doc.clipType == 'cognitive' || doc.clipType == 'shot_highlight') && doc.approved == "false" &&    
  doc.displayState != 'unapproved'){
    emit(doc._id, 1);
  }
}

 

另一视图支持审查员按球员、场次或洞号访问剪辑,这样他们就能够理清要检查的精彩画面剪辑的先后主次。


function (doc) {
  if((doc.clipType == 'cognitive' || doc.clipType == 'shot_highlight') && doc.sortDate.substring(0, 4) == 
  "2018"){
    if(doc.tags && doc.tags.tag){
      var playerId = '';
      var roundId = '';
      var holeId = '';
      for(var i = 0 ; i < doc.tags.tag.length; i++){
        if(doc.tags.tag[i].type == 'hole'){
          holeId = doc.tags.tag[i].key;
        }
        if(doc.tags.tag[i].type == 'round'){
          roundId = doc.tags.tag[i].key;
        }
        if(doc.tags.tag[i].type == 'players'){
          playerId = doc.tags.tag[i].key;
        }
      }
      emit([playerId, roundId, holeId], 1);
    }
  }
}

审批通过以后,将精彩画面以及整体激动程度得分推送到 My Experience API。整体激动程度得分是通过线性方程计算出,结合了各种识别得分。在活动之前,就已经预先确定了相关权重。


Double overall = (gestureVal * gestureWeight) + (crowdVal * crowdWeight) + (commentatorVal * commentatorWeight) + (scoringVal * scoringWeight); 

因此,通过 My Experience RESTful API 进行的任何查询都可以访问被批准的片段,以供用户使用。。

My Experience API

My Moments API 接收三个参数,帮助系统检索已经排名的精彩画面。系统期望返回戳记时间(用户上次调用 API 的时间)、最喜爱球员标识列表以及排名的精彩画面数量。有了这三个参数,该系统就能查询数据库,寻找上次搜索戳记时间前一天排名靠前的全部精彩画面和球员精彩画面。这些精彩画面根据整体激动程度进行排序。


private class HighlightSorter implements Comparator {
        @Override
        public int compare(CognitiveVideo o1, CognitiveVideo o2) {
            Double o2Excitement = new Double(0.5);
            Double o1Excitement = new Double(0.5);
            if (o1.getExcitementScore() != null) {
                o1Excitement = o1.getExcitementScore();
            }
            if (o2.getExcitementScore() != null) {
                o2Excitement = o2.getExcitementScore();
            }
            return Double.compare(o2Excitement, o1Excitement);
        }
    }

为了帮助用户查找最相关的精彩画面,我们的 API 排除了低于预设激动程度的剪辑,让我们能够相对于日常精彩画面,提高最喜爱球员精彩画面的重要程度。我们还能够在名人赛现场活动期间,监视和改进该 API 的一些结果和相关性。

编辑人员的仪表板

视频编辑人员和制作人员根据高尔夫名人赛中最为戏剧化的高潮时刻创制内容。在编制故事时,内容制作人员可通过 IBM Cloud 上运行的联网仪表板来访问 AI Highlights。可以通过 My Experience API 按照球员姓名、洞号以及场次找到相应的精彩画面。该用户体验会在多媒体 Mosaic 浏览器中按照整体激动程度显示经过排序的精彩画面视图。当制作人员选择一个精彩画面进行查看时,会从 Object Storage 提取剪辑精彩画面,并通过 Web 浏览器进行播放。在显示视频的同时,还会以同心圆方式来显示 CMS 中的 AI Highlight 排名。AI Highlights 系统中的描述特征包括人群呐喊声、解说员激动程度以及球员手势。例如,如果编辑人员要寻找一个激动人心的高尔夫击球镜头,其中包括球员挥拳的画面,他们就可以查看球员的手势得分。

AI Listens, Watches and Reads the Masters Golf Tournament Action

+ 此系列共有四个部分,本文是第四部分,介绍了高尔夫名人赛中 AI Highlights 的相关情况。

本文翻译自: AI Listens, Watches and Reads the Masters Golf Tournament Action – Content Distribution (2018-04-08)

加入讨论