【OrangePi AIpro】開箱初體驗以及OAK深度相機測試

1. 簡介

? ? ? ? Orangepi AIPRO 是一款采用昇騰AI技術路線,集成4核64位處理器+AI處理器的單板計算機,集成圖形處理器,支持8TOPS AI算力,擁有8GB/16GB LPDDR4X,可以外接eMMC模塊,支持雙4K高清輸出。?

? ? ? ? Orange Pi AIpro擁有豐富的擴展接口,包括兩個HDMI輸出、GPIO接口、支持SATA/NVMe SSD 2280的M.2插槽(PCIe 4Lane)、TF插槽、千兆網口、兩個USB3.0、一個USB Type-C 3.0、一個Micro USB(串口打印調試功能)、兩個MIPI攝像頭、一個MIPI屏等,預留電池接口,

Orange Pi AIpro已支持Ubuntu、openEuler操作系統,可以滿足大多數AI算法原型驗證、推理應用開發的需求。

2. 主要特性

  1. 處理器昇騰AI處理器(Ascend310B4)64bit 四核處理器,主頻可達 1.5GHz
  2. 內存8GB LPDDR4X 內存
  3. 顯示:支持 HDMI 2.0 最大分辨率可達 4K
  4. 網絡:支持千兆以太網接口,Wi-Fi 5,藍牙 4.2
  5. 接口:USB 3.0,USB 2.0,SATA 2.0,PCIe 2.0,I2C,SPI,GPIO
  6. 擴展:支持擴展多種 USB 和 PCIe 設備

3.使用方法

準備工作

  1. 下載針對 Orangepi AIPRO 的操作系統鏡像文件(Ubuntu、openEuler),并將其燒錄到 SD 卡中。

Ubuntu鏡像

openEuler

  1. 將 SD 卡插入 Orangepi AIPRO 的 SD 卡槽,并開啟電源。
  2. 系統將自動完成啟動。

3.1連接串口及網絡

? ? ? 根據Orangepi AIPRO 提供的接口,我們可以很輕易的完成串口終端的登錄和網絡的配置,主要有一下幾種方法:

  1. 通過HDMI線纜將開發板的HDMI0接口連接到我們的屏幕上,在熟悉的圖形界面上配置wifi密碼和設置以太網固定IP;
  2. 將開發板的microUSB調試串口通過USB線纜連接到電腦,可以使用串口終端登錄 Linux 系統;(波特率:115200 數據位:8 停止位:1 None Flow Ctrl);
  3. 如果沒有屏幕,我們可以通過在串口終端中使用nmtui工具來完成網絡配置;

? ?接下來主要通過第三種方式介紹一下WIFI和千兆網絡配置:

? 1.在串口終端輸入下面的命令開始搜索WIFI,ctrl+c退出搜索

nmcli dev wifi

2.配置WIFI名稱與密碼 wifi_name 需要替換為自己的WIFI名稱 wifi_passwd 替換為WIFI密碼

sudo nmcli dev wifi connect wifi_name password wifi_passwd
? ?成功后聯網后會顯示Device 'wlan0' successfully activated,通過PING一下網站域名可簡單驗證WIFI網絡連通性。

3.千兆網口的配置

  • 通過命令查看網絡連接狀態,Wired connection 1就是千兆有線網絡
nmcli con show

  • 輸入下列命令完成千兆有線網絡配置(可根據自己需要設置IP和網關地址)
    sudo nmcli con mod "Wired connection 1" ipv4.addresses "192.168.1.110" ipv4.gateway "192.168.1.1"  ipv4.dns "8.8.8.8" ipv4.method "manual"
  • ?配置完成后 需要reboot生效
  • 在千兆網絡端口沒有連接網線時,無法查看端口詳細的配置,此時我們將開發板連接到電腦通過下面的命令就可以查看固定IP是否配置成功
    • ip addr show eth0

4. USB深度攝像頭初步測試

? ? ? ?由于Orangepi AIPRO板卡上提供了兩個USB3.0接口可以很方便的連接USB相機,外置的深度相機可以節約AI處理器算力,讓芯片專注于控制場景中的決策工作,手頭剛好有OPENCV AI KIT的深度相機可以在Orangepi AIPRO測試一下。

? ? ? ?得益于Ubuntu系統強大的兼容性,我們可以通過簡單的指令完成環境搭建;

