高通Qualcomm vuforia SDK4.0相关

mikel阅读(1376)

一.新一代vuforia SDK4.0一般准备步骤为:
1.建立新工程
2.导入vuforia-unity-mobile-Android-ios-4-2-3.unitypackage
点击import默认全部导入
这个就是下载的识别图数据库文件,同样,我们导进unity
到这里我们基本完工,但是由于高通新版4.0插件开始需要联网验证,需要输入一个 License Key,我们接下来要在官网创建出我们自己的key
完工,点击运行,将识别图片放在摄像头前,识别后就会出现Cube

二.Vuforia sdk 4.0的新功能就是物体识别Object Recognition和物体扫描器 vuforia object scanner,制作一个手表扫描案例简单说一下使用流程。

Vuforia 对象扫描仪使用有四个阶段

  • 设置-应用于设置环境。
  • 扫描-捕捉各个角度的对象。
  • 测试-评估对应用程序本身拍摄的对象
  • 对象数据文件传输-上传到目标管理

下载安装扫描器

Vuforia 对象扫描仪下载地址:https://developer.vuforia.com/downloads/tool

下载之后包含的内容是一个安卓的apk安装包,安装到手机上。支持的设备,支持三星Galaxy S5和谷歌Nexus 5。注意,在其他安卓设备可能性能受影响,不是最佳的效果。

在media文件中还有两个文件,为对象扫描图ObjectScanningTarget

 

这个图片在扫描3d物品时会起到辅助作用。

一旦你安装了扫描仪在手机上就会有一个扫描的图标启动app进入,这里需要手机连接网络,如果不连接网络会提示你没有连接,不能提供服务。

界面,当你有扫描物品

下面就是如果扫描对象,并创建一个对象数据文件。

要通过扫描对象创建一个对象的数据文件,请按照下列步骤操作

1. 打印对象扫描目标图片

2. 定位对象

3. 扫描对象

4. 测试对象

在进行扫描时,需要注意的问题是,你选择的扫描物体最好是不规则的,我测试了几个物体

第一个是葫芦,表面比较光滑,第一次测试,识别的点不多.不建议使用3d物体识别,可以用vuforia的Cylinder 识别,会有专门教程进行讲解。杯子盖测试也是识别点比较少,这个可以与光线、周围环境都有影响。鼠标和手机是不规则的物体,这个可以并建议使用用3d识别 追踪。

扫描并创建数据文件

扫描的步骤为

用手机围绕对象旋转,让这个points越多对之后的识别效率越高。

测试对象的扫描结果

出现这个物体说明你的物体就会比识别,如果没有这个物体或者这个物体偶尔出现,说明points不够多,你需要继续添加这个对象数据文件。

编辑和上传对象数据文件

 

 

 

通过这几种方式可以上传到电脑上。然后在添加对象到目标数据库中使用。 格式为.od

3d手表识别案例

通过上面3d扫描已经获取了watch001的数据文件,如何在项目使用这个文件。我使用的unity+vuforia技术路线。

第一步,需要创建License Manager

第二步,添加 Target Manager数据 addDatabase,创建watch Target Manager

第三步,添加数据信息

第四步,下载unity需要的文件

第五步,在unity中添加

第六步,组件,并进行设置

第七步,添加组件,并进行设置选择数据文件

第八步,再添加一个人物模型

第九步,点击运行

最后,识别手表就可以出现人物了,实现3d模型的识别。

版权声明:本文为博主原创文章,未经博主允许不得转载。

基于增强现实手指识别图像显示技术的研究

mikel阅读(854)

基于增强现实手指识别图像显示技术的研究

1.手指的跟踪与检测

1.1 手指识别系统框架图

手指识别系统具有其独特的识别特点,手指识别不同于掌纹识别,手指识别相对于掌纹识别 而言,在算法上较简单一些。在一定意义上来说,手指识别是掌纹识别的前期。由于每个人的手型基本上是一样的,在特征库里需要放置的特征识别手势可以不用太 多,就可以实现普遍性性的手指识别。

