在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用keras來簡單的進行圖片識別分類

新機器視覺 ? 來源:深度學習科研平臺 ? 作者:深度學習科研平臺 ? 2021-03-20 09:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

接觸深度學習3個月以來,從當初的小白零基礎學習,過程十分艱苦,看了幾章大牛 YoshuaBengio 寫的deep learning一書,粗略了解了基本常用的神經網絡以及梯度更新策略,參數優化,也了解以及簡單的使用常用的深度學習開發框架caffe,tensorflow,theano,sklearn機器學習庫,目前keras比較火,所以使用keras來簡單的進行圖片識別分類。

數據集準備:

看caffe博客的時候看到的數據集,然后就下載使用,數據集可以在最后下載。

數據集一共有5類圖片,一共500張,每類圖片100張,訓練集400張,每類80張,測試集100張,每類20張

第一步:

數據集進行處理:

使用opencv對圖片進行處理,縮放圖片大小為128×128大小,通道為單通道灰度圖像

#coding:utf8

import os

import cv2.cv as cv

import cv2

# 遍歷指定目錄,顯示目錄下的所有文件名

width_scale = 192 #縮放尺寸寬度

height_scale = 128#縮放尺寸高度

write_path = "/home/zhanghao/data/classification/test_scale/"#要寫入的圖片路徑

#遍歷每一張圖片進行處理

def eachFile(filepath):

pathDir = os.listdir(filepath)

for allDir in pathDir:

child = os.path.join('%s%s' % (filepath,allDir))

write_child = os.path.join('%s%s' % (write_path,allDir))

image = cv.LoadImage(child,0)

des_image = cv.CreateImage((width_scale,height_scale),image.depth,1)

cv.Resize(image,des_image,cv2.INTER_AREA)

# cv.ShowImage('afe',des_image)

cv.SaveImage(write_child,des_image)

# break

if __name__ == '__main__':

filePathC = "/home/zhanghao/data/classification/test/"

eachFile(filePathC)

5439c10a-88ef-11eb-8b86-12bb97331649.png

第二步

把圖片集制作成keras識別的數據集

#制作數據集

def data_label(path,count):

data = np.empty((count,1,128,192),dtype = 'float32')#建立空的四維張量類型32位浮點

label = np.empty((count,),dtype = 'uint8')

i = 0

pathDir = os.listdir(path)

for each_image in pathDir:

all_path = os.path.join('%s%s' % (path,each_image))#路徑進行連接

image = cv2.imread(all_path,0)

mul_num = re.findall(r"d",all_path)#尋找字符串中的數字,由于圖像命名為300.jpg 標簽設置為0

num = int(mul_num[0])-3

# print num,each_image

# cv2.imshow("fad",image)

# print child

array = np.asarray(image,dtype='float32')

data[i,:,:,:] = array

label[i] = int(num)

i += 1

return data,label

第三步

構建卷積神經網絡進行訓練和測試

#構建卷積神經網絡

def cnn_model(train_data,train_label,test_data,test_label):

model = Sequential()

model.add(Convolution2D(

nb_filter = 12,

nb_row = 3,

nb_col = 3,

border_mode = 'valid',

dim_ordering = 'th',

input_shape = (1,128,192)))

model.add(Activation('relu'))#激活函數使用修正線性單元

model.add(MaxPooling2D(

pool_size = (2,2),

strides = (2,2),

border_mode = 'valid'))

model.add(Convolution2D(

24,

3,

3,

border_mode = 'valid',

dim_ordering = 'th'))

model.add(Activation('relu'))

#池化層 24×29×29

model.add(MaxPooling2D(

pool_size = (2,2),

strides = (2,2),

border_mode = 'valid'))

model.add(Convolution2D(

48,

3,

3,

border_mode = 'valid',

dim_ordering = 'th'))

model.add(Activation('relu'))

model.add(MaxPooling2D(

pool_size = (2,2),

strides =(2,2),

border_mode = 'valid'))

model.add(Flatten())

model.add(Dense(20))

model.add(Activation(LeakyReLU(0.3)))

model.add(Dropout(0.5))

model.add(Dense(20))

model.add(Activation(LeakyReLU(0.3)))

model.add(Dropout(0.4))

model.add(Dense(5,init = 'normal'))

