91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

一個破紀(jì)錄的人群計數(shù)算法!——使用深度學(xué)習(xí)構(gòu)建一個人群計數(shù)模型

新機(jī)器視覺 ? 來源:PULKIT SHARMA,FEBRUARY 18, 201 ? 作者:PULKIT SHARMA,FEBRUAR ? 2021-04-01 14:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一個破紀(jì)錄的人群計數(shù)算法!

——使用深度學(xué)習(xí)構(gòu)建一個人群計數(shù)模型

人工智能機(jī)器學(xué)習(xí)將成為我們未來十年最大的幫手!

今天,我將分享一個例子——如何計算人群中的人數(shù)深度學(xué)習(xí)與計算機(jī)視覺?

但是,在我們開始之前,請先幫我一個忙……

人臉識別或人臉簽到往往是1:1,或1:N的圖像識別技術(shù),但如何數(shù)人數(shù),少量只要能識別人臉當(dāng)然就可以數(shù)人數(shù)了。

但當(dāng)我們面臨大規(guī)模擁擠的人群,我們可能不需要識別人臉,只是人群計數(shù),是否可以實現(xiàn)呢?

能幫我數(shù)數(shù)圖片中這個活動有多少人參加嗎?

太多了?那這個怎么樣?

還是不行?沒關(guān)系!

今天我們將教你創(chuàng)建一個基于深度學(xué)習(xí)的人群計數(shù)模型。

本文是基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的工作方式建立的,在進(jìn)一步研究之前,您可以參考下面這篇文章來了解這個主題:

https://www.analyticsvidhya.com/blog/2018/12/guide-convolutional-neural-network-cnn/?utm_source=blog&utm_medium=crowd-counting

現(xiàn)在,我們正式開始介紹~

目錄

1.什么是人群計數(shù)?

2.為什么要數(shù)人群?

3.了解不同計算機(jī)視覺技術(shù)在人群計數(shù)中的應(yīng)用

4.CSRNet的體系結(jié)構(gòu)與訓(xùn)練方法

5.用Python構(gòu)建自己的人群計數(shù)模型

什么是人群計數(shù)?

人群計數(shù)是一種計算或估計圖像中的人數(shù)的技術(shù)。

還是這張圖——

你能告訴我這個圖片里大概有多少人嗎?最直接的方法是手工算,但這有實際意義嗎?當(dāng)人群這么多的時候,一個一個數(shù)幾乎是不可能的!

人群科學(xué)家們可以通過對圖片區(qū)域劃分,計算圖像某些部分的人數(shù),然后外推得出估計值。這種方法是現(xiàn)在較為普遍的方式,但是也存在誤差。幾十年來,我們不得不依靠粗略的指標(biāo)來估計這個數(shù)字。

肯定有更好、更準(zhǔn)確的方法吧?

沒錯,有!

雖然我們還沒有算法可以給出確切的數(shù)字,但大多數(shù)計算機(jī)視覺技術(shù)可以產(chǎn)生幾乎完美的精確估計。讓我們先了解為什么人群計數(shù)是重要的,然后再深入研究其背后的算法。

人群計數(shù)有什么用?

讓我們用一個例子來理解人群計數(shù)的有用性。想象一下,中國傳媒大學(xué)剛剛舉辦了一個大型的數(shù)據(jù)科學(xué)會議?;顒悠陂g舉行了許多不同的會議。


你被要求分析和估計每一次參加會議的人數(shù)。這將幫助我們了解什么樣的會議吸引了最多的人數(shù)(以及哪些會議在這方面失敗了)。并由此可以針對性塑造明年的會議,所以這是一項重要的任務(wù)!

參加會議的人數(shù)太多了,如果人工數(shù)可能將需要很久!這就是學(xué)習(xí)人群計數(shù)技能的作用所在。只要獲得每一次會議中人群的照片,就可以建立了一個計算機(jī)視覺模型來完成其余的工作!

還有很多其他情況下,人群計數(shù)算法正在改變行業(yè)的運作方式:

統(tǒng)計參加體育賽事的人數(shù)

估計有多少人參加了就職典禮或游行(可能是政治集會)

對交通繁忙地區(qū)的監(jiān)察

協(xié)助人員配置和資源分配

不同計算機(jī)視覺技術(shù)在人群計數(shù)中的應(yīng)用

概括地說,目前我們可以用四種方法來計算人群中的人數(shù):

1.基于檢測的方法

