【基礎復習筆記】計算機視覺

目錄

一、計算機視覺基礎

1. 卷積神經網絡原理

2. 目標檢測系列?

二、算法與模型實現

1. 在PyTorch/TensorFlow中實現自定義損失函數或網絡層的步驟是什么?

2. 如何設計一個輕量級模型用于移動端的人臉識別?

3. 描述使用過的一種注意力機制(如SE Block、Transformer)及其應用場景。

4. 如何優化模型推理速度?是否使用過量化、剪枝或蒸餾技術?

5. 解釋數據增強在圖像任務中的作用,并舉出5種以上增強方法。

三、工程能力與編程

1. 用C++實現一個快速圖像邊緣檢測算法(如Sobel算子)。

2. Python中多線程與多進程的區別?如何解決GIL問題?

3. 如何部署一個深度學習模型到生產環境?

4. 使用Shell腳本批量處理圖像并生成特征文件的思路。

四、實際應用思路

1. 如果實際場景中模型準確率高但召回率低,如何調整策略?

2. 在跨攝像頭人員跟蹤任務中,如何處理遮擋和光線變化?

五、前沿技術與研究

1. 最近關注的計算機視覺論文是什么?其創新點對你有何啟發?

2. Vision Transformer與傳統CNN相比有哪些優勢和局限?

3. 如何將自監督學習應用到圖像搜索任務中?

4. 對比學習(Contrastive Learning)在無監督任務中的作用。

5. 對多模態模型(如圖像+文本)在工業界的應用有何看法?

6. Diffusion Model如何在CV中應用?

Diffusion Model在CV中的六大應用方向


一、計算機視覺基礎

1. 卷積神經網絡原理

? ? ? ? ① 解釋卷積神經網絡(CNN)的工作原理及其在圖像處理中的優勢。

  • 原理:通過卷積核滑動提取局部特征(如邊緣、紋理),池化層降低空間維度,全連接層分類。

  • 優勢:局部連接(減少參數量)、權值共享(平移不變性)、層次化特征提取(低級→高級語義)。
    示例:在ResNet中,殘差塊緩解梯度消失,使網絡更深。

補充:?

????????池化操作:降采樣 + 平滑 ? 降低計算、增強魯棒

????????激活函數(ReLU/Leaky ReLU、Swish 等)提升非線性表達

? ? ? ? ②?列舉常見的圖像分割方法,并比較它們的優缺點。

例如Mask R-CNN 和 U-Net

  • Mask R-CNN:基于Faster R-CNN,增加掩膜分支,適合實例分割(如區分不同物體個體)。

  • U-Net:編碼-解碼結構,跳躍連接保留細節,適合醫學圖像分割(小樣本高精度)。
    優化場景:U-Net在數據少時表現更好,Mask R-CNN更適合復雜場景多目標分割。

? ? ? ? ③?如何處理類別不均衡問題(如人臉識別中不同人種數據量差異)?

  • 數據層面:過采樣少數類(如SMOTE)、欠采樣多數類。

  • 損失函數:加權交叉熵(Weighted Cross-Entropy)、Focal Loss(抑制易分類樣本權重)。
    示例:在人臉識別中,對罕見人種數據增強(旋轉、光照變換)并提高其損失權重。

? ? ? ? ④?什么是非極大值抑制(NMS)?如何優化其計算效率?

  • NMS作用:去除冗余檢測框(如YOLO中同一目標多個預測框)。

  • 優化方法:Soft-NMS(加權降低重疊框分數)、GPU并行加速、IoU閾值動態調整。

示例代碼:

def nms(boxes, scores, threshold):"""非極大值抑制(Non-Maximum Suppression, NMS)Args:boxes (np.array): 邊界框坐標,形狀為 [N, 4](格式通常為x1,y1,x2,y2)scores (np.array): 邊界框對應的置信度得分,形狀為 [N]threshold (float): IoU閾值,用于判斷是否抑制重疊框Returns:keep (list): 保留的邊界框索引列表"""keep = []# 按置信度得分從高到低排序,獲得索引(argsort默認升序,[::-1]反轉后為降序)order = scores.argsort()[::-1]while order.size > 0:# 取當前置信度最高的邊界框索引i = order[0]keep.append(i)# 計算當前框與剩余所有框的IoU(注意:bbox_iou需要提前實現)ious = bbox_iou(boxes[i], boxes[order[1:]])  # 比較當前框 vs 后續所有框# 找到IoU小于等于閾值的框索引(保留這些框,抑制重疊框)# np.where返回滿足條件的索引,[0]是因為返回的是元組格式idx = np.where(ious <= threshold)[0]# 更新待處理框列表:# 1. order[1:]跳過當前已處理的框# 2. idx+1 是因為order[1:]的索引比原order小1,需映射回原order的索引位置order = order[idx + 1]return keep

