-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathreadmeJ.txt
120 lines (82 loc) · 3.79 KB
/
readmeJ.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
DataAugmentation ver1.0
2018/10/18 takuya minagawa
1. 概要
このプログラムは画像認識の学習データを、回転、ずらし、ぼかし、ノイズ付加などによって拡張するためのツールです。
本ツールは指定した画像に対し、ランダムにパラメータを決めて画像変換を指定数行います。
画像変換は
・縦横比変更
・位置ずらし
・Z軸まわりの回転(ヨー角)
・Y軸まわりの回転(ピッチ角)
・X軸まわりの回転(ロール角)
・ガウスノイズの付加
・ガウスぼかし
・左右反転
・上下反転
の順で加えられます。
ここで、座標軸は画像の横方向がX軸、縦方向がY軸、奥行き方向がZ軸です。
2. インストール
ビルドには、boostとOpenCVが必要です。
boost
http://www.boost.org/
OpenCV
http://opencv.org/
コンパイル済みのバージョンを使用する場合は、DataAugmentation.zipを解凍してexeファイルを実行するだけです。
もし実行ファイルがうまく動かない場合は、VC++2017のランタイムをインストールする必要があるかもしれません。
以下のサイトからお使いのプロセッサにあったランタイムを探し、ダウンロードとインストールをして下さい
https://go.microsoft.com/fwlink/?LinkId=746572
3. 使い方
本プログラムの使い方は以下の通りです。
DataAugmentation <input> <output directory> [option]
<input>
入力です。画像ファイル、画像ファイルが格納されたフォルダ、アノテーションファイルの3種類のいずれかを指定します。
プログラム側でどのパターンなのかを自動判別します。
- 画像ファイル:JPEG、PNG、BMP、PPM、PGMなどの形式を指定できます。
- 画像フォルダ:フォルダ内を探索し、画像ファイルを自動敵に抽出します。
- アノテーションファイル:OpenCVの物体検出器の学習(opencv_traincascade)で使用されるものと同形式のテキストファイルです。具体的にテキストファイルは
=================================
「画像ファイル名」 「オブジェクト数」 「左上x座標」 「左上y座標」 「幅」 「高さ」...
=================================
というフォーマットです。例えば(x,y,w,h)=(10,14,100,120), (141,151,100,120)オブジェクトが2つあるケースの場合
=====================================
20100915-1/0000004.jpg 2 10 14 100 120 141 151 100 120
=====================================
というフォーマットになります。
「縦横比変更」と「位置ずらし」はアノテーションファイルを入力として、対象画像周辺にマージンがある場合しか使えません。
<output folder>
拡張された画像ファイルを保存するディレクトリ/フォルダー名を指定します。
[option]
指定できるオプションは以下の通りです。
-c 設定ファイルを指定します。(デフォルト:config.txt)
-a 出力アノテーションファイル。(デフォルト:annotation.txt)
4. 設定ファイル
画像に対してどのような変換を加えるかを設定ファイルで指定します。
設定ファイルの内容は以下の通りです。
<generate_num>
1枚の画像から何枚の変換画像を生成するかを指定します。
<aspect_ratio_sigma>
画像につけられたアノテーションの縦横比(アスペクト比)を変更する際の揺らぎの標準偏差を指定します。
<x_slide_sigma>
画像につけられたアノテーションの横方向への揺らぎの標準偏差を指定します。この揺らぎはアノテーション(矩形)の横幅の比です。
<y_slide_sigma>
画像につけられたアノテーションの縦方向への揺らぎの標準偏差を指定します。この揺らぎはアノテーション(矩形)の縦幅の比です。
<yaw_sigma>
加える回転角(度)の標準偏差(ヨー角)
<pitch_sigma>
加える回転角(度)の標準偏差(ピッチ角)
<roll_sigma>
加える回転角(度)の標準偏差(ロール角)
<blur_max_sigma>
ガウス平滑化をかける際の最大標準偏差を指定します。0からここで指定した値の間のどこかの値がガウス平滑化の標準偏差として使われます。(単位:ピクセル)
<noise_max_sigma>
ガウスノイズを付加する際の最大標準偏差を指定します。0からここで指定した値の間のどこかの値がガウスノイズの標準偏差として使われます。(単位:画素値)
<horizontal_flip>
ここで指定した確率で画像を左右反転します。(0から1)
<vertical_flip>
ここで指定した確率で画像を上下反転します。(0から1)
5. ライセンス
本ソフトウェアは"MIT License"で公開します。
MITライセンスについては、こちらのURL参照。
http://opensource.org/licenses/MIT
ただし、本ライブラリの開発に用いているOpenCVおよびBoostに関しては、それぞれのライブラリのライセンスに準じます。
皆川卓也(z.takmin@gmail.com)