iOS로 애니메이션 캐릭터 화려하게 잘라내기

개요
나는 그림부터 애니메이션 캐릭터의 디테일까지 모두 예쁘게 잘라내고 싶다.
강조 표시된 객체 테스트를 사용하여 iOS 부팅 장치에서 목표를 달성하는 방법을 설명합니다.



이 기사에 전하고 싶은 이야기.
애니메이션 캐릭터 같은'비인물'도 배경에서 예쁘게 분리할 수 있어요.
기존의 기계 학습 모형을 사용하여 폭발 속도로 이미지 내의 현저한 대상의 배경을 아름답게 분리하는 방법
해결하고 싶은 과제
객체(애니메이션 역할)를 자를 수 있는 경우 다양한 용도로 사용할 수 있습니다.
예를 들어 배경을 바꾸는 등이다.
하지만 한 명씩 수동으로 자르면 시간이 아무리 걸려도 부족해요.
그래서 최근 몇 년 동안 기계 학습을 통해 대상을 식별하고 단번에 자르는 의미 구분 기술을 사용했다.
그러나 애니메이션 캐릭터에 적용될 수 있는 고정밀 기계 학습 모델은 드물다.
애니메이션 캐릭터를 예쁘게 잘라낼 수 있는 방법은 없을까요?
과제의 원인
예를 들어 DeepLab 등 구분 방식을 통해 학습한 대상은 대부분 인물, 차 등 대상이다
이 모형들은 사전에 학습한 대상만 캡처할 수 있다.
그리고 애니메이션에 적합한 고정밀 미리 배운 모형을 찾기 어렵다
스스로 학습하더라도 대량의 애니메이션 이미지에 대해 캐릭터와 배경에 따라 구분하여 데이터 집합을 만들 필요가 있다.
애플의 비전은 2021년부터 의미의 분할을 할 수 있게 돼 애니메이션 캐릭터를 벗어날 수 없게 됐다.
과제를 해결하는 기술, 수법
기술, 기법의 개요
따라서 iOS에서 U2Net이라는 기계 학습 모델을 사용하면 iOS로 애니메이션 캐릭터에 접근할 수 있다.
U2Net은 이미지에서 현저한 대상을 분리할 수 있는 머신러닝 모델로 대상을 제한하지 않는다.
기술, 수법의 효과
U2Net을 사용하면 애니메이션 캐릭터를 멋지게 벗어날 수 있다.
또한 전원이 켜진 장치에서는 통신 없이 실행할 수 있습니다.
칼을 뽑는 속도는 0.1초도 안 되는 제비다.
과제는 어떻게 해결합니까
지금까지 실현할 수 없었던 애니메이션 캐릭터의 커팅은 미세한 부분까지 고정밀하게 실현할 수 있다
배경 교체를 비롯한 다양한 응용 프로그램에 적용할 수 있습니다.
사례.
실제로 remove.bg의 인터넷 서비스를 통해 애니메이션 캐릭터를 잘라낼 수 있게 됐다.
이 서비스 내부에서 사용하는 것은 U2Net입니다.
이 모델을 직접 사용하면 귀하의 서비스에서도 현저한 대상 검측 기술을 사용할 수 있습니다.
주의점
모델은 아이폰 등 모바일 기기에서 작동할 수 있다.
하지만 모델의 초기화는 20~30초 정도 걸리기 때문에 백스테이지에서 미리 초기화하는 등 대응이 필요하다.
구체적 수법
CoreML-Models Google 드라이브 링크에서 U2Net의 CoreML 파일을 다운로드합니다.
Xcode 항목을 번들로 묶겠습니다.
나머지는 모델한테 그림을 맡기는 거야.
guard let model = try? u2net.init() else {fatalError("model initialize error")}
guard let result = try? model.prediction(input: pixelBuffer) else {fatalError("inference error")}
let resultPixelBuffer = result.out_p1

나는 자유 엔지니어다.
업무 상담은 여기까지.
간단한 개발 내용을 첨부한 후 언제든지 연락 주세요.
[email protected]
Core ML 및 ARKit를 사용하는 응용 프로그램을 만들고 있습니다.
머신러닝/AR 관련 정보를 보내고 있습니다.
Twitter
Medium(영어)

좋은 웹페이지 즐겨찾기