? ? ? ? ⑤?如何評估目標檢測模型的性能?mAP的計算邏輯是什么?

  • 性能評估:精確率、召回率、F1分數、交并比、mAP

  • mAP的計算邏輯:先計算每個類別的AP(Average Precision),再對所有類別的AP取平均

  1. 精確率(Precision)

    • 所有預測為正樣本的檢測框中,實際為正樣本的比例。

    • 意義:衡量模型預測的“準確性”(避免誤檢)。

  2. 召回率(Recall)

    • 所有真實正樣本中,被正確檢測出的比例。

    • 意義:衡量模型檢測的“全面性”(避免漏檢)。

  3. F1分數(F1-Score)

    • 精確率和召回率的調和平均值,平衡兩者的重要性。

  4. 交并比(IoU, Intersection over Union)

    • 預測框與真實框的重疊面積占兩者并集面積的比例。

    • 作用:判斷檢測框是否有效(通常閾值設為0.5)。

  5. 平均精度均值(mAP, mean Average Precision)

    • 核心指標:綜合所有類別和不同召回率下的平均精度,是目標檢測領域的“金標準”。

? ? ? ? ⑥?FCN、U-Net、DeepLabV3+ 的核心思想差異?

核心思想差異

  • FCN:全卷積 + 上采樣 → 粗分割

  • U-Net:編碼-解碼 + 跳躍連接 → 更細節保留

  • DeepLabV3+:空洞卷積(Atrous) + ASPP → 大感受野

2. 目標檢測系列?

? ? ? ? ① Faster R-CNN、YOLO、SSD 各自的網絡結構和優缺點?

特性Faster R-CNNSSDYOLOv5/YOLOv8
檢測流程two-stage(提議生成 + 分類回歸)one-stage,多尺度特征圖one-stage,端到端
精度高,但速度較慢平衡更快,適合實時
小目標表現較好依賴多尺度設計anchor-free 版本效果提升

? ? ? ? ?② 什么是自監督學習?

????????自監督學習(Self-Supervised Learning,簡稱 SSL)是一種介于有監督學習和無監督學習之間的學習范式。它的核心思想是在“無標簽”數據上自動構造“偽標簽”(pretext task),讓模型先通過解決這些輔助任務來學習數據的內在表示(representation),再將學到的表示用于下游的監督任務(如分類、檢測、分割等),通常能顯著提升數據利用效率,減少對人工標注的依賴。

核心思路

  • 構造預訓練任務(Pretext Task)

    • 在沒有人工標注的數據上,自動生成監督信號。例如:

      • 圖像旋轉預測:隨機將一張圖像旋轉 0°/90°/180°/270°,讓網絡預測旋轉角度。

      • 圖像拼圖(Jigsaw Puzzle):將圖像切成若干塊打亂順序,讓網絡恢復原始拼圖布局。

      • 像素填充(Inpainting):隨機遮擋圖像一部分,讓網絡去重建被遮擋區域。

  • 學習通用特征

    • 通過完成預訓練任務,網絡在淺層到深層蒸餾出了圖像的紋理、邊緣、結構、語義等多層次信息。

    • 由于預訓練任務本身不依賴人工標簽,海量“無標簽”圖像都可以拿來用。

  • 遷移到下游任務

    • 把預訓練好的網絡作為“特征提取器”或初始化權重,再用較少量的有標簽數據進行微調(fine-tuning)。

    • 實驗表明,這種方式在數據稀缺或標簽昂貴的場景下,往往能超越從頭訓練或僅用無監督預訓練的方法。

典型方法

  1. 對比學習(Contrastive Learning)

    • SimCLR:對同一張圖像做兩種不同的數據增強(crop、color-jitter、Gaussian blur 等),生成一對“正樣本”;其它圖像增強結果構成“負樣本”。通過 InfoNCE 損失最大化正樣本特征相似度、最小化負樣本相似度。

    • MoCo:維護一個動態更新的“負樣本隊列”(memory bank),并使用動量更新(momentum update)的方式來穩定負樣本表示。

  2. 生成式方法(Generative Pretext)

    • Context Encoder:遮擋圖像中心塊,讓網絡生成該區域的像素;等同于一種條件生成對抗網絡(cGAN)。

    • Auto-Encoder / Masked Autoencoder (MAE):隨機遮掉圖像的部分 Patch,模型通過 Transformer 或 Encoder-Decoder 架構去重建被遮掉的內容。

  3. 上下文預測(Context Prediction)

    • Jigsaw Puzzle:將圖像網格切塊并打亂順序,網絡要預測每塊在原圖中的位置。