特征库的建立首先要采集手势,包括分割手势和背景、定位、和图像的增强处理,然后进行 特征提取放入特征库。在系统运行阶段,通过摄像头采集得到彩色手势。系统通过位图转换(二值化),将彩色手势图片转换成灰度图,除去背景因素的影响。将转 换得到的灰度图与特征库里的特征手势进行特征匹配。匹配成功以后,系统将预设的虚拟物体进行渲染,并进行图像合成,显示在实时的画面当中。

 

11111

图2-1 手指识别系统框架图

1.2 手指识别系统手指检测算法分析

本文中的研究实验是在Window XP系统的visual studio 2005开发环境下以artoolkit为 基本实验环境的条件下进行的。在此节中主要对图像灰度化和图像模糊匹配算法进行分析。本次实验能达到提高识别效率和准确度的目的,主要是在这两方面进行了 研究并获得了成功。在系统的图形灰度化(二值化)阶段,传统都采用微分直方图法、灰度差直方图法、灰度期望值法等算法。但是这些算法执行效率普遍都比较 差,相对于前两种方法,灰度期望值法的执行效率有了较大的提高(参考文献(1)–)。此次实验中我们采用期望择优阈值法。需要声明的是,本方法是在灰度期望值法的基础上加以改进,使其执行效率进一步提高。图像灰度化(二值化)的执行过程如下图:

 

图2-2 原始图像

 

在不同的方法中,图像二值化的操作本质都是将图像信息转换成为数组或者矩阵(即数字图 像)存储在电脑中。在数字图像中,每一个像素值均属于一个有限数字集,这个有限数字集就是可能的灰度级。有限数字集中取不同的数据,也就形成了不同的图 像。在此基础上,我们可以用概率分布来描述图像的灰度分布情况。

假设图像的尺寸为W*L,则其灰度的可能取值为M1,M2,M3…ML。用随机变量N表示图像中任一像素Rxy,则x∈(1,W),y∈(1,L)即为N的取值范围。此时,图像的分布可以用概率分布来描述,每个灰度级出现的概率是不同的,其各自出现的概率为:

P1=P(M1), p2=P(M2),…,pn=P(ML);

并且

P(M1)+P(M2)+…+P(ML)=1

对于以上随机变量,可用以下密度矩阵进行描述:

222

对于不同的图像,其密度矩阵也是不同的。

对图像二值化效果的好坏关键在于对于阈值的确定。不同的算法对于阈值的确定的方法是不 同的。本文中的期望阀值法则采用全局选取阈值的方法。而在于对于阈值的选取上,本算法相对于灰度期望值法的改进之处在于,在进行阈值选取的阶段,本算法紧 根据密度矩阵选取,灰度级概率相对较大(大于某一概率)灰度级作为阈值。概率较小的则予以舍弃,不进行考虑。这样在一定程度上大大减少了系统的计算量,使 执行效率得到了较大幅度的提高。

2  融合图像的显示

2.1 灰度图像模糊匹配

将摄像头采集到的图像进行灰度化处理后,系统再将得到的灰度图片与模型库中的特征图进 行一一匹配。可想而知,图像的相似度越高,其识别准确率也高。但是在图像匹配阶段,为了提高匹配效率,我们采用设置匹配率的方法进行控制。在匹配阶段,只 要灰度图与特征库里的某一图像相似度达到或者超过这个值,便返回匹配成功。经过多次实验,最终我们将匹配率设置为%85,此时匹配效率较高并且准确率也不会收到太大的影响。

 

图3-1 灰度图模糊匹配

图3-1 灰度图模糊匹配

 

2.2 融合图像的显示

灰度图像匹配成功之后,系统将对实时图像进行坐标转换-,即转换为三维图像坐标。然后对虚拟物体进行渲染,之后将二者进行坐标融合,显示在实时界面中。此时现实场景与真实场景同步显示,达到识别效果。识别成功后,得到的融合画面如下图所示:

 

 图3-2 融合画面显示

图3-2 融合画面显示

 

3 实验结果及分析

