1 内容介绍

考虑到异常检测问题中正负样本严重失衡,难以满足卷积神经网络训练对样本的要求,提出了基于AlexNet模型的异常检测模型.在数据预处理阶段,通过隔帧采样的方式生成3组训练数据,并利用预训练的AlexNet模型提取相应的3组图像特征,最后通过并联的形式训练3组一类支持向量机模型1SVM,在测试阶段对3个1SVM的结果进行投票,获得最终的检测结果.以UMN数据集作为实验数据进行实验,算法的等错误率为1.8,优于其他算法,充分说明了算法的有效性.

2 部分代码

%% Applying Deeplearning to Anomaly Detection for manufacturing product

% This is the way to detect feature outlier with AlexNet and 1-class SVM kernel method.

clear; close all; imtool close all; clc;rng('default')

% unzip('data.zip')

% winopen('testimage')

%% Read Pre-trained Convolutional Neural Network (CNN) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

convnet = alexnet()  %

%% show layers

convnet.Layers % show layer

%% open folder including training images

rootFolder = pwd;

categ = {fullfile('data','trainingimage')};

winopen(fullfile('data','trainingimage'))

%% use imageDatastore object for dealing with huge amount of image.

imds = imageDatastore(fullfile(rootFolder, categ), 'LabelSource', 'foldernames')

imds.ReadFcn = @(filename) readAndPreproc(filename); % set function to resize image to 227*227*3.

tbl = countEachLabel(imds) % Show the number of training image

%% Run AlexNet to get the feature data at the fc7 layer

fLayer = 'fc7';

trainingFeatures = activations(convnet, imds, fLayer, ...

'MiniBatchSize', 32, 'OutputAs', 'columns');      % run the network with images and get the feature data at the defined layer

%% train a 1-class SVM with the feature data

