YOLO ver.3
- ver2에서 사용한 anchor를 9개로 늘림
Residual Block
- Residual block에서 '더하다'의 의미 = Element Wise (원소끼리 더해감)
- 사이즈와 채널이 전부 동일해야 element wise가 진행된다.
- 비용으 많이 들이지 않고도 성능을 높이는 최고의 방법
- Residual Block을 사용함으로써 Gradient Banishing 현상을 막을 수 있다.
- Gradient Banishing 현상은 weight값이 0에 수렴되어 학습이 끝까지 진행되지 않는 것이다.
YOLO로 구현한 정답의 구조 - json으로 구성
https://www.immersivelimit.com/tutorials/create-coco-annotations-from-scratch
info :: 정보
"info": {
"description": "COCO 2017 Dataset",
"url": "http://cocodataset.org",
"version": "1.0",
"year": 2017,
"contributor": "COCO Consortium",
"date_created": "2017/09/01"
}
licenses :: 라이센스 아이디 구성, 이미지마다 license를 가짐.
"licenses": [
{
"url": "http://creativecommons.org/licenses/by-nc-sa/2.0/",
"id": 1,
"name": "Attribution-NonCommercial-ShareAlike License"
},
{
"url": "http://creativecommons.org/licenses/by-nc/2.0/",
"id": 2,
"name": "Attribution-NonCommercial License"
},
...
]
images
"images": [
{
"license": 4,
"file_name": "000000397133.jpg",
"coco_url": "http://images.cocodataset.org/val2017/000000397133.jpg",
"height": 427,
"width": 640,
"date_captured": "2013-11-14 17:02:52",
"flickr_url": "http://farm7.staticflickr.com/6116/6255196340_da26cf2c9e_z.jpg",
"id": 397133
},
{
"license": 1,
"file_name": "000000037777.jpg",
"coco_url": "http://images.cocodataset.org/val2017/000000037777.jpg",
"height": 230,
"width": 352,
"date_captured": "2013-11-14 20:55:31",
"flickr_url": "http://farm9.staticflickr.com/8429/7839199426_f6d48aa585_z.jpg",
"id": 37777
},
...
]
- id : file_name에서 앞의 0을 지운 값. 일종의 pk값
- {} 하나에 하나의 이미지 내용 있다.
categories
"categories": [
{"supercategory": "person","id": 1,"name": "person"},
{"supercategory": "vehicle","id": 2,"name": "bicycle"},
{"supercategory": "vehicle","id": 3,"name": "car"},
{"supercategory": "vehicle","id": 4,"name": "motorcycle"},
{"supercategory": "vehicle","id": 5,"name": "airplane"},
...
{"supercategory": "indoor","id": 79,"name": "hair drier"},
{"supercategory": "indoor","id": 80,"name": "toothbrush"}
]
- 클래스의 카테고리가 총 80개 존재.
- id뒤에 name온다
annotations :: 박스그리는 정보가 들어있다.
"annotations": [
{
"segmentation": [[510.66,423.01,511.72,420.03,...,510.45,423.01]],
"area": 702.1057499999998,
"iscrowd": 0,
"image_id": 289343,
"bbox": [473.07,395.93,38.65,28.67],
"category_id": 18,
"id": 1768
},
...
{
"segmentation": {
"counts": [179,27,392,41,…,55,20],
"size": [426,640]
},
"area": 220834,
"iscrowd": 1,
"image_id": 250282,
"bbox": [0,34,639,388],
"category_id": 1,
"id": 900100250282
}
]
- 하나의 그림이 bbox하나로 묶여져있지 않고 모두 다 흩어져있다.
- bbox에 image_id를 결합해야 그림에 존재하는 object하나를 가리킨다.
- area는 면적 = width * hight
'AI' 카테고리의 다른 글
[Object Detection] YOLO ver.2 (0) | 2021.06.15 |
---|---|
[Object Detection] YOLO ver1 (0) | 2021.06.14 |
Semantic Segmentation 코드 구현 (0) | 2021.06.12 |
Binary Classification (0) | 2021.06.11 |
Segmentation (0) | 2021.06.10 |