我們可以使用一個移動窗口式檢測器來識別圖像中的人,并計算出有多少人。用于檢測的方法需要訓(xùn)練有素的分類器來提取低層次特征。雖然這些方法在人臉檢測方面效果很好,但在擁擠的圖像上效果不佳,因為大多數(shù)目標(biāo)對象都不是清晰可見的。

2.回歸方法

對于低級別的特征,上述方法使用并不有效,可以使用基于回歸的方法。我們首先從圖像中裁剪補(bǔ)丁,然后,針對每個補(bǔ)丁,提取低級別的特征。

3.基于密度估計的方法

我們首先為要檢測的圖片創(chuàng)建一個密度圖。然后,該算法學(xué)習(xí)了提取的特征與目標(biāo)密度映射之間的線性映射。我們也可以利用隨機(jī)森林回歸來學(xué)習(xí)非線性映射。

4.基于CNN的方法

我們不用看圖像的補(bǔ)丁,而是使用可靠的卷積神經(jīng)網(wǎng)絡(luò)(CNN)構(gòu)建一個端到端的回歸方法。這將整個圖像作為輸入,并直接生成人群計數(shù)。CNN在回歸或分類任務(wù)中非常有效,并且在生成密度圖方面也證明了它們的價值。

CSRNet是我們在本文中將實現(xiàn)的一種技術(shù),它部署了一個更深層次的CNN,用于捕獲高級別的特性和生成高質(zhì)量的密度圖,而不需要擴(kuò)展網(wǎng)絡(luò)復(fù)雜性。在講到編碼部分之前,讓我們先了解一下CSRNet是什么。

了解CSRNet的體系結(jié)構(gòu)和培訓(xùn)方法

CSRNet以VGG-16為前端,具有很強(qiáng)的遷移學(xué)習(xí)能力.VGG的輸出大小是原始輸入大小的?。CSRNet還在后端使用膨脹的卷積層。

那么,什么是膨脹的卷積?請參考以下圖像:

c6c2e3b6-92a7-11eb-8b86-12bb97331649.png

使用膨脹卷積的基本概念是在不增加參數(shù)的情況下擴(kuò)大核。所以,如果膨脹率是1,我們?nèi)『瞬⑺D(zhuǎn)到整個圖像上。然而,如果我們將擴(kuò)展率提高到2,內(nèi)核就會像上面的圖像所示的那樣擴(kuò)展(按照每個圖像下面的標(biāo)簽)。它可以替代匯集圖層。

c6f3bd7e-92a7-11eb-8b86-12bb97331649.jpg

基礎(chǔ)數(shù)學(xué)(推薦,選擇性了解)

我要花點時間解釋一下數(shù)學(xué)是如何工作的。(請注意,在Python中實現(xiàn)算法并不是必須的,但我強(qiáng)烈建議學(xué)習(xí)基本思想。)當(dāng)我們需要調(diào)整或修改模型時,這將派上用場。

假設(shè)我們有一個輸入x(m,n),一個濾波器w(i,j),以及膨脹率r。輸出y(m,n)為:

c71cc87c-92a7-11eb-8b86-12bb97331649.png

我們可以用(k*k)核推廣這個方程,其擴(kuò)張率為r。內(nèi)核擴(kuò)展到:

([K+(k-1)*(r-1)]*[k+(k-1)*(r-1)])

因此,每一幅圖像都產(chǎn)生了地面真相。在給定的圖像中,每個人的頭部都是用高斯核模糊的。所有圖像都被裁剪成9個補(bǔ)丁,每個補(bǔ)丁的大小是圖像原始大小的1/4。

前4個補(bǔ)丁分為4個四分之一,其他5個補(bǔ)丁隨機(jī)裁剪。最后,每個補(bǔ)丁的鏡像被取為訓(xùn)練集的兩倍。

簡而言之,這就是CSRNet背后的體系結(jié)構(gòu)細(xì)節(jié)。接下來,我們將查看它的培訓(xùn)細(xì)節(jié),包括所使用的評估指標(biāo)。

隨機(jī)梯度下降用于訓(xùn)練CSRNet作為端到端結(jié)構(gòu)。在訓(xùn)練期間,固定學(xué)習(xí)率設(shè)置為1e-6。損失函數(shù)被認(rèn)為是歐幾里德距離,以便測量地面之間的差異 真相和估計的密度圖。這表示為:

c73a9438-92a7-11eb-8b86-12bb97331649.png

其中N是訓(xùn)練批次的大小。CSRNet中使用的評估標(biāo)準(zhǔn)是mae和mse。,即平均絕對誤差和均方誤差。這些建議是由以下方面提供的:

c755a868-92a7-11eb-8b86-12bb97331649.png

在這里,Ci是估計數(shù):

