본문 바로가기

Computer Vision + Python/산업 응용 & 비즈니스활용 (전문가)

실제 모바일 영상 처리 실습에서 느낀 한계와 TensorFlow Lite 적용 후기

모바일 환경에서 영상 처리를 해야 하는 상황이 생겼다.
처음에는 OpenCV만으로도 충분하지 않을까 생각했다. 실제로 간단한 테스트까지는 문제없이 돌아갔다. 그런데 프레임이 조금만 많아지거나, 모바일 환경을 고려하기 시작하니 생각보다 한계가 분명해졌다.

그래서 TensorFlow Lite까지 보게 됐다.
솔직히 말하면, 프레임 처리 부분에서 한참 헤맸다. 모바일 환경에서는 로그 하나 보는 것조차 번거로워서, 어떤 접근이 옳은지 판단하는 데 시간이 오래 걸렸다.
자료를 찾아보면 굉장히 가볍고 빠를 것처럼 보이는데, 막상 직접 써보니 생각보다 손볼 게 많았다. ‘모바일에 최적화됐다’는 말과 실제 적용 사이에는 꽤 거리가 있었다.

Python과 TensorFlow Lite로 모바일 영상 처리를 시도하는 실제 개발 코드 화면
Python과 TensorFlow Lite로 모바일 영상 처리를 시도하는 실제 개발 코드 화면


예상과 현실 차이 — 예상보다 쉽지 않았던 이유

문서나 예제만 봤을 때는 구조가 단순해 보였다.
모델도 작고, 모바일에서도 무리 없이 돌아갈 것 같았다. 특히 속도에 대해서는 큰 걱정을 하지 않았다.

막상 해보니 이야기가 달랐다.
의외로 준비해야 할 게 많았고, 환경에 따라 결과가 미묘하게 달라졌다. 개발 환경에서는 잘 돌아가는데 모바일로 옮기면 프레임이 끊기거나, 예상보다 처리 속도가 나오지 않는 경우도 있었다. 이때부터 “이게 생각보다 쉽지 않구나”라는 느낌이 들기 시작했다.

내 상황에서는 이런 구조가 더 적합했지만, 다른 프로젝트에서는 다른 선택도 고려할 수 있다고 느꼈다.


막히고 헤맨 부분 — 애매했던 점과 시행착오

가장 먼저 시간을 잡아먹은 건 프레임 처리였다.
영상 데이터를 어떻게 넘기느냐에 따라 전체 성능이 크게 달라졌다. 이론적으로는 이해하고 있었지만, 실제로는 사소한 처리 방식 차이 때문에 결과가 확 달라졌다.

그다음은 모델 로딩 문제였다.
환경에 따라 로딩 속도가 다르고, 처음 실행 시 지연이 꽤 크게 느껴졌다. 속도 이슈도 계속 신경 쓰였다. “한 번만 더 줄이면 되지 않을까” 하면서 계속 튜닝을 시도했지만, 이건 아직도 애매한 부분으로 남아 있다.

디버깅도 쉽지 않았다.
모바일 환경에서는 로그 하나 보는 것도 번거로웠고, 문제가 생겨도 원인을 바로 잡기 어려웠다. 완전히 해결됐다고 말하긴 어렵고, 지금도 상황에 따라 다른 접근이 필요할 것 같다는 생각이 든다.
이 방식이 정답이라고는 할 수 없다. 상황에 따라 더 나은 접근이 있을지도 모른다.

TensorFlow Lite 인터프리터 경고와 모델 로딩 오류가 한꺼번에 나타난 실행 화면
TensorFlow Lite 인터프리터 경고와 모델 로딩 오류가 한꺼번에 나타난 실행 화면


TensorFlow Lite를 쓰면서 애매했던 점들

장점만 보면 선택이 쉬웠을지도 모른다.
하지만 실제로 써보니 불편한 점도 분명했다.

성능 튜닝에는 한계가 있었고, 모델을 바꿀 때마다 손이 많이 갔다. 자료는 많은 편이지만, 막상 내가 원하는 상황에 딱 맞는 예제는 찾기 어려웠다. 다시 한다면 이 부분은 다르게 접근해볼 것 같다는 생각도 든다.


왜 이 조합을 선택했나 — 선택의 이유와 한계

왜 TensorFlow Lite였을까.
완벽해서라기보다는, 모바일 환경에서 그나마 현실적인 선택지처럼 보였기 때문이다. Python을 선택한 것도 같은 이유였다. 이미 익숙한 환경이었고, 빠르게 테스트해볼 수 있었다.

누군가에게는 다른 선택이 더 맞을 수도 있다.
나는 이런 상황이었고, 이런 제약 안에서는 이 조합이 그나마 나았다. 정답이라기보다는 타협에 가까운 선택이었다.


지금 시점에서의 개인적인 정리

이 방식은 빠르게 모바일 영상 처리를 시험해보고 싶은 경우에는 나쁘지 않다.
반대로, 극단적인 성능이나 완성도를 기대한다면 다른 접근이 더 맞을 수도 있다.

막상 해보니, 기술 선택보다 중요한 건 “어디까지를 목표로 하느냐”였다. 이 실습을 통해 그 기준을 조금 더 명확히 잡을 수 있었던 건 분명한 수확이었다.


마무리하며

아직도 더 나은 방법이 있을 것 같다는 생각은 든다.
다만 지금 상황에서는 이 선택이 가장 현실적이었다. 이번 실습을 통해 깨달은 것은,
완벽한 기술 설명보다 **실제 실행 단계에서 부딪힌 문제와 판단 근거**가 더 중요한 경험이라는 점이었다.