圖像識別:導入數據

2021-12-25 BAT程式設計師
克隆 Git 存儲庫

1

2

3

4

$ git clone https://github.com/ScrapCodes/image-recognition-tensorflow.git

$ cd image-recognition-tensorflow

$ python

>>>

導入 TensorFlow、Keras 和其他助手庫

我使用 TensorFlow 和 Keras 運行機器學習,使用 Pillow Python 庫進行圖像處理。

通過使用 pip,可以如下所示將這些項安裝在 macOS 上:

1

sudo pip install tensorflow matplotlib pillow

注意:是否需要使用 sudo 取決於如何在系統上安裝 Python 和 pip。配置了虛擬環境的系統可能不需要 sudo。

導入 Python 庫。

1

2

3

4

5

6

7

8

9

10

11

12

13

# TensorFlow and tf.keras

import tensorflow as tf

from tensorflow import keras

 

# Helper libraries

import numpy as np

import matplotlib.pyplot as plt

import glob, os

import re

 

# Pillow

import PIL

from PIL import Image

加載數據

用於預處理輸入圖像的 Python 函數。要將圖像轉換為 numpy 數組,它們必須具有相同的尺寸:

1

2

3

4

5

6

7

8

9

10

11

12

13

# Use Pillow library to convert an input jpeg to a 8 bit grey scale image array for processing.

def jpeg_to_8_bit_greyscale(path, maxsize):

        img = Image.open(path).convert('L')   # convert image to 8-bit grayscale

        # Make aspect ratio as 1:1, by applying image crop.

    # Please note, croping works for this data set, but in general one

    # needs to locate the subject and then crop or scale accordingly.

        WIDTH, HEIGHT = img.size

        if WIDTH != HEIGHT:

                m_min_d = min(WIDTH, HEIGHT)

                img = img.crop((0, 0, m_min_d, m_min_d))

        # Scale the image to the requested maxsize by Anti-alias sampling.

        img.thumbnail(maxsize, PIL.Image.ANTIALIAS)

        return np.asarray(img)

用於將數據集從圖像加載到 numpy 數組中的 Python 函數:

1

2

3

4

5

6

7

8

9

10

11

12

13

def load_image_dataset(path_dir, maxsize):

        images = []

        labels = []

        os.chdir(path_dir)

        for file in glob.glob("*.jpg"):

                img = jpeg_to_8_bit_greyscale(file, maxsize)

                if re.match('chihuahua.*', file):

                        images.append(img)

                        labels.append(0)

                elif re.match('muffin.*', file):

                        images.append(img)

                        labels.append(1)

        return (np.asarray(images), np.asarray(labels))

我們應該將圖像縮放到比實際圖像解析度小的標準尺寸。這些圖像超過了 170×170,因此我們將它們全部縮小到 100×100 以進一步處理:

要加載數據,可執行以下函數並加載訓練和測試數據集:

1

2

3

(train_images, train_labels) = load_image_dataset('/Users/yourself/image-recognition-tensorflow/chihuahua-muffin', maxsize)

 

(test_images, test_labels) = load_image_dataset('/Users/yourself/image-recognition-tensorflow/chihuahua-muffin/test_set', maxsize)

最後,我們定義數據集的類名。由於此數據只有兩個類(圖像可以是 Chihuahua 或 Muffin),因此我們具有的 class_names 如下所示:

1

class_names = ['chihuahua', 'muffin']