有監督學習無監督學習自監督學習
數據需求大量帶標簽數據僅無標簽數據僅無標簽數據(自動生成偽標簽)
學習目標直接優化下游任務(如分類)學習數據分布(如聚類、降維)先解決預訓練任務,再遷移下游任務
應用優勢精度高,但標簽昂貴可用性廣,但表示質量有限平衡兩者:利用海量無標簽,學到更有辨識力的表示

二、算法與模型實現

1. 在PyTorch/TensorFlow中實現自定義損失函數或網絡層的步驟是什么?

? ? ? ? ①?PyTorch自定義損失函數

繼承nn.Module,重寫forward方法。

示例代碼:

class DiceLoss(nn.Module):def __init__(self):super().__init__()def forward(self, pred, target):smooth = 1e-6pred = pred.view(-1)target = target.view(-1)intersection = (pred * target).sum()return 1 - (2*intersection + smooth)/(pred.sum() + target.sum() + smooth)

?????????②?TensorFlow自定義損失函數

方法1:函數式定義(簡單場景)

適用于無復雜邏輯的損失函數,直接使用TensorFlow運算。

import tensorflow as tfdef custom_mse_loss(y_true, y_pred):"""自定義均方誤差損失,對高誤差樣本加權"""error = y_true - y_pred# 對誤差絕對值大于1的樣本賦予2倍權重weights = tf.where(tf.abs(error) > 1.0, 2.0, 1.0)return tf.reduce_mean(weights * tf.square(error))# 使用示例
model.compile(optimizer='adam', loss=custom_mse_loss)

方法2:繼承tf.keras.losses.Loss類(推薦)

需處理樣本加權、多任務損失等復雜場景時使用。

class FocalLoss(tf.keras.losses.Loss):def __init__(self, alpha=0.25, gamma=2.0, name="focal_loss"):super().__init__(name=name)self.alpha = alphaself.gamma = gammadef call(self, y_true, y_pred):# 計算交叉熵ce = tf.nn.sigmoid_cross_entropy_with_logits(labels=y_true, logits=y_pred)# 計算概率值p = tf.sigmoid(y_pred)# 計算調制因子modulating_factor = (1.0 - p)**self.gamma * y_true + p**self.gamma * (1.0 - y_true)# 組合損失loss = self.alpha * modulating_factor * cereturn tf.reduce_mean(loss)# 使用示例
model.compile(optimizer='adam', loss=FocalLoss(alpha=0.25, gamma=2))

2. 如何設計一個輕量級模型用于移動端的人臉識別?

3. 描述使用過的一種注意力機制(如SE Block、Transformer)及其應用場景。

4. 如何優化模型推理速度?是否使用過量化、剪枝或蒸餾技術?

①?優化模型推理速度的通用方法

優化維度具體方法適用場景
硬件加速使用GPU/TPU/NPU等支持并行計算的硬件,或專用加速芯片(如TensorRT、CoreML)高吞吐量場景(如服務器、邊緣設備)
軟件優化算子融合(Kernel Fusion)、內存復用、多線程/異步計算框架級優化(如ONNX Runtime優化)
模型壓縮量化(Quantization)、剪枝(Pruning)、蒸餾(Distillation)移動端/嵌入式設備部署
結構輕量化使用MobileNet、EfficientNet等輕量級網絡,或設計深度可分離卷積(Depthwise Conv)實時性要求高的任務(如視頻流分析)
動態推理根據輸入復雜度動態調整計算路徑(如Early Exit、自適應計算時間)輸入差異大的任務(如OCR多樣化文本)

②?量化、剪枝、蒸餾技術對比

  • 量化

????????原理:將模型參數從高精度轉換為低精度,減少存儲和計算開銷。

????????優勢

????????????????顯著減少模型體積(INT8模型比FP32小4倍)。

????????????????利用硬件加速(如GPU的Tensor Core支持INT8計算)。

????????局限性

????????????????低精度可能導致數值溢出/舍入誤差(尤其對敏感任務如目標檢測)。

????????????????部分操作(如自定義層)需手動適配量化邏輯。

????????適用場景:移動端部署、邊緣計算(如手機人臉識別)。

  • 剪枝

????????原理:移除模型中冗余的權重或神經元(如接近零的權重)

????????優勢

????????????????直接減少計算量(FLOPs降低30-50%)。

????????????????可與量化/蒸餾結合使用(疊加優化效果)。

????????局限性

????????????????需迭代訓練(剪枝→微調→評估),時間成本高。

????????????????過度剪枝會導致模型崩潰(需謹慎選擇剪枝率)。

????????適用場景:計算資源受限的嵌入式設備(如無人機目標跟蹤)。

  • 蒸餾?

