2014-05-15 3 views
0

나는 차량과 트럭을 구분하고 감지 된 차량의 색상을 궁극적으로 비디오 차량의 총 개수로 계산해야합니다. 나는 이것을 위해 OpenCV, Python 및 SimpleCV를 사용하고있다. 내가 지금까지 한 것은 : 1. 백그라운드 뺄셈 2. 블롭을 찾기 위해 find.Blobs()를 사용했다. 블롭의 크기에 따라Python에서 차량 탐지, 개수 및 분류

을 찾았으므로 차와 트럭을 구별 할 수있다. 그러나 전경 마스크에 얼룩의 수를 찾는 동안 모든 얼룩은 흰색입니다. 그래서 제 질문은 어떻게 차량의 색깔을 찾아 낼 수 있습니까?

+1

하나의 차량이 다른 차량보다 가까운 경우 어떻게됩니까? 그것은 더 클 것입니다, 그래서 그것은 트럭이나 차인지 어떻게 알 수 있습니까? –

+0

트럭의 비디오가 상당히 큽니다. 그렇다고해서 내 동영상에 문제가되지 않습니다. – Manisha

+0

저는 OpenCV에서 Python이나 SimpleCV를 사용하는 것에 익숙하지 않지만 비디오의 각 프레임마다 매트에 해당하는 것을 가지고 있다고 가정합니다. 이 매트의 초기 컬러 버전을 비 컬러 마스크와 함께 얻을 수있는 경우 얼룩의 좌표를 컬러 Mat에 매핑 한 다음 해당 영역에서 색상 임계 값을 수행 할 수 있습니다. 등고선, 테두리 상자 및 HSV를 살펴보십시오. – medloh

답변

0

당신은 차량이 주로 하나의 색이라고 가정하고 있기 때문에 각 얼룩의 평균 색을 찾고 있습니까? 이것은 너비 3의 각 blob 주위에 사각형을 그려야하며, 사각형 색상은 평균 색상입니다.

최적화 주시기 바랍니다 :)

for blob in blobs: 
    a=blob.meanColor() 
    mc=(int(a[0]), int(a[1]), int(a[2])) 
    rect=blob.boundingBox() 
    img.drawRectangle(rect[0], rect[1], rect[2], rect[3], mc, 3) 
img.show() 
0

또 다른 흥미로운 접근 방식은 차량을 감지 OpenCV의 HOG + SVM 분류기를 사용하는 것입니다. 이 블로그를 확인하십시오 : https://medium.com/@priya.dwivedi/automatic-vehicle-detection-for-self-driving-cars-8d98c086b161#.6x2k4szf5

+0

"이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. " –

0

여기에는 3 개의 샘플이 있으며, 각각 다른 접근법을 사용합니다.

1) + TensorFlow OpenCV의 차량에 의해 계산 이상, here is the sample! (파이썬)

2) 차량 검출, here is the sample 추적 및 HOG + SVM 의해 계산! (C++)에

3) 차량 검출, here is the sample 추적 및 물방울 검출 수단에 의해 계산! (C++에서)