《電子技術應用》
您所在的位置:首頁 > 人工智能 > 解決方案 > STM32 圖像處理函式庫介紹

STM32 圖像處理函式庫介紹

2022-10-24
作者:意法半導體AI技術創(chuàng)新中心
來源: 意法半導體
關鍵詞: 意法半導體 STM32

STM32 圖像處理函式庫STM32IPL是由 C 語言所編寫的開放原始碼軟件函式庫,,提供了圖像處理和計算機視覺功能,,能加快在意法半導體(ST)的STM32 微控制器上開發(fā)視覺分析的應用,。本產品在最新版 (v3.1.0)FP-AI-VISION1功能套件中以STM32Cube 中間件的形式推出,。

1.jpg

一般來說,,視覺深度學習模型的輸入不同于相機拍攝的圖像,,深度學習輸入因為具有不同維度及圖像格式,,會需要預先處理原圖,例如縮放,、影像格式轉換和標準化等。而STM32IPL可提供實用且現成的軟件套件,,以簡化及加速影像預處理功能的開發(fā),。

主要特色

STM32IPL的主要特色如下:

-為開發(fā)人員提供實用且現成的軟件套件,節(jié)省開發(fā)STM32平臺圖像處理和計算機視覺應用的時間,。

-滿足使用嵌入式系統的圖像處理及計算機視覺功能時最常見的需求,。

-透過最大程度的封裝和隱藏,簡化且加速應用程序的開發(fā),、降低常見之圖像處理的復雜度,,并提升計算機視覺運算的能效。

STM32IPL依不同功能配置于各種模塊中,,如下圖所示:

2.jpg

這些模塊可被劃分至以下分組:

- 函式庫初始化和去初始化分組(深綠模塊)

- 影像建立,、初始化和發(fā)布等分組(淺綠色模塊)

- 影像轉換功能,如濾波,、色彩轉換,、縮放、morphological operators及warping等分組(深黃色模塊)

- 特征和對象擷取功能,,如邊緣和斑點偵測器以及霍夫轉換等分組(淺黃色模塊)

- 線條,、長方形和橢圓形等圖形操作功能分組(深藍模塊)

- 影像讀取和寫入功能的分組(淺藍模塊)

- 在影像內繪制圖形元素的功能分組(深灰模塊)

- 最后一個群組包含計算完整圖像和圖像統計等其他模塊(淺灰模塊)

下方照片為STM32IPL的圖像處理功能范例:

3.jpg

4.jpg

軟件架構采用STM32IPL的典型STM32應用程序軟件架構如下所示:

http://img.chinaaet.com/images/2022/10/24/6380222201720774573134754.jpg

STM32IPL位于BSP和HAL的中間件內,除了下列兩種利用了部分STM32 MCU所提供的硬件功能之外,,絕大部分的STM32IPL功能皆不受平臺影響:

-在檔案上執(zhí)行讀?。瘜懭胱鳂I(yè)的I/O功能。指的是兩個用于處理受支持影像文件格式 (如 BMP,、PPM,、PGM 和 JPEG)的讀取/寫入函式,。上述函式的運作仰賴于下列第三方開放原始碼函式庫(屬于STM32Cube中間件組件的一部分):

oFatFs提供在FatFS文件系統上的讀?。瘜懭氩僮鞴δ堋@缱x取和寫入 microSD卡內的影像,。

oLibJPEG提供JPEG編碼和譯碼功能,。

-此函式能讓STM32 DMA2D在屏幕上快速繪制圖像,其中DMA2D為適用于圖形作業(yè)的硬件加速器,。

高階功能范例

本章節(jié)以霍夫轉換和物體偵測兩項高階功能作為范例,,說明其運作原理及對于影像的作用:

霍夫轉換

霍夫轉換是一種能偵測簡易形狀的特征擷取方法,而 “簡易”  是指可以用少數參數來表示的圖案,例如:一條線可由斜率,、截距兩項參數做表示,,而圓形則是以圓心坐標和半徑三項參數做表示。因此,,霍夫轉換技術十分適用于在圖像中找出像是線條,、圓形的圖案。

STM32IPL支持兩種霍夫轉換功能:

-STM32Ipl_FindLines() 可透過霍夫轉換找出影像中所有線條,。

-STM32Ipl_FindCircles() 則可透過霍夫轉換找出影像中的圓形,。

下方兩張照片展示了使用霍夫轉換偵測線條的結果。

6.jpg

然而,,偵測到的線條質量有很大程度取決于edge map,,因此在實務上,使用霍夫轉換技術的前提是要能夠控制環(huán)境,,從而得出一致的edge map,,或是透過訓練邊緣偵測器,找出所需的特定邊緣種類,。

下方兩張照片為使用霍夫轉換偵測圓形的結果,,結果同樣有很大程度取決于可用邊緣的質量,以及對于所需偵測圓形尺寸的先備知識,。

7.jpg

物體偵測

物體偵測是一種計算機視覺技術,,可辨識和定位圖像或影片中的物體,此技術常用于自駕車,、機器人,、人臉辨識等情境。

STM32IPL提供三種物體偵測功能:

-STM32Ipl_LoadFaceCascade() 載入正面臉部串行,。

-STM32Ipl_LoadEyeCascade() 載入眼部串行,。

-STM32Ipl_DetectObject() 偵測特定串行描述的對象。

下方照片展示了臉部偵測和眼部偵測兩項功能的結果:

8.jpg

9.jpg

若欲取得此STM32IPL函式庫,,使用者必需下載最新的FP-AI-VISION1功能套件,,存取路徑如下:FP-AI-VISION1_V3.1.0\Middlewares\ST\STM32_ImageProcessing_Library\Inc


本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失,。聯系電話:010-82306118,;郵箱:[email protected]