W = ones(size(trainingFeatures', 1), 1);

d = fitcsvm(trainingFeatures', W, 'KernelScale', 'auto', 'Standardize', false, 'OutlierFraction', 0.04,'KernelFunction','gaussian');

%% Detect 4 abnormal images from test image set

categ2 = {fullfile('data','testimage')};

% Read 100 images as a test set

imds2 = imageDatastore(fullfile(rootFolder, categ2), 'LabelSource', 'foldernames','IncludeSubfolders',true)

imds2.ReadFcn = @(filename) readAndPreproc(filename);

tic % start timer

testFeatures = activations(convnet, imds2, fLayer, ...

'MiniBatchSize', 32, 'OutputAs', 'columns');  % Execute Alexnet and get data at the fc7 layer

[~, score] = predict(d, testFeatures'); % predict score with trained SVM

[score_sorted, idx] = sort(score); % sort by score (is score is small (like negative), the image can be abnormal)

idx(1:25)  % the indices of Top 25 abnormal images

toc  % Stop time and show the calculation time

%% show the sorted images side-by-side

im = readall(imds2);

im = im(idx); % sort images by score in ascending order

sz = size(im{1});

% Insert rectangle on images people defined as anomaly

for i=1:numel(idx)

if idx(i) <5

im{i} = insertShape(uint8(im{i}),'rectangle',[1 1 sz(1) sz(2)],'LineWidth' ,10);

end

end

I = cat(4, im{1:100});

figure,montage(I, 'Size', [10 10]) % show 10*10 images in a figure

% The score of images in the first row are low. (anomalousness is high)

% the 1-4 lowest score images have rectangle yellow frame.

% This means that prediction by classifier is same as the correct answer people define.

score(idx) %

%% Use t-SNE for visualization

rng default %

testLabels = imds2.Labels; % Use label for visualization

% Use t-SNE to visualize 4096 dimension data bidimensionally

Y = tsne(testFeatures','Algorithm','exact','NumPCAComponents',50,'Perplexity',45);

figure

gscatter(Y(:,1),Y(:,2),testLabels)

title('Default Figure')

% feature plots of abnormal image are located far from center of whole distribution

% classifier detects these outliers

3 运行结果

4 参考文献

[1]付青、罗文浪、吕敬祥. 基于AlexNet和支持向量机相结合的卫星遥感影像土地利用变化检测[J]. 激光与光电子学进展, 2020, 57(17):9.

[2]雷丽莹, 陈华华. 基于AlexNet的视频异常检测技术[J]. 杭州电子科技大学学报(自然科学版), 2018.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【图像检测】基于 AlexNet 和 SVM 实现异常螺母检测附matlab代码相关推荐

  1. 【图像隐藏】基于混合 DWT-HD-SVD 的数字图像水印方法技术附matlab代码

    1 内容介绍 文章提出一种基于离散小波变换(DWT),Hessenberg分解(HD)和奇异值分解(SVD)的图像水印方法.在嵌入过程中,对原始载体图像进行多级DWT分解,并将得出的子带系数作为HD的 ...

  2. 【故障诊断】基于贝叶斯优化支持向量机的轴承故障诊断附matlab代码

    1 内容介绍 贝叶斯网络(Bayesian Network或BN)是人工智能领域进行建模和不确定性推理的一个有效工具.贝叶斯网推理的基本任务是:给定一组证据变量观察值,通过搜索条件概率表计算一组查询变 ...

  3. 【图像分割】基于计算机视觉实现胸部CT肺质提取附matlab代码

    1 内容介绍 在现代医学领域中,医学影像处理技术随着计算机科学和影像技术的进步,已经成为医学领域重要的一个分支.室外光照度不均.CT自身空间分辨率和层厚参数.人体组织器官蠕动等诸多外界因素造成了医学X ...

  4. 【图像去噪】基于二维双边高斯滤波实现图像去噪附matlab代码

    1 简介 图像是生活中重要的信息来源,处理图像有助于理解信息的基本信息.但图像本身可能存在一些被干扰的信息或者噪声.研究了基于高斯滤波和双边滤波算法的数字图像处理技术用于对图像的噪声进行消除.通过对图 ...

  5. 【车间调度】基于改进帝国企鹅算法求解车间调度问题附matlab代码

    1 内容介绍 传统车间调度问题仅仅考虑工件的分配问题.而柔性车间调度问题在传统车间调度问题上做了一定的延伸,它更接近实际生产过程的原因是由于其在传统车间调度问题中加入了对加工机器的选择.因此对其的研究 ...

  6. 【智能优化算法-鲸鱼算法】基于鲸鱼算法求解多目标优化问题附matlab代码(NSWOA)

    1 内容介绍 为了解决多目标优化的相关问题,鲸鱼优化算法结合多目标相关理论,并在算法中加入了非排序思路,提出了一种求解多目标问题的鲸鱼优化算法.​ 2 仿真代码 %% Non Sorted Whale ...

  7. 【象群算法】基于象群算法求解单目标问题附matlab代码(Elephant Herding Optimization,EHO)

    1 简介 象群 算 法(ElephantHerdingOptimization,EHO)是一种启发式搜索算法,源 于 对 大 象 群 体 行为的研究.该算法原理简单,易于实现,目前应用于传感器部署.土 ...

  8. 【智能优化求解】基于粒子群算法实现综合能源系统优化附matlab代码

    1 简介 为了解决现有冷热电联供型综合能源系统大多只单一考虑系统机组投资成本或系统环境污染,影响系统整体优化运行的问题,以系统经济性和环保性为目标,对冷热电联供系统进行研究分析.构建含燃气轮机.燃气锅 ...

  9. 【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码

    1 简介 2 部分代码 %_________________________________________________________________________%​clc;clear;cl ...

最新文章

  1. python数据库框架_Python数据库及ORM框架对比选择
  2. 正向代理反向代理 简(fu)明(za)解释
  3. pycharm常用设置(keymap设置及eclipse常用快捷键总结)
  4. python可以管理操作系统吗_python之路——操作系统的发展史
  5. 企业任务管理工具“日事清”获星河互联1000万A轮融资
  6. “锐捷伴你行”之“300路”喊话郭德纲:有空来蹭网呀!
  7. C语言代码实现最小二乘法线性拟合直线
  8. 如何识别pdf文档中的文字(图像识别)python
  9. C语言数组相似度比对,C语言实验报告:碱基相似度比较
  10. 蓝桥杯——大臣的旅费
  11. 20177101010101 白玛次仁《面向对象程序设计》第十八周学习总结
  12. 西门子mr图像后处理手册_西门子MRI操作手册手工版
  13. python风变编程是骗局吗-风变编程:Python适合编程初学者学习吗?
  14. Docx 生成word文档
  15. Rewritecond介绍
  16. Windows下运行war包
  17. 【实用小工具】开发一个网页版LED点阵绘图模拟器
  18. CentOS8 源码编译安装 lamp环境 (apache24 + php7.3 + mysql57)
  19. 域名升级访问中拿笔记好_域名选择与老域名质量评分,尽量少踩坑
  20. 2022G3锅炉水处理特种作业证考试题库及答案

热门文章

  1. 用skycc营销软件,轻松当老板
  2. picgo免费搭建个人图床
  3. 用php编写的简单个人主页,如何制作个人主页
  4. 有苦有乐的算法 --- 一个无序数组,如果从小到大排好序,任何一个元素任何一个元素移动索引长度不超过k,实现排序
  5. HashMap、LinkedHashMap、TreeMap的深入认识
  6. 基于MATLAB的数论运算与编写函数(附完整代码)
  7. 移动应用Kony Solutions并购Sky Technologies
  8. Compact 命令压缩和解压缩文件
  9. 跨境电商小白:一件代发是什么?为什么要选择Starday一件代发?
  10. 1035 不相交的线