99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

接觸深度學習3個月以來,從當初的小白零基礎學習,過程十分艱苦,看了幾章大牛 YoshuaBengio 寫的deep learning一書,粗略了解了基本常用的神經網絡以及梯度更新策略,參數優(yōu)化,也了解以及簡單的使用常用的深度學習開發(fā)框架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%,還算可以的準確率

具體實現(xiàn)代碼:https://github.com/zhanghao-JNU/keras-training

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

責任編輯:lq

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

    關注

    42

    文章

    4814

    瀏覽量

    103690
  • 數據集
    +關注

    關注

    4

    文章

    1224

    瀏覽量

    25459
  • 深度學習
    +關注

    關注

    73

    文章

    5561

    瀏覽量

    122811

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【嘉楠堪智K230開發(fā)板試用體驗】01 Studio K230開發(fā)板Test2——手掌,手勢檢測,字符檢測

    這篇發(fā)完就繼續(xù)去整比賽了,后續(xù)看電賽上k230的發(fā)揮吧 之前的顏色識別和二維碼識別功能,類似于使用基礎工具進行圖像分析,適用于簡單任務,但在復雜場景下能力有限。 KPU(神經網絡處理器
    發(fā)表于 07-10 09:45

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

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

    在友晶LabCloud平臺上使用PipeCNN實現(xiàn)ImageNet圖像分類

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

    基于RV1126開發(fā)板實現(xiàn)自學習圖像分類方案

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

    電子元器件的分類方式

    電子元器件可以按照不同的分類標準進行分類,以下是一些常見的分類方式。
    的頭像 發(fā)表于 04-16 14:52 ?900次閱讀

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

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

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

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

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

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

    基于鎖相放大器的電渦流金屬分類系統(tǒng)設計

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

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

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

    如何使用ddc進行數據分類

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

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

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

    使用卷積神經網絡進行圖像分類的步驟

    使用卷積神經網絡(CNN)進行圖像分類是一個涉及多個步驟的過程。 1. 問題定義 確定目標 :明確你想要分類的圖像類型,例如貓和狗、不同的植物種類等。 數據需求 :確定需要多少數據以及數據的類型
    的頭像 發(fā)表于 11-15 15:01 ?850次閱讀

    減速電機該如何分類?

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

    使用MODE引腳進行簡單的恒壓調節(jié)

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