개발

근황 + Coral Dev_board + SAM

murbachovski 2024. 3. 13. 23:42

Segment Anything Model => On_device 개발에 집중하다 보니깐

정리를 잘 못했습니다.

 

https://github.com/Vision-Intelligence-and-Robots-Group/Awesome-Segment-Anything

 

GitHub - Vision-Intelligence-and-Robots-Group/Awesome-Segment-Anything: A collection of project, papers, and source code for Met

A collection of project, papers, and source code for Meta AI's Segment Anything Model (SAM) and related studies. - Vision-Intelligence-and-Robots-Group/Awesome-Segment-Anything

github.com

 

https://github.com/xinghaochen/TinySAM

 

GitHub - xinghaochen/TinySAM: Official PyTorch implementation of "TinySAM: Pushing the Envelope for Efficient Segment Anything M

Official PyTorch implementation of "TinySAM: Pushing the Envelope for Efficient Segment Anything Model" - xinghaochen/TinySAM

github.com

 

Google Coral Dev_board => TFLITE => EDGETTPU => TPU 구동에 집중하다 보니깐 

모델 크기, 양자화, 메모리 등에 집중해서 풀지 못했다.

 

Google Coral Dev_board => h5, onnx, pth, pt등 => CPU 구동이 가능함을 확인했다.

그래서 처음에 YOLO를 TPU로 구동하려고 양자화, 컴파일등 시도하다가 잠시 접어두었다.

라이브러리 및 환경 설정 해주면 CPU로 추론이 가능하다.

 

지금 하는 개발에 있어서 중요한 Task인 SAM 구동도 성공했다.

우선 OpenSource로 여러 종류의 SAM있는데 LangSAM, TinySAM을 시도했다.

TinySAM만 성공했다.

TinySAM의 해결법을 LangSAM에 적용해서 구동시키면 가능할까? 라는 의문이 있어서 곧 Test를 해보려고 한다.

실패 이유는 Dev_board의 CPU RAM MEMORY는 1G가 전부다.

그래서 SDcard를 mount해주고 swapfile 만들어줘서 물리적 메모리지만 할당이 가능하다.(하지만 많이 swap해줘도 할당량은 적고 속도도 매우 느리다.)

이 방법론으로 풀리지 않았다.

그래서 TinySAM 모듈 관련 디버깅으로 이미지 사이즈 및 메모리 줄일 수 있는 건 줄여보다가 파라미터 자체를 수정해서 Test를 진행했고 성공했다.(다소 성능 저하가 발생)

 

앞으로도 SAM으로 풀어야할 숙제가 많고 넘어야할 산이 얼마나 높은지 모르겠지만 재밌다.

That's why is 전에 다루던 데이터는 한 장의 이미지 안에 Class의 종류 및 개수가 정해져 있었다.

현재의 데이터는... 알수 없다. 그리하여 더 욕심이 생긴다.

지금의 지식으로는 풀 수 없지만 아오 조금만 더 지식이 있으면 풀 수 있을거 같은데 라는 생각이 든다.

근데 진짜 할 수 있을거 같다. 아니 진짜 풀고 싶다.

현재의 데이터에 맞는 모델을 백본부터 아예 수정해서 만들어 보고 싶다.

 

Anyway, I think now the best model is SAM. Are you?