# 安裝依賴項
sudo wget -qO- https://docs.luxonis.com/install_depthai.sh | bash
# 安裝顯控軟件
python3 -m pip install depthai-viewer
# 運行DepthAI Viewer
python3 -m depthai_viewer
? ? ? 打開 depthai_viewer軟件后,就可以看到深度相機傳回的原始深度圖像。

5.AI應用樣例體驗

? ? ? ?在Orangepi AIPRO板卡系統中還內置了多個有趣的AI處理案例,大大降低了學習門檻。

? ? ? ?在人像分割場景中,Orangepi AIPRO可以通過訓練好的模型輕松實現深度學習神經網絡PortraitNet,(PortraitNet是實時人像分割模型,該模型可以在移動設備上有效且高效地運行,基于輕量級的 U 形架構,在訓練階段有兩個輔助損失,而在測試階段不需要額外的成本進行肖像推理。兩個輔助損失是邊界損失和一致性約束損失。前者提高了邊界像素的精度,后者增強了復雜光照環境下的魯棒性)。

? ? ? 5.1. 打開內置Jupyter Notebook AI樣例的操作很便捷,只需要下面兩條命令;

cd samples/notebooks/
./start_notebook.sh

?5.2.?運行Jupyter Notebook AI樣例

? ? 5.3.??輸出對比圖像

輸入圖像背景圖像輸出圖像

? ? ?內置的AI樣例中有很清晰的注釋,在調試過程中很容易理解 各個代碼模塊對應的功能,可以很方便的修改,做到有的放矢。?

class Seg(object):"""人像分割模型推理"""def __init__(self, model_path, model_width, model_height):self._model_path = model_pathself._model_width = model_widthself._model_height = model_heightself.device_id = 0self._dvpp = Noneself._model = Nonedef init(self):"""初始化相關資源"""# Initialize dvppself._dvpp = AclLiteImageProc()# Load modelself._model = AclLiteModel(self._model_path)return const.SUCCESS@utils.display_timedef pre_process(self, image):"""圖片預處理"""image_dvpp = image.copy_to_dvpp()yuv_image = self._dvpp.jpegd(image_dvpp)resized_image = self._dvpp.resize(yuv_image,self._model_width, self._model_height)return resized_image     @utils.display_timedef inference(self, input_data):"""模型推理"""return self._model.execute(input_data)@utils.display_timedef post_process(self, infer_output, image_name):"""獲取分割結果"""data = infer_output[0]vals = data.flatten()mask = np.clip((vals * 255), 0, 255)mask = mask.reshape(224, 224, 2)cv2.imwrite(os.path.join(MASK_DIR, image_name), mask[:, :, 0])return mask @utils.display_time
def background_replace(bg_path, ori_path, mask_path):"""將人像分割結果與背景圖片結合"""background = cv2.imread(bg_path)height, width = background.shape[:2]ori_img = cv2.imread(ori_path)mask = cv2.imread(mask_path, 0)mask = mask / 255mask_resize = cv2.resize(mask, (width, height))ori_img = cv2.resize(ori_img, (width, height))mask_bg = np.repeat(mask_resize[..., np.newaxis], 3, 2)result = np.uint8(background * mask_bg + ori_img * (1 - mask_bg))cv2.imwrite(os.path.join(OUTPUT_DIR, os.path.basename(mask_path)), result)def main():"""推理主函數"""os.makedirs(OUTPUT_DIR, exist_ok=True)os.makedirs(MASK_DIR, exist_ok=True)acl_resource = AclLiteResource()acl_resource.init()seg = Seg(MODEL_PATH, MODEL_WIDTH, MODEL_HEIGHT)ret = seg.init()utils.check_ret("seg.init ", ret)images_list = [os.path.join(IMAGE_DIR, img)for img in os.listdir(IMAGE_DIR)if os.path.splitext(img)[1] in const.IMG_EXT]for image_file in images_list:image_name = os.path.basename(image_file)if image_name != 'background.jpg':print('====' + image_name + '====')# read imageimage = AclLiteImage(image_file)# Preprocess the pictureresized_image = seg.pre_process(image)# Inferenceresult = seg.inference([resized_image, ])# Post-processingmask = seg.post_process(result, image_name)# Fusion of segmented portrait and background imagebackground_replace(os.path.join(IMAGE_DIR, 'background.jpg'), \image_file, os.path.join(MASK_DIR, image_name))