c770b50e-92a7-11eb-8b86-12bb97331649.png

L和W是預(yù)測密度圖的寬度。

我們的模型將首先預(yù)測給定圖像的密度圖。如果沒有人在場,像素值將為0。如果某個像素對應(yīng)于某個人,則將指定某個預(yù)定義的值。因此,計算一個人的總像素值會給出圖像中人的數(shù)量。

那么現(xiàn)在,是時候建立我們自己的人群計數(shù)模型了!

建立自己的人群計數(shù)模型

我們將在上海科技數(shù)據(jù)集上實現(xiàn)CSRNet。這包括1198個加注釋的圖片,總共有330,165人。您可以從這里下載。

https://www.dropbox.com//s/fipgjqxl7uj8hd5/ShanghaiTech.zip?dl=0

使用下面的代碼塊克隆CSRNet-py火炬存儲庫。這保存了用于創(chuàng)建數(shù)據(jù)集、培訓(xùn)模型和驗證結(jié)果的全部代碼:

git clone https://github.com/leeyeehoo/CSRNet-pytorch.git

請先安裝CUDA和PyTorch。這些是我們將在下面使用的代碼背后的主干。

現(xiàn)在,將數(shù)據(jù)集移動到您在上面克隆的存儲庫并解壓它。然后我們需要創(chuàng)建基本事實值.make_dataset.ipynbfile是我們的救星。我們只需要在該筆記本中做一些小改動:

#setting the root to the Shanghai dataset you have downloaded # change the root path as per your location of datasetroot = '/home/pulkit/CSRNet-pytorch/'

現(xiàn)在,讓我們?yōu)閜art_A和part_B中的圖像生成基本真值:

生成每幅圖像的密度圖是一個時間步驟。所以,在代碼運行時,去泡一杯咖啡吧。

到目前為止,我們已經(jīng)在第A部分中為圖像生成了地面真值,我們將對Part_B圖像進(jìn)行同樣的處理。但在此之前,讓我們看看一個示例圖像,并繪制它的地面真實熱圖:

生成每張圖像的密度圖是一個很長的時間。所以在代碼運行時去沖泡一杯咖啡吧,耐心等待一下。

到目前為止,我們已經(jīng)為part_A中的圖像生成了基本真值。我們將對part_B圖像執(zhí)行相同的操作。但在此之前,讓我們看一個示例圖像并繪制其地面真實熱圖:

plt.imshow(Image.open(img_paths[0]))

c789e506-92a7-11eb-8b86-12bb97331649.jpg

gt_file = h5py.File(img_paths[0].replace('.jpg','.h5').replace('images','ground-truth'),'r') groundtruth = np.asarray(gt_file['density']) plt.imshow(groundtruth,cmap=CM.jet)

c7a2b216-92a7-11eb-8b86-12bb97331649.png

讓我們數(shù)一下這張圖片中有多少人在場:

np.sum(groundtruth)

270.32568

同樣,我們將為part_B生成值:

我們將使用克隆目錄中可用的.json文件。我們只需要更改JSON文件中圖像的位置。為此,打開.json文件并將當(dāng)前位置替換為圖像所在的位置。

請注意,所有這些代碼都是用Python 2編寫的。如果您使用的是其他任何Python版本,請進(jìn)行以下更改:

1.在model.py中,將第18行中的xrange更改為range

2.在model.py中更改第19行:list(self.frontend.state_dict()。items())[i] [1] .data [:] = list(mod.state_dict()。items())[i][1]。數(shù)據(jù)[:]

3.在image.py中,將ground_truth替換為ground-true

現(xiàn)在,打開一個新的終端窗口并鍵入以下命令:

cd CSRNet-pytorch python train.py part_A_train.json part_A_val.json 0 0

這個步驟需要一些時間,耐心等一下。你也可以減少train.py文件中的紀(jì)元數(shù)量,以加快這個過程。你也可以從這里下載預(yù)先訓(xùn)練的重量,如果你不想等待的話。

最后,讓我們檢查一下我們的模型在看不見的數(shù)據(jù)上的性能。我們將使用val.ipynb文件來驗證結(jié)果。記住要更改到預(yù)先訓(xùn)練過的權(quán)重和圖像的路徑。

#defining the image path img_paths = [] for path in path_sets: for img_path in glob.glob(os.path.join(path, '*.jpg')): img_paths.append(img_path)model = CSRNet()#defining the model model = model.cuda()#loading the trained weights checkpoint = torch.load('part_A/0model_best.pth.tar') model.load_state_dict(checkpoint['state_dict'])

