基于opencv+ImageAI+tensorflow的智能動漫人物識別系統——深度學習算法應用(含python、JS、模型源碼)+數據集(一)

目錄

  • 前言
  • 總體設計
    • 系統整體結構圖
    • 系統流程圖
  • 運行環境
    • 爬蟲
      • 1.安裝Anaconda
      • 2.安裝Python3.6
      • 3.更換pip源
      • 4.安裝Python包
      • 5.下載phantomjs
    • 模型訓練
      • 1.安裝依賴
      • 2.安裝lmageAl
    • 實際應用
      • 1.前端
      • 2.安裝Flask
      • 3.安裝Nginx
  • 相關其它博客
  • 工程源代碼下載
  • 其它資料下載


在這里插入圖片描述

前言

本項目通過爬蟲技術獲取圖片,利用OpenCV庫對圖像進行處理,識別并切割出人物臉部,形成了一個用于訓練的數據集。通過ImageAI進行訓練,最終實現了對動漫人物的識別模型。同時,本項目還開發了一個線上Web應用,使得用戶可以方便地體驗和使用該模型。

首先,項目使用爬蟲技術從網絡上獲取圖片。這些圖片包含各種動漫人物,其中我們只對人物臉部進行訓練,所以我們會對圖像進行處理,并最終將這些圖像將作為訓練數據的來源。

其次,利用OpenCV庫對這些圖像進行處理,包括人臉檢測、圖像增強等步驟,以便準確識別并切割出人物臉部。這一步是為了構建一個清晰而準確的數據集,用于模型的訓練。

接下來,通過ImageAI進行訓練。ImageAI是一個簡化圖像識別任務的庫,它可以方便地用于訓練模型,這里用于訓練動漫人物的識別模型。

最終,通過項目開發的線上Web應用,用戶可以上傳動漫圖像,系統將使用訓練好的模型識別圖像中的動漫人物,并返回相應的結果。

總的來說,本項目結合了爬蟲、圖像處理、深度學習和Web開發技術,旨在提供一個便捷的動漫人物識別服務。這對于動漫愛好者、社交媒體平臺等有著廣泛的應用前景。

總體設計

本部分包括系統整體結構圖和系統流程圖。

系統整體結構圖

系統整體結構如圖所示。

在這里插入圖片描述

系統流程圖

系統流程如圖所示。

在這里插入圖片描述

運行環境

本部分包括爬蟲、模型訓練及實際應用運行環境。

爬蟲

安裝Python3.6以上及Selenium3.0.2版本。

1.安裝Anaconda

使用Anaconda管理Python環境。在Windows環境下載Anaconda完成安裝,下載地址為https://www.anaconda.com/。

驗證安裝。單擊菜單【開始】→Anaconda3(64-bit)→Anaconda Navigator,若可以成功啟動Anaconda Navigator則說明安裝成功。

2.安裝Python3.6

打開計算機的cmd命令行窗口,新建Python3.6環境,名稱為TensorFlow:

conda create --name tensorflow python=3.6

激活環境:

conda activate tensorflow

3.更換pip源

由于網絡問題,需要更換Python包管理工具pip的下載源來提高下載速度。按Win+R組合鍵打開用戶目錄%HOMEPATH%,在此目錄下創建pip文件夾以及pip.ini文件,成功更換pip的源為清華鏡像。內容如下:

[global]
timeout = 60000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

4.安裝Python包

新建一個.txt文件并命名為crawler_requirements.txt,寫入如下內容:

future==0.16.0
futures==3.0.5
requests==2.12.1
selenium==3.0.2

在啟動的Python環境cmd窗口輸入:

pip install -r crawler_requirements.txt

即可安裝爬蟲所需要的包。

5.下載phantomjs

Selenium是用于Web應用程序測試的工具,其測試直接在瀏覽器中運行,需要使用phantomjs。在Linux環境下的phantomjs是完整的,可以直接使用pip安裝使用,但是在Windows環境下需要下載phantomjs.exe文件來引用。新建bin文件夾用于存儲phantomjs.exe可執行文件。

