質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

1415閲覧

Deep Learning用データセットの作成について

tasuke

総合スコア53

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/12/25 09:17

現在、Deep Learningによる画像分類を勉強しています。「初めてのDeep Learning」では、実際にあるデータを使用しているのですが、これだけでは面白くないと考え、自分で画像を集めてそれを元に学習させようと考えました。私は、Image netから画像を収集したのですが、サイズがバラバラでした。入力層は75*75に設定してあるため、pythonにより力ずくでそのサイズにリサイズしたところ、案の定縦長、横長画像は潰れてしまい、その後の学習フェーズでうまく学習させることができませんでした。そこで質問ですが、いろいろなサイズの画像を自分の学習させたい部分が残りつつ欲しいサイズにトリミングするツール等はないでしょうか。ネットから持ってきた画像を自分の欲しい画像に加工する方法があれば教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

tasukeさんが用意したデータセットの画像サイズが全て75*75よりも大きいのであれば、お手製で切り抜く関数を作成してはいかがでしょうか?
ご自身でモデルを学習させるパッションがあるなら時間をかけずに作成することができると思います。
画像の端っこの処理が少々面倒ですが、以下に例を書きました。
引数imgはcv2.imread()で読み込んだものとしています。
引数x, yにはint(random.random()*imagesize)で生成した乱数を入れればOKです。

import cv2 import random def crop(img, x, y, size=75): height, width, channel = img.shape if (x+size) >= width: x = width - size - 1 if (y+size) >= height: y = height - size - 1 return img[y:y+size, x:x+size, :]

ご存知かもしれませんが、画像は基本的に(height, width, channel)で変数に格納されています。(原点は画像の左上端点です。)

img = cv2.imread(some_path_to_img) pix = img[i,j,:]

とすることで、"上からi番目、左からj番目のRGB値"を取り出すことができます。

投稿2018/12/25 11:51

glimp

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tasuke

2018/12/30 12:19 編集

回答ありがとうございます。glimp様のアドバイスを参考にデータセットを作製しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問