Pages - Menu

Wednesday, October 29, 2014

within future: Chrome-Android may seek unification and Microsoft Watch is coming soon

    In our previous post we covered a lot of ground regarding Smartwatches and Eco-system. Few of the interesting things that came out of that discussion was the co-existence of  Chrome and Android. A constant remainder is not enough to suggest that Google did not have a stable and independent platform until Android took off. Now with the significant stronghold they have on smart phones, Google is making amendments within the Organization to tweak up its other portal to the Internet by garnishing it with Android. Chrome OS that hasn't really grown out of its infancy yet and is constantly hurtled by Windows releases. The best possible attempt for Chrome is to hijack Android market share by providing itself the ability to run Android applications natively and by pushing the "web-based" capabilities to Android. The above picture exactly illustrates what Canonical did with Ubuntu for Android.

Hiding between the lines


Yet another interesting topic that came out in the post, was the evidently missing Microsoft's Smartwatch. News reports suggest that Microsoft watch will be out with this years end [2014]. The Windows platform is much better equipped to adopt smaller devices thanks to improvements in Windows RT. But the big question is will the plunge into making hardware burn fingers again ?
A mock-up of the  Microsoft (Windows/Surface?) Watch -



Related: The Best Smart Watch ever
Sources: CNET,  WallStreet.orgVCPost

Saturday, October 25, 2014

OpenCV: QR Code detection and extraction


       There are many ways to decode QR Code these days. Here is an attempt to detect QR Code in an image to manipulate within OpenCV. 

1. Detection of QR Code Identification markers
We start of the topic by discussing something that is not a part of this sample program. If you need to get on with it, you can skip directly to "Step 1".

The first task is to identify reliable patterns in the QR Code as show above. This can be determined using the technique described below.



A hypothetical Ratio Theorem:
Definition: Ratio of the Areas of N number of two dimensional polygons remain invariant to the uniform geometric transformation.

If ar is the area of a polygon r then, 
a1 : a2... : aN = R in 2D plane X then, 
a’1 : a’2 ... : aN = R for any other 2D plane Y which is geometric transformation of X

Consider the following example marker in 2D plane A, the areas of the polygons a1, a2 and aare in the ratio 7:5:3. Plane B is obtained by perspective transformation of plane A. However the areas of the polygons a'1, a'and a'plane B can be resolved as multiple of 7, 5 and 3 respectively i.e., 7β:5β:3β or simply 7:5:3. The same is illustrated in the figure below-

Ratio of the areas of the polygons



Proof: I have none. May be some other time.
All great men are gifted with intuition. They know without reasoning or analysis, what they need to know. 

This approach is not used in the sample program, instead the structured OpenCV Contour detection technique is used.

Actual Step 1
OpenCV Countour detection does much more then identifying contours in an image. It also stores the relationship and hierarchy amongst the contours. This is nicely explained in the OpenCV documentations and tutorials OpenCV Contour Hierarchy.

Applying contour detection to a QR Code, the contour tracing the perimeter of the pattern polygons has the following characteristics -
      It is a contour with subsequent enclosed (nested) contours. Although looking at an Identification marker, you would expect to detect 3 'nested' contours, however the inner boundary is also accounted as a contour resulting in 5 nested contours as shown here. 

Nested contours in Identification marker



2. Determining the three distinct Identification markers
Post identification the three markers of the QR Code, the key step now is to determine the orientation of the markers and the positions wrt each other. (i.e., to determine which among the three markers are top, right, bottom  and in what order.)
 This is achieved easily using a triangle. The triangle is formed by using the mass centers of each of the three contours as vertices. The Vertex not involved in the largest side is obviously out lying and turns out to be the "top" marker*. Differentiating markers "right" and "bottom" out of the remaining two vertices, requires calculating the slope of the line they form and the position of the marker "top" wrt to this line. 

* Limitation: This assumption is not true for acute perspective angles. a different approach is required to resolve and is a limitation of current implementation.

Determination of QR Code Identification Markers 

3. Identify the four corners of each Identification markers
In this step we provide the contour points of the polygon to the function which retrieves the four corners of the polygon. The method measures the distance of each point on the perimeter with the center to determine four farthest points. These are likely to be the vertices of the polygon. 
This function is implemented and well documented as part of OpenAR. More info openAR.

