以下代码使用基于图像内容选择的标签(或"标记")注释视频。
import argparse
from google.cloud import videointelligence
def analyze_labels(path):
""" Detects labels given a GCS path. """
video_client = videointelligence.VideoIntelligenceServiceClient()
features = [videointelligence.enums.Feature.LABEL_DETECTION]
operation = video_client.annotate_video(path, features=features)
print('\nProcessing video for label annotations:')
result = operation.result(timeout=90)
print('\nFinished processing.')
segment_labels = result.annotation_results[0].segment_label_annotations
for i, segment_label in enumerate(segment_labels):
print('Video label description: {}'.format(
segment_label.entity.description))
for category_entity in segment_label.category_entities:
print('\tLabel category description: {}'.format(
category_entity.description))
for i, segment in enumerate(segment_label.segments):
start_time = (segment.segment.start_time_offset.seconds +
segment.segment.start_time_offset.nanos / 1e9)
end_time = (segment.segment.end_time_offset.seconds +
segment.segment.end_time_offset.nanos / 1e9)
positions = '{}s to {}s'.format(start_time, end_time)
confidence = segment.confidence
print('\tSegment {}: {}'.format(i, positions))
print('\tConfidence: {}'.format(confidence))
print('\n')
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('path', help='GCS file path for label detection.')
args = parser.parse_args()
analyze_labels(args.path)
代码将结果打印到终端。
我想将Video label description
,Label category description
和confidence
值存储到数据库(可能是MongoDB),然后在Noje.js应用程序中检索它。
我该怎么做?还是有其他更好的方法吗?
答案 0 :(得分:0)
没有什么可以阻止你这样做;只要你的python程序和你的Node.js程序都同意数据的存储方式,你就可以毫无困难地存储和检索简单的字符串。 MongoDB是一个键/值存储,如果您知道需要事先检索的键,它将很好地工作;如果你想在不知道确切密钥的情况下根据某些标准检索数据,那么像SQLite这样的东西会更好。 Node.js和Python都有MongoDB / SQLite客户端,它们运行良好。