一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

代碼+實驗分析,助你全面理解C3F

nlfO_thejiangme ? 來源:lq ? 2019-08-02 14:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近兩年,有關(guān)人群計數(shù)的文章呈現(xiàn)出爆炸式增長。然而,人群計數(shù)不像其他任務(wù)(目標(biāo)檢測、語義分割等)有著簡潔/易開發(fā)的開源代碼框架,大大降低了我們對于idea的驗證效率。

因此在2018年12月份,我萌生了自己搭一個人群計數(shù)框架的想法,盡可能兼顧當(dāng)前主流數(shù)據(jù)集和主流算法。并于2019年3月底基本完成了主體框架。代碼發(fā)布之后,由于缺少對于代碼細(xì)節(jié)的文檔介紹,issues和emails讓人應(yīng)接不暇。所以,在這里對該項目做一個代碼層面上的介紹,并輔之以一些實驗分析來幫助大家有效提高網(wǎng)絡(luò)性能。更重要的,希望能夠拋磚引玉,讓大家利用C3F,更高效地研究出性能更好的人群計數(shù)網(wǎng)絡(luò),推動該領(lǐng)域的發(fā)展。

本文主要內(nèi)容包括:

數(shù)據(jù)處理:不同數(shù)據(jù)集的處理過程。

模型:基于ImageNet分類模型設(shè)計的人群計數(shù)器以及我們復(fù)現(xiàn)的一些主流網(wǎng)絡(luò)。

訓(xùn)練技巧:一些常見的網(wǎng)絡(luò)訓(xùn)練技巧。

實驗結(jié)果:在Shanghai Tech Part B數(shù)據(jù)集上的實驗結(jié)果及分析。

總結(jié)。

致謝。

Q&A:一些常見問題的解答。

1. 數(shù)據(jù)處理

我們提供了常見的六個主流數(shù)據(jù)庫的預(yù)處理代碼,處理好的數(shù)據(jù)集以及PyTorch下的data loader,包括UCF_CC_50[1](UCF50),Shanghai Tech Part A/B[2](SHT A/B),WorldExpo'10[3](WE),UCF-QNRF[4](QNRF)以及GCC[5]。后期還會提供UCSD[11]和MALL[12]數(shù)據(jù)集的相關(guān)內(nèi)容。

1.1 生成密度圖-處理參數(shù)

注:

1. 為了能夠使得輸入圖像兼容更多的網(wǎng)絡(luò),預(yù)處理時對圖像的高和寬進(jìn)行了限制,使其能夠被16整除。確保網(wǎng)絡(luò)中一些含有降采樣操作的層(conv with stride2 或者池化)能夠正確輸出。在人群計數(shù)領(lǐng)域中,常見encoder中一般輸出為1/8原圖尺寸,因此被16整除完全滿足需求。

2. 為節(jié)約顯存,對QNRF和GCC的圖像進(jìn)行了保持長寬比的降采樣操作。

1.2 多Batch-size訓(xùn)練

由于UCF50、SHT A、QNRF所包含的圖像尺寸不一,為了實現(xiàn)多batch size的訓(xùn)練,我們重寫了collate_fn函數(shù)。該函數(shù)在隨機(jī)拿到N張圖像和GT后,選擇最小的高h(yuǎn)_min和最小的寬w_min對所有圖像進(jìn)行crop,拼成

的Tensor送入到網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。

根據(jù)經(jīng)驗,如果是from scratch training,對于這幾個數(shù)據(jù)集建議采用多batch size訓(xùn)練或者采用GCC-SFCN中加padding的方案;對于有預(yù)訓(xùn)練參數(shù)的模型(AlexNet,VGG,ResNet等),建議采用單一batch size進(jìn)行訓(xùn)練。

1.3 Label Transform

代碼中我們提供了兩種對密度圖進(jìn)行transform的操作。一種參考了CSRNet源碼[6]中對密度圖進(jìn)行降采樣的操作(GTScaleDown),一種是對密度圖點乘一個放大因子(LabelNormalize)。

1.3.1 GTScaleDown

