티스토리 뷰

SubSENSE: A Universial Change Detection Method With Local Adaptive Sensitivity


이 논문은 CVPR workshop 2012, 2014에서 열린 ChangeDetection workshop에서 1등을 했다라고 밝힌 논문이다. changedetection.net 사이트에 보면 영상의 카테고리 별로 영상이 다양하게 주어져있고, ground truth도 함께 제공되고 있다. 


유투브 결과 영상.




가장 기본적인 컨셉은 TIP 2011년에 발표된 ViBe라고 하는 방법에다 feature와 다이나믹하게 파라미터를 바꾸는 feedback scheme을 활용하여 좋은 성능으로 만드는 방법이다. 예를 들어, 나뭇가지가 많이 흔들리는 영역은 detection이 잘 되지 않도록 바꾸고, 배경 모델이 잘 만들어졌다고 보이는 부분은 detection이 잘 되게 하도록, 민감도를 알고리즘이 스스로 조정하도록 만드는 방법이다.


기본적으로 background modeling을 할 때는, pixel 당 평균과 분산을 각각 기억하고 있는 방식을 취하는데, 2011년에 ViBe 방식은 sample consensus라고 해서, 단순히 대략 50개 정도의 샘플을 갖고 있고, 후에 판단할 때는 nearest neighbor 하듯이 카운트를 통해서 배경과 전경을 구별한다.



매우 간단하게, 기존에 나왔던 값들로 저장된 검정색 점들이 있다면, 현재 들어온 v(x) 주변에 반경 R 만큼을 보고 이 안에 들어오는 갯수가 많으면 배경, 그렇지 않으면 전경이라고 구별을 해서 판단한다. 


그리고 학습도 랜덤으로 이 샘플 중에 하나를 버리고 새로 채워넣고 등등 으로 하는데, 매우 간단한 것에 비해서 성능도 좋은 편이고 무엇보다 속도가 엄청나게 빠르다. 보통 배경 모델링에서 문제로 삼는 급격한 조명변화 같은 경우에도 기존 방법은 평균으로 학습하다보면 기존 배경값도 깨지고, 현재 들어온 것에 대해서도 안맞는 값이 되어버리는데, 단순히 샘플을 갖고 있으면 이러한 문제를 해결할 수도 있고.


이러한 ViBe 방식에 파라미터를 자동 조정하는 부분과 샘플의 feature를 단순 컬러 값이 아니라 바이너리 패턴으로 해서 성능향상이 있는데, 실제로 돌려보면 약간 후처리에 들어가는 segmentation 영향이 큰지 좀 덩어리로 크게 크게 나오는 경향이 있다. 물론, 이것은 챌린지에서 성능을 좋게 만들기 위함이기도 하겠지만... 


저자가 OpenCV background subtract 모듈과 같은 형식으로 아래 페이지에 코드도 올려두었으므로, 사용하기가 쉽다.

https://bitbucket.org/pierre_luc_st_charles/subsense


논문에서는 45프레임/s 라고 언급하고 있는데, 영상 크기가 조금 큰 것을 테스트해보면, 실시간까지는 될 것 같은데 매우 빠르다는 느낌은 덜 하긴 하다. 사실 ViBe 기반에서 여러 모듈을 붙여서 성능 개선의 느낌이기 때문에, ViBe 만큼 엄청나게 빠르지 못한 것은 사실.( 대략 ViBe는 100프레임/s는 충분히 넘기는 듯 하다.) 


일단 컨셉만 안까먹도록 정리해두고, 후에 수식이나 다른 부분에서 적용해볼 수 있을 법한 것들은 후에 슬라이드 보고 참고해서 정리해야겠다. 










공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함