主頁 >  其他 > 【人臉表情識別】基于matlab GUI CNN人臉表情識別【含Matlab原始碼 787期】

【人臉表情識別】基于matlab GUI CNN人臉表情識別【含Matlab原始碼 787期】

2021-04-19 12:40:16 其他

一、簡介

1 CNN的應用領域
CNN在以下幾個領域均有不同程度的應用:
影像處理領域(最主要運用領域) —— 影像識別和物體識別,影像標注,影像主題生成,影像內容生成,物體標注等,
視頻處理領域 —— 視頻分類,視頻標準,視頻預測等
自然語言處理(NLP)領域 —— 對話生成,文本生成,機器翻譯等
其它方面 —— 機器人控制,游戲,引數控制等

2 CNN的網路結構
2.1 傳統神經網路
在這里插入圖片描述
上圖為傳統的神經網路的結構, 它是一種全連接的結構, 這也就造成了引數訓練的難度加深. 還有BP求解中的可能出現的梯度爆炸和梯度消失的現象等.此外,深度結構(涉及多個非線性處理單元層)非凸目標代價函式中普遍存在的區域最小是訓練困難的主要來源. 這些因素都造成了傳統的神經網路的不適用性,所以沒有較為廣泛的運用.

2.2 卷積神經網路(Convolutional Neural Networks,CNN)
在這里插入圖片描述
上圖為CNN的網路結構,CNN可以有效的降低反饋神經網路(傳統神經網路)的復雜性,常見的CNN結構有LeNet-5、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等等,其中在LVSVRC2015 冠軍ResNet是AlexNet的20多倍,是VGGNet的8倍;從這些結構來講CNN發展的一個方向就是層次的增加,通過這種方式可以利用增加的非線性得出目標函式的近似結構,同時得出更好的特征表達,但是這種方式導致了網路整體復雜性的增加,使網路更加難以優化,很容易過擬合,

CNN的網路結構和傳統神經網路結構異同點有:

(1)CNN主要有資料輸入層, 卷積層, RELU激勵層, 池化層, 全連接層, Batch Normalization Layer(不一定存在). 傳統神經網路主要有資料輸入層, 一個或多個隱層以及資料輸出層. 比較可以發現CNN仍然使用傳統神經網路的層級結構.
(2)CNN的每一層都具有不同的功能, 而傳統神經網路每一層都是對上一層特征進行線性回歸, 再進行非線性變換的操作.
(3)CNN使用RELU作為激活函式(激勵函式) , 傳統神經網路使用sigmoid函式作為激活函式.
(4)CNN的池化層實作資料降維的作用,提取資料的高頻資訊.傳統神經網路沒有這個作用.
(5)CNN主要是在影像分類和物品識別等應用場景應用比較多

2.2.0 CNN的主要層次介紹
CNN保持了層級網路結構,不同層次使用不同的形式(運算)與功能
資料輸入層:Input Layer
卷積計算層:CONV Layer
ReLU激勵層:ReLU Incentive Layer
池化層:Pooling Layer
全連接層:FC Layer
備注:Batch Normalization Layer(可能有)

2.2.1 資料輸入層 (Input Layer)
和神經網路/機器學習一樣,需要對輸入的資料需要進行預處理操作,需要進行預處理的主要原因是:
輸入資料單位不一樣,可能會導致神經網路收斂速度慢,訓練時間長
資料范圍大的輸入在模式分類中的作用可能偏大,而資料范圍小的作用就有可能偏小
由于神經網路中存在的激活函式是有值域限制的,因此需要將網路訓練的目標資料映射到激活函式的值域
S形激活函式在(0,1)區間以外區域很平緩,區分度太小,例如S形函式f(X),f(100)與f(5)只相差0.0067
常見的資料預處理的方式有以下幾種:
(1)均值化處理 — 即對于給定資料的每個特征減去該特征的均值(將資料集的資料中心化到0)
(2)歸一化操作 — 在均值化的基礎上再除以該特征的方差(將資料集各個維度的幅度歸一化到同樣的范圍內)
(3)PCA降維 — 將高維資料集投影到低維的坐標軸上, 并要求投影后的資料集具有最大的方差.(去除了特征之間的相關性,用于獲取低頻資訊)
(4)白化 — 在PCA的基礎上, 對轉換后的資料每個特征軸上的幅度進行歸一化.用于獲取高頻資訊.
(5) http://ufldl.stanford.edu/wiki/index.php/白化