由于CSRNet中,網(wǎng)絡(luò)回歸的密度圖為原圖的1/8,因此作者對密度圖進(jìn)行了降采樣,并點乘64以保證密度圖之和依然約等于總?cè)藬?shù)。該操作會帶來一個問題:會影響PSNR和SSIM的值。因此我們不建議使用該操作。在我們實現(xiàn)其他網(wǎng)絡(luò)過程中,也會出現(xiàn)網(wǎng)絡(luò)輸出為1/4,1/8等尺寸,為避免該問題,在網(wǎng)絡(luò)內(nèi)部增加上采樣層實現(xiàn)與原圖大小的密度圖。

1.3.2 LabelNormalize

這算是一個訓(xùn)練的trick,我們通過實驗發(fā)現(xiàn),對于密度圖乘以一個較大的放大因子,可以使網(wǎng)絡(luò)更快的收斂,甚至取得更低的估計誤差。有關(guān)這一點的更進(jìn)一步分析、實驗結(jié)果,移步實驗部分。

2. 模型

這一部分,我們介紹幾種常見分類網(wǎng)絡(luò)(AlexNet,VGG,ResNet等)“魔改”為人群計數(shù)的網(wǎng)絡(luò)。

2.1 Baseline模型

2.1.1 AlexNet

對于AlexNet網(wǎng)絡(luò)[7],我們小幅修改了conv1和conv2層的padding,以保證其對于feature map的大小能夠正常整除。同時,截取conv5之前的網(wǎng)絡(luò),作為人群計數(shù)的encoder,其大小為原始輸入的1/16。decoder的設(shè)計依然遵循簡約的原則,用“兩層卷積+上采樣”直接回歸到1-channel的密度圖。

2.1.2 VGG系列:VGG和VGG+decoder

對于VGG網(wǎng)絡(luò)[8]的兩個變體,我們完全采用了VGG-16模型的前10個卷積層。其中,VGG采用了最為簡單的decoder,而VGG+decoder則是簡單設(shè)計了一個含有三個反卷積的模塊。下表展示了二者在SHT上的實驗結(jié)果。

通過在SHT B上實驗結(jié)果來看,兩者的模型性能(MAE,MSE)差不多,但VGG+decoder有著更為精細(xì)的密度圖。二者的性能非常接近CSRNet(同樣的backbone)的結(jié)果。

2.1.3 ResNet系列:Res50和Res101

對于ResNet[9],為了保證密度圖的大小不至于過?。ú恍∮谠瓐D尺寸的1/8),我們修改了res.layer3中第一層stride的大?。▽⒃镜?改為1),以此當(dāng)做encoder。本著簡單的原則,decoder由兩層卷積構(gòu)成。

從實驗結(jié)果來看,ResNet展現(xiàn)除了強(qiáng)大的特征提取能力,在SHT B上直接達(dá)到了現(xiàn)有SOTA的水平。據(jù)我們所知,截止目前(2019.4),已發(fā)表/錄用文章中最好的是PACNN+[10],其MAE/MSE為:7.6/11.8。我們的模型在SHT B數(shù)據(jù)集上具體表現(xiàn)如下:

2.2 C3F框架下復(fù)現(xiàn)模型比較

除了上述基于ImageNet分類模型設(shè)計的Baselines以外,我們也嘗試在C3F下復(fù)現(xiàn)了以下幾個主流算法的結(jié)果,包括MCNN[2],CMTL[13],CSRNet[6]以及SANet[14]。我們復(fù)現(xiàn)的模型在SHT B數(shù)據(jù)集上具體表現(xiàn)如下:

注:

1. 在MCNN復(fù)現(xiàn)過程中,與原網(wǎng)絡(luò)結(jié)構(gòu)唯一不同在于,我們的MCNN處理的是RGB圖像。

2. 原始的CMTL在訓(xùn)練前,通過隨機(jī)裁剪生成好了訓(xùn)練集。我們采用在線裁剪的方法可以使訓(xùn)練覆蓋更多的裁剪區(qū)域。此外,由于選擇了在線裁剪,CMTL中的分類任務(wù)的標(biāo)簽頁適應(yīng)性地改成了在線計算與分配。