6. 總結

  1. 開箱測試外設功能并完成了Orangepi AIPRO的網絡配置,體驗了流暢的桌面系統;
  2. 測試了 OPENCV AI KIT USB3.0相機在Orangepi AIPRO的使用;
  3. 體驗了Orangepi AIPRO內置的豐富AI樣例。

7. 使用體驗

通過這次體驗Orangepi AIPRO板卡,我了解到了華為昇騰在AI領域深耕多年的強大實力,AI的未來不僅是好用的,更是易用的。

Orangepi AIPRO搭載的昇騰AI處理器(Ascend310B4)配合華為完整的開發工具,讓開發者可以高效的實現AI應用程序的開發。

Orangepi AIPRO豐富的IO接口特別靈活,極大的豐富了AI的應用場景,既能很好的完成圖像處理,也能實現控制功能。

8. 注意事項

  1. 在使用 Orangepi AIPRO 時,需要確認供電輸入符合要求,以確保系統的穩定性和安全性。
  2. 開發板終端賬號及密碼? 賬號:root? 密碼:?Mind@123? ;??賬號:HwHiAiUser? 密碼:Mind@123

9. 參考資料

  • Orangepi AIPRO 官方網站
  • Orangepi AIPRO Wiki
  • Orangepi AIPRO 硬件文檔
  • OrangePI AIPRO 用戶手冊

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19170.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19170.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19170.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VirtualDisplay圖像數據流trace分析