官網下載地址:https://phantomjs.org/download.html

模型訓練

本部分包括安裝依賴、安裝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

然后在下載目錄下,運行如下命令安裝ImageAI:

pip3 install imageai-2.0.1-py3-none-any.whl

實際應用

實際應用包括前端開發環境和后端環境的搭建。

1.前端

實際應用過程中需要在官網下載Jquery3.5.0.jsbootstrap 4.4.1.jstemplate.js0.8.0.js等3個文件。

2.安裝Flask

通過ask1.1.2接收和發送用戶請求,使用pip直接安裝:

pip install -y Flask

3.安裝Nginx

本地開發完成后,需要在服務器端運行。配置服務器端的環境為Nginx,Nginx(enginex),是高性能的HTTP和運行代理Web服務器,同時也提供了IMAP/POP3/SMTP服務。Nginx負責接收和轉發用戶請求,同時保證服務器端的負載均衡。

安裝Nginx。選擇穩定版本:服務器端的Linux環境為CentOS 6.2x86_64。使用Linux下包管理工具yum安裝缺少的依賴包:

# yum -y install gcc gcc-c++make libtoolzlib zlib zlib-devel openssl openssl-devel pcre pcre-devel

如果yum上沒有這些軟件包,可以下載源碼編譯安裝,編譯時默認安裝的目錄,確保在安裝Nginx時找到動態庫文件。從網站http://nginx.org/en/download.html下載穩定版nginx-1.6.3.tar.gz到/usr/local/src下解壓。

另外下載2個插件模塊——nginx_upstream_check_module-0.3.0.tar.gznginx-goodies-nginx-sticky-module-ng-bd312d586752.tar.gz(建議在/usr/local/src下解壓后將目錄重命名為nginx-sticky-module-ng-1.2.5),前者用于檢查后端服務器的狀態,后者用于后端做負載均衡解決報錯(sessions ticky問題)。注意插件與Nginx的版本兼容問題,一般插件越新越好,Nginx則無須追求最新的版本。

啟動Nginx服務,命令如下:

systemctl start nginx

修改Nginx的配置文件。

打開/etc/nginx/nginx.conf文件,修改server部分。相關代碼如下:

server {#監聽端口listen 80;#訪問城名server_name localhost;#編碼格式,若網頁格式與此不同,將被自動轉碼#charset koi8#虛擬主機訪問日志定義#access_log logs/host.access.log main;#對URL進行匹配location / {#訪問路徑,可以是相對路徑也可以是絕對路徑root html;#首頁文件,以下按順序匹配index l index.htm;}
}

本項目在阿里云的控制臺開放服務器端口才能被用戶訪問,Nginx服務器默認為80端口。

相關其它博客

基于opencv+ImageAI+tensorflow的智能動漫人物識別系統——深度學習算法應用(含python、JS、模型源碼)+數據集(二)

基于opencv+ImageAI+tensorflow的智能動漫人物識別系統——深度學習算法應用(含python、JS、模型源碼)+數據集(三)

基于opencv+ImageAI+tensorflow的智能動漫人物識別系統——深度學習算法應用(含python、JS、模型源碼)+數據集(四)

工程源代碼下載

詳見本人博客資源下載頁


其它資料下載

如果大家想繼續了解人工智能相關學習路線和知識體系,歡迎大家翻閱我的另外一篇博客《重磅 | 完備的人工智能AI 學習——基礎知識學習路線,所有資料免關注免套路直接網盤下載》
這篇博客參考了Github知名開源平臺,AI技術平臺以及相關領域專家:Datawhale,ApacheCN,AI有道和黃海廣博士等約有近100G相關資料,希望能幫助到所有小伙伴們。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165942.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165942.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165942.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Word怎么看字數?簡單教程分享!