model.add(Activation('softmax'))

adam = Adam(lr = 0.001)

model.compile(optimizer = adam,

loss = 'categorical_crossentropy',

metrics = ['accuracy'])

print '----------------training-----------------------'

model.fit(train_data,train_label,batch_size = 12,nb_epoch = 35,shuffle = True,show_accuracy = True,validation_split = 0.1)

print '----------------testing------------------------'

loss,accuracy = model.evaluate(test_data,test_label)

print ' test loss:',loss

print ' test accuracy',accuracy

第四步

調用上述函數進行訓練預測

train_path = '/home/zhanghao/data/classification/train_scale/'

test_path = '/home/zhanghao/data/classification/test_scale/'

train_count = getnum(train_path)

test_count = getnum(test_path)

train_data,train_label = data_label(train_path,train_count)

test_data,test_label = data_label(test_path,test_count)

train_label = np_utils.to_categorical(train_label,nb_classes = 5)

test_label = np_utils.to_categorical(test_label,nb_classes = 5)

cnn_model(train_data,train_label,test_data,test_label)

用到的頭文件

import re

import cv2

import os

import numpy as np

import cv2.cv as cv

from keras.models import Sequential

from keras.layers.core import Dense,Activation,Flatten

from keras.layers.convolutional import Convolution2D,MaxPooling2D

from keras.optimizers import Adam

from keras.layers.advanced_activations import LeakyReLU

from keras.utils import np_utils

cpu運行,迭代50次,預測準確率達到92%,還算可以的準確率

具體實現代碼:https://github.com/zhanghao-JNU/keras-training

路漫漫其修遠兮,吾將上下而求索

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4813

    瀏覽量

    103416
  • 數據集
    +關注

    關注

    4

    文章

    1223

    瀏覽量

    25400
  • 深度學習
    +關注

    關注

    73

    文章

    5560

    瀏覽量

    122744