在此部分本文主要对图像识别阶段进行分析。在图像二值化阶段,为了验证期望取忧阀值法的优越性,进行了多次的比较实验。在比较阶段,我们进行了两种不同的比较实验。

 

1. 相同图片相同条件下不同算法执行效率的比较。

2. 相同大小不同背景的图片相同条件下同一算法(期望取优阀值法)的比较。

进行第一种对比实验的目的是,验证期望取优阀值法相对其他算法的执行效率的提高。进行第二种对比实验的目的是,验证此算法在识别不同背景图片时的准确率。以上两组对比实验,验证了期望取优阀值法的识别效率和准确率。相对与其他算法此算法的识别效率提高了30%~40%。同时,使手指识别系统的执行效率进一步得到了提高。

版权声明:本文为博主原创文章,未经博主允许不得转载。

技术源于想象

mikel阅读(1048)

很多电影里面的片段都是人们对未来的想象,过去的电影很多镜头,目前都有实现了,只要你肯想象那么世界就会因你的想象改变,这就是吸引力法则。

很多时候技术并不是无中生有的,都是人们

支付向左 社交向右

mikel阅读(851)

支付宝改变走了社交套路,让微信情何以堪!

微信没有改变,但是不温不火的支付已经占据了不少市场,没想到之外,也是意料之中,毕竟社交关系总是会涉及到钱,红包飞来飞去的过程不单是沟通感情,同时也绿了樱桃红了芭蕉,微信支付绑卡量和开通量不是虚高。

支付宝坐不住了也是意料之中,毕竟作为玩钱的总是不怕事儿大,钱绑住了人,同时也就绑住了关系,于是人们需要社交来改善简单的付款关系。

不是支付宝收编了微信设计团伙才会这么改版的,是大势所趋!

The connection to adb is down, and a severe error has occured.问题解决方法小结 - red_rose - 博客园

mikel阅读(700)

来源: The connection to adb is down, and a severe error has occured.问题解决方法小结 – red_rose – 博客园

遇到了几次这个问题:The connection to adb is down, and a severe error has occured.

You must restart adb and Eclipse.Please ensure that adb is correctly located at ‘E:\setups\Android\Android-2.1_r01-windows\tools\adb.exe’ and can be executed. 

通过查找和实践,我总结了以下一些方法。

1、在Eclipse中选择菜单“help->Check for update”,选择更新ADT。 按上面操作完成后,重启Eclipse!

2、在cmd中进入adb的根目录,键入adb kill-server,然后键入adb -startserver,再重启Eclipse。

3、在任务管理器中杀死adb.exe进程,然后重启Eclipse。如果此时无法杀死adb.exe,则检查豌豆荚是否在运行,关闭豌豆荚后重试。

4、超看在你安装的SDK路径里面platform-tools文件夹中是否有adb.exe,如果没有则新建一个文件夹platform-tools,并且把tools中的文件全部复制到platform-tools中。

5、安装完手机的驱动后,关闭腕豆夹,重启eclipse。腕豆夹等类似的程序与eclipse一般不要同时打开!还可在任务管理其中关掉豌豆荚的进程。

6、模拟器有时候很不稳定,有时候要重新全部配置一遍开发环境,或者你删除模拟器重新建一个新的模拟器。

7、可能是默认端口被占用,在cmd中键入netstat查看,关掉有冲突的端口程序,或者设置新的端口。

8、将platform-tools目录和tools目录加到Path环境变量中。

9、将Eclipse进入DDMS模式,重启ADB 和Eclipse。

10、打开SDK,先下载API和android SDK Tools 和 android SDK platform-tools再去配置Eclipse。

11、开关一下 usb调试。

12、重启电脑。

13、前面的方法试了还是不行的话,建议重新装一个系统,最好换个系统。

小小总结,希望对大家有所帮助。

ASP.NET MVC 開發心得分享 (11):對 Views 進行編譯檢查 | The Will Will Web

mikel阅读(1212)

来源: ASP.NET MVC 開發心得分享 (11):對 Views 進行編譯檢查 | The Will Will Web

