91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

數(shù)據(jù)集準備:

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

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

第一步:

數(shù)據(jù)集進行處理:

使用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識別的數(shù)據(jù)集

#制作數(shù)據(jù)集

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)#尋找字符串中的數(shù)字,由于圖像命名為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

第三步

構(gòu)建卷積神經(jīng)網(wǎng)絡進行訓練和測試

#構(gòu)建卷積神經(jīng)網(wǎng)絡

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'))#激活函數(shù)使用修正線性單元

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

第四步

調(diào)用上述函數(shù)進行訓練預測

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

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

原文標題:使用CNN神經(jīng)網(wǎng)絡進行圖片識別分類

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    京東圖片搜索API深度解析:以圖搜貨賦能電商全場景

    品分析、智能推薦等場景。 一、前言 隨著人工智能和圖像識別技術(shù)的發(fā)展,傳統(tǒng)的文本搜索已無法滿足用戶對商品識別的多樣化需求。京東圖片搜索API應運而生,它允許開發(fā)者通過簡單的接口調(diào)用,實
    的頭像 發(fā)表于 02-08 14:56 ?698次閱讀

    渣土車識別檢測系統(tǒng) 基于YOLOv8與RNN

    渣土車識別檢測系統(tǒng)是基于卡口圖片的視覺圖像分析,渣土車識別檢測系統(tǒng)對前端卡口相機抓拍上傳圖像至系統(tǒng)服務器的圖片進行實時檢測,實時分析。當監(jiān)控
    的頭像 發(fā)表于 12-19 20:28 ?351次閱讀
    渣土車<b class='flag-5'>識別</b>檢測系統(tǒng) 基于YOLOv8與RNN

    1688拍立淘圖片搜索API概述

    1688 拍立淘是基于圖像識別技術(shù)的商品搜索服務,允許用戶通過上傳圖片搜索相似商品。 1.主要功能特點 以圖搜圖:通過圖片內(nèi)容識別相似商品
    的頭像 發(fā)表于 12-17 14:56 ?384次閱讀

    淘寶圖片搜索商品API指南

    一、摘要 淘寶圖片搜索商品API是基于圖像識別技術(shù)的智能搜索接口,允許用戶通過上傳商品圖片搜索相似或同款商品。該接口廣泛應用于比價、找同款、商品
    的頭像 發(fā)表于 12-08 14:26 ?1201次閱讀

    【啟揚方案】基于RK3576的智能垃圾分類站應用解決方案

    的智能技術(shù),結(jié)合傳感器、人工智能和互聯(lián)網(wǎng)技術(shù),實現(xiàn)了自動化的垃圾分類和管理。通過智能識別系統(tǒng),可以準確識別分類不同垃圾,提高分類的準確性和效
    的頭像 發(fā)表于 12-04 17:29 ?986次閱讀
    【啟揚方案】基于RK3576的智能垃圾<b class='flag-5'>分類</b>站應用解決方案

    電能質(zhì)量在線監(jiān)測裝置是如何進行電壓中斷事件的分類的?

    電能質(zhì)量在線監(jiān)測裝置嚴格按照 國家標準 (GB/T 30137-2013/2024) 和國際標準 (IEC 61000-4-30)對電壓中斷事件進行分類,主要基于幅值閾值 和 持續(xù)時間 兩個核心維度
    的頭像 發(fā)表于 11-27 16:30 ?920次閱讀
    電能質(zhì)量在線監(jiān)測裝置是如何<b class='flag-5'>進行</b>電壓中斷事件的<b class='flag-5'>分類</b>的?

    發(fā)布元服務配置應用分類、標簽和資質(zhì)信息(僅分發(fā)手表設備)

    進行篩選。 說明 運動手表設備只需設置分類,暫不支持設置標簽。 配置版權(quán)信息 登錄AppGallery Connect,點擊“APP與元服務”。 選擇要發(fā)布的元服務。 左側(cè)導航選擇“應用上架 &
    發(fā)表于 10-30 17:47

    基于級聯(lián)分類器的人臉檢測基本原理

    關系檢測人臉。基于統(tǒng)計的方法將人臉看成統(tǒng)一的二維像素矩陣,通過大量的樣本構(gòu)建人臉子空間,通過相似度的大小判斷人臉是否存在。 2) 基于灰度特征的人臉級聯(lián)分類器 基于灰度特征的人臉檢測級聯(lián)
    發(fā)表于 10-30 06:14

    RFID在垃圾分類中的核心優(yōu)勢

    居民投放垃圾時,系統(tǒng)自動識別投放者身份,并判斷是否正確分類,提升分類準確率。激勵與監(jiān)督機制系統(tǒng)可根據(jù)正確分類行為自動積分獎勵,鼓勵居民積極參與;對錯誤投放行為可
    的頭像 發(fā)表于 09-23 11:08 ?557次閱讀
    RFID在垃圾<b class='flag-5'>分類</b>中的核心優(yōu)勢

    如何對電能質(zhì)量在線監(jiān)測裝置的應用場景進行分類?

    、功能配置、數(shù)據(jù)精度要求差異顯著,分類結(jié)果可直接指導裝置選型、校準頻率設定及運維策略制定。以下從 4 個核心維度進行詳細分類: 一、按電力系統(tǒng) “發(fā) - 輸 - 配 - 用” 層級分類
    的頭像 發(fā)表于 09-02 17:48 ?799次閱讀
    如何對電能質(zhì)量在線監(jiān)測裝置的應用場景<b class='flag-5'>進行</b><b class='flag-5'>分類</b>?

    基于米爾瑞芯微RK3576開發(fā)板部署運行TinyMaix:超輕量級推理框架

    vww測試,主要是將圖片信息轉(zhuǎn)化為數(shù)組格式提供給網(wǎng)絡輸入。 手寫數(shù)字識別的例程也是十分簡單,只需要: 庫文件已經(jīng)是高度封裝且兼容,所以很輕松地就可以在linux以及其它平臺上移植,在RK3576這種高性能soc的加持下,
    發(fā)表于 07-25 16:35

    ocr識別時數(shù)據(jù)集上傳壓縮包,上傳成功,但不顯示圖片圖片數(shù)量仍顯示0,為什么?

    ocr識別時數(shù)據(jù)集上傳壓縮包,上傳成功,但不顯示圖片圖片數(shù)量仍顯示0
    發(fā)表于 07-23 08:11

    基于LockAI視覺識別模塊:手寫數(shù)字識別

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

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

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