3. 據(jù)我們所知,SANet復(fù)現(xiàn)結(jié)果,是當(dāng)前所有復(fù)現(xiàn)中最接近論文結(jié)果的,雖然這一結(jié)果與論文結(jié)果依然相差甚遠(yuǎn)。

3. 訓(xùn)練技巧

3.1 LabelNormalize的調(diào)參

在C3F已公布的實驗結(jié)果中,均對密度圖進(jìn)行了點乘100的操作。實驗過程中,我們也發(fā)現(xiàn),設(shè)置一個合適的放大因子,對于網(wǎng)絡(luò)的有效訓(xùn)練非常有益。這一節(jié),我們簡要說一下為什么這樣一個簡單的操作會有效的原因。一個初始化好的計數(shù)網(wǎng)絡(luò)來說,自身參數(shù)符合一定的分布,如果目標(biāo)分布和初始化分布相差過大的話,網(wǎng)絡(luò)會陷入一個比較差的局部解,難以訓(xùn)練出好的結(jié)果。該特性在使用預(yù)訓(xùn)練分類模型的計數(shù)網(wǎng)絡(luò)時,顯得更為重要。

這一節(jié),我們選擇Res50網(wǎng)絡(luò),分別測試在對密度圖分別乘以[1,10,100,1000,2000,4000]時,網(wǎng)絡(luò)的計數(shù)性能差異。下表展示了不同放大因子下在SHT B上的實驗結(jié)果。我們發(fā)現(xiàn),當(dāng)采用原始密度圖時,網(wǎng)絡(luò)并不能正確收斂。觀察結(jié)果發(fā)現(xiàn),網(wǎng)絡(luò)一直輸出一張全0的密度圖。陷入到一個局部解無法進(jìn)一步優(yōu)化。當(dāng)放大因子為1000時,網(wǎng)絡(luò)達(dá)到了最優(yōu)性能。之后,隨著放大因子的增加,網(wǎng)絡(luò)的計數(shù)性能又逐步降低。

(注:實驗中,其他參數(shù)均與results_reports/Res50/SHHB中的設(shè)置保持一致。)

下圖展示了在六組不同的放大因子下,MAE和MSE在驗證集上隨時間的變化曲線。橙色曲線表示對密度圖不進(jìn)行放大情況下,網(wǎng)絡(luò)性能的表現(xiàn)。我們發(fā)現(xiàn),網(wǎng)絡(luò)陷入到一個局部解難以跳出。

不同放大因子的實驗對比

由于橙色曲線會干擾我們對其他參數(shù)曲線的對比,因此,下圖展示了移除掉橙色曲線后,即放大因子為[10,100,1000,2000,4000]的曲線對比。從圖中可以看出,除了放大因子取10時,效果較差,其他幾種曲線重合度非常高。

不同放大因子的實驗對比

綜上,我們設(shè)定一個較大的放大因子,不僅可以促使模型快速收斂,也可以幫助模型取得一個更優(yōu)的性能。

3.2 特征圖大小對比:1/8 size v.s 1/16 size

過小的特征圖尺寸會對計數(shù)的性能產(chǎn)生非常大的影響。這里,我們進(jìn)行兩組對比試驗:1) ResNet-50中res.layer3以前的層原封不動當(dāng)做backbone,最終輸出密度圖作16x的上采樣;2) C3F最終采用的方案,輸出密度圖作8x的上采樣。

從實驗結(jié)果可以看出,在將stride改為1后,模型輸出了分辨率更高的密度圖,同時在計數(shù)誤差上取得了更好的效果。同時,我們也對比一下兩者在訓(xùn)練過程中,測試集上MAE和MSE的表現(xiàn),如下圖所示。其中藍(lán)色部分為stride=2的結(jié)果,橙色為stride=1的結(jié)果。能夠很直觀的看出,平滑后的曲線圖,橙色曲線整體要低于藍(lán)色曲線。(注:實驗中,其他參數(shù)均與results_reports/Res50/SHHB中的設(shè)置保持一致。)

不同特征圖大小的實驗對比

