23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요!
저희는 SKT AI Fellowship 6기 C12 과제 VPP를 위한 Object Insertion 기술 연구를 진행하고 있는 인서트(INserT) 팀입니다.
이번 기록에서는 저희가 지난 6월부터 현재까지 어떤 연구를 진행하였고, 남은 기간 동안 어떠한 연구를 계획하고 있는지에 대해 공유해 드리겠습니다.
Virtual Product Placement (가상 상품 배치) 의 줄임말인 VPP는 제품, 간판 또는 비디오 형태의 디지털 콘텐츠에 특정 브랜드의 제품을 동적으로 삽입하는 기술입니다.
PPL (Product PLacement)은 많이 들어보셨을 텐데요, PPL은 촬영 중에 광고 제품이 들어간다면, VPP는 이미 완성된 콘텐츠에 광고 제품을 삽입한다는 차이점이 있습니다.
위 영상은 VPP의 예시인데요, 이미 완성된 영상에 자연스럽게 광고 제품을 삽입하는 것을 확인할 수 있습니다.
기존의 VPP는 3D 모델링, 비디오 편집 기술을 익혀야 하고, 많은 시간과 비용을 투입해야 한다는 문제점이 존재합니다.
따라서 저희 팀은 VPP를 AI 기술을 통해 구현 및 자동화함으로써 앞선 단점을 해결하고자 합니다.
저희 팀이 제안한 파이프라인은 세 단계로 구성됩니다.
저희가 제안한 파이프라인을 구조도로 그려봤는데요, 차근차근 하나씩 설명드리겠습니다! 😃
첫 번째 단계는 제품을 삽입할 위치를 선정하는 단계입니다.
인간은 어떠한 물체가 어디에 놓여 있어야 자연스러운지 직관적으로 알 수 있지만, 이 과정을 AI를 통해 자동화하기 위해서는 일련의 과정이 필요합니다.
제품을 놓을 위치를 찾기 위해 저희가 참고했던 논문인 OCTO+[1]의 파이프라인입니다. 총 세 단계로 이루어집니다.
OCTO+는 LLM의 추론 능력을 빌려 이미지 내에서 적절한 객체를 찾고, 그 위에 배치한다는 참신한 아이디어를 가지고 있었는데요,
마지막 단계인 Locating 과정에서 단순히 내부의 점을 선정하기 때문에 위와 같이 맥락을 고려하지 못한 위치 선정을 한다는 문제점이 있었습니다.
이 문제점을 해결하기 위해서, segmentation[2]이나 object detection[3]을 더 세밀하게 하거나, Vision Language Model을 활용하는 등 여러 방안을 실험해보고 있습니다.
두 번째 단계는 비디오에 제품을 렌더링하는 단계이고, 선행 연구[4]를 참고하여 세 가지 과정으로 구성하였습니다.
차근차근 하나씩 시각자료와 함께 보시겠습니다~
(용량 제한이 있어 영상이 작은 점 양해 부탁드립니다 🥲)
Optical Flow는 프레임 간의 관계를 분석하여 현재 프레임의 특정 픽셀이 다음 프레임에 어디에 위치할 지 예측하는 task입니다. 이는 곧 위치를 트래킹할 수 있다는 이야기겠죠!
위의 영상에서 확인할 수 있듯, 테이블 위의 빨간 점이 비디오에서 트래킹되며 consistent하게 위치를 유지하고 있는 모습을 확인할 수 있습니다.
Stage 1에서 선정한 위치를 optical flow를 통해 트래킹하고, 매 프레임 해당 위치에 물체를 렌더링할 계획입니다.
다음은 렌더링에 필요한 정보를 뽑아내는 과정입니다.
간단하게 설명드리자면, 렌더링을 위해서는 현재 카메라의 위치, 카메라가 보고 있는 각도, 물체와 카메라 사이의 거리 (depth), 카메라 내부 파라미터가 필요한데,
DroidCalib[5]은 비디오를 보고 이러한 값들을 예측하여 아웃풋으로 내놓습니다.
마지막으로 PyTorch3D[6]를 통해 3D Mesh 모델을 렌더링하는 과정입니다.
이전에 추론했던 카메라 정보를 이용해 3D Mesh 모델을 2D 이미지로 렌더링하고, 비디오에 합성하게 됩니다.
위의 예시에서 볼 수 있듯이, 카메라 정보를 기반으로 렌더링하기 때문에 보다 사실적으로 물체를 삽입할 수 있습니다.
위의 영상을 보시면 카메라의 움직임에 따라 컵의 윗면이 넓게 보이는 등 카메라 위치에 따른 렌더링이 된 것을 확인할 수 있습니다.
고화질의 영상을 rendering.mp4로 첨부해놓겠습니다!
Optical Flow의 경우, RAFT[7]에서 FlowFormer[8]로 모델을 교체함으로써 성능을 개선하였습니다.
또한 optical flow 기반의 평면 트래킹[9]을 이용해, 가림 현상이 발생하더라도 tracking을 지속할 수 있도록 개선하였습니다.
DroidCalib에서 나온 depth map은 모델 구조상 첫 프레임 depth의 성능이 좋지 않은 문제가 있어,
외부 모델인 DepthAntyhing v2[10]를 도입하여 정확한 depth를 추론함으로써 렌더링의 안정성을 개선하였습니다.
파이프라인의 마지막 단계는 비디오를 자연스럽게 만드는 후처리 단계입니다.
앞의 Stage 2에서 보셨듯이, 렌더링된 물체는 새로 삽입된 것이기 때문에, 비디오의 배경과 어울리지 않을 수 있습니다.
따라서 후처리 단계를 통해 보다 사실적인 비디오를 만들 계획입니다.
현재까지 진행된 후처리는 Image/Video Harmonization입니다.
해당 Task는 삽입된 물체가 배경과 어울리도록 색, 밝기, 스타일 등을 변경하는 것으로, 위의 예시에서 볼 수 있듯 harmonization이 적용된 이미지가 적용되기 전보다 자연스러운 것을 확인할 수 있습니다.
추가적으로 고려하고 있는 후처리로는 객체 간의 겹침을 고려하는 occlusion 처리, 조명과 그림자 처리 등이 있습니다.
다음은 데모 영상입니다. 파일 첨부도 해놓겠습니다!
카메라가 움직이는 상황에 대한 데모입니다.
카메라가 정지된 상황에 대한 데모입니다. 바닥의 선인장이 삽입된 객체입니다. 🌵🌵
현재까지의 각 Stage별 진척도입니다.
Stage 1의 경우, 위에서 말씀드렸듯이 이미지 내의 어느 객체에 광고 제품을 놓을지를 판단하는 것은 괜찮으나,
객체 내에서 세부적으로 어느 점에 놓아야 할지는 좀 더 연구가 필요합니다. 다양한 방안을 모색하며 성능을 높일 예정입니다.
렌더링한 객체에서 떨림 현상이 발생한다는 피드백이 있었고, 저희 또한 인지하고 있어 안정적인 렌더링을 목표로 Stage 2를 개선해나갈 것입니다.
또한 비디오의 도메인을 드라마로 한정했을 때, 드라마는 카메라가 바뀌면서 scene 전환이 자주 일어나는데 어떻게 물체 위치를 consistent하게 유지할 것인가라는 문제가 있습니다.
해당 문제는 Image matching 등의 방법을 이용하여 해결해보려 합니다.
아직까지는 삽입된 물체의 현실감이 부족하다는 피드백을 멘토님들과 펠로우분들이 주셨습니다. 저희가 만들어낸 비디오가 광고로 사용되는 만큼, 삽입된 물체의 현실감이 매우 중요하다고 생각합니다.
따라서 위와 같이 외부 렌더러 도입을 통한 깔끔한 렌더링, 추가적인 조명과 그림자 처리 등을 추가하여 현재 데모 영상보다 훨씬 현실감있고 자연스러운 영상을 만드는 것이 향후 계획입니다.
지금까지 C12. VPP를 위한 Object Insertion 기술연구를 담당하고 있는 INserT팀이었습니다.
피드백을 뼈에 새기고 남은 기간 동안 연구에 더욱 집중하여 만족스러운 결과 보여드리도록 하겠습니다! 🫡
읽어주셔서 감사합니다!
[1] Sharma, Aditya, Luke Yoffe, and Tobias Höllerer. "OCTO+: A Suite for Automatic Open-Vocabulary Object Placement in Mixed Reality." 2024 IEEE International Conference on Artificial Intelligence and eXtended and Virtual Reality (AIxVR). IEEE, 2024.
[2] Kirillov, Alexander, et al. "Segment anything." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023.
[3] Cheng, Tianheng, et al. "Yolo-world: Real-time open-vocabulary object detection." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2024.
[4] Liu, Ziling, et al. "Place Anything into Any Video." arXiv preprint arXiv:2402.14316 (2024).
[5] Hagemann, Annika, Moritz Knorr, and Christoph Stiller. "Deep geometry-aware camera self-calibration from video." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023.
[6] Ravi, Nikhila, et al. "Accelerating 3d deep learning with pytorch3d." arXiv preprint arXiv:2007.08501 (2020).
[7] Teed, Zachary, and Jia Deng. "Raft: Recurrent all-pairs field transforms for optical flow." Computer Vision–ECCV 2020: 16th European Conference, Glasgow, UK, August 23–28, 2020, Proceedings, Part II 16. Springer International Publishing, 2020.
[8] Huang, Zhaoyang, et al. "Flowformer: A transformer architecture for optical flow." European conference on computer vision. Cham: Springer Nature Switzerland, 2022.
[9] Šerých, Jonáš, and Jiří Matas. "Planar object tracking via weighted optical flow." Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2023.
[10] Yang, Lihe, et al. "Depth Anything V2." arXiv preprint arXiv:2406.09414 (2024).
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.