เชชเซเชฐเชธเซเชคเชพเชตเชจเชพ
เชเซเชธเซเชฒเชพเชจเชพ เชเชเซเชชเชพเชฏเชฒเช เชฐเชธเซเชคเชพเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเซเช เชเซ เชคเซ เชฆเชฐเซเชถเชพเชตเชคเซ เชเช เชตเซเชกเชฟเชฏเซ เชนเชตเซ เชเชจเซเชเชฐเชจเซเช เชชเชฐ เชซเชฐเชคเซ เชฅเช เชฐเชนเซเชฏเซ เชเซ.
เชฎเชจเซ เชกเชฟเชเซเชเซเชเชฐ เชธเชพเชฅเซ เชธเชฎเซเชฆเซเชง เชตเชฟเชกเชฟเช เชชเซเชฐเชธเชพเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฒเชพเชเชฌเชพ เชธเชฎเชฏเชฅเซ เชเชเชเชตเชพเชณ เชเชตเซ เชเซ, เช เชจเซ เชตเชพเชธเซเชคเชตเชฟเช เชธเชฎเชฏเชฎเชพเช.
เชธเชฎเชธเซเชฏเชพ เช เชเซ เชเซ เชนเซเช เชฐเชพเชธเซเชชเชฌเซเชฐเซเชฎเชพเชเชฅเซ เชตเชฟเชกเชฟเช เชชเซเชฐเชธเชพเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช, เช
เชจเซ เชคเซเชจเชพ เชชเชฐ เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเช เชกเชฟเชเซเชเซเชเชฐเชจเซเช เชชเซเชฐเชฆเชฐเซเชถเชจ เชเชเซเชเชฟเชค เชฅเชตเชพ เชฎเชพเชเซ เชเชฃเซเช เชเซเชกเซ เชฆเซ เชเซ.
เชเชจเซเชเซเชฒ เชจเซเชฏเซเชฐเชฒ เชเชฎเซเชชเซเชฏเซเชเชฐ เชธเซเชเชฟเช
เชฎเซเช เชตเชฟเชตเชฟเชง เชเชเซเชฒเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชงเชพ.
ะ
เชญเชฒเซ เชเชจเซเชเซเชฒ เชฎเซเชเซเชฏ เชซเซเชฐเซเชฎเชตเชฐเซเช เชฎเชพเชเซ เชเชจเซเชตเชฐเซเชเชฐ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ, เชคเซเชฏเชพเช เชเชฃเซ เชฌเชงเซ เชฎเซเชถเซเชเซเชฒเซเช เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชฐเซเชฐเซ เชจเซเชเชตเชฐเซเชเชจเซเช เชซเซเชฐเซเชฎเซเช เช เชธเชเชเชค เชนเซเช เชถเชเซ เชเซ, เช เชจเซ เชเซ เชคเซ เชธเซเชธเชเชเชค เชนเซเชฏ, เชคเซ เชเซเชเชฒเชพเช เชธเซเชคเชฐเซ เชเชชเชเชฐเชฃ เชชเชฐ เชธเชฎเชฐเซเชฅเชฟเชค เชจ เชนเซเช เชถเชเซ, เช เชจเซ เชเซ เชคเซ เชธเชฎเชฐเซเชฅเชฟเชค เชนเซเชฏ, เชคเซ เชชเชเซ เชฐเซเชชเชพเชเชคเชฐเชฃ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชญเซเชฒเซ เชเชตเซ เชถเชเซ เชเซ, เชเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เช เชฎเชจเซ เชเชเชเชชเซเช เชชเชฐ เชเซเชเชฒเซเช เชตเชฟเชเชฟเชคเซเชฐ เชตเชธเซเชคเซเช เชฎเชณเซ เชเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชเซ เชคเชฎเชจเซ เชเซเช เชชเซเชฐเชเชพเชฐเชจเซเช เชฎเชจเชธเซเชตเซ เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเช เชเซเชเช เชเซ, เชคเซ เชคเซ NCS เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชถเชเชถเซ เชจเชนเซเช. เชคเซเชฅเซ, เชฎเซเช เชธเซเชฅเซ เชตเชงเซ เชตเซเชฏเชพเชชเช เช เชจเซ เชธเซเชฒเชญ เชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชฎเชธเซเชฏเชพเชจเซ เชนเชฒ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช.
เชตเชพเชฆเชณ
เชธเซเชฅเชพเชจเชฟเช เชนเชพเชฐเซเชกเชตเซเชฐ เชธเซเชฒเซเชฏเซเชถเชจเชจเซ เชธเซเชชเชทเซเช เชตเชฟเชเชฒเซเชช เชเซเชฒเชพเชเชก เชชเชฐ เชเชตเชพเชจเซเช เชเซ.
เชคเซเชฏเชพเชฐ เชตเชฟเชเชฒเซเชชเซ - เชฎเชพเชฐเซ เชเชเชเซ เชเชเชเชฒเซ เชเชพเชฒเซ เชเซ.
เชฌเชงเชพ เชจเซเชคเชพเช:
... เช เชจเซ เชกเชเชจเซเช เชเชเชพ เชเชพเชฃเซเชคเชพ.
เช เชตเชฟเชตเชฟเชงเชคเชพเชเชฎเชพเชเชฅเซ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซเช เชฌเชฟเชฒเชเซเชฒ เชธเชฐเชณ เชจเชฅเซ.
เช เชจเซ เชฎเซเช เชชเชธเชเชฆ เชจ เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช, เชชเชฐเชเชคเซ เชกเซเชเชฐเชฎเชพเช เชเชชเชจเชธเซเชตเซ เชชเชฐ เชธเชพเชฐเซ เชเซเชจเซ เชเชพเชฐเซเชฏเชเชพเชฐเซ เชฏเซเชเชจเชพเชจเซ เชฒเชชเซเชเซ เช เชจเซ เชคเซเชจเซ เชเซเชฒเชพเชเชกเชฎเชพเช เชเชฒเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช.
เช เช เชญเชฟเชเชฎเชจเซ เชซเชพเชฏเชฆเซ เชฒเชตเชเซเชเชคเชพ เช เชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชเซ - เชคเชฎเซ เชจเซเชฏเซเชฐเชฒ เชจเซเชเชตเชฐเซเช, เชนเซเชธเซเชเชฟเชเช, เชธเชฐเซเชตเชฐ - เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชเซเชเชชเชฃ เชงเซเชจ เชฌเชฆเชฒเซ เชถเชเซ เชเซ.
เชธเชฐเซเชตเชฐ
เชเชพเชฒเซ เชธเซเชฅเชพเชจเชฟเช เชชเซเชฐเซเชเซเชเชพเชเชชเชฅเซ เชถเชฐเซเชเชค เชเชฐเซเช.
เชชเชฐเชเชชเชฐเชพเชเชค เชฐเซเชคเซ เชนเซเช REST API, OpenCV เช เชจเซ MobileSSD เชจเซเชเชตเชฐเซเช เชฎเชพเชเซ เชซเซเชฒเชพเชธเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช.
เชกเซเชเชฐ เชชเชฐ เชตเชฐเซเชคเชฎเชพเชจ เชธเชเชธเซเชเชฐเชฃเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ, เชฎเซเช เชถเซเชงเซเชฏเซเช เชเซ OpenCV 4.1.2 เชฎเซเชฌเชพเชเชฒ SSD v1_coco_2018_01_28 เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซเช เชจเชฅเซ, เช เชจเซ เชฎเชพเชฐเซ เชธเชพเชฌเชฟเชค 11/06_2017 เชชเชฐ เชชเชพเชเชพ เชซเชฐเชตเซเช เชชเชกเซเชฏเซเช.
เชธเซเชตเชพเชจเซ เชถเชฐเซเชเชคเชฎเชพเช, เช เชฎเซ เชตเชฐเซเชเชจเชพ เชจเชพเชฎ เช เชจเซ เชจเซเชเชตเชฐเซเช เชฒเซเชก เชเชฐเซเช เชเซเช:
def init():
tf_labels.initLabels(dnn_conf.DNN_LABELS_PATH)
return cv.dnn.readNetFromTensorflow(dnn_conf.DNN_PATH, dnn_conf.DNN_TXT_PATH)
เชธเซเชฅเชพเชจเชฟเช เชกเซเชเชฐ เชชเชฐ (เชเซเชฌ เชเซเชตเชพเชจ เชฒเซเชชเชเซเชช เชชเชฐ) เชคเซ 0.3 เชธเซเชเชจเซเชก เชฒเซ เชเซ, เชฐเชพเชธเซเชชเชฌเซเชฐเซ เชชเชฐ - 3.5.
เชเชพเชฒเซ เชเชฃเชคเชฐเซ เชถเชฐเซ เชเชฐเซเช:
def inference(img):
net.setInput(cv.dnn.blobFromImage(img, 1.0/127.5, (300, 300), (127.5, 127.5, 127.5), swapRB=True, crop=False))
return net.forward()
เชกเซเชเชฐ - 0.2 เชธเซเชเชจเซเชก, เชฐเชพเชธเซเชชเชฌเซเชฐเซ - 1.7.
เชเซเชจเซเชธเชฐ เชเชเซเชเซเชธเซเชเชจเซ เชตเชพเชเชเซ เชถเชเชพเชฏ เชคเซเชตเชพ json เชฎเชพเช เชซเซเชฐเชตเชตเซเช:
def build_detection(data, thr, rows, cols):
ret = []
for detection in data[0,0,:,:]:
score = float(detection[2])
if score > thr:
cls = int(detection[1])
a = {"class" : cls, "name" : tf_labels.getLabel(cls), "score" : score}
a["x"] = int(detection[3] * cols)
a["y"] = int(detection[4] * rows)
a["w"] = int(detection[5] * cols ) - a["x"]
a["h"] = int(detection[6] * rows) - a["y"]
ret.append(a)
return ret
เชเชเชณ
เชเช เชตเซเชเชฒเซเชชเชฟเช เชตเชฟเชเชฒเซเชช, เชเซเชฎเชพเช เชตเชงเซ เชเชพเชฐเซเชฏ เชธเชฐเซเชตเชฐ เชชเชฐ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชฅเชพเชฏ เชเซ: เชคเซ เชชเซเชคเซ เชฎเชณเซเชฒเซ เชตเชธเซเชคเซเชเชจเซ เชตเชฐเซเชคเซเชณ เชเชฐเซ เชเซ เช เชจเซ เชคเซเชฏเชพเชฐ เชเชฐเซเชฒเซ เชเชฌเซ เชชเชฐเชค เชเชฐเซ เชเซ.
เช เชตเชฟเชเชฒเซเชช เชธเชพเชฐเซ เชเซ เชเซเชฏเชพเช เชเชชเชฃเซ opencv เชจเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชเซเชเชเชตเชพ เชฎเชพเชเชเชคเชพ เชจเชฅเซ.
เชกเซเชเชฐ
เช เชฎเซ เชเชฌเซ เชเชเชคเซเชฐเชฟเชค เชเชฐเซเช เชเซเช.
เชเซเชก เชเซเชฎเซเชฌเซเชก เช
เชจเซ เชชเชฐ เชชเซเชธเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชคเชฐเซเชเซ, เช เชฎเซ เชฐเชพเชธเซเชชเชฌเซเชฐเซเชจเซ เชเซเชฎ เช เชกเซเชฌเชฟเชฏเชจ เชธเซเชเซเชฐเซเช เชฒเชเชถเซเช - เช เชฎเซ เชธเชพเชฌเชฟเชค เชเซเช เชธเซเชเซเชเชฅเซ เชตเชฟเชเชฒเชฟเชค เชฅเชเชถเซเช เชจเชนเซเช.
เชคเชฎเชพเชฐเซ เชซเซเชฒเชพเชธเซเช, เชชเซเชฐเซเชเซเชฌเชซ, เชตเชฟเชจเชเชคเซเช, opencv_python, เชฎเซเชฌเชพเชเชฒ SSD, Github เชฅเซ เชธเชฐเซเชตเชฐ เชเซเชก เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพเชจเซ เช เชจเซ เชธเชฐเซเชตเชฐ เชถเชฐเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
FROM python:3.7-stretch
RUN pip3 install flask
RUN pip3 install protobuf
RUN pip3 install requests
RUN pip3 install opencv_python
ADD http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_11_06_2017.tar.gz /
RUN tar -xvf /ssd_mobilenet_v1_coco_11_06_2017.tar.gz
ADD https://github.com/tprlab/docker-detect/archive/master.zip /
RUN unzip /master.zip
EXPOSE 80
CMD ["python3", "/docker-detect-master/detect-app/app.py"]
เชธเชฐเชณ
เชกเซเชเชฐ เชนเชฌ เชชเชฐ เชชเซเชฐเชเชพเชถเชจ
เชกเซเชเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเช เชเซเชฒเชพเชเชก เชกเชฟเชเซเชเซเชเชฐ เชเชฐเชคเชพเช เชเชเซ เชเชกเชชเซ เชเซเชฃเชพเชเชพเชฐ เชเชฐเซ เชฐเชนเซ เชเซ.
เชชเชฐเซเชถเชพเชจ เชจ เชเชฐเชตเชพ เชฎเชพเชเซ, เช
เชฎเซ เชฐเซเชขเชฟเชเซเชธเซเชค เชฐเซเชคเซ เชชเชธเชพเชฐ เชฅเชเชถเซเช
- เชจเซเชเชงเชฃเซ เชเชฐเซ
- เชชเซเชฐเชตเซเชถ เชเชฐเซ:
เชกเซเชเชฐ เชฒเซเชเชฟเชจ - เชเชพเชฒเซ เชเช เช
เชฐเซเชฅเชชเซเชฐเซเชฃ เชจเชพเชฎ เชธเชพเชฅเซ เชเชตเซเช:
เชกเซเชเชฐ เชเซเช opencv-detect tprlab/opencv-detect-ssd - เชธเชฐเซเชตเชฐ เชชเชฐ เชเชฌเซ เช
เชชเชฒเซเชก เชเชฐเซ:
เชกเซเชเชฐ เชชเซเชถ tprlab/opencv-detect-ssd
เช เชฎเซ เชเซเชฒเชพเชเชกเชฎเชพเช เชฒเซเชจเซเช เชเชฐเซเช เชเซเช
เชเชจเซเชเซเชจเชฐ เชเซเชฏเชพเช เชเชฒเชพเชตเชตเซเช เชคเซเชจเซ เชชเชธเชเชฆเชเซ เชชเชฃ เชเซเชฌ เชตเชฟเชถเชพเชณ เชเซ.
เชคเชฎเชพเชฎ เชฎเซเชเชพ เชเซเชฒเชพเชกเซเช (Google, Microsoft, Amazon) เชชเซเชฐเชฅเชฎ เชตเชฐเซเชท เชฎเชพเชเซ เชฎเชซเชคเชฎเชพเช เชฎเชพเชเชเซเชฐเซ-เชเชจเซเชธเซเชเชจเซเชธ เชเชซเชฐ เชเชฐเซ เชเซ.
เชฎเชพเชเชเซเชฐเซเชธเซเชซเซเช เชเชเซเชฏเซเชฐ เช
เชจเซ เชเซเชเชฒ เชเซเชฒเชพเชเชก เชธเชพเชฅเซ เชชเซเชฐเชฏเซเช เชเชฐเซเชฏเชพ เชชเชเซ, เชฎเซเช เชฌเชพเชฆเชฎเชพเช เชธเซเชเชฒ เชเชฐเซเชฏเซเช เชเชพเชฐเชฃ เชเซ เชคเซ เชเชกเชชเชฅเซ เชเชชเชกเซเชฏเซเช.
เชฎเซเช เช เชนเซเช เชธเซเชเชจเชพเช เชฒเชเซ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เช เชญเชพเช เชชเชธเชเชฆ เชเชฐเซเชฒ เชชเซเชฐเชฆเชพเชคเชพ เชฎเชพเชเซ เชเซเชฌ เช เชตเชฟเชถเชฟเชทเซเช เชเซ.
เชฎเซเช เชตเชฟเชตเชฟเชง เชนเชพเชฐเซเชกเชตเซเชฐ เชตเชฟเชเชฒเซเชชเซ เช
เชเชฎเชพเชตเซเชฏเชพ,
เชจเซเชเชพ เชธเซเชคเชฐเซ (เชถเซเชฐ เชเชฐเซเชฒ เช
เชจเซ เชธเชฎเชฐเซเชชเชฟเชค) - 0.4 - 0.5 เชธเซเชเชจเซเชก.
เชตเชงเซ เชถเชเซเชคเชฟเชถเชพเชณเซ เชเชพเชฐ - 0.25 - 0.3.
เช เซเช เชเซ, เชธเซเชฅเซ เชเชฐเชพเชฌ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชชเชฃ, เชเซเชค เชคเซเชฐเชฃ เชตเชเชค เชเซ, เชคเชฎเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชถเชเซ เชเซ.
เชตเชฟเชกเชฟเช
เช
เชฎเซ เชฐเชพเชธเซเชชเชฌเซเชฐเซ เชชเชฐ เชเช เชธเชฐเชณ OpenCV เชตเชฟเชกเชฟเชฏเซ เชธเซเชเซเชฐเซเชฎเชฐ เชฒเซเชจเซเช เชเชฐเซเช เชเซเช, เชเซ Google Cloud เชฆเซเชตเชพเชฐเชพ เชถเซเชงเซ เชถเชเชพเชฏ เชเซ.
เชชเซเชฐเชฏเซเช เชฎเชพเชเซ, เชเช เชตเชฟเชกเชฟเช เชซเชพเชเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ เชเซ เชเชเชตเชพเชฐ เชฐเซเชจเซเชกเชฎ เชเชเชคเชฐเชเซเชฆ เชชเชฐ เชซเชฟเชฒเซเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ.
def handle_frame(frame):
return detect.detect_draw_img(frame)
def generate():
while True:
rc, frame = vs.read()
outFrame = handle_frame(frame)
if outFrame is None:
(rc, outFrame) = cv.imencode(".jpg", frame)
yield(b'--framern' b'Content-Type: image/jpegrnrn' + bytearray(outFrame) + b'rn')
@app.route("/stream")
def video_feed():
return Response(generate(), mimetype = "multipart/x-mixed-replace; boundary=frame")
เชกเชฟเชเซเชเซเชเชฐ เชธเชพเชฅเซ เช
เชฎเชจเซ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก เชคเซเชฐเชฃ เชเชฐเชคเชพเช เชตเชงเซ เชซเซเชฐเซเชฎเซเชธ เชฎเชณเชคเชพ เชจเชฅเซ, เชฌเชงเซเช เชเซเชฌ เช เชงเซเชฎเซเชฅเซ เชเชพเชฒเซ เชเซ.
เชเซ เชคเชฎเซ GCloud เชฎเชพเช เชถเชเซเชคเชฟเชถเชพเชณเซ เชฎเชถเซเชจ เชฒเซ เชเซ, เชคเซ เชคเชฎเซ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชกเชฎเชพเช 4-5 เชซเซเชฐเซเชฎเซเชธ เชถเซเชงเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชคเชซเชพเชตเชค เชเชเช เชฎเชพเชเซ เชฒเชเชญเช เช
เชฆเซเชฐเชถเซเชฏ เชเซ, เชคเซ เชนเชเซ เชชเชฃ เชงเซเชฎเซเช เชเซ.
เชเซเชฒเชพเชเชก เช
เชจเซ เชชเชฐเชฟเชตเชนเชจ เชเชฐเซเชเชจเซ เชคเซเชจเซ เชธเชพเชฅเซ เชเซเช เชฒเซเชตเชพเชฆเซเชตเชพ เชจเชฅเซ; เชกเชฟเชเซเชเซเชเชฐ เชธเชพเชฎเชพเชจเซเชฏ เชนเชพเชฐเซเชกเชตเซเชฐ เชชเชฐ เชเชพเชฒเซ เชเซ เช
เชจเซ เชเชเชฒเซ เชเชกเชชเซ เชเชพเชฎ เชเชฐเซ เชเซ.
เชจเซเชฏเซเชฐเชฒ เชเชฎเซเชชเซเชฏเซเชเชฐ เชธเซเชเซเช
เชนเซเช เชชเซเชฐเชคเชฟเชเชพเชฐ เชเชฐเซ เชถเชเซเชฏเซ เชจเชนเซเช เช เชจเซ NCS เชชเชฐ เชฌเซเชจเซเชเชฎเชพเชฐเซเช เชเชฒเชพเชตเซ เชถเชเซเชฏเซ.
เชกเชฟเชเซเชเซเชเชฐเชจเซ เชเชกเชช 0.1 เชธเซเชเชจเซเชก เชเชฐเชคเชพเช เชฅเซเชกเซ เชงเซเชฎเซ เชนเชคเซ, เชเซเช เชชเชฃ เชธเชเชเซเชเซเชฎเชพเช เชจเชฌเชณเชพ เชฎเชถเซเชจ เชชเชฐเชจเชพ เชตเชพเชฆเชณ เชเชฐเชคเชพเช 2-3 เชเชฃเซ เชเชกเชชเซ, เชเชเชฒเซ เชเซ 8-9 เชซเซเชฐเซเชฎ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก.
เชชเชฐเชฟเชฃเชพเชฎเซเชฎเชพเช เชคเชซเชพเชตเชค เช เชนเชเซเชเชค เชฆเซเชตเชพเชฐเชพ เชธเชฎเชเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ NCS เชฎเซเชฌเชพเชเชฒ SSD เชธเชเชธเซเชเชฐเชฃ 2018_01_28 เชเชฒเชพเชตเซ เชฐเชนเซเชฏเซเช เชนเชคเซเช.
PS เชตเชงเซเชฎเชพเช, เชชเซเชฐเชฏเซเชเซเช เชฆเชฐเซเชถเชพเชตเซเชฏเซเช เชเซ เชเซ I7 เชชเซเชฐเซเชธเซเชธเชฐ เชธเชพเชฅเซเชจเซเช เชเชเชฆเชฎ เชถเชเซเชคเชฟเชถเชพเชณเซ เชกเซเชธเซเชเชเซเชช เชฎเชถเซเชจ เชฅเซเชกเชพ เชธเชพเชฐเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชฆเชฐเซเชถเชพเชตเซ เชเซ เช เชจเซ เชคเซเชจเชพ เชชเชฐ 10 เชซเซเชฐเซเชฎ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก เชธเซเชเซเชตเชฟเช เชเชฐเชตเชพเชจเซเช เชถเชเซเชฏ เชฌเชจเซเชฏเซเช เชเซ.
เชเซเชฒเชธเซเชเชฐ
เชชเซเชฐเชฏเซเช เชเชเชณ เชตเชงเซเชฏเซ เช
เชจเซ เชฎเซเช Google Kubernetes เชฎเชพเช เชชเชพเชเช เชจเซเชกเซเชธ เชชเชฐ เชกเชฟเชเซเชเซเชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเซเช.
เชถเซเชเชเซ เชชเซเชคเซ เชจเชฌเชณเชพ เชนเชคเชพ เช
เชจเซ เชคเซเชฎเชพเชเชฅเซ เชฆเชฐเซเช เชธเซเชเชจเซเชก เชฆเซเช 2 เชฅเซ เชตเชงเซ เชซเซเชฐเซเชฎ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชถเชเชคเชพ เชจ เชนเชคเชพ.
เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ N เชจเซเชกเซเชธ เชธเชพเชฅเซ เชเซเชฒเชธเซเชเชฐ เชเชฒเชพเชตเซ เชเซ เช
เชจเซ N เชฅเซเชฐเซเชกเซเชฎเชพเช เชซเซเชฐเซเชฎ เชชเชพเชฐเซเชธ เชเชฐเซ เชเซ, เชคเซ เชชเชเซ เชชเซเชฐเชคเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชจเซเชกเซเชธ (5) เชธเชพเชฅเซ เชคเชฎเซ เชธเซเชเชจเซเชก เชฆเซเช เชเชเซเชเชฟเชค 10 เชซเซเชฐเซเชฎเซเชธ เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเซ เชเซ.
def generate():
while True:
rc, frame = vs.read()
if frame is not None:
future = executor.submit(handle_frame, (frame.copy()))
Q.append(future)
keep_polling = len(Q) > 0
while(keep_polling):
top = Q[0]
if top.done():
outFrame = top.result()
Q.popleft()
if outFrame:
yield(b'--framern' b'Content-Type: image/jpegrnrn' + bytearray(outFrame) + b'rn')
keep_polling = len(Q) > 0
else:
keep_polling = len(Q) >= M
เชถเซเช เชฅเชฏเซเช เชคเซ เช เชนเซเช เชเซ:
NCS เชจเซ เชคเซเชฒเชจเชพเชฎเชพเช เชฅเซเชกเซเช เชเชเซเช เชเชกเชชเซ, เชชเชฐเชเชคเซ เชเช เชชเซเชฐเชตเชพเชน เชเชฐเชคเชพเช เชตเชงเซ เชเซเชฐเชถเซเชฐเชฅเซ.
เชเซเชเชจ, เช เชฒเชฌเชคเซเชค, เชฐเซเชเซเชฏ เชจเชฅเซ - เชเชชเชจเชธเซเชตเซ เชเชฎเซเชเซเชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเชเซเชถเชจ เช เชจเซ เชกเซเชช เชเซเชชเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชตเชฐเชฒเซ เชเซ.
เชจเชฟเชทเซเชเชฐเซเชท
เชเชเชเชฆเชฐเซ, เชชเซเชฐเชฏเซเช เช เชฎเชจเซ เชจเชฟเชทเซเชเชฐเซเชท เชชเชฐ เชฒเชพเชตเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ เชเซ เชเซ เชคเชฎเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชเซ, เชคเซ เชคเชฎเซ เชธเชฐเชณ เชตเชพเชฆเชณเชฅเซ เชฆเซเชฐ เชฅเช เชถเชเซ เชเซ.
เชชเชฐเชเชคเซ เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ เชกเซเชธเซเชเชเซเชช เช เชฅเชตเชพ เชธเซเชฅเชพเชจเชฟเช เชนเชพเชฐเซเชกเชตเซเชฐ เชคเชฎเชจเซ เชตเชงเซ เชธเชพเชฐเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เช เชจเซ เชเซเชเชชเชฃ เชฏเซเชเซเชคเชฟเช เชตเชฟเชจเชพ.
เชธเชเชฆเชฐเซเชญเซ
Github เชชเชฐ เชเซเชก DockerHub เชชเชฐ เชกเซเชเชฐ เชเชฌเซ OpenCV เช เชจเซ Python เชชเชฐ เชตเชฟเชกเชฟเช เชธเชฐเซเชตเชฐ
เชธเซเชฐเซเชธ: www.habr.com