Vision Multi Stage 활용법

류창훈·2025년 9월 6일

딥러닝

목록 보기
11/11

이번 내용은 인공지능 비전 분야에서의 Multi Stage 구성 방식을 설명드리고자 합니다.




왜 사용 하는가?


간단한 예시를 들어 설명 드리겠습니다.

만약 고속도로에 올라가있는 차량이 소나타인지, 그렌저인지
구분해야 하는 과제를 받았다고 칩시다.


위 과제를 수행해야 한다고 하면, 보통은 Detection을 생각하게 될 것입니다.


하지만, 카메라의 환경(예: CCTV)은 매우 다채로울 것이고,
환경이 다르다고 하면,
몇 배율인지, 각도는 어떻게 되는지, 화질은 또 어떤지, 도심지인지 농촌인지, 차량 통행량이 많은 지역인지 등

이런 모든 것을 포괄하는 표현입니다.



보통의 비전 작업(그냥 인공지능 전부 포함) 과정을 매우 간결하게 축약하면,

1. 데이터 수집
2. 데이터 샘플링(라벨링)
3. 모델 학습
4. 결과 추론

이렇게 적을 수 있습니다.



다시 돌아와서,
Detection 단일 모델을 기준으로 생각하고,

결과 추론에 도달하기 위해 학습을 해야겠다! 하고 쭉 1번 2번 3번 4번 이렇게 가다보면



네.
1번부터 막히게 됩니다.


사실 가장 좋고 편한건 위에처럼 하나의 모델로 가는 것 입니다.

하지만 이렇게 학습한 모델을 가지고 다른 환경에 적용했을 때
분명 잘 안나올 것이 뻔합니다.


그래서 설계 단계부터 최종 출력을 위해
여러 모델을 하나의 흐름으로 합치는 방식인
Multi-Stage를 사용하고는 합니다.




Multi-Stage 구성 방식


먼저 Multi Stage의 정의부터 말씀드리자면,

하나의 작업이나 문제 해결을 여러 단계(stage)로 나누어 순차적으로 수행하는 방식

입니다.



음...
항상 정의는 이해하기 어렵습니다.


위에처럼 차량 종류 인식을 위하여
Detection 모델을 학습했다고 가정합시다.


이렇게 학습 후 가장 이상적인 추론은

Class 1: 소나타
Class 2: 그렌저
Class 3:
.
.
.


클래스를 어떻게 나누느냐에 따라 다르지만,
보통은 이렇게 나오는 것을 바랄겁니다.



하지만 이미지 혹은 동영상 학습은 무수한 연산을 처리해야 합니다.

예를 들자면,


어떤 숫자 값으로 구성된(예: 0.12, 1, 2, 3) csv 파일이 있다고 합시다.
여러 column이 모여 하나를 구성하는 것인데,
보통은 이게 100, 200개를 넘지는 않을 것 입니다.

물론 column이 더 많아질 수도 있습니다.
하지만 column 항목마다 그걸 직접적으로 다루는 사람은 명확히 파악 해야 해서
따로 또 짤라다가 학습 데이터를 구성하고는 합니다.

정확하진 않아요 이쪽 분야가 아니라서 ㅎㅎ

하지만 이미지 분야는,

한 이미지 사이즈가 1080 x 720 이렇게 구성이 되어 있다고 하면,

777,600개의 픽셀로 구성.

그리고 컬러 이미지라고 하면, 보통은 3채널로 구성이 되기 때문에

777,600 x 3 = 2,332,800

이 숫자값들이 모여 하나의 이미지를 이룹니다.



보통은 몇십만장, 몇백만장의 이미지로 학습 데이터를 구성 하고 싶어하는데,
사실 이정도 규모의 데이터를 감당할 수 있는 장비는
전세계에 손꼽힐 것이라 생각합니다.

존재는 할까? 란 생각도 드네요

뭐 여기서 말씀 드리고 싶은 것은
저런 고성능 장비가 갖추어져 있다고 해도 학습에 있어서 몇주, 몇달, 몇년이 걸리게 됩니다.

물론 학습 시간을 최소화 하기 위한 방법은 많습니다.

하지만 우리의 연구는 시간이 정해져있고,
그렇기 때문에 마냥 기다릴 수는 없습니다.


그래서 시간을 고려하여 이정도 데이터 규모까지는 커버할 수 있겠다 하는걸 정해놓고
서로 다른 학습 데이터서로 다른 output을 가진 모델 여러개를
짜집기 하여 전체 파이프라인을 구성을 합니다.

이렇게 함으로서 최선의 정확도를 보이는 것 입니다.



음~

위 소나타 그렌저 구분 문제라고 하면,

제가 학생 때 했었듯이

Detection -> Classification

이런식으로 구성을 할 수 있겠네요.

https://github.com/LoadKill/LoadKill-main/tree/main/Detection

링크 작업물에는 Tracking도 들어가있기는 한데, 그냥 있는거 가져다 쓴 겁니다.



나아가며


각 모델 흐름과 파이프라인 구성,
이건 누가 짜느냐에 따라 다 달라집니다.


서로 보는 견해도 다르고,
본인이 구성한 것 보다 더 나은 방향이 존재할 수 있습니다.

사실 시간이 지나면 무조건 생깁니다.



저도 그랬지만 그 누구보다 더 잘 만들고 싶어해서 최신 논문 마구잡이로 찾아보고 따라서도 해보고,

그렇게 계속 따라하다보면, 또 다른 더 좋은 방식이 보이고,
이렇게 해서 분명 더 좋은 방식이 나올 수 있으나,


연구는 시간 내에 끝내는 것이 가장 중요합니다.


그도 그럴것이 연구는 정답이 없습니다.
정답이 없다는 것은 어떤 방식을 무한대로 적용할 수 있다는 것이고,

시간도 무한대로 들 수 있다는 말과 같습니다.


그래서 연구 시작 때, 어떤 임계점을 정해놓고, 이정도를 채웠다 하면
거기서 탁 멈추는 것도 참 중요합니다.


출퇴근 하다보니 그걸 알겠더라구요.
이거 안 정해두고 하면, 무간지옥이 따로 없습니다 ㅎㅎ

학생때는 지도 교수님이 보통 이런 방향, 어디까지 해라 이런건 정해주는데, 사설 연구 업체는 이런걸 직접 정해야 한다.

그래서 결론적으로 연구의 가장 중요한 마음가짐은,

1. 본인 만의 방식으로, 완전한 이해가 가능한 수준까지만.
2. 욕심 안부리고 시간 내 마무리 할 수 있는 정도까지만.

이쯤되니 느끼는건데,
논문들 보면 맨 뒷 페이지에 제약사항 적혀있는 이유가,

연구진들이 막 하다보니 더 좋은 방식 찾게 되고,
근데 또 거까지 하면 시간 못 맞출 것 같고,

그래서 뒷 페이지에 제약사항, 추후 보완 사항 이라고 막 적어두는 것 입니다.


쉽게 말하면 아 더는 못해먹겠다 ㅋㅋ 이건데,

그 이유는 명확해야 합니다.
왜 못해먹겠는지.



근데 오히려 좋아요.
안되는거 가리는데 급급하지 않고, 이렇게 오픈을 함으로서,

다른 연구진들이 더 보완해주고, 이렇게 점점 발전하고,

그래서 인공지능이 여기까지 빠른 시간 안에 발전할 수 있었던게 아닌가 싶습니다.


말이 너무 길었네요.

다른 연구진분들도 파이팅 입니다.




감사합니당 ~ 🦾

profile
Vision AI Researcher

0개의 댓글