Ask Your Question
1

hardware for opencv

asked 2018-09-10 06:54:56 -0600

Aleander gravatar image

I'm doing an AI project to fiat where it will recognize an object when it is in place in the final project they want to recognize 285 parts simultaneously with several cameras so I do not know which hardware would be the best they have money to spend what they recommend (I had seen some tesla boards)

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
1

answered 2018-09-11 05:42:56 -0600

kbarni gravatar image

updated 2018-09-11 05:43:45 -0600

First write your code. On your computer. Make a prototype.

Then (according to the processing time of your algorithm), decide what hardware to buy. Not the other way around.

Anyway, there will be other factors to take into account, besides processing speed:

  • What's the available space?
  • What's the available power?
  • What's your budget?
  • Do you have other important factors? Vibrations, dust, heat, etc.
  • What connectivity do you need (for the cameras).

To be short: can you use a desktop computer (probably the simplest solution) or do you need an embedded computer?

Ah, another thing: If you want to use a deep neural network on an embedded system, check out the Movidius AI stick. It might be what you are looking for.

edit flag offensive delete link more

Comments

the prototype is ready, but I can not run it with very high definition cameras for a long time. The budget has no limits so things like dust and other adverse can be overcome with the purchase of some equipment. And I'm using cameras via ip to connect to the program the cameras are hickvision. I can use desktop pc or mount the same 200,000 server. I need something that runs at least 15 cameras at the same time in resolution of 1920 x 1020 all day long I just do not know what the recommended pc would be

Aleander gravatar imageAleander ( 2018-09-11 06:11:43 -0600 )edit

+1 For the movidius tip

holger gravatar imageholger ( 2018-09-11 06:14:50 -0600 )edit

my code

import dlib import cv2 import sys import socket import time import requests

ip = "rtsp://admin:[email protected]/doc/page/preview.asp"
detector = dlib.simple_object_detector('C:/detectordeobjetos/ia.svm')
Nome = 'Detector de Objetos'
fonte = cv2.FONT_ITALIC
captura = cv2.VideoCapture(0)
x = 0
tempo = 0
sinal = 0
time.sleep(1.0)

while captura.isOpened():
    from datetime import datetime
    data_e_hora_atuais = datetime.now()
    data_e_hora_em_texto = data_e_hora_atuais.strftime('%d/%m/%Y %H:%M')
    conectado, frame = captura.read()
    tempo += 1
    print(tempo)

    if (tempo > 300) and (tempo < 302):

        sinal += 1
        objetosDetectados = detector(frame, 1)
        for o in objetosDetectados:
            e, t, d, f = (int(o.left()), int(o.top()), in`enter code here`
Aleander gravatar imageAleander ( 2018-09-11 06:17:33 -0600 )edit

If you are using SVM, then you'll only need a good CPU (so forget the Movidius).

The problem is that handling 15 HD cameras won't be easy! A single 1980x1020 (uncompressed) color image is 48Mbits. So on a GigE connection you can get ~10-12 of those every second. Even with a compression, your bandwidth will be very limiting (and with a compression, you'll have to decompress 15 streams in real time).

A good idea I can think of would be to build a small cluster: have 15 computers to process each the image of a single camera, then a server to fusion the results.

In the meantime I think that 15 HD cameras are a bit of an overkill (even self-driving cars don't need as much).Check if you can get good results with fewer and smaller images.

kbarni gravatar imagekbarni ( 2018-09-11 06:57:30 -0600 )edit

Oh well - so your question is:

"I want to capture frames(1920 x 1020) from 15 cameras simultaneous using open cv, What is the recommended hardware for doing this?"

But you also wrote "...but I can not run it with very high definition cameras for a long time..." So your question is also : "Why is the posted code not running for long time" ?

But you somehow missed to describe what your real problem is. Please abstract: - Is your program having performance issues? (Maybe thats why you asking for hardware) - Does it crashes? (I assume you have problems in that area) - Is it slow and crashes? (My current guess after reading)

Your code is also doing more that just capturing - maybe that why your program is crashing? So many question - one tip : isolate problems!

holger gravatar imageholger ( 2018-09-11 07:12:24 -0600 )edit

I personally wouldn't capture all cameras with one program on one pc ("monolith"). Write a small program which can capture frames from one camera. Measure performance and stability.

If you get it working for one - you "only" have to add several instances of your program and "merge" the results together "micro services"

holger gravatar imageholger ( 2018-09-11 07:16:22 -0600 )edit

The main problem of it and the following it has to run 24 h and a low definition like 800 x 600 it runs very well with many false positives but if I put ne a camera of 1920 p not hard nor 10 minutes but with a rate of success much bigger. And another doubt for a total of 5 to 6 cameras how much ram is recommended

Aleander gravatar imageAleander ( 2018-09-11 08:33:59 -0600 )edit

Well, you can easily monitor the RAM consumption and CPU usage with a monitoring application. If needed, RAM is the simples thing to add to a computer. If your app works for 10 minutes and you don't have issues like memory leaks or overheating, it will probably work well for 24h or more.

Anyway, it's up to you to test it. I won't be able to tell you if your algorithm will work on your hardware for 24h or not...

kbarni gravatar imagekbarni ( 2018-09-11 08:58:43 -0600 )edit

Thanks for the help today I discovered that the Fiat wants to use 64 cameras I'll end up setting up a nasa pc kkkkkkkkk

Aleander gravatar imageAleander ( 2018-09-12 06:09:44 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2018-09-10 06:54:56 -0600

Seen: 26,038 times

Last updated: Sep 11 '18