Video of Cloud Object Detector in Raspberry Pi

Incipit prologus

Video nunc in Interreti circumire ostendens quomodo Tesla autopilotus viam videt.

Diu prurivi ut video ditatum detectorem iaci, et in tempore reali.

Video of Cloud Object Detector in Raspberry Pi

Problema est quod videre volo ex Raspberry emittere, et detector retiarii neuralis effectus in eo multum desiderandum relinquit.

Intel Neural Computer Stick

Diversas solutiones consideravi.

Π’ tandem articulum expertum est Computer Stick Neural Intel. Ferramenta potentis est, sed eget forma ipsum ipsum.

Etiamsi Intel convertentes ad maiores compages praebet, plures foveae sunt.

Exempli gratia, forma retis inquisiti potest compatitur, et si compatitur, aliquae strata non sustineantur in fabrica, et si sustineantur, tunc errorum evenire potest in processu conversionis, ex quibus effectus est. aliqua extranea nobis in output.

In genere, si vis aliqua retis arbitraria neuralis, tunc cum NCS laborare non potest. Ideo quaestionem solvendam decrevi instrumentorum latissime patentium ac perviae.

nubes

Perspicuum optionem ad solutionem ferramentorum localem adire est ad nubem.

Optiones paratae factae - ferae oculi mei currunt.

Omnes principes;

... Ac justo minorum notarum.

In id varius lorem, non facilisis nulla.

Et decrevi non eligere, sed involvere bonum vetus consilium in OpenCV in Docker et currere in nube.

Commodum accessionis huius est flexibilitas et moderatio - reticulum neurale mutare potes, obnoxius, servitor - generatim, omnem libidinem.

servo

Incipiamus cum loci prototypo.

Traditionaliter utor lagena ad requiem API, OpenCV et MobileSSD ornatum.

Cum versiones hodiernas in Docker instituissem, OpenCV 4.1.2 inveni in Mobile SSD v1_coco_2018_01_28 non laborare, et ad probatum 11/06_2017 revolvere debebam.

In initio officii nomina classium et retis onerant:

def init():
    tf_labels.initLabels(dnn_conf.DNN_LABELS_PATH)
    return cv.dnn.readNetFromTensorflow(dnn_conf.DNN_PATH, dnn_conf.DNN_TXT_PATH)

In auctor locali (in laptop non admodum puero) capit 0.3 secundis, in Raspberry - 3.5.

Calculum sit amet:

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()

Docker - 0.2 sec, Raspberry - 1.7.

Conversus tensor exhaurit in readable 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

ulterior export hanc operationem per Flask(input est imago, output eventus detectoris in json).

Vel optio, in qua magis opus est, transfertur servo: ipsa inventa res circuit et imaginem finitam reddit.

Haec optio bona est ubi nolumus opencv trahere servo suo.

Docker

Imaginem colligimus.

Signum est pectinatum et collocatum Githubinde recte dock accipiet.

Utemur eodem Debian Extende pro suggestu ac in Raspberry - a probatis technicis acervis non discedemus.

Opus est ut vas, protobuf, petitiones, opencv_python instituas, mobile SSD deprime, codicem servo Github e servo incipias.

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"]

simplex detector client ex petitionibus.

Hub evulgare Docker

Docker registra non minus quam nubes detectores ad celeritatem multiplicantur.

Ut non molestus erimus, conservative perambulamus DockerHub.

  1. Register
  2. Log in:
    docker login
  3. Eamus cum significativo nomine;
    docker tag opencvs deprehendere tprlab/opencv-deprehendere-ssd
  4. Ad upload imaginem servo:
    docker dis tprlab/opencv-detect-ssd

Nos in nubem launch

Optio quo fugiat continens, sit et magnam.

Omnes magni scaenici (Google, Microsoft, Amazon) microform gratis pro anno primo offerunt.
Post experimentum Microsoft Azure et Google Cloud, in his consevi quia citius distulit.

Instructiones hic non scripsi, cum haec pars valde specificata sit provisore electo.

Conatus sum diversis bene hardware;
Gradus inferior (communis et dedicatus) - 0.4 - 0.5 secundis.
Potentiores carros - 0.25 - 0.3.
Etiam in gravissimo casu missionis, ter lucrationes, experiri potes.

Video

Simplex OpenCV video streamer in Raspberry deprimimus, detecta per Google Cloud.
Ad experimentum, fasciculus video adhibitus, qui semel in sectione temere cinematographica est.


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")

Cum detectore non plus quam tres tabulas in secundo obtinemus, omnia tardissime cedunt.
Si validam machinam in GCloud accipias, 4-5 tabulas per secundas deprehendere potes, sed differentia paene oculo invisibilis est, adhuc tarda est.

Video of Cloud Object Detector in Raspberry Pi

Nubes et vecturae gratuitae nihil ad rem habent: detector in ferramentis ordinariis currit et in tali celeritate operatur.

Neural Computer Stick

Non potui resistere et in NCS Probatio cucurrit.

Celeritas detectoris leviter tardius quam 0.1 secundis fuit, in casu aliquo 2-3 tempore velocior quam nubes in machina infirma, i.e. 8-9 tabulae secundae.

Video of Cloud Object Detector in Raspberry Pi

Differentia in eventibus explicatur quod NCS mobile SSD versio 2018_01_28 currit.

P.S. Praeterea experimenta docuerunt satis potentem machinam escriticam cum processore I7 paulo meliores eventus ostendisse et evenisse posse ut 10 tabulas per secundam exprimi posset.

botrum portassent

Experimentum longius processit et detectorem quinque nodis in Google Kubernetes institui.
Ipsae siliquae infirmae sunt et singulae non plus quam 2 tabulae in secundo processu fieri potuerunt.
Sed si glomerulum cum N nodis et tabulae parse in filis N curris, tunc cum sufficienti numero nodis (5) optatas 10 tabulas per secundam consequi potes.

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

Quid hic:

Video of Cloud Object Detector in Raspberry Pi

Paulo minus celerius ncs, quam uno flumine acrior.

Lucrum, sane, non est linearis β€” obducit synchronizationem et altam descriptionem imaginum opencv.

conclusio,

Super experimento colligitur quod si conaris, nube simplici effugere potes.

Sed potens escritorio vel locali ferramento te permittit ut meliores fructus consequi, et sine ullis dolis.

References

Source: www.habr.com