<결국 모델이 보고 학습하는 것은 데이터이기 때문에 데이터를 잘 다루는 것이 좋은 성적을 낼 수 있는 키포인트가 될 수 있다고 생각한다.>
라벨링 세분화의 필요성
각각의 클래스에 여러가지 다른 특성을 가진 물체들이 있음
ex)
메탈 - 병뚜껑, 통조림+참기름 캔, 쇠막대기
배터리 - 보조배터리, AA건전지
일반 쓰레기 - 스티로폼이나 박스를 묶고 있는 줄, 박스에 붙어 있는 테이프+물건에 붙어있는 비닐+비닐장갑, 명함+작은종이+박스에 붙어있는 택배송장, 빨대
페이퍼 팩 - 종이컵, 우유팩
간단히 생각해 보았을 때 학습이 진행되면 커널들은 클래스를 찾을 수 있는 커널들로 변형되는데 일반쓰레기의 택배송장이나 빨대 처럼 전혀 다른 특성을 가지고 있는 물체들이 같은 클래스로 분류되려면 살짝 다른 형태의 커널들로 학습될 것으로 생각된다.
그렇기 때문에 각각의 특성들을 잘 학습할 수 있게 세분화 하는 과정이 필요하다고 생각한다.
각각의 특성을 잘 학습한다면 여러가지 물체들에 대해서 헷갈려해도 더 강해지는 특성으로 인해 헷갈리는 종류가 줄어들고 그만큼 스코어는 높아진다. (예를 들어 헷갈리는 종류가 여러개에서 2개로 줄어든다면 그 두개가 각각 0.4, 0.5 같이 스코어를 나눠가지게 되고 그러면 둘다 prediction 할 수 있다.)
(쇠막대기, 빨대 - 얇고 긴 물체) 이것처럼 라벨링을 세분화 했을 때 비슷한 특성 때문에 잘못 인식 될 수 있다고 생각이 들지만 이 둘은 결국 다른 라벨이기 때문에 둘다 prediction 되고 결국 mAP가 올라가는 방향으로 prediction 될것이라고 예상할 수 있다.
고로 라벨링을 세분화하면 robust해지기 때문에 더 좋은 결과가 있을 것이라고 생각된다.
중간 크기 물체에 대한 선택과 집중
실험을 진행하면 mAPs는 0.01에서 0.06까지 이고 mAPm은 0.1정도라는 것을 알 수 있다.
실제로 s에 해당하는 0 ~ 32^2 크기의 물체는 있긴 하지만 많지 않고 m에 해당하는 물체들은 많다는 것을 알 수 있다. (약 16.7배)
고로 s까지 모두 prediction 하는 것 보다 s를 포기하고 m을 더 많이 prediction할 수 있는 방향으로 학습시키는 것이 mAP 성능 측면에서는 더 좋은 결과를 도출할 수 있다.
또, s를 없애봤자 전체 데이터중 1 ~ 2% 정도이고 만약 학습을 시키면 pseudo 라벨링 할 때 모델이 헷갈릴 상황이 더 많이 발생할 것이다.
또다른 방법으로는 anchor 박스의 크기를 각각 medium의 중간인 5*10^3과 large의 중간인 10^5를 기준으로 두개씩 만드는 방법도 있다.
0 ~ 32^2 : small, 32^2 ~ 96^2 : medium, 96^2 ~ 1e10 : large
red : 32^2, green : 96^2
small : 311개, medium : 5184개, large : 17640개
데이터 업샘플링
아직 결과분석을 제대로 해보지는 않았지만 대체로 봉투안에 들어있는 물건이나 강한 특성을 가지고 있지 않은 물건들이 잘 예측되지 않을 것이라고 생각이 된다. 예를 들어 스티로폼처럼 1000개 있는 물건보다 3,4,5,6천개 있는 플라스틱, 박스, 일반쓰레기, 비닐봉투들이 훨씬 많은 개수의 데이터가 있다. 하지만 스티로폼은 하얀색의 강한 특성을 가지고 있기 때문에 잘 예측될 것 이라 생각된다.
반면 봉투에 있는 병이나 플라스틱, 종이들은 모두 같은 비닐봉투안에 있기 때문에 모델이 판단할 때 기준이 모호할 수 있고 장화 같이 플라스틱과 옷 사이에서 혼동하기 쉽게 약한 특성을 가지고 있는 물체들도 모델이 헷갈려 할 수 있다.
그래서 이런 우리가 생각해도 모호한 데이터를 복사해서 더 많이 넣어줌으로써 우리도 알아보기 힘든 물체들을 잘 볼 수 있는 모델을 만들 수 있을 것이라고 생각할 수 있다.
general trash 클래스의 형태가 다양하게 존재하기 때문에 확실히 검출에 어려움이 있을 것으로 예상됩니다.
general trash의 클래스중에 많이 나오는 형태인 빨대, 담뱃갑, 박스에 붙은 테이프, 바닥에 버려진 명함과 전단지, 포대자루는 class 세분화를 진행해 보는게 어떨까요?
<결국 모델이 보고 학습하는 것은 데이터이기 때문에 데이터를 잘 다루는 것이 좋은 성적을 낼 수 있는 키포인트가 될 수 있다고 생각한다.>
라벨링 세분화의 필요성
각각의 클래스에 여러가지 다른 특성을 가진 물체들이 있음 ex) 메탈 - 병뚜껑, 통조림+참기름 캔, 쇠막대기 배터리 - 보조배터리, AA건전지 일반 쓰레기 - 스티로폼이나 박스를 묶고 있는 줄, 박스에 붙어 있는 테이프+물건에 붙어있는 비닐+비닐장갑, 명함+작은종이+박스에 붙어있는 택배송장, 빨대 페이퍼 팩 - 종이컵, 우유팩
간단히 생각해 보았을 때 학습이 진행되면 커널들은 클래스를 찾을 수 있는 커널들로 변형되는데 일반쓰레기의 택배송장이나 빨대 처럼 전혀 다른 특성을 가지고 있는 물체들이 같은 클래스로 분류되려면 살짝 다른 형태의 커널들로 학습될 것으로 생각된다. 그렇기 때문에 각각의 특성들을 잘 학습할 수 있게 세분화 하는 과정이 필요하다고 생각한다. 각각의 특성을 잘 학습한다면 여러가지 물체들에 대해서 헷갈려해도 더 강해지는 특성으로 인해 헷갈리는 종류가 줄어들고 그만큼 스코어는 높아진다. (예를 들어 헷갈리는 종류가 여러개에서 2개로 줄어든다면 그 두개가 각각 0.4, 0.5 같이 스코어를 나눠가지게 되고 그러면 둘다 prediction 할 수 있다.) (쇠막대기, 빨대 - 얇고 긴 물체) 이것처럼 라벨링을 세분화 했을 때 비슷한 특성 때문에 잘못 인식 될 수 있다고 생각이 들지만 이 둘은 결국 다른 라벨이기 때문에 둘다 prediction 되고 결국 mAP가 올라가는 방향으로 prediction 될것이라고 예상할 수 있다. 고로 라벨링을 세분화하면 robust해지기 때문에 더 좋은 결과가 있을 것이라고 생각된다.
중간 크기 물체에 대한 선택과 집중
실험을 진행하면 mAPs는 0.01에서 0.06까지 이고 mAPm은 0.1정도라는 것을 알 수 있다. 실제로 s에 해당하는 0 ~ 32^2 크기의 물체는 있긴 하지만 많지 않고 m에 해당하는 물체들은 많다는 것을 알 수 있다. (약 16.7배) 고로 s까지 모두 prediction 하는 것 보다 s를 포기하고 m을 더 많이 prediction할 수 있는 방향으로 학습시키는 것이 mAP 성능 측면에서는 더 좋은 결과를 도출할 수 있다. 또, s를 없애봤자 전체 데이터중 1 ~ 2% 정도이고 만약 학습을 시키면 pseudo 라벨링 할 때 모델이 헷갈릴 상황이 더 많이 발생할 것이다.
또다른 방법으로는 anchor 박스의 크기를 각각 medium의 중간인 5*10^3과 large의 중간인 10^5를 기준으로 두개씩 만드는 방법도 있다.
0 ~ 32^2 : small, 32^2 ~ 96^2 : medium, 96^2 ~ 1e10 : large red : 32^2, green : 96^2 small : 311개, medium : 5184개, large : 17640개
데이터 업샘플링
아직 결과분석을 제대로 해보지는 않았지만 대체로 봉투안에 들어있는 물건이나 강한 특성을 가지고 있지 않은 물건들이 잘 예측되지 않을 것이라고 생각이 된다. 예를 들어 스티로폼처럼 1000개 있는 물건보다 3,4,5,6천개 있는 플라스틱, 박스, 일반쓰레기, 비닐봉투들이 훨씬 많은 개수의 데이터가 있다. 하지만 스티로폼은 하얀색의 강한 특성을 가지고 있기 때문에 잘 예측될 것 이라 생각된다. 반면 봉투에 있는 병이나 플라스틱, 종이들은 모두 같은 비닐봉투안에 있기 때문에 모델이 판단할 때 기준이 모호할 수 있고 장화 같이 플라스틱과 옷 사이에서 혼동하기 쉽게 약한 특성을 가지고 있는 물체들도 모델이 헷갈려 할 수 있다. 그래서 이런 우리가 생각해도 모호한 데이터를 복사해서 더 많이 넣어줌으로써 우리도 알아보기 힘든 물체들을 잘 볼 수 있는 모델을 만들 수 있을 것이라고 생각할 수 있다.