加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 01.項(xiàng)目背景介紹
    • 02.技術(shù)硬件方案
    • 03.主要技術(shù)原理
    • 04.軟件系統(tǒng)設(shè)計(jì)
    • 05.軟件運(yùn)行效果
    • 06.開(kāi)發(fā)后記
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

使用DNN深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)圖像AIGC的開(kāi)發(fā)-基于米爾瑞薩RZ/G2L開(kāi)發(fā)板的創(chuàng)新應(yīng)用

2023/10/23
2151
閱讀需 11 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本文由米爾論壇優(yōu)秀評(píng)測(cè)者“ALSET”提供。

01.項(xiàng)目背景介紹

AIGC(即ArtificialIntelligence Generated Content),中文譯為人工智能生成內(nèi)容。簡(jiǎn)單來(lái)說(shuō),就是經(jīng)過(guò)大量特征訓(xùn)練過(guò)的神經(jīng)網(wǎng)絡(luò)模型來(lái)對(duì)新的內(nèi)容或者需求來(lái)生成人們需要的創(chuàng)作內(nèi)容,類(lèi)似使用人類(lèi)用思考和創(chuàng)造力才能完成的工作過(guò)程,而現(xiàn)在可以利用人工智能技術(shù)來(lái)替代我們完成。在狹義上AIGC是指利用AI自動(dòng)生成內(nèi)容的生產(chǎn)方式,比如自動(dòng)寫(xiě)作、自動(dòng)設(shè)計(jì)等。在廣義上,AIGC是指像人類(lèi)一樣具備生成創(chuàng)造能力的AI技術(shù),它可以基于訓(xùn)練數(shù)據(jù)和生成算法來(lái)完成各類(lèi)的內(nèi)容生成創(chuàng)作。

在圖像生成模型生成方面最主要的幾個(gè)代表模型,是以下常見(jiàn)的4個(gè)模型:
DNN

GAN

VAE

Diffusion

其中基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的進(jìn)行圖像藝術(shù)風(fēng)格轉(zhuǎn)移(Transform),生成高質(zhì)量的具有藝術(shù)風(fēng)格圖像的神經(jīng)網(wǎng)絡(luò)模型。該模型通過(guò)深度神經(jīng)網(wǎng)絡(luò)分別提取圖像中的內(nèi)容和風(fēng)格特征,然后對(duì)其目標(biāo)圖片內(nèi)容進(jìn)行重組,生成具有原圖內(nèi)容和藝術(shù)風(fēng)格的圖像,其風(fēng)格轉(zhuǎn)移不僅對(duì)圖像的圖案,顏色,特征等進(jìn)行修改還保留原圖高可辨識(shí)的內(nèi)容載體。

通常AIGC對(duì)硬件性能要求較高,只要具備高性能的圖形圖像的PC圖形工作站或者服務(wù)器上來(lái)運(yùn)行。而這里我們將使用MYD-YG2L開(kāi)發(fā)板上來(lái)實(shí)現(xiàn)在嵌入式設(shè)備上完成圖像風(fēng)格轉(zhuǎn)移計(jì)算這一任務(wù)。并且結(jié)合圖形界面和USB攝像頭完成對(duì)任意拍攝的圖片進(jìn)行圖像風(fēng)格化的開(kāi)發(fā)。讓嵌入式上也能夠體驗(yàn)這種獨(dú)特的AIGC內(nèi)容生成方式。

02.技術(shù)硬件方案

項(xiàng)目采用MYD-YG2L為主控板,使用800萬(wàn)像素4K級(jí)廣角USB相機(jī)鏡頭,通過(guò)采集畫(huà)面,在主控板內(nèi)完成對(duì)畫(huà)面的風(fēng)格化處理,并通過(guò)HDMI輸出顯示生成的圖像。

這里使用開(kāi)發(fā)板連接HDMI顯示器和接入一個(gè)4K高清鏡頭,主要硬件連接如下圖:

03.主要技術(shù)原理

圖像風(fēng)格轉(zhuǎn)移的主要過(guò)程是對(duì)輸入img_content和img_style,然后要把img_content的內(nèi)容主體和img_style進(jìn)行一個(gè)結(jié)合,實(shí)現(xiàn)一個(gè)圖像的創(chuàng)意創(chuàng)作,這個(gè)過(guò)程也叫做Style Transform 即風(fēng)格轉(zhuǎn)移。如下圖中,第一列是輸入的原圖像, 第二列是風(fēng)格圖,第三列之后就是各種控制參數(shù)下的輸出風(fēng)格圖像:

