Rhonda Software

Highest quality full cycle software development.

Expert in areas of Computer Vision, Multimedia, Messaging, Networking and others. Focused on embedded software development. Competent in building cross-platform solutions and distributed SW systems.

Offer standalone custom solutions as well as integration of existing products. Opened for outsourcing services.

Visit us at: http://www.rhondasoftware.com

Audience Measurement (face tracker, gender recognition, attention recognition, etc)

Posted on : 05-10-2009 | By : Alex | In : Demo, Demo video, Demo videos, OpenCV, YouTube

9

am-3.avi

This is a demo video of Rhonda Audience Measurement system (MyAudience product, www.MyAudience.com).

Cross-platform solution for getting MJPEG stream from AXIS ip-camera (AXIS 211M)

Posted on : 29-08-2009 | By : Andrew Chen | In : OpenCV

6

This paper describes how-to get MJPEG stream from AXIS ip-camera in your C++ application. My approach is a cross-platform solution and much better than solution from http://www.computer-vision-software.com/blog/2009/04/how-to-get-mjpeg-stream-from-axis-ip-cameras-axis-211m-and-axis-214-ptz-as-camera-device-in-opencv-using-directshow/.

Barcode recognition

Posted on : 29-07-2009 | By : Alex | In : Demo, Demo video, Demo videos, YouTube

1

barcodes-2.avi

Description

Here you can find a demo of the barcode detection and recognition routine. The current version is set up to detect a barcode labels mostly oriented horizontally and vertically. The routine processes each frame of the video stream and scans it trying to detect a barcode starting position, relying on the appearance specific of the barcode labels. As long as a potential starting position detected the routine applies the set of the image filters to increase the readability of the scanned window. Then recognition algorithm tries both to read and validate the barcode label starting from the detected point. You may see for yourself that such combination of detection and recognition algorithms works pretty well.
This demo works with UPC-A and EAN-13 barcode types.

Gender detection

Posted on : 22-07-2009 | By : Alex | In : Demo, Demo video, Demo videos, YouTube

31

Description

In this post we present a video demo of the gender classifier. This classifier is adapted for frontal- and near to frontal-oriented faces. It is capable to provide the real-time gender recognition with the invariance to complicated lighting conditions. The foundation of the implemented method is an AdaBoost powered extraction of the gender-descriptive features along with the further separation of male / female subsets for learning of the decision-making routine.
The classifier works in the conjunction with face-detector and tries to classify all found faces on the each frame. The achieved accuracy of correct classification is 90-92%, though on small faces (less then 32×32 pixels) returned by face-detector the accuracy of gender recognition could reduce to 80-88%.

Fast & Furious face detection with OpenCV

Posted on : 18-06-2009 | By : rhondasw | In : OpenCV

21

In OpenCV/Samples there is  facedetect program.  This program can detect  faces on images and video.  It’s very fun, but its speed leaves much to be desired =(.  Of course  with OpenMP,  it works  faster; on Intel Core Duo 2.7GHZ, it works fast;  but will it work fast on ARM? I have big doubts.  I compiled facedetect without OpenMP and on average it takes 600 ms for 640×480 resolution to find one face.   I wanted to find out, if it’s possible to improve this time by software means or not…  After some investigations, code refactoring and improvements, facedetect started to work 2.5 time faster, even on ARM.  Of course, without big quality loss =)

Parallel world of OpenCV (HaarTraining)

Posted on : 03-06-2009 | By : rhondasw | In : OpenCV

19

If you want to generate cascade with OpenCV training tools, you should be ready for waiting plenty of time. For example, on training set: 3000 positive / 5000 negative, it takes about 6 days! to get cascade for face detection.  I wanted to generate many cascades with different training sets, also I added my own features to standart OpenCV’s ones  and refactor algorithms a little bit.  So waiting for 6 days to understand, that your cascade does nothing good =) was really anoying.  To reduce time, I chose paralleling methods.

OpenCV Haartraining: Detect objects using Haar-like features

Posted on : 02-06-2009 | By : rhondasw | In : OpenCV

262

OpenCV’s standart cascades allow to detect faces and eyes.  I wanted to create cascade in similar way to detect another objects:  pringles or plate for example.  I found some material in Net how to use OpenCV training tools, also I investigated training tool’s source  code myself  to found out, what training parameters can be tuned.

Prepare images.

For training, I needed thousands of images, containing my object with different lightning conditions and perspectives. After trying to find required number of pictures with Google ,  I understood, that it’s really difficult task =).  So I decided to take video with my object,  then I wrote simple program to crop object from video, frame by frame.  In such way,  I generated about 3000 positive samples (cropped images  with my object).  Resolution varied from 50×50 to 100×100.  The advantage of this method – you  get many samples with different reflections, illuminations and backgrounds.  It’s very important, that all these images “features” are various!

Tracking people with a moving PTZ camera

Posted on : 01-06-2009 | By : Alex | In : Demo, Demo video, PTZ, YouTube

4

PTZ-3_sonicfire.avi

Description

On this demo CV system tracks moving people using single PTZ (pan/tilt/zoom) camera (AXIS 214) and tries to positioning it to always keep first entered person in the camera sight. When PTZ stops in new position, the system filters out still objects from those that actually moving, assigns unique IDs (and color frames) to them and measures proximity of these objects to the original one using color-histogram-based algorithm. The object with highest proximity will be treated as a target. System will turn camera in the direction where targeting object moves, when it is approach to the border of camera sight (the red rectangle on the border indicates direction of next movement of PTZ cam).

Tracking overlapping objects

Posted on : 13-05-2009 | By : Alex | In : Demo, Demo video, Demo videos, YouTube

12

overlapped_sonicfire.avi

Description

This video demo illustrates color-histogram-based object tracker in action. CV system tracks people as moving blobs (“clouds” of moving pixels) identifies them and distinct one from another in case of occlusions. When two (or more) blobs are intersected, system merges them in one combined object and marks it by IDs of all those source-objects that currently included in the combination. When one of objects separates from the combination CV system recognize which one is out and re-arrange ID appropriately. This approach works pretty well in case of characteristic histograms.

Object detection (barcode)

Posted on : 28-04-2009 | By : Alex | In : Demo, Demo video, Demo videos, YouTube

0

barcodes.avi

Description

Here is a demo of the jerry-built algorithm that finds barcode plates using Hough transform. Actually the video is mostly speaking for itself. Two points to comment:

  • The frames of barcodes are a bit long, since with given approach there is distinct difficulty in precise identification of barcode beginning and ending, so borders where widened to not miss the useful part, which is not really critical since extracted region of interest is still quite small.
  • The task was to detect only one barcode, so when there are several of them in the camera sight, CV system selects the best one (those with the most distinct lines). Since conditions of lighting and sharpness are always floating in video, system jumps from one barcode to another.