ROV를 제작할 계획이며 비디오 피드 atm을 작업 중입니다. 필자는 모든 통신에 광섬유를 사용할 것이며 opencv로 파이썬으로 웹캠 피드를 스트리밍하려고합니다. IP 카메라를 사용하도록 선택할 수도 있지만 먼저 파이썬에서 웹캠 프레임을 캡처하는 방법에 대해 자세히 알고 싶었습니다. 결국 내가 사용하려고하는 것이 무엇인지 알지 못했기 때문에 모든 것을 작동 시키려고 noname USB 웹캠을 구입했습니다. 이 카메라 피드는 탐색 용으로 사용되며 별도의 비디오 레코더가 비디오 녹화에 사용됩니다.파이썬을 사용하는 이더넷을 통한 높은 FPS 실시간 스트리밍
이제는 문제가 해결되었습니다. 프레임을 캡처 할 때 나는 단지 8 FPS를 얻고 있지만 값싼 웹캠 때문인 것으로 의심됩니다. 웹캠은 스러 스터와 센서를 제어하기 위해 arduino에 연결된 pcduino 3 nano에 연결됩니다. 이미지 인코딩 및 디코딩에서 하드웨어를 활용하는 방법을 생각해 본 적이 없지만 하드웨어를 활용할 수 있는지 여부는 아직 알지 못합니다.
여러분들은 병목 현상이 내 웹캠이라고 생각합니까? IP 카메라를 사용하는 것이 더 좋은 생각입니까 아니면 opencv 또는 다른 방법으로 pcduino 3 nano 캡쳐 프레임에 연결된 웹캠을 사용하여 적당한 FPS를 얻을 수 있어야합니까? 나에게 같은 결과를 주었던 파이 게임으로 프레임 캡처를 시도했다. 나는 또한 mjpg-streamer를 시도했다.
파이썬에서 임 프로그래밍, 이것은 내가 만든 테스트입니다 :
import cv2, time
FPS = 0
cap = cv2.VideoCapture(0)
last = time.time()
for i in range(0,100):
before = time.time()
rval, frame = cap.read()
now = time.time()
print("cap.read() took: " + str(now - before))
if(now - last >= 1):
print(FPS)
last = now
FPS = 0
else:
FPS += 1
cap.release()
그리고 결과의 라인에 있습니다
cap.read() took: 0.118262052536
cap.read() took: 0.118585824966
cap.read() took: 0.121902942657
cap.read() took: 0.116680860519
cap.read() took: 0.119271993637
cap.read() took: 0.117949008942
cap.read() took: 0.119143009186
cap.read() took: 0.122378110886
cap.read() took: 0.116139888763
8
답장을 보내 주셔서 감사 드리며, 주 컴퓨터에서 코드를 시도한 결과 똑같은 결과를 얻었습니다. 제가 구입 한 웹캠은 이전에 싸구려 이름없는 카메라를 언급했기 때문에 어디서나 어떤 사양도 찾을 수 없습니다. 그러나 나는 30 fps의 성능을 가진 더 좋은 카메라를 주문했는데 몇 가지 테스트를 할 것입니다. 하드웨어인지 여부는 확실하지 않았습니다. 하지만 opencv 훨씬 더 높은 fps 가능 것 같아요? – Jaman42
OpenCV는 컴퓨터가 충분히 빠르면 더 높은 프레임 속도를 확실히 처리 할 수 있습니다. 나는 문제없이 90 fps USB3 카메라를 사용했습니다. 카메라에 대한 사양이 없다면 끔찍한 선택 일 것입니다. – Clukester