docker build -t sports-ball-detection .
docker run -it --gpus all sports-ball-detection
cd ./src && sh setup_scripts/setup_soccer.sh
.datasets
|-----soccer
| └-----videos
| └-----frames
| └-----annos
cd ./src && sh setup_scripts/setup_weights.sh
, then models are located in <WASB-SBDT_HOME>/pretrained_weights
.python3 main.py --config-name=eval dataset=soccer model=wasb detector.model_path=../pretrained_weights/wasb_soccer_best.pth.tar
<?xml version="1.0" encoding="utf-8"?>
<annotations>
<version>1.1</version>
<meta>
<task>
<id>23</id>
<name>Soccer_ID-1</name>
<size>2998</size>
<mode>interpolation</mode>
<overlap>5</overlap>
<bugtracker></bugtracker>
<created>2022-10-20 07:46:34.161107+00:00</created>
<updated>2022-10-23 07:35:02.607571+00:00</updated>
<subset>default</subset>
<start_frame>0</start_frame>
<stop_frame>2997</stop_frame>
<frame_filter></frame_filter>
<segments>
<segment>
<id>23</id>
<start>0</start>
<stop>2997</stop>
<url>http://localhost:8080/?id=23</url>
</segment>
</segments>
<owner>
<username>matlab</username>
<email>tarashima@acm.org</email>
</owner>
<assignee></assignee>
<labels>
<label>
<name>ball</name>
<color>#804080</color>
<attributes>
<attribute>
<name>used_in_game</name>
<mutable>False</mutable>
<input_type>select</input_type>
<default_value>1</default_value>
<values>1
0</values>
</attribute>
</attributes>
</label>
</labels>
<original_size>
<width>1920</width>
<height>1088</height>
</original_size>
</task>
<dumped>2022-10-24 02:30:54.254359+00:00</dumped>
<source>ID-1.avi</source>
</meta>
<track id="0" label="ball" source="manual">
<points frame="115" outside="0" occluded="0" keyframe="1" points="7.02,790.87" z_order="0">
<attribute name="used_in_game">1</attribute>
</points>
<points frame="116" outside="0" occluded="0" keyframe="1" points="24.90,785.80" z_order="0">
<attribute name="used_in_game">1</attribute>
</points>
주요 구성 요소들:
<meta>
태그: <labels>
태그: used_in_game
속성은 축구공이 게임에서 사용되었는지 여부(1 또는 0)를 나타냅니다.<track>
태그: <points>
요소는 특정 프레임에서의 축구공의 위치와 그 프레임이 키 프레임인지, 공이 화면 밖에 있는지, 가려진 상태인지 등의 정보를 포함합니다.추가 데이터를 어노테이션하기 위해서는 기존의 XML 파일 구조를 이해하고, 동일한 형식으로 새로운 데이터를 입력해야 합니다.
어노테이션 추가 과정:
1. 새로운 <track>
요소 추가: 새로운 비디오 데이터에 대한 축구공의 위치를 <track>
요소 내에 추가합니다. 각 <track>
요소는 공의 움직임을 특정 프레임에 대하여 설명합니다.
2. 프레임 정보 입력: 각 <points>
요소에 프레임 번호, 축구공의 위치(points
속성), 가려짐 여부(occluded
), 화면 밖 여부(outside
) 등의 정보를 정확하게 입력합니다.
3. 속성 설정: 필요한 경우, 각 <points>
내에 <attribute>
요소를 사용하여 추가 속
성(예: used_in_game
)을 설정합니다.
4. 파일 검증: 어노테이션을 추가한 후, XML 구조가 올바르게 유지되었는지 확인하고, 필요한 경우 수정합니다.
XML 어노테이션 파일 작업은 주로 XML 편집기나 특화된 어노테이션 툴을 사용하여 수행됩니다. 이러한 툴을 사용하면 데이터의 일관성과 정확성을 보장할 수 있습니다.