Event Cameras with Davide Scaramuzza 노트 (Robohub 팟캐스트 Ep.347)
소개
- Prof. Davide Scaramuzza
- ETH-Zurich (취리히 공대)의 Robotics and Perception 그룹의 리더
- 약 10년정도 된 그룹
- 약 15명의 연구자들이 robotics, computer vision, learning & control의 융합연구를 진행중
- 로봇이 A->B로 이동하기 위해 주변 환경을 인식하고 이동하는 방법에 대해 연구중
- 주 로봇 플랫폼은 Drone임. Ground 로봇보다 훨씬 빨라서 좋다.
- 주 센서는 카메라와 IMU 임.
이 연구를 하게 된 계기는?
- 처음에는 나도 조교수였다. 박사 학생도 아무도 없었고 (ㅋㅋ). 많은 research proposal들을 지원하다보니 약 10명정도 까지 생겼다.
- 첫 연구 주제는 drone navigation이였는데, 몇년 후 event camera쪽 연구를 시작하게 되었다.
- 사람보다 더 빠르게 주변 환경을 인식하는 시스템을 만들고 싶었는데, 이를 위해서는 더 빠른 센서가 필요하다고 생각했기 떄문이다.
- 로봇을 쓰는 이유를 생각해보면, 다 사람보다 훨씬 효율성있기 떄문이다 (e.g. 산업로봇들이 사람들을 대체한 케이스). 그렇기 때문에, 로봇으로써 가치가 있기 위해서는 사람보다 더 빠르게 주변환경을 인식해야하고 더 빠르게 결정을 내릴 수 있어야한다.
Event camera란?
- Event camera는 모든 pixel이 각각 독립적으로 작동하는 카메라이다.
- 각각의 pixel에는 마이크로칩이 있어서, pixel마다 intensity의 변화가 (i.e. event) 생김을 감지할 수 있다.
- +ve의 intensity 변화는 +ve event, -ve의 intensity 변화는 -ve event라고 할 수 있다.
- 기존의 카메라처럼 frame을 받는게 아닌, per-pixel intensity change를 받게 된다.
- 각각의 pixel에는 마이크로칩이 있어서, pixel마다 intensity의 변화가 (i.e. event) 생김을 감지할 수 있다.
- Event camera는 기존의 카메라처럼 discrete-time sampling을 통해 데이터를 취득하는게 아닌, continuous-time sampling을 통해 데이터를 취득한다.
- Frame이라는 개념 자체가 없다. 단순히 stream of data일뿐! 이 data 에는 event가 있는 pixel location과 intensity 변화 값이 있다.
- 선풍기가 event camera 앞에서 돌고 있다면, high-frame rate로 frame을 받는게 아닌, spiral events가 생긴다.
- 이것을 spiral events of space-time 이라고 한다.
- 기존의 카메라는 모든 pixel이 동일한 시간에 값을 취득하지만, event camera는 그렇지 않다.
- (솔직히 여기를 듣고나서 충분히 설득이 되진 않았지만… 모든 센서는 다 discrete-time sampling이고, event camera는 그냥 그게 엄청 빠른거 아닌가? ‘Resolution of microseconds’를 가지고 있다고 하셨는데, 이거 자체가 사실 discrete-time sampling이라는 얘기인거 같은데… 그런데 이런 주장에는 단호하게 ‘no’라고 하신 이유가 궁금하다.)
Event camera의 장점 / 장점이 드러나는 연구들
- Event camera를 사용하면 ‘어떤 motion이 들어와도 깨지지 않는 state estimation‘이 가능하다.
- ‘Ultimate SLAM’이라고 공개한 논문이 있는데, 기존의 카메라들이 실패하는 케이스를 event 카메라로 매우 훌륭하게 풀어냈다.
- 여기서는 카메라를 USB 케이블에 달아서 카우보이처럼 빙빙 돌렸다 ㅋㅋ
- 기존의 카메라들은 모션블러로 인해 진작에 실패했겠지만, event camera의 높은 temporal resolution을 통해 얻은 데이터에서 corner 정보를 취득해서 (물론 데이터가 다르게 생겼기 때문에 기존의 corner detection 방식을 사용하지는 못한다), IMU 정보와 fusion을 통해 아주 정확한 trajectory를 그릴 수 있었다.
- 이 연구를 통해 event camera를 사용하면 기존의 카메라를 사용해서 실패하는 경우의 85% 이상을 전부 개선할 수 있다는 결론을 내렸다.
- 기존 카메라들보다 ~8배 정도의 dynamic range를 가지고 있다.
- 어두운 곳에서도 잘 볼 수 있다. 터널에서 나오거나 하는 상황에서도 굉장히 잘 볼 수 있다.
- ‘Rotor failure’ 연구에서는 드론이 비행 중 하나의 rotor가 고장나서 비상착륙을 해야하는 시나리오를 다룬다. 이 때 드론이 아무데나 막 날라가지 않고 제자리에서 높이만 낮춰서 착륙을 해야하는데, 로터가 하나 고장났기 때문에 제자리에서 빠른 속도로 회전을 하면서 내려오게 된다.
- 광량이 충분한 상황에서는 SVO 같이 빠른 알고리즘을 사용하면 기존의 카메라로도 충분히 자세를 보정할 수 있었지만, 광량이 적은 곳에서는 motion blur가 너무 크게 나타나 불가능하다.
- ‘Rotor failure’ 연구에서는 event camera를 사용했을 때는 높은 dynamic range를 이용해서 아주 적은양의 광량에서도 안정적으로 위치를 추정할 수 있다는 것을 보여준다. 10 lux 정도까지 낮추는데에 성공했는데, 이는 보름달이 뜨는 밤 정도라고 한다.
- Event camera는 기본적으로 엄청 빠르다.
- ‘Rapid, dynamic obstacle avoidance’ 연구에서는 드론에 축구공을 던졌을 때 바로 피할 수 있을 정도의 속도를 낼 수 있었다.
- 기존의 카메라로는 ‘이미지 취득 - 이미지 취득 - 트랙킹 알고리즘 수행 - 동적 객체 인지’에 보통 20~30 ms씩 걸리는데에 비해, event camera에서는 3.5 ms 밖에 걸리지 않았다.
Event camera를 사람이 이해할 수 있을까?
- 인터뷰어는 ‘기존의 카메라는 그래도 사람이 봤을 때 바로 이해할 수 있는데, 이벤트 카메라는 그렇지 않을 것 같다. 사람이 이벤트 카메라도 이해할 수 있을까?‘ 라는 질문을 했다.
- 답변은 ‘Raw 데이터를 직접적으로 이해하기는 어렵다‘ 였다.
- 하지만 ‘Event-to-Video 변환 뉴럴넷 개발’연구에서는 RNN을 이용하여 사람이 이해할 수 있는 이미지의 형태로 event 데이터를 변환하는 네트워크를 개발하였다.
- 처음에는 Event camera 시뮬레이터에서 학습을 하고, 아래 이미지는 실제 event camera에서 recon을 한 모습이다. 다양한 event camera의 제조사 제품에도 다 적용된다고 한다.
- Event camera는 단일 센서로써 사용되면 안되고, 항상 기존의 camera와 함께 사용되어야한다고 생각한다.
- Event camera 자체는 하나의 high-pass filter로 볼 수 있다.
- 움직임이 전혀 없을 때, 예를 들어 자동차가 신호를 기다리면서 멈춰있을 때, 다양한 정보를 얻을 수 있다. 기존의 카메라는 이렇게 움직임이 없는 상황에서 더욱 깔끔한 이미지를 얻으며 많은 정보를 높은 품질로 수집할 수 있다.
- Event camera는 움직이지 않으면 아무런 데이터도 얻을 수 없다.
Event camera를 어떻게 쓸 수 있을까?
- 인터뷰어는 ‘Event camera가 실제로 어떻게 적용되고 있는지? 스타트업 같은 곳에서 event camera를 사용해서 차별점을 두고 싶다면 어떻게 해야하는지?’ 에 대해 질문을 했다.
- 답변으로는 우선 ‘Top tier 회사와 automotive 목적으로 연구를 진행하고 있고, HDR imaging 쪽도 연구를 하고 있다. Pedestrian detection 연구도 하고 있다.’
- 목표는 이러한 task들을 하는데에 10ms 미만으로 떨어트리는 것이다.
- Event camera를 쓰면서 느낀 점 중 하나는, 기존의 카메라보다 훨씬 적은 memory를 필요로 한다는 것이다.
- ‘TimeLens’연구에서는 기존의 FullHD 카메라로 얻은 2개의 이미지 사이에 event 카메라로 취득한 event 정보를 이용해서 frame-rate를 대폭 향상시키는 연구를 진행했다.
- High-FPS 이미지를 얻기 위해 비싼 초고속카메라를 쓸 필요가 없을 뿐더러, 약 40% 정도 더 적은 메모리를 사용한다는 점이 매력적인 연구였다.
- 예를 들어, Huawei P40로 촬영한 8000FPS 이미지는 1초당 약 16GB의 데이터 저장공간을 요구하는데, event camera를 이용한 것은 4GB만 이용한다.
Event camera, 근데 비싸지 않나…?
- 현재 가격으로는 $3000~5000 정도 한다. 하지만 이는 대량생산 이전의 가격이고, killer application만 찾게 된다면 $5 정도로 낮춰질 수 있지 않을까 예상을 하고 있다.
- 마치 예전에 depth sensor가 $10,000로 엄청나게 비쌌지만, 20년이 지난 현재는 많이 가격이 떨어진 것과 같은 행보를 걷고 있다고 생각한다.
- 시간은 걸릴거다. 하지만 언젠간 훨씬 저렴해질 것이라는걸 확신한다.
- 중국에서도 꽤 쓰고 있다고 알고있다.
- SynSense라는 회사는 event camera를 이용해서 face recognition을 하는데 1mV의 전력을 소비하는 초저전력 시스템을 만들었다고 한다. 이 회사는 edge device / always-on-device 를 노린다고 한다.
- 로켓이나 미사일 추격시스템 같은 시스템에서도 쓰려고 한다.
- Un-blurring image로도 쓸 수 있다.
Event camera로 거리 추정도 가능한지?
- ‘EVO’ 연구에서 visual odometry 연구를 진행했다.
- 1개의 event camera와 IMU를 섞어서 VIO를 할 수도 있고, 2개의 event camera를 사용해서 triangulation을 통해 depth 추정을 할 수도 있다. 이 중 하나는 rgb 카메라로도 바꿀 수 있다.
- 최근에는 Sony Zurich와 합작해서 event-depth sensor를 만들고 있다. 레이저 포인트 프로젝터를 연결해서 엄청나게 빠른 속도로 레이저가 환경을 스캔하고, event 카메라가 이 레이저를 트랙킹해서 60ms 마다 뎁스를 추정하는 센서를 만들었다. 근데 event camera는 사실 더 빠르게 추적할 수 있는데, 레이저 포인터의 최대 속도 떄문에 60ms가 걸린다고 한다. (‘Event-based structured light 연구)
- 최근에 Sony Zurich와는 Event-based LiDAR 연구도 하고 있다.
- 생각해보면, LiDAR는 엄청나게 많은 전력을 소비한다. 심지어 주변의 환경이 크게 변화하지 않을 때도 말이다. Event-camera를 이용해서 event가 있는 부분만이 moving object가 있다고 판단할 수 있고, 해당 위치에만 LiDAR 레이저를 쏨으로써 전체 전력량을 획기적으로 낮출 수 있다는 방법을 제안하고 있다.
Event camera를 써보고 싶다면?
- ‘Event camera resources’ 웹페이지를 팔로우하자! 여기에 관련된 데이터셋, 지난 10년간의 연구, 등등이 다 있다!
- Event camera는 살 필요가 없다. 비싸니까! 데이터셋을 쓰면 된다.