330
edits
(19 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
[[File:blobDetect1.jpg]] | [[File:blobDetect1.jpg]] | ||
'''Code in Processing''' | |||
I am using Blobdetection library written by Mario Klingemann <http://incubator.quasimondo.com> in Processing Opencv to help me with the code part. So that I can get the data of blobs, and therefore to count the amounts of blobs to get the amounts of visitors in the platform. | |||
'''And here is the github link for my full code:''' <https://github.com/ConnorFk/DBL_VisitorsCount> | |||
<source lang="Java" line start= "17"> | |||
printArray(Capture.list());//to get the webcam source list | |||
//cam = new Capture(this, 640, 480); //default webcam in your laptop | |||
cam = new Capture(this, 640, 480, Capture.list()[2]);//Logitech C270 Webcam | |||
// Comment the following line if you use Processing 1.5 | |||
cam.start(); | |||
</source> | |||
[[File:codeProcessing1.jpg]] | |||
<source lang="Java" line start= "32"> | |||
// ================================================== | |||
// captureEvent() | |||
// ================================================== | |||
void captureEvent(Capture cam) | |||
{ | |||
cam.read(); // to start the webcam | |||
newFrame = true; // keep grabbing the new frames | |||
} | |||
void draw() | |||
{ | |||
if (newFrame) | |||
{ | |||
newFrame=false; | |||
image(cam,0,0,width,height); | |||
img.copy(cam, 0, 0, cam.width, cam.height, | |||
0, 0, img.width, img.height); | |||
fastblur(img, 2); | |||
theBlobDetection.computeBlobs(img.pixels); | |||
drawBlobsAndEdges(true,true); | |||
} | |||
count = theBlobDetection.getBlobNb(); // get the numbers of blobs captured | |||
println(count); // print out the numbers in Processing console | |||
} | |||
</source> | |||
[[File:codeProcessing2.jpg]] | |||
==Webcam Setup of the DBL== | ==Webcam Setup of the DBL== | ||
Line 16: | Line 66: | ||
Hanging webcam on the roof in DBL is not so difficult, you can use the staircase and plastic cable zip to install it on the silver beam, but PLEASE do remember to put the paperboard to under the staircase to make sure not destroy the platform. | Hanging webcam on the roof in DBL is not so difficult, you can use the staircase and plastic cable zip to install it on the silver beam, but PLEASE do remember to put the paperboard to under the staircase to make sure not destroy the platform. | ||
[[File:webcamSet-01.jpg]] | [[File:webcamSet-01.jpg]] | ||
[[File:webcamSet-02.jpg]] | [[File:webcamSet-02.jpg]] | ||
[[File:webcamSet2.jpg]] | |||
'''Hardware: Webcam''' | '''Hardware: Webcam''' | ||
Line 38: | Line 88: | ||
'''Blob Detection | '''Blob Detection with default settings''' | ||
[[File:webcamTest3.jpg]] | |||
'''Blob Detection with customized settings''' | |||
[[File:webcamTest4.png]] | |||
You can change the webcam settings to better serve for your blob detection according to the light environment, hence, you will have more accurate result about the amount of visitors in the capture area. | |||
==Limitation / Attention== | |||
Blob detection is still not the most accurate one to calculate the amount of visitors, but it works somehow in this case, you need to adjust the webcam settings and the light environment in the platform. For the light environment, more bright the background is, there will have stronger pixel difference to be better for the blob detection. And please pay attention to the shadows caused by light, the shadows will also be captured by the webcam, if the shadows are not well controlled, they will interfere the accuracy to calculate. | |||
I was once planning to also set up a spotlight in the platform to test my project, then I found the shadows are big factors in calculating the blobs. | |||
[[File: | [[File:limit-08.jpg]] | ||
[[File:limit-07.jpg]] | |||
[[File: | [[File:limit-09.jpg]] |
edits