Intelligent Media Management (IMM) menggunakan model pengambilan vektor semantik untuk mengambil data media berdasarkan semantik. Topik ini menjelaskan cara menggunakan pengambilan semantik.
Deskripsi fitur
Metode pengambilan skalar tradisional bergantung pada atribut metadata seperti nama file, waktu pembuatan, dan format untuk mengambil informasi. Berbeda dengan metode tersebut, pengambilan semantik menggunakan pendekatan vektor untuk mengambil informasi berdasarkan makna konten atau semantik, misalnya "pemandangan hutan dari atas", "kota bersalju", dan "padang rumput musim panas lalu". Anda dapat memanfaatkan fitur pengambilan semantik untuk mengambil data yang tersimpan di Object Storage Service (OSS) dan Layanan Foto dan Drive.
Skenario
Pencarian file kerja
Pengambilan semantik memungkinkan Anda mencari file kerja berdasarkan konten semantik atau kata kunci, seperti "petunjuk sistem ERP", "proses perbaikan perangkat", dan "analisis operasi bisnis untuk 2024", sehingga mempermudah pencarian file dan meningkatkan efisiensi kerja.
Pengambilan multimedia
Pengambilan semantik memungkinkan integrasi kemampuan pencarian dan pengambilan data media yang cepat dan efisien ke dalam aplikasi jaringan multimedia. Sebagai contoh, Anda dapat menerapkan pengambilan semantik dalam aplikasi jejaring sosial berbasis gambar untuk memungkinkan pengguna mencari gambar menggunakan konten semantik seperti "perjalanan ke pinggiran kota musim semi lalu", "reuni Tahun Baru Imlek", dan "pengalaman laut saya". Hal ini memberikan lebih banyak kenyamanan dan kesenangan.
Penyimpanan online
Banyak layanan penyimpanan online menyediakan pencarian file berbasis skalar berdasarkan atribut seperti nama file, waktu pembuatan, dan ekstensi. Pengambilan semantik memungkinkan pengambilan jenis data tertentu secara efisien, seperti dokumen dan gambar, berdasarkan konten semantik.
Pengambilan video pengawasan
Pengambilan semantik memungkinkan pencarian dan pengambilan video pengawasan berdasarkan kata kunci semantik, seperti "video pengawasan salju luar ruangan kemarin" dan "kebun buah di hari cerah".
Batasan
Pengambilan semantik hanya mendukung gambar dan dokumen.
Pengambilan semantik hanya tersedia di wilayah China (Beijing).
Pengambilan semantik mendukung format gambar berikut: JPG, PNG, BMP, GIF, WebP, TIFF, HEIC, dan AVIF.
Fitur ini mendukung gambar dengan ukuran hingga 20 MB dan lebar atau tinggi tidak melebihi 30.000 piksel serta jumlah total piksel tidak melebihi 250 juta. Jumlah total piksel gambar dinamis, seperti gambar GIF, dihitung menggunakan rumus berikut: Lebar × Tinggi × Jumlah frame. Jumlah total piksel gambar statis, seperti gambar PNG, dihitung menggunakan rumus berikut: Lebar × Tinggi.
Batas panjang karakter dokumen adalah 300.000. Karakter tambahan di luar batas panjang akan dipotong.
Pengindeksan data dan analisis dilakukan secara asinkron. Saat Anda memanggil operasi API pengindeksan seperti IndexFileMeta untuk membuat indeks, Anda perlu menggunakan panggilan balik untuk memeriksa apakah analisis data telah selesai. Analisis data membutuhkan waktu penyelesaian mulai dari beberapa detik hingga menit tergantung pada tipe data, ukuran, dan kompleksitas analisis. Setelah analisis data selesai, mesin penyimpanan membuat indeks, yang membutuhkan beberapa detik untuk diselesaikan. Setelah indeks dibuat, Anda dapat mencari data menggunakan pengambilan semantik.
Prasyarat
Indeks dibuat berdasarkan metadata dalam skenario aplikasi Anda. Untuk informasi lebih lanjut, lihat Buat indeks metadata.
Dataset menggunakan template alur kerja Official:CognitionImageManagement untuk pengambilan semantik gambar atau template alur kerja Official:DocumentManagement untuk pengambilan semantik dokumen.
Jika Anda tidak lagi memerlukan pengambilan semantik, kami sarankan Anda menghapus dataset. Dataset secara otomatis dan terus-menerus mengekstrak metadata dari OSS, yang menghasilkan biaya pemanggilan API.
Penagihan
Penagihan IMM: Pengambilan semantik menghasilkan biaya terkait manajemen metadata. Untuk informasi lebih lanjut, lihat Item yang dapat ditagih.
Untuk menggunakan pengambilan semantik, Anda harus memilih template alur kerja Official:CognitionImageManagement atau Official:DocumentManagement. Template alur kerja Official:CognitionImageManagement diperlukan untuk pengambilan semantik gambar, dan template alur kerja Official:DocumentManagement diperlukan untuk pengambilan semantik dokumen. Dua template alur kerja tersebut berisi banyak operator. Operator pengambilan semantik gratis, sedangkan operator lainnya menghasilkan biaya. Untuk informasi lebih lanjut, lihat Template alur kerja dan operator.
Penagihan OSS: Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.
Penggunaan
Panggil operasi SemanticQuery untuk melakukan pencarian semantik. Topik ini memberikan contoh untuk menunjukkan cara melakukan pencarian semantik di dataset test-dataset dari proyek test-project.
Pengambilan semantik gambar
Sebagai contoh, album foto berisi banyak foto perjalanan, beberapa di antaranya adalah foto panda yang diambil di Chengdu Research Base of Giant Panda Breeding pada Juli 2020. Untuk menggunakan pengambilan semantik untuk mencari foto panda tersebut, Anda dapat membuat dataset untuk menyimpan dan mengindeks metadata foto di album foto. Kemudian, Anda dapat menggunakan frasa seperti "panda di Chengdu pada Juli 2020" untuk mengambil foto panda.
Contoh berikut mencari dataset test-dataset dari proyek test-project untuk foto panda yang diambil di Chengdu pada Juli 2020:
Permintaan sampel
{
"ProjectName": "test-project",
"DatasetName": "test-dataset",
"Query": "Panda di Chengdu pada Juli 2020"
}Tanggapan sampel
{
"RequestId": "645FB6D9-5EA0-02C9-B253-****",
"Files": [
{
"ProduceTime": "2020-07-19T17:11:11+08:00",
"ObjectACL": "default",
"ContentType": "image/jpeg",
"ProjectName": "test-project",
"Size": 22868,
"URI": "oss://test-bucket/test-object.jpg",
"Addresses": [
{
"Language": "zh-Hans",
"Township": "Kecamatan Sanhe",
"AddressLine": "Chengdu Research Base of Giant Panda Breeding, Kecamatan Sanhe, Distrik Xindu, Kota Chengdu, Provinsi Sichuan",
"Country": "China",
"City": "Chengdu",
"District": "Distrik Xindu",
"Province": "Provinsi Sichuan"
}
],
"ObjectType": "file",
"OwnerId": "****",
"FileModifiedTime": "2021-05-13T10:22:44+08:00",
"ImageWidth": 270,
"OSSStorageClass": "Standard",
"MediaType": "image",
"ObjectId": "****",
"CreateTime": "2022-07-06T07:10:18.497753661+08:00",
"Filename": "1.jpg",
"Labels": [
{
"CentricScore": 0.757,
"Language": "zh-Hans",
"LabelConfidence": 0.946,
"LabelName": "Panda",
"LabelLevel": 2,
"ParentLabelName": "Satwa Liar"
},
...
],
"Orientation": 1,
"EXIF": "...",
"ContentMd5": "HZwoCnxPZ/fvhz4oRJ****",
"ImageHeight": 270,
"ImageScore": {
"OverallQualityScore": 0.719
},
"ETag": "\"1D9C280A7C4F67F7EF873E28449D****\"",
"DatasetName": "test-dataset",
"FileHash": "\"1D9C280A7C4F67F7EF873E2****\"",
"UpdateTime": "2022-07-06T07:10:18.497753661+08:00",
"OSSCRC64": "5634447745650079669",
"OSSTaggingCount": 0,
"LatLong": "34.000000,119.000000",
"OSSObjectType": "Normal"
}
]
}Kode sampel (IMM SDK for Python 1.27.3)
# -*- coding: utf-8 -*-
import os
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> imm20200930Client:
"""
Gunakan AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien.
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
access_key_id=access_key_id,
access_key_secret=access_key_secret
)
config.endpoint = f'imm.cn-beijing.aliyuncs.com'
return imm20200930Client(config)
@staticmethod
def main() -> None:
# Pasangan AccessKey akun Alibaba Cloud memiliki izin untuk semua operasi API. Untuk mencegah risiko keamanan, kami sarankan Anda memanggil operasi API atau melakukan O&M rutin sebagai pengguna RAM.
# Kami sarankan Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
# Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/document_detail/2361894.html.
imm_access_key_id = os.getenv("AccessKeyId")
imm_access_key_secret = os.getenv("AccessKeySecret")
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
semantic_query_request = imm_20200930_models.SemanticQueryRequest(
query='Panda di Chengdu pada Juli 2020',
project_name='test-project',
dataset_name='test-dataset',
max_results=100
)
runtime = util_models.RuntimeOptions()
try:
# Cetak respons dari operasi API.
response = client.semantic_query_with_options(semantic_query_request, runtime)
print(response.body.to_map())
except Exception as error:
# Cetak pesan kesalahan jika perlu.
UtilClient.assert_as_string(error.message)
print(error)
if __name__ == '__main__':
Sample.main()Pengambilan semantik dokumen
Sebagai contoh, Anda menyimpan berbagai dokumen di penyimpanan online. Untuk menggunakan pengambilan semantik untuk mengambil dokumen tentang proses layanan TI dari penyimpanan online, Anda dapat membuat dataset untuk mengindeks dokumen dan menggunakan kata kunci seperti "proses layanan TI" untuk mengambil dokumen tersebut.
Contoh berikut mencari dataset test-dataset dari proyek test-project untuk dokumen tentang proses layanan TI.
Permintaan sampel
{
"ProjectName": "test-project",
"DatasetName": "test-dataset",
"Query": "Proses layanan TI"
}Tanggapan sampel
{
"RequestId": "CD870E69-D2E8-031B-BD3E-****",
"Files": [
{
"ObjectACL": "default",
"ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"ProjectName": "test-project",
"ObjectId": "2f66ba6e902e5ad42341a9e7365b19f6130d4a077e4f57150450e281d0b7afd9",
"Size": 28340,
"CreateTime": "2024-03-08T10:13:19.569053164+08:00",
"Filename": "3839a9a0-c630-420d-ae69-ea24792412fd.docx",
"URI": "oss://test-bucket/test-object.docx",
"ObjectType": "file",
"ContentMd5": "Y7SmYa831Hq1qryuRyl6mg==",
"OwnerId": "****",
"FileModifiedTime": "2024-01-10T16:18:31+08:00",
"ETag": "\"63B4A661AF37D47AB5AABCAE47297A9A\"",
"DatasetName": "test-dataset",
"FileHash": "63B4A661AF37D47AB5AABCAE47297A9A",
"UpdateTime": "2024-03-08T10:13:19.569053164+08:00",
"OSSStorageClass": "Standard",
"MediaType": "document",
"OSSCRC64": "6833019149643646551",
"OSSTaggingCount": 0,
"OSSObjectType": "Normal"
}
]
}Kode sampel (IMM SDK for Python 1.27.3)
# -*- coding: utf-8 -*-
import os
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> imm20200930Client:
"""
Gunakan AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien.
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
access_key_id=access_key_id,
access_key_secret=access_key_secret
)
config.endpoint = f'imm.cn-beijing.aliyuncs.com'
return imm20200930Client(config)
@staticmethod
def main() -> None:
# Pasangan AccessKey akun Alibaba Cloud memiliki izin untuk semua operasi API. Untuk mencegah risiko keamanan, kami sarankan Anda memanggil operasi API atau melakukan O&M rutin sebagai pengguna RAM.
# Kami sarankan Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
# Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, kunjungi https://www.alibabacloud.com/help/document_detail/2361894.html.
imm_access_key_id = os.getenv("AccessKeyId")
imm_access_key_secret = os.getenv("AccessKeySecret")
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
semantic_query_request = imm_20200930_models.SemanticQueryRequest(
query='Proses layanan TI',
project_name='test-project',
dataset_name='test-dataset',
max_results=100
)
runtime = util_models.RuntimeOptions()
try:
# Cetak respons dari operasi API.
response = client.semantic_query_with_options(semantic_query_request, runtime)
print(response.body.to_map())
except Exception as error:
# Cetak pesan kesalahan jika perlu.
UtilClient.assert_as_string(error.message)
print(error)
if __name__ == '__main__':
Sample.main()