做一个AR识别IP人物形象的微信小程序

简介: 做一个AR识别IP人物形象的微信小程序

一:先看效果


2023-04-14 (1).png

AR

二: 整体思路以及用到的第三方图像识别算法

1.调用微信小程序的相机功能(主要使用实时帧数据,已附链接);

       CameraFrameListener | 微信开放文档


2.  将获取到的相机实时帧数据转成base64.调取第三方图像识别算法;

Docs


该文档里边有详细的介绍怎么使用去训练我们要识别的图片或者物体,如果有问题可以随时私信我!

3.第三方识别接口识别成功以后会告诉前端扫描的是什么,以便我们去判断该播放哪一个IP人物形象的序列帧动画;

4.提前准备好我们要用到的IP人物资源,我这里是用的序列帧动画(一张张帧照片拼接起来一个人物动画),这些资源建议放在服务器上;

5.创建画布,通过小程序的canvas对所有帧动画进行渲染以及播放;

三:附上全部代码

1.index.wxml

<view class="content">
    <block wx:if="{{!isShowCamera}}">
        <view class="scan" bindtap="open">
            <view class="pup">
                <view class="pupTitle">活动规则介绍</view>
                <view class="pupbox">
                    <view class="top">
                        <view class="list">
                            <image mode="aspectFit" src="../../img/1.png"></image>
                        </view>
                        <view class="list">
                            <image mode="aspectFit" src="../../img/2.png"></image>
                        </view>
                        <view class="list">
                            <image mode="aspectFit" src="../../img/3.png"></image>
                        </view>
                        <view class="list">
                            <image mode="aspectFit" src="../../img/4.png"></image>
                        </view>
                        <view class="list">
                            <image mode="aspectFit" src="../../img/5.png"></image>
                        </view>
                        <view class="list">
                            <image mode="aspectFit" src="../../img/6.png"></image>
                        </view>
                    </view>
                    <view>
                        <view class="pupbot">纸上的人物竟然还能动起来?</view>
                        <view class="pupbot">不信?!那就对着人物形象扫一扫</view>
                        <view class="pupbot">解锁更多精彩吧</view>
                    </view>
                </view>
            </view>
            <button>知道啦</button>
        </view>
    </block>
    <block wx:else>
        <view class="page-section page-section-spacing swiper" style="height: 100vh;">
            <swiper easing-function="easeOutCubic" bindchange="swiperChange" style="height: 100vh;" vertical="{{true}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
                <block>
                    <swiper-item style="height: 100vh;">
                        <block>
                            <view class="mask" style="height: 100vh;background: transparent;">
                                <camera class="camera" device-position="back" flash="off" frame-size="medium" bindinitdone="bindinitdone">
                                    <cover-view hidden="{{!show}}" class='scan-animation' animation="{{animation}}">
                                        <cover-image src="../../img/saomiao.png"></cover-image>
                                    </cover-view>
                                    <canvas class="prize-frame-canvas" type="2d" id="oneTitleFrameCanvas" style="width: {{width}}rpx;height: {{height}}rpx"></canvas>
                                    <block>
                                        <view style="display: flex;justify-content: center;">
                                            <text wx:if="{{!textShow}}" class="bottom">扫一扫,开启你的奇妙体验</text>
                                            <view wx:if="{{textShow}}" class="bottom2">
                                                <image class="shanghua" src="../../img/shanghua.png"></image>
                                                <text>上划发现更多精彩</text>
                                            </view>
                                            <view wx:if="{{textShow}}" class="left" hover-class="leftActive" bindtap="toIndex">再玩一次</view>
                                        </view>
                                    </block>
                                </camera>
                            </view>
                        </block>
                    </swiper-item>
                    <swiper-item wx:if="{{textShow}}" catchtouchmove='stopTouchMove' style="height: 100vh;">
                        <block>
                            <view class="box" style="background-color: block;">
                            </view>
                        </block>
                    </swiper-item>
                </block>
            </swiper>
        </view>
    </block>
</view>
<canvas canvas-id="myCanvas"></canvas>

2.md5.js(第三方识别接口需要用到)


         





目录
相关文章
|
4月前
|
JavaScript
基于Angular的简易在线购物车设计与实现
基于Angular的简易在线购物车设计与实现
53 3
|
1月前
|
人工智能 语音技术 vr&ar
语音识别+AR界面
【8月更文挑战第3天】语音识别+AR界面。
41 10
|
11天前
|
缓存 前端开发 测试技术
Angular 与 Angular Universal 超厉害!实现服务器端渲染,开启高效开发与优质用户体验之旅!
【8月更文挑战第31天】在现代前端开发中,用户体验至关重要。Angular Universal 为 Angular 应用提供服务器端渲染(SSR)解决方案,显著提升性能和可访问性。本文介绍 SSR 的优势,包括更快的首屏加载时间、更好的 SEO 和更稳定的用户体验。接着详细讲解安装和配置 Angular Universal 的步骤,并提供优化 SSR 性能的方法,如延迟加载、缓存和预取技术。同时讨论了处理动态内容的策略,并介绍了测试和部署的最佳实践。通过遵循这些实践,可以确保应用高效稳定运行,提升用户体验。附带的示例代码展示了如何在服务器端和客户端处理数据。
16 0
|
4月前
|
vr&ar 开发工具 图形学
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
211 0
|
小程序 定位技术 vr&ar
【微信小程序AR】基于Kivicube零代码实现微信小程序AR
话不多说,先看实现效果作者之前尝试过Apple公司的ARkit、Google公司的ARCore以及国产的EasyAR和SenseAR。Apple公司和Google公司的AR产品是市面上的主流,功能非常的完善,基本可以满足所有的程序载体,但是开发门槛非常的高。国内这两款AR产品还不错,但是主要针对的是WebAR,在微信小程序上功能不是很完善,作者在网上查找资源后发现国内弥知科技公司的Kivicube产品完美的适配于微信小程序,而且几乎上是零代码。非常适合小白新手。
377 0
|
小程序 算法 前端开发
做一个AR识别IP人物形象的微信小程序
做一个AR识别IP人物形象的微信小程序
163 0
|
机器学习/深度学习 传感器 人工智能
web端实现AR人脸特效
直播、短视频、在线会议等应用越来越多地进入人们的生活,随之诞生的是丰富的各类创意玩法与新鲜体验,其中大量应用了以AI检测和图形渲染为基础的AR技术。
249 0
web端实现AR人脸特效
|
存储 JavaScript 前端开发
使用Angular8和百度地图api开发《旅游清单》
本文的目的是通过一步步实现一个旅游清单项目,让大家快速入门Angular8以及百度地图API。我们将收获: a. Angular8基本用法,架构 a. 使用百度地图API实现自己的地图应用 a. 解决调用百度地图API时的跨域问题 a. 对localStorage进行基础封装,进行数据持久化 a. material UI的使用
182 0
|
Java
【Angular教程】-组件通信|8月更文挑战
【Angular教程】-组件通信|8月更文挑战
170 0
【Angular教程】-组件通信|8月更文挑战
|
算法 vr&ar 开发工具
阿里云首推免费人脸识别SDK 让每个APP轻松拥有短视频AR特效
早在今年五月,阿里云已经推出了短视频解决方案。近日,阿里云再次率先颠覆行业,在业内首推免费的人脸识别SDK,结合其原有的短视频能力,大大降低了人脸识别+AR特效+短视频的入行门槛。
11341 0
阿里云首推免费人脸识别SDK  让每个APP轻松拥有短视频AR特效