主頁 >  其他 > 基于支持向量機的手寫數字識別詳解(MATLAB GUI代碼,提供手寫板)

基于支持向量機的手寫數字識別詳解(MATLAB GUI代碼,提供手寫板)

2022-04-20 08:00:59 其他

功能演示動圖

摘要:本文詳細介紹如何利用MATLAB實作手寫數字的識別,其中特征提取程序采用方向梯度直方圖(HOG)特征,分類程序采用性能優異的支持向量機(SVM)演算法,訓練測驗資料集為學術及工程上常用的MNIST手寫數字資料集,博主為SVM設定了合適的核函式,最終的測驗準確率達99%的較高水平,根據訓練得到的模型,利用MATLAB GUI工具設計了可以手寫輸入或讀取圖片進行識別的系統界面,同時可視化圖片處理程序及識別結果,本套代碼集成了眾多機器學習的基礎技術,適用性極強(用戶可修改圖片檔案夾實作自定義資料集訓練),相信會是一個非常好的學習Demo,本博文目錄如下:

目錄
  • 前言
  • 1. 效果演示
  • 2. MNIST資料集
  • 3. HOG特征提取
  • 3. 訓練和評估SVM分類器
  • 下載鏈接
  • 結束語

?點擊跳轉至文末所有涉及的完整代碼檔案下載頁?

完整資源下載鏈接:https://mianbaoduo.com/o/bread/YZeUkplu

代碼介紹及演示視頻鏈接:https://www.bilibili.com/video/BV1km4y1R7qf/(正在更新中,歡迎關注博主B站視頻)


前言

    機器學習中支持向量機(SVM)演算法可謂是個超級經典,也許很多人傾向于使用深度神經網路解決問題,但在博主看來選擇何種演算法應該取決于具體的機器學習任務,對于復雜程度不高、資料量較少的任務,也許經典的機器學習演算法能夠更好地解決問題,手寫數字識別這一任務要求正確分類出0-9的手寫數字圖片,最常用的資料集是MNIST,該資料集也是眾多論文中經常用來測驗對比演算法的物件,博主想說的是其實SVM也可以很好地解決這一問題,本文介紹的代碼就可以實作99%的測驗準確率,所以想借此為大家提供一個學習的Demo共同交流,

    博主之前也曾寫過兩篇利用SVM進行分類的博文:基于支持向量機的影像分類(上篇)和基于支持向量機的影像分類(下篇:MATLAB實作),詳細介紹了特征提取的基本技術和支持向量機的原理,亦可供大家參考,本文給出了MATLAB實作的完整代碼供大家參考,有基礎的讀者可按照文中的介紹復現出完整程式;對于想獲取全部資料集及程式檔案的朋友,可以點擊提供的下載鏈接獲取可直接運行的代碼,原創不易,還請多多支持了,如本文對您有所幫助,敬請點贊、收藏、關注!


1. 效果演示

    找資料的大伙時間寶貴,為了方便大家了解專案,我們老規矩先上效果演示,GUI界面有幾個主要功能:通過手寫板寫入數字進行識別;利用檔案瀏覽器選取一張手寫數字的圖片進行識別;同步可視化處理程序中的影像,顯示最終識別結果,GUI界面如下:

功能演示動圖

    在手寫板中寫入數字后可點擊下方保存按鈕保存為圖片檔案,手寫輸入及讀圖輸入及保存功能的演示動圖如下圖所示,右側為影像原圖、灰度化處理、二值化處理及特征提取后的影像,方便了解識別的處理程序:

功能演示動圖

    本專案所有功能均已在MATLAB R2020b中測驗通過,更多演示細節敬請前往博主B站觀看演示視頻,視頻具體演示程式運行效果并介紹如何使用代碼,歡迎關注!


2. MNIST資料集

    MNIST資料集來自美國國家標準與技術研究所(National Institute of Standards and Technology, NIST),訓練集 (Training Set) 由來自250個不同人手寫的數字構成,其中50%是高中學生,50%來自人口普查局的作業人員;測驗集(Test Set) 也是同樣比例的手寫數字資料,

功能演示動圖

    MNIST資料集可在 http://yann.lecun.com/exdb/mnist/獲取,但由于訪問外網下載速度很慢,博主已將該資料集打包上傳至百度網盤,大家可以通過博主前面發布的博文:深度學習常用資料集介紹與下載(附網盤鏈接)進行下載,MNIST資料集包含了四個部分:

  • Training set images:train-images-idx3-ubyte.gz (9.9MB,解壓后47MB,包含60000個樣本)
  • Training set labels:train-labels-idx1-ubyte.gz(29KB,解壓后60KB,包含60000個標簽)
  • Test set images:t10k-images-idx3-ubyte.gz (1.6MB,解壓后7.8MB,包含10000個樣本)
  • Test set labels: t10k-labels-idx1-ubyte.gz(5KB,解壓后10KB,包含10000個標簽)

    將下載后的資料集檔案放在一個檔案夾下,用于后續處理,MNIST資料集檔案如下圖所示:

功能演示動圖

    由于MNIST的原始檔案并非常見的圖片格式,因此為了方便后續處理,我們先將這幾個檔案轉化為mat檔案,然后逐個讀取轉換為影像矩陣并保存為圖片檔案,值得注意的是,我們需按照每條樣本資料的標簽將其分別放置在不同的檔案夾中,如下方式在train檔案夾中創建0-9的檔案夾用來存放要寫入的對應標簽的圖片:

功能演示動圖

    這里寫一個小腳本將資料集圖片按標簽存入對應檔案夾中,其中的mat檔案為讀取原始資料并轉存后的資料集,MNIST每張圖片的尺寸均為28×28,所以可以先通過reshape恢復資料尺寸,然后利用imwrite函式寫入檔案中(路徑為對應標簽的子檔案夾),該部分代碼如下:

clear
clc
% P = loadMNISTImages('mnist/train-images.idx3-ubyte');
% T = loadMNISTLabels('mnist/train-labels.idx1-ubyte');
load('test_data.mat', 'test_X')
load('test_label.mat', 'test_Y')
load('train_data.mat', 'train_X')
load('train_label.mat', 'train_Y')
load('validation_data.mat', 'validation_X')
load('validation_label.mat', 'validation_Y')
% 遍歷每張圖片
disp('現在將訓練資料保存為圖片檔案格式')
for i = 1:length(train_X)
    img = reshape(train_X(i, :), 28, 28); % 轉換成28*28的圖片
    img = img';
    imwrite(img, ['./mnist/train/', int2str(train_Y(i)), '/', int2str(i), '.jpg']);
    disp(i);
end
% 遍歷每張圖片
disp('現在將測驗資料保存為圖片檔案格式')
for i = 1:length(test_X)
    img = reshape(test_X(i, :), 28, 28); % 轉換成28*28的圖片
    img = img';
    imwrite(img, ['./mnist/test/', int2str(test_Y(i)), '/', int2str(i), '.jpg']);
    disp(i);
end

    處理后的子檔案夾中將存放對應的圖片檔案,其中兩個子檔案夾的截圖如下圖所示:

功能演示動圖

    資料集準備完畢,現在可以通過檔案夾讀取圖片了,在MATLAB中可使用imageDatastore函式方便地批量讀取圖片集,它通過遞回掃描檔案夾目錄,將每個檔案夾名稱自動作為影像的標簽,該部分代碼如下:

% 給出訓練和測驗資料路徑,利用imageDatastore載入資料集
syntheticDir   = fullfile('data','mnist', 'train');
handwrittenDir = fullfile('data','mnist', 'test');

% imageDatastore遞回掃描目錄,將每個檔案夾名稱自動作為影像的標簽
trainSet = imageDatastore(syntheticDir,   'IncludeSubfolders', true, 'LabelSource', 'foldernames');
testSet  = imageDatastore(handwrittenDir, 'IncludeSubfolders', true, 'LabelSource', 'foldernames');

    至此訓練和測驗資料集分別被存放在trainSettestSet變數中,可以簡單查看訓練和測驗集每類標簽的樣本個數,顯示代碼如下:

trainSetDetail = countEachLabel(trainSet) % 訓練資料
testSetDetail = countEachLabel(testSet) % 測驗資料

    執行以上代碼運行結果如下:

功能演示動圖

    下面讀取幾張訓練和測驗集的圖片,顯示原始圖片幫助我們清楚該資料集的實際情況,按照兩行顯示:第一行為訓練圖片,第二行為測驗圖片,該部分代碼如下:

figure;
% 顯示訓練、測驗圖片(第一行是訓練圖片、第二行是測驗圖片)
subplot(2,5,1);imshow(trainSet.Files{4417});
subplot(2,5,2);imshow(trainSet.Files{23696});
subplot(2,5,3);imshow(trainSet.Files{31739});
subplot(2,5,4);imshow(trainSet.Files{46740});
subplot(2,5,5);imshow(trainSet.Files{54784});
subplot(2,5,6);imshow(testSet.Files{53});
subplot(2,5,7);imshow(testSet.Files{4572});
subplot(2,5,8);imshow(testSet.Files{5163});
subplot(2,5,9);imshow(testSet.Files{8381});
subplot(2,5,10);imshow(testSet.Files{9549});

    執行該代碼可以看到如下的運行結果:

功能演示動圖

    在提取特征前我們對圖片進行一些必要的預處理操作,首先讀取圖片后進行灰度化,然后進行二值化處理,以方便后續的特征提取,這里我們將原始圖片和二值化后的影像顯示在一個視窗中,其代碼如下:

