Skip to main content

Posts

Showing posts from December, 2015

Opencv tutorial, Combine two overlapping videos frames into one, MatchTemplate example

Combine two overlapping frame by simple correlation This tutorial use matchTemplate openv function to combine two images into one.


Today morning, I read this post combine two overlapping video frames on StackOverflow.  The problem is to merge 2 images together or two video streams. I am thinking about the most simple not so much dummy solution. I find a really simple solution that can be extended to a more complex one. 
First of all, I took 2 images from the phone like on the picture (color images). The program selects Rectangles region from both source images and resize end extract this ROI rectangles. The idea is to find the "best" overlapping Rect regions by normalized correlation and combine these images on a place with maximal correspondence.







I know well solution by SIFT and SURF, but it is a little bit laborious than this. It is not the best solution but one of the simplest. If your cameras are fixed in stable position between themselves. This is a good solution. I ho…

Opencv Tutorial VideoWriter: Cut video in Real time

Opencv Tutorial video writer (VideoWriter) Opencv video writer tutorial for simple video recording into the file.



In this tutorial, I would like to show you how to use the video writer in opencv. This is little bit boring task, but there is some insights to be highlighted for successful use. 
Let me introduce my Setup
Openv Visual Studio 2015 I am working with Visual Studio 2015 and Opencv 3. How to install opencv and build your own program you can find here. Install Opencv Visual Studio 2015
Opencv 3 prebuild lib is shipped with VC11 and VC12 libs. This libs are built for Visual Studio 2012 and 13. You can use them if you have older version of Visual Studio and include the project. If you can use Visual Studio 2015 with this libs may be there is some problem with compatibility. This issue could be solved by redistribution windows pack with older dll.
 I definitely prefer build your Opencv libs for appropriate Visual Studio Version by Cmake. It is easy straightforward process which a…

Computer vision news from ICCV 2015

Share this for more tutorials and computer vision post from me.. Thanks best Vladimir

The Marr Prize The Marr Prize is a prestigious award in computer vision given by the committee of the international conference on Computer Vision. The prize is called after David Courtnay Marr (19 January 1945 – 17 November 1980). His research was focused in neuropsychology, psychology, artificial intelligence. He successfully integrate these topics into visual processing.
It is considered as one of the top honors for computer vision scientist. Let me recapitulate the best of awarded papers.
best of awarded papers  1987 Marr Prize Paper:David Heeger, Optical Flow using Spatiotemporal Filters
1993 Charles A. Rothwell, David A. ForsythAndrew Zisserman, and Joseph L. Mundy, Extracting Projective Structure from Single Perspective Views of 3D Point Sets
1998 Marc Pollefeys, Reinhard Koch, and Luc Van Gool, Self-Calibration and Metric Reconstruction in spite of Varying and Unknown Internal Camera Parameters

The intelligent Computer vision processor CEVA-XM4

Human-Like Intelligent Vision Processing



The CEVA-XM4 is processor that support programmable vector architecture, fixed and float point math units and vision oriented low-power instruction set. The CEVA-XM4 advanced vector architecture that is 33% faster in image processing than GPU units. Main advantages is targeting the segment of mobile devices and IoT devices. This is evident in other benefits like small size, extremely small consuming of energy.

CEVA-XM4 processor focus on Real-Time depth mapping and point cloud applications, computational photography for image enhancement algorithms and deep learning like convolutional neural network (CNN) for object detection, image recognition and context-aware algorithm. 
CEVA XM4 target market
This processor focus on wide area of application in fields like smart devices, Automotive, Security & surveillance camera and wearables devices like glasses, sport cameras, drons and robots. 


CEVA XM4 impressive resultsReal time computer vision apps on…

Computer vision IOT company PointGrab Raises $5M

IOT computer vision Computer vision IOT company raises $5M from Swiss fund ABB Technology Ventures, EcoMachines Ventures in London, and Silicon Valley-based Flex Lab IX.


This home automation company develop application for daily usage.

pointgrab

 Features of Pointgrab Intelligent Optical Analytics  • People counting, Location and Tracking
 • Accurate and reliable detection of human presence
 • Screening out regions of no interest (using digital masking) Light sensing
 • Highly accurate average Lux reading (globally and in selective zones)
 • Color temperature measurement

This company is trying to focus on 3 major segments of today. Frist is internet of things, second big data and machine learning.

 Great idea of Pointgrab  project Save energy:
This could be based on detection of lighted lights and presence of people in room. In case, People are no longer in room algorithm could make a decision to switch the lights off. This technology can also make a decision like, You are going sit…

Open Hybrid - augmented reality interacting with Physical world

Computer vision tracking in augmented reality

Open Hybrid is a platform that allows you interact with physical world. It combines physical objects with augmented user interface. This platform allows to designers create an Augmented reality apps with simple HTML interface. Benefits is that programmers of the apps only using interface and no 3D or computer vision knowledge is needed. You can add functionality to the physical world object and deploy your program on platforms like Arduino.
Open Hybrid augmented reality controller 
For example, you can add a virtual slider for the physical devices controlled by Arduino or another platform. Can you imagine usage of this framework in daily live? Brilliant idea, It could be simple interface for everything you want. Do you want control heater? Lets put marker on devices you want to control and add the augmented reality control heater panel. Simple slider let you control your physical devices.  Also you can add another data sources to your project…

Objects hidden from view, Camera that see what is behind corners