3.3 數(shù)據(jù)歸一化中,均值和標(biāo)準(zhǔn)差對實驗結(jié)果的影響

C3F中,在misc中我們提供了cal_mean.py來計算數(shù)據(jù)集中的訓(xùn)練數(shù)據(jù)中均值和標(biāo)準(zhǔn)差。大多數(shù)人會使用ImageNet的均值和標(biāo)準(zhǔn)差(也就是mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),經(jīng)過實測,該參數(shù)對最終的性能影響有限。我們繼續(xù)使用Res50和MCNN網(wǎng)絡(luò)進(jìn)行試驗,用兩種均值、標(biāo)準(zhǔn)差進(jìn)行歸一化,比較最終的計數(shù)誤差,結(jié)果見下表。(注:Res50實驗中,其他參數(shù)均與results_reports/Res50/SHHB中的設(shè)置保持一致。MCNN實驗則是與results_reports/MCNN/SHHB中的設(shè)置保持一致)

從表格中,我們可以看出,使用了自身數(shù)據(jù)集的均值和標(biāo)準(zhǔn)差,性能要略微優(yōu)于使用ImageNet上的均值和標(biāo)準(zhǔn)差所得到的的結(jié)果。下圖展示了訓(xùn)練過程中驗證集上MAE和MSE的變化曲線,其中橙色代表采用了SHT B的均值和標(biāo)準(zhǔn)差的實驗,藍(lán)色則為采用了ImageNet的結(jié)果。從圖中可以看出,二者的重合度非常高。

Res50:不同均值標(biāo)準(zhǔn)差的實驗對比

MCNN:不同均值標(biāo)準(zhǔn)差的實驗對比

由于人群圖像和ImageNet數(shù)據(jù)均屬于自然圖像,計算出的均值和標(biāo)準(zhǔn)差也比較類似。因此,改值對實驗結(jié)果的影響并不是很大。當(dāng)然,影響程度也與數(shù)據(jù)集有關(guān),如果數(shù)據(jù)具有很強(qiáng)的偏置,最好還是采用數(shù)據(jù)對應(yīng)的均值和標(biāo)準(zhǔn)差。總的來說,我們還是建議使用訓(xùn)練數(shù)據(jù)的均值和標(biāo)準(zhǔn)差,以取得更好的計數(shù)性能。

4. 實驗結(jié)果

本節(jié),我們將復(fù)現(xiàn)的所有算法在SHT B上的性能展示出來,方便大家做最終的對比。我們發(fā)現(xiàn),得益于ResNet-101強(qiáng)大的學(xué)習(xí)能力,以其為Backbone的人群計數(shù)器在MAE和MSE指標(biāo)上超越了其他所有算法。此外,我們還發(fā)現(xiàn),對于有預(yù)訓(xùn)練參數(shù)的網(wǎng)絡(luò),甚至可以不需要對網(wǎng)絡(luò)進(jìn)行過多的設(shè)計,例如Dilated Conv、Multi-column Conv、Scale Aggregation等,就可以達(dá)到一個較好的結(jié)果。

5. 總結(jié)展望

本項目旨在提供一個簡單、高效、易用、靈活的人群計數(shù)框架,方便新手快速上手入門、資深研究者高效實現(xiàn)idea以及最大化模型性能。本技術(shù)報告則是對該項目的一個簡單介紹,使大家能夠?qū)ξ覀兊捻椖坑幸粋€更深的理解,這樣用起來也會更加順手,最大化框架的使用度。

同時,我們英文Technical Report(為本文的精簡內(nèi)容)也將在arxiv上預(yù)印。如果大家有任何問題、建議,歡迎大家在倉庫中提issue和PR,讓C3F變得更好!

6. 致謝

在整個項目推進(jìn)的過程中,得到了很多人的大力支持。特別地,感謝@wwwzxoe303com對關(guān)鍵代碼的檢查和測試,感謝@PetitBai對項目Readme.md的校對,感謝Google Colab提供免費實驗資源。此外,我們的部分代碼、設(shè)計邏輯參考或直接借用了以下作者的倉庫/項目/代碼,在此一并表示感謝!正是有了以下幾個出色的開源代碼,我們才得以完成C3F項目。