4. Determining the fourth point of the QR Code
Once four corners of all the three identification markers are obtained it is easy to estimate the fourth corner of the QR Code. The estimation is done by extending the lines forming the boundaries of the other two identification markers namely RIGHT and BOTTOM as shown in the figure below.
The line formed by O[3] and O[2] in BOTTOM identification marker is extended. Similarly line formed by M[1] and M[2] of RIGHT identification marker is extended to meet at N,this estimated position serves as the forth corner of the QR Code.

Reference identification objects in the QR Code





5. Orientation and Perspective correction
Having now obtained the 4 corners of the QR Code, namely L[0], M[1], N and O[3], we can apply OpenCV warpPerspective() function to restore the QR Code to readable position.



QR Code Orientation


6. QR Code decoding
QR Code thus recovered from the frame can now be used to extract the data. There are several libraries that are capable and compatible with OpenCV such as ZBar.
Note: This step is not part of the sample.

Another useful library libdecoderqr that was demonstrated in earlier posts, can also be explored. Link



Source:
Git: https://github.com/bharathp666/opencv_qr.git

Download:
Download from DsynFLO box folder - https://app.box.com/s/191dc0l9hr37orltufok

License:
ZERO License.

References:
OpenCV 2D Image co-ordinate system - Link

Equation of a line - Link
Equation of a line with 2 known points -Link
Solutions to equation of a line - Link
Position of a point with respect to a straight line - Link
Perpendicular distance of point from a line formed by two other points - Link
Slope of a line  - Link

Thursday, October 9, 2014

O'REILLY Early Release Ebooks are now 50% off

O'REILLY Early Release Ebooks are available now at 50% price until October 16 2014. So Hurry!!!

Top Picks:
Effective Modern C++
42 Specific Ways to Improve Your Use of C++11 and C++14
Publisher: O'Reilly Media
Release Date: July 2014
Pages: 320

http://shop.oreilly.com/product/0636920033707.do



Learning OpenCV
Computer Vision in C++ with the OpenCV Library
Publisher: O'Reilly Media
Release Date: October 2013
Pages: 575

http://shop.oreilly.com/product/0636920022497.do
UX Strategy
How to Devise Innovative Digital Products that People Want
Publisher: O'Reilly Media
Release Date: September 2014
Pages: 275




The Hardware Startup
Building Your Product, Business, and Brand
Publisher: O'Reilly Media
Release Date: May 2014
Pages: 200





Friday, September 5, 2014

mono : Minimal Social Media Buttons






Minimal Social Media Icons for Websites/Blogs/Profiles etc. The PSD file is customizable to suit any Social Media Network. Find the samle HTML code and PSD files within the package

Download:
Download from DsynFLO box folder - https://app.box.com/s/w71o522iuz0nwmk3zy0t
DeviantArt mono : minimal social media icons by bharathp666 on deviantART 

The Sample code below is the same used on this site. The Sample has on demand buttons for Google, Twitter, Facebook, Feedly* and Email using 'AddThis' customization. The code also features variation in color for mouse over event. Note: Code for 'Feedly' in the sample redirects to DsynFLO feeds. Don't forget to modify it before use.

Live Site  http://dsynflo.blogspot.com
HTML Demo  : http://jsbin.com/mijusu/1/edit?html,output
Online hosting  https://picasaweb.google.com/106461262664551894489/Public

Sample Code:
<!-- HTML Code for mono: Social Media Icons by DsynFLO-- >

<!-- Google -->
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js"></script>
<a class='addthis_button_google_plusone_share'><img alt='Share on Google Plus' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwMQdwr4Qhl0PUg86vi2pqCks-I9mS7yx0TZIVNcY4y046TZh2A3FAGA6Gdc_68qCLPTEFJ2sE8yqn_AG27kcihO9BmKeUml7u3B0QHbKQIAnSS2lbocV5LrkVO0TrmLCDMDkKE8iI1oU/s800/google.png' 
onmouseover="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ3rsOB35BKZY6f8Qsqq-hJ6A52u-rtja1XKJgK74Ml8KuqSlkLk1ea68iA8kJVHn7Gn451HauY-1eQjBkPsYgeoMsyujZBYXD2ec_2OdtiA0Ti5ApwmqJ7xTI48s9G8s2gZtb6MwDLlE/s800/hgoogle.png'" 
onmouseout="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwMQdwr4Qhl0PUg86vi2pqCks-I9mS7yx0TZIVNcY4y046TZh2A3FAGA6Gdc_68qCLPTEFJ2sE8yqn_AG27kcihO9BmKeUml7u3B0QHbKQIAnSS2lbocV5LrkVO0TrmLCDMDkKE8iI1oU/s800/google.png'" height='40px' width='40px' /></a>