????????原理:用大模型(教師模型)指導小模型(學生模型)學習,傳遞“暗知識”。

????????優勢

????????????????小模型可接近大模型的精度(如DistilBERT比BERT小40%,保留95%性能)。

????????????????支持跨模態/跨任務知識遷移(如用CNN教師模型訓練Transformer學生模型)。

????????局限性

????????????????依賴教師模型的質量和兼容性。

????????????????訓練復雜度高(需同時處理教師和學生模型)。

????????適用場景:需要輕量級高精度模型的場景(如醫療影像分析)。

5. 解釋數據增強在圖像任務中的作用,并舉出5種以上增強方法。

其核心作用在于通過人為擴展訓練數據的多樣性,提升模型的泛化能力和魯棒性、緩解過擬合、均衡數據分布 以及 降低標注成本。

⑴?幾何變換類

????????隨機旋轉(Rotation):將圖像旋轉一定角度(如±30°),模擬不同拍攝視角。

????????水平/垂直翻轉(Flip):沿水平或垂直軸翻轉圖像,增強對稱性物體的識別能力(如貓狗分類)。

????????隨機裁剪(Random Crop):從圖像中隨機截取局部區域,強制模型關注局部特征。常用于目標檢測(避免依賴物體位置)。

⑵?顏色變換類

????????亮度/對比度調整(Brightness/Contrast):模擬不同光照條件,增強模型對明暗變化的適應能力。

????????色彩抖動(Color Jitter):隨機調整圖像的飽和度、色相(如HSV空間變換),應對攝像頭色差。

⑶?噪聲與遮擋類

????????高斯噪聲(Gaussian Noise):添加隨機噪聲,提升模型對低質量輸入(如傳感器噪聲)的魯棒性。

????????隨機擦除(Random Erasing):隨機遮擋圖像區域(如矩形塊),迫使模型關注整體而非局部特征。

⑷?混合圖像類

????????MixUp:混合兩張圖像及其標簽,生成線性插值樣本。適用于分類任務。

????????CutMix:將一張圖像的部分區域替換為另一張圖像的對應區域,同時混合標簽。提升模型對局部遮擋的魯棒性。

⑸?高級增強方法

????????風格遷移(Style Transfer):保留圖像內容但改變風格(如將照片轉為油畫),增加域多樣性。

????????GAN生成數據:利用生成對抗網絡(GAN)合成逼真圖像,尤其適用于數據稀缺場景(如罕見疾病CT影像)。

增強策略選擇:?

  1. 任務相關性

    • 分類任務:側重幾何變換、顏色抖動。

    • 目標檢測:避免破壞邊界框的增強(如過度裁剪),優先平移、縮放。

    • 語義分割:需同步增強圖像和掩膜(如使用相同的隨機參數)。

  2. 數據特性

    • 自然圖像:適合顏色抖動、隨機翻轉。

    • 醫學影像:謹慎使用幾何變換(需符合解剖結構),優先彈性形變、對比度調整。

三、工程能力與編程

1. 用C++實現一個快速圖像邊緣檢測算法(如Sobel算子)。

#include <opencv2/opencv.hpp>
using namespace cv;Mat sobel_edge(Mat& src) {Mat grad_x, grad_y, abs_grad_x, abs_grad_y, dst;Sobel(src, grad_x, CV_16S, 1, 0, 3);  // X方向梯度Sobel(src, grad_y, CV_16S, 0, 1, 3);  // Y方向梯度convertScaleAbs(grad_x, abs_grad_x);  // 轉8位無符號convertScaleAbs(grad_y, abs_grad_y);addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, dst);  // 合并梯度return dst;
}

2. Python中多線程與多進程的區別?如何解決GIL問題?

  • 多線程:共享內存,適合I/O密集型任務(如下載),但受GIL限制。

  • 多進程:獨立內存,適合CPU密集型任務(如并行計算)。
    解決GIL:使用multiprocessing模塊、C擴展(如Cython)、異步編程(asyncio)。

3. 如何部署一個深度學習模型到生產環境?

①?模型準備與優化:格式轉換?量化?剪枝?

②?部署方式選擇:云服務API?邊緣設備部署?

③?容器化與編排:Docker封裝

④?性能優化:硬件加速、批處理