rbgirshick/py-faster-rcnn

zijundeng/pytorch-semantic-segmentation

leeyeehoo/CSRNet-pytorch

BIGKnight/SANet_implementation

gjy3035/enet.pytorch

gjy3035/GCC-SFCN

gjy3035/PCC-Net(論文尚未發(fā)表,因此暫未公開源碼)

7. Q&A

Q1:能否提供Python3環(huán)境下的代碼?A:會,但現(xiàn)在時機(jī)不成熟。原因是Tensorboard暫時還不支持Python3.7,加之人手不足,暫無開發(fā)計劃。

Q2:為什么在SHT B上做實驗?以后會不會對其他數(shù)據(jù)集進(jìn)行驗證?A:因為圖像尺寸相同,便于多batch-size的訓(xùn)練和測試,能夠最大化利用顯卡,節(jié)省顯卡資源和訓(xùn)練時間。對于其他數(shù)據(jù)集,由于自己的時間有限,也沒有足夠的顯卡資源,暫時不會做其他數(shù)據(jù)集實驗。

Q3:語義分割和人群計數(shù)非常類似,能不能直接用一些分割網(wǎng)絡(luò)呢?A:二者同屬于逐像素任務(wù),前者為逐像素分類,后者為逐像素回歸。根據(jù)我的實驗,某些分割網(wǎng)絡(luò)直接修改最后一層為回歸層后,其效果與backbone相比,提升非常有限。甚至性能會有所下降。深層問題暫時還沒有仔細(xì)思考。不過據(jù)我所知,有人對此問題已經(jīng)做了研究,大家耐心等待即可。

Q4:正確的訓(xùn)練、驗證、測試流程應(yīng)該是怎樣的?A:嚴(yán)格意義上,所有數(shù)據(jù)集應(yīng)該都包含以上三種數(shù)據(jù)(如果沒有驗證集,則應(yīng)該從訓(xùn)練集中隨機(jī)選擇一部分)。在本項目中,為了能夠確保所有實驗結(jié)果可以復(fù)現(xiàn),我們直接將測試集當(dāng)做驗證集來監(jiān)控訓(xùn)練過程。