原文標題:使用CNN神經網絡進行圖片識別分類

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于LockAI視覺識別模塊:手寫數字識別

    分類,適合處理較為規范的手寫數字。 K近鄰算法(KNN):基于相似度的分類方法,通過比較待識別數字與訓練樣本的距離進行
    發表于 06-30 16:45

    在友晶LabCloud平臺上使用PipeCNN實現ImageNet圖像分類

    利用深度卷積神經網絡(CNN)進行圖像分類是通過使用多個卷積層從輸入數據中提取特征,最后通過分類層做決策
    的頭像 發表于 04-23 09:42 ?388次閱讀
    在友晶LabCloud平臺上使用PipeCNN實現ImageNet圖像<b class='flag-5'>分類</b>

    基于RV1126開發板實現自學習圖像分類方案

    在RV1126開發板上實現自學習:在識別前對物體圖片進行模型學習,訓練完成后通過算法分類得出圖像的模型ID。 方案設計邏輯流程圖,方案代碼分為分為兩個業務流程,主體代碼負
    的頭像 發表于 04-21 13:37 ?11次閱讀
    基于RV1126開發板實現自學習圖像<b class='flag-5'>分類</b>方案

    如何將Keras H5模型轉換為中間表示 (IR) 格式?

    第 1 步: 將 Keras H5 模型轉換為保存的型號格式 安裝 依賴關系: cd deployment_toolsmodel_optimizerinstall_prerequisites
    發表于 03-07 06:11

    轉換Keras H5模型,為什么無法確定--input_shape參數的值?

    使用以下命令轉換 Keras H5 模型: mo --saved_model_dir model/ 遇到以下錯誤: [ ERROR ] Shape [-1 30 30 3
    發表于 03-05 07:51

    使用DLP4500進行圖片投影時,內置Flash太小,無法投影更多的圖片,怎么解決?

    在使用DLP4500進行圖片投影時,內置Flash太小,無法投影更多的圖片,請問有其他方法能夠投影更多的圖片嗎?或者有其他flash更大的型號DLP推薦嗎?
    發表于 02-18 07:33

    基于鎖相放大器的電渦流金屬分類系統設計

    電渦流檢測是一種通過檢測金屬導體感應出的微小渦流信號識別被測材料性質的方法。在利用電渦流檢測技術進行金屬分類時,微弱信號甚至會被噪聲信號完全淹沒,這使提取有效信號變得非常困難。
    的頭像 發表于 01-18 10:24 ?423次閱讀

    LabVIEW使用Vision視覺進行硬幣分類計數

    LabVIEW使用Vision視覺進行硬幣分類計數,有償,帶價加q:3430396759
    發表于 12-29 20:20

    如何使用ddc進行數據分類

    在探討如何使用DDC(Dewey Decimal Classification,即杜威十進制分類法)進行數據分類時,我們首先需要明確DDC是一種用于圖書館分類和組織圖書的體系,它按照一
    的頭像 發表于 12-18 15:05 ?1112次閱讀

    如何用OpenCV的相機捕捉視頻進行人臉檢測--基于米爾NXP i.MX93開發板

    功能,首先要進行人臉檢測,判斷出圖片中人臉的位置,才能進行下一步的操作。 OpenCV人臉檢測方法 在OpenCV中主要使用了兩種特征(即兩種方法)進行人臉檢測,Haar特征和LBP特
    發表于 11-15 17:58

    減速電機該如何分類

    減速電機是一種將電能轉換為機械能的設備,通過內置的減速機構降低電機的轉速,同時增加扭矩。這種設備廣泛應用于各種工業自動化、輸送系統、機器人等領域。減速電機可以根據不同的標準進行分類,以下是一些常見
    的頭像 發表于 10-24 10:19 ?1105次閱讀

    使用MODE引腳進行簡單的恒壓調節

    電子發燒友網站提供《使用MODE引腳進行簡單的恒壓調節.pdf》資料免費下載
    發表于 08-30 10:05 ?0次下載
    使用MODE引腳<b class='flag-5'>進行</b><b class='flag-5'>簡單</b>的恒壓調節

    基于高光譜數據的典型地物分類識別方法研究

    隨著成像光譜儀器的廣泛應用,利用光譜數據進行物質分類識別已經成為一項重要的研究內容,研究不同分類算法對最終的目標識別準確度具有重要意義。
    的頭像 發表于 07-18 14:43 ?846次閱讀
    基于高光譜數據的典型地物<b class='flag-5'>分類</b><b class='flag-5'>識別</b>方法研究

    基于PYNQ的智能垃圾分類系統

    的準確率。市民將垃圾投入到垃圾桶后,桶內的攝像頭會對垃圾進行拍照,通過數據庫對比識別垃圾的種類,判定結果通過開發板回傳至垃圾桶,控制舵機轉動隔板完成分類。 可實現功能: (1)在圖像識別
    發表于 07-09 18:44

    深度學習中的時間序列分類方法

    時間序列分類(Time Series Classification, TSC)是機器學習和深度學習領域的重要任務之一,廣泛應用于人體活動識別、系統監測、金融預測、醫療診斷等多個領域。隨著深度學習技術
    的頭像 發表于 07-09 15:54 ?2095次閱讀
    主站蜘蛛池模板: 色窝网| 国产叼嘿网站免费观看不用充会员 | 国产免费午夜 | 你懂的手机在线 | 日本不卡视频在线播放 | 亚洲天堂bt| 日本人zzzwww色视频 | 免费一级毛片在线播放不收费 | 精品免费久久久久久成人影院 | 久久青草精品一区二区三区 | 特黄特级高清免费视频毛片 | 五月天丁香色 | 能在线观看的一区二区三区 | 美女鲜嫩bbbb | 黄色三级视频 | 正在播放淫亚洲 | 免费国内精品久久久久影院 | 日韩一级免费视频 | 日韩性xxx | 久久久久亚洲香蕉网 | 1024手机在线看 | 色香视频首页 | ts人妖在线观看 | 特黄a大片免费视频 | 亚洲天堂网站 | 天天操夜夜操 | 国产美女久久 | 激情综合网色播五月 | 天堂激情 | 婷婷爱五月 | 美国一级大黄香蕉片 | 在线观看色视频网站 | 福利片在线观看免费高清 | 在线免费视频国产 | 黄色录像欧美 | 手机成人在线视频 | 欧美在线视频看看 | 亚洲爱爱网站 | 日本三级午夜 | 天天色资料| 夜夜春夜夜夜夜猛噜噜噜噜噜 |