<!-- Twitter -->
<a class='addthis_button_twitter'><img alt='Share on Twitter' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_kiXlbWnHlBNpyXcE9w5wwA2zmHbTXnFWA4mfO0H2OPyZ22nRb7J-03F-sAXqAWMtHCYy8Sxua8G7iIq3ODmgSG6FwllC0N_C2I5Bw6ggjjb-kbK24gYvJLFPlyFiq8Y_eAZF8Lc-Oc/s800/twitter.png' 
onmouseover="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS3a7vDB-EeB2oJklyfPYTDTjBbfe47KoP3mqxV_SXXOxSWb60VwsJtGmB9H3WMGfcXO1eWUfN_tRusNulRVs7Y2pEvkfdbT-xLkdCOwKiQmRMyqkvzDdlykpmvDpEqmY8ZEo-KPZeD2A/s800/htwitter.png'" 
onmouseout="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_kiXlbWnHlBNpyXcE9w5wwA2zmHbTXnFWA4mfO0H2OPyZ22nRb7J-03F-sAXqAWMtHCYy8Sxua8G7iIq3ODmgSG6FwllC0N_C2I5Bw6ggjjb-kbK24gYvJLFPlyFiq8Y_eAZF8Lc-Oc/s800/twitter.png'" height='40px' width='40px' /></a>

<!-- Facebook -->
<a class='addthis_button_facebook'><img alt='Share on Facebook' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs69mkGlCaXfvFDsJ7Vn9xDvQdkRlKFMwtkpROj5UYXL69hqj9BOlojKBMdVDL0FqYcnG4I5Z1OY5DIgjmUaUQRlb7UwKOT4YXQ-pLupXOOkaIYIyxUQmz4vwCvQy83gOlzimtXD7t2M/s800/facebook.png' 
onmouseover="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjddDFacEiJnkGUU91fY725FyNdCUUfXZV5Y6J-waai60sX_Ya7Yz4iHy9Rz7dnWlPIyvxYDxFYIG71Xy9cpMck8EzyWFerkAfJBtOvBclUFdhdphu4w5ZSaqc0McLtI4yN0d3HsTA4kc8/s800/hfacebook.png'" 
onmouseout="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs69mkGlCaXfvFDsJ7Vn9xDvQdkRlKFMwtkpROj5UYXL69hqj9BOlojKBMdVDL0FqYcnG4I5Z1OY5DIgjmUaUQRlb7UwKOT4YXQ-pLupXOOkaIYIyxUQmz4vwCvQy83gOlzimtXD7t2M/s800/facebook.png'" height='40px' width='40px' /></a>

<!-- Feedly -->
<a href="http://cloud.feedly.com/#subscription%2Ffeed%2Fhttp%3A%2F%2Ffeeds.feedburner.com%2FDsynFLO" target="blank"><abbr title="Feedly"><img alt="Follow us in feedly" id="feedlyFollow" 
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_iqI-vaqLOOzMKmSDIcfreTGiE6BMR2Ppca0Tx1wFVWgQAmOISmaSeIK7g0F5jVHuC2_3uhrwP5aSDLhGDPD7bWf6tmdP4i2pFSeFH6pZmnzQ3RbyXyp3WM3iu5FDBdvJIfSf-e_5YO8/s800/feedly.png" 
onmouseover="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsokjWkb4MOzu0TlnfI5ZbmJdxzMBY-TgXT0LXSCoqY6NoD9qRT3uHIv4CgyLwMEJ4KLZ_-tOSBkuGR1TQKnWXFOrRzLNrjt0krpKx52_5DUaV0Zdd8UbD-G6C3UAd5krNF4aJdbr4BwE/s800/hfeedly.png'" 
onmouseout="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_iqI-vaqLOOzMKmSDIcfreTGiE6BMR2Ppca0Tx1wFVWgQAmOISmaSeIK7g0F5jVHuC2_3uhrwP5aSDLhGDPD7bWf6tmdP4i2pFSeFH6pZmnzQ3RbyXyp3WM3iu5FDBdvJIfSf-e_5YO8/s800/feedly.png'" height='40px' width='40px'  /></abbr></a>