在這里插入圖片描述
x = x - np.mean(x, 0) x = (x - np.mean(x, 0)) / np.std(x, 0)
在這里插入圖片描述
x -= np.mean(x, axis=0) # 去均值
cov = np.dot(x.T, x) / x.shape[0] # 計算協方差
u, s, v = np.linalg.svd(cov) # 進行 svd 分解
xrot = np.dot(x, u)
x = np.dot(x, u[:, :2]) # 計算 pca
x = xrot / np.sqrt(s + 1e-5) # 白化
在這里插入圖片描述
備注:雖然我們介紹了PCA去相關和白化的操作,但是實際上在卷積神經網路中,一般并不會適用PCA和白化的操作,一般去均值和歸一化使用的會比較多.
建議:對資料特征進行預處理,去均值、歸一化

2.2.2 卷積計算層(CONV Layer)
這一層就是卷積神經網路最重要的一層,也是“卷積神經網路”的名字由來,
人的大腦在識別圖片的程序中,會由不同的皮質層處理不同方面的資料,比如:顏色、形狀、光暗等,然后將不同皮質層的處理結果進行合并映射操作,得出最終的結果值,第一部分實質上是一個區域的觀察結果,第二部分才是一個整體的結果合并.
還有,對于給定的一張圖片, 人眼總是習慣性的先關注那些重要的點(區域), 再到全域. 區域感知是將整個圖片分為多個可以有區域重疊的小視窗, 通過滑窗的方法進行影像的區域特征的識別. 也可以說每個神經元只與上一層的部分神經元相連, 只感知區域, 而不是整幅影像.
基于人腦的圖片識別程序,我們可以認為影像的空間聯系也是區域的像素聯系比較緊密,而較遠的像素相關性比較弱,所以每個神經元沒有必要對全域影像進行感知,只要對區域進行感知,而在更高層次對區域的資訊進行綜合操作得出全域資訊;即區域感知,
在這里插入圖片描述
在這里插入圖片描述
區域關聯:每個神經元看做一個filter
視窗(receptive field)滑動,filter對區域資料進行計算
相關概念:深度:depth,步長:stride,填充值:zero-padding
CONV程序參考:http://cs231n.github.io/assets/conv-demo/index.html
一個資料輸入,假設為一個RGB的圖片
在神經網路中,輸入是一個向量,但是在卷積神經網路中,輸入是一個多通道影像(比如這個例子中有3個通道)

在這里插入圖片描述

  1. 區域感知
    在進行計算的時候,將圖片劃分為一個個的區域進行計算/考慮;
    那么,為什么可以使用區域感知呢?
    我們發現, 越是接近的像素點之間的關聯性越強, 反之則越弱. 所以我們選擇先進行區域感知, 然后在更高層(FC層)將這些區域資訊綜合起來得到全域資訊的方式.

  2. 引數共享機制
    所謂的引數共享就是就是同一個神經元使用一個固定的卷積核去卷積整個影像,也可以認為一個神經元只關注一個特征. 而不同的神經元關注多個不同的特征.(每一個神經元都可以看作一個filter)

  3. 滑動視窗的重疊
    滑動視窗重疊就是在進行滑窗的程序中對于相鄰的視窗有區域重疊的部分,這主要是為了保證影像處理后的各個視窗之間的邊緣的平滑度,降低視窗與視窗之間的邊緣不平滑的特性,
    固定每個神經元的連接權重,可以將神經元看成一個模板;也就是每個神經元只關注一個特性
    需要計算的權重個數會大大的減少

4)) 卷積計算

