0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在移動(dòng)設(shè)備上訓(xùn)練和部署自定義目標(biāo)檢測模型

硬件三人行 ? 來源:TensorFlow ? 作者: Khanh LeVie ? 2021-08-16 17:09 ? 次閱讀

發(fā)布人:技術(shù)推廣工程師 Khanh LeViet,代表 TensorFlow Lite 團(tuán)隊(duì)

在今年的 Google I/O 大會(huì)上,我們很高興地宣布推出了多項(xiàng)產(chǎn)品更新。這些更新可以幫助簡化移動(dòng)設(shè)備上,目標(biāo)檢測模型的訓(xùn)練和部署的過程:

設(shè)備端 ML 學(xué)習(xí)路徑:關(guān)于如何在移動(dòng)設(shè)備上,訓(xùn)練和部署自定義目標(biāo)檢測模型的分步教程,無需機(jī)器學(xué)習(xí)專業(yè)知識。

設(shè)備端 ML 學(xué)習(xí)路徑

https://developers.google.com/learn/pathways/going-further-object-detection

EfficientDet-Lite:針對移動(dòng)設(shè)備優(yōu)化的精尖目標(biāo)檢測模型架構(gòu)。

EfficientDet-Lite

https://hub.tensorflow.google.cn/s?deployment-format=lite&q=efficientdet-lite

用于目標(biāo)檢測的 TensorFlow Lite Model Maker:只需幾行代碼即可訓(xùn)練自定義模型

目標(biāo)檢測

http://tensorflow.google.cn/lite/tutorials/model_maker_object_detection

TensorFlow Lite Metadata Writer API:簡化元數(shù)據(jù)創(chuàng)建以生成與 TFLite Task Library 兼容的自定義目標(biāo)檢測模型。

Metadata Writer API

http://tensorflow.google.cn/lite/convert/metadata_writer_tutorial

TFLite Task Library

http://tensorflow.google.cn/lite/inference_with_metadata/task_library/object_detector

盡管目標(biāo)檢測是非常常見的 ML 用例,但可能也是最難執(zhí)行的用例之一。我們一直致力于為您簡化相關(guān)操作。在這篇文章中,我們將向您介紹如何利用 TensorFlow Lite 的最新產(chǎn)品、通過使用您自己的訓(xùn)練數(shù)據(jù)構(gòu)建最先進(jìn)的移動(dòng)端目標(biāo)檢測。

設(shè)備端 ML 學(xué)習(xí)路徑:

在 12 分鐘內(nèi)了解如何訓(xùn)練和部署自定義 TensorFlow Lite 目標(biāo)檢測模型

有了 TensorFlow Lite,訓(xùn)練自定義目標(biāo)檢測模型并將其部署到 Android 應(yīng)用變得非常容易。我們已經(jīng)發(fā)布了學(xué)習(xí)路徑,可指導(dǎo)您按步驟順利完成相關(guān)操作。

您可以通過視頻了解構(gòu)建自定義目標(biāo)檢測器的具體步驟:

1. 準(zhǔn)備訓(xùn)練數(shù)據(jù)。

2. 使用 TensorFlow Lite Model Maker 訓(xùn)練自定義目標(biāo)檢測模型。

3. 使用 TensorFlow Lite Task Library 在您的移動(dòng)應(yīng)用上部署模型。

我們還在 GitHub 上提供了帶有源代碼的 Codelab,供您自行試運(yùn)行代碼。請嘗試一下,并告訴我們您的反饋!

Codelab

https://codelabs.developers.google.com/tflite-object-detection-android

告訴我們

https://github.com/googlecodelabs/odml-pathways/issues

EfficientDet-Lite:

移動(dòng)端設(shè)備目標(biāo)檢測最優(yōu)模型架構(gòu)之一