Q5:部分模型會在PyTorch1.0下報上采樣函數(shù)F.upsample的警告信息。A:該警告不影響訓(xùn)練。為了兼容0.4版本,我們依然采用F.upsample方法來對Tensor進(jìn)行放大尺寸的操作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1094

    瀏覽量

    41267
  • 數(shù)據(jù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    627

    瀏覽量

    29183
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1224

    瀏覽量

    25448

原文標(biāo)題:C3F—開源人群計數(shù)工具箱:快速上手、模型驗證、流程處理,你值得擁有

文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    代碼助你理解I2C總線

    I2C 只是用兩條雙向的線,一條 Serial Data Line (SDA) ,另一條Serial Clock (SCL)。
    發(fā)表于 01-25 14:04 ?3603次閱讀
    讓<b class='flag-5'>代碼</b><b class='flag-5'>助你</b><b class='flag-5'>理解</b>I2<b class='flag-5'>C</b>總線

    C8051F330小實驗代碼

    C8051F330小實驗代碼
    發(fā)表于 10-15 00:33

    如何提高代碼理解能力?

    最近在學(xué)習(xí)ARM cortex M3,用的戰(zhàn)艦的板子,在看寄存器版本的開發(fā)指南的第19章——usmart調(diào)試組件,這章的實驗里面的程序理解起來有點困難,特別是在usmart_str.c
    發(fā)表于 10-11 03:03

    基于stm32f4的看門狗配置和實驗代碼

    基于stm32f4的看門狗配置和實驗代碼以下本人對stm32f4xx的獨立看門狗和窗口看門狗學(xué)習(xí)、理解和總結(jié),程序的說明和解釋均在注釋中,仔
    發(fā)表于 07-30 07:33

    STM32F103C8虛擬串口移植的實驗代碼該怎樣去實現(xiàn)呢

    STM32F103C8虛擬串口移植的實驗代碼該怎樣去實現(xiàn)呢?
    發(fā)表于 02-24 07:48

    分相電路分析 實驗3

    分相電路分析 實驗3 一、 演示內(nèi)容 1. 分相電路的組成、靜態(tài)分析。 2. 分相電路的動態(tài)分析。
    發(fā)表于 05-10 17:10 ?7次下載

    S3C2410內(nèi)存管理單元MMU基礎(chǔ)實驗

    (11)實驗十一:MMU 在理論上概括或解釋MMU,這不是我能勝任的。我僅基于為了理解實驗中操作MMU的代碼而對MMU做些說明,現(xiàn)在先簡單地描述虛擬地址(VA)、變換后的虛擬地址(M
    發(fā)表于 01-01 02:29 ?17次下載

    CodeViz--一款分析C/C++源代碼中函數(shù)調(diào)用關(guān)系的調(diào)用

    程序開發(fā)中,有時候需要閱讀別人的代碼,這時理解代碼的組織結(jié)構(gòu)就顯得非常重要。CodeViz是一款分析C
    發(fā)表于 04-04 20:50 ?85次下載
    CodeViz--一款<b class='flag-5'>分析</b><b class='flag-5'>C</b>/<b class='flag-5'>C</b>++源<b class='flag-5'>代碼</b>中函數(shù)調(diào)用關(guān)系的調(diào)用

    KLOCWORK INSIGHT:C#源代碼分析

    開發(fā)人員使用KLOCWORK久經(jīng)驗證的靜態(tài)源代碼分析工具來協(xié)助他們編寫更好的代碼。通過提供一個完全自動化的跨過程控制流、數(shù)據(jù)流、值范圍傳播和符號邏輯分析,KLOCWORK可以發(fā)現(xiàn)
    發(fā)表于 04-04 21:54 ?23次下載

    TMS320F28335開發(fā)板全套實驗代碼

    TMS320F28335開發(fā)板全套實驗代碼
    發(fā)表于 03-03 16:23 ?39次下載

    MSP430F47x3,MSP430F47x4 示例代碼

    MSP430F47x3,MSP430F47x4 示例代碼
    發(fā)表于 05-03 10:26 ?16次下載
    MSP430<b class='flag-5'>F47x3</b>,MSP430<b class='flag-5'>F</b>47x4 示例<b class='flag-5'>代碼</b>

    一文助你全面理解機(jī)器學(xué)習(xí)

    如果你對人工智能和機(jī)器學(xué)習(xí)的理解還不是很清楚,那么本文對你來說將會很有用。我將配合精彩的視頻和文字解說來幫助你全面理解機(jī)器學(xué)習(xí)。
    的頭像 發(fā)表于 07-17 16:04 ?3249次閱讀

    STM32F4 I2C-EEPROM實驗例程

    STM32F4 I2C-EEPROM實驗例程(嵌入式開發(fā)專業(yè)課程)-STM32F4 I2C-EEPROM
    發(fā)表于 07-30 16:02 ?19次下載
    STM32<b class='flag-5'>F</b>4 I2<b class='flag-5'>C</b>-EEPROM<b class='flag-5'>實驗</b>例程

    基于STM32F103C8 輸入捕獲實驗

    基于STM32F103C8 輸入捕獲實驗-目的該項目是在實習(xí)時做的一個基于STM32+CUBEMX工具讀取溫度計輸出的PWM波的實驗,使用到了TIMER讀取輸入捕獲和UART輸出到串口,最終實現(xiàn)讀取
    發(fā)表于 11-30 10:36 ?12次下載
    基于STM32<b class='flag-5'>F103C</b>8 輸入捕獲<b class='flag-5'>實驗</b>

    在GD32F103移植STM32F103代碼

    在GD32F103移植STM32F103代碼使用相同F(xiàn)LASH和管腳數(shù)量相同的芯片,例如GDF103C8T6移植STM32F103C8T6程
    發(fā)表于 12-02 15:21 ?23次下載
    在GD32<b class='flag-5'>F</b>103移植STM32<b class='flag-5'>F</b>103<b class='flag-5'>代碼</b>