大きなサイズの画像を所定のサイズでクロップした学習データを作ります。 labelmeのアノテーションデータを使い、YOLO形式のファイルを作ります。
設定値 | ピクセル数 |
---|---|
元画像サイズ | 6000*4000pix |
クロップサイズ | 640*640pix |
オーバラップ | 64pix |
これに合わせて、labelmeのアノテーション情報をYOLO形式に変換します。
x2のxは「576~1216」をクロップしていますが、
640 − 64 = 576
576 + 640 = 1216
の部分を切り取ります。
---- | x1 | x2 | x3 | x4 | --- |
---|---|---|---|---|---|
y1 | x: 0 ~ 640 y: 0 ~ 640 |
x: 576 ~ 1216 y: 0 ~ 640 |
x: 1152 ~ 1792 y: 0 ~ 640 |
x: 1728 ~ 2368 y: 0 ~ 640 |
x: ... y: ... |
y2 | x: 0 ~ 640 y: 576 ~ 1216 |
x: 576 ~ 1216 y: 576 ~ 1216 |
x: 1152 ~ 1792 y: 576 ~ 1216 |
x: 1728 ~ 2368 y: 576 ~ 1216 |
x: ... y: ... |
y3 | x: 0 ~ 640 y: 1152 ~ 1792 |
x: 576 ~ 1216 y: 1152 ~ 1792 |
x: 1152 ~ 1792 y: 1152 ~ 1792 |
x: 1728 ~ 2368 y: 1152 ~ 1792 |
x: ... y: ... |
y4 | x: 0 ~ 640 y: 0 ~ 640 |
x: 576 ~ 1216 y: 0 ~ 640 |
x: 1152 ~ 1792 y: 0 ~ 640 |
x: 1728 ~ 2368 y: 0 ~ 640 |
x: ... y: ... |
y. | x: ... y:... |
x: ... y: ... |
x: ... y: ... |
x: ... y: ... |
--- |
python:3.10.8
numpy:1.25.1
pandas:2.0.1
pillow:10.010
matplotlib:317.2
opencv-python:418.0.741
CropAndDetectYOLO/
├ croped_data/ # 実行結果例
| ├ check_croping
| └ imagss # folder to save croped images
| └ labels # folder to save YOLO text files for croped images
|
├ data/
| ├ *.jpg # big size image
| └ *.json # json file create from labelme
| ├ *.jpg # big size image
| └ *.json # json file create from labelme
| ├ *.jpg # big size image
| └ *.json # json file create from labelme
|
├ readme.md
├ ****.ipynb