預設的 ASP.NET MVC 專案在 Visual Studio 中建置 (Build) 時並不會對 Views 進行編譯,所以很有可能在 Views 中寫錯程式碼而不自知,甚至於有可能讓網站上線時掛掉。為了避免這個問題,我們必須手動設定專案檔讓建置時也一併編譯 Views 中所有網頁,讓開發人員得以儘早得知程式錯誤。

要設定讓 ASP.NET MVC 專案能在 Visual Studio 中能自動編譯 Views 中的網頁,必須要修改 ASP.NET MVC 專案檔 ( *.csproj ),如果你有安裝 PowerCommands for Visual Studio 2008 的話可參考以下步驟進行修改,或自行用文字編輯器做修改。

1. 開啟/編輯專案檔

開啟/編輯專案檔

2. 找到 <MvcBuildViews>false</MvcBuildViews> 片段,並將 false 改成 true 即可。

找到 <MvcBuildViews>false</MvcBuildViews> 片段,並將 false 改成 true 即可

3. 重新載入專案即大功告成

重新載入專案

不過,若要開啟這個設定會導致專案建置時間拉長,如果專案小有規模的話,會導致編譯時間過久,開發階段開啟這個選項可能會有點浪費時間,建議在進行 Release build 時再開啟即可,若要這麼做有個很簡單的小技巧可以設定,說明如下。

重複步驟一,並將 <MvcBuildViews>false</MvcBuildViews> 複製到另外兩個 <PropertyGroup> 中,並將 Release 的那個 <MvcBuildViews> 改成 true 即可,如下圖示:

將 <MvcBuildViews>false</MvcBuildViews> 複製到另外兩個 <PropertyGroup> 中,並將 Release 的那個 <MvcBuildViews> 改成 true 即可

後續就不用再修改專案檔,只要切換 Solution Configurations 即可套用不同的 MvcBuildViews 設定:

切換 Solution Configurations 即可套用不同的 MvcBuildViews 設定

善用 Visual Studio 的 Solution Configurations 可以簡化不少工作,建議新手有機會多研習手邊的開發工具,慢慢的開發效率就會提升。

※備註:此技巧僅適用於 ASP.NET MVC 內建的 WebForms View Engine

相關連結

MVC 4 中编译时,让View 也弹出异常

mikel阅读(855)

前言

MVC在编译时,不会提示View中的错误,我们在发布项目的时候会一个一个的提示异常,项目大的时候会非常头疼,因为每次发布都需要至少5分钟,最后收到只有一个异常信息,如果页面异常过多,例如最近整理代码修改了很多底层代码,这样用发布的方式去找异常效率非常低

 

解决方法

参考网址:http://www.dotnetcurry.com/showarticle.aspx?ID=698

http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx/

1. 首先在项目文件上点击右键,点击 [卸载项目] 的选项

2. 然后再次右键 项目文件,点击 [编辑] 选项

3. 在打开页面中 找到 <PropertyGroup Condition=” ‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU’ “>  (每个VS版本的节点可能有不同)

在次节点中增加 <MvcBuildViews>true</MvcBuildViews> 的属性,如果你用 Debug 编译请在 Debug节点下增加

4.将页面拖到最下面,在最后一段处</Project>前面加上以下内容

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

5. 最后在选择项目文件,右键 点击重新加载项目,点击保存,就可以了

 

效果图

人总是不喜欢现实 喜欢梦想

mikel阅读(915)

现实总是那么让人觉得不如梦想美好,于是都想改变现实。

现实总是不如梦想完美,大家都是完美主义者,追求美丽总是被人向往。

于是想改变现实先从改变眼睛开始,什么VR、AR都开始了人们改变现实的使命。

为什么大家不从改变自己开始呢?!总喜欢用虚拟的东西替代现实,甚至掩盖现实,是在逃避现实?还是在追逐梦境?

所以技术改变世界的梦想都是由开发人来实现的。

梦想照进现实的时候,发现如此美好的东西,自己都能做出来,简直太牛逼了!

