다모앙 커뮤니티 운영 규칙을 확인하세요.
X

한 달 넘게 딥러닝 모델 만들기(변환?)에 전념했네요.

페이지 정보

작성자 리코리안
작성일 2025.01.28 13:23
615 조회
4 추천

본문

안녕하세요.

제주에서 앱 개발하는 리안입니다.


작년 말에 배경제거 카메라 (https://apps.apple.com/kr/app/id6737147536) 를 출시했는데요,

(유료앱이고, 아이폰 전용이라 스크린샷만보시면 됩니다 어떤 앱인지 설명을 위해...)


실시간으로 배경을 제거하다보니 퀄리티가 아쉽다는 피드백이 생각보다 많이 들어왔었습니다.

실시간으로는 속도가 안나와서 일단 촬영하고 나서 배경제거 퀄리티를 올리는 작업을 하고 있는데,

이게 성능이 별로였습니다 ㅠ (마찬가지로 속도 이슈 때문)


암튼...


그래서 딥러닝 모델을 새로 만들기로 했습니다.

찾아보니 방법은 크게 2가지였습니다.


1) 이미지에서 퀄리티를 높여서 처음부터 마스크를 추출하거나,

또는 2) 배경제거한 결과 (마스크 이미지)와 원본 이미지를 입력으로 해서 마스크 이미지를 퀄업 시키는 방향.


일단은 이런저런 이슈 때문에 기존 방법에 2를 적용하기로 했습니다.

2의 방법은 이미 공개된 모델을 iOS 에서 쓸 수 있게 레이어 조정 및 최적화를 해서 생각보다 작은 용량으로 결과를 만들 수 있었습니다.


간단하게 레이어 조정 하고, 최적화 작업을 하는데 약 2주가 넘게 걸렸네요.

지금은 앱에 이걸 어떻게 적용할지 UX 고민을 하고 있습니다. (아마 다음 달 중에 업데이트 예정)




그리고 1)의 경우가 결과 자체가 더 좋은데, 아이폰 15 프로에서도 시간이 너무 오래걸리고, 메모리도 많이 먹어서 쓰기가 힘들더라구요.

그래서 1)을 직접 개선한 모델을 만들고, 학습시키고 있습니다. (해상도를 낮추고, 백본을 더 가벼운걸로 교체해서 만들었습니다.)


딥러닝은 이론밖에 모르는 상태에서 chatgpt 도움 받아서 웹상의 이런저런 모델, 메뉴얼들 살펴봐가면서 공부를 했네요.

공개된 데이터셋을 몇 가지를 합쳐서 학습 데이터셋을 만들고, 제일 간단한 모델에서부터 딥러닝 모델 학습 중입니다.


제 노트북이 M1 Pro 16GB 인데, 512 해상도로 학습 시키는데 1 epoch 에 약 45분이 걸리고, 쓸만한 상태로 만들려면 약 40 epoch ~ 120 epoch 가 필요해서 쉬지 않고 학습 시켜도 며칠이 걸리네요.


1024 해상도는 학습이 불가능한 정도라... 512 해상도로 학습 시켜서 그 결과물을 보고 Colab 결제하거나 다른 온라인 서비스를 이용해 학습해볼 예정이네요.



암튼... 이번에 공개된 딥러닝 모델들을 iOS에서 쓸 수 있게 더 가볍게 모델들을 튜닝하고, 학습데이터 모으고, 학습시키고, 이를 CoreML 로 변환하고, 결과물을 최적화 하는 작업들을 한 달 넘게 진행하면서 많이 배웠네요;; 다음에 어떤 앱을 만들 때 온디바이스 모델이 필요하면 더 빠르게 만들 수 있을거 같네요 ㅎㅎ



마무리로 튜닝 결과물 올려봅니다. 

아래 2개가 튜닝 결과물이고, 위가 이전 상태네요. (좌상단은 촬영 직후, 우상단은 기존 결과 개선 상태)



즐거운 설 보내세요.

감사합니다. 



4추천인 목록보기
댓글 3

챠비님의 댓글

작성자 no_profile 챠비
작성일 01.28 23:16
저도 1만개가 넘는 이미지의 배경제거 시도하다가 퀄리티가 별로라 빨리 포기했어요.

엉클머리님의 댓글

작성자 엉클머리
작성일 01.30 09:17
올리셨던 글 본 적 있습니다. 응원드립니다! 요즘 유행하는 증류로...yo

리코리안님의 댓글의 댓글

대댓글 작성자 리코리안
작성일 01.30 12:04
@엉클머리님에게 답글 증류도 시간날때 한번 해보겠습니다 ㅎㅎ 계산해보니 새로운 레이어와 백본으로 예상 시간이 1/4정도 될거 같은데 과연... 
감사합니다.
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색