在移動(dòng)設(shè)備上運(yùn)行機(jī)器學(xué)習(xí)模型意味著我們始終需要在模型精度、推理速度和模型大小之間進(jìn)行權(quán)衡。最優(yōu)的移動(dòng)端模型不僅需要更加精準(zhǔn),還需要更快地運(yùn)行速度和更小的體積。我們采用了 EfficientDet 論文中發(fā)布的神經(jīng)架構(gòu)搜索技術(shù),并優(yōu)化了在移動(dòng)設(shè)備上運(yùn)行的模型架構(gòu),最終推出了名為 EfficientDet-Lite 的新型移動(dòng)設(shè)備目標(biāo)檢測模型系列。

EfficientDet

https://arxiv.org/abs/1911.09070

EfficientDet-Lite 有 5 個(gè)不同的版本:從 Lite0 到 Lite4。較小的版本運(yùn)行速度更快,而較大的版本精度更高。您可以先用多個(gè)版本的 EfficientNet-Lite 進(jìn)行試驗(yàn),然后選擇最適合您用例的版本。

* 整型量化模型的大小

** 在 Pixel 4 上使用 4 個(gè) CPU 線程測量得出的延遲時(shí)間

*** 平均精度是 COCO 2017 驗(yàn)證數(shù)據(jù)集上的 mAP(平均精度均值)

我們已將在 COCO 數(shù)據(jù)集上訓(xùn)練的 EfficientDet-Lite 模型發(fā)布到 TensorFlow Hub。您還可以使用自己的訓(xùn)練數(shù)據(jù),通過 TensorFlow Lite Model Maker 訓(xùn)練 EfficientDet-Lite 自定義模型。

TensorFlow Hub

https://hub.tensorflow.google.cn/s?q=efficientdet/lite

TensorFlow Lite Model Maker:幾行代碼使用遷移學(xué)習(xí)訓(xùn)練自定義目標(biāo)檢測模型

TensorFlow Lite Model Maker 是 Python 庫,可顯著簡化使用自定義數(shù)據(jù)集訓(xùn)練機(jī)器學(xué)習(xí)模型的過程。該庫利用遷移學(xué)習(xí),僅使用少量圖像即可訓(xùn)練高質(zhì)量模型。

TensorFlow Lite Model Maker

http://tensorflow.google.cn/lite/guide/model_maker

Model Maker 接受 PASCAL VOC 格式和 Cloud AutoML 的 CSV 格式的數(shù)據(jù)集。和使用 LabelImg 或 makesense.ai 等開源 GUI 工具創(chuàng)建自己的數(shù)據(jù)集一樣,每位開發(fā)者都可以創(chuàng)建用于 Model Maker 的訓(xùn)練數(shù)據(jù),且無需編寫任何代碼。

CSV

https://cloud.google.com/vision/automl/object-detection/docs/csv-format

LabelImg

https://github.com/tzutalin/labelImg

makesense.ai

https://github.com/SkalskiP/make-sense

獲得訓(xùn)練數(shù)據(jù)后,您就可以開始訓(xùn)練自定義的 TensorFlow Lite 目標(biāo)檢測模型了。

# Step 1: Choose the model architecture

spec = model_spec.get(‘efficientdet_lite2’)

# Step 2: Load your training data

