์ฐธ์กฐ ultralytics/data/split_dota.py
์ฐธ๊ณ
์ด ํ์ผ์ https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/data/split_dota .py์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ํ ๋ฆฌํ์คํธ (๐ ๏ธ) ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ๋์์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค ๐!
ultralytics.data.split_dota.bbox_iof(polygon1, bbox2, eps=1e-06)
bbox1๊ณผ bbox2 ์ฌ์ด์ IOF๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
polygon1 |
ndarray
|
๋ค๊ฐํ ์ขํ, (n, 8). |
ํ์ |
bbox2 |
ndarray
|
๋ฐ์ด๋ฉ ๋ฐ์ค, (n,4). |
ํ์ |
์ ์์ค ์ฝ๋ ultralytics/data/split_dota.py
ultralytics.data.split_dota.load_yolo_dota(data_root, split='train')
DOTA ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ก๋ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
data_root |
str
|
๋ฐ์ดํฐ ๋ฃจํธ. |
ํ์ |
split |
str
|
๋ถํ ๋ ๋ฐ์ดํฐ ์ธํธ๋ train ๋๋ val์ผ ์ ์์ต๋๋ค. |
'train'
|
์ฐธ๊ณ
DOTA ๋ฐ์ดํฐ ์ธํธ์ ๋ํด ๊ฐ์ ํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋๋ค: - data_root - ์ด๋ฏธ์ง - train - val - ๋ ์ด๋ธ - train - val
์ ์์ค ์ฝ๋ ultralytics/data/split_dota.py
ultralytics.data.split_dota.get_windows(im_size, crop_sizes=[1024], gaps=[200], im_rate_thr=0.6, eps=0.01)
์ฐฝ ์ขํ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
im_size |
tuple
|
์๋ณธ ์ด๋ฏธ์ง ํฌ๊ธฐ, (๊ฐ๋ก, ์ธ๋ก). |
ํ์ |
crop_sizes |
List(int
|
์ฐฝ ํฌ๊ธฐ ์๋ฅด๊ธฐ. |
[1024]
|
gaps |
List(int
|
์๋ฌผ ๊ฐ ๊ฐ๊ฒฉ. |
[200]
|
im_rate_thr |
float
|
์ฐฝ ์์ญ์ ์๊ณ๊ฐ์ ์ด๋ฏธ์ง ์์ญ์ผ๋ก ๋๋ ๊ฐ์ ๋๋ค. |
0.6
|
์ ์์ค ์ฝ๋ ultralytics/data/split_dota.py
ultralytics.data.split_dota.get_window_obj(anno, windows, iof_thr=0.7)
๊ฐ ์ฐฝ์ ๋ํ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/data/split_dota.py
ultralytics.data.split_dota.crop_and_save(anno, windows, window_objs, im_dir, lb_dir)
์ด๋ฏธ์ง๋ฅผ ์๋ฅด๊ณ ์ ๋ ์ด๋ธ์ ์ ์ฅํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
anno |
dict
|
๋ค์์ ํฌํจํ ์ฃผ์ ๋์
๋๋ฆฌ |
ํ์ |
windows |
list
|
์ฐฝ ์ขํ ๋ชฉ๋ก์ ๋๋ค. |
ํ์ |
window_objs |
list
|
๊ฐ ์ฐฝ ์์ ๋ ์ด๋ธ ๋ชฉ๋ก์ ๋๋ค. |
ํ์ |
im_dir |
str
|
์ด๋ฏธ์ง์ ์ถ๋ ฅ ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก์ ๋๋ค. |
ํ์ |
lb_dir |
str
|
๋ ์ด๋ธ์ ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก์ ๋๋ค. |
ํ์ |
์ฐธ๊ณ
DOTA ๋ฐ์ดํฐ ์ธํธ์ ๋ํด ๊ฐ์ ํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋๋ค: - data_root - ์ด๋ฏธ์ง - train - val - ๋ ์ด๋ธ - train - val
์ ์์ค ์ฝ๋ ultralytics/data/split_dota.py
ultralytics.data.split_dota.split_images_and_labels(data_root, save_dir, split='train', crop_sizes=[1024], gaps=[200])
์ด๋ฏธ์ง์ ๋ ์ด๋ธ์ ๋ชจ๋ ๋ถํ ํฉ๋๋ค.
์ฐธ๊ณ
DOTA ๋ฐ์ดํฐ ์ธํธ์ ๋ํด ๊ฐ์ ํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋๋ค: - data_root - ์ด๋ฏธ์ง - split - ๋ ์ด๋ธ - split ์ ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ - save_dir - ์ด๋ฏธ์ง - split - ๋ ์ด๋ธ - split
์ ์์ค ์ฝ๋ ultralytics/data/split_dota.py
ultralytics.data.split_dota.split_trainval(data_root, save_dir, crop_size=1024, gap=200, rates=[1.0])
DOTA์ ๋ถํ ๊ธฐ์ฐจ ๋ฐ ๋ฐธ ์ธํธ.
์ฐธ๊ณ
DOTA ๋ฐ์ดํฐ ์ธํธ์ ๋ํด ๊ฐ์ ํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋๋ค: - data_root - ์ด๋ฏธ์ง - train - val - ๋ ์ด๋ธ - train - val ๋ก ์ง์ ํ๊ณ ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: - save_dir - ์ด๋ฏธ์ง - train - val - ๋ ์ด๋ธ - train - val
์ ์์ค ์ฝ๋ ultralytics/data/split_dota.py
ultralytics.data.split_dota.split_test(data_root, save_dir, crop_size=1024, gap=200, rates=[1.0])
DOTA์ ๋ถํ ํ ์คํธ ์ธํธ, ๋ ์ด๋ธ์ ์ด ์ธํธ์ ํฌํจ๋์ง ์์ต๋๋ค.
์ฐธ๊ณ
DOTA ๋ฐ์ดํฐ ์ธํธ์ ๋ํด ๊ฐ์ ํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋๋ค: - data_root - images - test ์ด๋ฉฐ ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ - save_dir - images - test