STM32 圖像處理函式庫STM32IPL是由 C 語言所編寫的開放原始碼軟件函式庫,提供了圖像處理和計算機視覺功能,能加快在意法半導體(ST)的STM32 微控制器上開發(fā)視覺分析的應用。本產(chǎn)品在最新版 (v3.1.0)FP-AI-VISION1 功能套件中以STM32Cube 中間件的形式推出。
一般來說,視覺深度學習模型的輸入不同于相機拍攝的圖像,深度學習輸入因為具有不同維度及圖像格式,會需要預先處理原圖,例如縮放、影像格式轉(zhuǎn)換和標準化等。而STM32IPL可提供實用且現(xiàn)成的軟件套件,以簡化及加速影像預處理功能的開發(fā)。
主要特色
STM32IPL的主要特色如下:
-為開發(fā)人員提供實用且現(xiàn)成的軟件套件,節(jié)省開發(fā)STM32平臺圖像處理和計算機視覺應用的時間。
-滿足使用嵌入式系統(tǒng)的圖像處理及計算機視覺功能時最常見的需求。
-透過最大程度的封裝和隱藏,簡化且加速應用程序的開發(fā)、降低常見之圖像處理的復雜度,并提升計算機視覺運算的能效。
STM32IPL依不同功能配置于各種模塊中,如下圖所示:
這些模塊可被劃分至以下分組:
- 函式庫初始化和去初始化分組(深綠模塊)
- 影像建立、初始化和發(fā)布等分組(淺綠色模塊)
- 影像轉(zhuǎn)換功能,如濾波、色彩轉(zhuǎn)換、縮放、morphological operators及warping等分組(深黃色模塊)
- 特征和對象擷取功能,如邊緣和斑點偵測器以及霍夫轉(zhuǎn)換等分組(淺黃色模塊)
- 線條、長方形和橢圓形等圖形操作功能分組(深藍模塊)
- 影像讀取和寫入功能的分組(淺藍模塊)
- 在影像內(nèi)繪制圖形元素的功能分組(深灰模塊)
- 最后一個群組包含計算完整圖像和圖像統(tǒng)計等其他模塊(淺灰模塊)
下方照片為STM32IPL的圖像處理功能范例:
軟件架構(gòu)
采用STM32IPL的典型STM32應用程序軟件架構(gòu)如下所示:
STM32IPL位于BSP和HAL的中間件內(nèi),除了下列兩種利用了部分STM32 MCU所提供的硬件功能之外,絕大部分的STM32IPL功能皆不受平臺影響:
-在檔案上執(zhí)行讀取/寫入作業(yè)的I/O功能。指的是兩個用于處理受支持影像文件格式 (如 BMP、PPM、PGM 和 JPEG)的讀取/寫入函式。上述函式的運作仰賴于下列第三方開放原始碼函式庫(屬于STM32Cube中間件組件的一部分):
oFatFs提供在FatFS文件系統(tǒng)上的讀取/寫入操作功能。例如讀取和寫入 microSD卡內(nèi)的影像。
oLibJPEG提供JPEG編碼和譯碼功能。
-此函式能讓STM32 DMA2D在屏幕上快速繪制圖像,其中DMA2D為適用于圖形作業(yè)的硬件加速器。
高階功能范例
本章節(jié)以霍夫轉(zhuǎn)換和物體偵測兩項高階功能作為范例,說明其運作原理及對于影像的作用:
霍夫轉(zhuǎn)換
霍夫轉(zhuǎn)換是一種能偵測簡易形狀的特征擷取方法,而 “簡易” 是指可以用少數(shù)參數(shù)來表示的圖案,例如:一條線可由斜率、截距兩項參數(shù)做表示,而圓形則是以圓心坐標和半徑三項參數(shù)做表示。因此,霍夫轉(zhuǎn)換技術(shù)十分適用于在圖像中找出像是線條、圓形的圖案。
STM32IPL支持兩種霍夫轉(zhuǎn)換功能:
-STM32Ipl_FindLines() 可透過霍夫轉(zhuǎn)換找出影像中所有線條。
-STM32Ipl_FindCircles() 則可透過霍夫轉(zhuǎn)換找出影像中的圓形。
下方兩張照片展示了使用霍夫轉(zhuǎn)換偵測線條的結(jié)果。
經(jīng)過霍夫轉(zhuǎn)換的線條偵測后結(jié)果:
然而,偵測到的線條質(zhì)量有很大程度取決于edge map,因此在實務上,使用霍夫轉(zhuǎn)換技術(shù)的前提是要能夠控制環(huán)境,從而得出一致的edge map,或是透過訓練邊緣偵測器,找出所需的特定邊緣種類。
下方兩張照片為使用霍夫轉(zhuǎn)換偵測圓形的結(jié)果,結(jié)果同樣有很大程度取決于可用邊緣的質(zhì)量,以及對于所需偵測圓形尺寸的先備知識。
經(jīng)過霍夫轉(zhuǎn)換的圓形偵測后結(jié)果:
物體偵測
物體偵測是一種計算機視覺技術(shù),可辨識和定位圖像或影片中的物體,此技術(shù)常用于自駕車、機器人、人臉辨識等情境。
STM32IPL提供三種物體偵測功能:
-STM32Ipl_LoadFaceCascade() 載入正面臉部串行。
-STM32Ipl_LoadEyeCascade() 載入眼部串行。
-STM32Ipl_DetectObject() 偵測特定串行描述的對象。
-
圖像處理
+關(guān)注
關(guān)注
27文章
1282瀏覽量
56656 -
STM32
+關(guān)注
關(guān)注
2266文章
10876瀏覽量
354925 -
軟件
+關(guān)注
關(guān)注
69文章
4799瀏覽量
87175
發(fā)布評論請先 登錄
相關(guān)推薦
評論