train_data, validation_data, test_data = object_detector.DataLoader.from_csv(‘gs://cloud-ml-data/img/openimage/csv/salads_ml_use.csv’)

# Step 3: Train a custom object detector

model = object_detector.create(train_data, model_spec=spec, validation_data=validation_data)

# Step 4: Export the model in the TensorFlow Lite format

model.export(export_dir=‘。’)

# Step 5: Evaluate the TensorFlow Lite model

model.evaluate_tflite(‘model.tflite’, test_data)

查看此 Codelab 了解詳情。

Codelab

http://tensorflow.google.cn/lite/tutorials/model_maker_object_detection

TensorFlow Lite Task Library:使用幾行代碼在移動(dòng)設(shè)備上部署目標(biāo)檢測模型

TensorFlow Lite Task Library 是跨平臺庫,它簡化了 TensorFlow Lite 模型在移動(dòng)設(shè)備上的部署。使用 TensorFlow Lite Model Maker 訓(xùn)練的自定義目標(biāo)檢測模型只需使用幾行 Kotlin 代碼即可部署到 Android 應(yīng)用:

// Step 1: Load the TensorFlow Lite model

val detector = ObjectDetector.createFromFile(context, “model.tflite”)

// Step 2: Convert the input Bitmap into a TensorFlow Lite‘s TensorImage object

val image = TensorImage.fromBitmap(bitmap)

// Step 3: Feed given image to the model and get the detection result

val results = detector.detect(image)

您可參閱一下文檔,了解有關(guān) Task Library 中,包括如何配置最小檢測閾值或最大檢測對象數(shù)量等更多自定義選項(xiàng)信息。

文檔

https://tensorflow.google.cn/lite/inference_with_metadata/task_library/object_detector

TensorFlow Lite Metadata Writer API:

用于簡化使用 TensorFlow Object Detection API 訓(xùn)練的自定義模型的部署

Task Library 依賴 TensorFlow Lite 模型中捆綁的模型元數(shù)據(jù)來執(zhí)行必要的預(yù)處理和后處理邏輯,以便使用該模型來運(yùn)行推理。這其中包括如何將輸入圖像歸一化,或如何將類 ID 映射到可人工讀取的標(biāo)簽。因?yàn)槭褂?Model Maker 訓(xùn)練的模型會(huì)默認(rèn)包含此類元數(shù)據(jù),所以它能夠與 Task Library 兼容。但是,如果您使用除 Model Maker 以外的訓(xùn)練流水線,來訓(xùn)練 TensorFlow Lite 目標(biāo)檢測,則可以使用 TensorFlow Lite Metadata Writer API 來添加元數(shù)據(jù)。

模型元數(shù)據(jù)

https://tensorflow.google.cn/lite/convert/metadata

例如,如果您使用 TensorFlow Object Detection API 來訓(xùn)練模型,則可以使用以下 Python 代碼將元數(shù)據(jù)添加到 TensorFlow Lite 模型:

LABEL_PATH = ’label_map.txt‘

MODEL_PATH = “ssd_mobilenet_v2_fpnlite_640x640_coco17_tpu-8/model.tflite”

SAVE_TO_PATH = “ssd_mobilenet_v2_fpnlite_640x640_coco17_tpu-8/model_with_metadata.tflite”# Step 1: Specify the preprocessing parameters and label file

writer = object_detector.MetadataWriter.create_for_inference(

writer_utils.load_file(MODEL_PATH), input_norm_mean=[0],

input_norm_std=[255], label_file_paths=[LABEL_PATH])

# Step 2: Export the model with metadata

writer_utils.save_file(writer.populate(), SAVE_TO_PATH)

在示例中,我們指定歸一化參數(shù) (input_norm_mean=[0], input_norm_std=[255]) ,以便將輸入圖像歸一化到 [0..1] 范圍內(nèi)。您需要指定與模型訓(xùn)練期間使用的預(yù)處理邏輯中相同的歸一化參數(shù)。

歸一化

http://tensorflow.google.cn/lite/convert/metadata#normalization_and_quantization_parameters

參閱此 Colab,獲取有關(guān)如何將使用 TensorFlow Object Detection API 訓(xùn)練的模型轉(zhuǎn)換為 TensorFlow Lite 模型并添加元數(shù)據(jù)的完整教程。

Colab

https://colab.research.google.com/github/tensorflow/models/blob/master/research/object_detection/colab_tutorials/convert_odt_model_to_TFLite.ipynb

未來計(jì)劃

我們的目標(biāo)是讓每位開發(fā)者(無論是否具備機(jī)器學(xué)習(xí)專業(yè)知識)都能更輕松使用機(jī)器學(xué)習(xí)。目前,我們正在與 TF Model Garden 團(tuán)隊(duì)合作,希望推出更多適用于 Model Maker 的目標(biāo)檢測模型架構(gòu)。

