CNN可視化技術(shù)總結(jié)

極市導(dǎo)讀
?本文基本介紹完了目前CNN可視化的一些方法,即特征圖可視化,卷積核可視化和類可視化,并總結(jié)了一些可視化工具與項(xiàng)目。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿
目錄:
1.特征圖可視化方法
2.卷積核可視化
3.類可視化
4.可視化工具與項(xiàng)目
一、特征圖可視化方法
在CV很多方向所謂改進(jìn)模型,改進(jìn)網(wǎng)絡(luò),都是在按照人的主觀思想在改進(jìn),常常在說CNN的本質(zhì)是提取特征,但并不知道它提取了什么特征,哪些區(qū)域?qū)τ谧R(shí)別真正起作用,也不知道網(wǎng)絡(luò)是根據(jù)什么得出了分類結(jié)果。如在上次解讀的一篇論文《Feature Pyramid Transformer》(簡稱FPT)中,作者提出背景信息對于識(shí)別目標(biāo)有重要作用,因?yàn)殡娔X肯定是在桌上,而不是水里,大街上,背景中的鍵盤鼠標(biāo)的存在也能輔助區(qū)分電腦與電視機(jī),因此作者提出要使用特征金字塔融合背景信息。從人的主觀判斷來看,這點(diǎn)非常合理。但對于神經(jīng)網(wǎng)絡(luò)來說,F(xiàn)PT真的有融合背景信息,而普通CNN網(wǎng)絡(luò)沒有融合背景信息?又或者說,一般而言,除了提出的新模型,還會(huì)加上主觀設(shè)計(jì)的各種tricks,確定最后是因?yàn)槿诤狭吮尘靶畔⒍忍岣吡?,還是說背景確實(shí)融合了,但實(shí)際上對精度沒有影響,而是各種tricks起了作用?這一切并不確定,因?yàn)椴⒉淮_定CNN到底學(xué)到了什么。
解決這個(gè)問題的辦法有很多,一個(gè)是想辦法看看CNN內(nèi)部學(xué)到了什么,一個(gè)是控制變量法。提到這個(gè)控制變量法,在某一篇論文中(我對不起我的讀者,論文累積量太大,忘記是哪一篇,只記得該論文的一些新穎之處),在設(shè)計(jì)了一個(gè)新的模型后,通過改變卷積層的某些通道,來看最后模型的精度的變化,從而確定哪些通道對這個(gè)模型是真正起作用的,而哪些是冗余的。按照這個(gè)思路,我們或許可以在數(shù)據(jù)預(yù)處理時(shí),故意裁剪掉人主觀認(rèn)為有用的背景信息,例如裁剪輔助識(shí)別電腦的桌子,鍵盤鼠標(biāo),重新訓(xùn)練FPT,從而看最終精度有沒有影響。很明顯,這種方法理論上是可行的,但實(shí)際上工作量巨大,不現(xiàn)實(shí)。而CNN可視化是值得考慮的方法。
除了上面提到的一點(diǎn),CNN可視化的作用還有哪些?
在少數(shù)提出新模型或新methods的論文中,往往會(huì)給出這個(gè)模型的一些可視化圖來證明這個(gè)模型或這個(gè)新methods對于任務(wù)的作用,這一點(diǎn)不僅能增加新模型或新methods可信度,也能起到增加工作量,增加論文字?jǐn)?shù)的作用,如研究者想到一個(gè)method,一兩頁就介紹加推理加證明完了,效果明顯,但作為一篇論文卻字?jǐn)?shù)太少,工作量不夠多,就可以考慮可視化使用了這個(gè)methods的網(wǎng)絡(luò)與沒有使用這個(gè)methods的網(wǎng)絡(luò),進(jìn)行對比,分析分析,就可以變成一篇完整的論文了。此外,CNN可視化還有一個(gè)作用,根據(jù)可視化某個(gè)網(wǎng)絡(luò)的結(jié)果分析其不足之處,從而提出新的改進(jìn)方法。例如:ZFNet正是對AlexNet進(jìn)行可視化后改進(jìn)而來,獲得了ILSVRC2014的冠軍。
CNN可視化方法
一、特征圖可視化。特征圖可視化有兩類方法,一類是直接將某一層的feature map映射到0-255的范圍,變成圖像。另一類是使用一個(gè)反卷積網(wǎng)絡(luò)(反卷積、反池化)將feature map變成圖像,從而達(dá)到可視化feature map的目的。
二、卷積核可視化。
三、類激活可視化。這個(gè)主要用于確定圖像哪些區(qū)域?qū)ψR(shí)別某個(gè)類起主要作用。如常見的熱力圖(Heat Map),在識(shí)別貓時(shí),熱力圖可直觀看出圖像中每個(gè)區(qū)域?qū)ψR(shí)別貓的作用大小。這個(gè)目前主要用的方法有CAM系列(CAM、Grad-CAM、Grad-CAM++)。
四、一些技術(shù)工具。通過一些研究人員開源出來的工具可視化CNN模型某一層。
CNN技術(shù)總結(jié)將按照這四個(gè)方法,分成四個(gè)部分總結(jié)CNN可視化技術(shù)。對于以后出現(xiàn)新的技術(shù),或者補(bǔ)充,將更新在公眾號(hào)CV技術(shù)指南的技術(shù)總結(jié)部分。在本文,主要介紹第一類方法,特征圖可視化。
直接可視化
單通道特征圖可視化,由于feature map并不是在0-255范圍,因此需要將其進(jìn)行歸一化。以pytorch為例,使用torchvision.utils.make_grid()函數(shù)實(shí)現(xiàn)歸一化
def make_grid(tensor, nrow=8, padding=2,normalize=True, range=None,=False,pad_value=0):
多通道特征圖的顯示,即對某一層所有通道上的特征圖融合顯示,在使用make_grid函數(shù)后,pytorch環(huán)境下可使用tensorboardX下的SummerWriterh中的add_image函數(shù)。
本部分內(nèi)容參考鏈接:https://zhuanlan.zhihu.com/p/60753993
反卷積網(wǎng)絡(luò)( deconvnet )
feature map可視化的另一種方式是通過反卷積網(wǎng)絡(luò)從feature map變成圖像。反卷積網(wǎng)絡(luò)在論文《Visualizing and Understanding Convolutional Networks》中提出,論文中提出圖像像素經(jīng)過神經(jīng)網(wǎng)絡(luò)映射到特征空間,而反卷積網(wǎng)絡(luò)可以將feature map映射回像素空間。
如下圖所示,反卷積網(wǎng)絡(luò)的用途是對一個(gè)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中任意一層feature map經(jīng)過反卷積網(wǎng)絡(luò)后重構(gòu)出像素空間,主要操作是反池化unpooling、修正rectify、濾波filter,換句話說就是反池化,反激活,反卷積。

