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

STM32 圖像處理函式庫(kù)介紹

2022-10-24
作者:意法半導(dǎo)體AI技術(shù)創(chuàng)新中心
來(lái)源: 意法半導(dǎo)體
關(guān)鍵詞: 意法半導(dǎo)體 STM32

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

1.jpg

一般來(lái)說(shuō),視覺(jué)深度學(xué)習(xí)模型的輸入不同于相機(jī)拍攝的圖像,深度學(xué)習(xí)輸入因?yàn)榫哂胁煌S度及圖像格式,會(huì)需要預(yù)先處理原圖,例如縮放、影像格式轉(zhuǎn)換和標(biāo)準(zhǔn)化等。而STM32IPL可提供實(shí)用且現(xiàn)成的軟件套件,以簡(jiǎn)化及加速影像預(yù)處理功能的開(kāi)發(fā)。

主要特色

STM32IPL的主要特色如下:

-為開(kāi)發(fā)人員提供實(shí)用且現(xiàn)成的軟件套件,節(jié)省開(kāi)發(fā)STM32平臺(tái)圖像處理和計(jì)算機(jī)視覺(jué)應(yīng)用的時(shí)間。

-滿足使用嵌入式系統(tǒng)的圖像處理及計(jì)算機(jī)視覺(jué)功能時(shí)最常見(jiàn)的需求。

-透過(guò)最大程度的封裝和隱藏,簡(jiǎn)化且加速應(yīng)用程序的開(kāi)發(fā)、降低常見(jiàn)之圖像處理的復(fù)雜度,并提升計(jì)算機(jī)視覺(jué)運(yùn)算的能效。

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

2.jpg

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

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

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

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

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

- 線條、長(zhǎng)方形和橢圓形等圖形操作功能分組(深藍(lán)模塊)

- 影像讀取和寫(xiě)入功能的分組(淺藍(lán)模塊)

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

- 最后一個(gè)群組包含計(jì)算完整圖像和圖像統(tǒng)計(jì)等其他模塊(淺灰模塊)

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

3.jpg

4.jpg

軟件架構(gòu)采用STM32IPL的典型STM32應(yīng)用程序軟件架構(gòu)如下所示:

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

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

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

oFatFs提供在FatFS文件系統(tǒng)上的讀?。瘜?xiě)入操作功能。例如讀取和寫(xiě)入 microSD卡內(nèi)的影像。

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

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

高階功能范例

本章節(jié)以霍夫轉(zhuǎn)換和物體偵測(cè)兩項(xiàng)高階功能作為范例,說(shuō)明其運(yùn)作原理及對(duì)于影像的作用:

霍夫轉(zhuǎn)換

霍夫轉(zhuǎn)換是一種能偵測(cè)簡(jiǎn)易形狀的特征擷取方法,而 “簡(jiǎn)易”  是指可以用少數(shù)參數(shù)來(lái)表示的圖案,例如:一條線可由斜率、截距兩項(xiàng)參數(shù)做表示,而圓形則是以圓心坐標(biāo)和半徑三項(xiàng)參數(shù)做表示。因此,霍夫轉(zhuǎn)換技術(shù)十分適用于在圖像中找出像是線條、圓形的圖案。

STM32IPL支持兩種霍夫轉(zhuǎn)換功能:

-STM32Ipl_FindLines() 可透過(guò)霍夫轉(zhuǎn)換找出影像中所有線條。

-STM32Ipl_FindCircles() 則可透過(guò)霍夫轉(zhuǎn)換找出影像中的圓形。

下方兩張照片展示了使用霍夫轉(zhuǎn)換偵測(cè)線條的結(jié)果。

6.jpg

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

下方兩張照片為使用霍夫轉(zhuǎn)換偵測(cè)圓形的結(jié)果,結(jié)果同樣有很大程度取決于可用邊緣的質(zhì)量,以及對(duì)于所需偵測(cè)圓形尺寸的先備知識(shí)。

7.jpg

物體偵測(cè)

物體偵測(cè)是一種計(jì)算機(jī)視覺(jué)技術(shù),可辨識(shí)和定位圖像或影片中的物體,此技術(shù)常用于自駕車、機(jī)器人、人臉辨識(shí)等情境。

STM32IPL提供三種物體偵測(cè)功能:

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

-STM32Ipl_LoadEyeCascade() 載入眼部串行。

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

下方照片展示了臉部偵測(cè)和眼部偵測(cè)兩項(xiàng)功能的結(jié)果:

8.jpg

9.jpg

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


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。