卷積的計算就是: 對于每一個神經元的固定的卷積核矩陣與視窗矩陣的乘積(對應位置相乘)再求和之后再加上偏置項b的值, 就得到了代表該神經元所關注的特征在當前影像視窗的值.
如圖2.4所示, 可以看出卷積計算的程序.動態圖點擊這里查看.
在這里插入圖片描述
2.2.3 RELU激勵層
這一層就是激活層, 在CNN中一般使用RELU函式作為激活函式.它的作用主要是將卷積層的輸出結果做非線性映射.
在這里插入圖片描述

  1. 常見的幾種激活函式
    激活函式之 Sigmoid、tanh、ReLU、ReLU變形和Maxout
    sigmoid函式(S函式)
    Tanh函式(2S函式)
    RELU函式 ----> 線性修正單元 —> max{ 0, x } ==>無邊界, 易出現’死神經元’
    Leaky ReLU 函式 —> 若x> 0 , 則輸出x ; 若x<0,則 alphax, 其中 0< alpha <1 ==> 對RELU的改進
    ELU 函式 —> 若x> 0 , 則輸出x ; 若x<0,則 alpha
    (e^x - 1), 其中 0< alpha <1 ==> 也是一種對RELU的改進
    Maxout函式 —> 相當于增加了一個激活層
  2. 激活函式的一些建議
    一般不要使用sigmoid函式作為CNN的激活函式.如果用可以在FC層使用.
    優先選擇RELU作為激活函式,因為迭代速度快,但是有可能效果不佳
    如果2失效,請用Leaky ReLU或者Maxout,此時一般情況都可以解決啦
    在極少的情況下, tanh也是有不錯的效果的
    2.2.4 池化層 (Poling Layer)
    在連續的卷積層中間存在的就是池化層,主要功能是:通過逐步減小表征的空間尺寸來減小引數量和網路中的計算;池化層在每個特征圖上獨立操作,使用池化層可以壓縮資料和引數的量,減小過擬合,簡而言之,如果輸入是影像的話,那么池化層的最主要作用就是壓縮影像,
    在這里插入圖片描述
    池化層中的資料壓縮的策略主要有:
    Max Pooling(最大池化)—> 選擇每個小視窗中最大值作為需要的特征像素點(省略掉不重要的特征像素點)
    Average Pooling(平均池化) —> 選擇每個小視窗中平均值作為需要的特征像素點
    在這里插入圖片描述
    池化層選擇較為重要的特征點, 可以降低維度, 能夠在一定程度上防止過擬合的發生.

2.2.5 FC全連接層
類似傳統神經網路中的結構,FC層中的神經元連接著之前層次的所有激活輸出;換一句話來講的話,就是兩層之間所有神經元都有權重連接;通常情況下,在CNN中,FC層只會在尾部出現

通過全連接結構,將前面輸出的特征重新組合成一張完整的影像.

一般的CNN結構依次為:

INPUT
[[CONV -> RELU] * N -> POOL?]M
[FC -> RELU] * K
FC
2.2.6 Batch Normalization Layer(一般用于卷積層后面,主要是使得期望結果服從高斯分布,使用較少!!)
Batch Normalization Layer(BN Layer)是期望我們的結果是服從高斯分布的,所以對神經元的輸出進行一下修正,一般放到卷積層后,池化層前,
論文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift;
論文鏈接:https://arxiv.org/pdf/1502.03167v3.pdf
在這里插入圖片描述
如果輸出的是N
D的結果,對D個維度每個維度求解均值和方差,
根據均值和方差做歸一化,
在這里插入圖片描述
強制的進行歸一化操作可能存在一些問題,eg: 方差為0等
在這里插入圖片描述
Batch Normalization優點:
梯度傳遞(計算)更加順暢,不容易導致神經元飽和(防止梯度消失(梯度彌散)/梯度
爆炸)
學習率可以設定的大一點
對于初始值的依賴減少
Batch Normalization缺點:
如果網路層次比較深,加BN層的話,可能會導致模型訓練速度很慢,
備注:BN Layer慎用!!!

3 CNN的優缺點
優點
① 使用區域感知和引數共享機制(共享卷積核), 對于較大的資料集處理能力較高.對高維資料的處理沒有壓力
② 能夠提取影像的深層次的資訊,模型表達效果好.
③ 不需要手動進行特征選擇, 只要訓練好卷積核W和偏置項b, 即可得到特征值.

缺點
① 需要進行調參, 模型訓練時間較長, 需要的樣本較多, 一般建議使用GPU進行模型訓練.
② 物理含義不明, 每層中的結果無法解釋, 這也是神經網路的共有的缺點.

二、源代碼

function main
clc
close all
 
% 創建人臉檢測物件
faceDetector = vision.CascadeObjectDetector;
 
% 人臉檢測
FaceRecognition(faceDetector);
end
 
%% 選擇圖片
function I = SelectPicture()
[FileName,PathName] = uigetfile('*.jpg', '選擇一張圖片');
if isequal(FileName,0)
    disp('沒選擇圖片,請重新選擇!')
    I = [];
else
    I = imread(fullfile(PathName,FileName));
end
end
 
%% 人臉檢測
function [I_faces, bbox] = GetFaces(faceDetector, I)
% 檢測人臉
bbox = step(faceDetector, I);
 
% 創建一個形狀插入物件來繪制邊框圈出的檢測的結果
if size(I, 3) == 1 % 灰度影像,插入白色或黑色框
    if mean(I(:)) > 128 % 影像較亮,使用黑框
        shapeInserter = vision.ShapeInserter();
    else % 影像較暗,使用白框
        shapeInserter = vision.ShapeInserter('BorderColor','White');
    end