由于不可能獲取標(biāo)簽數(shù)據(jù),因此反卷積網(wǎng)絡(luò)是一個(gè)無監(jiān)督的,不具備學(xué)習(xí)能力的,就像一個(gè)訓(xùn)練好的網(wǎng)絡(luò)的檢測器,或者說是一個(gè)復(fù)雜的映射函數(shù)。
反池化Unpooling
在上一篇文章《池化技術(shù)總結(jié)》中提到最大池化會(huì)記錄最大值的坐標(biāo),在上圖中就是switches,而反池化就只需要將最大值放到原位置,而其他位置的值并不知道,直接置零。如下圖所示。

修正Rectification
CNN使用ReLU確保feature map上的值都是正的,因此在反卷積中也使用ReLU。這里所謂Rectification其實(shí)就是讓unpooling后的值都是正的,換句話說就是使用ReLU。
Filtering
Filtering指的是反卷積,具體操作就是使用原網(wǎng)絡(luò)的卷積核的轉(zhuǎn)置作為卷積核,對Rectification后的輸出進(jìn)行卷積。
注:在以上重構(gòu)過程中沒有使用對比歸一化操作。
反卷積網(wǎng)絡(luò)特征可視化結(jié)果

導(dǎo)向反向傳播
在論文《Striving for Simplicity:The All Convolutional Net》中提出使用導(dǎo)向反向傳播(Guided-backpropagation),導(dǎo)向反向傳播與反卷積網(wǎng)絡(luò)的區(qū)別在于對ReLU的處理方式。在反卷積網(wǎng)絡(luò)中使用ReLU處理梯度,只回傳梯度大于0的位置,而在普通反向傳播中只回傳feature map中大于0的位置,在導(dǎo)向反向傳播中結(jié)合這兩者,只回傳輸入和梯度都大于0的位置,這相當(dāng)于在普通反向傳播的基礎(chǔ)上增加了來自更高層的額外的指導(dǎo)信號(hào),這阻止了負(fù)梯度的反傳流動(dòng),梯度小于0的神經(jīng)元降低了正對應(yīng)更高層單元中我們想要可視化的區(qū)域的激活值。