“我在寫文章時,總是想看看寫了多少字。但是我發現我的Word無法看到字數。在Word中應該怎么查看字數呢?請幫幫我!” Word是一個廣泛使用的文檔編輯工具。在我們編輯文章時,如果想查看寫了多少字,也是可以輕松完成的。 …

leetcode:環形鏈表的入環點

題目描述 題目鏈接:力扣(LeetCode)官網 - 全球極客摯愛的技術成長平臺 題目分析 我們假設起點到環的入口點的距離是L,入口點到相遇點的距離是X,環的長度是C 那么畫圖我們可以得知: 從開始到相遇時slow走的距離是LX從…

Adobe的組織工具程序Bridge 2024 版本下載與安裝

目錄 前言一、Bridge 2024安裝二、使用配置總結 前言 Adobe Bridge是由 Adobe 公司開發的一款用于管理和組織創意資產的工具。它是Adobe Creative Cloud 套件的一部分,為設計師、攝影師和其他創意專業人員提供了一個集中管理和瀏覽其多媒體文件的平臺。注&#xff…

Ubuntu開機顯示No bootable devices found

Ubuntu開機報錯,顯示顯示No bootable devices found,如下圖所示: 解決方案如下: 1. F2進入BIOS (1) 重啟開啟,按F2進入BIOS系統。 (2) 進入Boot Sequence,目前系統選擇了UEFI,而Legacy選項為…

Android : AlertDialog對話框、單選、多選、適配器-簡單應用

示例圖: 1 :創建 AlertDialog.Builder 對象; 2 :調用 setIcon() 設置圖標, setTitle() 或 setCustomTitle() 設置標題; 3 :設置對話框的內容: setMessage() 還有其他方法來指定顯示…

【每日一題】2824. 統計和小于目標的下標對數目-2023.11.24

題目&#xff1a; 2824. 統計和小于目標的下標對數目 給你一個下標從 0 開始長度為 n 的整數數組 nums 和一個整數 target &#xff0c;請你返回滿足 0 < i < j < n 且 nums[i] nums[j] < target 的下標對 (i, j) 的數目。 示例 1&#xff1a; 輸入&#xff1…

雙12電視盒子什么牌子好?數碼小編力薦目前最強的電視盒子

最近想買電視盒子的網友非常多&#xff0c;小編收到了很多關于電視盒子方面的咨詢&#xff0c;因此我特意整理了今年測評過的電視盒子&#xff0c;總結了五款目前最強的電視盒子&#xff0c;想知道雙十二買電視盒子什么牌子好就趕緊收藏起來吧。 推薦一&#xff1a;泰捷WEBOX新…

01 LM 算法及 Cpp 實現