檢查測試圖像上的MAE(平均絕對誤差),以評估我們的模型:

我們得到的MAE值為75.69,相當(dāng)不錯?,F(xiàn)在讓我們檢查一下單個圖像上的預(yù)測:

c7da403c-92a7-11eb-8b86-12bb97331649.jpg

哇,最初的數(shù)字是382,我們的模型估計圖像中有384人。這幾乎是一個完美的演繹!

恭喜你建立了自己的人群計數(shù)模型!

原始論文的評測圖和結(jié)果

c80fdbac-92a7-11eb-8b86-12bb97331649.jpg

c84b7d88-92a7-11eb-8b86-12bb97331649.jpg

c87aba30-92a7-11eb-8b86-12bb97331649.jpg

c8b71aa2-92a7-11eb-8b86-12bb97331649.jpg

最后

您可以在https://colab.research.google.com上測試跑人群計數(shù)。

需要安裝:Pytorch和Cuda

c8c4733c-92a7-11eb-8b86-12bb97331649.jpg

來源:PULKIT SHARMA,

FEBRUARY 18, 2019

責(zé)任編輯:lq

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

    關(guān)注

    9

    文章

    533

    瀏覽量

    40065
  • 計數(shù)算法
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5510
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5599

    瀏覽量

    124405

原文標(biāo)題:圖像識別 | 大規(guī)模擁擠人群:一個破紀(jì)錄的人群計數(shù)算法!

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    脈沖/頻率計數(shù)采集模塊:高速脈沖+頻率,支持?jǐn)嚯姳4?/a>

    脈沖/頻率計數(shù)采集模塊是工業(yè)里專門 “數(shù)脈沖、測頻率” 的小硬件,相當(dāng)于給傳感器、電機(jī)、流量計裝了高精度計數(shù)器 + 測速儀。 、主要功
    的頭像 發(fā)表于 03-04 16:06 ?108次閱讀

    基于安信可Ai-M61-32S開發(fā)板的跳繩計數(shù)器設(shè)計

    給小孩數(shù)跳繩個數(shù),總是數(shù)著數(shù)著對不上了,想著買自動計數(shù)的,但是買不如做一個。
    的頭像 發(fā)表于 01-24 09:28 ?404次閱讀
    基于安信可Ai-M61-32S開發(fā)板的跳繩<b class='flag-5'>計數(shù)</b>器設(shè)計

    機(jī)器學(xué)習(xí)深度學(xué)習(xí)中需避免的 7 常見錯誤與局限性

    ,并驗證輸出結(jié)果,就能不斷提升專業(yè)技能,養(yǎng)成優(yōu)秀數(shù)據(jù)科學(xué)家的工作習(xí)慣。需避免的機(jī)器學(xué)習(xí)深度學(xué)習(xí)數(shù)據(jù)錯誤在訓(xùn)練數(shù)據(jù)驅(qū)動的人工智能模型時,我們
    的頭像 發(fā)表于 01-07 15:37 ?201次閱讀
    機(jī)器<b class='flag-5'>學(xué)習(xí)</b>和<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>中需避免的 7 <b class='flag-5'>個</b>常見錯誤與局限性

    什么是自動喚醒定時器

    CW32F030 內(nèi)部集成 1 自動喚醒定時器 (AWT),AWT 包含 16bit 向下計數(shù)器,并由
    發(fā)表于 12-11 07:24

    【團(tuán)購】獨家全套珍藏!龍哥LabVIEW視覺深度學(xué)習(xí)實戰(zhàn)課(11大系列課程,共5000+分鐘)

    的亮點及優(yōu)勢? 、課程亮點 工業(yè)級案例:包含雙CCD光學(xué)分選轉(zhuǎn)盤、機(jī)械手手眼協(xié)調(diào)等12完整項目 源碼交付:所有案例提供LabVIEW源代碼,包含深度學(xué)習(xí)
    發(fā)表于 12-04 09:28

    【社區(qū)之星】宿晶亮——一個人的愛好,足以點燃不設(shè)限的學(xué)習(xí)熱情

    過是冰山角。偶爾獲得的肯定,我更愿視之為種鞭策。正所謂“不要拿自己的愛好去挑戰(zhàn)別人的專業(yè)”。 這段經(jīng)歷或許可以說明:一個人的愛好,足以點燃不設(shè)限的學(xué)習(xí)熱情。以夢為馬,或許真能行遠(yuǎn)致
    發(fā)表于 12-03 18:11

    【團(tuán)購】獨家全套珍藏!龍哥LabVIEW視覺深度學(xué)習(xí)實戰(zhàn)課程(11大系列課程,共5000+分鐘)

    的亮點及優(yōu)勢? 、課程亮點 工業(yè)級案例:包含雙CCD光學(xué)分選轉(zhuǎn)盤、機(jī)械手手眼協(xié)調(diào)等12完整項目 源碼交付:所有案例提供LabVIEW源代碼,包含深度學(xué)習(xí)
    發(fā)表于 12-03 13:50

    頻率計數(shù)器/定時器 時間間隔計數(shù)器的應(yīng)用領(lǐng)域和范圍的深度解析 頻率計數(shù)器模塊

    穩(wěn)定性的核心優(yōu)勢,成為解決各時間測量需求的優(yōu)選方案。 、集成化高精度時間測量單元 SYN5620A是款基于先進(jìn)計時技術(shù)與數(shù)字信號處理算法開發(fā)的時間間隔計數(shù)器模塊,專為需要精準(zhǔn)測量兩
    的頭像 發(fā)表于 10-30 11:22 ?606次閱讀
    頻率<b class='flag-5'>計數(shù)</b>器/定時器 時間間隔<b class='flag-5'>計數(shù)</b>器的應(yīng)用領(lǐng)域和范圍的<b class='flag-5'>深度</b>解析 頻率<b class='flag-5'>計數(shù)</b>器模塊

    學(xué)習(xí)物聯(lián)網(wǎng)怎么入門?

    隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的人開始關(guān)注學(xué)習(xí)領(lǐng)域。但是對于初學(xué)者來說,物聯(lián)網(wǎng)似乎是龐雜的概念,
    發(fā)表于 10-14 10:34

    自動駕駛中Transformer大模型會取代深度學(xué)習(xí)嗎?

    [首發(fā)于智駕最前沿微信公眾號]近年來,隨著ChatGPT、Claude、文心言等大語言模型在生成文本、對話交互等領(lǐng)域的驚艷表現(xiàn),“Transformer架構(gòu)是否正在取代傳統(tǒng)深度學(xué)習(xí)
    的頭像 發(fā)表于 08-13 09:15 ?4188次閱讀
    自動駕駛中Transformer大<b class='flag-5'>模型</b>會取代<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>嗎?

    雷電(雷擊)計數(shù)器的原理、作用及行業(yè)應(yīng)用解決方案

    安全事故。雷電(雷擊)計數(shù)器作為防雷系統(tǒng)中的重要組成部分,扮演著“記錄雷擊事件、輔助安全運維”的關(guān)鍵角色,已經(jīng)成為智能防雷系統(tǒng)中不可或缺的環(huán)。 二、雷電(雷擊)計數(shù)器的原理 1. 工作原理 雷電
    的頭像 發(fā)表于 06-12 15:14 ?1081次閱讀
    雷電(雷擊)<b class='flag-5'>計數(shù)</b>器的原理、作用及行業(yè)應(yīng)用解決方案

    基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(程序、設(shè)計報告、視頻演示)

    基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(程序、設(shè)計報告、視頻演示),有需要的同學(xué)推薦下載!
    發(fā)表于 05-28 21:34

    基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(程序、設(shè)計報告、視頻演示)

    基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(程序、設(shè)計報告、視頻演示)項目下載! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第時間告知,刪除內(nèi)容!
    發(fā)表于 05-23 20:35

    18常用的強(qiáng)化學(xué)習(xí)算法整理:從基礎(chǔ)方法到高級模型的理論技術(shù)與代碼實現(xiàn)

    本來轉(zhuǎn)自:DeepHubIMBA本文系統(tǒng)講解從基本強(qiáng)化學(xué)習(xí)方法到高級技術(shù)(如PPO、A3C、PlaNet等)的實現(xiàn)原理與編碼過程,旨在通過理論結(jié)合代碼的方式,構(gòu)建對強(qiáng)化學(xué)習(xí)算法的全面理
    的頭像 發(fā)表于 04-23 13:22 ?1618次閱讀
    18<b class='flag-5'>個</b>常用的強(qiáng)化<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>算法</b>整理:從基礎(chǔ)方法到高級<b class='flag-5'>模型</b>的理論技術(shù)與代碼實現(xiàn)

    STM32U083進(jìn)行外部計數(shù)只能計數(shù)8000多點,為什么?

    背景: 使用LPTIME1進(jìn)行計數(shù)。 LPTIMER配置如下: 時鐘配置如下: 使用過LSE;PCLK配置,計數(shù)還是樣的 實際計數(shù)只能計數(shù)
    發(fā)表于 03-12 06:21