使用導(dǎo)向反向傳播與反卷積網(wǎng)絡(luò)的效果對比

明顯使用導(dǎo)向反向傳播比反卷積網(wǎng)絡(luò)效果更好。
總結(jié):分析反卷積網(wǎng)絡(luò)的對各層feature map可視化的結(jié)果可知,CNN中會(huì)學(xué)到圖像中的一些主要特征,如狗頭,鼻子眼睛,紋理,輪廓等內(nèi)容。但對特征圖可視化有個(gè)明顯的不足,即無法可視化圖像中哪些區(qū)域?qū)ψR(shí)別具體某個(gè)類別的作用,這個(gè)主要是使用CAM系列的方法,下文將進(jìn)行講解。
二、卷積核可視化
上面我們介紹了特征圖可視化方法,對于特征圖可視化的方法(或者說原理)比較容易理解,即把feature map從特征空間通過反卷積網(wǎng)絡(luò)映射回像素空間。
那卷積核怎樣可視化呢,基于什么原理來可視化?卷積核的尺寸一般只有3x3, 5x5大小,如何可視化?下面將介紹這個(gè)兩個(gè)內(nèi)容。
卷積核可視化的原理
卷積核,在網(wǎng)絡(luò)中起到將圖像從像素空間映射到特征空間的作用,可認(rèn)為是一個(gè)映射函數(shù),像素空間中的值經(jīng)過卷積核后得到響應(yīng)值,在特征提取網(wǎng)絡(luò)中,基本都是使用最大池化來選擇最大響應(yīng)值進(jìn)入下一層繼續(xù)卷積,其余響應(yīng)值低的都進(jìn)入待定。也就是說,我們認(rèn)定只有響應(yīng)值大的才會(huì)對最終的識(shí)別任務(wù)起作用。
根據(jù)這個(gè)思路,給定一個(gè)已經(jīng)訓(xùn)練好的網(wǎng)絡(luò),現(xiàn)在想要可視化某一層的某一個(gè)卷積核,我們隨機(jī)初始化生成一張圖(指的是對像素值隨機(jī)取值,不是數(shù)據(jù)集中隨機(jī)選一張圖),然后經(jīng)過前向傳播到該層,我們希望這個(gè)隨機(jī)生成的圖在經(jīng)過這一層卷積核時(shí),它的響應(yīng)值能盡可能的大,換句話說,響應(yīng)值比較大的圖像是這個(gè)卷積核比較認(rèn)可的,是與識(shí)別任務(wù)更相關(guān)的。然后不斷調(diào)整圖像像素值,直到響應(yīng)值足夠大,我們就可以認(rèn)為此時(shí)的圖像就是這個(gè)卷積核所認(rèn)可的,從而達(dá)到可視化該卷積核的目的。
理解了它的原理后,它的實(shí)現(xiàn)方法就比較簡單了,設(shè)計(jì)一個(gè)損失函數(shù),即以經(jīng)過該層卷積核后的響應(yīng)值為目標(biāo)函數(shù),使用梯度上升,更新像素值,使響應(yīng)值最大。
實(shí)現(xiàn)代碼
Setup
import numpy as npimport tensorflow as tffrom tensorflow import keras# The dimensions of our input imageimg_width = 180img_height = 180# Our target layer: we will visualize the filters from this layer.# See `model.summary()` for list of layer names, if you want to change this.layer_name = "conv3_block4_out"Build a feature extraction model
# Build a ResNet50V2 model loaded with pre-trained ImageNet weightsmodel = keras.applications.ResNet50V2(weights="imagenet", include_top=False)# Set up a model that returns the activation values for our target layerlayer = model.get_layer(name=layer_name)feature_extractor = keras.Model(inputs=model.inputs, outputs=layer.output)Set up the gradient ascent process
loss函數(shù)取最大化指定卷積核的響應(yīng)值的平均值,為了避免邊界的影響,邊界的響應(yīng)值不計(jì)。
def compute_loss(input_image, filter_index):activation = feature_extractor(input_image)# We avoid border artifacts by only involving non-border pixels in the loss.filter_activation = activation[:, 2:-2, 2:-2, filter_index]return tf.reduce_mean(filter_activation)@tf.functiondef gradient_ascent_step(img, filter_index, learning_rate):with tf.GradientTape() as tape:tape.watch(img)loss = compute_loss(img, filter_index)# Compute gradients.grads = tape.gradient(loss, img)# Normalize gradients.grads = tf.math.l2_normalize(grads)img += learning_rate * gradsreturn loss, imgSet up the end-to-end filter visualization loop
def initialize_image():# We start from a gray image with some random noiseimg = tf.random.uniform((1, img_width, img_height, 3))# ResNet50V2 expects inputs in the range [-1, +1].# Here we scale our random inputs to [-0.125, +0.125]return (img - 0.5) * 0.25def visualize_filter(filter_index):# We run gradient ascent for 20 stepsiterations = 30learning_rate = 10.0img = initialize_image()for iteration in range(iterations):img = gradient_ascent_step(img, filter_index, learning_rate)# Decode the resulting input imageimg = deprocess_image(img[0].numpy())return loss, imgdef deprocess_image(img):# Normalize array: center on 0., ensure variance is 0.15img -= img.mean()img /= img.std() + 1e-5img *= 0.15# Center cropimg = img[25:-25, 25:-25, :]# Clip to [0, 1]img += 0.5img = np.clip(img, 0, 1)# Convert to RGB arrayimg *= 255img = np.clip(img, 0, 255).astype("uint8")????return?img
可視化效果圖
可視化vgg16卷積核