<!-- Mail-->
<a class='addthis_button_email'><img alt='Share vai Email' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfhChR0yUCTj7poFbT5vuf8VJMraDB0fsX3Sk9fLUTn6hhlS-P77rhq15IopQCtzQr0XRiKXFyFF0tLH-LtmxLs2qCDsRLu0nhwhZfypDabGBSNQBBhAaj5A00pcaifCOO1UhO_zLZaH8/s800/mail2.png' 
onmouseover="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjljhypEz6Ifo1I0XAbfOIaRUVjUlCfTxy9dmmYNpkSOgPS0GiYSiUOIl0r3tJjIaGgbvTxQqYX6Df9HwjD8HKIRw5SXh5K7eFcnJCnezxOLFTobTpfU5rfeT0ODvNhQ8ZiuWt7rEUpeks/s800/hmail2.png'" 
onmouseout="this.src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfhChR0yUCTj7poFbT5vuf8VJMraDB0fsX3Sk9fLUTn6hhlS-P77rhq15IopQCtzQr0XRiKXFyFF0tLH-LtmxLs2qCDsRLu0nhwhZfypDabGBSNQBBhAaj5A00pcaifCOO1UhO_zLZaH8/s800/mail2.png'" height='40px' width='40px'  /></a>



Sunday, August 31, 2014

The Best Smart Watch ever made


MOTO360 [Image from Mashable]


Watch becomes more than an accessory
Time keeping devices are nothing short of a modern marvel. Clocks were the first of devices to be acknowledged by a wide audience and recieve almost universal adoption. These devices were the genesis for all the revolutionary computing devices that we have today. By closing the physical distance and by radiating more personality, Watches embraced even more success. This is where the Watch becomes more than an accessory.  By the end of this year we might probably witness a revival of the lost art of watch making. The more interesting aspect is that, this might as well trigger rapid advancements in the wearable market. Recent venturing of tech giants into this arena will and must herald future technical advances in wearable technology as well as personal healthcare.
PC HAS BEEN THE PRIMARY SOURCE FOR MAJORITY OF THE DIGITAL CONTENT
The PC has been the primary source for majority of the digital content. The Smart Phone has slowly but surely stepped up as an important entity of Data creation. Googles continued disconnection with PC world is due to the fact that Chrome OS hasn’t taken off anywhere nor does it play nice with any other platforms. Android never promised an enhanced experience for sharing content across Mobile devices and PCs. Instead, Googles persistence over faux unified experience with a hoard of “seamless” cloud apps has seen success at least to an extent. Google cloud apps are an affirmative addition to Android but never bridged what Ubuntu for Android tried to provide and possibly the OS X Yosemite-iOS ‘Continuity’ will.

SMART WATCH NEEDS AN INDEPENDENT IDENTITY
Click to enlarge


Look at where the Phone, meant to be used as a remote PC, ended up. The Smartwatch has to stop being a remote view of a remote view of a remot… You get the point. There is no need to tie down these watches to the Smart Phone. The Smart Watch needs an Independent Identity. It must serve the purpose it was built for. Keeping Time must be the fundamental idea around which the other features must converge. 

YET ANOTHER VERSION OF ANDROID WAS NOT THE ANSWER WE NEEDED
It doesn’t seem bizarre when all Tech companies working on same ideas (may be different implementations) end up producing same similar products. It is not difficult to imagine someone rushing into Google’s office to announce “Apple is making an iWatch!!!” or the inverse at Apple’s office. There is a unanimous effort from the companies to push into Smart Watch business at full steam. Google’s former protégé Motorola and Android accomplice LG have dived first to bring out Android Wear Watches. Amongst them, Motorola’s MOTO360 is more beautiful and also seems to be the one worth buying. But I fear yet another version of android was not the answer we needed. There are as well alternate experiments happening in the market referring to likes of Samsung’s Tizen Watches, Sony Smartwatches, People-funded success story Pebble and then Apple’s wearable (iWatch?). Pebble has been excessively promoted in Social Media by Authors who are backing the Project or raising opinions since they own one or they are just simply assuming many are rooting to own one. The Pebble is a good product but not ‘the’ best product. It is arduously concentrated on being a remote notification device while leaving a huge gap in terms of appeal as a Watch. This is where Apple will come into its own. It appears as though it would provide what the current vendors will fail to provide – A Watch.  It will be down on hardware specifications compared to existing market baseline but there is no doubt it will sell. Make no mistake I am a pro Android user but none of the devices from any manufacturer satiate my demands, and that is what I’m raving about in this article.