其核心的算法是把基于CNN卷積編碼后的特征向量transformer第一個(gè)結(jié)合到風(fēng)格遷移任務(wù)中,再對(duì)混合后的內(nèi)容進(jìn)行解碼,從而輸出新的圖像內(nèi)容,主要參考李飛飛論文,其核心流程如下圖:

經(jīng)過(guò)測(cè)試MYD-YG2L較好的支持OpenCV這個(gè)工具庫(kù),并且具備較強(qiáng)的圖像處理能力。那么就可以在板上使用OpenCV的DNN模塊來(lái)實(shí)現(xiàn)以上算法過(guò)程。OpenCV的DNN模塊從發(fā)行版開(kāi)始,主要是支持推理,而數(shù)據(jù)訓(xùn)練不是其支持的目標(biāo)。因此我們可以使用已經(jīng)訓(xùn)練好的模型,在板上上完成推理過(guò)程,即圖像風(fēng)格轉(zhuǎn)移生成的這一過(guò)程?,F(xiàn)在OpenCV已經(jīng)支持TensorFlow、Pytorch/Torch、Caffe、DarkNet等模型的讀取,OpenCV的 DNN模塊的用法。

OpenCV的DNN模塊進(jìn)行模型推理就顯得比較簡(jiǎn)單,過(guò)程就是:

1.加載模型

因?yàn)镺penCV DNN模塊主要用來(lái)做推理計(jì)算,所以在使用前首先準(zhǔn)備一個(gè)訓(xùn)練好的模型(如何訓(xùn)練自己的不同風(fēng)格的模型后面也會(huì)闡述)。OpenCV支持所有主流框架的大部分模型。OpenCV的readNet系列函數(shù)就可以看出所支持的框架類(lèi)型:

readNetFromCaffe

readNetFromTensorflow

readNetFromTorch

readNetFromDarknet

readNetFromONNX

readNetFromModelOptimizer

這里所用風(fēng)格遷移模型是開(kāi)源的Torch/Lua的模型fast-neural-style。他們提供了十種風(fēng)格遷移的模型,模型的下載腳本在:https://github.com/jcjohnson/fas ... _transfer_models.sh。這里使用OpenCV的readNetFromTorch函數(shù)加載PyTorch模型。

2.輸入圖像預(yù)處理

在OpenCV中輸入給模型的圖像需要首先被構(gòu)建成一個(gè)4個(gè)區(qū)塊的數(shù)據(jù)塊(Blob),并且做如resize、歸一化和縮放之類(lèi)的一些預(yù)處理。

3.模型推理

模型推理過(guò)程就是把輸入構(gòu)建的blob輸入給模型神經(jīng)網(wǎng)絡(luò)模型進(jìn)行一次前向傳播,在OpenCV中,用以下非常簡(jiǎn)單的兩行代碼即可完成:

net.setInput(blob)

output = net.forward()

04.軟件系統(tǒng)設(shè)計(jì)

在本軟件開(kāi)發(fā),主要使用MYD-YG2L的SDK中,使用了OpenCV SDK與QT SDK。QT 主要實(shí)現(xiàn)文件圖像風(fēng)格轉(zhuǎn)移的界面操作,使用OpenCV實(shí)現(xiàn)DNN圖像推理計(jì)算。

設(shè)計(jì)QTUI,選擇文件或者攝像頭采集原圖像

開(kāi)發(fā)UI交互邏輯代碼

開(kāi)發(fā)OpenCV DNN神經(jīng)網(wǎng)絡(luò)調(diào)用模塊

在開(kāi)發(fā)板的交叉編譯環(huán)境編譯,把編譯的結(jié)果部署到開(kāi)發(fā)板上。另外把風(fēng)格轉(zhuǎn)移用到的訓(xùn)練模型文件也部署到開(kāi)發(fā)板上,經(jīng)過(guò)實(shí)際測(cè)試,以下模型在開(kāi)發(fā)板上運(yùn)行正常,而其它模型則因內(nèi)存不夠而報(bào)錯(cuò)。

1: "udnie",

2: "la_muse",

3: "the_scream",

4: "candy",

5: "mosaic",

6: "feathers",

7: "starry_night"

05.軟件運(yùn)行效果

把QT軟件與相關(guān)模型文件部署到開(kāi)發(fā)板上后,即可以運(yùn)行測(cè)試效果,開(kāi)發(fā)板上啟動(dòng)運(yùn)行QT程序命令:

./style_transform -platform linuxfb

運(yùn)行后,選擇一張圖片顯示如下:

點(diǎn)擊 “transform”按鈕,等待約13秒,得到風(fēng)格轉(zhuǎn)移輸出畫(huà)面,如下:

再換一張米爾的LOGO圖,這個(gè)圖片尺寸較小,圖像內(nèi)容變化率低看一下,風(fēng)格化轉(zhuǎn)換時(shí)間:

測(cè)試仍然為13秒左右,得到如下輸出圖像:

這上面使用的是feathers模型生成的風(fēng)格圖片,其它模型時(shí)間也差不多在這個(gè)時(shí)間。

06.開(kāi)發(fā)后記

最后使用開(kāi)發(fā)的圖像轉(zhuǎn)換程序,在MAC電腦上編譯了MAC版本與開(kāi)發(fā)板上對(duì)同一圖片轉(zhuǎn)換進(jìn)行比較。其使用MacBook Pro 2.2G 16G內(nèi)存主頻硬件運(yùn)行該圖片轉(zhuǎn)換時(shí),需要8.6秒。多次測(cè)試,對(duì)不同模型的轉(zhuǎn)換分別測(cè)試,基本上在MYD-YG2LX上運(yùn)行速度能達(dá)到MAC電腦轉(zhuǎn)換的66%性能,這個(gè)結(jié)果看該開(kāi)發(fā)板其DNN推理計(jì)算性能比較強(qiáng)悍。

該項(xiàng)目在后續(xù)的發(fā)展中,在有更多時(shí)間時(shí),將嘗試訓(xùn)練更多特色的風(fēng)格,以及融入GAN生成神經(jīng)網(wǎng)絡(luò)模型的內(nèi)容生成模型,嘗試多種方法來(lái)進(jìn)行更豐富多彩的內(nèi)容生成。

在做本項(xiàng)目開(kāi)發(fā)時(shí),從資料中已知知名的內(nèi)容生成項(xiàng)目stable diffusion已經(jīng)在一些嵌入式開(kāi)發(fā)板上移植運(yùn)行成功,這個(gè)振奮的消息會(huì)不會(huì)又給自己挖了一個(gè)坑呢。

07.參考文獻(xiàn)與資料

[1]. MYD-YG2LX開(kāi)發(fā)板文檔:http://down.myir-tech.com/MYD-YG2LX

[2] PerceptualLosses for Real-Time Style Transfer and Super-Resolution。李飛飛

[3].MYD-YG2LX_Linux軟件開(kāi)發(fā)指南http://down.myir-tech.com/MYD-YG2LX/User_Manual.zip

[4].SDK 及原理圖倉(cāng)庫(kù):http://down.myir-tech.com/MYD-YG2LX/01_Documents.zip

[5] 黃俊明; 陳平平; 王彩申; Linux環(huán)境下基于OpenCV圖像處理,電腦編程技巧與維護(hù),2023.1

[6] Perceptual lossfor Real time Style Transfer and Super-Resolution 論文閱讀分析https://zhuanlan.zhihu.com/p/27165113

[7] Torch風(fēng)格轉(zhuǎn)移訓(xùn)練完成模型:https://github.com/jcjohnson/fast-neural-style

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
NC26LF-327 1 Fox Electronics Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom,
$0.49 查看
TJA1051TK/3/1J 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SON 8-Pin

ECAD模型

下載ECAD模型
$1.43 查看
SIT1552AC-JE-DCC-32.768E 1 SiTime Corporation Clock Generator
$1.46 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

米爾電子,是一家專(zhuān)注于嵌入式處理器模組設(shè)計(jì)、研發(fā)、生產(chǎn)和銷(xiāo)售于一體的國(guó)家級(jí)高新技術(shù)企業(yè),也被評(píng)為專(zhuān)精特新企業(yè)。米爾電子深耕嵌入式領(lǐng)域10多年,致力于為企業(yè)級(jí)客戶提供基于ARM、FPGA、RISC-V和AI等各種架構(gòu),穩(wěn)定可靠的處理器模組,滿足客戶大批量產(chǎn)品應(yīng)用部署的需求,同時(shí)為客戶提供產(chǎn)品定制設(shè)計(jì)、行業(yè)應(yīng)用解決方案和OEM的一站式服務(wù)。 米爾英文簡(jiǎn)稱(chēng)“MYIR”,是“Make Your Idea Real”第一個(gè)大寫(xiě)字母的縮寫(xiě)。我們的理念是“專(zhuān)業(yè)服務(wù)助力客戶成功”,目前米爾已通過(guò)專(zhuān)業(yè)高效的服務(wù),幫助全球數(shù)萬(wàn)家企業(yè)的產(chǎn)品成功上市。