未來,我們還將繼續(xù)與 Google 研究人員合作,通過 Model Maker 提供更多面向未來的更優(yōu)秀的目標(biāo)檢測模型,縮短從前沿研究到投入實(shí)際應(yīng)用并且供所有開發(fā)者使用的整個(gè)流程。敬請關(guān)注更多動(dòng)態(tài)!

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1782

    瀏覽量

    58570
  • ML
    ML
    +關(guān)注

    關(guān)注

    0

    文章

    149

    瀏覽量

    34941
  • 目標(biāo)檢測
    +關(guān)注

    關(guān)注

    0

    文章

    221

    瀏覽量

    15866
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    481

    瀏覽量

    17368

原文標(biāo)題:使用 TensorFlow Lite 簡化移動(dòng)端目標(biāo)檢測

文章出處:【微信號:yingjiansanrenxing,微信公眾號:硬件三人行】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    何在RAKsmart服務(wù)器實(shí)現(xiàn)企業(yè)AI模型部署

    AI模型訓(xùn)練部署需要強(qiáng)大的算力支持、穩(wěn)定的網(wǎng)絡(luò)環(huán)境和專業(yè)的技術(shù)管理。RAKsmart作為全球領(lǐng)先的服務(wù)器托管與云計(jì)算服務(wù)提供商,已成為企業(yè)部署AI
    的頭像 發(fā)表于 03-27 09:46 ?201次閱讀

    請問如何在imx8mplus上部署和運(yùn)行YOLOv5訓(xùn)練模型

    。我在 yo tflite 中轉(zhuǎn)換模型并嘗試在 tensorflow 腳本運(yùn)行模型,但它不起作用。 如何在 imx8mplus 運(yùn)行 Y
    發(fā)表于 03-25 07:23

    如何添加自定義單板

    在開發(fā)過程中,用戶有時(shí)需要?jiǎng)?chuàng)建自定義板配置。本節(jié)將通過一個(gè)實(shí)例講解用戶如何創(chuàng)建屬于自己的machine,下面以g2l-test.conf為例進(jìn)行說明。
    的頭像 發(fā)表于 03-12 14:43 ?429次閱讀

    使用OpenVINO? 2021.4在CPU和MYRIAD上進(jìn)行自定義對象檢測,為什么結(jié)果差異巨大?

    使用自定義訓(xùn)練模型執(zhí)行推理,以便在 2021.4 OpenVINO?中進(jìn)行人員檢測。 與 MYRIAD 相比,CPU 的輸出結(jié)果取得了巨大的差異
    發(fā)表于 03-06 07:45

    使用OpenVINO? 2021.4將經(jīng)過訓(xùn)練自定義PyTorch模型加載為IR格式時(shí)遇到錯(cuò)誤怎么解決?

    使用 OpenVINO? 2021.4 將經(jīng)過訓(xùn)練自定義 PyTorch 模型加載為 IR 格式時(shí)遇到錯(cuò)誤: RuntimeError: [ GENERAL_ERROR ] Failed
    發(fā)表于 03-05 08:40

    Altium Designer 15.0自定義元件設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《Altium Designer 15.0自定義元件設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 01-21 15:04 ?0次下載
    Altium Designer 15.0<b class='flag-5'>自定義</b>元件設(shè)計(jì)

    think-cell:自定義think-cell(四)

    C.5 設(shè)置默認(rèn)議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來定義議程、位置和議程幻燈片的其他形狀,例如標(biāo)題或圖片。通過將此自定義布局添加到模板,您
    的頭像 發(fā)表于 01-13 10:37 ?370次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    think-cell;自定義think-cell(一)

    本章介紹如何自定義 think-cell,即如何更改默認(rèn)顏色和其他默認(rèn)屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四個(gè)部分中進(jìn)行討論。 第五部分 C.5 設(shè)置默認(rèn)議程幻燈片
    的頭像 發(fā)表于 01-08 11:31 ?546次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(一)

    AI模型部署邊緣設(shè)備的奇妙之旅:目標(biāo)檢測模型

    以及邊緣計(jì)算能力的增強(qiáng),越來越多的目標(biāo)檢測應(yīng)用開始直接在靠近數(shù)據(jù)源的邊緣設(shè)備運(yùn)行。這不僅減少了數(shù)據(jù)傳輸延遲,保護(hù)了用戶隱私,同時(shí)也減輕了云端服務(wù)器的壓力。然而,在邊緣端
    發(fā)表于 12-19 14:33

    YOLOv10自定義目標(biāo)檢測之理論+實(shí)踐

    保持先進(jìn)性能的同時(shí),降低了計(jì)算需求。大量實(shí)驗(yàn)表明,YOLOv10 在各種模型規(guī)模提供了更優(yōu)的準(zhǔn)確率-延遲權(quán)衡。 正如讀過我之前文章的朋友所知道的,我分享了使用 YOLO 模型的各種項(xiàng)目,因?yàn)樵陬A(yù)
    的頭像 發(fā)表于 11-16 10:23 ?1323次閱讀
    YOLOv10<b class='flag-5'>自定義</b><b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測</b>之理論+實(shí)踐

    設(shè)備利用AI Edge Torch生成式API部署自定義大語言模型

    ,從而無縫地將新的設(shè)備端生成式 AI 模型部署到邊緣設(shè)備。本文是 Google AI Edge 博客連載的第二篇。
    的頭像 發(fā)表于 11-14 10:23 ?854次閱讀
    在<b class='flag-5'>設(shè)備</b><b class='flag-5'>上</b>利用AI Edge Torch生成式API<b class='flag-5'>部署</b><b class='flag-5'>自定義</b>大語言<b class='flag-5'>模型</b>

    在樹莓派上部署YOLOv5進(jìn)行動(dòng)物目標(biāo)檢測的完整流程

    卓越的性能。本文將詳細(xì)介紹如何在性能更強(qiáng)的計(jì)算機(jī)上訓(xùn)練YOLOv5模型,并將訓(xùn)練好的模型部署到樹
    的頭像 發(fā)表于 11-11 10:38 ?3038次閱讀
    在樹莓派上<b class='flag-5'>部署</b>YOLOv5進(jìn)行動(dòng)物<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測</b>的完整流程

    NVIDIA NeMo加速并簡化自定義模型開發(fā)

    如果企業(yè)希望充分發(fā)揮出 AI 的力量,就需要根據(jù)其行業(yè)需求量身定制的自定義模型。
    的頭像 發(fā)表于 07-26 11:17 ?1074次閱讀
    NVIDIA NeMo加速并簡化<b class='flag-5'>自定義</b><b class='flag-5'>模型</b>開發(fā)

    NVIDIA AI Foundry 為全球企業(yè)打造自定義 Llama 3.1 生成式 AI 模型

    Foundry 提供從數(shù)據(jù)策管、合成數(shù)據(jù)生成、微調(diào)、檢索、防護(hù)到評估的全方位生成式 AI 模型服務(wù),以便部署自定義 Llama 3.1 NVIDIA NIM 微服務(wù)和新的 NVIDIA NeMo
    發(fā)表于 07-24 09:39 ?823次閱讀
    NVIDIA AI Foundry 為全球企業(yè)打造<b class='flag-5'>自定義</b> Llama 3.1 生成式 AI <b class='flag-5'>模型</b>

    何在IDF框架中使用自定義的靜態(tài)庫和動(dòng)態(tài)庫?

    基于商業(yè)需要,我們需要在 ESP-IDF v4.0-rc 這個(gè)版本的IDF中開發(fā)與使用自定義庫,有如下問題請協(xié)助: 1如何利用IDF框架編寫自定義靜態(tài)庫和動(dòng)態(tài)庫? 2如何在IDF框架中使用自定
    發(fā)表于 06-25 07:57

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品