본문 바로가기
ComputerVision

Crowd11 in Colab

by 뫼태일 2022. 6. 20.

Crowd-11은 많은 사람들(군중)을 촬영한 영상 데이터셋이다. 유튜브, Pond5, gettyimages에 업로드된 영상과 이미 존재하는 데이터셋 9개로 이루어져있다. 이를 사용하기 위해선 각 데이터셋에 대한 라이선스를 다운로드받아 동의하여야 한다.

 

필자는 이 데이터셋을 Colab에서 사용할 것이다. 먼저 kaggle에서 준비 파일을 다운받는다.

 

https://www.kaggle.com/datasets/angeliqueloesch/crowd-11

 

Crowd 11

A Dataset for Fine Grained Crowd Behaviour Analysis

www.kaggle.com

 

아래 과정들을 그대로 입력하면 런타임이 해제됨과 동시에 초기화된다. 계속해서 사용하고 싶다면 드라이브 마운트하여 원하는 폴더로 경로를 수정해주면 된다.


다운받은 파일들을 Colab으로 옮긴 뒤, existing_dtaasets_gathering.py 파일을 실행시키면 폴더가 생성된다.

!python existing_datasets_gathering.py

 

web_urls.csv에는 다운받아야할 파일의 정보가 다음과 같은 형식으로 저장되어있다. ts_multiplier 필드에 해당되는 비디오는 슬로우모션이다. 

 

플랫폼; URL; 저장할이름; TS_MULTIPLIER

 

아래 코드를 실행시키면 다운로드를 시작한다.

import urllib.request
import csv
import os

DATA_PATH = '/content/VOI'
web_urls = []
f = open('web_urls.csv', 'r')
rdr = csv.reader(f)
for line in rdr:
    web_urls.append(line[0].split(';')) 
    #print(line)
f.close()

for i in web_urls:
    try:
        urllib.request.urlretrieve(i[1], os.path.join(DATA_PATH,i[0],i[2]))
    except Exception as e:
        print(i,e)

 

비디오의 프레임 너비, 높이, 초당 프레임 수를 알고싶을 땐 다음 코드를 실행한다.

import numpy as np
import cv2 as cv

cap = cv.VideoCapture(DATA_PATH + '/gettyimages/101015061.mp4')
width = cap.get(cv.CAP_PROP_FRAME_WIDTH) # 또는 cap.get(3)
height = cap.get(cv.CAP_PROP_FRAME_HEIGHT) # 또는 cap.get(4)
fps = cap.get(cv.CAP_PROP_FPS) # 또는 cap.get(5)
print('프레임 너비: %d, 프레임 높이: %d, 초당 프레임 수: %d' %(width, height, fps))

 

Colab 출력창에서 비디오를 재생해볼수도 있다.

from IPython.display import HTML
from base64 import b64encode

mp4 = open(DATA_PATH + '/gettyimages/101015061.mp4', "rb").read()
data_url = "data:video/mp4;base64," + b64encode(mp4).decode()
HTML(f"""
<video width=400 controls>
      <source src="{data_url}" type="video/mp4">
</video>
""")

 


참조

 

Crowd-11: A Dataset for Fine Grained Crowd Behaviour Analysis Camille Dupont∗ Luis Tob´ıas∗ Bertrand Luvison CEA, LIST, Vision and Content Engineering Laboratory, Point Courrier 173, F-91191 Gif-sur-Yvette, France

 

http://pythonstudy.xyz/python/article/207-CSV-%ED%8C%8C%EC%9D%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

 

예제로 배우는 파이썬 프로그래밍 - CSV 파일 사용하기

1. CSV 파일 CSV란 Comma-separated values의 약자로서 CSV 파일은 각 라인의 컬럼들이 콤마로 분리된 텍스트 파일 포맷이다. 가장 간단한 형태의 CSV 파일은 문자열을 콤마로 Split 하여 처리하면 되지만, 간

pythonstudy.xyz

 

https://code.luasoftware.com/tutorials/jupyter/display-opencv-video-in-jupyter/

 

Display OpenCV (cv2.VideoCapture) Video in Jupyter/Colab

The following code will loop the video, perform some processing and write the output to a video file. import cv2 from google.colab.patches import cv2_imshow video_path = "./video.mp4" cap = cv2.VideoCapture(video_path) if cap.isOpened(): width = int(cap.ge

code.luasoftware.com

 

 

'ComputerVision' 카테고리의 다른 글

pjreddie의 Darknet 사용하기  (0) 2022.06.30
Crowd11 Preprocessing  (0) 2022.06.24
Colab에서 동영상 재생  (0) 2022.06.22
Crowd11에 대하여  (0) 2022.06.21

댓글