web-dev-qa-db-ja.com

Google Colabでの画像の読み込み

Jupyter Notebookには、画像をColabにアップロードするための次のコードがあります。

from google.colab import files
uploaded = files.upload()

ファイルの入力を求められます。アップロードされます。

次を使用して、ファイルのアップロードが成功したことを確認します。

!ls

そこにあることがわかります。

次を使用して現在の作業ディレクトリを確認します。

import os
os.getcwd()

そして、それは/ contentであることを教えてくれます

今、次の呼び出しのいずれか...

cv2.imread(img_path, 1)
cv2.imread(img_path, 0)
cv2.imread(img_path)

ファイルのロードに失敗します。

また、ファイル名またはフルパスのどちらを使用していても失敗します。

何が起こっているのかについて何か考えはありますか?

6
djeetee

この関数を使用して、ファイルをアップロードします。それらも保存されます。

def upload_files():
  from google.colab import files
  uploaded = files.upload()
  for k, v in uploaded.items():
    open(k, 'wb').write(v)
  return list(uploaded.keys())

更新

現在(2018年9月)、左側のペインに[ファイル]タブがあり、ファイルを参照してファイルを簡単にアップロードできます。ファイル名をダブルクリックするだけでダウンロードすることもできます。

12

Colab google:複数のサブディレクトリに画像をアップロードする: Colab googleを使用して複数のサブディレクトリに画像(またはファイル)をアップロードする場合は、次の手順に従ってください:-画像(ファイル)は、(dataDir)と呼ばれるメインディレクトリで3つのサブディレクトリ(train、validate、test)に分割されます:1-フォルダ(dataDir)を(dataDir.Zip)に圧縮します2- Colabセルにこのコードを記述します:

from google.colab import files
uploaded = files.upload()

3- [ファイルの選択]を押して、PCから(dataDir.Zip)をColabにアップロードします(dataDir.Zip)がGoogleドライブにアップロードされました! 4-次の簡単なコードを記述して、フォルダー(dataDir.Zip)を(data)というフォルダーに解凍します。

import zipfile
import io
data = zipfile.ZipFile(io.BytesIO(uploaded['dataDir.Zip']), 'r')
data.extractall()

5-これですべての準備ができました。(data)フォルダーの内容を印刷して確認します。

data.printdir()

6-次に、画像を読み取り、数を数え、それらを分割して再生するには、次のコードを記述してください。

train_data_dir = 'data/training'  
validation_data_dir = 'data/validation'  
test_data_dir = 'data/test' 
target_names = [item for item in os.listdir(train_data_dir) if os.path.isdir(os.path.join(train_data_dir, item))]
nb_train_samples = sum([len(files) for _, _, files in os.walk(train_data_dir)])  
nb_validation_samples = sum([len(files) for _, _, files in os.walk(validation_data_dir)])
nb_test_samples = sum([len(files) for _, _, files in os.walk(test_data_dir)])
total_nb_samples = nb_train_samples + nb_validation_samples + nb_test_samples

nb_classes = len(target_names)      # number of output classes

print('Training a CNN Multi-Classifier Model ......')
print('\n - names of classes: ', target_names, '\n - # of classes: ', nb_classes)
print(' - # of trained samples: ', nb_train_samples, '\n - # of validation samples: ', nb_validation_samples,
      '\n - # of test samples: ', nb_test_samples,
       '\n - total # of samples: ', total_nb_samples, '\n - train ratio:', round(nb_train_samples/total_nb_samples*100, 2),
      '\n - validation ratio:', round(nb_validation_samples/total_nb_samples*100, 2),
      '\n - test ratio:', round(nb_test_samples/total_nb_samples*100, 2),
     ' %', '\n - # of epochs: ', epochs, '\n - batch size: ', batch_size)

7-それだけです!楽しい!

6
Yasser Mustafa

コマンドを使用してインターネットから直接colabの画像を作成できます

!wget "copy paste the image address here"

確認する!ls

以下のコードを使用して画像を表示します。

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread("Sample-image.jpg")
img_cvt=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_cvt)
plt.show()
3
minakshi das

画像ファイルをcolabにアップロードするハック!

https://colab.research.google.com/

次のコードは、ローカルドライブからcolabにイメージ(ファイル)をロードします。

from google.colab import files
from io import BytesIO
from PIL import Image

uploaded = files.upload()
im = Image.open(BytesIO(uploaded['Image_file_name.jpg']))

次のコマンドを使用して、Google Colab Notebookで画像を表示します。

import matplotlib.pyplot as plt

plt.imshow(im)
plt.show()
2
DataFramed

Google Colabで画像ファイルをアップロード、読み取り、表示する最も簡単な方法

"---------------------colabへのイメージのアップロード-code --------------- ------------」

_from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))
_

コードの説明

このコードをcolabで実行すると、[ファイルを選択]と[アップロードをキャンセル]の2つのボタンを持つ小さなGUIが表示され、これらのボタンを使用してローカルファイルを選択してアップロードできます。

"---------------------画像がアップロードされたかどうかを確認 ---------------- ----------- "

次のコマンドを実行します:

_import os
!ls
os.getcwd()
_

_!ls_-アップロードされたファイル名を提供します

os.getcwd()-ファイルがアップロードされたフォルダパスを提供します。

"---------------------------アップロードされたファイルから画像データを取得 --------- ----- "

コードを実行します。

_0 import cv2
1 items = os.listdir('/content')
2 print (items)
3 for each_image in items:
4  if each_image.endswith(".jpg"):
5   print (each_image)
6   full_path = "/content/" + each_image
7   print (full_path)
8   image = cv2.imread(full_path)
9   print (image)
_

コードの説明

ライン1:

_items = os.listdir('/content')
print(items)
_

アイテムには、アップロードされたファイルのすべてのファイル名のリストがあります。

3行目から9行目:

3行目のforループは、アップロードされたファイルのリストを反復処理するのに役立ちます。

4行目、私の場合は画像ファイルのみを読みたいので、_".jpg"_で終わるファイルのみを開くことにしました

5行目は、画像ファイル名を確認するのに役立ちます

6行目は、フォルダを使用して画像データのフルパスを生成するのに役立ちます

7行目では、フルパスを印刷できます

8行目は、カラー画像データを読み取ってimage変数に保存するのに役立ちます

9行目では、画像データを印刷できます

「--------------------------画像を表示 ------------- ------------」

_import matplotlib.pyplot as plt
import os
import cv2
items = os.listdir('/content')
print (items)    

for each_image in items:
  if each_image.endswith(".jpg"):
    print (each_image)
    full_path = "/content/" + each_image
    print (full_path)
    image = cv2.imread(full_path)
    image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
plt.figure()
plt.imshow(image)
plt.colorbar()
plt.grid(False)
_

幸せなコーディングとそれは簡単です。

2
Pallawi.ds

メモリからファイルを書き込んでいない可能性があると仮定していますか?

アップロード後に以下のコードを試してください:

with open("wash care labels", 'w') as f:
    f.write(uploaded[uploaded.keys()[0]])

「wash care labels.xx」をファイル名に置き換えます。これにより、メモリからファイルが書き込まれます。その後、ファイルを呼び出してみてください。

これがあなたのために働くことを願っています。

0
Pais