前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI识别之旅一

AI识别之旅一

原创
作者头像
谭广健
修改2020-02-21 14:13:20
6770
修改2020-02-21 14:13:20
举报
文章被收录于专栏:谭广健的专栏谭广健的专栏

说到AI识别,很多人会觉得很神秘很高大尚。但随着科技的发展AI已经逐步成熟和简单,这几天我们就围绕如何打造一个AI识别系统进行宣讲吧。

首先AI识别系统,肯定是通过类似视觉识别这样,有图才能有结果,当然你说语音识别就要语音才有结果。不过语音不是咱们这次的重点。我们以视觉识别为主。视觉识别肯定要通过摄像头获取外界或对应事物的情况,接下来,就是我们这篇文章的重点,如何在安卓上构建摄像头,也希望能使大家减少一些弯路。

由于我使用的是安卓开发板,摄像头是外置USB的家用普通摄像头一开始我是使用Android UVCCamera,但花了比较长的时间发现这个库用起来不容易架驽和不是太稳定;后来尝试使用安卓自己原生的摄像头库,想不到一下就成功了并且还挺稳定。那我们就用原生的库吧。

1、用原生库,首先肯定要进行授权。

代码语言:javascript
复制
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

2、在XML里面构建视频播放的SurfaceView(播放窗口)。

代码语言:javascript
复制
<SurfaceView
    android:id="@+id/arc_hf_video_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

3、在程序中进行相关参数的定义。

代码语言:javascript
复制
protected Camera camera;//摄像头
private SurfaceView mSurfaceview;
private SurfaceHolder holder;
protected boolean isPreview;
mSurfaceview = (SurfaceView) this.findViewById(R.id.arc_hf_video_view);
holder = mSurfaceview.getHolder();

4、打开摄像头及生成图片。

代码语言:javascript
复制
try {
    camera = Camera.open();
    Camera.Parameters parameters = camera.getParameters();
    parameters.setPictureFormat(PixelFormat.JPEG);// 设置照片的输出格式
    parameters.set("jpeg-quality", 85);// 照片质量
    camera.setParameters(parameters);
    camera.setPreviewDisplay(holder);
    camera.startPreview();
    isPreview = true;
} catch (Exception e) {
    e.printStackTrace();
}
//判断咯
if (camera != null) {
    Toast.makeText(view.getContext(), "给哥笑一个", Toast.LENGTH_SHORT).show();
    camera.autoFocus(null);
    camera.takePicture(null, null, new PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            Bitmap bitmap = BitmapFactory.decodeByteArray(data,    0, data.length);
            String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/";
            String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";
            File out = new File(path);
            if (!out.exists()) {
                out.mkdirs();
            }
            out = new File(path, fileName);
            try {
                FileOutputStream outStream = new FileOutputStream(out);
                bitmap.compress(CompressFormat.JPEG, 100, outStream);
                outStream.close();
                camera.startPreview();
            } catch (Exception e) {
                e.printStackTrace();
            }
            //camera.stopPreview();
            //camera.release();
            //camera = null;
            showMsg("拍照成功"+fileName);
        }
    });
}else {
    Toast.makeText(view.getContext(),"没相机拍个啥", Toast.LENGTH_SHORT).show();
}

完成以上就构建了安卓原生的摄像头,并进行拍照;拍的照片保存在安卓的DCIM/Camera目录里面。

这样我们的AI识别之旅就算踏出了第一~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档