一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何實現(xiàn)跨平臺部署嵌入式智能應(yīng)用的部署?

Tensorflowers ? 來源:github ? 作者:段嘉銘 ? 2021-03-11 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這幾年我們在日常工作生活中看到越來越多的智能終端設(shè)備的出現(xiàn),如智能家電、商城客服機器人、物流配送無人小車、智能監(jiān)控等等,它們可以為我們生活帶來各種各樣的便利。因此,邊緣智能與 AIoT 已成為不少國內(nèi)外企業(yè)發(fā)展的一個重要方向。邊緣智能是一項以嵌入式設(shè)備應(yīng)用開發(fā)為基礎(chǔ)的前沿技術(shù),我們需要在一些資源緊張的嵌入式設(shè)備,如 MCU、SOC,部署如人臉識別、物體檢測、音頻分類等智能應(yīng)用。

然而,我們又看到現(xiàn)實的嵌入式智能應(yīng)用開發(fā)面正臨著一些軟硬件生態(tài)兼容方面的挑戰(zhàn)。例如,芯片廠商提供推薦的板載系統(tǒng)往往是定制的,使用不同的編譯工具,而且大多不會有 Python 解釋器。所以,當(dāng)我們打算將自己的智能應(yīng)用部署到嵌入式設(shè)備時,我們繞不開 AI 推理框架跨平臺的問題。

TensorFlow Lite 應(yīng)用 C++ 作為框架底層的基礎(chǔ)實現(xiàn)可以天然保證跨平臺擴展特性,但由于它的這項技術(shù)的比較前沿,在嵌入式 Linux 設(shè)備上以 Python 接口為主,有些開發(fā)者不太適應(yīng),認(rèn)為不易上手。為此,我們開發(fā) Edge Brain 方便開發(fā)者以其熟悉的交叉編譯方式部署 TensorFlow Lite 智能應(yīng)用,讓他們的嵌入式應(yīng)用走向智能化。

交叉編譯

交叉編譯是指,一種在某個系統(tǒng)平臺下可以產(chǎn)生另一個系統(tǒng)平臺的可執(zhí)行文件的編譯方式。這種方式的優(yōu)點是,當(dāng)程序在目標(biāo)運行系統(tǒng)平臺進行編譯比較困難時,它通過解耦編譯和運行兩個過程來實現(xiàn)更高效的程序調(diào)試。比如,在資源緊張的 Linux ARM 嵌入式系統(tǒng)平臺調(diào)試應(yīng)用程序,其編譯過程往往有著很高的 CPU 占用率,更不用說我們其實希望程序的編譯與運行調(diào)試工作能并行開展。因此,交叉編譯在嵌入式智能開發(fā)有著重要的應(yīng)用場景。

后面的篇幅,我們將參考官方文檔以跨平臺交叉編譯樹莓派的 TensorFlow Lite C++ 應(yīng)用為例,介紹如何實現(xiàn)跨平臺部署嵌入式智能應(yīng)用的部署。因為,樹莓派是 Linux ARM 嵌入式系統(tǒng)平臺的其中一種,所以我們希望本文能夠起到拋磚引玉的效果,讀者未來遇到類似的問題時,能舉一反三完成業(yè)務(wù)平臺的部署,甚至分享心得與我們一起為開源社區(qū)做貢獻。

準(zhǔn)備 Docker 編譯環(huán)境

本文選用的交叉編譯工具為 Google 開源推出的 Bazel。其由于具有易用性的特點,已經(jīng)在大量開源 AI 項目中得到應(yīng)用。在本章節(jié),我們將手把手的帶領(lǐng)您一步一步搭建編譯環(huán)境。首先,我們不希望開發(fā)者由于環(huán)境安裝的兼容性問題,遇到系統(tǒng)軟件版本沖突的狀況。所以,我們建議大家將程序的編譯環(huán)境配置在 docker 中。這樣不僅可以保證本地環(huán)境的安全,還能方便后續(xù)環(huán)境遷移。

本文選用 ubuntu04 作為我們的基礎(chǔ)鏡像,并在其中采用 Bazel 官網(wǎng)中 Binary Installer 的安裝方式。具體步驟如下:

1. 創(chuàng)建 Dockerfile 內(nèi)容如下