1. 計算器App更新圖像幀(QueuedBuffer - ViewRootImpl[Calculator]#0BLAST#0),調用eglSwapBuffersWithDamageKHR,然后queueBuffer向surfaceflinger提交圖像buffer 2. sf調用latchBuffer獲取buffer,進行一些狀態的處理…

CBK-D2-安全與架構工程.md

CBK-D2-安全與架構工程 密碼學和對稱密鑰算法 密碼通信的基礎知識 明文P-plaintext、加密encrypt、密文C-ciphertext、解密decrypt、密鑰Key 多數情況下,密鑰無非是一個極大的二進制數 每一種算法都有一個特定密鑰控制key space,是一個特定的數值范圍 密鑰空間由位大小b…

數字圖像處理系列 | 線性濾波(高斯濾波)(3)

我們知道了什么是 線性平移不變系統是在做卷積操作 之后,我們發展出了一些非常簡單的 線性濾波, 去增強圖片,提取圖片特征 文章目錄 1. 卷積如何在離散圖片中工作的Vis 原圖和mask做卷積時發生了什么首先,如何得到 (i.j)位置的卷積…

操作系統中的內存管理

虛擬內存 操作系統會提供一種機制,將不同進程的虛擬地址和不同內存的物理地址映射起來。如果程序要訪問虛擬地址的時候,由操作系統轉換成不同的物理地址,這樣不同的進程運行的時候,寫入的是不同的物理地址,這樣就不會沖…

Python 技能提升(一)

python注釋規范 # Add commit for you codes. # The proper addition of comments is so beautiful.from abc import abstractmethoddef add(a: int, b: int) -> int:# You can write some necessary notes here.# Such as the role of functions, the types and roles of …

Slurm集群使用基礎

Introduction 我們在做生物信息分析時,對于大規模的上游數據的處理,一般需要在大型服務器或集群上進行。我最早接觸并使用的是一個基于SLURM調度系統的集群,在此記錄一下基礎使用方法。 高性能計算集群(High-Performance Comput…

React 使用JSX或者TSX渲染頁面

02 Rendering with JSX Your first JSX content In this section, we’ll implement the obligatory " Hello, World " JSX application. At this point, we’re just dipping our toes in the water; more in-depth examples will follow. We’ll also discuss wh…

vs code中編寫c++基本使用以及問題總結

vs code基本使用以及總結 launch.json作用 這個文件配置了調試器的設置,允許你定義如何啟動和調試你的程序。這包括配置執行路徑、傳遞給程序的參數、環境變量以及特定語言或框架的調試器選項。 常用配置 "version": "0.2.0": 這是配置文件…

kotlin基礎之協程

Kotlin協程(Coroutines)是Kotlin提供的一種輕量級的線程模型,它允許我們以非阻塞的方式編寫異步代碼,而無需使用回調、線程或復雜的并發API。協程是一種用戶態的輕量級線程,它可以在需要時掛起和恢復,從而有…

安卓中的圖片壓縮

安卓中如何進行圖片壓縮? 在安卓中進行圖片壓縮通常有以下幾種方法: 質量壓縮: 通過降低圖片的質量來減小文件大小。這可以通過Bitmap的compress()方法實現,其中可以設置壓縮質量(0-100)。 ByteArrayOutputStream baos…

【滲透測試】|文件上傳

1、安裝使用蟻劍 https://blog.csdn.net/weixin_42474304/article/details/116376746 1、登陸dvwa,進入初級文件上傳&#xff0c;上傳一句話木馬文件cmd.php&#xff0c; //cmd.php <?php eval($_POST[ccit]); ?> //eval: 執行命令的函數 //ccit:一句話木馬文件的參數…

滲透測試工具Cobalt strike-2.CS基礎使用

三、結合metasploit,反彈shell 在kali中開啟使用命令開啟metasploit msfconsole ┌──(root?oldboy)-[~] └─# msfconsole --- msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp --- msf6 exploit(multi/handler) > show …

[10] CUDA程序性能的提升 與 流

CUDA程序性能的提升 與 流 1. CUDA程序性能的提升 在本節中,我們會看到用來遵循的基本的一些性能來提升準則,我們會逐一解釋它們1.1 使用適當的塊數量和線程數量 研究表明,如果塊的數量是 GPU 的流多處理器數量的兩倍,則會給出最佳性能,不過,塊和線程的數量與具體的算法…

什么是訪問控制漏洞

什么是AC Bugs&#xff1f; 實驗室 Vertical privilege escalation 僅通過隱藏目錄/判斷參數來權限控制是不安全的&#xff08;爆破url/爬蟲/robots.txt/Fuzz/jsfinder&#xff09; Unprotected functionality 訪問robots.txt 得到隱藏目錄&#xff0c;訪問目錄 &#xff0c;…

基于Visual Studio版本的AI編程助手

Visual Studio 是一個出色的 IDE,可用于構建適用于 Windows、Mac、Linux、iOS 和 Android 的豐富、精美的跨平臺應用程序。 使用一系列技術(例如 WinForms、WPF、WinUI、MAUI 或 Xamarin)構建豐富。 1、安裝 點擊上方工具欄拓展選項,選擇管理拓展選項 接著在聯機頁面中搜索&q…

基于51單片機的室內空氣質量檢測-仿真設計

本設計是基于單片機的空氣質量檢測設計&#xff0c;主要實現以下功能&#xff1a; 可實現通過SGP30測量二氧化碳及甲醛濃度&#xff0c;當超過設置的最大值時&#xff0c;進行報警及通風和凈化空氣處理 可實現通過MQ-4測量甲烷濃度&#xff0c;當超過設置的最大值時&#xff0…

壓力測試JMeter

壓力測試JMeter 1 下載JMeter1.1 測試計劃1.2 JMeter Address Already in use 錯誤解決1.3 java 內存模型1.4 jconsole與jvisualvm1.5 優化方向1.6 Nginx動靜分離 1 下載JMeter 官網地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 運行apache-jmeter-5.6.3\…

HaloDB 的 Oracle 兼容模式

↑ 關注“少安事務所”公眾號&#xff0c;歡迎?收藏&#xff0c;不錯過精彩內容~ 前傾回顧 前面介紹了“光環”數據庫的基本情況和安裝辦法。 哈嘍&#xff0c;國產數據庫&#xff01;Halo DB! 三步走&#xff0c;Halo DB 安裝指引 ★ HaloDB是基于原生PG打造的新一代高性能安…

代碼隨想錄訓練營Day 43|力扣343. 整數拆分、96.不同的二叉搜索樹

1.整數拆分 代碼隨想錄 視頻講解&#xff1a;動態規劃&#xff0c;本題關鍵在于理解遞推公式&#xff01;| LeetCode&#xff1a;343. 整數拆分_嗶哩嗶哩_bilibili 代碼&#xff1a; class Solution { public:int integerBreak(int n) {// dp[i] 拆分數字i所獲得的最大乘積為d…

景源暢信:抖音小店如何開櫥窗?

在當今數字化時代&#xff0c;社交媒體平臺不僅僅是人們交流和分享生活的工具&#xff0c;更成為了商家們展示和銷售產品的重要場所。抖音作為一款流行的短視頻社交應用&#xff0c;其內置的電商功能——抖音小店&#xff0c;為眾多商家和個人提供了便捷的在線銷售途徑。其中&a…