【Python】iPad 카메라로 실시간 물체 감지
12668 단어 파이썬ObjectDetectionDeepLearning
이 기사에서는 파이썬에서 iPad의 카메라에서 보이는 물체가 무언가를 인식시키는 방법을 설명합니다.
필요한 것은 다음과 같습니다.
① iOS 기기
iPad 또는 iPhone. iPad가 화면이 크기 때문에 조작하기 쉽습니다.
② iOS 환경에서 파이썬을 실행하기위한 앱 "Pyto"
기본 상태에서 이미지 분석에 사용되는 모듈 (Open CV)이 설치되어 있기 때문에 편리합니다. 유료 1220엔(2020.11월 현재)입니다만, 3일의 시험 기간에서도 아래의 스크립트는 실행 가능하므로 시험해 주세요.
Pyto App Store 링크
1. 파이토 설치
app store에서 "Pyto -Python 3"을 설치합니다.
유료 또는 3일 한정 시험을 선택할 수 있습니다. 평가판으로도 문제 없습니다.
환경
端末:iPad Air 3
OS:iPad OS 14.1
Pyto:14.1.1
2. 파일 만들기
샘플 코드는 다음과 같습니다. OpenCV는 이미지와 동영상을 처리하는 데 필요한 기능이 구현 된 라이브러리입니다. 여기를 사용하여 iPad의 카메라에 비치는 물체가 무언가를 감지합니다.
objectDitection.py
import cv2
from cv2 import dnn
import numpy as np
import time
import os
inWidth = 224
inHeight = 224
WHRatio = inWidth / float(inHeight)
inScaleFactor = 0.017
meanVal = (103.94, 116.78, 123.68)
prevFrameTime = None
currentFrameTime = None
device = 0
if __name__ == "__main__":
modelfolder = "./MobileNet-Caffe-master"
net = dnn.readNetFromCaffe(
os.path.join(modelfolder, "mobilenet_v2_deploy.prototxt"),
os.path.join(modelfolder, "mobilenet_v2.caffemodel"),
)
cap = cv2.VideoCapture(device)
f = open(os.path.join(modelfolder, "synset.txt"), "r")
classNames = f.readlines()
showPreview = True
while cap.isOpened():
# capture frame-by-frame
ret, frame = cap.read()
# check if frame is not empty
if not ret:
# print("continue")
continue
frame = cv2.autorotate(frame, device)
rgbFrame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
blob = dnn.blobFromImage(rgbFrame, inScaleFactor, (inWidth, inHeight), meanVal)
net.setInput(blob)
detections = net.forward()
maxClassId = 0
maxClassPoint = 0
for i in range(detections.shape[1]):
classPoint = detections[0, i, 0, 0]
if classPoint > maxClassPoint:
maxClassId = i
maxClassPoint = classPoint
className = classNames[maxClassId]
# print("class id: ", maxClassId)
# print("class point: ", maxClassPoint)
# print("name: ", className)
prevFrameTime = currentFrameTime
currentFrameTime = time.time()
if prevFrameTime != None:
i = 1
# print(1.0 / (currentFrameTime - prevFrameTime), "fps")
if showPreview:
font = cv2.FONT_HERSHEY_SIMPLEX
size = 1
color = (255, 255, 255)
weight = 2
cv2.putText(frame, className, (10, 30), font, size, color, weight)
cv2.putText(frame, str(maxClassPoint), (10, 60), font, size, color, weight)
cv2.imshow("detections", frame)
3. 물체 감지 학습된 파일을 iPad에 다운로드
이번에는 이하의 물체 검출 라이브러리를 사용하겠습니다.
https://github.com/shicai/MobileNet-Caffe에서 MobileNet-Caffe-master
다운로드. 이것을 실행 파일과 동일한 디렉토리에 저장합니다.
① iOS에서 위 링크에서 파일 다운로드
② zip 파일을 확장(iOS13 이상에서 가능)
③ 파일을 실행 파일이 있는 디렉토리로 이동(기본적으로 icloud/pyto입니다)
4. 폴더에 대한 사용 권한
pyto의 설정에서 다음 절차에 따라 "pyto 실행 파일이있는 폴더", "MobileNet-Caffe-master가있는 폴더"에 액세스 권한을 부여합니다.
5. 실행
오른쪽 상단에 실행 버튼을 누르면 콘솔에 화면이 표시됩니다.
환경 구축이나 모듈의 설치조차 필요 없기 때문에 정말로 3분 할 수 있습니다!
또한 Pyto의 기능으로서 Siri로부터의 스크립트 실행 호출 등에도 대응하고 있습니다.
참고로 한 기사
htps : // 기주 b. 코 m / 카이 / 모비 네 t 카후
h tps:// 퀵했다. 작은 m/산 전망 0268/있어 MS/그림 1172d25072타 1687C49
ht tp // 아스키 아. bgs포 t. 이 m/2018/03/오펜 CVDD py 텐모비오네 t. HTML
Reference
이 문제에 관하여(【Python】iPad 카메라로 실시간 물체 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tetsu-k/items/fe590a74cf8d43d82de4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)