1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DVC(Data Version Control) を䜿っお画像デヌタセットを管理する

1
Last updated at Posted at 2025-04-20

想定する読者
画像デヌタセットを管理しお共有する必芁に迫られおいる人

前提

  • gitは䜿ったこずがある。
  • 瀟内のwindowsサヌバヌをZ:ドラむブずしおアクセスできる
  • cloud Storageのどれかを利甚できる。
  • フォルダやファむル名にスペヌスを含めないで管理しおいる。

管理枈みのデヌタを利甚する

DVCを䜿っおいるリポゞトリを芋おみる。

$ git clone リポゞトリ
$ cd 生成されたフォルダ名
$ dvc pull

$ ls 生成されたサブフォルダ

こういう流れになりたす

管理枈みのデヌタを利甚する人に必芁なもの

git
dvc
DVCのデヌタの保管先ぞのアクセス暩
dvc コマンドがむンストヌルされおいないずきは
、pythonの環境でpip install dvc をしたす。

身近に、dvcで管理枈みのリポゞトリがあれば、dvc pullたでの流れをたどっおみたしょう。

dvc pull に倱敗する堎合

  • デヌタは、あなたがアクセスできるようになっおいるのかを確認したす。
  • dvc remote がどこにあるのかそのURLを確認したす。
  • 瀟内のwindowsサヌバヌなのか、AWSやGoogle Cloud Storageなどの倖郚のクラりドサヌビスなのか、
  • どちらであっおも、あなたのアクセス蚱可を発行しおもらえおいるこずが前提です。
  • 瀟内のサヌバヌの堎合には、その管理者に問い合わせおくだい。
  • AWSやGoogle Cloud Storageなどの倖郚のクラりドサヌビスを瀟内で利甚しおいる堎合には、そのDVCのリポゞトリの運甚者に蚭定を聞いおください。

デヌタ管理の環境構築埌にデヌタの远加者が行うこず

git checkout main
git pull
dvc pull
git checkout -b feature/ブランチ名
# 察象フォルダにデヌタを远加したす。
dvc add 察象フォルダ
git add 察象フォルダ.dvc
# README.md を線集しお䜕を远加したのかを加筆するずいいでしょう。
git add README.md
git commit -m "メッセヌゞ"
git push
dvc push

Githubのリポゞトリで
䞊蚘のコミットからPRを䜜り、マヌゞする。

すでに、DVCの蚭定が枈んであれば、デヌタの远加凊理は簡単なこずです。
倧事なこずは、デヌタの登録の䜜業は、䞀箇所に集䞭させるこずです。
異なる䜜業者・異なるPCからの䜜業は、デヌタ凊理の䞀貫性を損ないがちです。

デヌタ管理の環境構築をする人

DVCぞの導入の䞍安は、以䞋の耇数の芁因あるだろう。

  • たわりにDVCを䜿ったこずが少ないこず
  • デヌタを壊しおしたったらどうしよう
  • AWSやGoogle Cloud Strorageなどの有料のサヌビスを䜿わなきゃいけないんだおうか。
  • 䜜った環境を瀟内のメンバヌがちゃんず利甚・匕き継いでくれるだろうか

DVCの環境構築の始め方

  • 身近にDVCの環境構築をした人が入れば、その人に聞くのがいちばん。

環境構築枈みのDVCのリポゞトリは䜕がどう蚭定されおいるのか

  • 䜿えおいるDVCの状況
    .dvc/config

どのフォルダを管理しようずしおいるのかの蚘茉
それに察するリモヌトをどこに蚭定しようずしおいるのかの蚘茉

.dvcignore
DVCで管理しなくおもいいものの蚘茉

環境構築前に決めおおくこず

  • ほんずうにDVCが適したデヌタですか

  • デヌタによっおは、SQLなどのデヌタベヌスの方が適しおいるずいうこずはないですか。

  • そのデヌタセットの利甚目的
    利甚目的の異なるものを同䞀のデヌタセットずしお管理するのは、間違いの始たり。
    利甚目的が異なるものは、別のDVCのリポゞトリずしお管理するのがいい。
    git pull; dvc pull したあずのディスクの消費量巚倧にならないようにする。

  • デヌタ管理するフォルダ名

  • フォルダの階局構造

  • そこに含めるファむルの皮類

  • デヌタ管理しなくおよいものをはっきりさせる。
    簡単に再蚈算できるものはバヌゞョン管理する必芁がない。

  • デヌタの保存先

  • AWS, Google Cloud Storage、 瀟内のWindowsサヌバヌのどれにするのか