總結(jié):本部分內(nèi)容介紹了一種可視化卷積核的方法,即通過生成指定卷積核響應(yīng)值盡可能大的圖像來達(dá)到可視化卷積核的目的,使用的方法是梯度上升。
在不少論文的末尾都有可視化卷積核來分析提出的模型,該方法值得了解。
三、類可視化
前面我們介紹了兩種可視化方法,特征圖可視化和卷積核可視化,這兩種方法在論文中都比較常見,這兩種更多的是用于分析模型在某一層學(xué)習(xí)到的東西。在理解這兩種可視化方法,很容易理解圖像是如何經(jīng)過神經(jīng)網(wǎng)絡(luò)后得到識(shí)別分類。
然而,上次我在知乎看到一個(gè)通過yolov3做跌倒檢測,希望加上人臉識(shí)別進(jìn)行多任務(wù)學(xué)習(xí)從而提高準(zhǔn)確率的提問。這明顯提問者并不理解神經(jīng)網(wǎng)絡(luò)是如何對這種帶有時(shí)間維度的視頻進(jìn)行分析從而實(shí)現(xiàn)行為識(shí)別,從本質(zhì)上來講,這其實(shí)是不理解神經(jīng)網(wǎng)絡(luò)具體是如何識(shí)別一個(gè)類的。因此,當(dāng)在這一點(diǎn)上理解錯(cuò)誤后,所進(jìn)行的模型選擇、方案設(shè)計(jì)和改進(jìn),就都是不合理的。
(我在知乎上回答了這個(gè)問題正確的跌倒檢測思路應(yīng)該是什么,感興趣的可以去看看)
因此,在下面的文字中,我們將介紹一種對于不同的類,如何知道模型根據(jù)哪些信息來識(shí)別的方法,即對類進(jìn)行可視化,通俗一點(diǎn)來說就是熱力圖。這個(gè)方法主要是CAM系列,目前有CAM, Grad-CAM, Grad-CAM++。
CAM(Class Activation Map)