From ubuntu:18.04

RUN apt update -y

&& apt install -y curl gnupg git vim python python3 python3-distutils python3-pip g++ unzip zip openjdk-11-jdk wget cmake make -y

&& pip3 install numpy

&& wget https://github.com/bazelbuild/bazelisk/releases/download/v1.7.5/bazelisk-linux-amd64

&& chmod +x bazelisk-linux-amd64

&& mv bazelisk-linux-amd64 /usr/bin/bazel

&& echo ‘export PATH=$PATH:$HOME/bin’ 》》 ~/.bashrc

&& apt-get purge -y --auto-remove

2. 在 Dockerfile 所在目錄中執(zhí)行下面的命令生成我們需要的 Docker 鏡像實現(xiàn)編譯環(huán)境的配置。

~$ docker build -t bazel-build-env:v0.01 。

Bazel TensorFlow Lite

Bazel 可以輕松完成交叉編譯,互聯(lián)網(wǎng)有許多教程介紹 toolchain 的配置原理,我們不再贅述。這里我們主要介紹交叉編譯 TensorFlow Lite 的實戰(zhàn)步驟。因為我們希望最終程序在樹莓派上使用,所以我們直接使用 TensorFlow 的 toolchain 配置即可。具體步驟如下:

1. 導(dǎo)入 TensorFlow 庫

TensorFlow 的 toolchain 以及 TFLite 相關(guān)的源碼均存在 github 的倉庫之中,于是我們需要使用 Bazel 將其自動下載下來,并繼承其配置文件。Bazel 提供了非常簡單的實現(xiàn)方式,即在項目根目錄下配置 WORKSPACE 文件中追加如下內(nèi)容即可:

load(“@bazel_tools//tools/build_defs/repo:http.bzl”, “http_archive”)

load(“@bazel_tools//tools/build_defs/repo:git.bzl”, “git_repository”, “new_git_repository”)

# Needed by TensorFlow

http_archive(

name = “io_bazel_rules_closure”,

sha256 = “e0a111000aeed2051f29fcc7a3f83be3ad8c6c93c186e64beb1ad313f0c7f9f9”,

strip_prefix = “rules_closure-cf1e44edb908e9616030cc83d085989b8e6cd6df”,

urls = [

“http://mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/cf1e44edb908e9616030cc83d085989b8e6cd6df.tar.gz”,

“https://github.com/bazelbuild/rules_closure/archive/cf1e44edb908e9616030cc83d085989b8e6cd6df.tar.gz”, # 2019-04-04

],

git_repository(

name = “org_tensorflow”,

remote = “https://github.com.cnpmjs.org/tensorflow/tensorflow.git”,

tag = “v2.4.0”

load(“@org_tensorflow//tensorflow:workspace.bzl”, “tf_workspace”)

tf_workspace(tf_repo_name = “org_tensorflow”)

可以看到上述內(nèi)容中,我們不僅僅制定了 TensorFlow 倉庫,而且 Bazel 還允許我們通過 tag 來選擇特定版本的內(nèi)容。除此之外,在配置好 TensorFlow 倉庫之后,還能使用 @org_tensorflow 來進行額外的配置,如繼承倉庫中的 WORKSPACE 配置。

2. 修改 .bazelrc 文件

我們參考 TensorFlow 庫中的配置, 修改項目路徑中的 edge-brain/.bazelrc 如下:

# TF settings

build:elinux --crosstool_top=@local_config_embedded_arm//:toolchain

build:elinux --host_crosstool_top=@bazel_tools//tools/cpp:toolchain

build:elinux_armhf --config=elinux

build:elinux_armhf --cpu=armhf

經(jīng)過第一步的配置,我們已經(jīng)使得 Bazel 不僅知道從何處下載什么版本的 TensorFlow 源碼,還加載了 TF 倉庫中已有的相關(guān)配置。這樣當(dāng)我們使用 --config elinux_armhf 時,bazel 將知道應(yīng)使用 TF 庫中 @local_config_embedded_arm//:toolchain 來編譯代碼,至此便輕松的完成了交叉編譯的環(huán)境配置工作,接下來讓我們來測試下編譯環(huán)境。

3.驗證 TFLite 的 Bazel 配置

我們的 Edge Brain 倉庫已經(jīng)為你提前完成上述的相關(guān)環(huán)境配置?,F(xiàn)在,我們可以執(zhí)行下面的指令嘗試編譯 TFLite 提供的 minial.cc 程序驗證編譯環(huán)境。

edge-brain$ bazel build --config elinux_armhf //examples/hello_world:hello_world --experimental_repo_remote_exec

Bazel OpenCV

OpenCV 是一個輕量高效的計算機視覺機器學(xué)習(xí)軟件庫,可以跨平臺運行在 Linux、Windows、Android 和 MacOS 的操作系統(tǒng)上,而且集成許多圖像處理和計算機視覺方面的通用優(yōu)秀算法。再之,計算機視覺作為最先引入卷積神經(jīng)網(wǎng)絡(luò)的前沿領(lǐng)域,它的智能算法相對成熟并且已被廣泛應(yīng)用于各種生活場景,如安防常用的人臉識別與目標(biāo)跟蹤等都屬于這一領(lǐng)域。

但是,如前文所述,我們現(xiàn)有的嵌入式系統(tǒng)平臺的種類繁多而且硬件資源特別有限。所以, OpenCV 團隊難以支持各式各樣系統(tǒng)平臺的庫文件預(yù)編譯(binary prebuilt),而我們也不愿意忍受嵌入式系統(tǒng)上編譯 OpenCV 庫的漫長過程。因此,我們基于 Bazel 工具搭建 OpenCV 智能應(yīng)用的交叉編譯環(huán)境,希望它幫助一些計算機視覺領(lǐng)域同學(xué)快速構(gòu)建他們自己的嵌入式視覺應(yīng)用。

下面我們將簡單介紹 Bazel 搭建 OpenCV 編譯環(huán)境的解決思路。我們了解到 OpenCV 主要構(gòu)建工具是 CMake,所以它的所有編譯配置都寫在 CMakeList.txt 文件中。CMake 是現(xiàn)在開源項目的主流編譯工具,過去如 Caffe、Tesseract 以及 Boost 等開源項目都是用 CMake 編譯的。因此,Bazel 為了兼容 CMake 的編譯規(guī)則擴展提供一個名為 cmak_external 函數(shù)接口,實現(xiàn)對第三方庫編譯參數(shù)的控制。

cmak_external 函數(shù)接口有兩個控制編譯參數(shù)的關(guān)鍵變量:cache_entries 與 make_commands。Bazel 會根據(jù)這兩個變量的參數(shù)自動編寫一個適合的 CMake 運行腳本并執(zhí)行得到理想的編譯結(jié)果。簡單來說,我們可以認(rèn)為 cmak_external 就是讓 Bazel 通過 Shell 腳本控制本地終端完成 CMake 的編譯過程。下面我們展示 edge-brain/third_party/BUILD 如何配置 OpenCV 的靜態(tài)庫編譯。

load(“@rules_foreign_cc//tools/build_defs:cmake.bzl”, “cmake_external”)

load(“//third_party:opencv_configs.bzl”,

“OPENCV_SO_VERSION”,

“OPENCV_MODULES”,

“OPENCV_THIRD_PARTY_DEPS”,

“OPENCV_SHARED_LIBS”)

exports_files([“LICENSE”])

package(default_visibility = [“//visibility:public”])

alias(

name = “opencv”,

actual = select({

“//conditions:default”: “:opencv_cmake”,

}),

visibility = [“//visibility:public”],

OPENCV_DEPS_PATH = “$BUILD_TMPDIR/$INSTALL_PREFIX”

cmake_external(

name = “opencv_cmake”,

cache_entries = {

“CMAKE_BUILD_TYPE”: “Release”,

“CMAKE_TOOLCHAIN_FILE”: “$EXT_BUILD_ROOT/external/opencv/platforms/linux/arm-gnueabi.toolchain.cmake”,

“BUILD_LIST”: “,”.join(sorted(OPENCV_MODULES)),

“BUILD_TESTS”: “OFF”,

“BUILD_PERF_TESTS”: “OFF”,

“BUILD_EXAMPLES”: “OFF”,

“BUILD_SHARED_LIBS”: “ON” if OPENCV_SHARED_LIBS else “OFF”,

“WITH_ITT”: “OFF”,

“WITH_TIFF”: “OFF”,

“WITH_JASPER”: “OFF”,

“WITH_WEBP”: “OFF”,

“BUILD_PNG”: “ON”,

“BUILD_JPEG”: “ON”,

“BUILD_ZLIB”: “ON”,

“OPENCV_SKIP_VISIBILITY_HIDDEN”: “ON” if not OPENCV_SHARED_LIBS else “OFF”,

“OPENCV_SKIP_PYTHON_LOADER”: “ON”,

“BUILD_opencv_python”: “OFF”,

“ENABLE_CCACHE”: “OFF”,

},

make_commands = [“make -j4”, “make install”] + [“cp {}/share/OpenCV/3rdparty/lib/*.a {}/lib/”.format(OPENCV_DEPS_PATH, OPENCV_DEPS_PATH)],

lib_source = “@opencv//:all”,

linkopts = [] if OPENCV_SHARED_LIBS else [

“-ldl”,

“-lm”,

“-lpthread”,

“-lrt”,

],

shared_libraries = select({

“@bazel_tools//src/conditions:darwin”: [“l(fā)ibopencv_%s.%s.dylib” % (module, OPENCV_SO_VERSION) for module in OPENCV_MODULES],

“//conditions:default”: [“l(fā)ibopencv_%s.so.%s” % (module, OPENCV_SO_VERSION) for module in OPENCV_MODULES],

}) if OPENCV_SHARED_LIBS else None,

static_libraries = [“l(fā)ibopencv_%s.a” % module for module in OPENCV_MODULES]

+ [module for module in OPENCV_THIRD_PARTY_DEPS] if not OPENCV_SHARED_LIBS else None,

alwayslink=True,

最后,我們在 edge-brain 目錄運行下面的指令編譯測試程序,并將測試程序拷貝到樹莓派上運行,從而驗證 Bazel 搭建 OpenCV 編譯環(huán)境正確性。

edge-brain$ bazel build --config elinux_armhf //examples/hello_opencv:hello-opencv --experimental_repo_remote_exec

應(yīng)用實踐

下面我們將介紹如何利用 Edge Brain 的編譯環(huán)境完成實際的智能應(yīng)用在嵌入式平臺的部署。

低照度圖像增強

MIRNet 是 Learning Enriched Features for Real Image Restoration and Enhancement 提出的一種圖像增強網(wǎng)絡(luò)模型。該模型學(xué)習(xí)了一組豐富的特征,這些特征結(jié)合了來自多個尺度的上下文信息,同時保留了高分辨率的空間細(xì)節(jié)。其算法的核心是:并行多分辨率卷積流,用于提取多尺度特征;跨多分辨率流的信息交換;空間和通道注意力機制來捕獲上下文信息;基于注意力的多尺度特征聚合。下面是 MIRNet 的一些原理圖示。

MIRNet 整體框架

04a9ff60-7ee5-11eb-8b86-12bb97331649.png

選擇核心特征融合模塊 (Selective Kernel Feature Fusion, SKFF)

04e27f7a-7ee5-11eb-8b86-12bb97331649.png

對偶注意力機制單元 (Dual Attention Unit, DAU)

051e789a-7ee5-11eb-8b86-12bb97331649.png

下采樣模塊 (Downsampling Module)

055028cc-7ee5-11eb-8b86-12bb97331649.png

上采樣模塊 (Upsampling Module)

Learning Enriched Features for Real Image Restoration and Enhancement

https://arxiv.org/pdf/2003.06792v2.pdf

基于 sayakpaul/MIRNet-TFLite-TRT 提供的 MIRNet 模型可以實現(xiàn)圖像照度的恢復(fù),其運行效果如圖所示。

MIRNet-TFLite-TRT 的展示效果

最后,我們簡單介紹在樹莓派上部署這個 MIRNet 模型的實際操作。

1. 交叉編譯 MIRNet 應(yīng)用。

edge-brain$ bazel build --config elinux_armhf //examples/mir_net:mir_net --experimental_repo_remote_exec

2. 將編譯出來的可執(zhí)行文件 mir_net 與它的模型文件 lite-model_mirnet-fixed_dr_1.tflite 和測試圖片 data/test.jpg 上傳至樹莓派,其中 192.168.1.2 是樹莓派的 IP。

edge-brain$ scp bazel-bin/examples/mir_net pi@192.168.1.2:~

edge-brain$ scp lite-model_mirnet-fixed_dr_1.tflite pi@192.168.1.2:~

edge-brain$ scp data/test.jpg pi@192.168.1.2:~

3. 在樹莓派的終端運行 MIRNet 應(yīng)用。

~$ 。/mir_net -i=test.jpg -m=lite-model_mirnet-fixed_dr_1.tflite -o=output.jpg

4. 查看 output.jpg,可以看到運行后的結(jié)果。

使用入門

為了讓讀者能夠相當(dāng)輕松地應(yīng)用我們的 Edge Brain 環(huán)境入門嵌入式智能應(yīng)用部署,我們介紹兩種簡單的程序編譯方式,供讀者參考完成自己的 AI 業(yè)務(wù)部署。同時,我們也歡迎各位小伙伴為開源社區(qū)貢獻你們的應(yīng)用案例與實踐反饋。

編譯外部 GitHub 工程

我們以 SunAriesCN/image-classifier 的圖像分類應(yīng)用為例,詳細(xì)介紹如何兩步完成外部 GitHub 工程的交叉編譯,還能為我們 Edge Brain 貢獻新案例。

1. 在 edge-brain/WORKSPACE 工程環(huán)境配置文件導(dǎo)入外部 image-classifier 工程。

load(“@bazel_tools//tools/build_defs/repo:git.bzl”, “git_repository”)

# Custom other thirdparty applications into repo as examples.

git_repository(

name = “image-classifier”,

remote = “https://github.com/SunAriesCN/image-classifier.git”,

commit= “72d80543f1887375abb565988c12af1960fd311f”,

上述代碼很清晰地告訴我們,Bazel 將從遠(yuǎn)程倉庫 image-classifier 中拉取特定 commit 版本的代碼到本地,并以 @image-classifier 代表其路徑。我們未來可以直接使用 @image-classifier//XXX 訪問該外部工程配置的編譯文件。這樣我們不僅僅可以獲得對應(yīng)的代碼文件,還能輕松的進行版本控制。

2. 在 example 文件夾中新建對應(yīng)文件夾,并配置 BUILD 編譯配置描述。

SunAriesCN/image-classifier 工程項目提供了一些圖像分類的模型應(yīng)用。我們可以分別將它們配置到Edge Brain 對應(yīng)的 example 文件夾中。比如,我們在 edge-brain/examples 下創(chuàng)建一個 image_benchmark 案例目錄,再添加相應(yīng)的 BUILD 編譯配置描述。我們將得到目錄結(jié)構(gòu)如下:

├── examples

│ ├── BUILD

│ ├── hello_opencv

│ │ ├── BUILD

│ │ └── hello-opencv.cc

│ ├── hello_world

│ │ ├── BUILD

│ │ └── minimal.cc

│ ├── image_benchmark

│ │ └── BUILD

其中,examples 下的每個目錄代表一個應(yīng)用案例。而且,所有案例目錄都有一個 BUILD 文件描述對應(yīng)案例項目的編譯配置。比如, image_benchmark 對應(yīng) SunAriesCN/image-classifier 的圖像分類基準(zhǔn)測試應(yīng)用。它的 BUILD 描述如下:

alias(

name=“image_benchmark”,

actual=“@image-classifier//image_classifier/apps/raspberry_pi:image_classifier_benchmark”

我們可以看到其內(nèi)容非常易懂,即給第三方倉庫 @image-classifier 中對應(yīng)的 image_classifier_benchmark 應(yīng)用創(chuàng)建別名為 image_benchmark。

完成上述外部工程導(dǎo)入操作后,我們可以使用下面的指令輕松完成應(yīng)用的交叉編譯:

edge-brain$ bazel build --config elinux_armhf //examples/image_benchmark:image_benchmark --experimental_repo_remote_exec

為了便于 Edge Brain 項目的長期維護,同時,我們也希望能為每位開源貢獻者帶來項目成功的榮譽。我們更加推薦這種編譯外部 GitHub 工程的應(yīng)用方式,畢竟它能實現(xiàn)我們項目間協(xié)同開發(fā)。只要你的項目工程也使用 Bazel 工具進行編譯,你便可以在 edge-brain 的 WORKSPACE 中添加簡單的幾行代碼配置完成嵌入式智能應(yīng)用的部署。

直接添加 examples 案例

該方式也特別簡單,參考 “Bazel TensorFlow Lite” 部分內(nèi)容或 edge-brain/examples/hello_world 案例,我們在 examples 目錄下創(chuàng)建案例目錄,編寫 BUILD 描述文件以及相應(yīng)的智能應(yīng)用代碼,再回到 edge-brain 目錄執(zhí)行 bazel build。編譯成功后,我們從 bazel-bin/examples/hello_world 中將測試程序與相關(guān)模型文件上傳到樹莓派上運行即完成部署。

最后,如果你愿意為我們的項目貢獻代碼案例,請你在完成程序調(diào)試后,向 Edge Brain 項目提交 Pull Request,我們將繼續(xù)完善后面代碼審核和 README 文檔更新工作,最后會予以署名致謝。

原文標(biāo)題:社區(qū)分享 | TensorFlow Lite 邊緣智能快速入門

文章出處:【微信公眾號:TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    6

    文章

    941

    瀏覽量

    35404
  • 邊緣計算
    +關(guān)注

    關(guān)注

    22

    文章

    3326

    瀏覽量

    50911

原文標(biāo)題:社區(qū)分享 | TensorFlow Lite 邊緣智能快速入門

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    高效開發(fā) | 瑞迅基于瑞芯微系列主板QT移植部署(上)

    嵌入式開發(fā)的浪潮中,RK3568平臺以其強勁性能成為諸多領(lǐng)域的寵兒,而QT憑借出色的平臺特性和豐富功能,是界面開發(fā)的利器。將QT5移植到RK3568
    的頭像 發(fā)表于 07-11 15:39 ?150次閱讀
    高效開發(fā) | 瑞迅基于瑞芯微系列主板QT移植<b class='flag-5'>部署</b>(上)

    ArkUI-X平臺應(yīng)用改造指南

    工作量大幅增加,開發(fā)成本也隨之上升,而且很難保持一致的交互體驗。 ArkUI-X 平臺框架是基于 HarmonyOS 打造的平臺框架
    發(fā)表于 06-16 23:05

    如何在嵌入式平臺上部署高光譜相機

    高光譜成像技術(shù)廣泛應(yīng)用于農(nóng)業(yè)、環(huán)境監(jiān)測、工業(yè)檢測等領(lǐng)域。友思特eBUS軟件為嵌入式分選和檢測成像平臺搭建提供專屬解決方案,如自定義的分選系統(tǒng)、實時數(shù)據(jù)采集、高性能處理平臺和實時通信協(xié)議等。
    的頭像 發(fā)表于 06-03 13:39 ?215次閱讀
    如何在<b class='flag-5'>嵌入式</b><b class='flag-5'>平臺上部署</b>高光譜相機

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    隨著物聯(lián)網(wǎng)、智能硬件的發(fā)展,嵌入式開發(fā)成為熱門技能之一。以下將為初學(xué)者提供一份詳細(xì)的嵌入式開發(fā)入門指南,涵蓋學(xué)習(xí)路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應(yīng)用
    發(fā)表于 05-15 09:29

    嵌入式機器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

    作者:DigiKey Editor 在許多嵌入式系統(tǒng)中,必須采用嵌入式機器學(xué)習(xí)(Embedded Machine Learning)技術(shù),這是指將機器學(xué)習(xí)模型部署在資源受限的設(shè)備(如微控制器、物聯(lián)網(wǎng)
    的頭像 發(fā)表于 01-25 17:05 ?660次閱讀
    <b class='flag-5'>嵌入式</b>機器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

    什么是嵌入式人工智能

    嵌入式人工智能的目標(biāo)是使嵌入式系統(tǒng)具備智能化的感知、分析和響應(yīng)能力,從而實現(xiàn)自主決策、自適應(yīng)學(xué)習(xí)和智能
    的頭像 發(fā)表于 12-11 09:23 ?996次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工<b class='flag-5'>智能</b>

    嵌入式和人工智能究竟是什么關(guān)系?

    對人工智能應(yīng)用的實時響應(yīng)。與此同時,嵌入式系統(tǒng)在邊緣計算和物聯(lián)網(wǎng)領(lǐng)域,也為人工智能的應(yīng)用提供了廣闊的空間。 在邊緣計算中,嵌入式系統(tǒng)能夠?qū)⑷斯?b class='flag-5'>智能
    發(fā)表于 11-14 16:39

    如何在低成本ARM平臺部署LVGL免費圖形庫,基于全志T113-i

    本帖最后由 Tronlong創(chuàng)龍科技 于 2024-10-29 10:39 編輯 LVGL簡介 LVGL(Littlev Graphics Library)是一個開源的圖形庫,主要用于嵌入式
    發(fā)表于 10-29 09:55

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運行的核心力量。那么,究竟什么是嵌入式?嵌入式系統(tǒng),顧名思義,是將計算機的硬件和軟件嵌入
    的頭像 發(fā)表于 10-16 10:14 ?2606次閱讀

    EsDA,一站嵌入式軟件

    EsDA是一套面向工業(yè)智能物聯(lián)領(lǐng)域的嵌入式系統(tǒng)設(shè)計自動化工具集,包含實時操作系統(tǒng)AWorksLP、低代碼開發(fā)平臺AWStudio、資源管理平臺AXPI、
    的頭像 發(fā)表于 09-15 08:10 ?780次閱讀
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b>軟件

    七大嵌入式GUI盤點

    特點是支持平臺同步開發(fā),一次編程,到處編譯,平臺使用。 GUIX 是微軟的高級工業(yè)級GUI解決方案,專門針對深度嵌入式,實時和Io
    發(fā)表于 09-02 10:58

    開啟全新AI時代 智能嵌入式系統(tǒng)快速發(fā)展——“第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束

    。 湖南大學(xué)教授、嵌入式與網(wǎng)絡(luò)計算湖南省重點實驗室主任謝國琪做了“國產(chǎn)異構(gòu)計算平臺的‘五合一’智能計算開發(fā)創(chuàng)新實踐”的專題報告。謝國琪介紹國產(chǎn)異構(gòu)計算平臺技術(shù)特點,以及在國產(chǎn)異構(gòu)計算
    發(fā)表于 08-30 17:24

    嵌入式QT常見開發(fā)方式有哪些?

    嵌入式工程師可以使用同一套代碼庫開發(fā)適用于不同嵌入式操作系統(tǒng)(如Linux、RTOS)的應(yīng)用程序,只需針對目標(biāo)平臺調(diào)整編譯選項和配置即可。 6.Qt for MCU(Microcontroller
    發(fā)表于 08-12 10:05

    利用恩智浦云實驗室部署AI模型

    如今,人工智能(AI)非常火爆,這個風(fēng)口該如何把握?作為一個電子工程師,和AI最主要的交集應(yīng)該就是邊緣計算了,具體來講,就是在一些性能、功耗以及價格相對較低的嵌入式平臺上部署和運行AI模型。
    的頭像 發(fā)表于 08-02 11:46 ?3658次閱讀
    利用恩智浦云實驗室<b class='flag-5'>部署</b>AI模型

    節(jié)點、平臺開發(fā),AWFlow讓嵌入式開發(fā)變得更簡單

    國產(chǎn)化趨勢對嵌入式軟件開發(fā)構(gòu)成挑戰(zhàn),導(dǎo)致軟件移植和適配需求激增,影響開發(fā)效率。AWFlow軟件通過節(jié)點化和平臺開發(fā),簡化了開發(fā)流程,提升了軟件復(fù)用性,降低了開發(fā)成本。當(dāng)前國產(chǎn)化浪潮對傳統(tǒng)嵌入
    的頭像 發(fā)表于 08-02 08:25 ?757次閱讀
    節(jié)點<b class='flag-5'>式</b>、<b class='flag-5'>跨</b><b class='flag-5'>平臺</b>開發(fā),AWFlow讓<b class='flag-5'>嵌入式</b>開發(fā)變得更簡單