采集wordpress文章上传,外贸谷歌seo,国外服务器租用多少钱一年,软文代写平台有哪些Sub-Image Anomaly Detection with Deep Pyramid Correspondences 1、Background
利用深度预训练特征的最近邻#xff08; kNN #xff09;方法在应用于整个图像时表现出非常强的异常检测性能。kNN 方法的一个局限性是缺乏描述图像中异常位置的分割图。
为了解决这一问题 kNN 方法在应用于整个图像时表现出非常强的异常检测性能。kNN 方法的一个局限性是缺乏描述图像中异常位置的分割图。
为了解决这一问题提出了语义金字塔异常检测SPADE方法 使用基于多分辨率特征金字塔的对应关系。
SPADE 方法包括的 3 个阶段
1使用预训练的深度神经网络例如 ImageNet 训练的 ResNet提取图像特征
2最近的 K 个正常图像到目标的最近邻检索
3在目标和正常图像之间找到密集的像素级对应关系在检索到的正常图像中没有近匹配的目标图像区域被标记为异常。
2、Method
SPADE 方法主要由 3 个部分组成
图像特征提取 使用一个在大量图像上预训练过的深度神经网络例如ResNet来提取图像的特征。这些特征能够捕捉图像的重要信息比如形状、纹理等。 K最近邻正常图像检索 使用欧几里得距离等度量方法来计算目标图像与数据库中每张正常图像之间的距离。从数据库中检索与目标图像特征向量距离最近的 K 张图像。这些图像被认为是与目标图像最相似的正常图像。 具有深度特征金字塔对应的像素对齐 在目标图像和找到的正常图像之间建立像素级的对应关系。这意味着算法会逐像素地比较图像之间的差异寻找那些在正常图像中找不到对应物的像素点。如果目标图像的某个像素在正常图像中找不到相似的对应像素那么这个像素就可能属于异常区域。通过这种方式算法不仅能判断一张图像是否包含异常还能精确地指出异常发生在图像的哪个部分。为了更准确地建立像素间的对应关系SPADE采用了一种叫做“特征金字塔”的技术。这涉及到使用不同层次的特征从细节到全局来描述每个像素。这样可以确保即使在图像的很小一部分中也能准确地找到异常。
pseudo-code
# 伪代码Semantic Pyramid Anomaly Detection (SPADE)# 输入:
# images - 包含所有图像的集合正常图像和待检测图像
# model - 预训练的深度学习模型如ResNet
# k - 最近邻检索的数量
# kappa - 像素级最近邻检索的数量
# threshold_distance - 用于确定异常的阈值# 输出:
# anomaly_maps - 包含每个图像异常区域的分割图def extract_features(model, images):# 使用预训练模型提取图像特征features []for image in images:feature model.extract_features(image)features.append(feature)return featuresdef find_k_nearest_neighbors(features, target_feature, k):# 找到目标特征的k个最近邻distances [euclidean_distance(target_feature, feature) for feature in features]nearest_neighbors sort_by_distance(distances)[:k]return nearest_neighborsdef compute_anomaly_score(model, target_image, neighbors, kappa):# 计算每个像素的异常得分anomaly_scores []for p in target_image.pixels():target_pixel_feature model.extract_pixel_features(target_image, p)neighbor_features [model.extract_pixel_features(neighbor, p) for neighbor in neighbors]distances [euclidean_distance(target_pixel_feature, neighbor_feature) for neighbor_feature in neighbor_features]average_distance average(distances)anomaly_score 1 if average_distance threshold_distance else 0anomaly_scores.append(anomaly_score)return anomaly_scoresdef detect_anomalies(features, k, kappa, threshold_distance):anomaly_maps {}for i, feature in enumerate(features):target_feature featurenearest_neighbors find_k_nearest_neighbors(features, target_feature, k)anomaly_score compute_anomaly_score(model, images[i], nearest_neighbors, kappa)anomaly_maps[images[i]] anomaly_scorereturn anomaly_maps# 主流程
features extract_features(model, images)
anomaly_maps detect_anomalies(features, k, kappa, threshold_distance)# 将异常得分转换为分割图
segmentation_maps convert_scores_to_segmentation(anomaly_maps)return segmentation_maps3、Experiments
只有GOOD。。。 4、Conclusion
提出了一种新的基于对齐的方法 SPADE用于检测和分割图像中的异常。SPADE 方法依赖于通过预训练的深度特征提取的像素级特征金字塔的K个最近邻。SPADE 方法由两个阶段组成旨在实现高精度和合理的计算复杂度。阶段一使用预先训练的深度神经网络进行图像特征提取阶段二对距离目标最近的K个正常图像进行最近邻居检索在检索到的正常图像中不具有接近匹配的目标图像区域被标记为异常。
[COPY] Sub-Image Anomaly Detection with DeepPyramid Correspondences 基于深金字塔对应的子图像异常检测(KNN)