Unity3D引擎制作自己的《奇幻咔咔》_高通AR增强现实 - abel_yifei的专栏 - 博客频道 - CSDN.NET

mikel阅读(1079)

1.进入高通AR网站,注册账号,导出相关资源。1.    登录https://developer.vuforia.com/网站,去下载SDK 进去后如上图所示,然后点击Downloads进去。进去后如下图所示 因为我们是用unity来实现,所以选择最下面的unity的SDK,点击进去如果你之前已经注册并且登录过那么会直接弹

来源: Unity3D引擎制作自己的《奇幻咔咔》_高通AR增强现实 – abel_yifei的专栏 – 博客频道 – CSDN.NET

1.进入高通AR网站,注册账号,导出相关资源。

1.    登录https://developer.vuforia.com/网站,去下载SDK

进去后如上图所示,然后点击Downloads进去。

进去后如下图所示

因为我们是用unity来实现,所以选择最下面的unity的SDK,点击进去如果你之前已经注册并且登录过那么会直接弹出:

如果没有登录则会弹出登录窗口,让你登录,登录之后也会自然跳出如上图的对话窗口,不用说肯定是同意, I Agree ,然后不用说你也知道了,下好的SDK自己保存,后面会用到

2.      然后就是制作你的识别图了,还是这个网站点击Develop进入如图所示

如果你之前有创建过KEY可以直接使用,如果没有点击Add License Key按钮来创建

第一个Name可以根据自己的想法随意填写,不清楚汉语行不行,也没试过,不过最好还是写英文,我这里为了方便就写了001,SDK选择Mobile,这个应该是默认选择的

下面的什么都不用动,下拉列表不要选,其他的是云端付费的服务,我们不需要直接NEXT就行了

然后把√勾上选择confirm

KEY创建完成。

接着继续,KEY创建好了之后就是创建识别图了,点击Target Manager进入下面界面如图所示:

如果你之前没有创建过那么Database下面应该是空着的,我这里因为之前创建过一次所以有一个,创建新的识别图点击上面的Add Database 会弹出一个对话框

还是老样子,识别图名字自己随意写,Type选择第一个Device ,下面的下拉列表选择自己刚刚创建的KEY名称,好了,添加,Create

这样里面就有了你刚才创建的识别图文件

接着点进去你刚才创建的文件名称 我这里是001 ,进入到这里

点击Add Target 弹出如下对话框

因为我们要走的是一个识别图片,所以Image是我们的选择type选择第一个,

下面file是选择你要用到的图片,点击Browse是从你的电脑里选取图片,width是宽度,自己琢磨着填写,我這里写了500,Name还是老规矩,自己随意填写接着不用说也知道,Add。

等待其生成。

OK,生成成功,点上对勾,然后点下载

2.用Unity3D制作,导出安卓apk。

创建一个新的空白Unity项目,将刚才下载好的两个文件导入到unity空白项目里面

如果导进来后unity提示报错的话,

这是C#脚本错误,点开一个错误信息进入到unity自带的脚本编辑器里,根据错误提示信息定位到错误代码段:

将这段代码注释掉,然后ctrl+s保存,可以退出脚本编辑器了!

回到unity如果错误没有消失就点击clear。很好,错误没有了。

然后如下图所示将文件拖入场景中

然后选中ImageTarget看右边的属性界面修改data set为自己的标识图图

按照下图标示修改,将data set  load behaviour脚本插件下的对勾勾选上,勾选上第一个第二个才会出现,

然后上面的类似密匙的一长串key是之前你在在网站上创建的KEY的key 我的是001

先进入develop 然后点击你自己创建的key的name 如图所示:

将下面的字符串复制到App License Key处

很好,基本操作已经完成,最后,向场景里添加一个显示的模型。

3.运行unity,将摄像头扫描之前准备的图片,效果如下图,

原创教程_Unity3D引擎制作自己的《奇幻咔咔》_高通AR增强现实

版权声明:本文为博主原创文章,未经博主允许不得转载。