2018年08月18日
Pythonで機械学習・人工知能(AI)プログラミング入門 | 数字の画像認識(anaconda - Jupyterノートブック版)
キーワード
:Python AIプログラミング サンプルコード
2019年から第3次人工知能ブームのきっかけとなったディープラーニング(深層学習)に関するコンテンツも作成中です。
:【コード解説】畳み込みニューラルネットワーク(CNN)サンプルコード - Colaboratory・Keras・MNIST by 子供プログラマー:日本人のための人工知能プログラマー入門講座(機械学習)
のページをご活用ください。無料で使えるGoogle Colaboratoryのジュピターノートブックで、すぐに使えるサンプルコードや、印刷用PDFなども公開中です。
【anaconda - Jupyterノートブック版】
Pythonで機械学習・人工知能(AI)プログラミング入門
数字の画像認識(一覧)
Pythonで機械学習・人工知能(AI)プログラミング入門
数字の画像認識(一覧)
1.scikit-learnの学習データの読み込み・表示
2.scikit-learnの数値データの画像化(1つ版)
3.scikit-learnの数値データの画像化(複数版)
4.scikit-learnで数字予測AIプログラミング(画像ファイル)
5.scikit-learnで数字予測AIアプリ開発(画像ファイル版) New♪:2018年8月18日
Pythonで機械学習・人工知能(AI)プログラミング入門
scikit-learn SVM 学習データの確認〜画像認識(数値予測)編(動画)
Python3の開発環境は、macOS・Windows・Linux対応で、無料で使える「 Anaconda 」(アナコンダ)というディストリビューション(パッケージ)を利用し、統合開発環境(IDE:Integrated Development Environment)「 Jupyter notebook 」(ジュピターノートブック)を使って、Python3プログラミングを実行しています。
* 「 Anaconda 」を開いたところから、
「 Jupyter notebook 」でPuthon3の環境を
構築する方法わからない方は、
:1.scikit-learnの学習データの読み込み・表示 | Python3のサンプルコード
の動画を視聴ください。
scikit-learn(サイキットラーン:sklearn)の数値(数字)の学習データの読み込みから、手書き文字の数字の画像認識のAIアプリ作成までをまとめておこうと思います。
一連の内容が、これからPythonで機械学習(Machine Learning)にチャレンジしてみたい人工知能プログラミング初学者の方の参考になることがありましたら幸いです。
人工知能・機械学習・ディープラーニング関連の専門書を学ぶ中で、数学の理論解説で、ギリシャ文字や数式の知識がわからない方もいるのではないかと思います。数学の入門コンテンツも作成していこうと思いますので、関心のある方は、ご活用いただけると幸いです。
:人工知能(AI)・機械学習プログラミング入門者のための数学入門講座(一覧へ)
▲ この記事のトップへ
1.scikit-learnの学習データの読み込み・表示
(Python3のサンプルコード)
(Python3のサンプルコード)
scikit-learnの学習データの読み込み・表示
Pythonで機械学習・人工知能(AI)プログラミング入門
anaconda - Jupyterノートブック版(動画)
視聴時間:1分45秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
suuji = sklearn.datasets.load_digits()
print("sklearnのデータセットのデータの個数は「",len(suuji.images),"」です。")
print("sklearnのデータセットの1つ目の画像データを表示します。\n",suuji.images[0],"\n画像データの数字をこのように表現しています。")
print("sklearnのデータセットの1つ目は「",suuji.target[0],"」です。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 「 \n 」(改行)は、
Macの場合「 option 」キー + 「 ¥ 」キーで
「 \ 」(バックスラッシュ)が入力できます。
Windowsの場合は、「 ¥n 」(半角英数で入力)で
改行できるのではないかと思います。
* 日本語文字入力のレイアウトは、動画を参考にしてみてください。
上記のサンプルコードの入力が難しい方は、以下のサンプルコードも試してみてください。
▼▼▼ 簡易版サンプルコード - はじめ ▼▼▼
import sklearn.datasets
suuji = sklearn.datasets.load_digits()
print("データの数=",len(suuji.images))
print("画像のデータ=",suuji.images[0])
print("数字=",suuji.target[0])
▲▲▲ 簡易版サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
2.scikit-learnの数値データの画像化(1つ版)
(Python3のサンプルコード)
(Python3のサンプルコード)
scikit-learnの数値データの画像化(1つ版)
Pythonで機械学習・人工知能(AI)プログラミング入門
anaconda - Jupyterノートブック版(動画)
視聴時間:2分52秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
import matplotlib.pyplot as plt
suuji = sklearn.datasets.load_digits()
plt.imshow(suuji.images[0], cmap="Greys")
plt.show()
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
3.scikit-learnの数値データの画像化(複数版)
(Python3のサンプルコード)
(Python3のサンプルコード)
【複数版】scikit-learnの数値データの画像化
Pythonで機械学習・人工知能(AI)プログラミング入門
anaconda - Jupyterノートブック版(動画)
視聴時間:2分31秒
▼▼▼ サンプルコード1 - はじめ ▼▼▼
import sklearn.datasets
import matplotlib.pyplot as plt
suuji = sklearn.datasets.load_digits()
for i in range(30):
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.imshow(suuji.images[i], cmap="gray")
plt.show()
▲▲▲ サンプルコード1 - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.imshow(suuji.images[i], cmap="gray")
のコード記述の、「 plt 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
▼▼▼ サンプルコード2 - はじめ ▼▼▼
import sklearn.datasets
import matplotlib.pyplot as plt
suuji = sklearn.datasets.load_digits()
for i in range(30):
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.axis("off")
plt.imshow(suuji.images[i], cmap="gray")
plt.show()
▲▲▲ サンプルコード2 - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.axis("off")
plt.imshow(suuji.images[i], cmap="gray")
のコード記述の、「 plt 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
4.scikit-learnで数字予測AIプログラミング(画像ファイル)
(Python3のサンプルコード)
(Python3のサンプルコード)
【画像認識】scikit-learnで数字予測AIプログラミング
Pythonで機械学習・人工知能(AI)プログラミング入門(動画)
視聴時間:5分19秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
import sklearn.svm
import numpy
import PIL.Image
def gazouWoSuutini(filename):
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
def yosoku(data):
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
print("画像認識AIによる、手書き文字認識の予測結果は",n,"です。")
data = gazouWoSuutini("0.png")
yosoku(data)
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 gazouWoSuutini 」「 gazou 」「 suuti 」
「 yosoku 」「 ai 」「 n 」
などは、お好みに応じて自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
print("画像認識AIによる、手書き文字認識の予測結果は",n,"です。")
のコード記述のインデントを
「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
サンプル画像(文字認識用)
右クリックなどで保存を選択
数字の0
数字の1
数字の2
数字の3
数字の4
数字の5
数字の6
数字の7
数字の8
数字の9
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
5.scikit-learnで数字予測AIアプリ開発(画像ファイル版)
(Python3のサンプルコード)
(Python3のサンプルコード)
【画像認識アプリ】scikit-learnで数字予測AIアプリ開発
Pythonで機械学習・人工知能(AI)プログラミング入門(動画)
視聴時間:3分9秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
import sklearn.svm
import numpy
import tkinter as tk
import tkinter.filedialog as fd
import PIL.Image
import PIL.ImageTk
def gazouWoSuutini(filename):
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
ninshikiWoHyouji = PIL.ImageTk.PhotoImage(gazou.resize((300,300)))
imageLabel.configure(image = ninshikiWoHyouji)
imageLabel.image = ninshikiWoHyouji
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
def yosoku(data):
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
textLabel.configure(text = "┃Ο ν Ο┃ノ:手書き文字の予測結果は・・・" + str(n) + "です。")
def gazouWoHiraku():
fpath = fd.askopenfilename()
if fpath:
data = gazouWoSuutini(fpath)
yosoku(data)
root = tk.Tk()
root.geometry("900x500")
textLabel = tk.Label(text="┃Ο _ Ο┃>画像認識AIです♪\n\n画像認識する数字のファイルを選択して下さい。", font=("",30))
textLabel.pack()
imageLabel = tk.Label()
btn = tk.Button(root, text="手書き数字のファイルを選択します", font=("",20) ,command = gazouWoHiraku)
imageLabel.pack()
btn.pack()
tk.mainloop()
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 gazouWoSuutini 」「 gazou 」「 suuti 」
「 yosoku 」「 ninshikiWoHyouji 」「 ai 」「 n 」
などは、お好みに応じて自分でわかりやすいように名前をつけてみてください。
* 「 \n 」(改行)は、
Macの場合「 option 」キー + 「 ¥ 」キーで
「 \ 」(バックスラッシュ)が入力できます。
Windowsの場合は、「 ¥n 」(半角英数で入力)で
改行できるのではないかと思います。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
ninshikiWoHyouji = PIL.ImageTk.PhotoImage(gazou.resize((300,300)))
imageLabel.configure(image = ninshikiWoHyouji)
imageLabel.image = ninshikiWoHyouji
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
textLabel.configure(text = "┃Ο ν Ο┃ノ:手書き文字の予測結果は・・・" + str(n) + "です。")
fpath = fd.askopenfilename()
if fpath:
data = gazouWoSuutini(fpath)
yosoku(data)
のコード記述のインデントを
「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
サンプル画像(文字認識用)
右クリックなどで保存を選択
数字の0
数字の1
数字の2
数字の3
数字の4
数字の5
数字の6
数字の7
数字の8
数字の9
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
by はじめてのコンピュータ・パソコン
:AI(人工知能・無能)エンジニア・プログラマー養成講座(一覧ページへ)
:あの「機械学習関連講座」が着々と実績を積み上げ中!! | #442 デジタルライフコラム
▲ 記事ページのトップへ
︎ サイトマップ
︎ プロフィール | サイトポリシー・免責事項など
︎ CONTENTS(コンテンツ)一覧
︎ 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座(一覧)
【このカテゴリーの最新記事】
posted by HajimeteCPC at 02:26
| AIエンジニア・プログラマー養成講座