如上圖所示,CAM的結(jié)構(gòu)由CNN特征提取網(wǎng)絡(luò),全局平均池化GAP,全連接層和Softmax組成。
實(shí)現(xiàn)原理:一張圖片在經(jīng)過CNN特征提取網(wǎng)絡(luò)后得到feature maps, 再對每一個(gè)feature map進(jìn)行全局平均池化,變成一維向量,再經(jīng)過全連接層與softmax得到類的概率。
假定在GAP前是n個(gè)通道,則經(jīng)過GAP后得到的是一個(gè)長度為1x n的向量,假定類別數(shù)為m,則全連接層的權(quán)值為一個(gè)n x m的張量。(注:這里先忽視batch-size)
對于某一個(gè)類別C, 現(xiàn)在想要可視化這個(gè)模型對于識(shí)別類別C,原圖像的哪些區(qū)域起主要作用,換句話說模型是根據(jù)哪些信息得到該圖像就是類別C。
做法是取出全連接層中得到類別C的概率的那一維權(quán)值,用W表示,即上圖的下半部分。然后對GAP前的feature map進(jìn)行加權(quán)求和,由于此時(shí)feature map不是原圖像大小,在加權(quán)求和后還需要進(jìn)行上采樣,即可得到Class Activation Map。
用公式表示如下:(k表示通道,c表示類別,fk(x,y)表示feature map)

效果圖:

CAM的分析
CAM有個(gè)很致命的缺陷,它的結(jié)構(gòu)是由CNN + GAP + FC + Softmax組成,也就是說如果想要可視化某個(gè)現(xiàn)有的模型,但大部分現(xiàn)有的模型沒有GAP這個(gè)操作,此時(shí)想要可視化便需要修改原模型結(jié)構(gòu),并重新訓(xùn)練,相當(dāng)麻煩,且如果模型很大,在修改后重新訓(xùn)練不一定能達(dá)到原效果,可視化也就沒有意義了。
因此,針對這個(gè)缺陷,其后續(xù)有了改進(jìn)版Grad-CAM。
Grad-CAM
Grad-CAM的最大特點(diǎn)就是不再需要修改現(xiàn)有的模型結(jié)構(gòu)了,也不需要重新訓(xùn)練了,直接在原模型上即可可視化。
原理:同樣是處理CNN特征提取網(wǎng)絡(luò)的最后一層feature maps。Grad-CAM對于想要可視化的類別C,使最后輸出的類別C的概率值通過反向傳播到最后一層feature maps,得到類別C對該feature maps的每個(gè)像素的梯度值,對每個(gè)像素的梯度值取全局平均池化,即可得到對feature maps的加權(quán)系數(shù)alpha,論文中提到這樣獲取的加權(quán)系數(shù)跟CAM中的系數(shù)幾乎是等價(jià)的。接下來對特征圖加權(quán)求和,使用ReLU進(jìn)行修正,再進(jìn)行上采樣。
使用ReLU的原因是對于那些負(fù)值,可認(rèn)為與識(shí)別類別C無關(guān),這些負(fù)值可能是與其他類別有關(guān),而正值才是對識(shí)別C有正面影響的。
用公式表示如下:



Grad-CAM的結(jié)構(gòu)圖如上圖所示,對于Guided Backpropagation不了解的讀者,可看CNN可視化技術(shù)總結(jié)的第一篇文章。
效果圖如下:

Grad-CAM后續(xù)還有改進(jìn)版Grad-CAM++,其主要的改進(jìn)效果是定位更準(zhǔn)確,更適合同類多目標(biāo)的情況,所謂同類多目標(biāo)是指一張圖像中對于某個(gè)類出現(xiàn)多個(gè)目標(biāo),例如七八個(gè)人。
改進(jìn)方法是對加權(quán)系數(shù)的獲取提出新的方法,該方法復(fù)雜到不忍直視。因此這里就不介紹了,感興趣的讀者可以閱讀該論文:
CAM:?arxiv.org/pdf/1512.0415
Grad-CAM:?arxiv.org/pdf/1610.0239
Grad-CAM++:?arxiv.org/pdf/1710.1106
四、可視化工具與項(xiàng)目
前面介紹了可視化的三種方法--特征圖可視化,卷積核可視化,類可視化,這三種方法在很多提出新模型或新方法的論文中很常見,其主要作用是提高模型或者新方法的可信度,或者用來增加工作量,或者用來湊字?jǐn)?shù),還有一些作用是幫助理解模型針對某個(gè)具體任務(wù)是如何學(xué)習(xí),學(xué)到了哪些信息,哪些區(qū)域?qū)τ谧R(shí)別有影響等。
本文將介紹一些可視化的項(xiàng)目,主要有CNN解釋器,特征圖、卷積核、類可視化的一些代碼和項(xiàng)目,結(jié)構(gòu)可視化工具,網(wǎng)絡(luò)結(jié)構(gòu)手動(dòng)畫圖工具。
1. CNN-Explainer
這是一個(gè)中國博士發(fā)布的名叫CNN解釋器的在線交互可視化工具。主要對于那些初學(xué)深度學(xué)習(xí)的小白們 理解關(guān)于神經(jīng)網(wǎng)絡(luò)是如何工作很有幫助,如卷積過程,ReLU過程,平均池化過程,中間每一層的特征圖的樣子,都可以看到,相當(dāng)于給了一個(gè)顯微鏡,可以隨意對任意一層,任何一項(xiàng)操作的前后變化,觀察得清清楚楚。
顯示卷積的過程中前后特征圖的變化,中間的操作。

