女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    4809

    瀏覽量

    102836
  • 數據集
    +關注

    關注

    4

    文章

    1223

    瀏覽量

    25284
  • 深度學習
    +關注

    關注

    73

    文章

    5555

    瀏覽量

    122499

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

    利用深度卷積神經網絡(CNN)進行圖像分類是通過使用多個卷積層從輸入數據中提取特征,最后通過分類層做決策
    的頭像 發表于 04-23 09:42 ?286次閱讀
    在友晶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 ?366次閱讀

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

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

    如何使用ddc進行數據分類

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

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

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

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

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

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

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

    keras模型轉tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個高級神經網絡API,它提供了一種簡單、快
    的頭像 發表于 07-05 09:36 ?807次閱讀

    keras的模塊結構介紹

    Keras是一個高級深度學習庫,它提供了一個易于使用的接口構建和訓練深度學習模型。Keras是基于TensorFlow、Theano或CNTK等底層計算庫構建的。以下是Keras的模
    的頭像 發表于 07-05 09:35 ?640次閱讀

    導入keras或者onnx模型到cubeai進行分析,為什么會報錯?

    請問我導入keras或者onnx模型到cubeai進行分析,為什么會報錯,而且沒有報錯內容,cubeai版本9.0.0。換成8.1.0版本后報錯內容是invalid network。該怎么入手解決。
    發表于 07-03 07:55

    【Vision Board創客營連載體驗】TinyMaix進行手寫數字識別

    打開r-tinymaix安裝包即可。 最后運行效果如下: 1.cifar10實例,分類檢測,識別圖片是一只鳥: 2. mnist實例,數字識別
    發表于 06-15 08:40