數(shù)據(jù)標(biāo)記和模型訓(xùn)練一直被認(rèn)為是團(tuán)隊(duì)在構(gòu)建 AI 或機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施時(shí)所面臨的最大挑戰(zhàn)。兩者都是機(jī)器學(xué)習(xí)應(yīng)用開(kāi)發(fā)過(guò)程中的重要步驟,如果執(zhí)行不當(dāng)就會(huì)導(dǎo)致結(jié)果不準(zhǔn)確和性能下降。
數(shù)據(jù)標(biāo)記對(duì)于所有形式的監(jiān)督學(xué)習(xí)來(lái)說(shuō)都是必不可少的。在監(jiān)督學(xué)習(xí)中,整個(gè)數(shù)據(jù)集會(huì)被完全標(biāo)記。同時(shí),數(shù)據(jù)標(biāo)記也是半監(jiān)督學(xué)習(xí)的一個(gè)關(guān)鍵步驟。在半監(jiān)督學(xué)習(xí)中,需要將較小的標(biāo)記數(shù)據(jù)集與以編程方式自動(dòng)標(biāo)記其余數(shù)據(jù)集的算法相結(jié)合。對(duì)于最先進(jìn)、最發(fā)達(dá)的機(jī)器學(xué)習(xí)領(lǐng)域之一的計(jì)算機(jī)視覺(jué)來(lái)說(shuō),標(biāo)記至關(guān)重要。盡管數(shù)據(jù)標(biāo)記十分重要,標(biāo)記速度卻因?yàn)樾枰{(diào)節(jié)分散的人力團(tuán)隊(duì)而十分緩慢。
與標(biāo)記一樣,模型訓(xùn)練是機(jī)器學(xué)習(xí)的另一個(gè)主要瓶頸。由于需要等待機(jī)器完成復(fù)雜的計(jì)算,訓(xùn)練速度很慢。它要求團(tuán)隊(duì)必須了解網(wǎng)絡(luò)、分布式系統(tǒng)、存儲(chǔ)、專用處理器(GPU 或 TPU)和云管理系統(tǒng)(Kubernetes 和 Docker)。
應(yīng)用 NVIDIA TAO Toolkit 的
Superb AI Suite
Superb AI 為計(jì)算機(jī)視覺(jué)團(tuán)隊(duì)帶來(lái)了一種既可以提供高質(zhì)量訓(xùn)練數(shù)據(jù)集,同時(shí)又能大幅減少所需時(shí)間的途徑。團(tuán)隊(duì)可以在大部分?jǐn)?shù)據(jù)準(zhǔn)備流程中使用 Superb AI Suite 來(lái)實(shí)現(xiàn)更加節(jié)省時(shí)間和成本的流程,不再依賴人工標(biāo)記員。
圖 1. Superb AI Suite提供覆蓋
整個(gè)數(shù)據(jù)生命周期的產(chǎn)品和服務(wù)
NVIDIA TAO Toolkit建立在 TensorFlow 和 PyTorch上,是 TAO 框架的低代碼版本,能夠以抽象化的方式降低框架的復(fù)雜性,加快模型的開(kāi)發(fā)流程。TAO Toolkit 使用戶能夠借助強(qiáng)大的遷移學(xué)習(xí),使用自己的數(shù)據(jù)對(duì) NVIDIA 預(yù)先訓(xùn)練的模型進(jìn)行微調(diào),并對(duì)推理進(jìn)行優(yōu)化。
圖 2. NVIDIA TAO Toolkit 4.0 一覽
計(jì)算機(jī)視覺(jué)工程師可以結(jié)合使用 Superb AI Suite 和 TAO Toolkit 解決數(shù)據(jù)標(biāo)記和模型訓(xùn)練的難題。具體就是在套件中快速生成標(biāo)記的數(shù)據(jù),并使用 TAO 訓(xùn)練模型來(lái)執(zhí)行分類、檢測(cè)、分割等特定的計(jì)算機(jī)視覺(jué)任務(wù)。
計(jì)算機(jī)視覺(jué)數(shù)據(jù)集的準(zhǔn)備
接下來(lái)將為您演示如何使用 Superb AI Suite 準(zhǔn)備一個(gè)兼容 TAO Toolkit 的高質(zhì)量計(jì)算機(jī)視覺(jué)數(shù)據(jù)集。我們將介紹如何下載數(shù)據(jù)集、在 Suite 上創(chuàng)建新項(xiàng)目、通過(guò) Suite SDK 將數(shù)據(jù)上傳到項(xiàng)目中、使用 Superb AI 的自動(dòng)標(biāo)記功能快速標(biāo)記數(shù)據(jù)集、導(dǎo)出已標(biāo)記的數(shù)據(jù)集,以及設(shè)置 TAO Toolkit 配置以使用這些數(shù)據(jù)。
第 1 步:從使用 Suite SDK 開(kāi)始
首先,在superb-ai.com 創(chuàng)建一個(gè)帳戶,然后按照快速入門指南安裝并驗(yàn)證 Suite CLI。您應(yīng)該能夠安裝最新版本的 spb-cli,并獲取用于身份驗(yàn)證的 Suite 賬戶名/ 訪問(wèn)密鑰。
第 2 步:下載數(shù)據(jù)集
本教程使用的是 COCO 數(shù)據(jù)集。這個(gè)大型對(duì)象檢測(cè)、分割和字幕數(shù)據(jù)集在計(jì)算機(jī)視覺(jué)研究界深受歡迎。
您可以使用此鏈接中的代碼片段下載該數(shù)據(jù)集 (https://github.com/Superb-AI-Suite/spb-example/blob/main/create-coco-project/download-coco.sh)。將其保存在一個(gè)名為 download-coco.sh 的文件中,并從終端運(yùn)行 bash download-coco.sh,創(chuàng)建一個(gè)存儲(chǔ) COCO 數(shù)據(jù)集的 data/ 目錄。
下一步是將 COCO 轉(zhuǎn)換成 Suite SDK 格式,以便對(duì) COCO validation 2017 數(shù)據(jù)集中的五個(gè)最頻繁使用的數(shù)據(jù)類別進(jìn)行采樣。本教程只處理邊界框注釋,但 Suite 也可以處理多邊形和關(guān)鍵點(diǎn)。
您可以使用此鏈接中的代碼片段執(zhí)行轉(zhuǎn)換 (https://github.com/Superb-AI-Suite/spb-example/blob/main/create-coco-project/convert.py)。將其保存在一個(gè)名為 convert.py 的文件中,并從終端運(yùn)行 python convert.py。這將創(chuàng)建一個(gè)用于存儲(chǔ)圖像名稱和注釋信息的 upload-info.json 文件。
第 3 步:在 Suite SDK 中創(chuàng)建一個(gè)項(xiàng)目
通過(guò) Suite SDK 創(chuàng)建項(xiàng)目的功能目前仍在開(kāi)發(fā)中。在本次教學(xué)中,我們根據(jù) Superb AI 項(xiàng)目創(chuàng)建指南在網(wǎng)絡(luò)上創(chuàng)建一個(gè)項(xiàng)目。請(qǐng)按照下圖進(jìn)行設(shè)置:
圖 3. Superb AI 項(xiàng)目創(chuàng)建菜單
-
選擇圖像數(shù)據(jù)類型
-
將項(xiàng)目名稱設(shè)置為 CocoTest
-
注釋類型選擇“邊界框”
-
創(chuàng)建五個(gè)匹配 COCO 類名稱的對(duì)象類:['person'、'car'、'chair'、'book'、'bottle']
圖 4. 在創(chuàng)建流程的這一步選擇和定義項(xiàng)目的對(duì)象類
如圖 5 所示,完成該流程后,您可以查看項(xiàng)目的主頁(yè)面。
圖 5. Superb AI Suite 項(xiàng)目主頁(yè)面
第 4 步:使用 Suite SDK 上傳數(shù)據(jù)
在創(chuàng)建完項(xiàng)目后,就可以開(kāi)始上傳數(shù)據(jù)了。您可以使用此鏈接中的代碼片段上傳數(shù)據(jù) (https://github.com/Superb-AI-Suite/spb-example/blob/main/create-coco-project/upload.py)。將其保存在一個(gè)名為 upload.py 的文件中,然后在終端運(yùn)行 python upload.py --project CocoTest --dataset coco-dataset。
這表示 CocoTest 是項(xiàng)目名稱,coco-dataset 是數(shù)據(jù)集名稱。然后將啟動(dòng)上傳流程,可能需要幾個(gè)小時(shí)才能完成上傳,具體時(shí)間取決于設(shè)備的處理能力。
如圖 6 所示,您可以在 Suite 網(wǎng)頁(yè)上實(shí)時(shí)檢查上傳的數(shù)據(jù)集。
圖 6. 通過(guò) Suite 列表視圖實(shí)時(shí)監(jiān)控上傳的數(shù)據(jù)集
第 5 步:標(biāo)記數(shù)據(jù)集
下一步是標(biāo)記 COCO 數(shù)據(jù)集。為了快速完成這項(xiàng)工作,請(qǐng)使用 Suite 強(qiáng)大的自動(dòng)標(biāo)記功能。具體來(lái)講就是 Auto-Label 和 Custom Auto-Label 這兩個(gè)強(qiáng)大的工具,會(huì)通過(guò)自動(dòng)檢測(cè)對(duì)象并進(jìn)行標(biāo)記來(lái)提高標(biāo)記效率。
Auto-Label 是一個(gè)由 Superb AI 開(kāi)發(fā)的預(yù)訓(xùn)練模型,可檢測(cè)和標(biāo)記 100 多個(gè)常見(jiàn)對(duì)象;Custom Auto-Label 是一個(gè)使用您自己的數(shù)據(jù)訓(xùn)練的模型,可檢測(cè)和標(biāo)記小眾對(duì)象。
本教程中的 COCO 數(shù)據(jù)由五個(gè)能夠被 Auto-Label 標(biāo)記的常見(jiàn)對(duì)象組成。請(qǐng)按照鏈接中的指南設(shè)置 Auto-Label(https://docs.superb-ai.com/docs/image)。請(qǐng)注意,應(yīng)選擇 MSCO Box CAL 作為 Auto-Label 的 AI,并將對(duì)象名稱與各自應(yīng)用的對(duì)象進(jìn)行映射。處理 COCO 數(shù)據(jù)集中的所有 3283 個(gè)標(biāo)簽可能需要大約一個(gè)小時(shí)。
圖 7. 創(chuàng)建完畢的 Auto-Label中的對(duì)象類設(shè)置
Auto-Label 運(yùn)行完畢后,您會(huì)看到每個(gè)自動(dòng)標(biāo)記任務(wù)的難度:紅色代表困難,黃色代表中等,綠色代表容易。難度越高,自動(dòng)標(biāo)記對(duì)圖像進(jìn)行錯(cuò)誤標(biāo)記的可能性就越大。
這種難度,或者說(shuō)所估測(cè)的不確定性是根據(jù)對(duì)象尺寸的大小、照明條件的優(yōu)劣、場(chǎng)景的復(fù)雜度等因素計(jì)算出來(lái)的。在實(shí)際使用時(shí),您可以很容易地按照難度對(duì)標(biāo)簽進(jìn)行分類和篩選,以便優(yōu)先處理出錯(cuò)幾率較高的標(biāo)簽。
第 6 步:從 Suite 中導(dǎo)出標(biāo)記的數(shù)據(jù)集
在獲得標(biāo)記的數(shù)據(jù)集后,導(dǎo)出并下載標(biāo)簽。標(biāo)簽內(nèi)容不僅僅是注釋信息。為了充分利用一個(gè)標(biāo)簽來(lái)訓(xùn)練機(jī)器學(xué)習(xí)模型,您還必須知道其他信息,比如項(xiàng)目配置和關(guān)于原始數(shù)據(jù)的元信息。要想連同注釋文件一起下載所有這些信息,首先要請(qǐng)求導(dǎo)出,以便 Suite 系統(tǒng)可以創(chuàng)建一個(gè)供下載的壓縮文件。按照指南,從 Suite 中導(dǎo)出并下載標(biāo)簽 (https://docs.superb-ai.com/docs/export-and-download-labels)。
圖 8. 通過(guò)用戶界面導(dǎo)出數(shù)據(jù)集
在導(dǎo)出標(biāo)簽時(shí),將創(chuàng)建一個(gè)壓縮好的 zip 文件供您下載。導(dǎo)出結(jié)果文件夾將包含關(guān)于整個(gè)項(xiàng)目的基本信息、每個(gè)標(biāo)簽的注釋信息以及每個(gè)數(shù)據(jù)資產(chǎn)的元數(shù)據(jù)。更多細(xì)節(jié)請(qǐng)參見(jiàn)導(dǎo)出結(jié)果格式文件 (https://docs.superb-ai.com/docs/export-result-format)。
第 7 步:將輸出結(jié)果轉(zhuǎn)換成 COCO 格式
接下來(lái),創(chuàng)建一個(gè)腳本,將您的標(biāo)簽數(shù)據(jù)轉(zhuǎn)換成可以輸入到 TAO Toolkit 的格式,比如 COCO 格式。請(qǐng)注意,因?yàn)楸窘坛淌褂玫氖?COCO 數(shù)據(jù)集,所以數(shù)據(jù)已經(jīng)是 COCO 格式了。例如,您可以在下面找到一個(gè)隨機(jī)導(dǎo)出標(biāo)簽的 JSON 文件:
{
"objects": [
{
"id": "7e9fe8ee-50c7-4d4f-9e2c-145d894a8a26",
"class_id": "7b8205ef-b251-450c-b628-e6b9cac1a457",
"class_name": "person",
"annotation_type": "box",
"annotation": {
"multiple": false,
"coord": {
"x": 275.47,
"y": 49.27,
"width": 86.39999999999998,
"height": 102.25
},
"meta": {},
"difficulty": 0,
"uncertainty": 0.0045
},
"properties": []
},
{
"id": "70257635-801f-4cad-856a-ef0fdbfdf613",
"class_id": "7b8205ef-b251-450c-b628-e6b9cac1a457",
"class_name": "person",
"annotation_type": "box",
"annotation": {
"multiple": false,
"coord": {
"x": 155.64,
"y": 40.61,
"width": 98.34,
"height": 113.05
},
"meta": {},
"difficulty": 0,
"uncertainty": 0.0127
},
"properties": []
}
],
"categories": {
"properties": []
},
"difficulty": 1
}
第 8 步:準(zhǔn)備好用于模型訓(xùn)練的標(biāo)記數(shù)據(jù)
接下來(lái),使用 SuiteDataset 將 COCO 數(shù)據(jù)從 Suite 導(dǎo)入到模型開(kāi)發(fā)。SuiteDataset 使 Suite 中導(dǎo)出的數(shù)據(jù)集可以通過(guò) PyTorch 數(shù)據(jù)管道訪問(wèn)。下面的代碼片段將用于訓(xùn)練集的 SuiteDataset 對(duì)象類進(jìn)行了實(shí)例化。
class SuiteDataset(Dataset):
"""
Instantiate the SuiteDataset object class for training set
"""
def __init__(
self,
team_name: str,
access_key: str,
project_name: str,
export_name: str,
train: bool,
caching_image: bool = True,
transforms: Optional[List[Callable]] = None,
category_names: Optional[List[str]] = None,
):
"""Function to initialize the object class"""
super().__init__()
# Get project setting and export information through the SDK
# Initialize the Python Client
client = spb.sdk.Client(team_name=team_name, access_key=access_key, project_name=project_name)
# Use get_export
export_info = call_with_retry(client.get_export, name=export_name)
# Download the export compressed file through download_url in Export
export_data = call_with_retry(urlopen, export_info.download_url).read()
# Load the export compressed file into memory
with ZipFile(BytesIO(export_data), 'r') as export:
label_files = [f for f in export.namelist() if f.startswith('labels/')]
label_interface = json.loads(export.open('project.json', 'r').read())
category_infos = label_interface.get('object_detection', {}).get('object_classes', [])
cache_dir = None
if caching_image:
cache_dir = f'/tmp/{team_name}/{project_name}'
os.makedirs(cache_dir, exist_ok=True)
self.client = client
self.export_data = export_data
self.categories = [
{'id': i + 1, 'name': cat['name'], 'type': cat['annotation_type']}
for i, cat in enumerate(category_infos)
]
self.category_id_map = {cat['id']: i + 1 for i, cat in enumerate(category_infos)}
self.transforms = build_transforms(train, self.categories, transforms, category_names)
self.cache_dir = cache_dir
# Convert label_files to numpy array and use
self.label_files = np.array(label_files).astype(np.string_)
def __len__(self):
"""Function to return the number of label files"""
return len(self.label_files)
def __getitem__(self, idx):
"""Function to get an item"""
idx = idx if idx >= 0 else len(self) + idx
if idx < 0 or idx >= len(self):
raise IndexError(f'index out of range')
image_id = idx + 1
label_file = self.label_files[idx].decode('ascii')
# Load label information corresponding to idx from the export compressed file into memory
with ZipFile(BytesIO(self.export_data), 'r') as export:
label = load_label(export, label_file, self.category_id_map, image_id)
# Download the image through the Suite sdk based on label_id
try:
image = load_image(self.client, label['label_id'], self.cache_dir)
# Download data in real time using get_data from Suite sdk
except Exception as e:
print(f'Failed to load the {idx}-th image due to {repr(e)}, getting {idx + 1}-th data instead')
return self.__getitem__(idx + 1)
target = {
'image_id': image_id,
'label_id': label['label_id'],
'annotations': label['annotations'],
}
if self.transforms is not None:
image, target = self.transforms(image, target)
return image, target
請(qǐng)以類似的方式處理測(cè)試集。下面的代碼片段通過(guò)包裹 SuiteDataset 使其與 Torchvision COCOEvaluator 兼容,將用于測(cè)試集的 SuiteCocoDataset 對(duì)象類實(shí)例化。
class SuiteCocoDataset(C.CocoDetection):
"""
Instantiate the SuiteCocoDataset object class for test set
(by wrapping SuiteDataset to make compatible with torchvision's official COCOEvaluator)
"""
def __init__(
self,
team_name: str,
access_key: str,
project_name: str,
export_name: str,
train: bool,
caching_image: bool = True,
transforms: Optional[List[Callable]] = None,
category_names: Optional[List[str]] = None,
num_init_workers: int = 20,
):
"""Function to initialize the object class"""
super().__init__(img_folder='', ann_file=None, transforms=None)
# Call the SuiteDataset class
dataset = SuiteDataset(
team_name, access_key, project_name, export_name,
train=False, transforms=[],
caching_image=caching_image, category_names=category_names,
)
self.client = dataset.client
self.cache_dir = dataset.cache_dir
self.coco = build_coco_dataset(dataset, num_init_workers)
self.ids = list(sorted(self.coco.imgs.keys()))
self._transforms = build_transforms(train, dataset.categories, transforms, category_names)
def _load_image(self, id: int):
"""Function to load an image"""
label_id = self.coco.loadImgs(id)[0]['label_id']
image = load_image(self.client, label_id, self.cache_dir)
return image
def __getitem__(self, idx):
"""Function to get an item"""
try:
return super().__getitem__(idx)
except Exception as e:
print(f'Failed to load the {idx}-th image due to {repr(e)}, getting {idx + 1}-th data instead')
return self.__getitem__(idx + 1)
然后,可以將 SuiteDataset 和 SuiteCocoDataset 用于您的訓(xùn)練代碼。下面的代碼片段說(shuō)明了如何使用它們。在模型開(kāi)發(fā)過(guò)程中,可以使用 train_loader 進(jìn)行訓(xùn)練并使用 test_loader 進(jìn)行評(píng)估。
train_dataset = SuiteDataset(
team_name=args.team_name,
access_key=args.access_key,
project_name=args.project_name,
export_name=args.train_export_name,
caching_image=args.caching_image,
train=True,
)
test_dataset = SuiteCocoDataset(
team_name=args.team_name,
access_key=args.access_key,
project_name=args.project_name,
export_name=args.test_export_name,
caching_image=args.caching_image,
train=False,
num_init_workers=args.workers,
)
train_loader = DataLoader(
num_workers=args.workers,
batch_sampler=G.GroupedBatchSampler(
RandomSampler(train_dataset),
k=3),
args.batch_size,
),
collate_fn=collate_fn,
)
test_loader = DataLoader(
num_workers=args.workers,
sampler=SequentialSampler(test_dataset), batch_size=1,
collate_fn=collate_fn,
)
第 9 步:使用 NVIDIA TAO Toolkit 訓(xùn)練您的模型
現(xiàn)在,可以將 Suite 注釋的數(shù)據(jù)用于訓(xùn)練您的對(duì)象檢測(cè)模型了。TAO Toolkit 使您能夠訓(xùn)練、微調(diào)、修剪和輸出經(jīng)過(guò)高度優(yōu)化的高精度計(jì)算機(jī)視覺(jué)模型,以便根據(jù)數(shù)據(jù)采用流行的網(wǎng)絡(luò)架構(gòu)和骨干網(wǎng)來(lái)完成部署。在本次教學(xué)中,您可以選擇 TAO 自帶的對(duì)象檢測(cè)模型 YOLO v4。
首先,從 TAO Toolkit 快速入門(https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/resources/tao-getting-started)下載適用于 notebook 的樣本。
pip3 install nvidia-tao
wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/tao/tao-getting-started/versions/4.0.1/zip -O getting_started_v4.0.1.zip
$ unzip -u getting_started_v4.0.1.zip -d ./getting_started_v4.0.1 && rm -rf getting_started_v4.0.1.zip && cd ./getting_started_v4.0.1
接下來(lái),使用下面的代碼啟動(dòng)notebook:
jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root
在 localhost 上打開(kāi)網(wǎng)頁(yè)瀏覽器并前往以下地址:
http://0.0.0.0:8888
如要?jiǎng)?chuàng)建一個(gè) YOLO v4 模型,請(qǐng)打開(kāi):
notebooks/tao_launcher_starter_kit/yolo_v4/yolo_v4.ipynb and follow the
并按照notebook上的說(shuō)明訓(xùn)練模型。
根據(jù)結(jié)果對(duì)模型進(jìn)行微調(diào),直到達(dá)到指標(biāo)要求。如果需要的話,您可以在這個(gè)階段創(chuàng)建您自己的主動(dòng)學(xué)習(xí)循環(huán)。在現(xiàn)實(shí)場(chǎng)景中,查詢預(yù)測(cè)失敗的樣本,指派人工標(biāo)記員對(duì)這批新的樣本數(shù)據(jù)進(jìn)行注釋,并使用新標(biāo)記的訓(xùn)練數(shù)據(jù)補(bǔ)充您的模型。在隨后的幾輪模型開(kāi)發(fā)中,Superb AI 套件可以進(jìn)一步協(xié)助您進(jìn)行數(shù)據(jù)采集和注釋,從而反復(fù)提高模型的性能。
使用 TAO Toolkit 4.0,無(wú)需任何 AI 專業(yè)知識(shí),可以更加輕松地開(kāi)始創(chuàng)建高精度的模型。可以使用 AutoML 自動(dòng)微調(diào)您的超參數(shù)、體驗(yàn)一鍵將 TAO Toolkit 部署到各種云服務(wù)中、將 TAO Toolkit 與第三方 MLOPs 服務(wù)集成并探索新的基于 Transformer 的視覺(jué)模型 (CitySemSegformer, Peoplenet Transformer)。
總結(jié)
計(jì)算機(jī)視覺(jué)領(lǐng)域的數(shù)據(jù)標(biāo)記會(huì)帶來(lái)許多獨(dú)特的挑戰(zhàn)。由于需要標(biāo)記的數(shù)據(jù)量大,這個(gè)過(guò)程可能十分困難且昂貴。此外,由于這個(gè)過(guò)程是主觀的,使得在一個(gè)大型數(shù)據(jù)集中實(shí)現(xiàn)一致的高質(zhì)量標(biāo)記輸出非常困難。
由于需要調(diào)整和優(yōu)化許多算法與超參數(shù),模型訓(xùn)練也可能極具挑戰(zhàn)性。在這個(gè)過(guò)程中,需要對(duì)數(shù)據(jù)和模型有深刻的了解,并進(jìn)行大量實(shí)驗(yàn)才能達(dá)到最佳效果。此外,訓(xùn)練計(jì)算機(jī)視覺(jué)模型往往需要耗費(fèi)大量算力,因此在預(yù)算和時(shí)間有限的情況下很難做到。
Superb AI Suite 能夠幫助您采集和標(biāo)記高質(zhì)量的計(jì)算機(jī)視覺(jué)數(shù)據(jù)集,而 NVIDIA TAO Toolkit 使您能夠優(yōu)化預(yù)先訓(xùn)練的計(jì)算機(jī)視覺(jué)模型。將兩者相結(jié)合,就可以在不犧牲質(zhì)量的前提下,大幅縮短計(jì)算機(jī)視覺(jué)應(yīng)用的開(kāi)發(fā)時(shí)間。
更多信息,敬請(qǐng)?jiān)L問(wèn):
-
TAO Toolkit Google Colab notebook(https://colab.research.google.com/github/NVIDIA-AI-IOT/nvidia-tao/blob/main/tensorflow/yolo_v4/yolo_v4.ipynb)
-
TAO Toolkit 文檔(https://docs.nvidia.com/tao/tao-toolkit/index.html)
-
Superb AI Suite 標(biāo)記平臺(tái)(https://superb-ai.com/product/labeling/)
-
Superb AI Suite 文檔(https://docs.superb-ai.com/docs/)
原文標(biāo)題:利用 Superb AI Suite 和 NVIDIA TAO Toolkit 創(chuàng)建高質(zhì)量的計(jì)算機(jī)視覺(jué)應(yīng)用
文章出處:【微信公眾號(hào):NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
英偉達(dá)
+關(guān)注
關(guān)注
22文章
3720瀏覽量
90690
原文標(biāo)題:利用 Superb AI Suite 和 NVIDIA TAO Toolkit 創(chuàng)建高質(zhì)量的計(jì)算機(jī)視覺(jué)應(yīng)用
文章出處:【微信號(hào):NVIDIA_China,微信公眾號(hào):NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論