CNN是如何輸出預(yù)測的

還可以在線上傳圖片,看到一張圖片在經(jīng)過每一層的卷積,池化,激活后的變化,最后輸出預(yù)測結(jié)果。
項(xiàng)目鏈接:
https://github.com/poloclub/cnn-explainer
2. 一些可視化特征圖、卷積核、熱力圖的代碼。
可視化特征圖
https://github.com/waallf/Viusal-feature-map
可視化卷積核
https://keras.io/examples/vision/visualizing_what_convnets_learn/
https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html
Grad-CAM
https://github.com/ramprs/grad-cam
熱力圖
https://github.com/heuritech/convnets-keras
下面這個(gè)項(xiàng)目是同時(shí)包含特征圖可視化,卷積核可視化和熱力圖的一個(gè)鏈接:
https://github.com/raghakot/keras-vis
3. 結(jié)構(gòu)可視化工具
Netscope
用于可視化模型結(jié)構(gòu)的在線工具,僅支持caffe的prototxt文件可視化。需要自己寫prototxt格式的文件。

此圖來源于網(wǎng)絡(luò),侵刪
項(xiàng)目地址:
https://github.com/ethereon/netscope
ConvNetDraw
這個(gè)工具用兩個(gè)圖可直接說明,第一個(gè)是輸入,第二個(gè)是輸出


這兩個(gè)圖來源于網(wǎng)絡(luò),侵刪
項(xiàng)目地址:
https://github.com/cbovar/ConvNetDraw
PlotNeuralNet
這個(gè)稍微麻煩一點(diǎn)點(diǎn),效果圖如下:

項(xiàng)目地址:
https://github.com/HarisIqbal88/PlotNeuralNet
4. 網(wǎng)絡(luò)結(jié)構(gòu)手動(dòng)畫圖工具
很多新手會(huì)問的一個(gè)問題,論文中那些網(wǎng)絡(luò)結(jié)構(gòu)圖是如何畫的。
這里解答一下,我所了解的主要是用PPT, VISIO。當(dāng)然也可以使用上面那幾個(gè)。
再補(bǔ)充一個(gè)在線工具,NN-SVG

項(xiàng)目地址:http://alexlenail.me/NN-SVG/
總結(jié)
這四篇文章基本介紹完了目前CNN可視化的一些方法,即特征圖可視化,卷積核可視化和類可視化,總結(jié)了一些可視化工具與項(xiàng)目,當(dāng)然不免也有個(gè)別遺漏的,日后若有一些比較重大突破的一些可視化工具出來,將繼續(xù)補(bǔ)充。
對于可視化,其實(shí)還包括訓(xùn)練過程的可視化,如Loss值,精度等實(shí)時(shí)更新,這個(gè)比較簡單,就不在這個(gè)總結(jié)系列里說明了。
代碼與可視化圖的參考鏈接:
參考論文:
1.《Visualizing and Understanding Convolutional Networks》
2.《Striving for Simplicity:The All Convolutional Net》
3. Learning Deep Features for Discriminative Localization
4.Grad-CAM: Why did you say that?Visual Explanations from Deep Networks via Gradient-based Localization
5.Grad-cam++: Generalized gradient-based visual explanations for deep convolutional networks
推薦閱讀
2021-02-23

2021-02-17

2021-02-16


#?CV技術(shù)社群邀請函?#
備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)
即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實(shí)項(xiàng)目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動(dòng)交流~