Introducing  quantum Smart Watch concept
Click to enlarge


Before everybody goes bonkers over Apple’s new training kit and then others start off a bandwagon of watches, I want to show off what is possible. I want to set the tone for devices ahead, so I give you - “quantum”.

Key elements for the design
  • WATCH = TIME
  • ‘Clean and Elegant’
  • ‘Simple and Easy’
  • ‘Precise and Timeless Presence'
Click to enlarge 


Guidelines for building the Best Smart Watch


  • Visibility The perception of depth is the key to replace a practical device that visually interfaces a human body. Think 3D displays and/or Virtual/Augmented displays, Google Glass for instance.
  • Interoperability Smart Watch needs an Independent Identity. Think Sync-free ecosystem, Data connectivity only once a while or completely absent, Create content within device.
  • Mobility Anything with a wire is not a Wearable rather wire-enabled. Think solar charging, Wireless power, and Body heat conversion.
  • Capability There no need for a  >400Mhz  processor equipped device to be on your arm. Think OS-less device, purpose-built device and dedicated functions.
  • Durability The Materials must be adaptable to activities. Think Hard Metals bodies, Scratch resistant Glass, Durable straps, Water/Dust resistance.
  • Usability Create Time driven events rather than Content/Data driven events. Sync only when required.
  • Credibility Everybody, Please stop ‘Dick Tracy’ing around!!! Think of commendable applications such as NFC based Medical Information Card, Emergency contact or Emergency information, Buzz alerts for taking pills/keep drowsiness away while driving, Magnetic Compass for navigation, Gesture recognition , Non-invasive health monitoring.
Smart Watch Features Wish list

- AMOLED 3D display with Sapphire
- High Density Small Volume Battery
- Transparent Infrared Solar cells
- POWER over WIFI (new standard) Wireless Charging option
- WiFi Direct support
- Water resistance and Dust resistance
- NFC
- Accelerometer, Gyroscope, Digital Compass and Barometer
- Gesture Control for higher devices

Healthcare Features Wish list

 - Geiger counter for Radiation sensing
 - Pedometer
 - In-contact Body temperature sensor and monitoring
 - Infrared Heart rate sensor and monitoring
 - Ultrasonic Blood pressure monitoring
 - Non-invasive Blood sugar monitoring
 - NFC assisted Global Medicare card with Emergency Distress Signals

Comparison Chart of Devices


HTC Wildfire
Sony Liveview
Motorola MOTOACTV
LG G Watch
Launch
May 2010
Dec 2010
Dec 2011
July 2014
Processor Family
Qualcomm Snapdragon S1
STMicroelectronics 32 bit ARM MCU
TI OMAP 3
Qualcomm Snapdragon 400
Model
MSM7225
ST 32F103C6
OMAP3630-600
MSM 8226
CPU
ARM11
ARM Cortex-M3
ARM Cortex-A8
ARM Cortex-A7
Frequency
528 MHz
72 MHz
600 MHz
787 MHz
GPU
-
-
PowerVR SGX530
Adreno 305
Price
Rs 24000
Rs 9600
Rs 14950
Rs 15300

Unanswered Questions from the Article

Will Android Wear take off?
Will When will phasing out of Chrome OS happen as Android TV/ Wear/Auto/@Home take flight?
Will existing companies involved in making specialty commodity play ball or perish?

Download:
Download from DsynFLO box folder - https://app.box.com/s/wjver8chwlxdz32s4lei


Fine Print
The information mentioned here are purely the perceptions of the Author and are not from any data analysis study or information data source. They are only opinions expressed by the Author. Android, Apple, Braun, HTC, Google, LG, Microsoft, Motorola, Qualcomm, Sony and Obaku are registered trademarks of respective entities. Names are used only for Illustration. DsynFLO or the Author do not have any affiliations with these entities or vice versa.