相關焦點

  • 第85講 Python深度學習之圖像識別
    前面有幾講也是關於機器學習在圖像識別中的應用。今天再來講一個關於運用google的深度學習框架tensorflow和keras進行訓練深度神經網絡,並對未知圖像進行預測。導入python模塊導入圖像數據
  • 技術博客|快速入門數據增強方法Mixup,顯著提升圖像識別準確度
    快速入門數據增強方法Mixup顯著提升圖像識別準確度深度學習蓬勃發展的這幾年來,圖像分類一直是最為火熱的領域之一。傳統上的圖像識別嚴重依賴像是擴張/侵蝕或者是頻域變換這樣的處理方法,但特徵提取的困難性限制了這些方法的進步空間。現如今的神經網絡則顯著提高了圖像識別的準確率,因為神經網絡能夠尋找輸入圖像和輸出標籤之間的關係,並以此不斷地調整它的識別策略。然而,神經網絡往往需要大量的數據進行訓練,而優質的訓練數據並不是唾手可得的。
  • CIFAR-10數據集應用:快速入門數據增強方法Mixup,顯著提升圖像識別準確度
    本文介紹的是以格物鈦公開數據集平臺中的 CIFAR-10 數據集為基礎,通過數據增強方法 Mixup,顯著提升圖像識別準確度。關於作者:Ta-Ying Cheng,牛津大學博士研究生,Medium 技術博主,多篇文章均被平臺官方刊物 Towards Data Science 收錄(翻譯:頌賢)。
  • 【圖像數據標註】工具的測評集合
    給標註工具提供一幅圖像,讓其在圖像內特定對象周圍繪製一個框。最簡單的圖片數據標註類型,成本最低,應用最廣泛。標註工具會通過在需要標註的對象的外邊緣,放置許多個點來繪製成線,勾勒輪廓。用於圖片和視頻中精確的物體檢測和位置定位,更精準、更耗時、成本更高。通過人工的方式,在規定位置標註上關鍵點,例如人臉關鍵點、骨骼點。
  • 學界 | 最大規模數據集、最優圖像識別準確率!Facebook利用hashtag解決訓練數據難題
    為了改善這些計算機視覺系統,訓練它們識別和分類大量對象,Facebook 需要包含數十億張圖像的數據集,如今常見的數百萬張圖像的數據集已經不足夠了。由於當前模型通常在人類標註者手動標註的數據上進行訓練,因此提升識別準確率不只是向系統輸入更多圖像那麼簡單。這種勞動密集型的監督學習過程通常獲得最好的性能,但是手動標註的數據集在規模方面已經接近其函數極限。
  • 教程 | 如何構建自定義人臉識別數據集
    :使用 OpenCV 和 webcam 工具收集人臉圖像數據;以編程的方式下載人臉圖像;手動收集人臉圖像。在接下來的幾篇博文中,作者將帶領大家訓練一個「計算機視覺+深度學習」的模型來執行人臉識別任務。但是,要想訓練出能夠識別圖像或視頻流中人臉的模型,我們首先得收集人臉圖像的數據集。如果你使用的是「Labeled Faces in the Wild」(LFW)這樣預先準備好的數據集,那麼你可以不用進行這項困難的工作了。你可以使用我們下一篇博文中的方法創建自己的人臉識別應用。
  • 圖像識別的預處理技術
    點擊上方「小白學視覺」,選擇加"星標"或「置頂」重磅乾貨,第一時間送達圖像識別中,圖像質量的好壞直接影響識別算法的設計與效果精度,那麼除了能在算法上的優化外,預處理技術在整個項目中佔有很重要的因素,然而人們往往忽略這一點。
  • AI圖像識別技術的原理解析
    這項技術的計算機實現基本上類似於人類圖像識別的基本原理,但計算機不會受到人類感知和視覺中任何因素的影響。人類不僅要將存儲在大腦中的圖像記憶結合起來進行識別,還要利用圖像特徵對圖像進行分類,然後利用分類特徵對圖像進行識別。計算機還採用相同的圖像識別原理,利用重要圖像特徵的分類和提取,有效地消除無用的冗餘特徵,從而實現圖像識別。
  • 用 Python 進行 OCR 圖像識別
    首先把圖片中的單價提取出來,主要思路是使用機器學習模式,通過已有圖片手動訓練出一個圖像識別模型,具體步驟如下:一、將圖片預處理,更方便計算機識別(一)把圖像灰化使用open-cv庫對圖片進行處理。Tesseract自帶圖像識別的模型,例如中文簡體漢字識別模型chi_sim.traineddata,英文識別模型eng.traineddata,這些模型可以網上下載,放到tessdata裡面即可使用。然後進入tiff所在文件夾。在命令窗口,輸入:tesseract ***.tif *** -l +++ -psm 7 batch.nochop makebox,按回車生成box文件。
  • 使用 K3S 架構雲邊 Kubernetes 集群,運行邊緣圖像識別應用,並與雲端 IoT 平臺建立數據連接
    FluentBit 也接收後續部署的圖像識別程序發送的 MQTT 消息,並將消息過濾後發送給 InfluxDB,最終由 Grafana 展示圖像識別結果的統計圖表。Demo 項目在本地啟用了 Web 伺服器,通過樹莓派 8080 埠可以訪問 Web,實時查看攝像頭拍攝圖像和識別的結果(識別為車將顯示綠色框框、人則顯示紅色框框)。將攝像頭指向人或汽車。可以從樹莓派地址 http://192.168.125.112:8080/  中直觀獲得是識別結果,結果將在畫面中以紅框或綠框圈出識別出的人或車。
  • 算法集錦(14)|圖像識別| 圖像識別算法的羅夏測試
    字體,關注:九三智能控關注公眾號,回復20180625,獲取論文代碼隨著對基於深度學習的圖像識別算法的大量研究與應用,我們傾向於將各種各樣的算法組合起來快速進行圖片識別和標註。優化後的算法在內存的使用和模型訓練上表現越來越好,但當這些算法應用於模糊的、意義不確定的圖像時,它們的表現又會如何呢?
  • 【圖像識別】基於PCA+SVM 表情識別評分系統matlab代碼
    收錄於話題 #圖像處理SVM技術,總結出一種快速PCA算法以及SVM的測試與訓練算法;從orl_faces人臉庫中選取訓練數據與測試數據進行訓練與測試,對其中重要的參數進行調優,最終達到90%的識別成功率.再經真實人臉的訓練與測試,達到了73%的真實人臉識別成功率.
  • 基於卷積神經網絡的遙感圖像目標檢測與識別
    然而,現有的基於卷積祌經網絡的遙感圖像目標檢測方法依賴大量bounding box數據(位置信息數據)進行訓練,需要耗費大量人工標註成本,同時由於遙感圖像的目標樣本數量有限,不足以支撐大規模訓練;另外現有的基於卷積神經網絡的遙感圖像目標識別方法僅考慮網絡的深層語義特徵,導致識別性能達到瓶頸。為解決上述問題,本文基於卷積神經網絡對遙感圖像目標檢測與識別算法進行研究。
  • 自製人臉數據,利用keras庫訓練人臉識別模型
    注意一定要確保每個文件夾下的所有圖片都是同一個人的(對於我來說data/me是我的,data/other全部是閨女的),接下來的訓練程序將以文件夾作為標籤數據區分個人。        前面已經說過,OpenCV對人臉的識別也不是100%準確,因此,我們截取的人臉圖像中會有些不合格的,比如誤把燈籠當人臉存下來了或者人臉圖像很模糊。
  • HOG+SVM實現圖像識別
    圖像識別,主要是通過圖像的輪廓。所以先提取訓練圖像的輪廓特徵。然後使用SVM支持向量機模型進行學習,從而實現圖像識別。normalised_blocks, hog_image = hog(img, orientations=9, pixels_per_cell=(8, 8), cells_per_block=(8, 8), block_norm='L2-Hys',visualize=True)plt.imshow(hog_image, cmap=plt.cm.gray)plt.show()得到了訓練的特徵數據
  • 豬臉識別(附數據集)
    ;使用YOLOv2進行摳圖,截取圖像中豬的主體及豬臉圖像 進行保存;最後製作成tfrecord格式的數據,這樣訓練數據集就完成了;訓練數據集:豬主體數據:8700張(1000 * 800左右大小),豬臉數據:4100(500 * 500左右大小),一共12800張圖像。
  • 醫學圖像數據讀取及預處理方法總結
    這兩天又重新回顧了一下醫學圖像數據的讀取和預處理方法,在這裡總結一下。基於深度學習做醫學圖像數據分析,例如病灶檢測、腫瘤或者器官分割等任務,第一步就是要對數據有一個大概的認識。但是我剛剛入門醫學圖像分割的時候,很迷茫不知道自己該幹啥,不知道需要準備哪些知識,慢慢到現在才建立了一個簡陋的知識體系。個人認為,比如說醫學圖像分割這個方向,再具體一點比如腹部器官分割或者肝臟腫瘤分割,需要掌握兩方面的知識:(1)醫學圖像預處理方法;(2)深度學習知識。 而第一點是進行第二點的必要條件,因為你需要了解輸入到DL網絡中的到底是長啥樣的數據。
  • python圖像識別---------圖片相似度計算
    從機器學習的的角度來說,首先要提取圖片的特徵,將這些特徵進行分類處理,訓練並建立模型,然後在進行識別。但是讓計算機去區分這些圖片分別是哪一類是很不容易的,不過計算機可以知道圖像的像素值的,因此,在圖像識別過程中,通過顏色特徵來識別是相似圖片是我們常用的(當然還有其特徵還有紋理特徵、形狀特徵和空間關係特徵等,這些有分為直方圖,顏色集,顏色局,聚合向量,相關圖等來計算顏色特徵),為了得到兩張相似的圖片,在這裡通過以下幾種簡單的計算方式來計算圖片的相似度
  • Python基礎之圖像識別
    識別圖像首先,我們需要先獲得一個屏幕快照,例如我們想要點讚,我們就先把大拇指的圖片保存下來;然後使用函數:locateOnScreen(『zan.png』) ,如果可以找到圖片,則返回圖片的位置,如:Box(left=25, top=703, width=22, height=22);如果找不到圖片,則返回None;如果,屏幕上有多處圖片可以匹配,則需要使用
  • 簡單圖像數據處理
    #1.導入庫import matplotlib.pyplot as pltimport tensorflow as