else % 彩色影像,插入紅色框
    shapeInserter = vision.ShapeInserter('BorderColor','Custom','CustomBorderColor',[255 0 0]);
end
 
% 繪制邊框以圈出結果
I_faces = step(shapeInserter, I, int32(bbox));
end
 
%% 圖片人臉檢測
function FaceRecognition(faceDetector)
% 滑鼠單擊回應
    function BtnDownFcn(h, evt)
        FaceRecognition(faceDetector);
    end
 
% 選擇檔案
I = SelectPicture();
if isempty(I)
    return
end
 
% 人臉檢測
[I_faces, bbox] = GetFaces(faceDetector, I);
 
close all
% 創建figure物件
fig1 = figure;
pos1 = get(fig1,'Position');
set(fig1,'Position',[10 pos1(2:4)]);
set(fig1,'WindowButtonDownFcn',@BtnDownFcn);
 
% 顯示
figure(fig1)
imshow(I_faces)
title('單擊此圖片選擇另一圖片識別')
for i = 1:size(bbox, 1)
    text(bbox(i, 1), bbox(i, 2), mat2str(i), 'color', 'r')
end
 
% 檢測
intbbox = int32(bbox);
for i = 1:size(intbbox, 1)
    xs = intbbox(i, 1);
    xe = xs + intbbox(i,3);
    ys = intbbox(i, 2);
    ye = ys + intbbox(i,4);
    
    % 創建figure
    if rem(i, 16) == 1
        fig2 = figure; %#ok
    end
    function varargout = FaceSystem(varargin)
% FACESYSTEM MATLAB code for FaceSystem.fig
%      FACESYSTEM, by itself, creates a new FACESYSTEM or raises the existing
%      singleton*.
%
%      H = FACESYSTEM returns the handle to a new FACESYSTEM or the handle to
%      the existing singleton*.
%
%      FACESYSTEM('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in FACESYSTEM.M with the given input arguments.
%
%      FACESYSTEM('Property','Value',...) creates a new FACESYSTEM or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before FaceSystem_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to FaceSystem_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help FaceSystem

% Last Modified by GUIDE v2.5 20-Apr-2018 19:18:59

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @FaceSystem_OpeningFcn, ...
                   'gui_OutputFcn',  @FaceSystem_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before FaceSystem is made visible.
function FaceSystem_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to FaceSystem (see VARARGIN)

% Choose default command line output for FaceSystem
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes FaceSystem wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = FaceSystem_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global str;
global a0;

[filename,pathname]=...
    uigetfile({'*.jpg';'*.bmp';'*.gif'},'choose');

str=[pathname filename]
if str~=0;
a0=imread(str);

% 同學在這里寫上進度條的代碼 等待對話框
h=waitbar(0,'Pleast waiting, reading...');
%*********
axes(handles.axes1);
axis off
imshow(a0);
title('原影像')

waitbar(1,h,'finish');
pause(0.05);
delete(h);
end
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
global a0;
global dets
global i_face;
global im
i_face=0;
faceDetector = vision.CascadeObjectDetector;
[im, dets] = GetFaces(faceDetector, a0);
DisplayDetections(im, dets);


% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global dets
global i_face;
global a0;
global A_face;
[M,N]=size(dets);
if (i_face>0)&(i_face<=M)
    i_face=i_face-1;
    i=i_face
    A_face=a0(dets(i,2):(dets(i,2)+dets(i,4)),dets(i,1):(dets(i,1)+dets(i,3)),:); 
    axes(handles.axes2);
    axis off
    imshow(A_face);
    title('待識別的人臉');
end

% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global dets
global a0;
global i_face;
global A_face;
[M,N]=size(dets);
if (i_face>=0)&(i_face<M)
    i_face=i_face+1;
    i=i_face
    A_face=a0(dets(i,2):(dets(i,2)+dets(i,4)),dets(i,1):(dets(i,1)+dets(i,3)),:);    
    axes(handles.axes2);
    axis off
    imshow(A_face);
    title('待識別的人臉');
end

三、運行結果

在這里插入圖片描述
在這里插入圖片描述

四、備注

完整代碼或者代寫添加QQ 1564658423

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277789.html

標籤:AI

上一篇:邊緣計算是流行詞還是風口?開發者怎樣選開源專案?

下一篇:校招分享會錄播、思維導圖來了,資料結構/演算法/計網/資料庫/作業系統等系列基礎打好,學歷不好也要干翻全廠

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more