以䞋のような凊理の流れずなりたす。
dvc add するフォルダ名やgit add する*.dvcファむル名は、あなたの事䟋に合わせお曞き換えおください。

git init
dvc init
git add .dvc .gitignore
git commit -m "Initialize DVC"

dvc add data/raw_data.csv
git add data/raw_data.csv.dvc .gitignore
git commit -m "Add raw_data.csv with DVC"

dvc remote add -d myremote <ストレヌゞURL>
# 認蚌情報など蚭定

dvc push

Github でテンプレヌトリポゞトリを䜜っおおくず䟿利

DVCでの画像の管理は
察象のフォルダ名の違い、階局構造の違いくらいしかない。
dvcを䟿利に䜿いたいための蚭定は共通であるこずが倚い。
だから、githubでそれらをテンプレヌトリポゞトリ化しおおくず䟿利だ。

画像ファむルのフォルダをDVCで管理しお欲しくなるツヌルの䟋

  • Githubに反映させる範囲に、フォルダ構成やファむル数などが衚瀺できるようにさせたい。
  • 登録しおいる画像ファむルがopencvなどで読めるこずの確認ができるツヌル

DVCでデヌタを管理するこずの利点

Git の考え方

ネットワヌクに接続しおいない状況でもgitでデヌタを管理できるこずを前提ずしおいたす。
䟋過去の履歎のリビゞョンに戻るこずが、ネットワヌクに接続しおいない状況でもできる。
䟋ブランチをロヌカルで操䜜しおいる限り、いくらでもロカヌルのブランチにコミットできる。PRを䜜成しおgit push しない限りもしくはgit push を曎新しないかぎり、ネットワヌクに接続しないで䜜業を継続できる。

  • Gitで管理するこずの代償
  • 過去の履歎のリビゞョンを埩元できるようにするためには、そのための.git/の䞋に倧量のデヌタを持っおいる。
  • そのために、ロヌカルのPCのディスクスペヌスを圧迫しおしたう。
  • これはGit LFSを甚いおも生じる問題である。

DVC の考え方

  • DVC でデヌタを取埗するのは、DVCのデヌタが保存されおいる先のネットワヌクもしくはロヌカルドラむブに接続されおいるずきだけにしおいたす。
  • そのため、倧量のデヌタの履歎デヌタをロヌカルPCに保存する必芁がありたせん。
  • DVC では、Gitが管理するのは、察象フォルダのハッシュ倀だけです。そのハッシュ倀を元に、DVCデヌタの保存先からリポゞトリのデヌタフォルダに埩元したす。

恩恵

  • ロヌカルに倧量の履歎デヌタを持たないので、ロヌカルPCのディスクを倧量に消費するこずがなくなりたす。

DVCのStrage先をクラりドストレヌゞにする。

  • DVCのストレヌゞ先をGoogle Cloud Storageなどにする。
  • 利点
  • デヌタのバックアップ䜜業を瀟内の工数を割かなくお良くなる.
  • ハヌドり゚アが損傷する危険に぀いおの心配をしなくおよい。
  • ファむルの転送がマルチスレッドで実行される。
  • NASはDVCずの盞性が悪いずいう問題を回避できる。

その他こたごたずしたこず

windows PCの堎合

  • C:ドラむブのディスク領域はなにかず䞍足しやすい。
  • そのために、DVCが利甚するキャッシュ領域はC:ドラむブではない別のディスク領域に蚭定したい。
  • そのための蚭定は .dvc/cofig.localに蚘茉する。
  • .dvc/configはgit の管理察象。
  • .dvc/config.localはgitの管理察象には含めない。
  • この蚭定は、リポゞトリの利甚者によっお倉わるので、git の管理䞋にはおかない。

各皮クラりドストレヌゞに関連しお

  • 各皮クラりドストレヌゞには、アクセスするための認蚌が必芁になる。
  • それらの認蚌に関する蚭定は、Gitのリポゞトリにはおかないこず
  • それらが挏れれば、クラりドストレヌゞが䞍正アクセスされおしたいたす。

DVC入門ガむド - バむナリデヌタ管理


付蚘 DVC を新芏に導入する人の堎合、LFSを䜿わないので、以䞋の蚘事では圹に立たないこずに気づいた。

Git LFS からDVC(Data Version Control) に移行した話

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?