4. 使用Shell腳本批量處理圖像并生成特征文件的思路。

  1. 輸入輸出定義

    • 輸入:指定圖像目錄(如./images/*.jpg),支持常見格式(jpg/png等)。

    • 輸出:為每張圖像生成對應的特征文件(如image1.jpg?→?features/image1_feature.txt)。

  2. 核心步驟

    • 遍歷圖像文件:使用Shell循環處理每個文件。

    • 特征提取:調用外部工具或腳本(如Python/OpenCV)計算特征。

    • 結果保存:將特征寫入文件,可按需選擇格式(文本/CSV/JSON)。

    • 并行加速:利用xargsGNU Parallel加速大批量處理。

四、實際應用思路

1. 如果實際場景中模型準確率高但召回率低,如何調整策略?

①?調整分類閾值

  • 操作:降低分類閾值,使模型更傾向于預測正類。

  • 影響:提高召回率,但可能降低準確率,需通過ROC曲線或PR曲線找到最佳平衡點。

②?處理類別不平衡

  • 過采樣:使用SMOTE、ADASYN生成合成正類樣本。
from imblearn.over_sampling import SMOTE
smote = SMOTE()
X_resampled, y_resampled = smote.fit_resample(X_train, y_train)
  • 調整類別權重:在訓練時增加正類樣本的權重。
model = LogisticRegression(class_weight={0: 1, 1: 10})  # 正類權重設為10倍

③?優化損失函數

  • 使用Focal Loss:抑制易分類樣本的損失,聚焦難樣本。

④?模型結構改進

  • 復雜模型:使用更深的神經網絡或集成模型(如XGBoost、LightGBM)。

  • 正則化:防止過擬合,提升泛化能力。

⑤?錯誤分析與迭代

  • 假陰性分析:統計漏檢樣本的特征分布(如時間、地理位置)。

  • 針對性增強數據:對高頻漏檢場景的數據進行過采樣。

⑥?集成學習

  • Bagging/Boosting:結合多個弱分類器提升魯棒性。
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100, class_weight='balanced')
場景推薦策略
閾值保守導致漏檢調整分類閾值 → 后處理規則
數據高度不平衡過采樣/類別權重 → Focal Loss
模型欠擬合正類特征復雜模型 → 特征工程 → 集成學習
業務場景強需求(如醫療診斷)規則引擎 → 人工復核機制

2. 在跨攝像頭人員跟蹤任務中,如何處理遮擋和光線變化?

遮擋問題應對策略

①?多目標跟蹤算法增強

  • 運動模型預測:使用卡爾曼濾波或粒子濾波預測目標軌跡,在遮擋期間維持位置估計。
  • 數據關聯優化:采用匈牙利算法或級聯匹配(如DeepSORT),結合外觀和運動特征減少ID切換。

②?部分遮擋下的特征提取

  • 局部特征聚焦:提取身體部位特征(如頭肩、衣著紋理),而非依賴全身信息。

  • 遮擋魯棒的Re-ID模型:訓練時添加隨機遮擋增強,提升模型對局部特征的敏感性。

③?時間上下文融合

  • 軌跡一致性校驗:結合歷史軌跡預測當前位置,與當前檢測結果進行時空一致性匹配。

  • 多幀特征聚合:滑動窗口內平均化目標特征,減少單幀誤差影響。

光線變化問題應對策略

①?光照不變性預處理

  • 自適應直方圖均衡化(CLAHE):增強局部對比度,緩解過曝/欠曝。
  • 色彩空間轉換:使用對光照變化不敏感的Lab色彩空間的L通道或HSV空間的V通道。

②?光照魯棒的特征表示

  • 歸一化方法

    • 跨攝像頭歸一化(CCN):對齊不同攝像頭的顏色分布。

    • 實例歸一化(IN):消除光照差異,保留身份語義。

  • 對抗訓練:在Re-ID模型中引入光照變換的對抗樣本,增強泛化性。

③?多模態數據融合

  • 紅外/可見光互補:在低光照場景下啟用紅外攝像頭數據。

  • 時間信息利用:白天/夜間模式切換時,結合時間段元數據調整特征權重。

五、前沿技術與研究

1. 最近關注的計算機視覺論文是什么?其創新點對你有何啟發?

2. Vision Transformer與傳統CNN相比有哪些優勢和局限?

?①?Vision Transformer的優勢

  • 全局依賴建模能力

????????自注意力機制:ViT通過自注意力捕捉圖像中任意兩個區域的關系,克服了CNN局部感受野的限制,尤其適合需要全局理解的任務(如場景分類、圖像生成)。

????????示例:在醫學圖像分割中,ViT能有效關聯病灶區域與周圍組織的全局上下文。

  • 可擴展性與模型容量

????????堆疊Transformer層:通過增加層數或隱藏維度,ViT可輕松擴展模型規模(如ViT-Huge擁有632M參數),而無需復雜結構調整。

????????性能對比:在JFT-300M數據集上,ViT-L/16的Top-1準確率比ResNet-152高3.5%。

  • 對大數據的適應性

????????數據驅動優化:ViT在超大規模數據(如ImageNet-21k)上訓練時,性能顯著超越CNN,因其依賴數據而非先驗假設學習特征。

????????案例:谷歌的ViT在JFT-300M預訓練后,ImageNet準確率達88.55%,刷新當時記錄。

  • 靈活的任務適配性

????????多模態支持:ViT可無縫處理圖像、文本、點云等多模態輸入(如CLIP模型),而CNN需額外設計融合模塊。

②?Vision Transformer的局限性

  • 計算資源需求高
  • 小數據場景表現欠佳
  • 位置編碼的敏感性
  • 實時性挑戰

③?傳統CNN的核心優勢

  • 計算效率與硬件友好性

????????卷積優化:利用GPU的并行計算和cuDNN加速,ResNet-50處理224x224圖像可達1000+ FPS(TensorRT優化后)。

  • 小數據魯棒性

????????歸納偏置優勢:CNN的局部連接和權值共享減少參數冗余,CIFAR-10上僅需5萬樣本即可達到90%+準確率。

  • 成熟的工程生態

????????部署支持:TensorRT、OpenVINO等工具鏈對CNN優化成熟,適合嵌入式設備(如無人機、監控攝像頭)。

場景推薦架構理由
大規模數據(>100萬樣本)Vision Transformer全局建模能力 + 大數據潛力充分釋放
實時邊緣設備(如手機)輕量CNN(MobileNet)低延遲 + 高能效比
小樣本醫療圖像分析CNN + 預訓練利用ImageNet預訓練的歸納偏置,避免過擬合
跨模態任務(圖文檢索)ViT + 多模態擴展統一架構處理異構數據,簡化特征對齊

3. 如何將自監督學習應用到圖像搜索任務中?

4. 對比學習(Contrastive Learning)在無監督任務中的作用。

????????對比學習(Contrastive Learning)是自監督學習的一種核心方法,其核心思想是通過讓模型區分相似(正樣本)與不相似(負樣本)的數據對,從而學習到數據的高效表征。

對比學習的核心作用:

?學習數據的內在結構

  • 無需標簽:通過數據本身的相似性(如一張圖像的不同增強視圖)構建正負樣本對,避免依賴人工標注。

  • 特征解耦:迫使模型關注數據的關鍵語義特征(如物體形狀、紋理),而非無關噪聲。

②?提升表征的判別性

  • 拉近正樣本,推開負樣本:在特征空間中,相似樣本的特征向量距離更近,不相似樣本距離更遠。

③?支持下游任務泛化

  • 預訓練通用特征:學到的特征可直接用于分類、檢測、分割等任務,減少對下游標注數據的需求。

  • 遷移性強:在ImageNet上預訓練的對比模型,遷移到醫學圖像分類任務時仍能保持高精度。

對比學習在無監督任務中的典型應用

1. 圖像分類與檢索

  • 預訓練模型:SimCLR、MoCo在ImageNet上預訓練的ResNet,遷移到CIFAR-10分類任務時準確率提升5-10%。

  • 特征檢索:在無標簽商品庫中,基于對比學習特征實現相似商品搜索(Recall@1 > 70%)。

2. 聚類與異常檢測

  • 無監督聚類:對比學習特征可直接用于K-means聚類(如STL-10數據集NMI達0.81)。

  • 工業缺陷檢測:正常樣本作為正類,隨機噪聲或增強樣本作為負類,檢測異常區域。

3. 表征可視化

  • t-SNE降維:對比學習特征在低維空間中呈現清晰的類別聚簇(如MNIST數字分類)。

5. 對多模態模型(如圖像+文本)在工業界的應用有何看法?

核心價值在于通過數據融合釋放業務潛能

① 提升模型魯棒性

  • 互補信息融合:文本可解釋圖像中的模糊部分(如“模糊照片中的車型可通過描述‘SUV 黑色’輔助識別”)。

  • 抗噪聲能力:單一模態噪聲(如圖像模糊)可通過另一模態(文本)補償。

②?增強使用體驗

  • 自然交互:用戶可自由組合輸入方式(如“用圖片搜索+語音提問”)。

  • 精準推薦:電商平臺通過分析用戶瀏覽的圖片與評論,推薦更相關商品(點擊率提升20%)。

③?降低標注成本

  • 跨模態弱監督:利用圖文配對數據(如商品圖+描述)自動生成標簽,減少人工標注依賴。

6. Diffusion Model如何在CV中應用?

Diffusion Model通過兩個過程學習數據分布:

  1. 前向過程(加噪):逐步向數據添加高斯噪聲,直到數據變為純噪聲。

  2. 反向過程(去噪):訓練神經網絡逐步預測并去除噪聲,恢復原始數據。

Diffusion Model在CV中的六大應用方向

①?高質量圖像生成

  • 文本到圖像生成:如Stable Diffusion、DALL·E 2,根據文本提示生成高分辨率圖像。

  • 場景:藝術創作、廣告設計、游戲資產生成。

②?圖像修復與編輯

  • 局部修復(Inpainting):填充圖像缺失區域(如去除水印、修復老照片)。

  • 風格遷移:將圖像轉換為指定風格(如油畫、像素風)。
    工具:Adobe Firefly、Runway ML。

③?圖像超分辨率重建

  • 任務:從低分辨率(LR)圖像生成高分辨率(HR)圖像。

  • 模型:SR3(Super-Resolution via Repeated Refinement),通過擴散過程逐步提升細節。
    優勢:相比GAN,減少偽影,保持紋理真實性。

④?醫學影像分析

  • 數據增強:生成合成醫學影像(如MRI、CT)以擴充小樣本數據集。

  • 病灶生成:模擬罕見病變,輔助醫生培訓與模型測試。
    案例:生成肺結節CT圖像,提升肺癌檢測模型魯棒性。

⑤?視頻生成與預測

  • 視頻生成:生成連續幀(如Phenaki生成長視頻)。

  • 視頻插幀:在低幀率視頻中插入中間幀,提升流暢度。
    挑戰:時序一致性、計算成本高。

⑥?多模態融合

  • 圖文互生成:如Imagen將文本描述轉換為圖像,或CLIP引導圖像生成。

  • 3D生成:從單張圖像生成3D模型(如DreamFusion利用擴散模型優化NeRF)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79633.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79633.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79633.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django 項目的 models 目錄中,__init__.py 文件的作用

在 Django 項目的models/init.py文件中&#xff0c;這些導入語句的主要作用是將各個模型類從不同的模塊中導入到models包的命名空間中。這樣做有以下幾個目的&#xff1a; 簡化導入路徑 當你需要在項目的其他地方使用這些模型時&#xff0c;可以直接從models包導入&#xff0c…

實現一個簡單的 TCP 客戶端/服務器

注意&#xff1a; TCP 三次握手建立連接建立連接后&#xff0c;TCP 提供全雙工的通信服務&#xff0c;也就是在同一個連接中&#xff0c;通信雙方 可以在同一時刻同時寫數據&#xff0c;相對的概念叫做半雙工&#xff0c;同一個連接的同一時刻&#xff0c;只能由一方來寫數據T…

專業課復習筆記 9

前言 學爽了。 為什么哈希函數的空間復雜度是 O(N) 我們實際使用的電話號碼的數目是 N &#xff0c;理論上至多有 R 個電話號碼&#xff0c;桶數組 bucket array 的容量是 M &#xff0c;滿足條件 N < M < < R N<M<<R N<M<<R&#xff0c;因為動…

【論文閱讀27】-TCN–BiLSTM -滑坡預測

《A Landslide Displacement Prediction Model Based on the ICEEMDAN Method and the TCN–BiLSTM Combined Neural Network》 發表于 Water 期刊&#xff0c;2023年。 &#x1f4cc; 主要內容概述 這篇論文提出了一種滑坡位移預測模型&#xff0c;結合了&#xff1a; ICEEM…

8b10b編解碼仿真

一、基本概念 8B/10B編碼&#xff08;8-bit to 10-bit encoding&#xff09;是一種將8位數據&#xff08;包括數據字符和控制字符&#xff09;轉換為10位符號&#xff08;Symbol&#xff09;的編碼技術&#xff0c;由IBM工程師Al Widmer和Peter Franaszek于1983年提出。其核心思…

23龍信服務器wp

中規中矩的一套服務器&#xff0c;比較簡單 1.服務器系統的版本號是___。&#xff08;格式&#xff1a;1.1.1111&#xff09; 2.網站數據庫的版本號是___。&#xff08;格式&#xff1a;1.1.1111&#xff09; 3.寶塔面板的“超時”時間是___分鐘。&#xff08;格式&#xff1a;…

Redis 存儲原理與數據模型(三)

目錄 存儲結構 存儲轉換 數據組織 hash 沖突 負載因子 擴容 縮容 漸進式rehash Redis 線程模型 單線程命令處理機制 為什么Redis 命令的單線程快 機制 優化 柔性數組 Redis reactor_io 多線程網絡模型 存儲結構 key-value鍵值對通過 hash 的方式存儲到數組中value 主要…

langchain4j中使用milvus向量數據庫做RAG增加索引

安裝milvus向量數據庫 官方網址 https://milvus.io/zh 使用docker安裝milvus mkdir -p /data/docker/milvus cd /data/docker/milvus wget https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh#在docker中啟動milvus sh standalone_emb…

UE5.3 C++ 房屋管理系統(一)

一.框架思路 1.如何加載。房屋管理&#xff0c;既然管理。就存在動態加載&#xff0c;和靜態加載的考慮。如果是靜態加載&#xff0c;就是在編輯器情況下放置&#xff0c;但這樣方便了擺放&#xff0c;但管理就需要在開始是將所有的房屋找到加到管理者里。你無法決定拖入場景的…

4.1【LLaMA-Factory 實戰】醫療領域大模型:從數據到部署的全流程實踐

【LLaMA-Factory實戰】醫療領域大模型&#xff1a;從數據到部署的全流程實踐 一、引言 在醫療AI領域&#xff0c;構建專業的疾病診斷助手需要解決數據稀缺、知識專業性強、安全合規等多重挑戰。本文基于LLaMA-Factory框架&#xff0c;詳細介紹如何從0到1打造一個垂直領域的醫…

解決LangChain4j報錯HTTP/1.1 header parser received no bytes

問題描述 當使用langchain4j-open-ai調用自己部署的大模型服務時報錯&#xff1a; public static void main(String[] args) {OpenAiChatModel model OpenAiChatModel.builder().apiKey("none").modelName("qwen2.5-instruct").baseUrl("http://19…

阿里云codeup以及本地gitclone+http

cmd命令行亂碼問題、解決 chcp 65001 git代碼提交 git add . git commit -m init git push origin master

2025.05.07-淘天算法崗-第二題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ 02. 完美拼圖挑戰 問題描述 A先生是一位拼圖愛好者,他有兩種形狀的拼圖塊: a a a

Spring Boot中Redis序列化配置詳解

精心整理了最新的面試資料和簡歷模板&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 引言 在使用Spring Boot集成Redis時&#xff0c;序列化方式的選擇直接影響數據存儲的效率和系統兼容性。默認的JDK序列化存在可讀性差、存儲空間大等問題&am…

紫禁城多語言海外投資理財返利源碼帶前端uniapp純工程文件

測試環境&#xff1a;Linux系統CentOS7.6、寶塔、PHP7.2、MySQL5.6&#xff0c;根目錄public&#xff0c;偽靜態thinkphp&#xff0c;開啟ssl證書 語言&#xff1a;中文簡體、英文、越南語、馬來語、日語、巴西語、印尼語、泰語 前端是uniapp的源碼&#xff0c;我已經把nmp給你…

搭建大數據學習的平臺

一、基礎環境準備 1. 硬件配置 物理機&#xff1a;建議 16GB 內存以上&#xff0c;500GB 硬盤&#xff0c;多核 CPU虛擬機&#xff1a;至少 3 臺&#xff08;1 主 2 從&#xff09;&#xff0c;每臺 4GB 內存&#xff0c;50GB 硬盤 2. 操作系統 Ubuntu 20.04 LTS 或 CentOS…

Linux 軟硬連接詳解

目錄 一、軟鏈接&#xff08;Symbolic Link&#xff09; ?定義與特性 ?實現方法?使用 ln -s 命令&#xff1a; 二、硬鏈接&#xff08;Hard Link&#xff09; 1、是什么 2、工作機制 3、實現方式 一、軟鏈接&#xff08;Symbolic Link&#xff09; ?定義與特性 定義…

每日c/c++題 備戰藍橋杯(洛谷P1115 最大子段和)

洛谷P1115 最大子段和 題解 題目描述 最大子段和是一道經典的動態規劃問題。題目要求&#xff1a;給定一個包含n個整數的序列&#xff0c;找出其中和最大的連續子序列&#xff0c;并輸出該最大和。若所有數均為負數&#xff0c;則取最大的那個數。 輸入格式&#xff1a; 第…

前端取經路——框架修行:React與Vue的雙修之路

大家好,我是老十三,一名前端開發工程師。在前端的江湖中,React與Vue如同兩大武林門派,各有千秋。今天,我將帶你進入這兩大框架的奧秘世界,共同探索組件生命周期、狀態管理、性能優化等核心難題的解決之道。無論你是哪派弟子,掌握雙修之術,才能在前端之路上游刃有余。準…

PyTorch API 1 - 概述、數學運算、nn、實用工具、函數、張量

文章目錄 torch張量創建操作索引、切片、連接與變異操作 加速器生成器隨機采樣原地隨機采樣準隨機采樣 序列化并行計算局部禁用梯度計算數學運算常量逐點運算歸約操作比較運算頻譜操作其他操作BLAS 和 LAPACK 運算遍歷操作遍歷操作遍歷操作遍歷操作遍歷操作遍歷操作遍歷操作遍歷…