소개
게시글
질문&답변
2020.07.11
이미지는 분류가 잘 되는데 동영상은 Frame을 인식하지 못합니다.
1. 네 맞습니다. 상대경로로 하면 Video() 자체는 재생되는데, cv2.VideoCapture(상대경로) 하면 frame 이 0이 나옵니다. 2. 절대경로로 하면 Video() 도 재생이 안되고, cv2.VideoCapture(절대경로) 또한 frame 이 0이 나옵니다. ------------------------------------------------------------------------------------------------------------------------------------------------------ 문제 해결했습니다. 도커가 독립환경이다보니까, 호스트에 있는 코덱파일이라도 도커 이미지 내부에 따로 비디오 디코더가 포함되어있지 않으면 동영상을 해석할 수 없는 문제가 있을거라고 예상했고, 이에 docker exec -it lab '각종 명령어' 를 서버 로컬 터미널에 입력하여 터미널을 통해 컨테이너에 이런저런 코덱 디코더를 깔았습니다. 그 뒤, 확인해보니 영상처리가 제대로 되었음을 확인할 수 있었습니다. 설치한 디코더 관련 파일은 ubuntu_restricted_extras, ffmpeg, libdvd 입니다. 그 뒤, sudo apt-update 를 exec 를 통해 실행시켰고 하루 자고 다시 reboot 시켜 실행해보니 제대로 작동했습니다. (사진) 절대경로 상대경로 동영상 재생문제 자체는 코덱문제가 아닌 것 같은데, 브라우저 문제인가 의심됩니다. 하지만 주피터에서 정상적으로 도커에 있는 동영상 파일을 읽어들이니, 큰 문제가 아닙니다. 정말 감사합니다!
- 0
- 8
- 972
질문&답변
2020.07.10
이미지는 분류가 잘 되는데 동영상은 Frame을 인식하지 못합니다.
아, 혼란을 드린 것 같습니다. 우선 도커라서 /home 이 최상위 디렉토리가 아니라, /data 가 최상위 디렉토리로 되어있습니다. /data/DLCV/data/video/John_Wick_small.mp4 에도 영상파일이 있고, 혹시 보안적으로 jupyter에서 home으로 가는게 안되는건가 싶어서 /data/DLCV/Detection/fast_rcnn 디렉토리에도 John_Wick_small.mp4 를 똑같이복사한 것입니다. (사진) 일단 말씀하신대로 절대경로를 확인했고, 절대경로로 동영상에 접근했을 때는 "지원되는 형식 및 MIME 유형의 동영상을 찾을 수 없습니다" 라고 하며 재생이 되지 않았습니다. 그런데 이상하게, 상대경로로 동영상에 접근했을 때는 동영상이 재생이 되는 결과를 얻을 수 있었습니다. 절대경로를 잘못 입력한 것이 아닌가 하는 의심을 할 수밖에 없었지만, 절대경로를 잘못 입력하면 ValueError Traceback (most recent call last) in 1 get_ipython ( ) . system ( 'pwd' ) ----> 2 Video ( '/data/data/video/John_Wick_small.mp4' ) # 도커 내부의 상대경로 /usr/local/lib/python3.6/dist-packages/IPython/core/display.py in __init__ (self, data, url, filename, embed, mimetype, width, height) 1372 "Consider passing Video(url='...')" , 1373 ]) -> 1374 raise ValueError ( msg ) 1375 1376 self . mimetype = mimetype ValueError : To embed videos, you must pass embed=True (this may make your notebook files huge) Consider passing Video(url='...') 라는 에러가 나오게 되어있으므로, 절대경로 자체는 맞는 것 같습니다. 다른 동영상에 대해서는, balloon_dog01 동영상 등 모두 이 현상과 같은 결과를 내었습니다. 상대경로로 입력하면 동영상이 나오고, 절대경로로 입력하면 동영상이 나오지 않습니다.
- 0
- 8
- 972
질문&답변
2020.07.10
이미지는 분류가 잘 되는데 동영상은 Frame을 인식하지 못합니다.
cv2.CAP_PROP_FRAME_폭/높이 는 3,4를 제대로 반환하는데 cap.get(cv2.CAP_PROP_FRAME_폭/높이) 단계에서 항상 0이 나오는 것을 확인할 수 있었습니다. 구글링으로 if not raise Exception 문을 활용해보라는 말이 있어서, isOpened() 여부를 체크해봤는데, Exception 이 떴습니다.(사진) (사진) 생각을 해보니, 제가 지금 도커 컨테이너를 통해 기계학습을 돌리고 있는데, root 계정에 mp4 코덱을 apt-get 시켜봤자 도커 컨테이너는 독립적이니까 정작 주피터 노트북은 당연히 영향을 전혀 받지 않는게 아닌가, 이런 의심이 듭니다.
- 0
- 8
- 972
질문&답변
2020.07.10
이미지는 분류가 잘 되는데 동영상은 Frame을 인식하지 못합니다.
1. 말씀대로 우분투 데스크탑에 마우스를 연결해서, 동영상이 제대로 된 파일인지 확인을 해보았습니다. ~/DLCV/data/video 에서 John_Wick_small.mp4 파일의 용량은 1.8MB로 멀쩡했습니다만, 우분투에 기본적으로 깔린 video 플레이어가 먹통인지, 재생이 되지 않았습니다. 우분투에서 동영상이 재생되지 않는 점이 영 미심쩍어 좀 더 파고들어봤더니, 이런 에러가 나왔습니다. 우분투에서 자체적으로 MPEG-4 AAC 디코더를 가지고 있지 않아 영상을 재생할 수 없다는 내용이었는데, 매우 유력하게 이 것이 원인이 아닌가 생각되었습니다. 그래서 AAC 디코더를 설치했고, 동영상이 제대로 돌아가는걸 확인했지만 여전히 0프레임이 찍힙니다. 그럼 코덱이 문제가 아니라는건데, 다른 어떤 원인이 있을 수 있을지 짚이는 점이 있으신가요? (사진) (사진) 2. 0 프레임이 나오는 문제를 해결하면, 동영상이 ~/DLCV/data/output 디렉토리에 들어가있는 것을 확인할 수 있을 것 같습니다. 이미지의 경우, cv2.imwrite('파일명',이미지배열) 로 저장가능함을 확인했습니다. 감사합니다!
- 0
- 8
- 972
질문&답변
2020.07.09
라즈베리 파이 대신 JETSON NANO 를 사용해도 문제가 없을까요?
답변 잘 읽었습니다! 반드시 Edge-Device 에서 영상처리를 맡아야만 지연시간을 확보할 수 있다고 생각했는데, 4G 기반에서는 크게 문제가 되지 않는다면 구글클라우드 API 를 활용하거나, 아예 전적으로 중앙에서 모든 연산을 처리하도록 하는 방안도 고려할 만한 것 같습니다. 덕분에 큰 참고가 되었습니다. 라파이 강의도 들어나가면서, 모르는 부분이 있으면 또 질문을 올리도록 하겠습니다. 감사합니다.
- 0
- 5
- 3.1K