文章目錄 01 LM 算法及 Cpp 實現1.1 應用1.2 阻尼法推導1.3 Cpp 算法實現 01 LM 算法及 Cpp 實現 1.1 應用 LM 算法用于解決非線性最小二乘問題 min ? x F ( x ) 1 2 ∥ f ( x ) ∥ 2 2 (1) \min _x F(x)\frac{1}{2}\|f(\boldsymbol{x})\|_2^2 \tag{1} xmin?F(x)21?∥f(x…

代理模式 rust和java的實現

文章目錄 代理模式介紹實現javarust rust倉庫 代理模式 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一個類代表另一個類的功能。在代理模式中&#xff0c;我們創建具有現有對象的對象&#xff0c;以便向外界提供功能接口。 介紹 意圖&#xff1a;為其他對…

jquery中ajax總結

在ajax請求接口的時候&#xff0c;常用到以下參數&#xff0c;在這里記錄下 contentType用于告訴服務器請求的數據類型&#xff0c;常見的有 text/html&#xff1a;HTML網頁 text/plain&#xff1a;純文本 application/json&#xff1a;JSON格式 application/xml&#xff1a;XM…

“KeyarchOS:國產Linux新星的崛起與創新之路“

簡介 KeyarchOS是一款由浪潮信息自主研發的服務器操作系統。它因為幾個特點而受到我的青睞和一些用戶的關注。 首先&#xff0c;KeyarchOS注重安全性和穩定性。它有一些防護和隔離功能&#xff0c;來幫助系統穩定運行&#xff0c;而且是中文語言更接地氣。 其次&#xff0c;Ke…

OSG編程指南<十>:OSG幾何體的繪制

1、場景基本繪圖類 在 OSG 中創建幾何體的方法比較簡單&#xff0c;通常有 3 種處理幾何體的手段&#xff1a; 使用松散封裝的OpenGL 繪圖基元&#xff1b;使用 OSG 中的基本幾何體&#xff1b;從文件中導入場景模型。 使用松散封裝的OpenGL 繪圖基元繪制幾何體具有很強的靈活…

牛氣霸屏-快抖云推獨立版V1.6.7

介紹 快抖云推全插件獨立版是最近很火的牛氣霸屏系統獨立版&#xff0c;牛氣霸屏系統就是商家通過系統在線創建抖音或快手霸屏活動&#xff0c;并生成該活動的爆客二維碼&#xff0c;用戶通過掃二維碼即可參加活動&#xff08;活動可以是領取卡劵&#xff0c;抽獎等&#xff0…

DevExpress中文教程 - 如何在macOS和Linux (CTP)上創建、修改報表(下)

DevExpress Reporting是.NET Framework下功能完善的報表平臺&#xff0c;它附帶了易于使用的Visual Studio報表設計器和豐富的報表控件集&#xff0c;包括數據透視表、圖表&#xff0c;因此您可以構建無與倫比、信息清晰的報表。 DevExpress Reports — 跨平臺報表組件&#x…

linux(1)之build構建系統基礎(一)

Linux(1)之buildroot構建系統(一) Author&#xff1a;Onceday Date&#xff1a;2023年11月12日 漫漫長路&#xff0c;才剛剛開始… 參考文檔&#xff1a; The Yocto ProjectBuildroot - Making Embedded Linux Easy 文章目錄 Linux(1)之buildroot構建系統(一)1. 概述1.1 如…

企業數字化轉型轉什么?怎么轉?這份攻略請收好

目錄 -01-數字化轉型“是什么” -02-數據驅動推動企業數字化轉型 -03-企業數字化轉型的行動路線圖 數字化轉型&#xff0c;轉什么&#xff1f;怎么轉&#xff1f;這些問題仍在困擾不少企業&#xff0c;也是每個企業轉型升級不得不思考的重要問題。對此&#xff0c;中關村數字…

Python潮流周刊#1:如何系統地自學Python?

這里記錄每周值得分享的 Python 及通用技術內容&#xff0c;部分內容為英文&#xff0c;已在小標題注明。&#xff08;本期標題取自其中一則分享&#xff0c;不代表全部內容都是該主題&#xff0c;特此聲明。&#xff09; 文章&教程 1、編程語言的錯誤處理模式 文章討論…

requests請求django接口跨域問題處理

參考&#xff1a; https://zhuanlan.zhihu.com/p/416978320 https://blog.csdn.net/SweetHeartHuaZai/article/details/130983179 使用httpx代替requests import httpxheaders {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…

銷售為什么會選擇使用電銷這種方式 ?

在網絡經濟時代的大環境下&#xff0c;網絡營銷作為一種新型營銷模式和營銷理念&#xff0c;已經搶占了大部分市場。 網絡營銷&#xff0c;是指利用互聯網技術和現代信息技術&#xff0c;以及社交媒體平臺&#xff0c;進行產品宣傳、銷售、服務、品牌傳播等活動的一種營銷模式。…

MySQL-進階

存儲引擎 MySQL體系結構 連接層&#xff1a; 最上層是一些客戶端和連接服務&#xff0c;主要完成一些類似于連接處理、授權認證、及相關的安全方案。服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。服務層&#xff1a; 第二層架構主要完成大多數的核心服務功能&…