前言
本項(xiàng)目通過爬蟲技術(shù)獲取圖片,利用OpenCV庫對(duì)圖像進(jìn)行處理,識(shí)別并切割出人物臉部,形成了一個(gè)用于訓(xùn)練的數(shù)據(jù)集。通過ImageAI進(jìn)行訓(xùn)練,最終實(shí)現(xiàn)了對(duì)動(dòng)漫人物的識(shí)別模型。同時(shí),本項(xiàng)目還開發(fā)了一個(gè)線上Web應(yīng)用,使得用戶可以方便地體驗(yàn)和使用該模型。
首先,項(xiàng)目使用爬蟲技術(shù)從網(wǎng)絡(luò)上獲取圖片。這些圖片包含各種動(dòng)漫人物,其中我們只對(duì)人物臉部進(jìn)行訓(xùn)練,所以我們會(huì)對(duì)圖像進(jìn)行處理,并最終將這些圖像將作為訓(xùn)練數(shù)據(jù)的來源。
其次,利用OpenCV庫對(duì)這些圖像進(jìn)行處理,包括人臉檢測(cè)、圖像增強(qiáng)等步驟,以便準(zhǔn)確識(shí)別并切割出人物臉部。這一步是為了構(gòu)建一個(gè)清晰而準(zhǔn)確的數(shù)據(jù)集,用于模型的訓(xùn)練。
接下來,通過ImageAI進(jìn)行訓(xùn)練。ImageAI是一個(gè)簡(jiǎn)化圖像識(shí)別任務(wù)的庫,它可以方便地用于訓(xùn)練模型,這里用于訓(xùn)練動(dòng)漫人物的識(shí)別模型。
最終,通過項(xiàng)目開發(fā)的線上Web應(yīng)用,用戶可以上傳動(dòng)漫圖像,系統(tǒng)將使用訓(xùn)練好的模型識(shí)別圖像中的動(dòng)漫人物,并返回相應(yīng)的結(jié)果。
總的來說,本項(xiàng)目結(jié)合了爬蟲、圖像處理、深度學(xué)習(xí)和Web開發(fā)技術(shù),旨在提供一個(gè)便捷的動(dòng)漫人物識(shí)別服務(wù)。這對(duì)于動(dòng)漫愛好者、社交媒體平臺(tái)等有著廣泛的應(yīng)用前景。
總體設(shè)計(jì)
本部分包括系統(tǒng)整體結(jié)構(gòu)圖和系統(tǒng)流程圖。
系統(tǒng)整體結(jié)構(gòu)圖
系統(tǒng)整體結(jié)構(gòu)如圖所示。
系統(tǒng)流程圖
系統(tǒng)流程如圖所示。
運(yùn)行環(huán)境
本部分包括爬蟲、模型訓(xùn)練及實(shí)際應(yīng)用運(yùn)行環(huán)境。
爬蟲
安裝Python3.6以上及Selenium3.0.2版本。
1.安裝Anaconda
使用Anaconda管理Python環(huán)境。在Windows環(huán)境下載Anaconda完成安裝,下載地址為https://www.anaconda.com/。
驗(yàn)證安裝。單擊菜單【開始】→Anaconda3(64-bit)→Anaconda Navigator,若可以成功啟動(dòng)Anaconda Navigator則說明安裝成功。
2.安裝Python3.6
打開計(jì)算機(jī)的cmd命令行窗口,新建Python3.6環(huán)境,名稱為TensorFlow:
conda create --name tensorflow python=3.6
激活環(huán)境:
conda activate tensorflow
3.更換pip源
由于網(wǎng)絡(luò)問題,需要更換Python包管理工具pip的下載源來提高下載速度。按Win+R
組合鍵打開用戶目錄%HOMEPATH%
,在此目錄下創(chuàng)建pip文件夾以及pip.ini
文件,成功更換pip的源為清華鏡像。內(nèi)容如下:
[global]
timeout = 60000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
4.安裝Python包
新建一個(gè).txt
文件并命名為crawler_requirements.txt
,寫入如下內(nèi)容:
future==0.16.0
futures==3.0.5
requests==2.12.1
selenium==3.0.2
在啟動(dòng)的Python環(huán)境cmd窗口輸入:
pip install -r crawler_requirements.txt
即可安裝爬蟲所需要的包。
5.下載phantomjs
Selenium是用于Web應(yīng)用程序測(cè)試的工具,其測(cè)試直接在瀏覽器中運(yùn)行,需要使用phantomjs。在Linux環(huán)境下的phantomjs是完整的,可以直接使用pip安裝使用,但是在Windows環(huán)境下需要下載phantomjs.exe
文件來引用。新建bin文件夾用于存儲(chǔ)phantomjs.exe
可執(zhí)行文件。
官網(wǎng)下載地址:https://phantomjs.org/download.html
模型訓(xùn)練
本部分包括安裝依賴、安裝ImageAI。
1.安裝依賴
TensorFlow 1.4.0(及更高版本)安裝或通過pip安裝:
pip3 install -- upgrade tensorflow
Numpy1.13.1(及更高版本)安裝或通過pip安裝:
pip3 install numpy
SciPy0.19.1(及更高版本)安裝或通過pip安裝:
pip3 install scipy
OpenCV安裝或通過pip安裝:
pip3 install opencv - python
pillow安裝或通過pip安裝:
pip3 install pillow
Matplotlib安裝或通過pip安裝:
pip3 install matplotlib
h5py安裝或通過pip安裝:
pip3 install h5py
Keras2.x安裝或通過pip安裝:
pip3 install keras
2.安裝lmageAl
可以直接通過下面命令安裝ImageAI:
pip3 install imageai
也可以先下載imageai-2.0.1-py3-none-any.whl
。
下載地址為https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl
然后在下載目錄下,運(yùn)行如下命令安裝ImageAI:
pip3 install imageai-2.0.1-py3-none-any.whl
實(shí)際應(yīng)用
實(shí)際應(yīng)用包括前端開發(fā)環(huán)境和后端環(huán)境的搭建。
1.前端
實(shí)際應(yīng)用過程中需要在官網(wǎng)下載Jquery3.5.0.js
、bootstrap 4.4.1.js
和template.js0.8.0.js
等3個(gè)文件。
2.安裝Flask
通過ask1.1.2接收和發(fā)送用戶請(qǐng)求,使用pip直接安裝:
pip install -y Flask
3.安裝Nginx
本地開發(fā)完成后,需要在服務(wù)器端運(yùn)行。配置服務(wù)器端的環(huán)境為Nginx,Nginx(enginex),是高性能的HTTP和運(yùn)行代理Web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。Nginx負(fù)責(zé)接收和轉(zhuǎn)發(fā)用戶請(qǐng)求,同時(shí)保證服務(wù)器端的負(fù)載均衡。
安裝Nginx。選擇穩(wěn)定版本:服務(wù)器端的Linux環(huán)境為CentOS 6.2x86_64
。使用Linux下包管理工具yum安裝缺少的依賴包:
# yum -y install gcc gcc-c++make libtoolzlib zlib zlib-devel openssl openssl-devel pcre pcre-devel
如果yum上沒有這些軟件包,可以下載源碼編譯安裝,編譯時(shí)默認(rèn)安裝的目錄,確保在安裝Nginx時(shí)找到動(dòng)態(tài)庫文件。從網(wǎng)站http://nginx.org/en/download.html下載穩(wěn)定版nginx-1.6.3.tar.gz
到/usr/local/src下解壓。
另外下載2個(gè)插件模塊——nginx_upstream_check_module-0.3.0.tar.gz
和 nginx-goodies-nginx-sticky-module-ng-bd312d586752.tar.gz
(建議在/usr/local/src下解壓后將目錄重命名為nginx-sticky-module-ng-1.2.5
),前者用于檢查后端服務(wù)器的狀態(tài),后者用于后端做負(fù)載均衡解決報(bào)錯(cuò)(sessions ticky問題)。注意插件與Nginx的版本兼容問題,一般插件越新越好,Nginx則無須追求最新的版本。
啟動(dòng)Nginx服務(wù),命令如下:
systemctl start nginx
修改Nginx的配置文件。
打開/etc/nginx/nginx.conf
文件,修改server部分。相關(guān)代碼如下:
server {
#監(jiān)聽端口
listen 80;
#訪問城名
server_name localhost;
#編碼格式,若網(wǎng)頁格式與此不同,將被自動(dòng)轉(zhuǎn)碼
#charset koi8
#虛擬主機(jī)訪問日志定義
#access_log logs/host.access.log main;
#對(duì)URL進(jìn)行匹配
location / {
#訪問路徑,可以是相對(duì)路徑也可以是絕對(duì)路徑
root html;
#首頁文件,以下按順序匹配
index l index.htm;
}
}
本項(xiàng)目在阿里云的控制臺(tái)開放服務(wù)器端口才能被用戶訪問,Nginx服務(wù)器默認(rèn)為80端口。
相關(guān)其它博客
基于opencv+ImageAI+tensorflow的智能動(dòng)漫人物識(shí)別系統(tǒng)——深度學(xué)習(xí)算法應(yīng)用(含python、JS、模型源碼)+數(shù)據(jù)集(二)
基于opencv+ImageAI+tensorflow的智能動(dòng)漫人物識(shí)別系統(tǒng)——深度學(xué)習(xí)算法應(yīng)用(含python、JS、模型源碼)+數(shù)據(jù)集(三)
基于opencv+ImageAI+tensorflow的智能動(dòng)漫人物識(shí)別系統(tǒng)——深度學(xué)習(xí)算法應(yīng)用(含python、JS、模型源碼)+數(shù)據(jù)集(四)
工程源代碼下載
詳見本人博客資源下載頁文章來源:http://www.zghlxwxcb.cn/news/detail-765145.html
其它資料下載
如果大家想繼續(xù)了解人工智能相關(guān)學(xué)習(xí)路線和知識(shí)體系,歡迎大家翻閱我的另外一篇博客《重磅 | 完備的人工智能AI 學(xué)習(xí)——基礎(chǔ)知識(shí)學(xué)習(xí)路線,所有資料免關(guān)注免套路直接網(wǎng)盤下載》
這篇博客參考了Github知名開源平臺(tái),AI技術(shù)平臺(tái)以及相關(guān)領(lǐng)域?qū)<遥篋atawhale,ApacheCN,AI有道和黃海廣博士等約有近100G相關(guān)資料,希望能幫助到所有小伙伴們。文章來源地址http://www.zghlxwxcb.cn/news/detail-765145.html
到了這里,關(guān)于基于opencv+ImageAI+tensorflow的智能動(dòng)漫人物識(shí)別系統(tǒng)——深度學(xué)習(xí)算法應(yīng)用(含python、JS、模型源碼)+數(shù)據(jù)集(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!