This is what smart cars really needs.  More information in Nature photonics [1]
Detection and tracking of moving objects hidden from view The ability to detect motion and track a moving object hidden around a corner or behind a wall provides a crucial advantage when physically going around the obstacle is impossible or dangerous. Previous methods have demonstrated that it is possible to reconstruct the shape of an object hidden from view. However, these methods do not enable the tracking of movement in real time. We demonstrate a compact non-line-of-sight laser ranging technology that relies on the ability to send light around an obstacle using a scattering floor and then detect the return signal from a hidden object within only a few seconds of acquisition time. By detecting this signal with a single-photon avalanche diode (SPAD) camera, we follow the movement of an object located a metre away from the camera with centimetre precision. We discuss the possibility of applying this tech…

Nasa testing Microsoft Hololens in Space

Hololens in space Nasa testing hololens at Jet propulsion laboratory in Pasadena, California. This is not only social interaction for astronauts. Nasa hope that Hololens could help with remote communication with a experts on earth. This could bring not only voice and image support, but also detail plans and schedule of operations during challenging experiments directli on Holo Screen. Nasa also working on apps like augmented reality for inventory management. How and where to find thinks on space station? Great idea for small space, full of thinks like that.

Computer vision short news

ImageNet challenge Results
Microsoft Team wins several category of ImageNet challenge. They are using extremely deep neural networks. This results are achieved by depth of over 152 layers.  Object detection with provided training dataClassification+localization with provided training dataBlog Microsoft

ImageNet
Microsoft COCO Dataset Microsoft COCO is a new image recognition, segmentation, and captioning dataset for common objects in context.
http://mscoco.org

Aggregate channel features ACF Pedestrian Detector

I am testing Aggregated Channel Features ACF [1] for mode than 6 months.  Features are extracted from 10 channels, L LUV, U LUV, V LUV, 0° Grad, 30° Grad, 60° Grad, 90°Grad, 120° Grad, 150° Grad, and Mag Gradient.
This 10 channels are relatively simple to extract mainly by sobel derivatives (cv::sobel).
Yes, the implementation is mainly based on Opencv.

I am using this model paramint modelRows = 88;
                                        int modelCols =modelRows/4;

Init features are randomly generated. This is funny part. In some cases program hold 5GB is Ram memory and can cause shutdown of my PC. I cant find why. :)


 Now, I am trying different approach of weak feature selectors by AdaBoost, GentleBoost, WaldBoost .

This is only personal research.
In our applications.
Waldboost on Haar + LBP  features + Kalman are fast and good enough for me.


I know that Opencv Contrib module has ICF ACF feature extractor and Detector learned by waldboost. After some testing i try to implement my o…

Opencv C++ Tutorial Sliding Window

Sliding Window, search objects single scale Opencv C++ tutorial about the object detection with sliding window. Sliding window is easy to implement in single scale and also not to much harder  to implement in multi scale for example detection inside the bigger mat. I would like to visualize all the step during the code and described by natural c++ way. As a // comments. Enjoy the coding.. 
First tutorial about mat resizeing is Mat Resize
Second tutorial mat roi Roi

Opencv instalation for the tutorial You can simple prepare the project inside the Visual Studio 2015 by Nuget Packages. This approach is easy for beginers and better than standard installation with all the environmental variables problems. Just follow the installation steps inside here I am using Visual Studio 2015,  How to use Opencv 3.0.0 with Visual Studio can be found here install opencv visual studio 2015.

  Sliding window for detection opencv code
#include <Windows.h>

#include "opencv2\highgui.hpp"
#incl…

Opencv C++ Tutorial, Mat Roi, Region of interest

Opencv ROI, Region of Interest Simple opencv C++ tutorial how to work with ROI. Code example about selecting the rectangle region of interest inside the image and cut or display part of the image from the bigger picture. There is nothing what is difficult about this. Only trick is about one line of code. 
Rect RectangleToSelect(x,y,width,height) Mat source; Mat roiImage = source(RectangleToSelect);
This is first post from this series. This simple opencv tutorials are all over the web. I would like to visualize all my steps through the code and //comment them. Each tutorial will contain small amount of step to keep reader focused.  First tutorial about mat resizeing is available under that link Mat Resize
I am using Visual Studio 2015,  How to use Opencv 3.0.0 with Visual Studio can be found here install opencv visual studio 2015. In Visual studio 2015 is best options to use NUGET packages, Here is described how to install Opencv by NUGET. It is easy. Working under one minute after you f…

Opencv C++ Tutorial Mat resize

Opencv Mat Resize   Resize the Mat or Image in the Opencv C++ tutorial. It is obviously simple task and important to learn. This tutorial is visualized step by step and well-described each of them. The main trick is in that simple code.

Mat Input;
Mat Resized;
int ColumnOfNewImage = 60;
int RowsOfNewImage = 60;
resize(Input, Resized, Size(ColumnOfNewImage,RowsOfNewImage));

This code just takes an Input image and resized save to output Mat. How big is the resized image is based on the Size? Size just contains two parameters. Simple numbers of how the result should be big. The simple number of columns (width) and rows (height). That is basically it. Enjoy

                                                Boring same face again and again. 


Load Image, resize and save Opencv C++ #include <Windows.h> #include "opencv2\highgui.hpp" #include "opencv2\imgproc.hpp" #include "opencv2\video\background_segm.hpp" #include "opencv2\video\tracking.hpp"
using n…