데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      VPP를 위한 Object Insertion 기술 연구 - 연구과정(2)

      PROLCY 24.08.30
      169 1 0
      DEVOTEE 요약
      안녕하세요, 저희는 SKT AI Fellowship 6기 INserT 팀입니다. VPP를 위한 Object Insertion 기술 연구를 통해 AI로 가상 상품 배치를 자동화하는 방법을 탐구하고 있으며, 현재 연구 진행 상황과 앞으로의 계획을 공유합니다. 남은 기간에는 제품 삽입 위치 선정, 비디오 렌더링 안정화, 후처리 단계 개선을 통해 더 자연스럽고 현실적인 영상을 만드는 것을 목표로 하고 있습니다.
      DEVOTEE 추천 블로그

      안녕하세요!

      저희는 SKT AI Fellowship 6기 C12 과제 VPP를 위한 Object Insertion 기술 연구를 진행하고 있는 인서트(INserT) 팀입니다.


      이번 기록에서는 저희가 지난 6월부터 현재까지 어떤 연구를 진행하였고, 남은 기간 동안 어떠한 연구를 계획하고 있는지에 대해 공유해 드리겠습니다.


      1. 연구 과제 소개

      VPP (Virtual Product Placement)

      Virtual Product Placement (가상 상품 배치) 의 줄임말인 VPP는 제품, 간판 또는 비디오 형태의 디지털 콘텐츠에 특정 브랜드의 제품을 동적으로 삽입하는 기술입니다.

      PPL (Product PLacement)은 많이 들어보셨을 텐데요, PPL은 촬영 중에 광고 제품이 들어간다면, VPP는 이미 완성된 콘텐츠에 광고 제품을 삽입한다는 차이점이 있습니다.

      위 영상은 VPP의 예시인데요, 이미 완성된 영상에 자연스럽게 광고 제품을 삽입하는 것을 확인할 수 있습니다.

      기존의 VPP는 3D 모델링, 비디오 편집 기술을 익혀야 하고, 많은 시간과 비용을 투입해야 한다는 문제점이 존재합니다.

      따라서 저희 팀은 VPP를 AI 기술을 통해 구현 및 자동화함으로써 앞선 단점을 해결하고자 합니다.

      2. 연구 내용

      파이프라인 소개

      image.png

      저희 팀이 제안한 파이프라인은 세 단계로 구성됩니다.

      1. 제품을 삽입할 위치 선정
      2. 비디오에 제품 렌더링
      3. 자연스러운 비디오를 위한 후처리

      image.png

      저희가 제안한 파이프라인을 구조도로 그려봤는데요, 차근차근 하나씩 설명드리겠습니다! 😃


      Stage 1: 제품을 삽입할 위치 선정

      image.png

      첫 번째 단계는 제품을 삽입할 위치를 선정하는 단계입니다.

      인간은 어떠한 물체가 어디에 놓여 있어야 자연스러운지 직관적으로 알 수 있지만, 이 과정을 AI를 통해 자동화하기 위해서는 일련의 과정이 필요합니다.


      제안 모델

      image.png


      제품을 놓을 위치를 찾기 위해 저희가 참고했던 논문인 OCTO+[1]의 파이프라인입니다. 총 세 단계로 이루어집니다.

      1. Image Understanding: 이미지에서 객체를 text 형태로 찾습니다. (plate, table, chair...)
      2. Reasoning: LLM에게 삽입하려는 객체와 어울리는 객체를 물어봅니다. (cake가 있기에 가장 적절한 객체는? >> plate)
      3. Locating: 해당 객체의 모서리에서 가장 먼, 내부의 점을 가장 적절한 위치로 선정합니다.

      문제점

      image.png

      OCTO+는 LLM의 추론 능력을 빌려 이미지 내에서 적절한 객체를 찾고, 그 위에 배치한다는 참신한 아이디어를 가지고 있었는데요,

      마지막 단계인 Locating 과정에서 단순히 내부의 점을 선정하기 때문에 위와 같이 맥락을 고려하지 못한 위치 선정을 한다는 문제점이 있었습니다.


      해결 방안 탐색

      image.png

      이 문제점을 해결하기 위해서, segmentation[2]이나 object detection[3]을 더 세밀하게 하거나, Vision Language Model을 활용하는 등 여러 방안을 실험해보고 있습니다.


      Stage 2: 비디오에 제품 렌더링

      image.png

      두 번째 단계는 비디오에 제품을 렌더링하는 단계이고, 선행 연구[4]를 참고하여 세 가지 과정으로 구성하였습니다.

      1. Optical Flow: 비디오 상의 물체 위치 트래킹
      2. DroidCalib: 카메라의 위치, 각도, 파라미터 추정
      3. PyTorch3D: 3D Mesh Object 렌더링

      차근차근 하나씩 시각자료와 함께 보시겠습니다~

      (용량 제한이 있어 영상이 작은 점 양해 부탁드립니다 🥲)


      (1) Optical Flow: 비디오 상의 물체 위치를 트래킹하자!

      output.gif

      Optical Flow는 프레임 간의 관계를 분석하여 현재 프레임의 특정 픽셀이 다음 프레임에 어디에 위치할 지 예측하는 task입니다. 이는 곧 위치를 트래킹할 수 있다는 이야기겠죠!

      위의 영상에서 확인할 수 있듯, 테이블 위의 빨간 점이 비디오에서 트래킹되며 consistent하게 위치를 유지하고 있는 모습을 확인할 수 있습니다.

      Stage 1에서 선정한 위치를 optical flow를 통해 트래킹하고, 매 프레임 해당 위치에 물체를 렌더링할 계획입니다.


      (2) DroidCalib: 카메라 정보를 알아내자!

      image.png

      다음은 렌더링에 필요한 정보를 뽑아내는 과정입니다.

      간단하게 설명드리자면, 렌더링을 위해서는 현재 카메라의 위치, 카메라가 보고 있는 각도, 물체와 카메라 사이의 거리 (depth), 카메라 내부 파라미터가 필요한데,

      DroidCalib[5]은 비디오를 보고 이러한 값들을 예측하여 아웃풋으로 내놓습니다.


      (3) PyTorch3D: 렌더링해서 비디오에 삽입하자!

      image.png

      마지막으로 PyTorch3D[6]를 통해 3D Mesh 모델을 렌더링하는 과정입니다.

      이전에 추론했던 카메라 정보를 이용해 3D Mesh 모델을 2D 이미지로 렌더링하고, 비디오에 합성하게 됩니다.


      렌더링 결과

      image.png

      위의 예시에서 볼 수 있듯이, 카메라 정보를 기반으로 렌더링하기 때문에 보다 사실적으로 물체를 삽입할 수 있습니다.

      rendering.gif

      위의 영상을 보시면 카메라의 움직임에 따라 컵의 윗면이 넓게 보이는 등 카메라 위치에 따른 렌더링이 된 것을 확인할 수 있습니다.

      고화질의 영상을 rendering.mp4로 첨부해놓겠습니다!


      개선 사항

      Optical Flow 성능 개선

      image.png

      Optical Flow의 경우, RAFT[7]에서 FlowFormer[8]로 모델을 교체함으로써 성능을 개선하였습니다.

      planar_tracking.gif

      또한 optical flow 기반의 평면 트래킹[9]을 이용해, 가림 현상이 발생하더라도 tracking을 지속할 수 있도록 개선하였습니다.


      렌더링 개선

      image.png

      DroidCalib에서 나온 depth map은 모델 구조상 첫 프레임 depth의 성능이 좋지 않은 문제가 있어,

      외부 모델인 DepthAntyhing v2[10]를 도입하여 정확한 depth를 추론함으로써 렌더링의 안정성을 개선하였습니다.


      Stage 3: 자연스러운 비디오를 위한 후처리

      파이프라인의 마지막 단계는 비디오를 자연스럽게 만드는 후처리 단계입니다.

      앞의 Stage 2에서 보셨듯이, 렌더링된 물체는 새로 삽입된 것이기 때문에, 비디오의 배경과 어울리지 않을 수 있습니다.

      따라서 후처리 단계를 통해 보다 사실적인 비디오를 만들 계획입니다.

      Image/Video Harmonization

      image.png

      image.png

      현재까지 진행된 후처리는 Image/Video Harmonization입니다.

      해당 Task는 삽입된 물체가 배경과 어울리도록 색, 밝기, 스타일 등을 변경하는 것으로, 위의 예시에서 볼 수 있듯 harmonization이 적용된 이미지가 적용되기 전보다 자연스러운 것을 확인할 수 있습니다.


      추가적으로 고려하고 있는 후처리로는 객체 간의 겹침을 고려하는 occlusion 처리, 조명과 그림자 처리 등이 있습니다.


      데모 영상

      다음은 데모 영상입니다. 파일 첨부도 해놓겠습니다!

      demo1.gif

      카메라가 움직이는 상황에 대한 데모입니다.

      demo2.gif

      카메라가 정지된 상황에 대한 데모입니다. 바닥의 선인장이 삽입된 객체입니다. 🌵🌵

      3. 피드백 및 향후 계획

      진척도

      image.png

      현재까지의 각 Stage별 진척도입니다.

      향후 계획

      Stage 1: 제품을 삽입할 위치 선정

      Stage 1의 경우, 위에서 말씀드렸듯이 이미지 내의 어느 객체에 광고 제품을 놓을지를 판단하는 것은 괜찮으나,

      객체 내에서 세부적으로 어느 점에 놓아야 할지는 좀 더 연구가 필요합니다. 다양한 방안을 모색하며 성능을 높일 예정입니다.

      Stage 2: 비디오에 제품 렌더링

      렌더링한 객체에서 떨림 현상이 발생한다는 피드백이 있었고, 저희 또한 인지하고 있어 안정적인 렌더링을 목표로 Stage 2를 개선해나갈 것입니다.

      image.png

      또한 비디오의 도메인을 드라마로 한정했을 때, 드라마는 카메라가 바뀌면서 scene 전환이 자주 일어나는데 어떻게 물체 위치를 consistent하게 유지할 것인가라는 문제가 있습니다.

      해당 문제는 Image matching 등의 방법을 이용하여 해결해보려 합니다.

      Stage 3: 자연스러운 비디오를 위한 후처리

      image.png

      아직까지는 삽입된 물체의 현실감이 부족하다는 피드백을 멘토님들과 펠로우분들이 주셨습니다. 저희가 만들어낸 비디오가 광고로 사용되는 만큼, 삽입된 물체의 현실감이 매우 중요하다고 생각합니다.

      따라서 위와 같이 외부 렌더러 도입을 통한 깔끔한 렌더링, 추가적인 조명과 그림자 처리 등을 추가하여 현재 데모 영상보다 훨씬 현실감있고 자연스러운 영상을 만드는 것이 향후 계획입니다.

      마무리

      지금까지 C12. VPP를 위한 Object Insertion 기술연구를 담당하고 있는 INserT팀이었습니다.

      피드백을 뼈에 새기고 남은 기간 동안 연구에 더욱 집중하여 만족스러운 결과 보여드리도록 하겠습니다! 🫡


      읽어주셔서 감사합니다!


      Reference

      [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).

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      PROLCY 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기