exampleImage = readimage(trainSet, 31739);
if numel(size(exampleImage))==3
        exampleImage = rgb2gray(exampleImage);   % 灰度化圖片
end

processedImage = imbinarize(exampleImage);

figure;
subplot(1,2,1)
imshow(exampleImage)
title('原始影像')

subplot(1,2,2)
imshow(processedImage)
title('二值化后影像')

    執行該代碼可以看到如下的原始影像與二值化后的對比結果:

功能演示動圖

3. HOG特征提取

    真正用于訓練分類器的資料并不是原始圖片資料,而是先經過特征提取后得到的特征向量,這里使用的特征型別是HOG,也就是方向梯度直方圖,所以這里重要的一點是正確提取出HOG特征,extractHOGFeaturesMATLAB自帶的HOG特征提取函式,該函式不僅可以有效提取特征,還可以回傳特征的可視化結果以方便展示,這里通過調整每個細胞單元的尺寸大小實作不同尺寸的特征提取,可以通過可視化的結果看到細胞單元的尺寸對影像的形狀資訊量的影響:

img = readimage(trainSet, 31739);

% 提取HOG特征,并進行HOG可視化
[hog_2x2, vis2x2] = extractHOGFeatures(img,'CellSize',[2 2]);
[hog_4x4, vis4x4] = extractHOGFeatures(img,'CellSize',[4 4]);
[hog_8x8, vis8x8] = extractHOGFeatures(img,'CellSize',[8 8]);

% 顯示原始圖片
figure; 
subplot(2,3,1:3); imshow(img);
title('原始圖片');

% 可視化HOG特征
subplot(2,3,4);  
plot(vis2x2); 
title({'CellSize = [2 2]'; ['Length = ' num2str(length(hog_2x2))]});

subplot(2,3,5);
plot(vis4x4); 
title({'CellSize = [4 4]'; ['Length = ' num2str(length(hog_4x4))]});

subplot(2,3,6);
plot(vis8x8); 
title({'CellSize = [8 8]'; ['Length = ' num2str(length(hog_8x8))]});

    通過以上代碼我們分別提取了2×24×48×8三種尺寸的HOG特征,其運行的可視化結果如下:

功能演示動圖

    從以上結果可以看出2×2的細胞尺寸會編碼更多的形狀資訊,這會顯著增加HOG特征向量的維數,相反8×8的細胞尺寸得到的特征量最少,這其實是一個需要除錯的引數,一方面應該對足夠的空間資訊進行編碼,另一方面需要減少HOG特征向量的維數,為此可以選擇4×4的細胞大小,當然讀者還可以通過反復根據分類器訓練和測驗的效果來調整HOG特征的相關引數,以實作最佳引數設定,


3. 訓練和評估SVM分類器

    下面我們使用以上提取的HOG特征訓練支持向量機,以上的代碼只是提取了一張圖片的特征,訓練前我們對整個訓練資料集提取HOG特征并組合,為了方便后面的性能評估,這里對測驗資料集也進行特征提取:

cellSize = [4 4];
hogFeatureSize = length(hog_4x4);

% 提取HOG特征
tStart = tic; 
[trainFeatures, trainLabels] = extractHogFromImageSet(trainSet, hogFeatureSize, cellSize); % 訓練集特征提取
[testFeatures, testLabels] = extractHogFromImageSet(testSet, hogFeatureSize, cellSize);    % 測驗集特征提取

tEnd = toc(tStart);
fprintf('提取特征所用時間:%.2f秒\n', tEnd);

    由于圖片數量眾多,提取特征程序尚需一定時間,這里對訓練集、測驗集提取程序進行計時,因計算機算力不同,執行時間可能會不一致,以下代碼中extractHogFromImageSet函式為自定義函式,封裝了前面所提到的影像灰度化、二值化和HOG特征提取的代碼,可以方便我們復用代碼,使得程式更加簡潔,

cellSize = [4 4];
hogFeatureSize = length(hog_4x4);

% 提取HOG特征
tStart = tic; 
[trainFeatures, trainLabels] = extractHogFromImageSet(trainSet, hogFeatureSize, cellSize); % 訓練集特征提取
[testFeatures, testLabels] = extractHogFromImageSet(testSet, hogFeatureSize, cellSize);    % 測驗集特征提取

tEnd = toc(tStart);
fprintf('提取特征所用時間:%.2f秒\n', tEnd);

    運行以上代碼結果如下:

提取特征所用時間:181.59秒

    構建支持向量機模型,利用提取的訓練集特征進行訓練,首先利用templateSVM函式構建支持向量機模板引數,選擇polynomial核函式,執行標準化處理資料,顯示訓練程序;利用fitcecoc函式執行訓練程序,其代碼如下:

% 訓練支持向量機

t = templateSVM('SaveSupportVectors',true, 'Standardize', true, 'KernelFunction','polynomial', ...
    'KernelScale', 'auto','Verbose', 1);      % 利用polynomial核函式, 標準化處理資料,顯示訓練程序(verbose取0時取消顯示)

tStart = tic; % 計時開始
classifier = fitcecoc(trainFeatures, trainLabels, 'Learner', t); % 訓練SVM模型
tEnd = toc(tStart);
fprintf('訓練模型所用時間:%.2f秒\n', tEnd);

    以上代碼開啟了訓練程序資訊顯示,訓練程序中顯示資訊如下:

功能演示動圖
訓練模型所用時間:104.96秒

    等待訓練完成,我們可以使用訓練好的分類器進行預測,這里先利用測驗集評估模型并計算分類評價指標,對測驗集進行預測的代碼如下:

tStart = tic;

% 對測驗資料集進行預測
predictedLabels = predict(classifier, testFeatures);

tEnd = toc(tStart);
fprintf('模型對測驗集進行預測所用時間:%.2f秒\n', tEnd);

    運行結果如下:

模型對測驗集進行預測所用時間:5.18秒

    得到了預測結果,可以使用混淆矩陣評估結果,以下代碼首先計算混淆矩陣結果,然后將結果列印出來:

% 使用混淆矩陣評估結果
confMat = confusionmat(testLabels, predictedLabels);
dispConfusionMatrix(confMat); % 顯示混淆矩陣

    運行結果如下:

功能演示動圖

    以上代碼顯示了混淆矩陣的結果,但可能還不夠直觀,下面繪制混淆矩陣圖幫助更好了解模型性能:

% 繪制混淆矩陣圖
plotconfusion(testLabels, predictedLabels);

    運行代碼后顯示混淆矩陣圖如下圖所示,每行對角線上的網格(綠色網格)處顯示了某類樣本預測正確的數目及其占比,右下角網格表示分類的準確率,可以看出該分類器具有98.9%的總體分類準確率,

功能演示動圖

    分類準確率還可以通過以下代碼進行計算:

accuracy = sum(predictedLabels == testLabels) / numel(testLabels);
fprintf('模型在測驗集上的準確率:%.0f%%\n', accuracy*100);

    同樣可以計算出預測的準確率,這里四舍五入取整可得以下結果:

模型在測驗集上的準確率:99%

    通過測驗集評估結果,可以看出采用核函式的支持向量機準確率為99%,其性能已逼近深度卷積神經網路,得到了一個性能優良的分類器,接下來便可以利用模型設計一些有意思的東西了,為此我將該模型用于實際的手寫數字識別中,以下是在MATLAB GUI工具中設計的界面,如若讀者反響熱烈,后期將很快更GUI的設計介紹,還請關注了!

功能演示動圖

下載鏈接

    若您想獲得博文中涉及的實作完整全部程式檔案(包括資料集,m, UI檔案等,如下圖),這里已打包上傳至博主的面包多平臺和CSDN下載資源,本資源已上傳至面包多網站和CSDN下載資源頻道,可以點擊以下鏈接獲取,已將所有涉及的檔案同時打包到里面,點擊即可運行,完整檔案截圖如下:

功能演示動圖

注意:本資源已經過除錯通過,下載后可通過MATLAB R2020b運行;訓練主程式為main_showData.mlxDigitClassify_HOG_SVM.m檔案,測驗程式可運行testImage.mlx,要使用GUI界面請運行DigitClassifyUI.m檔案(腳本檔案可直接運行);其它程式檔案大部分為函式而非可直接運行的腳本,使用時請勿直接點擊運行!???

完整資源下載鏈接1博主在面包多網站上的完整資源下載頁

完整資源下載鏈接2https://mianbaoduo.com/o/bread/YZeUkplu

注:以上兩個鏈接為面包多平臺下載鏈接,CSDN下載資源頻道下載鏈接稍后上傳,

代碼使用介紹及演示視頻鏈接:https://space.bilibili.com/456667721/(尚在更新中,歡迎關注博主B站視頻)


結束語

    由于博主能力有限,博文中提及的方法即使經過試驗,也難免會有疏漏之處,希望您能熱心指出其中的錯誤,以便下次修改時能以一個更完美更嚴謹的樣子,呈現在大家面前,同時如果有更好的實作方法也請您不吝賜教,如果本博文反響較好,其界面部分也將在下篇博文中介紹,所有涉及的GUI界面程式也會作細致講解,敬請期待!

用心整理知識,只出精品博文

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

標籤:其他

上一篇:redis資料結構

下一篇:創建鏈表并且遍歷鏈表

標籤雲
其他(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